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__(155);


/***/ }),

/***/ 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
	  }
	}


/***/ }),

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

	'use strict';

	exports.__esModule = true;

	var _locale = __webpack_require__(6);

	exports.default = {
	  methods: {
	    t: function t() {
	      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	        args[_key] = arguments[_key];
	      }

	      return _locale.t.apply(this, args);
	    },
	    isSafari: function isSafari() {
	      return typeof navigator !== 'undefined' && /Version\/[\d\.]+.*Safari/.test(navigator.userAgent);
	    }
	  }
	};

/***/ }),

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

	'use strict';

	exports.__esModule = true;
	exports.i18n = exports.use = exports.t = undefined;

	var _en = __webpack_require__(7);

	var _en2 = _interopRequireDefault(_en);

	var _vue = __webpack_require__(8);

	var _vue2 = _interopRequireDefault(_vue);

	var _deepmerge = __webpack_require__(9);

	var _deepmerge2 = _interopRequireDefault(_deepmerge);

	var _format = __webpack_require__(10);

	var _format2 = _interopRequireDefault(_format);

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

	var format = (0, _format2.default)(_vue2.default);
	var lang = _en2.default;
	var merged = false;
	var i18nHandler = function i18nHandler() {
	  var vuei18n = Object.getPrototypeOf(this || _vue2.default).$t;
	  if (typeof vuei18n === 'function' && !!_vue2.default.locale) {
	    if (!merged) {
	      merged = true;
	      _vue2.default.locale(_vue2.default.config.lang, (0, _deepmerge2.default)(lang, _vue2.default.locale(_vue2.default.config.lang) || {}, { clone: true }));
	    }
	    return vuei18n.apply(this, arguments);
	  }
	};

	var t = exports.t = function t(path, options) {
	  var value = i18nHandler.apply(this, arguments);
	  if (value !== null && value !== undefined) return value;

	  var array = path.split('.');
	  var current = lang;

	  for (var i = 0, j = array.length; i < j; i++) {
	    var property = array[i];
	    value = current[property];
	    if (i === j - 1) return format(value, options);
	    if (!value) return '';
	    current = value;
	  }
	  return '';
	};

	var use = exports.use = function use(l) {
	  lang = l || lang;
	};

	var i18n = exports.i18n = function i18n(fn) {
	  i18nHandler = fn || i18nHandler;
	};

	exports.default = { use: use, t: t, i18n: i18n };

