ScrollNumber.js 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
  10. var _classNames = _interopRequireDefault(require("../_util/classNames"));
  11. var _vueTypes = _interopRequireDefault(require("../_util/vue-types"));
  12. var _vnode = require("../_util/vnode");
  13. var _useConfigInject2 = _interopRequireDefault(require("../_util/hooks/useConfigInject"));
  14. var _SingleNumber = _interopRequireDefault(require("./SingleNumber"));
  15. var _propsUtil = require("../_util/props-util");
  16. var _excluded = ["prefixCls", "count", "title", "show", "component", "class", "style"];
  17. var scrollNumberProps = {
  18. prefixCls: String,
  19. count: _vueTypes.default.any,
  20. component: String,
  21. title: _vueTypes.default.any,
  22. show: Boolean
  23. };
  24. var _default2 = (0, _vue.defineComponent)({
  25. compatConfig: {
  26. MODE: 3
  27. },
  28. name: 'ScrollNumber',
  29. inheritAttrs: false,
  30. props: scrollNumberProps,
  31. setup: function setup(props, _ref) {
  32. var attrs = _ref.attrs,
  33. slots = _ref.slots;
  34. var _useConfigInject = (0, _useConfigInject2.default)('scroll-number', props),
  35. prefixCls = _useConfigInject.prefixCls;
  36. return function () {
  37. var _slots$default;
  38. var _props$attrs = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), attrs),
  39. customizePrefixCls = _props$attrs.prefixCls,
  40. count = _props$attrs.count,
  41. title = _props$attrs.title,
  42. show = _props$attrs.show,
  43. _props$attrs$componen = _props$attrs.component,
  44. Tag = _props$attrs$componen === void 0 ? 'sup' : _props$attrs$componen,
  45. className = _props$attrs.class,
  46. style = _props$attrs.style,
  47. restProps = (0, _objectWithoutProperties2.default)(_props$attrs, _excluded);
  48. // ============================ Render ============================
  49. var newProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, {
  50. style: style,
  51. 'data-show': props.show,
  52. class: (0, _classNames.default)(prefixCls.value, className),
  53. title: title
  54. });
  55. // Only integer need motion
  56. var numberNodes = count;
  57. if (count && Number(count) % 1 === 0) {
  58. var numberList = String(count).split('');
  59. numberNodes = numberList.map(function (num, i) {
  60. return (0, _vue.createVNode)(_SingleNumber.default, {
  61. "prefixCls": prefixCls.value,
  62. "count": Number(count),
  63. "value": num,
  64. "key": numberList.length - i
  65. }, null);
  66. });
  67. }
  68. // allow specify the border
  69. // mock border-color by box-shadow for compatible with old usage:
  70. // <Badge count={4} style={{ backgroundColor: '#fff', color: '#999', borderColor: '#d9d9d9' }} />
  71. if (style && style.borderColor) {
  72. newProps.style = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, style), {}, {
  73. boxShadow: "0 0 0 1px ".concat(style.borderColor, " inset")
  74. });
  75. }
  76. var children = (0, _propsUtil.filterEmpty)((_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots));
  77. if (children && children.length) {
  78. return (0, _vnode.cloneElement)(children, {
  79. class: (0, _classNames.default)("".concat(prefixCls.value, "-custom-component"))
  80. }, false);
  81. }
  82. return (0, _vue.createVNode)(Tag, newProps, {
  83. default: function _default() {
  84. return [numberNodes];
  85. }
  86. });
  87. };
  88. }
  89. });
  90. exports.default = _default2;