statistic2.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. require('../../../hooks/index.js');
  5. require('../../../utils/index.js');
  6. var statistic = require('./statistic.js');
  7. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  8. var index = require('../../../hooks/use-namespace/index.js');
  9. var shared = require('@vue/shared');
  10. var core = require('@vueuse/core');
  11. const __default__ = vue.defineComponent({
  12. name: "ElStatistic"
  13. });
  14. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  15. ...__default__,
  16. props: statistic.statisticProps,
  17. setup(__props, { expose }) {
  18. const props = __props;
  19. const ns = index.useNamespace("statistic");
  20. const displayValue = vue.computed(() => {
  21. const { value, formatter, precision, decimalSeparator, groupSeparator } = props;
  22. if (shared.isFunction(formatter))
  23. return formatter(value);
  24. if (!core.isNumber(value))
  25. return value;
  26. let [integer, decimal = ""] = String(value).split(".");
  27. decimal = decimal.padEnd(precision, "0").slice(0, precision > 0 ? precision : 0);
  28. integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, groupSeparator);
  29. return [integer, decimal].join(decimal ? decimalSeparator : "");
  30. });
  31. expose({
  32. displayValue
  33. });
  34. return (_ctx, _cache) => {
  35. return vue.openBlock(), vue.createElementBlock("div", {
  36. class: vue.normalizeClass(vue.unref(ns).b())
  37. }, [
  38. _ctx.$slots.title || _ctx.title ? (vue.openBlock(), vue.createElementBlock("div", {
  39. key: 0,
  40. class: vue.normalizeClass(vue.unref(ns).e("head"))
  41. }, [
  42. vue.renderSlot(_ctx.$slots, "title", {}, () => [
  43. vue.createTextVNode(vue.toDisplayString(_ctx.title), 1)
  44. ])
  45. ], 2)) : vue.createCommentVNode("v-if", true),
  46. vue.createElementVNode("div", {
  47. class: vue.normalizeClass(vue.unref(ns).e("content"))
  48. }, [
  49. _ctx.$slots.prefix || _ctx.prefix ? (vue.openBlock(), vue.createElementBlock("div", {
  50. key: 0,
  51. class: vue.normalizeClass(vue.unref(ns).e("prefix"))
  52. }, [
  53. vue.renderSlot(_ctx.$slots, "prefix", {}, () => [
  54. vue.createElementVNode("span", null, vue.toDisplayString(_ctx.prefix), 1)
  55. ])
  56. ], 2)) : vue.createCommentVNode("v-if", true),
  57. vue.createElementVNode("span", {
  58. class: vue.normalizeClass(vue.unref(ns).e("number")),
  59. style: vue.normalizeStyle(_ctx.valueStyle)
  60. }, vue.toDisplayString(vue.unref(displayValue)), 7),
  61. _ctx.$slots.suffix || _ctx.suffix ? (vue.openBlock(), vue.createElementBlock("div", {
  62. key: 1,
  63. class: vue.normalizeClass(vue.unref(ns).e("suffix"))
  64. }, [
  65. vue.renderSlot(_ctx.$slots, "suffix", {}, () => [
  66. vue.createElementVNode("span", null, vue.toDisplayString(_ctx.suffix), 1)
  67. ])
  68. ], 2)) : vue.createCommentVNode("v-if", true)
  69. ], 2)
  70. ], 2);
  71. };
  72. }
  73. });
  74. var Statistic = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/statistic/src/statistic.vue"]]);
  75. exports["default"] = Statistic;
  76. //# sourceMappingURL=statistic2.js.map