tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 5.75 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/shared/useCountDown/index.ts"],"sourcesContent":["import { ref, reactive, Ref, watch } 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, visibility?: Ref<boolean>): 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 let hiddenTime = 0;\n\n visibility &&\n watch(visibility, (val) => {\n if (val) {\n count.value -= Date.now() - hiddenTime;\n rafFn();\n } else {\n hiddenTime = Date.now();\n }\n });\n\n const rafFn = 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\n // raf\n const { pause, resume } = useRafFn(rafFn, { immediate: autoStart });\n\n /**\n * return\n */\n return { time: count, showTimes, pause, resume };\n}\n"],"names":["useCountDown","props","visibility","_ref","_ref$time","time","autoStart","_ref$millisecond","millisecond","_ref$format","format","_ref$splitWithUnit","splitWithUnit","onFinish","onChange","fps","ref","count","Number","showTimes","reactive","getShowTimes","getRemainTimes","hiddenTime","watch","val","value","Date","now","rafFn","_callee","_getShowTimes","_getShowTimes$forEach","res","times","_regeneratorRuntime","wrap","_context","prev","next","isBrowser","abrupt","getScreenFps","sent","parseInt","concat","pause","forEach","call","i","idx","stop","_useRafFn","useRafFn","immediate","resume"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAMgB,SAAAA,YAAAA,CAAaC,OAA4BC,UAA2C,EAAA;AAC5F,EAAA,IAAAC,IAAA,GAQFF,SAAS,EAAC;IAAAG,SAAA,GAAAD,IAAA,CAPZE,IAAO;AAAPA,IAAAA,IAAO,GAAAD,SAAA,KAAA,KAAA,CAAA,GAAA,CAAA,GAAAA,SAAA;IACPE,SAAA,GAAAH,IAAA,CAAAG,SAAA;IAAAC,gBAAA,GAAAJ,IAAA,CACAK,WAAc;AAAdA,IAAAA,WAAc,GAAAD,gBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,gBAAA;IAAAE,WAAA,GAAAN,IAAA,CACdO,MAAS;AAATA,IAAAA,MAAS,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAA,UAAA,GAAAA,WAAA;IAAAE,kBAAA,GAAAR,IAAA,CACTS,aAAgB;AAAhBA,IAAAA,aAAgB,GAAAD,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,kBAAA;IAChBE,QAAA,GAAAV,IAAA,CAAAU,QAAA;IACAC,QAAA,GAAAX,IAAA,CAAAW,QAAA,CAAA;AAGF,EAAA,IAAMC,MAAMC,GAAI,EAAA,CAAA;EAChB,IAAMC,KAAQ,GAAAD,GAAA,CAAIE,MAAO,CAAAb,IAAI,CAAC,CAAA,CAAA;AACxB,EAAA,IAAAc,SAAA,GAAYC,SAASC,YAAa,CAAAC,cAAA,CAAejB,IAAI,CAAG,EAAAK,MAAA,EAAQF,WAAa,EAAAI,aAAa,CAAC,CAAA,CAAA;EACjG,IAAIW,UAAa,GAAA,CAAA,CAAA;AAGfrB,EAAAA,UAAA,IAAAsB,KAAA,CAAMtB,UAAY,EAAA,UAACuB,GAAQ,EAAA;AACzB,IAAA,IAAIA,GAAK,EAAA;MACDR,KAAA,CAAAS,KAAA,IAASC,IAAK,CAAAC,GAAA,EAAQ,GAAAL,UAAA,CAAA;AACtBM,MAAAA,KAAA,EAAA,CAAA;AACR,KAAO,MAAA;AACLN,MAAAA,UAAA,GAAaI,KAAKC,GAAI,EAAA,CAAA;AACxB,KAAA;AACF,GAAC,CAAA,CAAA;AAEH,EAAA,IAAMC;gEAAQ,SAAAC,OAAA,GAAA;MAAA,IAAAC,aAAA,EAAAC,qBAAA,CAAA;MAAA,IAAAC,GAAA,EAAAC,KAAA,CAAA;AAAA,MAAA,OAAAC,WAAA,CAAAC,IAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IACPC,SAAA,EAAA;AAAAH,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;YAAA,OAAAF,QAAA,CAAAI,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAAA,IACA1B,IAAIW,KAAO,EAAA;AAAAW,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;AAAAF,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OACIG,YAAe,KAAfA,IAAAA,IAAAA,YAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAe,EAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAA3BT,GAAA,GAAAI,QAAA,CAAAM,IAAA,CAAA;AACN5B,YAAAA,GAAA,CAAIW,QAAQO,GAAO,IAAA,EAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAEfhB,KAAA,CAAAS,KAAA,GAAQkB,QAAS,IAAAC,MAAA,CAAG3B,MAAO,CAAAD,KAAA,CAAMS,KAAK,CAAI,GAAA,GAAA,GAAOX,GAAI,CAAAW,KAAA,CAAS,EAAA,EAAE,CAAA,CAAA;AAClE,YAAA,IAAAT,KAAA,CAAMS,SAAS,CAAG,EAAA;AACZoB,cAAAA,KAAA,KAAAA,IAAAA,IAAAA,KAAA,KAAAA,KAAAA,CAAAA,IAAAA,KAAA,EAAA,CAAA;cACR7B,KAAA,CAAMS,KAAQ,GAAA,CAAA,CAAA;AAChB,aAAA;AACMQ,YAAAA,KAAA,GAAQZ,cAAe,CAAAL,KAAA,CAAMS,KAAK,CAAA,CAAA;AACxCZ,YAAAA,QAAA,aAAAA,QAAA,KAAA,KAAA,CAAA,IAAAA,QAAA,CAAWoB,KAAK,CAAA,CAAA;YACVjB,KAAA,CAAAS,KAAA,KAAU,MAAKb,QAAW,KAAA,IAAA,IAAXA,QAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,QAAW,EAAA,CAAA,CAAA;AAChC,YAAA,CAAAkB,aAAA,GAAAV,YAAA,CAAaa,KAAO,EAAAxB,MAAA,EAAQF,WAAa,EAAAI,aAAa,CAAG,MAAA,IAAA,IAAAmB,aAAA,KAAAC,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAzDD,aAAA,CAAyDgB,OAAA,MAAAf,IAAAA,IAAAA,qBAAA,eAAzDA,qBAAA,CAAAgB,IAAA,CAAAjB,aAAA,EAAmE,UAACkB,CAAA,EAAGC,GAAS,EAAA;AAAA,cAAA,OAAA/B,SAAA,CAAU+B,GAAK,CAAA,CAAAxB,KAAA,GAAQuB,MAAAA,IAAAA,IAAAA,MAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAGvB,KAAM,CAAA;aAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAW,QAAA,CAAAc,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAArB,OAAA,CAAA,CAAA;KAClH,CAAA,CAAA,CAAA;AAAA,IAAA,OAAA,SAfMD;;;GAeN,EAAA,CAAA;AAGM,EAAA,IAAAuB,SAAA,GAAoBC,SAASxB,KAAO,EAAA;AAAEyB,MAAAA,SAAW,EAAAhD,SAAAA;AAAU,KAAC,CAAA;IAA1DwC,kBAAAA;IAAOS,MAAO,GAAAH,SAAA,CAAPG,MAAO,CAAA;EAKtB,OAAO;AAAElD,IAAAA,IAAA,EAAMY,KAAO;AAAAE,IAAAA,SAAA,EAAAA,SAAA;AAAW2B,IAAAA,OAAAA;AAAOS,IAAAA,MAAO,EAAPA,MAAAA;GAAO,CAAA;AACjD;;;;"}