module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};

/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {

/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId])
/******/ 			return installedModules[moduleId].exports;

/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			exports: {},
/******/ 			id: moduleId,
/******/ 			loaded: false
/******/ 		};

/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;

/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}


/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;

/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;

/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "/dist/";

/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ({

/***/ 0:
/***/ (function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__(309);


/***/ }),

/***/ 3:
/***/ (function(module, exports) {

	/* globals __VUE_SSR_CONTEXT__ */

	// this module is a runtime utility for cleaner component module output and will
	// be included in the final webpack user bundle

	module.exports = function normalizeComponent (
	  rawScriptExports,
	  compiledTemplate,
	  injectStyles,
	  scopeId,
	  moduleIdentifier /* server only */
	) {
	  var esModule
	  var scriptExports = rawScriptExports = rawScriptExports || {}

	  // ES6 modules interop
	  var type = typeof rawScriptExports.default
	  if (type === 'object' || type === 'function') {
	    esModule = rawScriptExports
	    scriptExports = rawScriptExports.default
	  }

	  // Vue.extend constructor export interop
	  var options = typeof scriptExports === 'function'
	    ? scriptExports.options
	    : scriptExports

	  // render functions
	  if (compiledTemplate) {
	    options.render = compiledTemplate.render
	    options.staticRenderFns = compiledTemplate.staticRenderFns
	  }

	  // scopedId
	  if (scopeId) {
	    options._scopeId = scopeId
	  }

	  var hook
	  if (moduleIdentifier) { // server build
	    hook = function (context) {
	      // 2.3 injection
	      context =
	        context || // cached call
	        (this.$vnode && this.$vnode.ssrContext) || // stateful
	        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
	      // 2.2 with runInNewContext: true
	      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
	        context = __VUE_SSR_CONTEXT__
	      }
	      // inject component styles
	      if (injectStyles) {
	        injectStyles.call(this, context)
	      }
	      // register component module identifier for async chunk inferrence
	      if (context && context._registeredComponents) {
	        context._registeredComponents.add(moduleIdentifier)
	      }
	    }
	    // used by ssr in case component is cached and beforeCreate
	    // never gets called
	    options._ssrRegister = hook
	  } else if (injectStyles) {
	    hook = injectStyles
	  }

	  if (hook) {
	    var functional = options.functional
	    var existing = functional
	      ? options.render
	      : options.beforeCreate
	    if (!functional) {
	      // inject component registration as beforeCreate hook
	      options.beforeCreate = existing
	        ? [].concat(existing, hook)
	        : [hook]
	    } else {
	      // register for functioal component in vue file
	      options.render = function renderWithStyleInjection (h, context) {
	        hook.call(context)
	        return existing(h, context)
	      }
	    }
	  }

	  return {
	    esModule: esModule,
	    exports: scriptExports,
	    options: options
	  }
	}


/***/ }),

