/**
 * tdesign v0.32.0
 * (c) 2021 tdesign
 * @license MIT
 */

'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var Vue = require('vue');
var config = require('../config.js');
var badge_props = require('./props.js');
var utils_renderTnode = require('../utils/render-tnode.js');
require('@babel/runtime/helpers/typeof');

function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
var Vue__default = /*#__PURE__*/_interopDefaultLegacy(Vue);

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__default["default"](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 name = "".concat(config.prefix, "-badge");
var _Badge = Vue__default["default"].extend({
  name: "TBadge",
  props: _objectSpread({}, badge_props["default"]),
  methods: {
    getContent: function getContent() {
      if (this.dot) return "";

      if (typeof this.count === "function") {
        return utils_renderTnode.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__default["default"](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__default["default"](_ref, "".concat(name, "--dot"), !!dot), _defineProperty__default["default"](_ref, "".concat(name, "--circle"), !dot && shape === "circle"), _defineProperty__default["default"](_ref, "".concat(name, "--round"), shape === "round"), _defineProperty__default["default"](_ref, "".concat(name, "--ribbon"), shape === "ribbon"), _defineProperty__default["default"](_ref, "t-size-s", this.isSmall()), _ref)];
    var inlineStyle = {
      background: "".concat(color),
      right: xOffset,
      top: yOffset
    };
    return h("div", {
      "class": name
    }, [children || null, isHidden ? null : h("sup", {
      "class": badgeClassNames,
      "style": inlineStyle
    }, [content])]);
  }
});

exports["default"] = _Badge;
//# sourceMappingURL=badge.js.map