/***/ }),

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

	'use strict';

	exports.__esModule = true;
	exports.default = {
	  el: {
	    colorpicker: {
	      confirm: 'OK',
	      clear: 'Clear'
	    },
	    dialog: {
	      close: 'Close'
	    },
	    carousel: {
	      carousel: 'Carousel button',
	      carouselPage: 'Carousel Page',
	      carouselTitle: 'Carousel'
	    },
	    datepicker: {
	      selectDateTime: 'Select meeting date and time',
	      presetDate: 'Choose a preset date range:',
	      fromStartDate: 'From (Start date)',
	      toEndDate: 'To (End date)',
	      previousMonth: 'Go to previous month',
	      nextMonth: 'Go to next month',
	      now: 'Now',
	      today: 'Today',
	      cancel: 'Cancel',
	      clear: 'Clear',
	      confirm: 'OK',
	      selectDate: 'Select date',
	      selectTime: 'Select time',
	      startDate: 'Start Date',
	      startTime: 'Start Time',
	      endDate: 'End Date',
	      endTime: 'End Time',
	      year: '',
	      month1: 'Jan',
	      month2: 'Feb',
	      month3: 'Mar',
	      month4: 'Apr',
	      month5: 'May',
	      month6: 'Jun',
	      month7: 'Jul',
	      month8: 'Aug',
	      month9: 'Sep',
	      month10: 'Oct',
	      month11: 'Nov',
	      month12: 'Dec',
	      from: 'From',
	      to: 'to',
	      customRange: 'Custom Range',
	      // week: 'week',
	      weeks: {
	        sun: 'Sun',
	        mon: 'Mon',
	        tue: 'Tue',
	        wed: 'Wed',
	        thu: 'Thu',
	        fri: 'Fri',
	        sat: 'Sat'
	      },
	      months: {
	        jan: 'Jan',
	        feb: 'Feb',
	        mar: 'Mar',
	        apr: 'Apr',
	        may: 'May',
	        jun: 'Jun',
	        jul: 'Jul',
	        aug: 'Aug',
	        sep: 'Sep',
	        oct: 'Oct',
	        nov: 'Nov',
	        dec: 'Dec'
	      }
	    },
	    select: {
	      loading: 'Loading',
	      noMatch: 'No matching data',
	      noData: 'No data',
	      placeholder: 'Select'
	    },
	    cascader: {
	      noMatch: 'No matching data',
	      loading: 'Loading',
	      placeholder: 'Select'
	    },
	    pagination: {
	      goto: 'Go to',
	      pagesize: '/page',
	      total: 'Total {total}',
	      pageClassifier: ''
	    },
	    messagebox: {
	      title: 'Message',
	      confirm: 'OK',
	      cancel: 'Cancel',
	      error: 'Illegal input'
	    },
	    upload: {
	      delete: 'Delete',
	      preview: 'Preview',
	      continue: 'Continue'
	    },
	    table: {
	      emptyText: 'No Data',
	      confirmFilter: 'Confirm',
	      resetFilter: 'Reset',
	      clearFilter: 'All',
	      sumText: 'Sum'
	    },
	    tree: {
	      emptyText: 'No Data'
	    },
	    transfer: {
	      noMatch: 'No matching data',
	      noData: 'No data',
	      titles: ['List 1', 'List 2'], // to be translated
	      filterPlaceholder: 'Enter keyword', // to be translated
	      noCheckedFormat: '{total} items', // to be translated
	      hasCheckedFormat: '{checked}/{total} checked' // to be translated
	    },
	    country: {
	      'AL': 'Albania',
	      'DZ': 'Algeria',
	      'AS': 'American Samoa',
	      'AD': 'Andorra',
	      'AO': 'Angola',
	      'AI': 'Anguilla',
	      'AQ': 'Antarctica',
	      'AG': 'Antigua (including Barbuda)',
	      'AR': 'Argentina',
	      'AM': 'Armenia',
	      'AW': 'Aruba',
	      'AT': 'Austria',
	      'AU': 'Australia',
	      'AZ': 'Azerbaijan',
	      'BS': 'Bahamas',
	      'BH': 'Bahrain',
	      'BD': 'Bangladesh',
	      'BB': 'Barbados',
	      'BY': 'Belarus',
	      'BE': 'Belgium',
	      'BZ': 'Belize',
	      'BJ': 'Benin',
	      'BM': 'Bermuda',
	      'BT': 'Bhutan',
	      'BO': 'Bolivia',
	      'BA': 'Bosnia-Herzegovina',
	      'BW': 'Botswana',
	      'BR': 'Brazil',
	      'VI': 'British Virgin Islands',
	      'BN': 'Brunei',
	      'BG': 'Bulgaria',
	      'BF': 'Burkina Faso',
	      'BI': 'Burundi',
	      'KH': 'Cambodia',
	      'CM': 'Cameroon',
	      'CA': 'Canada',
	      'CV': 'Cape Verde Island',
	      'KY': 'Cayman Islands',
	      'CF': 'Central African Republic',
	      'TD': 'Chad Republic',
	      'CL': 'Chile',
	      'CN': 'China',
	      'CO': 'Colombia',
	      'KM': 'Comoros',
	      'CK': 'Cook Islands',
	      'HR': 'Croatia',
	      'CU': 'Cuba',
	      'CY': 'Cyprus',
	      'CZ': 'Czech Republic',
	      'DK': 'Denmark',
	      'DJ': 'Djibouti',
	      'DM': 'Dominica',
	      'DO': 'Dominican Republic',
	      'EC': 'Ecuador',
	      'EG': 'Egypt outside Cairo',
	      'SV': 'El Salvador',
	      'GQ': 'Equatorial Guinea',
	      'ER': 'Eritrea',
	      'EE': 'Estonia',
	      'ET': 'Ethiopia',
	      'FO': 'Faeroe Islands',
	      'FK': 'Falkland Islands',
	      'FJ': 'Fiji Islands',
	      'FI': 'Finland',
	      'FR': 'France',
	      'GF': 'French Guiana',
	      'PF': 'French Polynesia',
	      'GA': 'Gabon Republic',
	      'GM': 'Gambia',
	      'GE': 'Georgia',
	      'DE': 'Germany',
	      'GH': 'Ghana',
	      'GI': 'Gibraltar',
	      'GR': 'Greece',
	      'GL': 'Greenland',
	      'GD': 'Grenada',
	      'GP': 'Guadeloupe',
	      'GT': 'Guatemala',
	      'GW': 'Guinea-Bissau',
	      'GN': 'Guinea',
	      'GY': 'Guyana',
	      'HT': 'Haiti',
	      'HN': 'Honduras',
	      'HK': 'Hong Kong',
	      'HU': 'Hungary',
	      'IS': 'Iceland',
	      'IN': 'India',
	      'ID': 'Indonesia',
	      'IR': 'Iran',
	      'IQ': 'Iraq',
	      'IE': 'Ireland',
	      'IL': 'Israel',
	      'IT': 'Italy',
	      'CI': 'Ivory Coast',
	      'JM': 'Jamaica',
	      'JP': 'Japan',
	      'JO': 'Jordan',
	      'KZ': 'Kazakhstan',
	      'KE': 'Kenya',
	      'KI': 'Kiribati',
	      'KP': 'Korea, North',
	      'KR': 'Korea, South',
	      'KW': 'Kuwait',
	      'KG': 'Kyrgyzstan',
	      'LA': 'Laos',
	      'LV': 'Latvia',
	      'LB': 'Lebanon',
	      'LS': 'Lesotho',
	      'LR': 'Liberia',
	      'LY': 'Libya',
	      'LI': 'Liechtenstein',
	      'LT': 'Lithuania',
	      'LU': 'Luxembourg',
	      'MO': 'Macao',
	      'MG': 'Madagascar',
	      'MW': 'Malawi',
	      'MY': 'Malaysia',
	      'MV': 'Maldives',
	      'ML': 'Mali',
	      'MH': 'Marshall Islands',
	      'MR': 'Mauritania',
	      'MU': 'Mauritius',
	      'YT': 'Mayotte Island',
	      'FM': 'Micronesia',
	      'MD': 'Moldova',
	      'MC': 'Monaco',
	      'MN': 'Mongolia',
	      'MA': 'Morocco',
	      'MZ': 'Mozambique',
	      'MM': 'Myanmar',
	      'NA': 'Namibia',
	      'CD': 'Congo, Democratic Republic of the Congo',
	      'CG': 'Congo, Republic of the Congo',
	      'RS': 'Serbia',
	      'NP': 'Nepal',
	      'NL': 'Netherlands',
	      'NC': 'New Caledonia',
	      'NI': 'Nicaragua',
	      'NE': 'Niger',
	      'NU': 'Niue',
	      'NF': 'Norfolk Island',
	      'NO': 'Norway',
	      'PK': 'Pakistan',
	      'PW': 'Palau',
	      'PA': 'Panama',
	      'PG': 'Papua New Guinea',
	      'PE': 'Peru',
	      'PH': 'Philippines',
	      'PL': 'Poland',
	      'PT': 'Portugal',
	      'RO': 'Romania',
	      'RU': 'Russia',
	      'RW': 'Rwanda',
	      'LC': 'St Lucia',
	      'VC': 'St Vincent',
	      'SM': 'San Marino',
	      'SA': 'Saudi Arabia',
	      'SN': 'Senegal Republic',
	      'SL': 'Sierra Leone',
	      'SG': 'Singapore',
	      'SK': 'Slovakia',
	      'SI': 'Slovenia',
	      'SB': 'Solomon Islands',
	      'SO': 'Somalia',
	      'ZA': 'South Africa',
	      'ES': 'Spain',
	      'LK': 'Sri Lanka',
	      'SD': 'Sudan',
	      'SR': 'Suriname',
	      'SZ': 'Swaziland',
	      'SE': 'Sweden',
	      'CH': 'Switzerland',
	      'SY': 'Syria',
	      'TW': 'Taiwan',
	      'TJ': 'Tajikistan',
	      'TZ': 'Tanzania',
	      'TH': 'Thailand',
	      'TG': 'Togo',
	      'TO': 'Tonga Islands',
	      'TT': 'Trinidad and Tobago',
	      'TN': 'Tunisia',
	      'TR': 'Turkey',
	      'TM': 'Turkmenistan',
	      'TC': 'Turks and Caicos',
	      'TV': 'Tuvalu',
	      'UG': 'Uganda',
	      'UA': 'Ukraine',
	      'AE': 'United Arab Emirates',
	      'GB': 'United Kingdom',
	      'US': 'United States of America',
	      'UY': 'Uruguay',
	      'UZ': 'Uzbekistan',
	      'VU': 'Vanuatu',
	      'VA': 'Vatican City',
	      'VE': 'Venezuela',
	      'VN': 'Vietnam',
	      'WF': 'Wallis And Futuna Islands',
	      'WS': 'Western Samoa',
	      'YE': 'Yemen',
	      'ZM': 'Zambia',
	      'ZW': 'Zimbabwe',
	      'AF': 'Afghanistan',
	      'RE': 'French Depts. (Indian Ocean)',
	      'MP': 'Northern Mariana Islands',
	      'DG': 'Diego Garcia',
	      'MK': 'Macedonia',
	      'MT': 'Malta',
	      'MS': 'Montserrat',
	      'NZ': 'New Zealand',
	      'OM': 'Oman',
	      'PY': 'Paraguay',
	      'QA': 'Qatar',
	      'KN': 'St Kitts and Nevis',
	      'SC': 'Seychelles Islands',
	      'MX': 'Mexico'
	    }
	  }
	};

