"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("../../../src/components/VBadge/VBadge.sass"); var _VIcon = _interopRequireDefault(require("../VIcon/VIcon")); var _colorable = _interopRequireDefault(require("../../mixins/colorable")); var _themeable = _interopRequireDefault(require("../../mixins/themeable")); var _toggleable = _interopRequireDefault(require("../../mixins/toggleable")); var _transitionable = _interopRequireDefault(require("../../mixins/transitionable")); var _positionable = require("../../mixins/positionable"); var _mixins = _interopRequireDefault(require("../../util/mixins")); var _helpers = require("../../util/helpers"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var _default = (0, _mixins.default)(_colorable.default, (0, _positionable.factory)(['left', 'bottom']), _themeable.default, _toggleable.default, _transitionable.default).extend({ name: 'v-badge', props: { avatar: Boolean, bordered: Boolean, color: { type: String, default: 'primary' }, content: { required: false }, dot: Boolean, label: { type: String, default: '$vuetify.badge' }, icon: String, inline: Boolean, offsetX: [Number, String], offsetY: [Number, String], overlap: Boolean, tile: Boolean, transition: { type: String, default: 'scale-rotate-transition' }, value: { default: true } }, computed: { classes: function classes() { return _objectSpread({ 'v-badge--avatar': this.avatar, 'v-badge--bordered': this.bordered, 'v-badge--bottom': this.bottom, 'v-badge--dot': this.dot, 'v-badge--icon': this.icon != null, 'v-badge--inline': this.inline, 'v-badge--left': this.left, 'v-badge--overlap': this.overlap, 'v-badge--tile': this.tile }, this.themeClasses); }, computedBottom: function computedBottom() { return this.bottom ? 'auto' : this.computedYOffset; }, computedLeft: function computedLeft() { if (this.isRtl) { return this.left ? this.computedXOffset : 'auto'; } return this.left ? 'auto' : this.computedXOffset; }, computedRight: function computedRight() { if (this.isRtl) { return this.left ? 'auto' : this.computedXOffset; } return !this.left ? 'auto' : this.computedXOffset; }, computedTop: function computedTop() { return this.bottom ? this.computedYOffset : 'auto'; }, computedXOffset: function computedXOffset() { return this.calcPosition(this.offsetX); }, computedYOffset: function computedYOffset() { return this.calcPosition(this.offsetY); }, isRtl: function isRtl() { return this.$vuetify.rtl; }, // Default fallback if offsetX // or offsetY are undefined. offset: function offset() { if (this.overlap) return this.dot ? 8 : 12; return this.dot ? 2 : 4; }, styles: function styles() { if (this.inline) return {}; return { bottom: this.computedBottom, left: this.computedLeft, right: this.computedRight, top: this.computedTop }; } }, methods: { calcPosition: function calcPosition(offset) { return "calc(100% - ".concat((0, _helpers.convertToUnit)(offset || this.offset), ")"); }, genBadge: function genBadge() { var lang = this.$vuetify.lang; var label = this.$attrs['aria-label'] || lang.t(this.label); var data = this.setBackgroundColor(this.color, { staticClass: 'v-badge__badge', style: this.styles, attrs: { 'aria-atomic': this.$attrs['aria-atomic'] || 'true', 'aria-label': label, 'aria-live': this.$attrs['aria-live'] || 'polite', title: this.$attrs.title, role: this.$attrs.role || 'status' }, directives: [{ name: 'show', value: this.isActive }] }); var badge = this.$createElement('span', data, [this.genBadgeContent()]); if (!this.transition) return badge; return this.$createElement('transition', { props: { name: this.transition, origin: this.origin, mode: this.mode } }, [badge]); }, genBadgeContent: function genBadgeContent() { // Dot prop shows no content if (this.dot) return undefined; var slot = (0, _helpers.getSlot)(this, 'badge'); if (slot) return slot; if (this.content) return String(this.content); if (this.icon) return this.$createElement(_VIcon.default, this.icon); return undefined; }, genBadgeWrapper: function genBadgeWrapper() { return this.$createElement('span', { staticClass: 'v-badge__wrapper' }, [this.genBadge()]); } }, render: function render(h) { var badge = [this.genBadgeWrapper()]; var children = [(0, _helpers.getSlot)(this)]; var _this$$attrs = this.$attrs, _x = _this$$attrs['aria-atomic'], _y = _this$$attrs['aria-label'], _z = _this$$attrs['aria-live'], role = _this$$attrs.role, title = _this$$attrs.title, attrs = _objectWithoutProperties(_this$$attrs, ["aria-atomic", "aria-label", "aria-live", "role", "title"]); if (this.inline && this.left) children.unshift(badge);else children.push(badge); return h('span', { staticClass: 'v-badge', attrs: attrs, class: this.classes }, children); } }); exports.default = _default; //# sourceMappingURL=VBadge.js.map