/***/ 34:
/***/ (function(module, exports) {

	'use strict';

	exports.__esModule = true;
	/* Modified from https://github.com/sdecima/javascript-detect-element-resize
	 * version: 0.5.3
	 *
	 * The MIT License (MIT)
	 *
	 * Copyright (c) 2013 Sebastián Décima
	 *
	 * Permission is hereby granted, free of charge, to any person obtaining a copy of
	 * this software and associated documentation files (the "Software"), to deal in
	 * the Software without restriction, including without limitation the rights to
	 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
	 * the Software, and to permit persons to whom the Software is furnished to do so,
	 * subject to the following conditions:
	 *
	 * The above copyright notice and this permission notice shall be included in all
	 * copies or substantial portions of the Software.
	 *
	 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
	 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
	 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
	 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
	 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
	 *
	 */
	var isServer = typeof window === 'undefined';

	/* istanbul ignore next */
	var requestFrame = function () {
	  if (isServer) return;
	  var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) {
	    return window.setTimeout(fn, 20);
	  };
	  return function (fn) {
	    return raf(fn);
	  };
	}();

	/* istanbul ignore next */
	var cancelFrame = function () {
	  if (isServer) return;
	  var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;
	  return function (id) {
	    return cancel(id);
	  };
	}();

	/* istanbul ignore next */
	var resetTrigger = function resetTrigger(element) {
	  var trigger = element.__resizeTrigger__;
	  var expand = trigger.firstElementChild;
	  var contract = trigger.lastElementChild;
	  var expandChild = expand.firstElementChild;

	  contract.scrollLeft = contract.scrollWidth;
	  contract.scrollTop = contract.scrollHeight;
	  expandChild.style.width = expand.offsetWidth + 1 + 'px';
	  expandChild.style.height = expand.offsetHeight + 1 + 'px';
	  expand.scrollLeft = expand.scrollWidth;
	  expand.scrollTop = expand.scrollHeight;
	};

	/* istanbul ignore next */
	var checkTriggers = function checkTriggers(element) {
	  return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;
	};

	/* istanbul ignore next */
	var scrollListener = function scrollListener(event) {
	  var _this = this;

	  resetTrigger(this);
	  if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);
	  this.__resizeRAF__ = requestFrame(function () {
	    if (checkTriggers(_this)) {
	      _this.__resizeLast__.width = _this.offsetWidth;
	      _this.__resizeLast__.height = _this.offsetHeight;
	      _this.__resizeListeners__.forEach(function (fn) {
	        fn.call(_this, event);
	      });
	    }
	  });
	};

	/* Detect CSS Animations support to detect element display/re-attach */
	var attachEvent = isServer ? {} : document.attachEvent;
	var DOM_PREFIXES = 'Webkit Moz O ms'.split(' ');
	var START_EVENTS = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' ');
	var RESIZE_ANIMATION_NAME = 'resizeanim';
	var animation = false;
	var keyFramePrefix = '';
	var animationStartEvent = 'animationstart';

	/* istanbul ignore next */
	if (!attachEvent && !isServer) {
	  var testElement = document.createElement('fakeelement');
	  if (testElement.style.animationName !== undefined) {
	    animation = true;
	  }

	  if (animation === false) {
	    var prefix = '';
	    for (var i = 0; i < DOM_PREFIXES.length; i++) {
	      if (testElement.style[DOM_PREFIXES[i] + 'AnimationName'] !== undefined) {
	        prefix = DOM_PREFIXES[i];
	        keyFramePrefix = '-' + prefix.toLowerCase() + '-';
	        animationStartEvent = START_EVENTS[i];
	        animation = true;
	        break;
	      }
	    }
	  }
	}

	var stylesCreated = false;
	/* istanbul ignore next */
	var createStyles = function createStyles() {
	  if (!stylesCreated && !isServer) {
	    var animationKeyframes = '@' + keyFramePrefix + 'keyframes ' + RESIZE_ANIMATION_NAME + ' { from { opacity: 0; } to { opacity: 0; } } ';
	    var animationStyle = keyFramePrefix + 'animation: 1ms ' + RESIZE_ANIMATION_NAME + ';';

	    // opacity: 0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
	    var css = animationKeyframes + '\n      .resize-triggers { ' + animationStyle + ' visibility: hidden; opacity: 0; }\n      .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1 }\n      .resize-triggers > div { background: #eee; overflow: auto; }\n      .contract-trigger:before { width: 200%; height: 200%; }';

	    // const head = document.head || document.getElementsByTagName('head')[0];
	    var style = document.createElement('style');

	    style.type = 'text/css';
	    if (style.styleSheet) {
	      style.styleSheet.cssText = css;
	    } else {
	      style.appendChild(document.createTextNode(css));
	    }

	    // head.appendChild(style);
	    stylesCreated = true;
	  }
	};

	/* istanbul ignore next */
	var addResizeListener = exports.addResizeListener = function addResizeListener(element, fn) {
	  var tagName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';

	  if (isServer) return;
	  if (attachEvent) {
	    element.attachEvent('onresize', fn);
	  } else {
	    if (!element.__resizeTrigger__) {
	      if (getComputedStyle(element).position === 'static') {
	        element.style.position = 'relative';
	      }
	      createStyles();
	      element.__resizeLast__ = {};
	      element.__resizeListeners__ = [];

	      var resizeTrigger = element.__resizeTrigger__ = document.createElement(tagName);
	      resizeTrigger.className = 'resize-triggers';
	      resizeTrigger.innerHTML = '<div class="expand-trigger"><div></div></div><div class="contract-trigger"></div>';
	      element.appendChild(resizeTrigger);

	      resetTrigger(element);
	      element.addEventListener('scroll', scrollListener, true);

	      /* Listen for a css animation to detect element display/re-attach */
	      if (animationStartEvent) {
	        resizeTrigger.addEventListener(animationStartEvent, function (event) {
	          if (event.animationName === RESIZE_ANIMATION_NAME) {
	            resetTrigger(element);
	          }
	        });
	      }
	    }
	    element.__resizeListeners__.push(fn);
	  }
	};

	/* istanbul ignore next */
	var removeResizeListener = exports.removeResizeListener = function removeResizeListener(element, fn) {
	  if (attachEvent) {
	    element.detachEvent('onresize', fn);
	  } else {
	    element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
	    if (!element.__resizeListeners__.length) {
	      element.removeEventListener('scroll', scrollListener);
	      element.__resizeTrigger__ = !element.removeChild(element.__resizeTrigger__);
	    }
	  }
	};

