{"version":3,"file":"index.mjs","sources":["../../../src/shared/useCountDown/index.ts"],"sourcesContent":["import { ref, reactive } from 'vue';\nimport { useRafFn } from '@vueuse/core';\nimport { TdUseCountDownProps, TdUseCountDown } from './type';\nimport { getRemainTimes, getShowTimes, getScreenFps } from './utils';\nimport { isBrowser } from '../util';\n\nexport function useCountDown(props: TdUseCountDownProps): TdUseCountDown {\n  const {\n    time = 0,\n    autoStart,\n    millisecond = false,\n    format = 'HH:mm:ss',\n    splitWithUnit = false,\n    onFinish,\n    onChange,\n  } = props || {};\n  // state\n  const fps = ref();\n  const count = ref(Number(time));\n  const showTimes = reactive(getShowTimes(getRemainTimes(time), format, millisecond, splitWithUnit));\n\n  // raf\n  const { pause, resume } = useRafFn(\n    async () => {\n      if (!isBrowser) return;\n      if (!fps.value) {\n        const res = await getScreenFps?.();\n        fps.value = res || 60;\n      }\n      count.value = parseInt(`${Number(count.value) - 1000 / fps.value}`, 10);\n      if (count.value <= 0) {\n        pause?.();\n        count.value = 0;\n      }\n      const times = getRemainTimes(count.value);\n      onChange?.(times);\n      count.value === 0 && onFinish?.();\n      getShowTimes(times, format, millisecond, splitWithUnit)?.forEach?.((i, idx) => (showTimes[idx].value = i?.value));\n    },\n    { immediate: autoStart },\n  );\n\n  /**\n   * return\n   */\n  return { time: count, showTimes, pause, resume };\n}\n"],"names":["useCountDown","props","_ref","_ref$time","time","autoStart","_ref$millisecond","millisecond","_ref$format","format","_ref$splitWithUnit","splitWithUnit","onFinish","onChange","fps","ref","count","Number","showTimes","reactive","getShowTimes","getRemainTimes","_useRafFn","useRafFn","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_getShowTimes","_getShowTimes$forEach","res","times","wrap","_callee$","_context","prev","next","isBrowser","abrupt","value","getScreenFps","sent","parseInt","concat","pause","forEach","call","i","idx","stop","immediate","resume"],"mappings":"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"}