{"version":3,"file":"useBreakpoint2.mjs","sources":["../../../../../../packages/hooks/event/useBreakpoint.ts"],"sourcesContent":["import { computed, ref, unref } from 'vue'\nimport { screenEnum, screenMap, sizeEnum } from '@tav-ui/enums/breakpointEnum'\nimport { useEventListener } from './useEventListener'\nimport type { ComputedRef } from 'vue'\n\nlet globalScreenRef: ComputedRef<sizeEnum | undefined>\nlet globalWidthRef: ComputedRef<number>\nlet globalRealWidthRef: ComputedRef<number>\n\nexport interface CreateCallbackParams {\n  screen: ComputedRef<sizeEnum | undefined>\n  width: ComputedRef<number>\n  realWidth: ComputedRef<number>\n  screenEnum: typeof screenEnum\n  screenMap: Map<sizeEnum, number>\n  sizeEnum: typeof sizeEnum\n}\n\nexport function useBreakpoint() {\n  return {\n    screenRef: computed(() => unref(globalScreenRef)),\n    widthRef: globalWidthRef,\n    screenEnum,\n    realWidthRef: globalRealWidthRef,\n  }\n}\n\n// Just call it once\nexport function createBreakpointListen(fn?: (opt: CreateCallbackParams) => void) {\n  const screenRef = ref<sizeEnum>(sizeEnum.XL)\n  const realWidthRef = ref(window.innerWidth)\n\n  function getWindowWidth() {\n    const width = document.body.clientWidth\n    const xs = screenMap.get(sizeEnum.XS)!\n    const sm = screenMap.get(sizeEnum.SM)!\n    const md = screenMap.get(sizeEnum.MD)!\n    const lg = screenMap.get(sizeEnum.LG)!\n    const xl = screenMap.get(sizeEnum.XL)!\n    if (width < xs) screenRef.value = sizeEnum.XS\n    else if (width < sm) screenRef.value = sizeEnum.SM\n    else if (width < md) screenRef.value = sizeEnum.MD\n    else if (width < lg) screenRef.value = sizeEnum.LG\n    else if (width < xl) screenRef.value = sizeEnum.XL\n    else screenRef.value = sizeEnum.XXL\n\n    realWidthRef.value = width\n  }\n\n  useEventListener({\n    el: window,\n    name: 'resize',\n\n    listener: () => {\n      getWindowWidth()\n      resizeFn()\n    },\n    // wait: 100,\n  })\n\n  getWindowWidth()\n  globalScreenRef = computed(() => unref(screenRef))\n  globalWidthRef = computed((): number => screenMap.get(unref(screenRef)!)!)\n  globalRealWidthRef = computed((): number => unref(realWidthRef))\n\n  function resizeFn() {\n    fn?.({\n      screen: globalScreenRef,\n      width: globalWidthRef,\n      realWidth: globalRealWidthRef,\n      screenEnum,\n      screenMap,\n      sizeEnum,\n    })\n  }\n\n  resizeFn()\n  return {\n    screenRef: globalScreenRef,\n    screenEnum,\n    widthRef: globalWidthRef,\n    realWidthRef: globalRealWidthRef,\n  }\n}\n"],"names":[],"mappings":"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"}