// Mixins import { factory as GroupableFactory } from '../../mixins/groupable'; import Routable from '../../mixins/routable'; import Themeable from '../../mixins/themeable'; // Utilities import { keyCodes } from './../../util/helpers'; import mixins from '../../util/mixins'; const baseMixins = mixins(Routable, // Must be after routable // to overwrite activeClass GroupableFactory('tabsBar'), Themeable); export default baseMixins.extend().extend().extend({ name: 'v-tab', props: { ripple: { type: [Boolean, Object], default: true } }, data: () => ({ proxyClass: 'v-tab--active' }), computed: { classes() { return { 'v-tab': true, ...Routable.options.computed.classes.call(this), 'v-tab--disabled': this.disabled, ...this.groupClasses }; }, value() { let to = this.to || this.href || ''; if (this.$router && this.to === Object(this.to)) { const resolve = this.$router.resolve(this.to, this.$route, this.append); to = resolve.href; } return to.replace('#', ''); } }, mounted() { this.onRouteChange(); }, methods: { click(e) { // If user provides an // actual link, do not // prevent default if (this.href && this.href.indexOf('#') > -1) e.preventDefault(); if (e.detail) this.$el.blur(); this.$emit('click', e); this.to || this.toggle(); } }, render(h) { const { tag, data } = this.generateRouteLink(); data.attrs = { ...data.attrs, 'aria-selected': String(this.isActive), role: 'tab', tabindex: 0 }; data.on = { ...data.on, keydown: e => { if (e.keyCode === keyCodes.enter) this.click(e); this.$emit('keydown', e); } }; return h(tag, data, this.$slots.default); } }); //# sourceMappingURL=VTab.js.map