{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-prevent-global/index.ts"],"sourcesContent":["import { watch } from 'vue'\r\nimport { useEventListener } from '@vueuse/core'\r\nimport type { Ref } from 'vue'\r\n\r\nexport const usePreventGlobal = <E extends keyof DocumentEventMap>(\r\n  indicator: Ref<boolean>,\r\n  evt: E,\r\n  cb: (e: DocumentEventMap[E]) => boolean\r\n) => {\r\n  const prevent = (e: DocumentEventMap[E]) => {\r\n    if (cb(e)) e.stopImmediatePropagation()\r\n  }\r\n  let stop: (() => void) | undefined = undefined\r\n  watch(\r\n    () => indicator.value,\r\n    (val) => {\r\n      if (val) {\r\n        stop = useEventListener(document, evt, prevent, true)\r\n      } else {\r\n        stop?.()\r\n      }\r\n    },\r\n    { immediate: true }\r\n  )\r\n}\r\n"],"names":[],"mappings":";;;AAEY,MAAC,gBAAgB,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK;AACxD,EAAE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK;AACzB,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AACb,MAAM,CAAC,CAAC,wBAAwB,EAAE,CAAC;AACnC,GAAG,CAAC;AACJ,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC;AACpB,EAAE,KAAK,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK;AACxC,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5D,KAAK,MAAM;AACX,MAAM,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;AACrC,KAAK;AACL,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1B;;;;"}