{"version":3,"file":"useWindowSizeFn2.mjs","sources":["../../../../../../packages/hooks/event/useWindowSizeFn.ts"],"sourcesContent":["import { tryOnMounted, tryOnUnmounted, useDebounceFn } from '@vueuse/core'\n\ninterface WindowSizeOptions {\n  once?: boolean\n  immediate?: boolean\n  listenerOptions?: AddEventListenerOptions | boolean\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useWindowSizeFn<T>(\n  fn: (...arg: any[]) => any,\n  wait = 150,\n  options?: WindowSizeOptions\n) {\n  let handler = () => {\n    fn()\n  }\n  const handleSize = useDebounceFn(handler, wait)\n  handler = handleSize\n\n  const start = () => {\n    if (options && options.immediate) handler()\n\n    window.addEventListener('resize', handler)\n  }\n\n  const stop = () => {\n    window.removeEventListener('resize', handler)\n  }\n\n  tryOnMounted(() => {\n    start()\n  })\n\n  tryOnUnmounted(() => {\n    stop()\n  })\n  return [start, stop]\n}\n"],"names":[],"mappings":";;AACO,SAAS,eAAe,CAAC,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE;AACzD,EAAE,IAAI,OAAO,GAAG,MAAM;AACtB,IAAI,EAAE,EAAE,CAAC;AACT,GAAG,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClD,EAAE,OAAO,GAAG,UAAU,CAAC;AACvB,EAAE,MAAM,KAAK,GAAG,MAAM;AACtB,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS;AACpC,MAAM,OAAO,EAAE,CAAC;AAChB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,MAAM;AACrB,IAAI,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClD,GAAG,CAAC;AACJ,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,KAAK,EAAE,CAAC;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,cAAc,CAAC,MAAM;AACvB,IAAI,IAAI,EAAE,CAAC;AACX,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB;;;;"}