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


/***/ }),

/***/ 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 [];
	  }
	};

/***/ }),

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

	'use strict';

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/***/ }),

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

	'use strict';

	exports.__esModule = true;

	var _main = __webpack_require__(56);

	var _main2 = _interopRequireDefault(_main);

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

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

	exports.default = _main2.default;

/***/ }),

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

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

	module.exports = Component.exports


/***/ }),

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

	'use strict';

	exports.__esModule = true;

	var _throttle = __webpack_require__(58);

	var _throttle2 = _interopRequireDefault(_throttle);

	var _resizeEvent = __webpack_require__(34);

	var _locale = __webpack_require__(5);

	var _locale2 = _interopRequireDefault(_locale);

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

	exports.default = {
	  name: 'ElCarousel',
	  mixins: [_locale2.default],

	  props: {
	    ariaLabel: String,
	    initialIndex: {
	      type: Number,
	      default: 0
	    },
	    height: String,
	    trigger: {
	      type: String,
	      default: 'hover'
	    },
	    autoplay: {
	      type: Boolean,
	      default: true
	    },
	    interval: {
	      type: Number,
	      default: 3000
	    },
	    indicatorPosition: String,
	    indicator: {
	      type: Boolean,
	      default: true
	    },
	    arrow: {
	      type: String,
	      default: 'hover'
	    },
	    type: String,
	    loop: {
	      type: Boolean,
	      default: true
	    },
	    direction: {
	      type: String,
	      default: 'horizontal',
	      validator: function validator(val) {
	        return ['horizontal', 'vertical'].indexOf(val) !== -1;
	      }
	    }
	  },

	  data: function data() {
	    return {
	      items: [],
	      activeIndex: -1,
	      containerWidth: 0,
	      timer: null,
	      hover: false,
	      focus: false,
	      letBtn: this.t('message.common.leftArrow') || 'left arrow button',
	      rightBtn: this.t('message.common.rightArrow') || 'right arrow button',
	      carouselBtn: this.t('el.carousel.carouselPage') || 'carousel button',
	      carousel: this.t('el.carousel.carouselTitle') || 'Carousel '
	    };
	  },


	  computed: {
	    arrowDisplay: function arrowDisplay() {
	      return this.arrow !== 'never' && this.direction !== 'vertical';
	    },
	    hasLabel: function hasLabel() {
	      return this.items.some(function (item) {
	        return item.label.toString().length > 0;
	      });
	    },
	    carouselClasses: function carouselClasses() {
	      var classes = ['el-carousel', 'el-carousel--' + this.direction];
	      if (this.type === 'card') {
	        classes.push('el-carousel--card');
	      }
	      if (this.focus === true) {
	        classes.push('is-tab');
	      }
	      return classes;
	    },
	    indicatorsClasses: function indicatorsClasses() {
	      var classes = ['el-carousel__indicators', 'el-carousel__indicators--' + this.direction];
	      if (this.hasLabel) {
	        classes.push('el-carousel__indicators--labels');
	      }
	      if (this.indicatorPosition === 'outside' || this.type === 'card') {
	        classes.push('el-carousel__indicators--outside');
	      }
	      return classes;
	    }
	  },

	  watch: {
	    items: function items(val) {
	      if (val.length > 0) this.setActiveItem(this.initialIndex);
	    },
	    activeIndex: function activeIndex(val, oldVal) {
	      this.resetItemPosition(oldVal);
	      if (oldVal > -1) {
	        this.$emit('change', val, oldVal);
	      }
	    },
	    autoplay: function autoplay(val) {
	      val ? this.startTimer() : this.pauseTimer();
	    },
	    loop: function loop() {
	      this.setActiveItem(this.activeIndex);
	    }
	  },

	  methods: {
	    handleFocusIn: function handleFocusIn() {
	      this.focus = true;
	      this.pauseTimer();
	    },
	    handleFocusOut: function handleFocusOut() {
	      this.focus = false;
	      this.startTimer();
	    },
	    handleMouseEnter: function handleMouseEnter() {
	      this.hover = true;
	      this.pauseTimer();
	    },
	    handleMouseLeave: function handleMouseLeave() {
	      this.hover = false;
	      this.startTimer();
	    },
	    itemInStage: function itemInStage(item, index) {
	      var length = this.items.length;
	      if (index === length - 1 && item.inStage && this.items[0].active || item.inStage && this.items[index + 1] && this.items[index + 1].active) {
	        return 'left';
	      } else if (index === 0 && item.inStage && this.items[length - 1].active || item.inStage && this.items[index - 1] && this.items[index - 1].active) {
	        return 'right';
	      }
	      return false;
	    },
	    handleButtonEnter: function handleButtonEnter(arrow) {
	      var _this = this;

	      if (this.direction === 'vertical') return;
	      this.items.forEach(function (item, index) {
	        if (arrow === _this.itemInStage(item, index)) {
	          item.hover = true;
	        }
	      });
	    },
	    handleButtonLeave: function handleButtonLeave() {
	      if (this.direction === 'vertical') return;
	      this.items.forEach(function (item) {
	        item.hover = false;
	      });
	    },
	    updateItems: function updateItems() {
	      this.items = this.$children.filter(function (child) {
	        return child.$options.name === 'ElCarouselItem';
	      });
	    },
	    resetItemPosition: function resetItemPosition(oldIndex) {
	      var _this2 = this;

	      this.items.forEach(function (item, index) {
	        item.translateItem(index, _this2.activeIndex, oldIndex);
	      });
	    },
	    playSlides: function playSlides() {
	      if (this.activeIndex < this.items.length - 1) {
	        this.activeIndex++;
	      } else if (this.loop) {
	        this.activeIndex = 0;
	      }
	    },
	    pauseTimer: function pauseTimer() {
	      if (this.timer) {
	        clearInterval(this.timer);
	        this.timer = null;
	      }
	    },
	    startTimer: function startTimer() {
	      if (this.interval <= 0 || !this.autoplay || this.timer) return;
	      this.timer = setInterval(this.playSlides, this.interval);
	    },
	    setActiveItem: function setActiveItem(index) {
	      if (typeof index === 'string') {
	        var filteredItems = this.items.filter(function (item) {
	          return item.name === index;
	        });
	        if (filteredItems.length > 0) {
	          index = this.items.indexOf(filteredItems[0]);
	        }
	      }
	      index = Number(index);
	      if (isNaN(index) || index !== Math.floor(index)) {
	        console.warn('[Element Warn][Carousel]index must be an integer.');
	        return;
	      }
	      var length = this.items.length;
	      var oldIndex = this.activeIndex;
	      if (index < 0) {
	        this.activeIndex = this.loop ? length - 1 : 0;
	      } else if (index >= length) {
	        this.activeIndex = this.loop ? 0 : length - 1;
	      } else {
	        this.activeIndex = index;
	      }
	      if (oldIndex === this.activeIndex) {
	        this.resetItemPosition(oldIndex);
	      }
	    },
	    prev: function prev() {
	      this.setActiveItem(this.activeIndex - 1);
	    },
	    next: function next() {
	      this.setActiveItem(this.activeIndex + 1);
	    },
	    handleIndicatorClick: function handleIndicatorClick(index) {
	      this.activeIndex = index;
	    },
	    handleIndicatorHover: function handleIndicatorHover(index) {
	      if (this.trigger === 'hover' && index !== this.activeIndex) {
	        this.activeIndex = index;
	      }
	    }
	  },

	  created: function created() {
	    var _this3 = this;

	    this.throttledArrowClick = (0, _throttle2.default)(300, true, function (index) {
	      _this3.setActiveItem(index);
	    });
	    this.throttledIndicatorHover = (0, _throttle2.default)(300, function (index) {
	      _this3.handleIndicatorHover(index);
	    });
	  },
	  mounted: function mounted() {
	    var _this4 = this;

	    this.updateItems();
	    this.$nextTick(function () {
	      (0, _resizeEvent.addResizeListener)(_this4.$el, _this4.resetItemPosition);
	      if (_this4.initialIndex < _this4.items.length && _this4.initialIndex >= 0) {
	        _this4.activeIndex = _this4.initialIndex;
	      }
	      _this4.startTimer();
	    });
	  },
	  beforeDestroy: function beforeDestroy() {
	    if (this.$el) (0, _resizeEvent.removeResizeListener)(this.$el, this.resetItemPosition);
	    this.pauseTimer();
	  }
	}; //
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//
	//

