UNPKG

vue-onsenui

Version:

Vue.js bindings for Onsen UI

53 lines (45 loc) 2.33 kB
import _extends from 'babel-runtime/helpers/extends'; import _Object$getOwnPropertyDescriptor from 'babel-runtime/core-js/object/get-own-property-descriptor'; import 'onsenui/esm/elements/ons-tabbar'; import { deriveEvents, hasOptions, hidable, selfProvider } from '../mixins'; export default { name: 'v-ons-tabbar', mixins: [deriveEvents, hasOptions, hidable, selfProvider], props: { index: { type: Number }, tabs: { type: Array, validator: function validator(value) { return value.every(function (tab) { return ['icon', 'label', 'page'].some(function (prop) { return !!_Object$getOwnPropertyDescriptor(tab, prop); }); }); } }, onSwipe: { type: Function }, tabbarStyle: { type: null } }, methods: { _tabKey: function _tabKey(tab) { return tab.key || tab.label || tab.icon; } }, watch: { index: function index() { if (this.index !== this.$el.getActiveTabIndex()) { this.$el.setActiveTab(this.index, _extends({ reject: false }, this.options)); } } } }; if (module.exports.__esModule) module.exports = module.exports.default var __vue__options__ = (typeof module.exports === "function"? module.exports.options: module.exports) __vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ons-tabbar',_vm._g({attrs:{"activeIndex":_vm.index},domProps:{"onSwipe":_vm.onSwipe},on:{"prechange":function($event){if($event.target !== $event.currentTarget){ return null; }_vm.$nextTick(function () { return !$event.detail.canceled && _vm.$emit('update:index', $event.index); })}}},_vm.unrecognizedListeners),[_c('div',{staticClass:"tabbar__content"},[_c('div',[_vm._t("pages",_vm._l((_vm.tabs),function(tab){return _c(tab.page,_vm._g(_vm._b({key:(tab.page.key || tab.page.name || _vm._tabKey(tab)),tag:"component"},'component',tab.props,false),_vm.unrecognizedListeners))}))],2),_vm._v(" "),_c('div')]),_vm._v(" "),_c('div',{staticClass:"tabbar",style:(_vm.tabbarStyle)},[_vm._t("default",_vm._l((_vm.tabs),function(tab){return _c('v-ons-tab',_vm._b({key:_vm._tabKey(tab)},'v-ons-tab',tab,false))})),_vm._v(" "),_c('div',{staticClass:"tabbar__border"})],2)])} __vue__options__.staticRenderFns = []