/***/ }),

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

	module.exports = require("vue");

/***/ }),

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

	module.exports = require("deepmerge");

/***/ }),

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

	'use strict';

	exports.__esModule = true;

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	exports.default = function (Vue) {

	  /**
	   * template
	   *
	   * @param {String} string
	   * @param {Array} ...args
	   * @return {String}
	   */

	  function template(string) {
	    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
	      args[_key - 1] = arguments[_key];
	    }

	    if (args.length === 1 && _typeof(args[0]) === 'object') {
	      args = args[0];
	    }

	    if (!args || !args.hasOwnProperty) {
	      args = {};
	    }

	    if (string !== undefined) {
	      return string.replace(RE_NARGS, function (match, prefix, i, index) {
	        var result = void 0;

	        if (string[index - 1] === '{' && string[index + match.length] === '}') {
	          return i;
	        } else {
	          result = (0, _util.hasOwn)(args, i) ? args[i] : null;
	          if (result === null || result === undefined) {
	            return '';
	          }

	          return result;
	        }
	      });
	    }
	  }
	  return template;
	};

	var _util = __webpack_require__(11);

	var RE_NARGS = /(%|)\{([0-9a-zA-Z_]+)\}/g;
	/**
	 *  String format template
	 *  - Inspired:
	 *    https://github.com/Matt-Esch/string-template/index.js
	 */

/***/ }),

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

	'use strict';

	exports.__esModule = true;

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	exports.hasOwn = hasOwn;
	exports.toObject = toObject;
	var hasOwnProperty = Object.prototype.hasOwnProperty;
	function hasOwn(obj, key) {
	  return hasOwnProperty.call(obj, key);
	};

	var generateId = exports.generateId = function generateId() {
	  return Math.floor(Math.random() * 10000);
	};
	var kebabCase = exports.kebabCase = function kebabCase(str) {
	  var hyphenateRE = /([^-])([A-Z])/g;
	  return str.replace(hyphenateRE, '$1-$2').replace(hyphenateRE, '$1-$2').toLowerCase();
	};

	function extend(to, _from) {
	  for (var key in _from) {
	    to[key] = _from[key];
	  }
	  return to;
	};

	function toObject(arr) {
	  var res = {};
	  for (var i = 0; i < arr.length; i++) {
	    if (arr[i]) {
	      extend(res, arr[i]);
	    }
	  }
	  return res;
	};

	var getValueByPath = exports.getValueByPath = function getValueByPath(object, prop) {
	  prop = prop || '';
	  var paths = prop.split('.');
	  var current = object;
	  var result = null;
	  for (var i = 0, j = paths.length; i < j; i++) {
	    var path = paths[i];
	    if (current === undefined) break;

	    if (i === j - 1) {
	      result = current[path];
	      break;
	    }
	    current = current[path];
	  }
	  return result;
	};

	var autoprefixer = exports.autoprefixer = function autoprefixer(style) {
	  if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') return style;
	  var rules = ['transform', 'transition', 'animation'];
	  var prefixes = ['ms-', 'webkit-'];
	  rules.forEach(function (rule) {
	    var value = style[rule];
	    if (rule && value) {
	      prefixes.forEach(function (prefix) {
	        style[prefix + rule] = value;
	      });
	    }
	  });
	  return style;
	};

	var arrayFindIndex = exports.arrayFindIndex = function arrayFindIndex(arr, pred) {
	  for (var i = 0; i !== arr.length; ++i) {
	    if (pred(arr[i])) {
	      return i;
	    }
	  }
	  return -1;
	};

	var arrayFind = exports.arrayFind = function arrayFind(arr, pred) {
	  var idx = arrayFindIndex(arr, pred);
	  return idx !== -1 ? arr[idx] : undefined;
	};

	// coerce truthy value to array
	var coerceTruthyValueToArray = exports.coerceTruthyValueToArray = function coerceTruthyValueToArray(val) {
	  if (Array.isArray(val)) {
	    return val;
	  } else if (val) {
	    return [val];
	  } else {
	    return [];
	  }
	};

