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 = 316);
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ 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
    }
  }
  
  
  /***/ }),
  
  /***/ 109:
  /***/ (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_loading_vue__ = __webpack_require__(110);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_loading_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_loading_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_loading_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_loading_vue__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c1583ec0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_loading_vue__ = __webpack_require__(318);
  var normalizeComponent = __webpack_require__(0)
  /* script */
  
  
  /* template */
  
  /* 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_loading_vue___default.a,
    __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c1583ec0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_loading_vue__["a" /* default */],
    __vue_template_functional__,
    __vue_styles__,
    __vue_scopeId__,
    __vue_module_identifier__
  )
  
  /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  
  
  /***/ }),
  
  /***/ 11:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/utils/merge");
  
  /***/ }),
  
  /***/ 110:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  
  exports.default = {
    data: function data() {
      return {
        text: null,
        spinner: null,
        background: null,
        fullscreen: true,
        visible: false,
        customClass: ''
      };
    },
  
  
    methods: {
      handleAfterLeave: function handleAfterLeave() {
        this.$emit('after-leave');
      },
      setText: function setText(text) {
        this.text = text;
      }
    }
  };
  
  /***/ }),
  
  /***/ 111:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/utils/after-leave");
  
  /***/ }),
  
  /***/ 13:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/utils/popup");
  
  /***/ }),
  
  /***/ 2:
  /***/ (function(module, exports) {
  
  module.exports = require("element-ui/lib/utils/dom");
  
  /***/ }),
  
  /***/ 316:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _directive = __webpack_require__(317);
  
  var _directive2 = _interopRequireDefault(_directive);
  
  var _index = __webpack_require__(319);
  
  var _index2 = _interopRequireDefault(_index);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  exports.default = {
    install: function install(Vue) {
      Vue.use(_directive2.default);
      Vue.prototype.$loading = _index2.default;
    },
  
    directive: _directive2.default,
    service: _index2.default
  };
  
  /***/ }),
  
  /***/ 317:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _vue = __webpack_require__(5);
  
  var _vue2 = _interopRequireDefault(_vue);
  
  var _loading = __webpack_require__(109);
  
  var _loading2 = _interopRequireDefault(_loading);
  
  var _dom = __webpack_require__(2);
  
  var _popup = __webpack_require__(13);
  
  var _afterLeave = __webpack_require__(111);
  
  var _afterLeave2 = _interopRequireDefault(_afterLeave);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var Mask = _vue2.default.extend(_loading2.default);
  
  var loadingDirective = {};
  loadingDirective.install = function (Vue) {
    if (Vue.prototype.$isServer) return;
    var toggleLoading = function toggleLoading(el, binding) {
      if (binding.value) {
        Vue.nextTick(function () {
          if (binding.modifiers.fullscreen) {
            el.originalPosition = (0, _dom.getStyle)(document.body, 'position');
            el.originalOverflow = (0, _dom.getStyle)(document.body, 'overflow');
            el.maskStyle.zIndex = _popup.PopupManager.nextZIndex();
  
            (0, _dom.addClass)(el.mask, 'is-fullscreen');
            insertDom(document.body, el, binding);
          } else {
            (0, _dom.removeClass)(el.mask, 'is-fullscreen');
  
            if (binding.modifiers.body) {
              el.originalPosition = (0, _dom.getStyle)(document.body, 'position');
  
              ['top', 'left'].forEach(function (property) {
                var scroll = property === 'top' ? 'scrollTop' : 'scrollLeft';
                el.maskStyle[property] = el.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] - parseInt((0, _dom.getStyle)(document.body, 'margin-' + property), 10) + 'px';
              });
              ['height', 'width'].forEach(function (property) {
                el.maskStyle[property] = el.getBoundingClientRect()[property] + 'px';
              });
  
              insertDom(document.body, el, binding);
            } else {
              el.originalPosition = (0, _dom.getStyle)(el, 'position');
              insertDom(el, el, binding);
            }
          }
        });
      } else {
        (0, _afterLeave2.default)(el.instance, function (_) {
          el.domVisible = false;
          var target = binding.modifiers.fullscreen || binding.modifiers.body ? document.body : el;
          (0, _dom.removeClass)(target, 'el-loading-parent--relative');
          (0, _dom.removeClass)(target, 'el-loading-parent--hidden');
          el.instance.hiding = false;
        }, 300, true);
        el.instance.visible = false;
        el.instance.hiding = true;
      }
    };
    var insertDom = function insertDom(parent, el, binding) {
      if (!el.domVisible && (0, _dom.getStyle)(el, 'display') !== 'none' && (0, _dom.getStyle)(el, 'visibility') !== 'hidden') {
        Object.keys(el.maskStyle).forEach(function (property) {
          el.mask.style[property] = el.maskStyle[property];
        });
  
        if (el.originalPosition !== 'absolute' && el.originalPosition !== 'fixed') {
          (0, _dom.addClass)(parent, 'el-loading-parent--relative');
        }
        if (binding.modifiers.fullscreen && binding.modifiers.lock) {
          (0, _dom.addClass)(parent, 'el-loading-parent--hidden');
        }
        el.domVisible = true;
  
        parent.appendChild(el.mask);
        Vue.nextTick(function () {
          if (el.instance.hiding) {
            el.instance.$emit('after-leave');
          } else {
            el.instance.visible = true;
          }
        });
        el.domInserted = true;
      }
    };
  
    Vue.directive('loading', {
      bind: function bind(el, binding, vnode) {
        var textExr = el.getAttribute('element-loading-text');
        var spinnerExr = el.getAttribute('element-loading-spinner');
        var backgroundExr = el.getAttribute('element-loading-background');
        var customClassExr = el.getAttribute('element-loading-custom-class');
        var vm = vnode.context;
        var mask = new Mask({
          el: document.createElement('div'),
          data: {
            text: vm && vm[textExr] || textExr,
            spinner: vm && vm[spinnerExr] || spinnerExr,
            background: vm && vm[backgroundExr] || backgroundExr,
            customClass: vm && vm[customClassExr] || customClassExr,
            fullscreen: !!binding.modifiers.fullscreen
          }
        });
        el.instance = mask;
        el.mask = mask.$el;
        el.maskStyle = {};
  
        binding.value && toggleLoading(el, binding);
      },
  
      update: function update(el, binding) {
        el.instance.setText(el.getAttribute('element-loading-text'));
        if (binding.oldValue !== binding.value) {
          toggleLoading(el, binding);
        }
      },
  
      unbind: function unbind(el, binding) {
        if (el.domInserted) {
          el.mask && el.mask.parentNode && el.mask.parentNode.removeChild(el.mask);
          toggleLoading(el, { value: false, modifiers: binding.modifiers });
        }
      }
    });
  };
  
  exports.default = loadingDirective;
  
  /***/ }),
  
  /***/ 318:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"el-loading-fade"},on:{"after-leave":_vm.handleAfterLeave}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.visible),expression:"visible"}],staticClass:"el-loading-mask",class:[_vm.customClass, { 'is-fullscreen': _vm.fullscreen }],style:({ backgroundColor: _vm.background || '' })},[_c('div',{staticClass:"el-loading-spinner"},[(!_vm.spinner)?_c('svg',{staticClass:"circular",attrs:{"viewBox":"25 25 50 50"}},[_c('circle',{staticClass:"path",attrs:{"cx":"50","cy":"50","r":"20","fill":"none"}})]):_c('i',{class:_vm.spinner}),(_vm.text)?_c('p',{staticClass:"el-loading-text"},[_vm._v(_vm._s(_vm.text))]):_vm._e()])])])}
  var staticRenderFns = []
  var esExports = { render: render, staticRenderFns: staticRenderFns }
  /* harmony default export */ __webpack_exports__["a"] = (esExports);
  
  /***/ }),
  
  /***/ 319:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _vue = __webpack_require__(5);
  
  var _vue2 = _interopRequireDefault(_vue);
  
  var _loading = __webpack_require__(109);
  
  var _loading2 = _interopRequireDefault(_loading);
  
  var _dom = __webpack_require__(2);
  
  var _popup = __webpack_require__(13);
  
  var _afterLeave = __webpack_require__(111);
  
  var _afterLeave2 = _interopRequireDefault(_afterLeave);
  
  var _merge = __webpack_require__(11);
  
  var _merge2 = _interopRequireDefault(_merge);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var LoadingConstructor = _vue2.default.extend(_loading2.default);
  
  var defaults = {
    text: null,
    fullscreen: true,
    body: false,
    lock: false,
    customClass: ''
  };
  
  var fullscreenLoading = void 0;
  
  LoadingConstructor.prototype.originalPosition = '';
  LoadingConstructor.prototype.originalOverflow = '';
  
  LoadingConstructor.prototype.close = function () {
    var _this = this;
  
    if (this.fullscreen) {
      fullscreenLoading = undefined;
    }
    (0, _afterLeave2.default)(this, function (_) {
      var target = _this.fullscreen || _this.body ? document.body : _this.target;
      (0, _dom.removeClass)(target, 'el-loading-parent--relative');
      (0, _dom.removeClass)(target, 'el-loading-parent--hidden');
      if (_this.$el && _this.$el.parentNode) {
        _this.$el.parentNode.removeChild(_this.$el);
      }
      _this.$destroy();
    }, 300);
    this.visible = false;
  };
  
  var addStyle = function addStyle(options, parent, instance) {
    var maskStyle = {};
    if (options.fullscreen) {
      instance.originalPosition = (0, _dom.getStyle)(document.body, 'position');
      instance.originalOverflow = (0, _dom.getStyle)(document.body, 'overflow');
      maskStyle.zIndex = _popup.PopupManager.nextZIndex();
    } else if (options.body) {
      instance.originalPosition = (0, _dom.getStyle)(document.body, 'position');
      ['top', 'left'].forEach(function (property) {
        var scroll = property === 'top' ? 'scrollTop' : 'scrollLeft';
        maskStyle[property] = options.target.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] + 'px';
      });
      ['height', 'width'].forEach(function (property) {
        maskStyle[property] = options.target.getBoundingClientRect()[property] + 'px';
      });
    } else {
      instance.originalPosition = (0, _dom.getStyle)(parent, 'position');
    }
    Object.keys(maskStyle).forEach(function (property) {
      instance.$el.style[property] = maskStyle[property];
    });
  };
  
  var Loading = function Loading() {
    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  
    if (_vue2.default.prototype.$isServer) return;
    options = (0, _merge2.default)({}, defaults, options);
    if (typeof options.target === 'string') {
      options.target = document.querySelector(options.target);
    }
    options.target = options.target || document.body;
    if (options.target !== document.body) {
      options.fullscreen = false;
    } else {
      options.body = true;
    }
    if (options.fullscreen && fullscreenLoading) {
      return fullscreenLoading;
    }
  
    var parent = options.body ? document.body : options.target;
    var instance = new LoadingConstructor({
      el: document.createElement('div'),
      data: options
    });
  
    addStyle(options, parent, instance);
    if (instance.originalPosition !== 'absolute' && instance.originalPosition !== 'fixed') {
      (0, _dom.addClass)(parent, 'el-loading-parent--relative');
    }
    if (options.fullscreen && options.lock) {
      (0, _dom.addClass)(parent, 'el-loading-parent--hidden');
    }
    parent.appendChild(instance.$el);
    _vue2.default.nextTick(function () {
      instance.visible = true;
    });
    if (options.fullscreen) {
      fullscreenLoading = instance;
    }
    return instance;
  };
  
  exports.default = Loading;
  
  /***/ }),
  
  /***/ 5:
  /***/ (function(module, exports) {
  
  module.exports = require("vue");
  
  /***/ })
  
  /******/ });