UNPKG

tav-ui

Version:
1 lines 4.64 kB
{"version":3,"file":"count-to2.mjs","sources":["../../../../../../../packages/components/count-to/src/count-to.vue"],"sourcesContent":["<template>\n <span :style=\"{ color }\">\n {{ value }}\n </span>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, onMounted, ref, unref, watch, watchEffect } from 'vue'\nimport { TransitionPresets, useTransition } from '@vueuse/core'\nimport { isNumber } from '@tav-ui/utils/is'\nimport { countToProps } from './types'\n\nexport default defineComponent({\n name: 'TaCountTo',\n props: countToProps,\n emits: ['onStarted', 'onFinished'],\n setup(props, { emit }) {\n const source = ref(props.startVal)\n const disabled = ref(false)\n let outputValue = useTransition(source)\n\n const value = computed(() => formatNumber(unref(outputValue)))\n\n watchEffect(() => {\n source.value = props.startVal\n })\n\n watch([() => props.startVal, () => props.endVal], () => {\n if (props.autoplay) {\n start()\n }\n })\n\n onMounted(() => {\n props.autoplay && start()\n })\n\n function start() {\n run()\n source.value = props.endVal\n }\n\n function reset() {\n source.value = props.startVal\n run()\n }\n\n function run() {\n outputValue = useTransition(source, {\n disabled,\n duration: props.duration,\n onFinished: () => emit('onFinished'),\n onStarted: () => emit('onStarted'),\n ...(props.useEasing ? { transition: TransitionPresets[props.transition] } : {}),\n })\n }\n\n function formatNumber(num: number | string) {\n if (!num && num !== 0) {\n return ''\n }\n const { decimals, decimal, separator, suffix, prefix } = props\n num = Number(num).toFixed(decimals)\n num += ''\n\n const x = num.split('.')\n let x1 = x[0]\n const x2 = x.length > 1 ? decimal + x[1] : ''\n\n const rgx = /(\\d+)(\\d{3})/\n if (separator && !isNumber(separator)) {\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, `$1${separator}$2`)\n }\n }\n return prefix + x1 + x2 + suffix\n }\n\n return { value, start, reset }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeStyle","_toDisplayString"],"mappings":";;;;;;AAWA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,WAAA;AAAA,EACN,KAAO,EAAA,YAAA;AAAA,EACP,KAAA,EAAO,CAAC,WAAA,EAAa,YAAY,CAAA;AAAA,EACjC,KAAM,CAAA,KAAA,EAAO,EAAE,IAAA,EAAQ,EAAA;AACrB,IAAM,MAAA,MAAA,GAAS,GAAI,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AACjC,IAAM,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,IAAI,IAAA,WAAA,GAAc,cAAc,MAAM,CAAA,CAAA;AAEtC,IAAA,MAAM,QAAQ,QAAS,CAAA,MAAM,aAAa,KAAM,CAAA,WAAW,CAAC,CAAC,CAAA,CAAA;AAE7D,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,QAAA,CAAA;AAAA,KACtB,CAAA,CAAA;AAED,IAAM,KAAA,CAAA,CAAC,MAAM,KAAM,CAAA,QAAA,EAAU,MAAM,KAAM,CAAA,MAAM,GAAG,MAAM;AACtD,MAAA,IAAI,MAAM,QAAU,EAAA;AAClB,QAAM,KAAA,EAAA,CAAA;AAAA,OACR;AAAA,KACD,CAAA,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,KAAA,CAAM,YAAY,KAAM,EAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAED,IAAA,SAAS,KAAQ,GAAA;AACf,MAAI,GAAA,EAAA,CAAA;AACJ,MAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,MAAA,CAAA;AAAA,KACvB;AAEA,IAAA,SAAS,KAAQ,GAAA;AACf,MAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,QAAA,CAAA;AACrB,MAAI,GAAA,EAAA,CAAA;AAAA,KACN;AAEA,IAAA,SAAS,GAAM,GAAA;AACb,MAAA,WAAA,GAAc,cAAc,MAAQ,EAAA;AAAA,QAClC,QAAA;AAAA,QACA,UAAU,KAAM,CAAA,QAAA;AAAA,QAChB,UAAA,EAAY,MAAM,IAAA,CAAK,YAAY,CAAA;AAAA,QACnC,SAAA,EAAW,MAAM,IAAA,CAAK,WAAW,CAAA;AAAA,QACjC,GAAI,MAAM,SAAY,GAAA,EAAE,YAAY,iBAAkB,CAAA,KAAA,CAAM,UAAY,CAAA,EAAA,GAAI,EAAC;AAAA,OAC9E,CAAA,CAAA;AAAA,KACH;AAEA,IAAA,SAAS,aAAa,GAAsB,EAAA;AAC1C,MAAI,IAAA,CAAC,GAAO,IAAA,GAAA,KAAQ,CAAG,EAAA;AACrB,QAAO,OAAA,EAAA,CAAA;AAAA,OACT;AACA,MAAA,MAAM,EAAE,QAAU,EAAA,OAAA,EAAS,SAAW,EAAA,MAAA,EAAQ,QAAW,GAAA,KAAA,CAAA;AACzD,MAAA,GAAA,GAAM,MAAO,CAAA,GAAG,CAAE,CAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;AAClC,MAAO,GAAA,IAAA,EAAA,CAAA;AAEP,MAAM,MAAA,CAAA,GAAI,GAAI,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AACvB,MAAA,IAAI,KAAK,CAAE,CAAA,CAAA,CAAA,CAAA;AACX,MAAA,MAAM,KAAK,CAAE,CAAA,MAAA,GAAS,CAAI,GAAA,OAAA,GAAU,EAAE,CAAK,CAAA,GAAA,EAAA,CAAA;AAE3C,MAAA,MAAM,GAAM,GAAA,cAAA,CAAA;AACZ,MAAA,IAAI,SAAa,IAAA,CAAC,QAAS,CAAA,SAAS,CAAG,EAAA;AACrC,QAAO,OAAA,GAAA,CAAI,IAAK,CAAA,EAAE,CAAG,EAAA;AACnB,UAAA,EAAA,GAAK,EAAG,CAAA,OAAA,CAAQ,GAAK,EAAA,CAAA,EAAA,EAAK,SAAa,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,SACzC;AAAA,OACF;AACA,MAAO,OAAA,MAAA,GAAS,KAAK,EAAK,GAAA,MAAA,CAAA;AAAA,KAC5B;AAEA,IAAO,OAAA,EAAE,KAAO,EAAA,KAAA,EAAO,KAAM,EAAA,CAAA;AAAA,GAC/B;AACF,CAAC,CAAA,CAAA;;sBA9ECA,kBAEO,CAAA,MAAA,EAAA;AAAA,IAFA,KAAA,EAAKC,wBAAI,IAAK,CAAA,KAAA,EAAA,CAAA;AAAA,GAAA,EAAAC,eAAA,CAChB,IAAK,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;;"}