/***/ }),

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

	"use strict";

	exports.__esModule = true;
	function _broadcast(componentName, eventName, params) {
	  this.$children.forEach(function (child) {
	    var name = child.$options.componentName;

	    if (name === componentName) {
	      child.$emit.apply(child, [eventName].concat(params));
	    } else {
	      _broadcast.apply(child, [componentName, eventName].concat([params]));
	    }
	  });
	}
	exports.default = {
	  methods: {
	    dispatch: function dispatch(componentName, eventName, params) {
	      var parent = this.$parent || this.$root;
	      var name = parent.$options.componentName;

	      while (parent && (!name || name !== componentName)) {
	        parent = parent.$parent;

	        if (parent) {
	          name = parent.$options.componentName;
	        }
	      }
	      if (parent) {
	        parent.$emit.apply(parent, [eventName].concat(params));
	      }
	    },
	    broadcast: function broadcast(componentName, eventName, params) {
	      _broadcast.call(this, componentName, eventName, params);
	    }
	  }
	};

/***/ }),

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

	"use strict";

	exports.__esModule = true;

	exports.default = function (target) {
	  for (var i = 1, j = arguments.length; i < j; i++) {
	    var source = arguments[i] || {};
	    for (var prop in source) {
	      if (source.hasOwnProperty(prop)) {
	        var value = source[prop];
	        if (value !== undefined) {
	          target[prop] = value;
	        }
	      }
	    }
	  }

	  return target;
	};

	;

/***/ }),

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

	'use strict';

	exports.__esModule = true;
	exports.PopupManager = undefined;

	var _vue = __webpack_require__(8);

	var _vue2 = _interopRequireDefault(_vue);

	var _merge = __webpack_require__(21);

	var _merge2 = _interopRequireDefault(_merge);

	var _popupManager = __webpack_require__(28);

	var _popupManager2 = _interopRequireDefault(_popupManager);

	var _scrollbarWidth = __webpack_require__(30);

	var _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);

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

	var idSeed = 1;
	var transitions = [];

	var hookTransition = function hookTransition(transition) {
	  if (transitions.indexOf(transition) !== -1) return;

	  var getVueInstance = function getVueInstance(element) {
	    var instance = element.__vue__;
	    if (!instance) {
	      var textNode = element.previousSibling;
	      if (textNode.__vue__) {
	        instance = textNode.__vue__;
	      }
	    }
	    return instance;
	  };

	  _vue2.default.transition(transition, {
	    afterEnter: function afterEnter(el) {
	      var instance = getVueInstance(el);

	      if (instance) {
	        instance.doAfterOpen && instance.doAfterOpen();
	      }
	    },
	    afterLeave: function afterLeave(el) {
	      var instance = getVueInstance(el);

	      if (instance) {
	        instance.doAfterClose && instance.doAfterClose();
	      }
	    }
	  });
	};

	var scrollBarWidth = void 0;

	var getDOM = function getDOM(dom) {
	  if (dom.nodeType === 3) {
	    dom = dom.nextElementSibling || dom.nextSibling;
	    getDOM(dom);
	  }
	  return dom;
	};

	exports.default = {
	  model: {
	    prop: 'visible',
	    event: 'visible-change'
	  },
	  props: {
	    visible: {
	      type: Boolean,
	      default: false
	    },
	    transition: {
	      type: String,
	      default: ''
	    },
	    openDelay: {},
	    closeDelay: {},
	    zIndex: {},
	    modal: {
	      type: Boolean,
	      default: false
	    },
	    modalFade: {
	      type: Boolean,
	      default: true
	    },
	    modalClass: {},
	    modalAppendToBody: {
	      type: Boolean,
	      default: false
	    },
	    lockScroll: {
	      type: Boolean,
	      default: true
	    },
	    closeOnPressEscape: {
	      type: Boolean,
	      default: false
	    },
	    closeOnClickModal: {
	      type: Boolean,
	      default: false
	    }
	  },

	  created: function created() {
	    if (this.transition) {
	      hookTransition(this.transition);
	    }
	  },
	  beforeMount: function beforeMount() {
	    this._popupId = 'popup-' + idSeed++;
	    _popupManager2.default.register(this._popupId, this);
	  },
	  beforeDestroy: function beforeDestroy() {
	    _popupManager2.default.deregister(this._popupId);
	    _popupManager2.default.closeModal(this._popupId);
	    if (this.modal && this.bodyOverflow !== null && this.bodyOverflow !== 'hidden') {
	      document.body.style.overflow = this.bodyOverflow;
	      document.body.style.paddingRight = this.bodyPaddingRight;
	    }
	    this.bodyOverflow = null;
	    this.bodyPaddingRight = null;
	  },
	  data: function data() {
	    return {
	      opened: false,
	      bodyOverflow: null,
	      bodyPaddingRight: null,
	      rendered: false
	    };
	  },


	  watch: {
	    visible: function visible(val) {
	      var _this = this;

	      if (val) {
	        if (this._opening) return;
	        if (!this.rendered) {
	          this.rendered = true;
	          _vue2.default.nextTick(function () {
	            _this.open();
	          });
	        } else {
	          this.open();
	        }
	      } else {
	        this.close();
	      }
	    }
	  },

	  methods: {
	    open: function open(options) {
	      var _this2 = this;

	      if (!this.rendered) {
	        this.rendered = true;
	        this.$emit('visible-change', true);
	      }

	      var props = (0, _merge2.default)({}, this.$props || this, options);

	      if (this._closeTimer) {
	        clearTimeout(this._closeTimer);
	        this._closeTimer = null;
	      }
	      clearTimeout(this._openTimer);

	      var openDelay = Number(props.openDelay);
	      if (openDelay > 0) {
	        this._openTimer = setTimeout(function () {
	          _this2._openTimer = null;
	          _this2.doOpen(props);
	        }, openDelay);
	      } else {
	        this.doOpen(props);
	      }
	    },
	    doOpen: function doOpen(props) {
	      if (this.$isServer) return;
	      if (this.willOpen && !this.willOpen()) return;
	      if (this.opened) return;

	      this._opening = true;

	      this.$emit('visible-change', true);

	      var dom = getDOM(this.$el);

	      var modal = props.modal;

	      var zIndex = props.zIndex;
	      if (zIndex) {
	        _popupManager2.default.zIndex = zIndex;
	      }

	      if (modal) {
	        if (this._closing) {
	          _popupManager2.default.closeModal(this._popupId);
	          this._closing = false;
	        }
	        _popupManager2.default.openModal(this._popupId, _popupManager2.default.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);
	        if (props.lockScroll) {
	          if (!this.bodyOverflow) {
	            this.bodyPaddingRight = document.body.style.paddingRight;
	            this.bodyOverflow = document.body.style.overflow;
	          }
	          scrollBarWidth = (0, _scrollbarWidth2.default)();
	          var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
	          if (scrollBarWidth > 0 && bodyHasOverflow) {
	            document.body.style.paddingRight = scrollBarWidth + 'px';
	          }
	          document.body.style.overflow = 'hidden';
	        }
	      }

	      if (getComputedStyle(dom).position === 'static') {
	        dom.style.position = 'absolute';
	      }

	      dom.style.zIndex = _popupManager2.default.nextZIndex();
	      this.opened = true;

	      this.onOpen && this.onOpen();

	      if (!this.transition) {
	        this.doAfterOpen();
	      }
	    },
	    doAfterOpen: function doAfterOpen() {
	      this._opening = false;
	    },
	    close: function close() {
	      var _this3 = this;

	      if (this.willClose && !this.willClose()) return;

	      if (this._openTimer !== null) {
	        clearTimeout(this._openTimer);
	        this._openTimer = null;
	      }
	      clearTimeout(this._closeTimer);

	      var closeDelay = Number(this.closeDelay);

	      if (closeDelay > 0) {
	        this._closeTimer = setTimeout(function () {
	          _this3._closeTimer = null;
	          _this3.doClose();
	        }, closeDelay);
	      } else {
	        this.doClose();
	      }
	    },
	    doClose: function doClose() {
	      var _this4 = this;

	      this.$emit('visible-change', false);
	      this._closing = true;

	      this.onClose && this.onClose();

	      if (this.lockScroll) {
	        setTimeout(function () {
	          if (_this4.modal && _this4.bodyOverflow !== 'hidden') {
	            document.body.style.overflow = _this4.bodyOverflow;
	            document.body.style.paddingRight = _this4.bodyPaddingRight;
	          }
	          _this4.bodyOverflow = null;
	          _this4.bodyPaddingRight = null;
	        }, 200);
	      }

	      this.opened = false;

	      if (!this.transition) {
	        this.doAfterClose();
	      }
	    },
	    doAfterClose: function doAfterClose() {
	      _popupManager2.default.closeModal(this._popupId);
	      this._closing = false;
	    }
	  }
	};
	exports.PopupManager = _popupManager2.default;

