| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | import { isDef, createNamespace } from '../utils';import { isNumeric } from '../utils/validate/number';var _createNamespace = createNamespace('badge'),    createComponent = _createNamespace[0],    bem = _createNamespace[1];export default createComponent({  props: {    dot: Boolean,    max: [Number, String],    color: String,    content: [Number, String],    tag: {      type: String,      default: 'div'    }  },  methods: {    hasContent: function hasContent() {      return !!(this.$scopedSlots.content || isDef(this.content) && this.content !== '');    },    renderContent: function renderContent() {      var dot = this.dot,          max = this.max,          content = this.content;      if (!dot && this.hasContent()) {        if (this.$scopedSlots.content) {          return this.$scopedSlots.content();        }        if (isDef(max) && isNumeric(content) && +content > max) {          return max + "+";        }        return content;      }    },    renderBadge: function renderBadge() {      var h = this.$createElement;      if (this.hasContent() || this.dot) {        return h("div", {          "class": bem({            dot: this.dot,            fixed: !!this.$scopedSlots.default          }),          "style": {            background: this.color          }        }, [this.renderContent()]);      }    }  },  render: function render() {    var h = arguments[0];    if (this.$scopedSlots.default) {      var tag = this.tag;      return h(tag, {        "class": bem('wrapper')      }, [this.$scopedSlots.default(), this.renderBadge()]);    }    return this.renderBadge();  }});
 |