/***/ }),

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

	module.exports = require("throttle-debounce/throttle");

/***/ }),

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

	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
	  return _c('div', {
	    class: _vm.carouselClasses,
	    attrs: {
	      "role": "complementary",
	      "aria-label": _vm.carousel
	    },
	    on: {
	      "focusout": _vm.handleFocusOut,
	      "focusin": _vm.handleFocusIn,
	      "mouseenter": function($event) {
	        $event.stopPropagation();
	        return _vm.handleMouseEnter.apply(null, arguments)
	      },
	      "mouseleave": function($event) {
	        $event.stopPropagation();
	        return _vm.handleMouseLeave.apply(null, arguments)
	      }
	    }
	  }, [_c('div', {
	    staticClass: "el-carousel__container",
	    style: ({
	      height: _vm.height
	    })
	  }, [(_vm.arrowDisplay) ? _c('transition', {
	    attrs: {
	      "name": "carousel-arrow-left"
	    }
	  }, [_c('button', {
	    directives: [{
	      name: "show",
	      rawName: "v-show",
	      value: ((_vm.arrow === 'always' || _vm.hover) && (_vm.loop || _vm.activeIndex > 0)),
	      expression: "(arrow === 'always' || hover) && (loop || activeIndex > 0)"
	    }],
	    staticClass: "el-carousel__arrow el-carousel__arrow--left",
	    attrs: {
	      "aria-label": _vm.letBtn,
	      "type": "button"
	    },
	    on: {
	      "mouseenter": function($event) {
	        return _vm.handleButtonEnter('left')
	      },
	      "mouseleave": _vm.handleButtonLeave,
	      "click": function($event) {
	        $event.stopPropagation();
	        return _vm.throttledArrowClick(_vm.activeIndex - 1)
	      }
	    }
	  }, [_c('i', {
	    staticClass: "icon-ng-left"
	  })])]) : _vm._e(), (_vm.arrowDisplay) ? _c('transition', {
	    attrs: {
	      "name": "carousel-arrow-right"
	    }
	  }, [_c('button', {
	    directives: [{
	      name: "show",
	      rawName: "v-show",
	      value: ((_vm.arrow === 'always' || _vm.hover) && (_vm.loop || _vm.activeIndex < _vm.items.length - 1)),
	      expression: "(arrow === 'always' || hover) && (loop || activeIndex < items.length - 1)"
	    }],
	    staticClass: "el-carousel__arrow el-carousel__arrow--right",
	    attrs: {
	      "aria-label": _vm.rightBtn,
	      "type": "button"
	    },
	    on: {
	      "mouseenter": function($event) {
	        return _vm.handleButtonEnter('right')
	      },
	      "mouseleave": _vm.handleButtonLeave,
	      "click": function($event) {
	        $event.stopPropagation();
	        return _vm.throttledArrowClick(_vm.activeIndex + 1)
	      }
	    }
	  }, [_c('i', {
	    staticClass: "icon-ng-right"
	  })])]) : _vm._e(), _vm._t("default")], 2), (_vm.indicatorPosition !== 'none') ? _c('ul', {
	    class: _vm.indicatorsClasses
	  }, _vm._l((_vm.items), function(item, index) {
	    return _c('li', {
	      key: index,
	      class: [
	        'el-carousel__indicator',
	        'el-carousel__indicator--' + _vm.direction,
	        {
	          'is-active': index === _vm.activeIndex
	        }
	      ],
	      on: {
	        "mouseenter": function($event) {
	          return _vm.throttledIndicatorHover(index)
	        },
	        "click": function($event) {
	          $event.stopPropagation();
	          return _vm.handleIndicatorClick(index)
	        }
	      }
	    }, [_c('button', {
	      staticClass: "el-carousel__button",
	      attrs: {
	        "aria-label": _vm.carouselBtn + ' ' + (index + 1),
	        "aria-describedby": item.carouselBtnDescribedby
	      }
	    }, [(_vm.hasLabel) ? _c('span', [_vm._v(_vm._s(item.label))]) : _vm._e()])])
	  }), 0) : _vm._e(), _c('div', {
	    staticClass: "liveregion",
	    staticStyle: {
	      "visibility": "hidden"
	    },
	    attrs: {
	      "aria-live": "polite",
	      "aria-atomic": "true"
	    }
	  })])
	},staticRenderFns: []}

/***/ })

/******/ });