/***/ }),

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

	'use strict';

	exports.__esModule = true;

	var _vue = __webpack_require__(8);

	var _vue2 = _interopRequireDefault(_vue);

	var _dom = __webpack_require__(29);

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

	var hasModal = false;

	var getModal = function getModal() {
	  if (_vue2.default.prototype.$isServer) return;
	  var modalDom = PopupManager.modalDom;
	  if (modalDom) {
	    hasModal = true;
	  } else {
	    hasModal = false;
	    modalDom = document.createElement('div');
	    PopupManager.modalDom = modalDom;

	    modalDom.addEventListener('touchmove', function (event) {
	      event.preventDefault();
	      event.stopPropagation();
	    });

	    modalDom.addEventListener('click', function () {
	      PopupManager.doOnModalClick && PopupManager.doOnModalClick();
	    });
	  }

	  return modalDom;
	};

	var instances = {};

	var PopupManager = {
	  zIndex: 2000,

	  modalFade: true,

	  getInstance: function getInstance(id) {
	    return instances[id];
	  },

	  register: function register(id, instance) {
	    if (id && instance) {
	      instances[id] = instance;
	    }
	  },

	  deregister: function deregister(id) {
	    if (id) {
	      instances[id] = null;
	      delete instances[id];
	    }
	  },

	  nextZIndex: function nextZIndex() {
	    return PopupManager.zIndex++;
	  },

	  modalStack: [],

	  doOnModalClick: function doOnModalClick() {
	    var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];
	    if (!topItem) return;

	    var instance = PopupManager.getInstance(topItem.id);
	    if (instance && instance.closeOnClickModal) {
	      instance.close();
	    }
	  },

	  openModal: function openModal(id, zIndex, dom, modalClass, modalFade) {
	    if (_vue2.default.prototype.$isServer) return;
	    if (!id || zIndex === undefined) return;
	    this.modalFade = modalFade;

	    var modalStack = this.modalStack;

	    for (var i = 0, j = modalStack.length; i < j; i++) {
	      var item = modalStack[i];
	      if (item.id === id) {
	        return;
	      }
	    }

	    var modalDom = getModal();

	    (0, _dom.addClass)(modalDom, 'v-modal');
	    if (this.modalFade && !hasModal) {
	      (0, _dom.addClass)(modalDom, 'v-modal-enter');
	    }
	    if (modalClass) {
	      var classArr = modalClass.trim().split(/\s+/);
	      classArr.forEach(function (item) {
	        return (0, _dom.addClass)(modalDom, item);
	      });
	    }
	    setTimeout(function () {
	      (0, _dom.removeClass)(modalDom, 'v-modal-enter');
	    }, 200);

	    if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {
	      dom.parentNode.appendChild(modalDom);
	    } else {
	      document.body.appendChild(modalDom);
	    }

	    if (zIndex) {
	      modalDom.style.zIndex = zIndex;
	    }
	    modalDom.style.display = '';

	    this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });
	  },

	  closeModal: function closeModal(id) {
	    var modalStack = this.modalStack;
	    var modalDom = getModal();

	    if (modalStack.length > 0) {
	      var topItem = modalStack[modalStack.length - 1];
	      if (topItem.id === id) {
	        if (topItem.modalClass) {
	          var classArr = topItem.modalClass.trim().split(/\s+/);
	          classArr.forEach(function (item) {
	            return (0, _dom.removeClass)(modalDom, item);
	          });
	        }

	        modalStack.pop();
	        if (modalStack.length > 0) {
	          modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;
	        }
	      } else {
	        for (var i = modalStack.length - 1; i >= 0; i--) {
	          if (modalStack[i].id === id) {
	            modalStack.splice(i, 1);
	            break;
	          }
	        }
	      }
	    }

	    if (modalStack.length === 0) {
	      if (this.modalFade) {
	        (0, _dom.addClass)(modalDom, 'v-modal-leave');
	      }
	      setTimeout(function () {
	        if (modalStack.length === 0) {
	          if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);
	          modalDom.style.display = 'none';
	          PopupManager.modalDom = undefined;
	        }
	        (0, _dom.removeClass)(modalDom, 'v-modal-leave');
	      }, 200);
	    }
	  }
	};

	var getTopPopup = function getTopPopup() {
	  if (_vue2.default.prototype.$isServer) return;
	  if (PopupManager.modalStack.length > 0) {
	    var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];
	    if (!topPopup) return;
	    var instance = PopupManager.getInstance(topPopup.id);

	    return instance;
	  }
	};

	if (!_vue2.default.prototype.$isServer) {
	  // handle `esc` key when the popup is shown
	  window.addEventListener('keydown', function (event) {
	    if (event.keyCode === 27) {
	      var topPopup = getTopPopup();

	      if (topPopup && topPopup.closeOnPressEscape) {
	        topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close();
	      }
	    }
	  });

	  // keep focusing inside the popup by `tab` key
	  document.addEventListener('focusin', function (event) {
	    var topPopup = getTopPopup();

	    if (topPopup && !topPopup.$el.contains(event.target)) {
	      event.stopPropagation();
	      topPopup.$el.focus();
	    }
	  });
	}

	exports.default = PopupManager;

