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, {
  /******/ 				configurable: false,
  /******/ 				enumerable: true,
  /******/ 				get: getter
  /******/ 			});
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// 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 = 160);
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ 0:
  /***/ (function(module, exports) {
  
  /* globals __VUE_SSR_CONTEXT__ */
  
  // IMPORTANT: Do NOT use ES2015 features in this file.
  // 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,
    functionalTemplate,
    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
      options._compiled = true
    }
  
    // functional template
    if (functionalTemplate) {
      options.functional = true
    }
  
    // 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 {
        // 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
        options.render = function renderWithStyleInjection (h, context) {
          hook.call(context)
          return existing(h, context)
        }
      }
    }
  
    return {
      esModule: esModule,
      exports: scriptExports,
      options: options
    }
  }
  
  
  /***/ }),
  
  /***/ 1:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/mixins/emitter");
  
  /***/ }),
  
  /***/ 10:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/utils/clickoutside");
  
  /***/ }),
  
  /***/ 14:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/button");
  
  /***/ }),
  
  /***/ 160:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _dropdown = __webpack_require__(161);
  
  var _dropdown2 = _interopRequireDefault(_dropdown);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  /* istanbul ignore next */
  _dropdown2.default.install = function (Vue) {
    Vue.component(_dropdown2.default.name, _dropdown2.default);
  };
  
  exports.default = _dropdown2.default;
  
  /***/ }),
  
  /***/ 161:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__ = __webpack_require__(64);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__);
  /* harmony namespace reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  var normalizeComponent = __webpack_require__(0)
  /* script */
  
  
  /* template */
  var __vue_template__ = null
  /* template functional */
  var __vue_template_functional__ = false
  /* styles */
  var __vue_styles__ = null
  /* scopeId */
  var __vue_scopeId__ = null
  /* moduleIdentifier (server only) */
  var __vue_module_identifier__ = null
  var Component = normalizeComponent(
    __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default.a,
    __vue_template__,
    __vue_template_functional__,
    __vue_styles__,
    __vue_scopeId__,
    __vue_module_identifier__
  )
  
  /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  
  
  /***/ }),
  
  /***/ 162:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/button-group");
  
  /***/ }),
  
  /***/ 3:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/utils/util");
  
  /***/ }),
  
  /***/ 64:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _clickoutside = __webpack_require__(10);
  
  var _clickoutside2 = _interopRequireDefault(_clickoutside);
  
  var _emitter = __webpack_require__(1);
  
  var _emitter2 = _interopRequireDefault(_emitter);
  
  var _migrating = __webpack_require__(9);
  
  var _migrating2 = _interopRequireDefault(_migrating);
  
  var _button = __webpack_require__(14);
  
  var _button2 = _interopRequireDefault(_button);
  
  var _buttonGroup = __webpack_require__(162);
  
  var _buttonGroup2 = _interopRequireDefault(_buttonGroup);
  
  var _util = __webpack_require__(3);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  //xc modify at 2018-11-06: 新增props enter-not-hide{Boolean} 如果为true, 回车后不会触发收起
  
  exports.default = {
    name: 'ElDropdown',
  
    componentName: 'ElDropdown',
  
    mixins: [_emitter2.default, _migrating2.default],
  
    directives: { Clickoutside: _clickoutside2.default },
  
    components: {
      ElButton: _button2.default,
      ElButtonGroup: _buttonGroup2.default
    },
  
    provide: function provide() {
      return {
        dropdown: this
      };
    },
  
  
    props: {
      readMode: Boolean,
      enterNotHide: {
        type: Boolean,
        default: false
      },
      trigger: {
        type: String,
        default: 'hover'
      },
      type: String,
      size: {
        type: String,
        default: ''
      },
      splitButton: Boolean,
      hideOnClick: {
        type: Boolean,
        default: true
      },
      placement: {
        type: String,
        default: 'bottom-end'
      },
      visibleArrow: {
        default: true
      },
      showTimeout: {
        type: Number,
        default: 250
      },
      hideTimeout: {
        type: Number,
        default: 150
      },
      stopPropagation: {
        type: Boolean,
        default: false
      }
    },
  
    data: function data() {
      return {
        ss__readMode: false,
        timeout: null,
        visible: false,
        triggerElm: null,
        menuItems: null,
        menuItemsArray: null,
        dropdownElm: null,
        focusing: false,
        listId: 'dropdown-menu-' + (0, _util.generateId)()
      };
    },
  
  
    computed: {
      dropdownSize: function dropdownSize() {
        return this.size || (this.$ELEMENT || {}).size;
      }
    },
  
    created: function created() {
      this.ss__readMode = this.readMode;
    },
    mounted: function mounted() {
      this.$on('menu-item-click', this.handleMenuItemClick);
      this.initEvent();
      this.initAria();
    },
  
  
    watch: {
      readMode: function readMode(val, oldVal) {
        this.ss__readMode = val;
      },
      visible: function visible(val) {
        this.broadcast('ElDropdownMenu', 'visible', val);
        this.$emit('visible-change', val);
      },
      focusing: function focusing(val) {
        var selfDefine = this.$el.querySelector('.el-dropdown-selfdefine');
        if (selfDefine) {
          // 自定义
          if (val) {
            selfDefine.className += ' focusing';
          } else {
            selfDefine.className = selfDefine.className.replace('focusing', '');
          }
        }
      }
    },
  
    methods: {
      getMigratingConfig: function getMigratingConfig() {
        return {
          props: {
            'menu-align': 'menu-align is renamed to placement.'
          }
        };
      },
      show: function show() {
        var _this = this;
  
        if (this.triggerElm.disabled || this.ss__readMode) return;
        clearTimeout(this.timeout);
        this.timeout = setTimeout(function () {
          _this.visible = true;
        }, this.trigger === 'click' ? 0 : this.showTimeout);
      },
      hide: function hide() {
        var _this2 = this;
  
        if (this.triggerElm.disabled) return;
        this.removeTabindex();
        this.resetTabindex(this.triggerElm);
        clearTimeout(this.timeout);
        this.timeout = setTimeout(function () {
          _this2.visible = false;
        }, this.trigger === 'click' ? 0 : this.hideTimeout);
      },
      handleClick: function handleClick(e) {
        if (this.stopPropagation && e) e.stopPropagation();
  
        if (this.triggerElm.disabled) return;
        if (this.visible) {
          this.hide();
        } else {
          this.show();
        }
      },
      handleTriggerKeyDown: function handleTriggerKeyDown(ev) {
        var keyCode = ev.keyCode;
        if ([38, 40].indexOf(keyCode) > -1) {
          // up/down
          this.removeTabindex();
          this.resetTabindex(this.menuItems[0]);
          this.menuItems[0].focus();
          ev.preventDefault();
          ev.stopPropagation();
        } else if (keyCode === 13 && !this.enterNotHide) {
          // space enter选中
          this.handleClick();
        } else if ([9, 27].indexOf(keyCode) > -1) {
          // tab || esc
          this.hide();
        }
        return;
      },
      handleItemKeyDown: function handleItemKeyDown(ev) {
        var keyCode = ev.keyCode;
        var target = ev.target;
        var currentIndex = this.menuItemsArray.indexOf(target);
        var max = this.menuItemsArray.length - 1;
        var nextIndex = void 0;
        if ([38, 40].indexOf(keyCode) > -1) {
          // up/down
          if (keyCode === 38) {
            // up
            nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;
          } else {
            // down
            nextIndex = currentIndex < max ? currentIndex + 1 : max;
          }
          this.removeTabindex();
          this.resetTabindex(this.menuItems[nextIndex]);
          this.menuItems[nextIndex].focus();
          ev.preventDefault();
          ev.stopPropagation();
        } else if (keyCode === 13 && !this.enterNotHide) {
          // enter选中
          this.triggerElm.focus();
          target.click();
          if (this.hideOnClick) {
            // click关闭
            this.visible = false;
          }
        } else if ([9, 27].indexOf(keyCode) > -1) {
          // tab // esc
          this.hide();
          this.triggerElm.focus();
        }
        return;
      },
      resetTabindex: function resetTabindex(ele) {
        // 下次tab时组件聚焦元素
        this.removeTabindex();
        ele.setAttribute('tabindex', '0'); // 下次期望的聚焦元素
      },
      removeTabindex: function removeTabindex() {
        this.triggerElm.setAttribute('tabindex', '-1');
        this.menuItemsArray.forEach(function (item) {
          item.setAttribute('tabindex', '-1');
        });
      },
      initAria: function initAria() {
        this.dropdownElm.setAttribute('id', this.listId);
        this.triggerElm.setAttribute('aria-haspopup', 'list');
        this.triggerElm.setAttribute('aria-controls', this.listId);
        this.menuItems = this.dropdownElm.querySelectorAll("[tabindex='-1']");
        this.menuItemsArray = Array.prototype.slice.call(this.menuItems);
  
        if (!this.splitButton) {
          // 自定义
          this.triggerElm.setAttribute('role', 'button');
          this.triggerElm.setAttribute('tabindex', '0');
          this.triggerElm.setAttribute('class', (this.triggerElm.getAttribute('class') || '') + ' el-dropdown-selfdefine'); // 控制
        }
      },
      initEvent: function initEvent() {
        var _this3 = this;
  
        var trigger = this.trigger,
            show = this.show,
            hide = this.hide,
            handleClick = this.handleClick,
            splitButton = this.splitButton,
            handleTriggerKeyDown = this.handleTriggerKeyDown,
            handleItemKeyDown = this.handleItemKeyDown;
  
        this.triggerElm = splitButton ? this.$refs.trigger.$el : this.$slots.default[0].elm;
  
        var dropdownElm = this.dropdownElm = this.$slots.dropdown[0].elm;
  
        this.triggerElm.addEventListener('keydown', handleTriggerKeyDown); // triggerElm keydown
        dropdownElm.addEventListener('keydown', handleItemKeyDown, true); // item keydown
        // 控制自定义元素的样式
        if (!splitButton) {
          this.triggerElm.addEventListener('focus', function () {
            _this3.focusing = true;
          });
          this.triggerElm.addEventListener('blur', function () {
            _this3.focusing = false;
          });
          this.triggerElm.addEventListener('click', function () {
            _this3.focusing = false;
          });
        }
        if (trigger === 'hover') {
          this.triggerElm.addEventListener('mouseenter', show);
          this.triggerElm.addEventListener('mouseleave', hide);
          dropdownElm.addEventListener('mouseenter', show);
          dropdownElm.addEventListener('mouseleave', hide);
        } else if (trigger === 'click') {
          this.triggerElm.addEventListener('click', handleClick);
        }
      },
      handleMenuItemClick: function handleMenuItemClick(command, instance) {
        if (this.hideOnClick) {
          this.visible = false;
        }
        this.$emit('command', command, instance);
      },
      focus: function focus() {
        this.triggerElm.focus && this.triggerElm.focus();
      }
    },
  
    render: function render(h) {
      var _this4 = this;
  
      var hide = this.hide,
          splitButton = this.splitButton,
          type = this.type,
          dropdownSize = this.dropdownSize;
  
  
      var handleMainButtonClick = function handleMainButtonClick(event) {
        _this4.$emit('click', event);
        hide();
      };
  
      var triggerElm = !splitButton ? this.$slots.default : h('el-button-group', [h(
        'el-button',
        {
          attrs: { type: type, size: dropdownSize },
          nativeOn: {
            'click': handleMainButtonClick
          }
        },
        [this.$slots.default]
      ), h(
        'el-button',
        { ref: 'trigger', attrs: { type: type, size: dropdownSize },
          'class': 'el-dropdown__caret-button' },
        [h('i', { 'class': 'el-dropdown__icon el-icon-arrow-down' })]
      )]);
  
      return h(
        'div',
        { 'class': 'el-dropdown', directives: [{
            name: 'clickoutside',
            value: hide
          }]
        },
        [triggerElm, this.$slots.dropdown]
      );
    }
  };
  
  /***/ }),
  
  /***/ 9:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/mixins/migrating");
  
  /***/ })
  
  /******/ });