/***/ }),

/***/ 309:
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	exports.__esModule = true;

	var _tabs = __webpack_require__(310);

	var _tabs2 = _interopRequireDefault(_tabs);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	/* istanbul ignore next */
	_tabs2.default.install = function (Vue) {
	  Vue.component(_tabs2.default.name, _tabs2.default);
	};

	exports.default = _tabs2.default;

/***/ }),

/***/ 310:
/***/ (function(module, exports, __webpack_require__) {

	var Component = __webpack_require__(3)(
	  /* script */
	  __webpack_require__(311),
	  /* template */
	  null,
	  /* styles */
	  null,
	  /* scopeId */
	  null,
	  /* moduleIdentifier (server only) */
	  null
	)

	module.exports = Component.exports


/***/ }),

/***/ 311:
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	exports.__esModule = true;

	var _tabNav = __webpack_require__(312);

	var _tabNav2 = _interopRequireDefault(_tabNav);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	exports.default = {
	  name: 'ElTabs',

	  components: {
	    TabNav: _tabNav2.default
	  },

	  props: {
	    type: String,
	    activeName: String,
	    closable: Boolean,
	    addable: Boolean,
	    value: {},
	    editable: Boolean
	  },

	  data: function data() {
	    return {
	      currentName: this.value || this.activeName,
	      panes: []
	    };
	  },


	  watch: {
	    activeName: function activeName(value) {
	      this.setCurrentName(value);
	    },
	    value: function value(_value) {
	      this.setCurrentName(_value);
	    },
	    currentName: function currentName(value) {
	      var _this = this;

	      if (this.$refs.nav) {
	        this.$nextTick(function (_) {
	          _this.$refs.nav.scrollToActiveTab();
	        });
	      }
	    }
	  },

	  methods: {
	    handleTabClick: function handleTabClick(tab, tabName, event) {
	      if (tab.disabled) return;
	      this.setCurrentName(tabName);
	      this.$emit('tab-click', tab, event);
	    },
	    handleTabRemove: function handleTabRemove(pane, ev) {
	      if (pane.disabled) return;
	      ev.stopPropagation();
	      this.$emit('edit', pane.name, 'remove');
	      this.$emit('tab-remove', pane.name);
	    },
	    handleTabAdd: function handleTabAdd() {
	      this.$emit('edit', null, 'add');
	      this.$emit('tab-add');
	    },
	    setCurrentName: function setCurrentName(value) {
	      this.currentName = value;
	      this.$emit('input', value);
	    },
	    addPanes: function addPanes(item) {
	      var index = this.$slots.default.indexOf(item.$vnode);
	      this.panes.splice(index, 0, item);
	    },
	    removePanes: function removePanes(item) {
	      var panes = this.panes;
	      var index = panes.indexOf(item);
	      if (index > -1) {
	        panes.splice(index, 1);
	      }
	    }
	  },
	  render: function render(h) {
	    var type = this.type,
	        handleTabClick = this.handleTabClick,
	        handleTabRemove = this.handleTabRemove,
	        handleTabAdd = this.handleTabAdd,
	        currentName = this.currentName,
	        panes = this.panes,
	        editable = this.editable,
	        addable = this.addable;


	    var newButton = editable || addable ? h(
	      'span',
	      {
	        'class': 'el-tabs__new-tab',
	        on: {
	          'click': handleTabAdd
	        }
	      },
	      [h('i', { 'class': 'el-icon-plus' })]
	    ) : null;

	    var navData = {
	      props: {
	        currentName: currentName,
	        onTabClick: handleTabClick,
	        onTabRemove: handleTabRemove,
	        editable: editable,
	        type: type,
	        panes: panes
	      },
	      ref: 'nav'
	    };

	    return h(
	      'div',
	      { 'class': {
	          'el-tabs': true,
	          'el-tabs--card': type === 'card',
	          'el-tabs--border-card': type === 'border-card'
	        } },
	      [h(
	        'div',
	        { 'class': 'el-tabs__header' },
	        [newButton, h('tab-nav', navData)]
	      ), h(
	        'div',
	        { 'class': 'el-tabs__content' },
	        [this.$slots.default]
	      )]
	    );
	  },
	  created: function created() {
	    if (!this.currentName) {
	      this.setCurrentName('0');
	    }
	  }
	};