/***/ }),

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

	'use strict';

	exports.__esModule = true;
	exports.getStyle = exports.once = exports.off = exports.on = undefined;

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* istanbul ignore next */

	exports.hasClass = hasClass;
	exports.addClass = addClass;
	exports.removeClass = removeClass;
	exports.setStyle = setStyle;

	var _vue = __webpack_require__(8);

	var _vue2 = _interopRequireDefault(_vue);

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

	var isServer = _vue2.default.prototype.$isServer;
	var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
	var MOZ_HACK_REGEXP = /^moz([A-Z])/;
	var ieVersion = isServer ? 0 : Number(document.documentMode);

	/* istanbul ignore next */
	var trim = function trim(string) {
	  return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
	};
	/* istanbul ignore next */
	var camelCase = function camelCase(name) {
	  return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {
	    return offset ? letter.toUpperCase() : letter;
	  }).replace(MOZ_HACK_REGEXP, 'Moz$1');
	};

	/* istanbul ignore next */
	var on = exports.on = function () {
	  if (!isServer && document.addEventListener) {
	    return function (element, event, handler) {
	      if (element && event && handler) {
	        element.addEventListener(event, handler, false);
	      }
	    };
	  } else {
	    return function (element, event, handler) {
	      if (element && event && handler) {
	        element.attachEvent('on' + event, handler);
	      }
	    };
	  }
	}();

	/* istanbul ignore next */
	var off = exports.off = function () {
	  if (!isServer && document.removeEventListener) {
	    return function (element, event, handler) {
	      if (element && event) {
	        element.removeEventListener(event, handler, false);
	      }
	    };
	  } else {
	    return function (element, event, handler) {
	      if (element && event) {
	        element.detachEvent('on' + event, handler);
	      }
	    };
	  }
	}();

	/* istanbul ignore next */
	var once = exports.once = function once(el, event, fn) {
	  var listener = function listener() {
	    if (fn) {
	      fn.apply(this, arguments);
	    }
	    off(el, event, listener);
	  };
	  on(el, event, listener);
	};

	/* istanbul ignore next */
	function hasClass(el, cls) {
	  if (!el || !cls) return false;
	  if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');
	  if (el.classList) {
	    return el.classList.contains(cls);
	  } else {
	    return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
	  }
	};

	/* istanbul ignore next */
	function addClass(el, cls) {
	  if (!el) return;
	  var curClass = el.className;
	  var classes = (cls || '').split(' ');

	  for (var i = 0, j = classes.length; i < j; i++) {
	    var clsName = classes[i];
	    if (!clsName) continue;

	    if (el.classList) {
	      el.classList.add(clsName);
	    } else {
	      if (!hasClass(el, clsName)) {
	        curClass += ' ' + clsName;
	      }
	    }
	  }
	  if (!el.classList) {
	    el.className = curClass;
	  }
	};

	/* istanbul ignore next */
	function removeClass(el, cls) {
	  if (!el || !cls) return;
	  var classes = cls.split(' ');
	  var curClass = ' ' + el.className + ' ';

	  for (var i = 0, j = classes.length; i < j; i++) {
	    var clsName = classes[i];
	    if (!clsName) continue;

	    if (el.classList) {
	      el.classList.remove(clsName);
	    } else {
	      if (hasClass(el, clsName)) {
	        curClass = curClass.replace(' ' + clsName + ' ', ' ');
	      }
	    }
	  }
	  if (!el.classList) {
	    el.className = trim(curClass);
	  }
	};

	/* istanbul ignore next */
	var getStyle = exports.getStyle = ieVersion < 9 ? function (element, styleName) {
	  if (isServer) return;
	  if (!element || !styleName) return null;
	  styleName = camelCase(styleName);
	  if (styleName === 'float') {
	    styleName = 'styleFloat';
	  }
	  try {
	    switch (styleName) {
	      case 'opacity':
	        try {
	          return element.filters.item('alpha').opacity / 100;
	        } catch (e) {
	          return 1.0;
	        }
	      default:
	        return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null;
	    }
	  } catch (e) {
	    return element.style[styleName];
	  }
	} : function (element, styleName) {
	  if (isServer) return;
	  if (!element || !styleName) return null;
	  styleName = camelCase(styleName);
	  if (styleName === 'float') {
	    styleName = 'cssFloat';
	  }
	  try {
	    var computed = document.defaultView.getComputedStyle(element, '');
	    return element.style[styleName] || computed ? computed[styleName] : null;
	  } catch (e) {
	    return element.style[styleName];
	  }
	};

	/* istanbul ignore next */
	function setStyle(element, styleName, value) {
	  if (!element || !styleName) return;

	  if ((typeof styleName === 'undefined' ? 'undefined' : _typeof(styleName)) === 'object') {
	    for (var prop in styleName) {
	      if (styleName.hasOwnProperty(prop)) {
	        setStyle(element, prop, styleName[prop]);
	      }
	    }
	  } else {
	    styleName = camelCase(styleName);
	    if (styleName === 'opacity' && ieVersion < 9) {
	      element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
	    } else {
	      element.style[styleName] = value;
	    }
	  }
	};

