{"version":3,"file":"handle-window.mjs","sources":["../../../src/resize/handle-window.ts"],"sourcesContent":["import { WindowResizeHandler } from \"./types\"\n\nconst windowCallbacks = new Set<WindowResizeHandler>()\n\nlet windowResizeHandler: VoidFunction | undefined\n\nfunction createWindowResizeHandler() {\n    windowResizeHandler = () => {\n        const info = {\n            get width() {\n                return window.innerWidth\n            },\n            get height() {\n                return window.innerHeight\n            },\n        }\n\n        windowCallbacks.forEach((callback) => callback(info))\n    }\n\n    window.addEventListener(\"resize\", windowResizeHandler)\n}\n\nexport function resizeWindow(callback: WindowResizeHandler) {\n    windowCallbacks.add(callback)\n\n    if (!windowResizeHandler) createWindowResizeHandler()\n\n    return () => {\n        windowCallbacks.delete(callback)\n\n        if (\n            !windowCallbacks.size &&\n            typeof windowResizeHandler === \"function\"\n        ) {\n            window.removeEventListener(\"resize\", windowResizeHandler)\n            windowResizeHandler = undefined\n        }\n    }\n}\n"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuB;AAEtD,IAAI,mBAA6C;AAEjD,SAAS,yBAAyB,GAAA;IAC9B,mBAAmB,GAAG,MAAK;AACvB,QAAA,MAAM,IAAI,GAAG;AACT,YAAA,IAAI,KAAK,GAAA;gBACL,OAAO,MAAM,CAAC,UAAU;YAC5B,CAAC;AACD,YAAA,IAAI,MAAM,GAAA;gBACN,OAAO,MAAM,CAAC,WAAW;YAC7B,CAAC;SACJ;AAED,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzD,IAAA,CAAC;AAED,IAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AAC1D;AAEM,SAAU,YAAY,CAAC,QAA6B,EAAA;AACtD,IAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE7B,IAAA,IAAI,CAAC,mBAAmB;AAAE,QAAA,yBAAyB,EAAE;AAErD,IAAA,OAAO,MAAK;AACR,QAAA,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEhC,IACI,CAAC,eAAe,CAAC,IAAI;AACrB,YAAA,OAAO,mBAAmB,KAAK,UAAU,EAC3C;AACE,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC;YACzD,mBAAmB,GAAG,SAAS;QACnC;AACJ,IAAA,CAAC;AACL;;;;"}