/***/ }),

/***/ 312:
/***/ (function(module, exports, __webpack_require__) {

	var Component = __webpack_require__(3)(
	  /* script */
	  __webpack_require__(313),
	  /* template */
	  null,
	  /* styles */
	  null,
	  /* scopeId */
	  null,
	  /* moduleIdentifier (server only) */
	  null
	)

	module.exports = Component.exports


/***/ }),

/***/ 313:
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	exports.__esModule = true;

	var _tabBar = __webpack_require__(314);

	var _tabBar2 = _interopRequireDefault(_tabBar);

	var _resizeEvent = __webpack_require__(34);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function noop() {}

	exports.default = {
	  name: 'TabNav',

	  components: {
	    TabBar: _tabBar2.default
	  },

	  props: {
	    panes: Array,
	    currentName: String,
	    editable: Boolean,
	    onTabClick: {
	      type: Function,
	      default: noop
	    },
	    onTabRemove: {
	      type: Function,
	      default: noop
	    },
	    type: String
	  },

	  data: function data() {
	    return {
	      scrollable: false,
	      navStyle: {
	        transform: ''
	      },
	      focusable: true,
	      isFocus: false
	    };
	  },


	  methods: {
	    scrollPrev: function scrollPrev() {
	      var containerWidth = this.$refs.navScroll.offsetWidth;
	      var currentOffset = this.getCurrentScrollOffset();

	      if (!currentOffset) return;

	      var newOffset = currentOffset > containerWidth ? currentOffset - containerWidth : 0;

	      this.setOffset(newOffset);
	    },
	    scrollNext: function scrollNext() {
	      var navWidth = this.$refs.nav.offsetWidth;
	      var containerWidth = this.$refs.navScroll.offsetWidth;
	      var currentOffset = this.getCurrentScrollOffset();

	      if (navWidth - currentOffset <= containerWidth) return;

	      var newOffset = navWidth - currentOffset > containerWidth * 2 ? currentOffset + containerWidth : navWidth - containerWidth;

	      this.setOffset(newOffset);
	    },
	    focusToPanel: function focusToPanel(panel) {
	      var _this = this;

	      this.$parent.setCurrentName(panel.name);
	      this.$nextTick(function () {
	        var activeTab = _this.$el.querySelector('.is-active');
	        activeTab.focus();
	      });
	    },
	    handleKeyDown: function handleKeyDown(event) {
	      var key = event.keyCode;
	      var activeIndex = 0;
	      var maxIndex = this.panes.length - 1;
	      this.panes.forEach(function (panel, index) {
	        if (panel.active) {
	          activeIndex = index;
	        }
	      });
	      var nextIndex = activeIndex - 1;
	      if (key === 37 || key === 38) {
	        event.stopPropagation();
	        event.preventDefault();
	        if (nextIndex < 0) {
	          nextIndex = maxIndex;
	        }
	        this.focusToPanel(this.panes[nextIndex]);
	      } else if (key === 39 || key === 40) {
	        event.stopPropagation();
	        event.preventDefault();
	        nextIndex = activeIndex + 1;
	        if (nextIndex > maxIndex) {
	          nextIndex = 0;
	        }
	        this.focusToPanel(this.panes[nextIndex]);
	      }
	    },
	    scrollToActiveTab: function scrollToActiveTab() {
	      if (!this.scrollable) return;
	      var nav = this.$refs.nav;
	      var activeTab = this.$el.querySelector('.is-active');
	      var navScroll = this.$refs.navScroll;
	      var activeTabBounding = activeTab.getBoundingClientRect();
	      var navScrollBounding = navScroll.getBoundingClientRect();
	      var navBounding = nav.getBoundingClientRect();
	      var currentOffset = this.getCurrentScrollOffset();
	      var newOffset = currentOffset;

	      if (activeTabBounding.left < navScrollBounding.left) {
	        newOffset = currentOffset - (navScrollBounding.left - activeTabBounding.left);
	      }
	      if (activeTabBounding.right > navScrollBounding.right) {
	        newOffset = currentOffset + activeTabBounding.right - navScrollBounding.right;
	      }
	      if (navBounding.right < navScrollBounding.right) {
	        newOffset = nav.offsetWidth - navScrollBounding.width;
	      }
	      this.setOffset(Math.max(newOffset, 0));
	    },
	    getCurrentScrollOffset: function getCurrentScrollOffset() {
	      var navStyle = this.navStyle;

	      return navStyle.transform ? Number(navStyle.transform.match(/translateX\(-(\d+(\.\d+)*)px\)/)[1]) : 0;
	    },
	    setOffset: function setOffset(value) {
	      this.navStyle.transform = 'translateX(-' + value + 'px)';
	    },
	    update: function update() {
	      var navWidth = this.$refs.nav.offsetWidth;
	      var containerWidth = this.$refs.navScroll.offsetWidth;
	      var currentOffset = this.getCurrentScrollOffset();

	      if (containerWidth < navWidth) {
	        var _currentOffset = this.getCurrentScrollOffset();
	        this.scrollable = this.scrollable || {};
	        this.scrollable.prev = _currentOffset;
	        this.scrollable.next = _currentOffset + containerWidth < navWidth;
	        if (navWidth - _currentOffset < containerWidth) {
	          this.setOffset(navWidth - containerWidth);
	        }
	      } else {
	        this.scrollable = false;
	        if (currentOffset > 0) {
	          this.setOffset(0);
	        }
	      }
	    },
	    setFocus: function setFocus() {
	      console.debug('setfocus');
	      if (this.focusable) {
	        this.isFocus = true;
	      }
	    },
	    removeFocus: function removeFocus() {
	      console.debug('unfocus');
	      this.isFocus = false;
	    },
	    visibilityChangeHandler: function visibilityChangeHandler() {
	      var _this2 = this;

	      var visibility = document.visibilityState;
	      if (visibility === 'hidden') {
	        this.focusable = false;
	      } else if (visibility === 'visible') {
	        setTimeout(function () {
	          _this2.focusable = true;
	        }, 50);
	      }
	    },
	    windowBlurHandler: function windowBlurHandler() {
	      this.focusable = false;
	    },
	    windowFocusHandler: function windowFocusHandler() {
	      var _this3 = this;

	      setTimeout(function () {
	        _this3.focusable = true;
	      }, 50);
	    }
	  },

	  updated: function updated() {
	    this.update();
	  },
	  render: function render(h) {
	    var type = this.type,
	        panes = this.panes,
	        editable = this.editable,
	        onTabClick = this.onTabClick,
	        onTabRemove = this.onTabRemove,
	        navStyle = this.navStyle,
	        scrollable = this.scrollable,
	        scrollNext = this.scrollNext,
	        scrollPrev = this.scrollPrev,
	        handleKeyDown = this.handleKeyDown,
	        setFocus = this.setFocus,
	        removeFocus = this.removeFocus,
	        isFocus = this.isFocus;


	    var scrollBtn = scrollable ? [h(
	      'span',
	      { 'class': ['el-tabs__nav-prev', scrollable.prev ? '' : 'is-disabled'], on: {
	          'click': scrollPrev
	        }
	      },
	      [h('i', { 'class': 'el-icon-ng-left' })]
	    ), h(
	      'span',
	      { 'class': ['el-tabs__nav-next', scrollable.next ? '' : 'is-disabled'], on: {
	          'click': scrollNext
	        }
	      },
	      [h('i', { 'class': 'el-icon-ng-right' })]
	    )] : null;

	    var tabs = this._l(panes, function (pane, index) {
	      var _on;

	      var tabName = pane.name || pane.index || index;
	      var closable = pane.isClosable || editable;

	      pane.index = '' + index;

	      var btnClose = closable ? h('span', { 'class': 'el-icon-close', on: {
	          'click': function click(ev) {
	            onTabRemove(pane, ev);
	          }
	        }
	      }) : null;

	      var tabLabelContent = pane.$slots.label || pane.label;
	      return h(
	        'div',
	        {
	          attrs: {
	            role: 'tab',
	            tabIndex: pane.active ? '0' : '-1',

	            id: 'tab-' + tabName,

	            'aria-controls': 'pane-' + tabName,
	            'aria-selected': pane.active
	          },
	          on: (_on = {
	            'click': function click(event) {
	              event.preventDefault();
	            },
	            'keydown': handleKeyDown,
	            'focus': function focus() {
	              setFocus();
	            },
	            'blur': function blur() {
	              removeFocus();
	            }
	          }, _on['click'] = function click(ev) {
	            removeFocus();onTabClick(pane, tabName, ev);
	          }, _on),

	          'class': {
	            'el-tabs__item': true,
	            'is-active': pane.active,
	            'is-disabled': pane.disabled,
	            'is-closable': closable,
	            'is-focus': isFocus
	          }, key: 'tab-' + tabName, ref: 'tabs',

	          refInFor: true
	        },
	        [tabLabelContent, btnClose]
	      );
	    });
	    return h(
	      'div',
	      { 'class': ['el-tabs__nav-wrap', scrollable ? 'is-scrollable' : ''] },
	      [scrollBtn, h(
	        'div',
	        { 'class': ['el-tabs__nav-scroll'], ref: 'navScroll' },
	        [h(
	          'div',
	          { 'class': 'el-tabs__nav', attrs: { role: 'tablist', 'aria-orientation': 'horizontal' },
	            ref: 'nav', style: navStyle },
	          [!type ? h('tab-bar', {
	            attrs: { tabs: panes }
	          }) : null, tabs]
	        )]
	      )]
	    );
	  },
	  mounted: function mounted() {
	    (0, _resizeEvent.addResizeListener)(this.$el, this.update);
	    document.addEventListener('visibilitychange', this.visibilityChangeHandler);
	    window.addEventListener('blur', this.windowBlurHandler);
	    window.addEventListener('focus', this.windowFocusHandler);
	  },
	  beforeDestroy: function beforeDestroy() {
	    if (this.$el && this.update) (0, _resizeEvent.removeResizeListener)(this.$el, this.update);
	    document.removeEventListener('visibilitychange', this.visibilityChangeHandler);
	    window.removeEventListener('blur', this.windowBlurHandler);
	    window.removeEventListener('focus', this.windowFocusHandler);
	  }
	};

