{"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":"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"}