statistic2.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var statistic = require('./statistic.js');
  5. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  6. var index = require('../../../hooks/use-namespace/index.js');
  7. var shared = require('@vue/shared');
  8. var types = require('../../../utils/types.js');
  9. const _sfc_main = vue.defineComponent({
  10. ...{
  11. name: "ElStatistic"
  12. },
  13. __name: "statistic",
  14. props: statistic.statisticProps,
  15. setup(__props, { expose: __expose }) {
  16. const props = __props;
  17. const ns = index.useNamespace("statistic");
  18. const displayValue = vue.computed(() => {
  19. const { value, formatter, precision, decimalSeparator, groupSeparator } = props;
  20. if (shared.isFunction(formatter))
  21. return formatter(value);
  22. if (!types.isNumber(value) || Number.isNaN(value))
  23. return value;
  24. let [integer, decimal = ""] = String(value).split(".");
  25. decimal = decimal.padEnd(precision, "0").slice(0, precision > 0 ? precision : 0);
  26. integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, groupSeparator);
  27. return [integer, decimal].join(decimal ? decimalSeparator : "");
  28. });
  29. __expose({
  30. displayValue
  31. });
  32. return (_ctx, _cache) => {
  33. return vue.openBlock(), vue.createElementBlock(
  34. "div",
  35. {
  36. class: vue.normalizeClass(vue.unref(ns).b())
  37. },
  38. [
  39. _ctx.$slots.title || _ctx.title ? (vue.openBlock(), vue.createElementBlock(
  40. "div",
  41. {
  42. key: 0,
  43. class: vue.normalizeClass(vue.unref(ns).e("head"))
  44. },
  45. [
  46. vue.renderSlot(_ctx.$slots, "title", {}, () => [
  47. vue.createTextVNode(
  48. vue.toDisplayString(_ctx.title),
  49. 1
  50. )
  51. ])
  52. ],
  53. 2
  54. )) : vue.createCommentVNode("v-if", true),
  55. vue.createElementVNode(
  56. "div",
  57. {
  58. class: vue.normalizeClass(vue.unref(ns).e("content"))
  59. },
  60. [
  61. _ctx.$slots.prefix || _ctx.prefix ? (vue.openBlock(), vue.createElementBlock(
  62. "div",
  63. {
  64. key: 0,
  65. class: vue.normalizeClass(vue.unref(ns).e("prefix"))
  66. },
  67. [
  68. vue.renderSlot(_ctx.$slots, "prefix", {}, () => [
  69. vue.createElementVNode(
  70. "span",
  71. null,
  72. vue.toDisplayString(_ctx.prefix),
  73. 1
  74. )
  75. ])
  76. ],
  77. 2
  78. )) : vue.createCommentVNode("v-if", true),
  79. vue.createElementVNode(
  80. "span",
  81. {
  82. class: vue.normalizeClass(vue.unref(ns).e("number")),
  83. style: vue.normalizeStyle(_ctx.valueStyle)
  84. },
  85. vue.toDisplayString(displayValue.value),
  86. 7
  87. ),
  88. _ctx.$slots.suffix || _ctx.suffix ? (vue.openBlock(), vue.createElementBlock(
  89. "div",
  90. {
  91. key: 1,
  92. class: vue.normalizeClass(vue.unref(ns).e("suffix"))
  93. },
  94. [
  95. vue.renderSlot(_ctx.$slots, "suffix", {}, () => [
  96. vue.createElementVNode(
  97. "span",
  98. null,
  99. vue.toDisplayString(_ctx.suffix),
  100. 1
  101. )
  102. ])
  103. ],
  104. 2
  105. )) : vue.createCommentVNode("v-if", true)
  106. ],
  107. 2
  108. )
  109. ],
  110. 2
  111. );
  112. };
  113. }
  114. });
  115. var Statistic = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/statistic/src/statistic.vue"]]);
  116. exports["default"] = Statistic;
  117. //# sourceMappingURL=statistic2.js.map