text: 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] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = 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;
  /******/
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// define __esModule on exports
  /******/ 	__webpack_require__.r = function(exports) {
  /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  /******/ 		}
  /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
  /******/ 	};
  /******/
  /******/ 	// create a fake namespace object
  /******/ 	// mode & 1: value is a module id, require it
  /******/ 	// mode & 2: merge all properties of value into the ns
  /******/ 	// mode & 4: return value when already ns object
  /******/ 	// mode & 8|1: behave like require
  /******/ 	__webpack_require__.t = function(value, mode) {
  /******/ 		if(mode & 1) value = __webpack_require__(value);
  /******/ 		if(mode & 8) return value;
  /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  /******/ 		var ns = Object.create(null);
  /******/ 		__webpack_require__.r(ns);
  /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  /******/ 		return ns;
  /******/ 	};
  /******/
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  /******/
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "/dist/";
  /******/
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = 114);
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ 0:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
  /* globals __VUE_SSR_CONTEXT__ */
  
  // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  // This module is a runtime utility for cleaner component module output and will
  // be included in the final webpack user bundle.
  
  function normalizeComponent (
    scriptExports,
    render,
    staticRenderFns,
    functionalTemplate,
    injectStyles,
    scopeId,
    moduleIdentifier, /* server only */
    shadowMode /* vue-cli only */
  ) {
    // Vue.extend constructor export interop
    var options = typeof scriptExports === 'function'
      ? scriptExports.options
      : scriptExports
  
    // render functions
    if (render) {
      options.render = render
      options.staticRenderFns = staticRenderFns
      options._compiled = true
    }
  
    // functional template
    if (functionalTemplate) {
      options.functional = true
    }
  
    // scopedId
    if (scopeId) {
      options._scopeId = 'data-v-' + 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 = shadowMode
        ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
        : injectStyles
    }
  
    if (hook) {
      if (options.functional) {
        // for template-only hot-reload because in that case the render fn doesn't
        // go through the normalizer
        options._injectStyles = hook
        // register for functioal component in vue file
        var originalRender = options.render
        options.render = function renderWithStyleInjection (h, context) {
          hook.call(context)
          return originalRender(h, context)
        }
      } else {
        // inject component registration as beforeCreate hook
        var existing = options.beforeCreate
        options.beforeCreate = existing
          ? [].concat(existing, hook)
          : [hook]
      }
    }
  
    return {
      exports: scriptExports,
      options: options
    }
  }
  
  
  /***/ }),
  
  /***/ 114:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  
  // EXTERNAL MODULE: external "element-ui/lib/transitions/collapse-transition"
  var collapse_transition_ = __webpack_require__(23);
  var collapse_transition_default = /*#__PURE__*/__webpack_require__.n(collapse_transition_);
  
  // EXTERNAL MODULE: ./packages/menu/src/menu-mixin.js
  var menu_mixin = __webpack_require__(34);
  
  // EXTERNAL MODULE: external "element-ui/lib/mixins/emitter"
  var emitter_ = __webpack_require__(3);
  var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
  
  // EXTERNAL MODULE: external "element-ui/lib/utils/vue-popper"
  var vue_popper_ = __webpack_require__(5);
  var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_);
  
  // CONCATENATED MODULE: ./node_modules/_babel-loader@7.1.5@babel-loader/lib!./node_modules/_vue-loader@15.7.0@vue-loader/lib??vue-loader-options!./packages/menu/src/submenu.vue?vue&type=script&lang=js&
  
  
  
  
  
  
  var poperMixins = {
    props: {
      transformOrigin: {
        type: [Boolean, String],
        default: false
      },
      offset: vue_popper_default.a.props.offset,
      boundariesPadding: vue_popper_default.a.props.boundariesPadding,
      popperOptions: vue_popper_default.a.props.popperOptions
    },
    data: vue_popper_default.a.data,
    methods: vue_popper_default.a.methods,
    beforeDestroy: vue_popper_default.a.beforeDestroy,
    deactivated: vue_popper_default.a.deactivated
  };
  
  /* harmony default export */ var submenuvue_type_script_lang_js_ = ({
    name: 'ElSubmenu',
  
    componentName: 'ElSubmenu',
  
    mixins: [menu_mixin["a" /* default */], emitter_default.a, poperMixins],
  
    components: { ElCollapseTransition: collapse_transition_default.a },
  
    props: {
      index: {
        type: String,
        required: true
      },
      showTimeout: {
        type: Number,
        default: 300
      },
      hideTimeout: {
        type: Number,
        default: 300
      },
      popperClass: String,
      disabled: Boolean,
      popperAppendToBody: {
        type: Boolean,
        default: undefined
      }
    },
  
    data: function data() {
      return {
        popperJS: null,
        timeout: null,
        items: {},
        submenus: {},
        mouseInChild: false
      };
    },
  
    watch: {
      opened: function opened(val) {
        var _this = this;
  
        if (this.isMenuPopup) {
          this.$nextTick(function (_) {
            _this.updatePopper();
          });
        }
      }
    },
    computed: {
      // popper option
      appendToBody: function appendToBody() {
        return this.popperAppendToBody === undefined ? this.isFirstLevel : this.popperAppendToBody;
      },
      menuTransitionName: function menuTransitionName() {
        return this.rootMenu.collapse ? 'el-zoom-in-left' : 'el-zoom-in-top';
      },
      opened: function opened() {
        return this.rootMenu.openedMenus.indexOf(this.index) > -1;
      },
      active: function active() {
        var isActive = false;
        var submenus = this.submenus;
        var items = this.items;
  
        Object.keys(items).forEach(function (index) {
          if (items[index].active) {
            isActive = true;
          }
        });
  
        Object.keys(submenus).forEach(function (index) {
          if (submenus[index].active) {
            isActive = true;
          }
        });
  
        return isActive;
      },
      hoverBackground: function hoverBackground() {
        return this.rootMenu.hoverBackground;
      },
      backgroundColor: function backgroundColor() {
        return this.rootMenu.backgroundColor || '';
      },
      activeTextColor: function activeTextColor() {
        return this.rootMenu.activeTextColor || '';
      },
      textColor: function textColor() {
        return this.rootMenu.textColor || '';
      },
      mode: function mode() {
        return this.rootMenu.mode;
      },
      isMenuPopup: function isMenuPopup() {
        return this.rootMenu.isMenuPopup;
      },
      titleStyle: function titleStyle() {
        if (this.mode !== 'horizontal') {
          return {
            color: this.textColor
          };
        }
        return {
          borderBottomColor: this.active ? this.rootMenu.activeTextColor ? this.activeTextColor : '' : 'transparent',
          color: this.active ? this.activeTextColor : this.textColor
        };
      },
      isFirstLevel: function isFirstLevel() {
        var isFirstLevel = true;
        var parent = this.$parent;
        while (parent && parent !== this.rootMenu) {
          if (['ElSubmenu', 'ElMenuItemGroup'].indexOf(parent.$options.componentName) > -1) {
            isFirstLevel = false;
            break;
          } else {
            parent = parent.$parent;
          }
        }
        return isFirstLevel;
      }
    },
    methods: {
      handleCollapseToggle: function handleCollapseToggle(value) {
        if (value) {
          this.initPopper();
        } else {
          this.doDestroy();
        }
      },
      addItem: function addItem(item) {
        this.$set(this.items, item.index, item);
      },
      removeItem: function removeItem(item) {
        delete this.items[item.index];
      },
      addSubmenu: function addSubmenu(item) {
        this.$set(this.submenus, item.index, item);
      },
      removeSubmenu: function removeSubmenu(item) {
        delete this.submenus[item.index];
      },
      handleClick: function handleClick() {
        var rootMenu = this.rootMenu,
            disabled = this.disabled;
  
        if (rootMenu.menuTrigger === 'hover' && rootMenu.mode === 'horizontal' || rootMenu.collapse && rootMenu.mode === 'vertical' || disabled) {
          return;
        }
        this.dispatch('ElMenu', 'submenu-click', this);
      },
      handleMouseenter: function handleMouseenter(event) {
        var _this2 = this;
  
        var showTimeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.showTimeout;
  
  
        if (!('ActiveXObject' in window) && event.type === 'focus' && !event.relatedTarget) {
          return;
        }
        var rootMenu = this.rootMenu,
            disabled = this.disabled;
  
        if (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal' || !rootMenu.collapse && rootMenu.mode === 'vertical' || disabled) {
          return;
        }
        this.dispatch('ElSubmenu', 'mouse-enter-child');
        clearTimeout(this.timeout);
        this.timeout = setTimeout(function () {
          _this2.rootMenu.openMenu(_this2.index, _this2.indexPath);
        }, showTimeout);
      },
      handleMouseleave: function handleMouseleave() {
        var _this3 = this;
  
        var rootMenu = this.rootMenu;
  
        if (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal' || !rootMenu.collapse && rootMenu.mode === 'vertical') {
          return;
        }
        this.dispatch('ElSubmenu', 'mouse-leave-child');
        clearTimeout(this.timeout);
        this.timeout = setTimeout(function () {
          !_this3.mouseInChild && _this3.rootMenu.closeMenu(_this3.index);
        }, this.hideTimeout);
      },
      handleTitleMouseenter: function handleTitleMouseenter() {
        if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;
        var title = this.$refs['submenu-title'];
        title && (title.style.backgroundColor = this.rootMenu.hoverBackground);
      },
      handleTitleMouseleave: function handleTitleMouseleave() {
        if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;
        var title = this.$refs['submenu-title'];
        title && (title.style.backgroundColor = this.rootMenu.backgroundColor || '');
      },
      updatePlacement: function updatePlacement() {
        this.currentPlacement = this.mode === 'horizontal' && this.isFirstLevel ? 'bottom-start' : 'right-start';
      },
      initPopper: function initPopper() {
        this.referenceElm = this.$el;
        this.popperElm = this.$refs.menu;
        this.updatePlacement();
      }
    },
    created: function created() {
      var _this4 = this;
  
      this.$on('toggle-collapse', this.handleCollapseToggle);
      this.$on('mouse-enter-child', function () {
        _this4.mouseInChild = true;
        clearTimeout(_this4.timeout);
      });
      this.$on('mouse-leave-child', function () {
        _this4.mouseInChild = false;
        clearTimeout(_this4.timeout);
      });
    },
    mounted: function mounted() {
      this.parentMenu.addSubmenu(this);
      this.rootMenu.addSubmenu(this);
      this.initPopper();
    },
    beforeDestroy: function beforeDestroy() {
      this.parentMenu.removeSubmenu(this);
      this.rootMenu.removeSubmenu(this);
    },
    render: function render(h) {
      var _this5 = this;
  
      var active = this.active,
          opened = this.opened,
          paddingStyle = this.paddingStyle,
          titleStyle = this.titleStyle,
          backgroundColor = this.backgroundColor,
          rootMenu = this.rootMenu,
          currentPlacement = this.currentPlacement,
          menuTransitionName = this.menuTransitionName,
          mode = this.mode,
          disabled = this.disabled,
          popperClass = this.popperClass,
          $slots = this.$slots,
          isFirstLevel = this.isFirstLevel;
  
  
      var popupMenu = h(
        'transition',
        {
          attrs: { name: menuTransitionName }
        },
        [h(
          'div',
          {
            ref: 'menu',
            directives: [{
              name: 'show',
              value: opened
            }],
  
            'class': ['el-menu--' + mode, popperClass],
            on: {
              'mouseenter': function mouseenter($event) {
                return _this5.handleMouseenter($event, 100);
              },
              'mouseleave': this.handleMouseleave,
              'focus': function focus($event) {
                return _this5.handleMouseenter($event, 100);
              }
            }
          },
          [h(
            'ul',
            {
              attrs: {
                role: 'menu'
              },
              'class': ['el-menu el-menu--popup', 'el-menu--popup-' + currentPlacement],
              style: { backgroundColor: rootMenu.backgroundColor || '' } },
            [$slots.default]
          )]
        )]
      );
  
      var inlineMenu = h('el-collapse-transition', [h(
        'ul',
        {
          attrs: {
            role: 'menu'
          },
          'class': 'el-menu el-menu--inline',
          directives: [{
            name: 'show',
            value: opened
          }],
  
          style: { backgroundColor: rootMenu.backgroundColor || '' } },
        [$slots.default]
      )]);
  
      var submenuTitleIcon = rootMenu.mode === 'horizontal' && isFirstLevel || rootMenu.mode === 'vertical' && !rootMenu.collapse ? 'el-icon-arrow-down' : 'el-icon-arrow-right';
  
      return h(
        'li',
        {
          'class': {
            'el-submenu': true,
            'is-active': active,
            'is-opened': opened,
            'is-disabled': disabled
          },
          attrs: { role: 'menuitem',
            'aria-haspopup': 'true',
            'aria-expanded': opened
          },
          on: {
            'mouseenter': this.handleMouseenter,
            'mouseleave': this.handleMouseleave,
            'focus': this.handleMouseenter
          }
        },
        [h(
          'div',
          {
            'class': 'el-submenu__title',
            ref: 'submenu-title',
            on: {
              'click': this.handleClick,
              'mouseenter': this.handleTitleMouseenter,
              'mouseleave': this.handleTitleMouseleave
            },
  
            style: [paddingStyle, titleStyle, { backgroundColor: backgroundColor }]
          },
          [$slots.title, h('i', { 'class': ['el-submenu__icon-arrow', submenuTitleIcon] })]
        ), this.isMenuPopup ? popupMenu : inlineMenu]
      );
    }
  });
  // CONCATENATED MODULE: ./packages/menu/src/submenu.vue?vue&type=script&lang=js&
   /* harmony default export */ var src_submenuvue_type_script_lang_js_ = (submenuvue_type_script_lang_js_); 
  // EXTERNAL MODULE: ./node_modules/_vue-loader@15.7.0@vue-loader/lib/runtime/componentNormalizer.js
  var componentNormalizer = __webpack_require__(0);
  
  // CONCATENATED MODULE: ./packages/menu/src/submenu.vue
  var render, staticRenderFns
  
  
  
  
  /* normalize component */
  
  var component = Object(componentNormalizer["a" /* default */])(
    src_submenuvue_type_script_lang_js_,
    render,
    staticRenderFns,
    false,
    null,
    null,
    null
    
  )
  
  /* hot reload */
  if (false) { var api; }
  component.options.__file = "packages/menu/src/submenu.vue"
  /* harmony default export */ var submenu = (component.exports);
  // CONCATENATED MODULE: ./packages/submenu/index.js
  
  
  /* istanbul ignore next */
  submenu.install = function (Vue) {
    Vue.component(submenu.name, submenu);
  };
  
  /* harmony default export */ var packages_submenu = __webpack_exports__["default"] = (submenu);
  
  /***/ }),
  
  /***/ 23:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/transitions/collapse-transition");
  
  /***/ }),
  
  /***/ 3:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/mixins/emitter");
  
  /***/ }),
  
  /***/ 34:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony default export */ __webpack_exports__["a"] = ({
    inject: ['rootMenu'],
    computed: {
      indexPath: function indexPath() {
        var path = [this.index];
        var parent = this.$parent;
        while (parent.$options.componentName !== 'ElMenu') {
          if (parent.index) {
            path.unshift(parent.index);
          }
          parent = parent.$parent;
        }
        return path;
      },
      parentMenu: function parentMenu() {
        var parent = this.$parent;
        while (parent && ['ElMenu', 'ElSubmenu'].indexOf(parent.$options.componentName) === -1) {
          parent = parent.$parent;
        }
        return parent;
      },
      paddingStyle: function paddingStyle() {
        if (this.rootMenu.mode !== 'vertical') return {};
  
        var padding = 20;
        var parent = this.$parent;
  
        if (this.rootMenu.collapse) {
          padding = 20;
        } else {
          while (parent && parent.$options.componentName !== 'ElMenu') {
            if (parent.$options.componentName === 'ElSubmenu') {
              padding += 20;
            }
            parent = parent.$parent;
          }
        }
        return { paddingLeft: padding + 'px' };
      }
    }
  });
  
  /***/ }),
  
  /***/ 5:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/utils/vue-popper");
  
  /***/ })
  
  /******/ });