Statistic.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.statisticProps = exports.default = void 0;
  7. var _vue = require("vue");
  8. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  9. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  10. var _vueTypes = _interopRequireDefault(require("../_util/vue-types"));
  11. var _initDefaultProps = _interopRequireDefault(require("../_util/props-util/initDefaultProps"));
  12. var _Number = _interopRequireDefault(require("./Number"));
  13. var _Skeleton = _interopRequireDefault(require("../skeleton/Skeleton"));
  14. var _useConfigInject2 = _interopRequireDefault(require("../_util/hooks/useConfigInject"));
  15. var statisticProps = function statisticProps() {
  16. return {
  17. prefixCls: String,
  18. decimalSeparator: String,
  19. groupSeparator: String,
  20. format: String,
  21. value: {
  22. type: [String, Number, Object]
  23. },
  24. valueStyle: {
  25. type: Object,
  26. default: undefined
  27. },
  28. valueRender: _vueTypes.default.any,
  29. formatter: _vueTypes.default.any,
  30. precision: Number,
  31. prefix: _vueTypes.default.any,
  32. suffix: _vueTypes.default.any,
  33. title: _vueTypes.default.any,
  34. loading: {
  35. type: Boolean,
  36. default: undefined
  37. }
  38. };
  39. };
  40. exports.statisticProps = statisticProps;
  41. var _default2 = (0, _vue.defineComponent)({
  42. compatConfig: {
  43. MODE: 3
  44. },
  45. name: 'AStatistic',
  46. props: (0, _initDefaultProps.default)(statisticProps(), {
  47. decimalSeparator: '.',
  48. groupSeparator: ',',
  49. loading: false
  50. }),
  51. slots: ['title', 'prefix', 'suffix', 'formatter'],
  52. setup: function setup(props, _ref) {
  53. var slots = _ref.slots;
  54. var _useConfigInject = (0, _useConfigInject2.default)('statistic', props),
  55. prefixCls = _useConfigInject.prefixCls,
  56. direction = _useConfigInject.direction;
  57. return function () {
  58. var _props$title, _slots$title, _props$prefix, _slots$prefix, _props$suffix, _slots$suffix, _props$formatter;
  59. var _props$value = props.value,
  60. value = _props$value === void 0 ? 0 : _props$value,
  61. valueStyle = props.valueStyle,
  62. valueRender = props.valueRender;
  63. var pre = prefixCls.value;
  64. var title = (_props$title = props.title) !== null && _props$title !== void 0 ? _props$title : (_slots$title = slots.title) === null || _slots$title === void 0 ? void 0 : _slots$title.call(slots);
  65. var prefix = (_props$prefix = props.prefix) !== null && _props$prefix !== void 0 ? _props$prefix : (_slots$prefix = slots.prefix) === null || _slots$prefix === void 0 ? void 0 : _slots$prefix.call(slots);
  66. var suffix = (_props$suffix = props.suffix) !== null && _props$suffix !== void 0 ? _props$suffix : (_slots$suffix = slots.suffix) === null || _slots$suffix === void 0 ? void 0 : _slots$suffix.call(slots);
  67. var formatter = (_props$formatter = props.formatter) !== null && _props$formatter !== void 0 ? _props$formatter : slots.formatter;
  68. // data-for-update just for update component
  69. // https://github.com/vueComponent/ant-design-vue/pull/3170
  70. var valueNode = (0, _vue.createVNode)(_Number.default, (0, _objectSpread2.default)({
  71. "data-for-update": Date.now()
  72. }, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
  73. prefixCls: pre,
  74. value: value,
  75. formatter: formatter
  76. })), null);
  77. if (valueRender) {
  78. valueNode = valueRender(valueNode);
  79. }
  80. return (0, _vue.createVNode)("div", {
  81. "class": [pre, (0, _defineProperty2.default)({}, "".concat(pre, "-rtl"), direction.value === 'rtl')]
  82. }, [title && (0, _vue.createVNode)("div", {
  83. "class": "".concat(pre, "-title")
  84. }, [title]), (0, _vue.createVNode)(_Skeleton.default, {
  85. "paragraph": false,
  86. "loading": props.loading
  87. }, {
  88. default: function _default() {
  89. return [(0, _vue.createVNode)("div", {
  90. "style": valueStyle,
  91. "class": "".concat(pre, "-content")
  92. }, [prefix && (0, _vue.createVNode)("span", {
  93. "class": "".concat(pre, "-content-prefix")
  94. }, [prefix]), valueNode, suffix && (0, _vue.createVNode)("span", {
  95. "class": "".concat(pre, "-content-suffix")
  96. }, [suffix])])];
  97. }
  98. })]);
  99. };
  100. }
  101. });
  102. exports.default = _default2;