{"version":3,"sources":["webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/mixins/transitionable/index.ts"],"names":["mixins","Colorable","PositionableFactory","Themeable","Toggleable","Transitionable","extend","name","props","avatar","Boolean","bordered","color","type","String","default","content","required","dot","label","icon","inline","offsetX","Number","offsetY","overlap","tile","transition","value","computed","classes","this","bottom","left","themeClasses","computedBottom","computedYOffset","computedLeft","isRtl","computedXOffset","computedRight","computedTop","calcPosition","$vuetify","rtl","offset","styles","right","top","methods","convertToUnit","genBadge","lang","$attrs","t","data","setBackgroundColor","staticClass","style","attrs","title","role","directives","isActive","badge","$createElement","genBadgeContent","origin","mode","getSlot","VIcon","genBadgeWrapper","render","h","children","unshift","push","class","Vue","mobileBreakpoint","breakpoint","validator","v","isNaN","includes","isMobile","mobile","width","mobileWidth","parseInt","created","hasOwnProperty","deprecate","i"],"mappings":"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","file":"chunk-71b58e0c.338243017a08bc8ebdb2.js","sourcesContent":["// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-badge__badge',\n style: this.styles,\n attrs: {\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n },\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return this.$createElement(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return this.$createElement('span', {\n staticClass: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (h): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', {\n staticClass: 'v-badge',\n attrs,\n class: this.classes,\n }, children)\n },\n})\n","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'mobile',\n\n props: {\n mobileBreakpoint: {\n type: [Number, String] as PropType,\n default (): number | BreakpointName | undefined {\n // Avoid destroying unit\n // tests for users\n return this.$vuetify\n ? this.$vuetify.breakpoint.mobileBreakpoint\n : undefined\n },\n validator: v => (\n !isNaN(Number(v)) ||\n ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n ),\n },\n },\n\n computed: {\n isMobile (): boolean {\n const {\n mobile,\n width,\n name,\n mobileBreakpoint,\n } = this.$vuetify.breakpoint\n\n // Check if local mobileBreakpoint matches\n // the application's mobileBreakpoint\n if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n const isNumber = !isNaN(mobileWidth)\n\n return isNumber\n ? width < mobileWidth\n : name === this.mobileBreakpoint\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n deprecate('mobile-break-point', 'mobile-breakpoint', this)\n }\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'transitionable',\n\n props: {\n mode: String,\n origin: String,\n transition: String,\n },\n})\n"],"sourceRoot":""}