/***/ }),

/***/ 314:
/***/ (function(module, exports, __webpack_require__) {

	var Component = __webpack_require__(3)(
	  /* script */
	  __webpack_require__(315),
	  /* template */
	  __webpack_require__(316),
	  /* styles */
	  null,
	  /* scopeId */
	  null,
	  /* moduleIdentifier (server only) */
	  null
	)

	module.exports = Component.exports


/***/ }),

/***/ 315:
/***/ (function(module, exports) {

	'use strict';

	exports.__esModule = true;
	//
	//
	//

	exports.default = {
	  name: 'TabBar',

	  props: {
	    tabs: Array
	  },

	  computed: {
	    barStyle: {
	      cache: false,
	      get: function get() {
	        var _this = this;

	        if (!this.$parent.$refs.tabs) return {};
	        var style = {};
	        var offset = 0;
	        var tabWidth = 0;

	        this.tabs.every(function (tab, index) {
	          var $el = _this.$parent.$refs.tabs[index];
	          if (!$el) {
	            return false;
	          }

	          if (!tab.active) {
	            offset += $el.clientWidth;
	            return true;
	          } else {
	            tabWidth = $el.clientWidth;
	            return false;
	          }
	        });

	        var transform = 'translateX(' + offset + 'px)';
	        style.width = tabWidth + 'px';
	        style.transform = transform;
	        style.msTransform = transform;
	        style.webkitTransform = transform;

	        return style;
	      }
	    }
	  }
	};

/***/ }),

/***/ 316:
/***/ (function(module, exports) {

	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
	  return _c("div")
	},staticRenderFns: []}

/***/ })

/******/ });