{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-fullscreen/index.ts"],"sourcesContent":["import { watch, onBeforeUnmount, onMounted } from 'vue'\r\nimport { throttle } from 'lodash'\r\nimport screenfull from './screen-full'\r\nimport type { Ref } from 'vue'\r\n\r\nexport const useFullscreen = (\r\n  targetRef: Ref<HTMLElement | undefined>,\r\n  watchKey: Ref<boolean>,\r\n  emit?\r\n) => {\r\n  const throttledFullscreenHander = throttle(() => {\r\n    watchKey.value = screenfull.isFullscreen\r\n    emit('fullscreen', screenfull.isFullscreen)\r\n  }, 300)\r\n\r\n  watch(\r\n    () => watchKey.value,\r\n    (val) => {\r\n      if (!targetRef.value) return\r\n\r\n      if (val) {\r\n        // 全屏显示\r\n        if (screenfull.isEnabled && !screenfull.isFullscreen) {\r\n          screenfull.request(targetRef.value)\r\n        }\r\n      } else {\r\n        // 退出全屏\r\n        screenfull.exit()\r\n      }\r\n    }\r\n  )\r\n\r\n  onMounted(() => {\r\n    screenfull.on('change', throttledFullscreenHander)\r\n  })\r\n\r\n  onBeforeUnmount(() => {\r\n    screenfull.off('change', throttledFullscreenHander)\r\n  })\r\n}\r\n"],"names":[],"mappings":";;;;AAGY,MAAC,aAAa,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,KAAK;AAC5D,EAAE,MAAM,yBAAyB,GAAG,QAAQ,CAAC,MAAM;AACnD,IAAI,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC;AAC7C,IAAI,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;AAChD,GAAG,EAAE,GAAG,CAAC,CAAC;AACV,EAAE,KAAK,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK;AACvC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;AACxB,MAAM,OAAO;AACb,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;AAC5D,QAAQ,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;AACxB,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AACvD,GAAG,CAAC,CAAC;AACL,EAAE,eAAe,CAAC,MAAM;AACxB,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC;AACL;;;;"}