/**
 * ldesign v0.4.6
 * (c) 2023 ldesign
 * @license MIT
 */

import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import _defineProperty from '@babel/runtime/helpers/defineProperty';
import { renderTNodeJSX } from '../utils/render-tnode.js';
import { getClassPrefixMixins } from '../config-provider/config-receiver.js';
import mixins from '../utils/mixins.js';
import props from './props.js';
import '@babel/runtime/helpers/typeof';
import 'vue';
import '@vue/composition-api';
import 'lodash/camelCase';
import 'lodash/kebabCase';
import 'lodash/mergeWith';
import '../config-provider/context.js';
import 'lodash/merge';
import '../_common/js/global-config/default-config.js';
import '../_common/js/global-config/locale/zh_CN.js';
import '../_chunks/dep-be599ec8.js';
import 'dayjs';
import '../_chunks/dep-67ff4010.js';
import '../config-provider/type.js';

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
var classPrefixMixins = getClassPrefixMixins("badge");
var _Badge = mixins(classPrefixMixins).extend({
  name: "TBadge",
  props: _objectSpread({}, props),
  methods: {
    getContent: function getContent() {
      if (typeof this.$scopedSlots.count === "function") return this.$scopedSlots.count(null);
      if (typeof this.count === "function") return renderTNodeJSX(this, "count");
      if (isNaN(Number(this.count))) return this.count;
      var count = Number(this.count);
      return count > this.maxCount ? "".concat(this.maxCount, "+") : count;
    },
    isSmall: function isSmall() {
      return this.size === "small";
    },
    isZero: function isZero() {
      var content = this.getContent();
      return content === 0 || content === "0";
    },
    isHidden: function isHidden() {
      return !this.showZero && this.isZero();
    },
    getOffset: function getOffset() {
      if (!this.offset) return {};
      var _this$offset = _slicedToArray(this.offset, 2),
        xOffset = _this$offset[0],
        yOffset = _this$offset[1];
      xOffset = isNaN(Number(xOffset)) ? xOffset : "".concat(xOffset, "px");
      yOffset = isNaN(Number(yOffset)) ? yOffset : "".concat(yOffset, "px");
      return {
        xOffset: xOffset,
        yOffset: yOffset
      };
    }
  },
  render: function render() {
    var _ref;
    var h = arguments[0];
    var _this$$props = this.$props,
      dot = _this$$props.dot,
      shape = _this$$props.shape,
      color = _this$$props.color;
    var content = this.getContent();
    var isHidden = this.isHidden();
    var children = this.$slots["default"];
    var _this$getOffset = this.getOffset(),
      xOffset = _this$getOffset.xOffset,
      yOffset = _this$getOffset.yOffset;
    var badgeClassNames = [(_ref = {}, _defineProperty(_ref, "".concat(this.componentName, "--dot"), !!dot), _defineProperty(_ref, "".concat(this.componentName, "--circle"), !dot && shape === "circle"), _defineProperty(_ref, "".concat(this.componentName, "--round"), shape === "round"), _defineProperty(_ref, "".concat(this.componentName, "--ribbon"), shape === "ribbon"), _defineProperty(_ref, "".concat(this.classPrefix, "-size-s"), this.isSmall()), _ref)];
    var inlineStyle = {
      background: "".concat(color),
      right: xOffset,
      top: yOffset
    };
    return h("div", {
      "class": this.componentName
    }, [children || null, isHidden ? null : h("sup", {
      "class": badgeClassNames,
      "style": inlineStyle
    }, [dot ? null : content])]);
  }
});

export { _Badge as default };
//# sourceMappingURL=badge.js.map