/***/ }),

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

	'use strict';

	exports.__esModule = true;

	exports.default = function () {
	  if (_vue2.default.prototype.$isServer) return 0;
	  if (scrollBarWidth !== undefined) return scrollBarWidth;

	  var outer = document.createElement('div');
	  outer.className = 'el-scrollbar__wrap';
	  outer.style.visibility = 'hidden';
	  outer.style.width = '100px';
	  outer.style.position = 'absolute';
	  outer.style.top = '-9999px';
	  document.body.appendChild(outer);

	  var widthNoScroll = outer.offsetWidth;
	  outer.style.overflow = 'scroll';

	  var inner = document.createElement('div');
	  inner.style.width = '100%';
	  outer.appendChild(inner);

	  var widthWithScroll = inner.offsetWidth;
	  outer.parentNode.removeChild(outer);
	  scrollBarWidth = widthNoScroll - widthWithScroll;

	  return scrollBarWidth;
	};

	var _vue = __webpack_require__(8);

	var _vue2 = _interopRequireDefault(_vue);

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

	var scrollBarWidth = void 0;

	;

/***/ }),

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

	'use strict';

	exports.__esModule = true;
	exports.isHidden = isHidden;
	exports.isFocusable = isFocusable;
	exports.getFocusableItems = getFocusableItems;
	function isFunction(obj) {
	  return typeof obj === 'function';
	}
	function isHidden(el, root) {
	  if (!el) {
	    return true;
	  }
	  if (el.style.display === 'none') {
	    return true;
	  }
	  if (el.style.visibility === 'hidden') {
	    return true;
	  }
	  var style = window.getComputedStyle(el);
	  if (style.display === 'none') {
	    return true;
	  }
	  if (style.visibility === 'hidden') {
	    return true;
	  }
	  var node = el.parentElement;
	  if (node !== root) {
	    return isHidden(node, root);
	  }
	  return false;
	}
	function isFocusable(el) {
	  if (el.tabIndex > 0 || el.tabIndex === 0 && el.getAttribute('tabIndex') !== null) {
	    return true;
	  }
	  if (el.tabIndex < 0) {
	    return false;
	  }
	  if (el.disabled) {
	    return false;
	  }
	  switch (el.nodeName) {
	    case 'A':
	      return !!el.href && el.rel !== 'ignore';
	    case 'INPUT':
	      return el.type !== 'hidden' && el.type !== 'file';
	    case 'BUTTON':
	    case 'SELECT':
	    case 'TEXTAREA':
	      return true;
	    default:
	      return false;
	  }
	}
	;
	function getFocusableItems(el, filter) {
	  var items = [];
	  var itemNodes = el.querySelectorAll('[tabindex], a, button, input, textarea, select, [role="button"]');
	  if (!itemNodes || !itemNodes.length) {
	    return items;
	  }
	  var item = void 0;
	  for (var i = 0; i < itemNodes.length; i++) {
	    item = itemNodes[i];
	    if (isFunction(filter)) {
	      if (!filter(item)) {
	        continue;
	      }
	    }
	    if (isFocusable(item) && !isHidden(item, el)) {
	      items.push(item);
	    }
	  }
	  return items;
	}

/***/ }),

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

	'use strict';

	exports.__esModule = true;

	var _component = __webpack_require__(156);

	var _component2 = _interopRequireDefault(_component);

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

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

	exports.default = _component2.default;

/***/ }),

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

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

	module.exports = Component.exports


