UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.21 kB
{"version":3,"file":"statistic.vue2.mjs","sources":["../../../../../../packages/components/statistic/src/statistic.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div v-if=\"$slots.title || title\" :class=\"ns.e('head')\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div :class=\"ns.e('content')\">\n <div v-if=\"$slots.prefix || prefix\" :class=\"ns.e('prefix')\">\n <slot name=\"prefix\">\n <span>{{ prefix }}</span>\n </slot>\n </div>\n <span :class=\"ns.e('number')\" :style=\"valueStyle\">\n {{ displayValue }}\n </span>\n <div v-if=\"$slots.suffix || suffix\" :class=\"ns.e('suffix')\">\n <slot name=\"suffix\">\n <span>{{ suffix }}</span>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isFunction, isNumber } from '@element-plus/utils'\n\nimport type { StatisticProps } from './statistic'\n\ndefineOptions({\n name: 'ElStatistic',\n})\n\nconst props = withDefaults(defineProps<StatisticProps>(), {\n decimalSeparator: '.',\n groupSeparator: ',',\n precision: 0,\n value: 0,\n valueStyle: undefined,\n})\nconst ns = useNamespace('statistic')\n\nconst displayValue = computed(() => {\n const { value, formatter, precision, decimalSeparator, groupSeparator } =\n props\n\n if (isFunction(formatter)) return formatter(value)\n\n // https://github.com/element-plus/element-plus/issues/17784\n if (!isNumber(value) || Number.isNaN(value)) return value\n\n let [integer, decimal = ''] = String(value).split('.')\n decimal = decimal\n .padEnd(precision, '0')\n .slice(0, precision > 0 ? precision : 0)\n integer = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator)\n return [integer, decimal].join(decimal ? decimalSeparator : '')\n})\n\ndefineExpose({\n /**\n * @description current display value\n */\n displayValue,\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","$slots","_renderSlot","_createElementVNode"],"mappings":"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"}