/***/ }),

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

	'use strict';

	exports.__esModule = true;

	var _popup = __webpack_require__(27);

	var _popup2 = _interopRequireDefault(_popup);

	var _emitter = __webpack_require__(19);

	var _emitter2 = _interopRequireDefault(_emitter);

	var _locale = __webpack_require__(5);

	var _locale2 = _interopRequireDefault(_locale);

	var _accessibility = __webpack_require__(114);

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

	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//

	exports.default = {
	  name: 'ElDialog',
	  mixins: [_popup2.default, _emitter2.default, _locale2.default],
	  props: {
	    title: {
	      type: String,
	      default: ''
	    },

	    modal: {
	      type: Boolean,
	      default: true
	    },

	    modalAppendToBody: {
	      type: Boolean,
	      default: true
	    },
	    appendToBody: {
	      type: Boolean,
	      default: false
	    },
	    lockScroll: {
	      type: Boolean,
	      default: true
	    },

	    closeOnClickModal: {
	      type: Boolean,
	      default: true
	    },

	    closeOnPressEscape: {
	      type: Boolean,
	      default: true
	    },

	    showClose: {
	      type: Boolean,
	      default: true
	    },

	    size: {
	      type: String,
	      default: 'small'
	    },

	    customClass: {
	      type: String,
	      default: ''
	    },

	    top: {
	      type: String,
	      default: '15%'
	    },
	    beforeClose: Function,
	    focusOnOpen: {
	      type: String,
	      default: ''
	    },
	    focusOnClose: {
	      type: String,
	      default: ''
	    }
	  },
	  watch: {
	    visible: function visible(val) {
	      var _this = this;

	      this.$emit('update:visible', val);
	      if (val) {
	        this.$emit('open');
	        this.$el.addEventListener('scroll', this.updatePopper);
	        this.$nextTick(function () {
	          _this.$refs.dialog.scrollTop = 0;
	          if (_this.focusOnOpen) {
	            _this.focusElement(_this.focusOnOpen, false, true);
	          } else {
	            _this.focusElement(_this.$refs.close);
	          }
	        });
	        if (this.appendToBody) {
	          document.body.appendChild(this.$el);
	        }
	      } else {
	        this.$el.removeEventListener('scroll', this.updatePopper);
	        this.$emit('close');
	        this.focusElement(this.focusOnClose, true);
	      }
	    }
	  },
	  computed: {
	    sizeClass: function sizeClass() {
	      return 'el-dialog--' + this.size;
	    },
	    style: function style() {
	      return this.size === 'full' ? {} : { 'top': this.top };
	    }
	  },
	  methods: {
	    handleKeyDown: function handleKeyDown(e) {
	      e.stopPropagation();
	      var footer = this.$slots.footer || this.$slots.default;
	      if (e.keyCode == 27) {
	        this.handleClose();
	        return;
	      }
	      var items = (0, _accessibility.getFocusableItems)(this.$el);
	      var first = items[0];
	      var latest = items[items.length - 1];

	      if (e.shiftKey) {
	        if (e.keyCode == 9 && e.target == first) {
	          e.preventDefault();
	          latest.focus();
	        }
	      } else {
	        if (latest && e.target === latest && e.keyCode == 9) {
	          e.preventDefault();
	          first.focus();
	        }
	      }
	    },
	    handleWrapperClick: function handleWrapperClick() {
	      if (!this.closeOnClickModal) return;
	      this.handleClose();
	    },
	    handleClose: function handleClose() {
	      if (typeof this.beforeClose === 'function') {
	        this.beforeClose(this.hide);
	      } else {
	        this.hide();
	      }
	    },
	    hide: function hide(cancel) {
	      if (cancel !== false) {
	        this.$emit('update:visible', false);
	        this.$emit('visible-change', false);
	      }
	    },
	    updatePopper: function updatePopper() {
	      this.broadcast('ElSelectDropdown', 'updatePopper');
	      this.broadcast('ElDropdownMenu', 'updatePopper');
	    },
	    getFocusElement: function getFocusElement(selector) {
	      var box = this.$slots.footer;
	      function getCanFocusEl(box, selector) {
	        var els = box.querySelectorAll(selector);
	        var n = els.length - 1;
	        var i = 0;
	        var first = els[0];
	        while (first && first.disabled && i <= n) {
	          i++;
	          first = els[n];
	        }
	        return first;
	      }
	      var first = void 0;
	      if (box && box.length) {
	        first = getCanFocusEl(box[0].elm, selector);
	      }
	      if (!first) {
	        first = getCanFocusEl(this.$slots.default[0].elm, selector);
	      }
	      return first;
	    },
	    focusElement: function focusElement(el, searchInBody, timeout) {
	      var ele = void 0;
	      if (!el) {
	        return;
	      }
	      if (typeof el === 'string') {
	        var container = this.$el;
	        if (searchInBody) {
	          container = document.body;
	          ele = container.querySelector(el);
	        } else {
	          ele = this.getFocusElement(el);
	        }

	        if (!ele) {
	          return;
	        }
	      } else {
	        ele = el;
	      }
	      if (timeout) {
	        setTimeout(function () {
	          ele.focus();
	        }, 500);
	      }
	      ele.focus();
	    }
	  },
	  mounted: function mounted() {
	    if (this.appendToBody && this.$el) {
	      document.body.appendChild(this.$el);
	    }
	    if (this.visible) {
	      this.rendered = true;
	      this.open();
	    }
	  },
	  destroyed: function destroyed() {
	    // if appendToBody is true, remove DOM node after destroy
	    if (this.appendToBody && this.$el && this.$el.parentNode) {
	      this.$el.parentNode.removeChild(this.$el);
	    }
	  }
	};

/***/ }),

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

	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
	  return _c('transition', {
	    attrs: {
	      "name": "dialog-fade"
	    }
	  }, [_c('div', {
	    directives: [{
	      name: "show",
	      rawName: "v-show",
	      value: (_vm.visible),
	      expression: "visible"
	    }],
	    staticClass: "el-dialog__wrapper",
	    attrs: {
	      "role": "dialog",
	      "aria-label": _vm.title
	    },
	    on: {
	      "click": function($event) {
	        if ($event.target !== $event.currentTarget) { return null; }
	        return _vm.handleWrapperClick.apply(null, arguments)
	      },
	      "keydown": _vm.handleKeyDown
	    }
	  }, [_c('div', {
	    ref: "dialog",
	    staticClass: "el-dialog",
	    class: [_vm.sizeClass, _vm.customClass],
	    style: (_vm.style)
	  }, [(_vm.showClose) ? _c('button', {
	    ref: "close",
	    staticClass: "el-dialog__headerbtn",
	    attrs: {
	      "type": "button",
	      "aria-label": _vm.t('el.dialog.close')
	    },
	    on: {
	      "click": _vm.handleClose
	    }
	  }, [_c('i', {
	    staticClass: "el-dialog__close icon-exit"
	  })]) : _vm._e(), _c('div', {
	    staticClass: "el-dialog__textarea"
	  }, [_c('div', {
	    staticClass: "el-dialog__header"
	  }, [_vm._t("title", function() {
	    return [_c('h2', {
	      staticClass: "el-dialog__title"
	    }, [_vm._v(_vm._s(_vm.title))])]
	  }), _vm._t("titleIcon")], 2), (_vm.rendered) ? _c('div', {
	    staticClass: "el-dialog__body"
	  }, [_vm._t("default")], 2) : _vm._e()]), (_vm.$slots.footer) ? _c('div', {
	    staticClass: "el-dialog__footer"
	  }, [_vm._t("footer")], 2) : _vm._e()])])])
	},staticRenderFns: []}

/***/ })

/******/ });