(function webpackUniversalModuleDefinition(root, factory) {
	if(typeof exports === 'object' && typeof module === 'object')
		module.exports = factory(require("vue"));
	else if(typeof define === 'function' && define.amd)
		define("iview", ["vue"], factory);
	else if(typeof exports === 'object')
		exports["iview"] = factory(require("vue"));
	else
		root["iview"] = factory(root["Vue"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_9__) {
return /******/ (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 = 111);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {

// 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,
  scopeId,
  cssModules
) {
  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
  }

  // inject cssModules
  if (cssModules) {
    var computed = Object.create(options.computed || null)
    Object.keys(cssModules).forEach(function (key) {
      var module = cssModules[key]
      computed[key] = function () { return module }
    })
    options.computed = computed
  }

  return {
    esModule: esModule,
    exports: scriptExports,
    options: options
  }
}


/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _defineProperty = __webpack_require__(145);

var _defineProperty2 = _interopRequireDefault(_defineProperty);

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

exports.default = function (obj, key, value) {
  if (key in obj) {
    (0, _defineProperty2.default)(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
};

/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.findComponentsDownward = exports.findComponentDownward = exports.findComponentUpward = exports.deepCopy = exports.firstUpperCase = exports.MutationObserver = undefined;
exports.oneOf = oneOf;
exports.camelcaseToHyphen = camelcaseToHyphen;
exports.getScrollBarSize = getScrollBarSize;
exports.getStyle = getStyle;
exports.warnProp = warnProp;
exports.scrollTop = scrollTop;
exports.hasClass = hasClass;
exports.addClass = addClass;
exports.removeClass = removeClass;

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

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

var isServer = _vue2.default.prototype.$isServer;
function oneOf(value, validList) {
    for (var i = 0; i < validList.length; i++) {
        if (value === validList[i]) {
            return true;
        }
    }
    return false;
}

function camelcaseToHyphen(str) {
    return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}

var cached = void 0;
function getScrollBarSize(fresh) {
    if (isServer) return 0;
    if (fresh || cached === undefined) {
        var inner = document.createElement('div');
        inner.style.width = '100%';
        inner.style.height = '200px';

        var outer = document.createElement('div');
        var outerStyle = outer.style;

        outerStyle.position = 'absolute';
        outerStyle.top = 0;
        outerStyle.left = 0;
        outerStyle.pointerEvents = 'none';
        outerStyle.visibility = 'hidden';
        outerStyle.width = '200px';
        outerStyle.height = '150px';
        outerStyle.overflow = 'hidden';

        outer.appendChild(inner);

        document.body.appendChild(outer);

        var widthContained = inner.offsetWidth;
        outer.style.overflow = 'scroll';
        var widthScroll = inner.offsetWidth;

        if (widthContained === widthScroll) {
            widthScroll = outer.clientWidth;
        }

        document.body.removeChild(outer);

        cached = widthContained - widthScroll;
    }
    return cached;
}

var MutationObserver = exports.MutationObserver = isServer ? false : window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver || false;

var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
var MOZ_HACK_REGEXP = /^moz([A-Z])/;

function camelCase(name) {
    return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {
        return offset ? letter.toUpperCase() : letter;
    }).replace(MOZ_HACK_REGEXP, 'Moz$1');
}
function getStyle(element, styleName) {
    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];
    }
}

function firstUpperCase(str) {
    return str.toString()[0].toUpperCase() + str.toString().slice(1);
}
exports.firstUpperCase = firstUpperCase;
function warnProp(component, prop, correctType, wrongType) {
    correctType = firstUpperCase(correctType);
    wrongType = firstUpperCase(wrongType);
    console.error('[iView warn]: Invalid prop: type check failed for prop ' + prop + '. Expected ' + correctType + ', got ' + wrongType + '. (found in component: ' + component + ')');
}

function typeOf(obj) {
    var toString = Object.prototype.toString;
    var map = {
        '[object Boolean]': 'boolean',
        '[object Number]': 'number',
        '[object String]': 'string',
        '[object Function]': 'function',
        '[object Array]': 'array',
        '[object Date]': 'date',
        '[object RegExp]': 'regExp',
        '[object Undefined]': 'undefined',
        '[object Null]': 'null',
        '[object Object]': 'object'
    };
    return map[toString.call(obj)];
}

function deepCopy(data) {
    var t = typeOf(data);
    var o = void 0;

    if (t === 'array') {
        o = [];
    } else if (t === 'object') {
        o = {};
    } else {
        return data;
    }

    if (t === 'array') {
        for (var i = 0; i < data.length; i++) {
            o.push(deepCopy(data[i]));
        }
    } else if (t === 'object') {
        for (var _i in data) {
            o[_i] = deepCopy(data[_i]);
        }
    }
    return o;
}

exports.deepCopy = deepCopy;
function scrollTop(el) {
    var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
    var to = arguments[2];
    var duration = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 500;

    if (!window.requestAnimationFrame) {
        window.requestAnimationFrame = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {
            return window.setTimeout(callback, 1000 / 60);
        };
    }
    var difference = Math.abs(from - to);
    var step = Math.ceil(difference / duration * 50);

    function scroll(start, end, step) {
        if (start === end) return;

        var d = start + step > end ? end : start + step;
        if (start > end) {
            d = start - step < end ? end : start - step;
        }

        if (el === window) {
            window.scrollTo(d, d);
        } else {
            el.scrollTop = d;
        }
        window.requestAnimationFrame(function () {
            return scroll(d, end, step);
        });
    }
    scroll(from, to, step);
}

function findComponentUpward(context, componentName, componentNames) {
    if (typeof componentName === 'string') {
        componentNames = [componentName];
    } else {
        componentNames = componentName;
    }

    var parent = context.$parent;
    var name = parent.$options.name;
    while (parent && (!name || componentNames.indexOf(name) < 0)) {
        parent = parent.$parent;
        if (parent) name = parent.$options.name;
    }
    return parent;
}
exports.findComponentUpward = findComponentUpward;

function findComponentDownward(context, componentName) {
    var childrens = context.$children;
    var children = null;

    if (childrens.length) {
        childrens.forEach(function (child) {
            var name = child.$options.name;
            if (name === componentName) {
                children = child;
            }
        });

        for (var i = 0; i < childrens.length; i++) {
            var child = childrens[i];
            var name = child.$options.name;
            if (name === componentName) {
                children = child;
                break;
            } else {
                children = findComponentDownward(child, componentName);
                if (children) break;
            }
        }
    }
    return children;
}
exports.findComponentDownward = findComponentDownward;

function findComponentsDownward(context, componentName) {
    var components = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];

    var childrens = context.$children;

    if (childrens.length) {
        childrens.forEach(function (child) {
            var name = child.$options.name;
            var childs = child.$children;

            if (name === componentName) components.push(child);
            if (childs.length) {
                var findChilds = findComponentsDownward(child, componentName, components);
                if (findChilds) components.concat(findChilds);
            }
        });
    }
    return components;
}
exports.findComponentsDownward = findComponentsDownward;

var trim = function trim(string) {
    return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
};

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;
    }
}

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;
    }
}

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);
    }
}

/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
function _broadcast(componentName, eventName, params) {
    this.$children.forEach(function (child) {
        var name = child.$options.name;

        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.name;

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

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

/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return warning; });
/* harmony export (immutable) */ __webpack_exports__["d"] = format;
/* harmony export (immutable) */ __webpack_exports__["e"] = isEmptyValue;
/* unused harmony export isEmptyObject */
/* harmony export (immutable) */ __webpack_exports__["a"] = asyncMap;
/* harmony export (immutable) */ __webpack_exports__["b"] = complementError;
/* harmony export (immutable) */ __webpack_exports__["c"] = deepMerge;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(97);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__);


var formatRegExp = /%[sdj%]/g;

var warning = function warning() {};

// don't print warning message when in production env or node runtime
if (false) {
  warning = function warning(type, errors) {
    if (typeof console !== 'undefined' && console.warn) {
      if (errors.every(function (e) {
        return typeof e === 'string';
      })) {
        console.warn(type, errors);
      }
    }
  };
}

function format() {
  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }

  var i = 1;
  var f = args[0];
  var len = args.length;
  if (typeof f === 'function') {
    return f.apply(null, args.slice(1));
  }
  if (typeof f === 'string') {
    var str = String(f).replace(formatRegExp, function (x) {
      if (x === '%%') {
        return '%';
      }
      if (i >= len) {
        return x;
      }
      switch (x) {
        case '%s':
          return String(args[i++]);
        case '%d':
          return Number(args[i++]);
        case '%j':
          try {
            return JSON.stringify(args[i++]);
          } catch (_) {
            return '[Circular]';
          }
          break;
        default:
          return x;
      }
    });
    for (var arg = args[i]; i < len; arg = args[++i]) {
      str += ' ' + arg;
    }
    return str;
  }
  return f;
}

function isNativeStringType(type) {
  return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';
}

function isEmptyValue(value, type) {
  if (value === undefined || value === null) {
    return true;
  }
  if (type === 'array' && Array.isArray(value) && !value.length) {
    return true;
  }
  if (isNativeStringType(type) && typeof value === 'string' && !value) {
    return true;
  }
  return false;
}

function isEmptyObject(obj) {
  return Object.keys(obj).length === 0;
}

function asyncParallelArray(arr, func, callback) {
  var results = [];
  var total = 0;
  var arrLength = arr.length;

  function count(errors) {
    results.push.apply(results, errors);
    total++;
    if (total === arrLength) {
      callback(results);
    }
  }

  arr.forEach(function (a) {
    func(a, count);
  });
}

function asyncSerialArray(arr, func, callback) {
  var index = 0;
  var arrLength = arr.length;

  function next(errors) {
    if (errors && errors.length) {
      callback(errors);
      return;
    }
    var original = index;
    index = index + 1;
    if (original < arrLength) {
      func(arr[original], next);
    } else {
      callback([]);
    }
  }

  next([]);
}

function flattenObjArr(objArr) {
  var ret = [];
  Object.keys(objArr).forEach(function (k) {
    ret.push.apply(ret, objArr[k]);
  });
  return ret;
}

function asyncMap(objArr, option, func, callback) {
  if (option.first) {
    var flattenArr = flattenObjArr(objArr);
    return asyncSerialArray(flattenArr, func, callback);
  }
  var firstFields = option.firstFields || [];
  if (firstFields === true) {
    firstFields = Object.keys(objArr);
  }
  var objArrKeys = Object.keys(objArr);
  var objArrLength = objArrKeys.length;
  var total = 0;
  var results = [];
  var next = function next(errors) {
    results.push.apply(results, errors);
    total++;
    if (total === objArrLength) {
      callback(results);
    }
  };
  objArrKeys.forEach(function (key) {
    var arr = objArr[key];
    if (firstFields.indexOf(key) !== -1) {
      asyncSerialArray(arr, func, next);
    } else {
      asyncParallelArray(arr, func, next);
    }
  });
}

function complementError(rule) {
  return function (oe) {
    if (oe && oe.message) {
      oe.field = oe.field || rule.fullField;
      return oe;
    }
    return {
      message: oe,
      field: oe.field || rule.fullField
    };
  };
}

function deepMerge(target, source) {
  if (source) {
    for (var s in source) {
      if (source.hasOwnProperty(s)) {
        var value = source[s];
        if ((typeof value === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(value)) === 'object' && __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(target[s]) === 'object') {
          target[s] = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, target[s], value);
        } else {
          target[s] = value;
        }
      }
    }
  }
  return target;
}

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

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _locale = __webpack_require__(85);

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);
        }
    }
};

/***/ }),
/* 6 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__required__ = __webpack_require__(98);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__whitespace__ = __webpack_require__(332);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type__ = __webpack_require__(333);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__range__ = __webpack_require__(334);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__enum__ = __webpack_require__(335);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__pattern__ = __webpack_require__(336);







/* harmony default export */ __webpack_exports__["a"] = ({
  required: __WEBPACK_IMPORTED_MODULE_0__required__["a" /* default */],
  whitespace: __WEBPACK_IMPORTED_MODULE_1__whitespace__["a" /* default */],
  type: __WEBPACK_IMPORTED_MODULE_2__type__["a" /* default */],
  range: __WEBPACK_IMPORTED_MODULE_3__range__["a" /* default */],
  'enum': __WEBPACK_IMPORTED_MODULE_4__enum__["a" /* default */],
  pattern: __WEBPACK_IMPORTED_MODULE_5__pattern__["a" /* default */]
});

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

var core = module.exports = { version: '2.5.1' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(152),
  /* template */
  __webpack_require__(153),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


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

module.exports = __WEBPACK_EXTERNAL_MODULE_9__;

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

module.exports = { "default": __webpack_require__(112), __esModule: true };

/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _iterator = __webpack_require__(159);

var _iterator2 = _interopRequireDefault(_iterator);

var _symbol = __webpack_require__(168);

var _symbol2 = _interopRequireDefault(_symbol);

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

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

exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
  return typeof obj === "undefined" ? "undefined" : _typeof(obj);
} : function (obj) {
  return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
};

/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {

var store = __webpack_require__(50)('wks');
var uid = __webpack_require__(39);
var Symbol = __webpack_require__(13).Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),
/* 13 */
/***/ (function(module, exports) {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__(22);
var IE8_DOM_DEFINE = __webpack_require__(64);
var toPrimitive = __webpack_require__(45);
var dP = Object.defineProperty;

exports.f = __webpack_require__(18) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

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

exports.default = _icon2.default;

/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

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

function getTarget(node) {
    if (node === void 0) {
        node = document.body;
    }
    if (node === true) {
        return document.body;
    }
    return node instanceof window.Node ? node : document.querySelector(node);
}

var directive = {
    inserted: function inserted(el, _ref, vnode) {
        var value = _ref.value;

        if (el.dataset.transfer !== 'true') return false;
        el.className = el.className ? el.className + ' v-transfer-dom' : 'v-transfer-dom';
        var parentNode = el.parentNode;
        if (!parentNode) return;
        var home = document.createComment('');
        var hasMovedOut = false;

        if (value !== false) {
            parentNode.replaceChild(home, el);
            getTarget(value).appendChild(el);
            hasMovedOut = true;
        }
        if (!el.__transferDomData) {
            el.__transferDomData = {
                parentNode: parentNode,
                home: home,
                target: getTarget(value),
                hasMovedOut: hasMovedOut
            };
        }
    },
    componentUpdated: function componentUpdated(el, _ref2) {
        var value = _ref2.value;

        if (el.dataset.transfer !== 'true') return false;

        var ref$1 = el.__transferDomData;
        if (!ref$1) return;

        var parentNode = ref$1.parentNode;
        var home = ref$1.home;
        var hasMovedOut = ref$1.hasMovedOut;

        if (!hasMovedOut && value) {
            parentNode.replaceChild(home, el);

            getTarget(value).appendChild(el);
            el.__transferDomData = (0, _assign2.default)({}, el.__transferDomData, { hasMovedOut: true, target: getTarget(value) });
        } else if (hasMovedOut && value === false) {
            parentNode.replaceChild(el, home);
            el.__transferDomData = (0, _assign2.default)({}, el.__transferDomData, { hasMovedOut: false, target: getTarget(value) });
        } else if (value) {
            getTarget(value).appendChild(el);
        }
    },
    unbind: function unbind(el) {
        if (el.dataset.transfer !== 'true') return false;
        el.className = el.className.replace('v-transfer-dom', '');
        var ref$1 = el.__transferDomData;
        if (!ref$1) return;
        if (el.__transferDomData.hasMovedOut === true) {
            el.__transferDomData.parentNode && el.__transferDomData.parentNode.appendChild(el);
        }
        el.__transferDomData = null;
    }
};

exports.default = directive;

/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(13);
var core = __webpack_require__(7);
var ctx = __webpack_require__(63);
var hide = __webpack_require__(21);
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && key in exports) continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
    // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global)
    // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? (function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0: return new C();
            case 1: return new C(a);
            case 2: return new C(a, b);
          } return new C(a, b, c);
        } return C.apply(this, arguments);
      };
      F[PROTOTYPE] = C[PROTOTYPE];
      return F;
    // make static versions for prototype methods
    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out;
      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
};
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(23)(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


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

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(218),
  /* template */
  __webpack_require__(219),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {

var dP = __webpack_require__(14);
var createDesc = __webpack_require__(28);
module.exports = __webpack_require__(18) ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(38);
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),
/* 23 */
/***/ (function(module, exports) {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(67);
var defined = __webpack_require__(47);
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(179),
  /* template */
  __webpack_require__(180),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    bind: function bind(el, binding, vnode) {
        function documentHandler(e) {
            if (el.contains(e.target)) {
                return false;
            }
            if (binding.expression) {
                binding.value(e);
            }
        }
        el.__vueClickOutside__ = documentHandler;
        document.addEventListener('click', documentHandler);
    },
    update: function update() {},
    unbind: function unbind(el, binding) {
        document.removeEventListener('click', el.__vueClickOutside__);
        delete el.__vueClickOutside__;
    }
};

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

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.initTimeDate = exports.nextMonth = exports.prevMonth = exports.siblingMonth = exports.getFirstDayOfMonth = exports.getDayCountOfMonth = exports.parseDate = exports.formatDate = exports.toDate = undefined;

var _toConsumableArray2 = __webpack_require__(43);

var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);

var _date2 = __webpack_require__(293);

var _date3 = _interopRequireDefault(_date2);

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

var toDate = exports.toDate = function toDate(date) {
    var _date = new Date(date);

    if (isNaN(_date.getTime()) && typeof date === 'string') {
        _date = date.split('-').map(Number);
        _date[1] += 1;
        _date = new (Function.prototype.bind.apply(Date, [null].concat((0, _toConsumableArray3.default)(_date))))();
    }


    if (isNaN(_date.getTime())) return null;
    return _date;
};

var formatDate = exports.formatDate = function formatDate(date, format) {
    date = toDate(date);
    if (!date) return '';
    return _date3.default.format(date, format || 'yyyy-MM-dd');
};

var parseDate = exports.parseDate = function parseDate(string, format) {
    return _date3.default.parse(string, format || 'yyyy-MM-dd');
};

var getDayCountOfMonth = exports.getDayCountOfMonth = function getDayCountOfMonth(year, month) {
    return new Date(year, month + 1, 0).getDate();
};

var getFirstDayOfMonth = exports.getFirstDayOfMonth = function getFirstDayOfMonth(date) {
    var temp = new Date(date.getTime());
    temp.setDate(1);
    return temp.getDay();
};

var siblingMonth = exports.siblingMonth = function siblingMonth(src, diff) {
    var temp = new Date(src);
    var newMonth = temp.getMonth() + diff;
    var newMonthDayCount = getDayCountOfMonth(temp.getFullYear(), newMonth);
    if (newMonthDayCount < temp.getDate()) {
        temp.setDate(newMonthDayCount);
    }
    temp.setMonth(newMonth);

    return temp;
};

var prevMonth = exports.prevMonth = function prevMonth(src) {
    return siblingMonth(src, -1);
};

var nextMonth = exports.nextMonth = function nextMonth(src) {
    return siblingMonth(src, 1);
};

var initTimeDate = exports.initTimeDate = function initTimeDate() {
    var date = new Date();
    date.setHours(0);
    date.setMinutes(0);
    date.setSeconds(0);
    return date;
};

/***/ }),
/* 28 */
/***/ (function(module, exports) {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


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

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(66);
var enumBugKeys = __webpack_require__(51);

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


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

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(47);
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(118), __esModule: true };

/***/ }),
/* 32 */
/***/ (function(module, exports) {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),
/* 33 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.off = exports.on = undefined;

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

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

var isServer = _vue2.default.prototype.$isServer;

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);
            }
        };
    }
}();

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);
            }
        };
    }
}();

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

module.exports = {};


/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(191),
  /* template */
  __webpack_require__(196),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 36 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(254),
  /* template */
  __webpack_require__(255),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 37 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(276),
  /* template */
  __webpack_require__(277),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 38 */
/***/ (function(module, exports) {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),
/* 39 */
/***/ (function(module, exports) {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),
/* 40 */
/***/ (function(module, exports) {

exports.f = {}.propertyIsEnumerable;


/***/ }),
/* 41 */
/***/ (function(module, exports) {

var core = module.exports = { version: '2.5.1' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),
/* 42 */
/***/ (function(module, exports) {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _from = __webpack_require__(240);

var _from2 = _interopRequireDefault(_from);

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

exports.default = function (arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
      arr2[i] = arr[i];
    }

    return arr2;
  } else {
    return (0, _from2.default)(arr);
  }
};

/***/ }),
/* 44 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
var prefixCls = 'ivu-picker-panel';
var datePrefixCls = 'ivu-date-picker';

exports.default = {
    methods: {
        iconBtnCls: function iconBtnCls(direction) {
            var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';

            return [prefixCls + '-icon-btn', datePrefixCls + '-' + direction + '-btn', datePrefixCls + '-' + direction + '-btn-arrow' + type];
        },
        handleShortcutClick: function handleShortcutClick(shortcut) {
            if (shortcut.value) this.$emit('on-pick', shortcut.value());
            if (shortcut.onClick) shortcut.onClick(this);
        },
        handlePickClear: function handlePickClear() {
            this.$emit('on-pick-clear');
        },
        handlePickSuccess: function handlePickSuccess() {
            this.$emit('on-pick-success');
        },
        handlePickClick: function handlePickClick() {
            this.$emit('on-pick-click');
        }
    }
};

/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(38);
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),
/* 46 */
/***/ (function(module, exports) {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),
/* 47 */
/***/ (function(module, exports) {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),
/* 48 */
/***/ (function(module, exports) {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {

var shared = __webpack_require__(50)('keys');
var uid = __webpack_require__(39);
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),
/* 50 */
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(13);
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});
module.exports = function (key) {
  return store[key] || (store[key] = {});
};


/***/ }),
/* 51 */
/***/ (function(module, exports) {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),
/* 52 */
/***/ (function(module, exports) {

exports.f = Object.getOwnPropertySymbols;


/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {

var dP = __webpack_require__(122);
var createDesc = __webpack_require__(127);
module.exports = __webpack_require__(54) ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),
/* 54 */
/***/ (function(module, exports, __webpack_require__) {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(71)(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


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

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(158),
  /* template */
  __webpack_require__(188),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


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

"use strict";

var $at = __webpack_require__(161)(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(78)(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),
/* 57 */
/***/ (function(module, exports) {

module.exports = true;


/***/ }),
/* 58 */
/***/ (function(module, exports, __webpack_require__) {

var def = __webpack_require__(14).f;
var has = __webpack_require__(19);
var TAG = __webpack_require__(12)('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),
/* 59 */
/***/ (function(module, exports, __webpack_require__) {

exports.f = __webpack_require__(12);


/***/ }),
/* 60 */
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(13);
var core = __webpack_require__(7);
var LIBRARY = __webpack_require__(57);
var wksExt = __webpack_require__(59);
var defineProperty = __webpack_require__(14).f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};


/***/ }),
/* 61 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(189),
  /* template */
  __webpack_require__(190),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assist = __webpack_require__(2);

var Transition = {
    beforeEnter: function beforeEnter(el) {
        (0, _assist.addClass)(el, 'collapse-transition');
        if (!el.dataset) el.dataset = {};

        el.dataset.oldPaddingTop = el.style.paddingTop;
        el.dataset.oldPaddingBottom = el.style.paddingBottom;

        el.style.height = '0';
        el.style.paddingTop = 0;
        el.style.paddingBottom = 0;
    },
    enter: function enter(el) {
        el.dataset.oldOverflow = el.style.overflow;
        if (el.scrollHeight !== 0) {
            el.style.height = el.scrollHeight + 'px';
            el.style.paddingTop = el.dataset.oldPaddingTop;
            el.style.paddingBottom = el.dataset.oldPaddingBottom;
        } else {
            el.style.height = '';
            el.style.paddingTop = el.dataset.oldPaddingTop;
            el.style.paddingBottom = el.dataset.oldPaddingBottom;
        }

        el.style.overflow = 'hidden';
    },
    afterEnter: function afterEnter(el) {
        (0, _assist.removeClass)(el, 'collapse-transition');
        el.style.height = '';
        el.style.overflow = el.dataset.oldOverflow;
    },
    beforeLeave: function beforeLeave(el) {
        if (!el.dataset) el.dataset = {};
        el.dataset.oldPaddingTop = el.style.paddingTop;
        el.dataset.oldPaddingBottom = el.style.paddingBottom;
        el.dataset.oldOverflow = el.style.overflow;

        el.style.height = el.scrollHeight + 'px';
        el.style.overflow = 'hidden';
    },
    leave: function leave(el) {
        if (el.scrollHeight !== 0) {
            (0, _assist.addClass)(el, 'collapse-transition');
            el.style.height = 0;
            el.style.paddingTop = 0;
            el.style.paddingBottom = 0;
        }
    },
    afterLeave: function afterLeave(el) {
        (0, _assist.removeClass)(el, 'collapse-transition');
        el.style.height = '';
        el.style.overflow = el.dataset.oldOverflow;
        el.style.paddingTop = el.dataset.oldPaddingTop;
        el.style.paddingBottom = el.dataset.oldPaddingBottom;
    }
};

exports.default = {
    name: 'CollapseTransition',
    functional: true,
    render: function render(h, _ref) {
        var children = _ref.children;

        var data = {
            on: Transition
        };

        return h('transition', data, children);
    }
};

/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {

// optional / simple context binding
var aFunction = __webpack_require__(114);
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),
/* 64 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = !__webpack_require__(18) && !__webpack_require__(23)(function () {
  return Object.defineProperty(__webpack_require__(65)('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),
/* 65 */
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(38);
var document = __webpack_require__(13).document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),
/* 66 */
/***/ (function(module, exports, __webpack_require__) {

var has = __webpack_require__(19);
var toIObject = __webpack_require__(24);
var arrayIndexOf = __webpack_require__(116)(false);
var IE_PROTO = __webpack_require__(49)('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),
/* 67 */
/***/ (function(module, exports, __webpack_require__) {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(46);
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),
/* 68 */
/***/ (function(module, exports, __webpack_require__) {

// 7.1.15 ToLength
var toInteger = __webpack_require__(48);
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),
/* 69 */
/***/ (function(module, exports, __webpack_require__) {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(17);
var core = __webpack_require__(7);
var fails = __webpack_require__(23);
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


/***/ }),
/* 70 */
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(32);
var core = __webpack_require__(41);
var hide = __webpack_require__(53);
var redefine = __webpack_require__(128);
var ctx = __webpack_require__(73);
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
  var key, own, out, exp;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    // export native or passed
    out = (own ? target : source)[key];
    // bind timers to global for call from export context
    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // extend global
    if (target) redefine(target, key, out, type & $export.U);
    // export
    if (exports[key] != out) hide(exports, key, exp);
    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
  }
};
global.core = core;
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),
/* 71 */
/***/ (function(module, exports) {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),
/* 72 */
/***/ (function(module, exports) {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),
/* 73 */
/***/ (function(module, exports, __webpack_require__) {

// optional / simple context binding
var aFunction = __webpack_require__(130);
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),
/* 74 */
/***/ (function(module, exports, __webpack_require__) {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(73);
var IObject = __webpack_require__(131);
var toObject = __webpack_require__(132);
var toLength = __webpack_require__(134);
var asc = __webpack_require__(136);
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),
/* 75 */
/***/ (function(module, exports) {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),
/* 76 */
/***/ (function(module, exports, __webpack_require__) {

var store = __webpack_require__(139)('wks');
var uid = __webpack_require__(72);
var Symbol = __webpack_require__(32).Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),
/* 77 */
/***/ (function(module, exports, __webpack_require__) {

// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = __webpack_require__(76)('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(53)(ArrayProto, UNSCOPABLES, {});
module.exports = function (key) {
  ArrayProto[UNSCOPABLES][key] = true;
};


/***/ }),
/* 78 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var LIBRARY = __webpack_require__(57);
var $export = __webpack_require__(17);
var redefine = __webpack_require__(79);
var hide = __webpack_require__(21);
var has = __webpack_require__(19);
var Iterators = __webpack_require__(34);
var $iterCreate = __webpack_require__(162);
var setToStringTag = __webpack_require__(58);
var getPrototypeOf = __webpack_require__(81);
var ITERATOR = __webpack_require__(12)('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),
/* 79 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__(21);


/***/ }),
/* 80 */
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(22);
var dPs = __webpack_require__(163);
var enumBugKeys = __webpack_require__(51);
var IE_PROTO = __webpack_require__(49)('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(65)('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(164).appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),
/* 81 */
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(19);
var toObject = __webpack_require__(30);
var IE_PROTO = __webpack_require__(49)('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),
/* 82 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(165);
var global = __webpack_require__(13);
var hide = __webpack_require__(21);
var Iterators = __webpack_require__(34);
var TO_STRING_TAG = __webpack_require__(12)('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
  'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}


/***/ }),
/* 83 */
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(66);
var hiddenKeys = __webpack_require__(51).concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),
/* 84 */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version {{version}}
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * 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.
 */

//
// Cross module loader
// Supported: Node, AMD, Browser globals
//
;(function (root, factory) {
    if (true) {
        // AMD. Register as an anonymous module.
        !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
				__WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    } else if (typeof module === 'object' && module.exports) {
        // Node. Does not work with strict CommonJS, but
        // only CommonJS-like environments that support module.exports,
        // like Node.
        module.exports = factory();
    } else {
        // Browser globals (root is window)
        root.Popper = factory();
    }
}(this, function () {

    'use strict';

    var root = window;

    // default options
    var DEFAULTS = {
        // placement of the popper
        placement: 'bottom',

        gpuAcceleration: true,

        // shift popper from its origin by the given amount of pixels (can be negative)
        offset: 0,

        // the element which will act as boundary of the popper
        boundariesElement: 'viewport',

        // amount of pixel used to define a minimum distance between the boundaries and the popper
        boundariesPadding: 5,

        // popper will try to prevent overflow following this order,
        // by default, then, it could overflow on the left and on top of the boundariesElement
        preventOverflowOrder: ['left', 'right', 'top', 'bottom'],

        // the behavior used by flip to change the placement of the popper
        flipBehavior: 'flip',

        arrowElement: '[x-arrow]',

        // list of functions used to modify the offsets before they are applied to the popper
        modifiers: [ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle'],

        modifiersIgnored: [],
    };

    /**
     * Create a new Popper.js instance
     * @constructor Popper
     * @param {HTMLElement} reference - The reference element used to position the popper
     * @param {HTMLElement|Object} popper
     *      The HTML element used as popper, or a configuration used to generate the popper.
     * @param {String} [popper.tagName='div'] The tag name of the generated popper.
     * @param {Array} [popper.classNames=['popper']] Array of classes to apply to the generated popper.
     * @param {Array} [popper.attributes] Array of attributes to apply, specify `attr:value` to assign a value to it.
     * @param {HTMLElement|String} [popper.parent=window.document.body] The parent element, given as HTMLElement or as query string.
     * @param {String} [popper.content=''] The content of the popper, it can be text, html, or node; if it is not text, set `contentType` to `html` or `node`.
     * @param {String} [popper.contentType='text'] If `html`, the `content` will be parsed as HTML. If `node`, it will be appended as-is.
     * @param {String} [popper.arrowTagName='div'] Same as `popper.tagName` but for the arrow element.
     * @param {Array} [popper.arrowClassNames='popper__arrow'] Same as `popper.classNames` but for the arrow element.
     * @param {String} [popper.arrowAttributes=['x-arrow']] Same as `popper.attributes` but for the arrow element.
     * @param {Object} options
     * @param {String} [options.placement=bottom]
     *      Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -right),
     *      left(-start, -end)`
     *
     * @param {HTMLElement|String} [options.arrowElement='[x-arrow]']
     *      The DOM Node used as arrow for the popper, or a CSS selector used to get the DOM node. It must be child of
     *      its parent Popper. Popper.js will apply to the given element the style required to align the arrow with its
     *      reference element.
     *      By default, it will look for a child node of the popper with the `x-arrow` attribute.
     *
     * @param {Boolean} [options.gpuAcceleration=true]
     *      When this property is set to true, the popper position will be applied using CSS3 translate3d, allowing the
     *      browser to use the GPU to accelerate the rendering.
     *      If set to false, the popper will be placed using `top` and `left` properties, not using the GPU.
     *
     * @param {Number} [options.offset=0]
     *      Amount of pixels the popper will be shifted (can be negative).
     *
     * @param {String|Element} [options.boundariesElement='viewport']
     *      The element which will define the boundaries of the popper position, the popper will never be placed outside
     *      of the defined boundaries (except if `keepTogether` is enabled)
     *
     * @param {Number} [options.boundariesPadding=5]
     *      Additional padding for the boundaries
     *
     * @param {Array} [options.preventOverflowOrder=['left', 'right', 'top', 'bottom']]
     *      Order used when Popper.js tries to avoid overflows from the boundaries, they will be checked in order,
     *      this means that the last ones will never overflow
     *
     * @param {String|Array} [options.flipBehavior='flip']
     *      The behavior used by the `flip` modifier to change the placement of the popper when the latter is trying to
     *      overlap its reference element. Defining `flip` as value, the placement will be flipped on
     *      its axis (`right - left`, `top - bottom`).
     *      You can even pass an array of placements (eg: `['right', 'left', 'top']` ) to manually specify
     *      how alter the placement when a flip is needed. (eg. in the above example, it would first flip from right to left,
     *      then, if even in its new placement, the popper is overlapping its reference element, it will be moved to top)
     *
     * @param {Array} [options.modifiers=[ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle']]
     *      List of functions used to modify the data before they are applied to the popper, add your custom functions
     *      to this array to edit the offsets and placement.
     *      The function should reflect the @params and @returns of preventOverflow
     *
     * @param {Array} [options.modifiersIgnored=[]]
     *      Put here any built-in modifier name you want to exclude from the modifiers list
     *      The function should reflect the @params and @returns of preventOverflow
     *
     * @param {Boolean} [options.removeOnDestroy=false]
     *      Set to true if you want to automatically remove the popper when you call the `destroy` method.
     */
    function Popper(reference, popper, options) {
        this._reference = reference.jquery ? reference[0] : reference;
        this.state = { onCreateCalled: false };

        // if the popper variable is a configuration object, parse it to generate an HTMLElement
        // generate a default popper if is not defined
        var isNotDefined = typeof popper === 'undefined' || popper === null;
        var isConfig = popper && Object.prototype.toString.call(popper) === '[object Object]';
        if (isNotDefined || isConfig) {
            this._popper = this.parse(isConfig ? popper : {});
        }
        // otherwise, use the given HTMLElement as popper
        else {
            this._popper = popper.jquery ? popper[0] : popper;
        }

        // with {} we create a new object with the options inside it
        this._options = Object.assign({}, DEFAULTS, options);

        // refactoring modifiers' list
        this._options.modifiers = this._options.modifiers.map(function(modifier){
            // remove ignored modifiers
            if (this._options.modifiersIgnored.indexOf(modifier) !== -1) return;

            // set the x-placement attribute before everything else because it could be used to add margins to the popper
            // margins needs to be calculated to get the correct popper offsets
            if (modifier === 'applyStyle') {
                this._popper.setAttribute('x-placement', this._options.placement);
            }

            // return predefined modifier identified by string or keep the custom one
            return this.modifiers[modifier] || modifier;
        }.bind(this));

        // make sure to apply the popper position before any computation
        this.state.position = this._getPosition(this._popper, this._reference);
        setStyle(this._popper, { position: this.state.position});

        // determine how we should set the origin of offsets
        this.state.isParentTransformed = this._getIsParentTransformed(this._popper);

        // fire the first update to position the popper in the right place
        this.update();

        // setup event listeners, they will take care of update the position in specific situations
        this._setupEventListeners();
        return this;
    }


    //
    // Methods
    //
    /**
     * Destroy the popper
     * @method
     * @memberof Popper
     */
    Popper.prototype.destroy = function() {
        this._popper.removeAttribute('x-placement');
        this._popper.style.left = '';
        this._popper.style.position = '';
        this._popper.style.top = '';
        this._popper.style[getSupportedPropertyName('transform')] = '';
        this._removeEventListeners();

        // remove the popper if user explicity asked for the deletion on destroy
        if (this._options.removeOnDestroy) {
            this._popper.parentNode.removeChild(this._popper);
        }
        return this;
    };

    /**
     * Updates the position of the popper, computing the new offsets and applying the new style
     * @method
     * @memberof Popper
     */
    Popper.prototype.update = function() {
        var data = { instance: this, styles: {} };

        // make sure to apply the popper position before any computation
        this.state.position = this._getPosition(this._popper, this._reference);
        setStyle(this._popper, { position: this.state.position});

        // to avoid useless computations we throttle the popper position refresh to 60fps
        root.requestAnimationFrame(function() {
            var now = root.performance.now();
            if(now - this.state.lastFrame <= 16) {
                // this update fired to early! drop it
                return;
            }
            this.state.lastFrame = now;

            // store placement inside the data object, modifiers will be able to edit `placement` if needed
            // and refer to _originalPlacement to know the original value
            data.placement = this._options.placement;
            data._originalPlacement = this._options.placement;

            // compute the popper and trigger offsets and put them inside data.offsets
            data.offsets = this._getOffsets(this._popper, this._reference, data.placement);

            // get boundaries
            data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);

            data = this.runModifiers(data, this._options.modifiers);

            if (!isFunction(this.state.createCalback)) {
                this.state.onCreateCalled = true;
            }
            if (!this.state.onCreateCalled) {
                this.state.onCreateCalled = true;
                if (isFunction(this.state.createCalback)) {
                    this.state.createCalback(this);
                }
            } else if (isFunction(this.state.updateCallback)) {
                this.state.updateCallback(data);
            }
        }.bind(this));
    };

    /**
     * If a function is passed, it will be executed after the initialization of popper with as first argument the Popper instance.
     * @method
     * @memberof Popper
     * @param {Function} callback
     */
    Popper.prototype.onCreate = function(callback) {
        // the createCallbacks return as first argument the popper instance
        this.state.createCalback = callback;
        return this;
    };

    /**
     * If a function is passed, it will be executed after each update of popper with as first argument the set of coordinates and informations
     * used to style popper and its arrow.
     * NOTE: it doesn't get fired on the first call of the `Popper.update()` method inside the `Popper` constructor!
     * @method
     * @memberof Popper
     * @param {Function} callback
     */
    Popper.prototype.onUpdate = function(callback) {
        this.state.updateCallback = callback;
        return this;
    };

    /**
     * Helper used to generate poppers from a configuration file
     * @method
     * @memberof Popper
     * @param config {Object} configuration
     * @returns {HTMLElement} popper
     */
    Popper.prototype.parse = function(config) {
        var defaultConfig = {
            tagName: 'div',
            classNames: [ 'popper' ],
            attributes: [],
            parent: root.document.body,
            content: '',
            contentType: 'text',
            arrowTagName: 'div',
            arrowClassNames: [ 'popper__arrow' ],
            arrowAttributes: [ 'x-arrow']
        };
        config = Object.assign({}, defaultConfig, config);

        var d = root.document;

        var popper = d.createElement(config.tagName);
        addClassNames(popper, config.classNames);
        addAttributes(popper, config.attributes);
        if (config.contentType === 'node') {
            popper.appendChild(config.content.jquery ? config.content[0] : config.content);
        }else if (config.contentType === 'html') {
            popper.innerHTML = config.content;
        } else {
            popper.textContent = config.content;
        }

        if (config.arrowTagName) {
            var arrow = d.createElement(config.arrowTagName);
            addClassNames(arrow, config.arrowClassNames);
            addAttributes(arrow, config.arrowAttributes);
            popper.appendChild(arrow);
        }

        var parent = config.parent.jquery ? config.parent[0] : config.parent;

        // if the given parent is a string, use it to match an element
        // if more than one element is matched, the first one will be used as parent
        // if no elements are matched, the script will throw an error
        if (typeof parent === 'string') {
            parent = d.querySelectorAll(config.parent);
            if (parent.length > 1) {
                console.warn('WARNING: the given `parent` query(' + config.parent + ') matched more than one element, the first one will be used');
            }
            if (parent.length === 0) {
                throw 'ERROR: the given `parent` doesn\'t exists!';
            }
            parent = parent[0];
        }
        // if the given parent is a DOM nodes list or an array of nodes with more than one element,
        // the first one will be used as parent
        if (parent.length > 1 && parent instanceof Element === false) {
            console.warn('WARNING: you have passed as parent a list of elements, the first one will be used');
            parent = parent[0];
        }

        // append the generated popper to its parent
        parent.appendChild(popper);

        return popper;

        /**
         * Adds class names to the given element
         * @function
         * @ignore
         * @param {HTMLElement} target
         * @param {Array} classes
         */
        function addClassNames(element, classNames) {
            classNames.forEach(function(className) {
                element.classList.add(className);
            });
        }

        /**
         * Adds attributes to the given element
         * @function
         * @ignore
         * @param {HTMLElement} target
         * @param {Array} attributes
         * @example
         * addAttributes(element, [ 'data-info:foobar' ]);
         */
        function addAttributes(element, attributes) {
            attributes.forEach(function(attribute) {
                element.setAttribute(attribute.split(':')[0], attribute.split(':')[1] || '');
            });
        }

    };

    /**
     * Helper used to get the position which will be applied to the popper
     * @method
     * @memberof Popper
     * @param config {HTMLElement} popper element
     * @returns {HTMLElement} reference element
     */
    Popper.prototype._getPosition = function(popper, reference) {
        var container = getOffsetParent(reference);

        // Decide if the popper will be fixed
        // If the reference element is inside a fixed context, the popper will be fixed as well to allow them to scroll together
        var isParentFixed = isFixed(container);
        return isParentFixed ? 'fixed' : 'absolute';
    };

    /**
     * Helper used to determine if the popper's parent is transformed.
     * @param  {[type]} popper [description]
     * @return {[type]}        [description]
     */
    Popper.prototype._getIsParentTransformed = function(popper) {
      return isTransformed(popper.parentNode);
    };

    /**
     * Get offsets to the popper
     * @method
     * @memberof Popper
     * @access private
     * @param {Element} popper - the popper element
     * @param {Element} reference - the reference element (the popper will be relative to this)
     * @returns {Object} An object containing the offsets which will be applied to the popper
     */
    Popper.prototype._getOffsets = function(popper, reference, placement) {
        placement = placement.split('-')[0];
        var popperOffsets = {};

        popperOffsets.position = this.state.position;
        var isParentFixed = popperOffsets.position === 'fixed';

        var isParentTransformed = this.state.isParentTransformed;

        //
        // Get reference element position
        //
        var offsetParent = (isParentFixed && isParentTransformed) ? getOffsetParent(reference) : getOffsetParent(popper);
        var referenceOffsets = getOffsetRectRelativeToCustomParent(reference, offsetParent, isParentFixed, isParentTransformed);

        //
        // Get popper sizes
        //
        var popperRect = getOuterSizes(popper);

        //
        // Compute offsets of popper
        //

        // depending by the popper placement we have to compute its offsets slightly differently
        if (['right', 'left'].indexOf(placement) !== -1) {
            popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - popperRect.height / 2;
            if (placement === 'left') {
                popperOffsets.left = referenceOffsets.left - popperRect.width;
            } else {
                popperOffsets.left = referenceOffsets.right;
            }
        } else {
            popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - popperRect.width / 2;
            if (placement === 'top') {
                popperOffsets.top = referenceOffsets.top - popperRect.height;
            } else {
                popperOffsets.top = referenceOffsets.bottom;
            }
        }

        // Add width and height to our offsets object
        popperOffsets.width   = popperRect.width;
        popperOffsets.height  = popperRect.height;


        return {
            popper: popperOffsets,
            reference: referenceOffsets
        };
    };


    /**
     * Setup needed event listeners used to update the popper position
     * @method
     * @memberof Popper
     * @access private
     */
    Popper.prototype._setupEventListeners = function() {
        // NOTE: 1 DOM access here
        this.state.updateBound = this.update.bind(this);
        root.addEventListener('resize', this.state.updateBound);
        // if the boundariesElement is window we don't need to listen for the scroll event
        if (this._options.boundariesElement !== 'window') {
            var target = getScrollParent(this._reference);
            // here it could be both `body` or `documentElement` thanks to Firefox, we then check both
            if (target === root.document.body || target === root.document.documentElement) {
                target = root;
            }
            target.addEventListener('scroll', this.state.updateBound);
        }
    };

    /**
     * Remove event listeners used to update the popper position
     * @method
     * @memberof Popper
     * @access private
     */
    Popper.prototype._removeEventListeners = function() {
        // NOTE: 1 DOM access here
        root.removeEventListener('resize', this.state.updateBound);
        if (this._options.boundariesElement !== 'window') {
            var target = getScrollParent(this._reference);
            // here it could be both `body` or `documentElement` thanks to Firefox, we then check both
            if (target === root.document.body || target === root.document.documentElement) {
                target = root;
            }
            target.removeEventListener('scroll', this.state.updateBound);
        }
        this.state.updateBound = null;
    };

    /**
     * Computed the boundaries limits and return them
     * @method
     * @memberof Popper
     * @access private
     * @param {Object} data - Object containing the property "offsets" generated by `_getOffsets`
     * @param {Number} padding - Boundaries padding
     * @param {Element} boundariesElement - Element used to define the boundaries
     * @returns {Object} Coordinates of the boundaries
     */
    Popper.prototype._getBoundaries = function(data, padding, boundariesElement) {
        // NOTE: 1 DOM access here
        var boundaries = {};
        var width, height;
        if (boundariesElement === 'window') {
            var body = root.document.body,
                html = root.document.documentElement;

            height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
            width = Math.max( body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth );

            boundaries = {
                top: 0,
                right: width,
                bottom: height,
                left: 0
            };
        } else if (boundariesElement === 'viewport') {
            var offsetParent = getOffsetParent(this._popper);
            var scrollParent = getScrollParent(this._popper);
            var offsetParentRect = getOffsetRect(offsetParent);

            // if the popper is fixed we don't have to substract scrolling from the boundaries
            var scrollTop = data.offsets.popper.position === 'fixed' ? 0 : scrollParent.scrollTop;
            var scrollLeft = data.offsets.popper.position === 'fixed' ? 0 : scrollParent.scrollLeft;

            boundaries = {
                top: 0 - (offsetParentRect.top - scrollTop),
                right: root.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),
                bottom: root.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),
                left: 0 - (offsetParentRect.left - scrollLeft)
            };
        } else {
            if (getOffsetParent(this._popper) === boundariesElement) {
                boundaries = {
                    top: 0,
                    left: 0,
                    right: boundariesElement.clientWidth,
                    bottom: boundariesElement.clientHeight
                };
            } else {
                boundaries = getOffsetRect(boundariesElement);
            }
        }
        boundaries.left += padding;
        boundaries.right -= padding;
        boundaries.top = boundaries.top + padding;
        boundaries.bottom = boundaries.bottom - padding;
        return boundaries;
    };


    /**
     * Loop trough the list of modifiers and run them in order, each of them will then edit the data object
     * @method
     * @memberof Popper
     * @access public
     * @param {Object} data
     * @param {Array} modifiers
     * @param {Function} ends
     */
    Popper.prototype.runModifiers = function(data, modifiers, ends) {
        var modifiersToRun = modifiers.slice();
        if (ends !== undefined) {
            modifiersToRun = this._options.modifiers.slice(0, getArrayKeyIndex(this._options.modifiers, ends));
        }

        modifiersToRun.forEach(function(modifier) {
            if (isFunction(modifier)) {
                data = modifier.call(this, data);
            }
        }.bind(this));

        return data;
    };

    /**
     * Helper used to know if the given modifier depends from another one.
     * @method
     * @memberof Popper
     * @returns {Boolean}
     */

    Popper.prototype.isModifierRequired = function(requesting, requested) {
        var index = getArrayKeyIndex(this._options.modifiers, requesting);
        return !!this._options.modifiers.slice(0, index).filter(function(modifier) {
            return modifier === requested;
        }).length;
    };

    //
    // Modifiers
    //

    /**
     * Modifiers list
     * @namespace Popper.modifiers
     * @memberof Popper
     * @type {Object}
     */
    Popper.prototype.modifiers = {};

    /**
     * Apply the computed styles to the popper element
     * @method
     * @memberof Popper.modifiers
     * @argument {Object} data - The data object generated by `update` method
     * @returns {Object} The same data object
     */
    Popper.prototype.modifiers.applyStyle = function(data) {
        // apply the final offsets to the popper
        // NOTE: 1 DOM access here
        var styles = {
            position: data.offsets.popper.position
        };

        // round top and left to avoid blurry text
        var left = Math.round(data.offsets.popper.left);
        var top = Math.round(data.offsets.popper.top);

        // if gpuAcceleration is set to true and transform is supported, we use `translate3d` to apply the position to the popper
        // we automatically use the supported prefixed version if needed
        var prefixedProperty;
        if (this._options.gpuAcceleration && (prefixedProperty = getSupportedPropertyName('transform'))) {
            styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
            styles.top = 0;
            styles.left = 0;
        }
        // othwerise, we use the standard `left` and `top` properties
        else {
            styles.left =left;
            styles.top = top;
        }

        // any property present in `data.styles` will be applied to the popper,
        // in this way we can make the 3rd party modifiers add custom styles to it
        // Be aware, modifiers could override the properties defined in the previous
        // lines of this modifier!
        Object.assign(styles, data.styles);

        setStyle(this._popper, styles);

        // set an attribute which will be useful to style the tooltip (use it to properly position its arrow)
        // NOTE: 1 DOM access here
        this._popper.setAttribute('x-placement', data.placement);

        // if the arrow style has been computed, apply the arrow style
        if (data.offsets.arrow) {
            setStyle(data.arrowElement, data.offsets.arrow);
        }

        // return the data object to allow chaining of other modifiers
        return data;
    };

    /**
     * Modifier used to shift the popper on the start or end of its reference element side
     * @method
     * @memberof Popper.modifiers
     * @argument {Object} data - The data object generated by `update` method
     * @returns {Object} The data object, properly modified
     */
    Popper.prototype.modifiers.shift = function(data) {
        var placement = data.placement;
        var basePlacement = placement.split('-')[0];
        var shiftVariation = placement.split('-')[1];

        // if shift shiftVariation is specified, run the modifier
        if (shiftVariation) {
            var reference = data.offsets.reference;
            var popper = getPopperClientRect(data.offsets.popper);

            var shiftOffsets = {
                y: {
                    start:  { top: reference.top },
                    end:    { top: reference.top + reference.height - popper.height }
                },
                x: {
                    start:  { left: reference.left },
                    end:    { left: reference.left + reference.width - popper.width }
                }
            };

            var axis = ['bottom', 'top'].indexOf(basePlacement) !== -1 ? 'x' : 'y';

            data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);
        }

        return data;
    };


    /**
     * Modifier used to make sure the popper does not overflows from it's boundaries
     * @method
     * @memberof Popper.modifiers
     * @argument {Object} data - The data object generated by `update` method
     * @returns {Object} The data object, properly modified
     */
    Popper.prototype.modifiers.preventOverflow = function(data) {
        var order = this._options.preventOverflowOrder;
        var popper = getPopperClientRect(data.offsets.popper);

        var check = {
            left: function() {
                var left = popper.left;
                if (popper.left < data.boundaries.left) {
                    left = Math.max(popper.left, data.boundaries.left);
                }
                return { left: left };
            },
            right: function() {
                var left = popper.left;
                if (popper.right > data.boundaries.right) {
                    left = Math.min(popper.left, data.boundaries.right - popper.width);
                }
                return { left: left };
            },
            top: function() {
                var top = popper.top;
                if (popper.top < data.boundaries.top) {
                    top = Math.max(popper.top, data.boundaries.top);
                }
                return { top: top };
            },
            bottom: function() {
                var top = popper.top;
                if (popper.bottom > data.boundaries.bottom) {
                    top = Math.min(popper.top, data.boundaries.bottom - popper.height);
                }
                return { top: top };
            }
        };

        order.forEach(function(direction) {
            data.offsets.popper = Object.assign(popper, check[direction]());
        });

        return data;
    };

    /**
     * Modifier used to make sure the popper is always near its reference
     * @method
     * @memberof Popper.modifiers
     * @argument {Object} data - The data object generated by _update method
     * @returns {Object} The data object, properly modified
     */
    Popper.prototype.modifiers.keepTogether = function(data) {
        var popper  = getPopperClientRect(data.offsets.popper);
        var reference = data.offsets.reference;
        var f = Math.floor;

        if (popper.right < f(reference.left)) {
            data.offsets.popper.left = f(reference.left) - popper.width;
        }
        if (popper.left > f(reference.right)) {
            data.offsets.popper.left = f(reference.right);
        }
        if (popper.bottom < f(reference.top)) {
            data.offsets.popper.top = f(reference.top) - popper.height;
        }
        if (popper.top > f(reference.bottom)) {
            data.offsets.popper.top = f(reference.bottom);
        }

        return data;
    };

    /**
     * Modifier used to flip the placement of the popper when the latter is starting overlapping its reference element.
     * Requires the `preventOverflow` modifier before it in order to work.
     * **NOTE:** This modifier will run all its previous modifiers everytime it tries to flip the popper!
     * @method
     * @memberof Popper.modifiers
     * @argument {Object} data - The data object generated by _update method
     * @returns {Object} The data object, properly modified
     */
    Popper.prototype.modifiers.flip = function(data) {
        // check if preventOverflow is in the list of modifiers before the flip modifier.
        // otherwise flip would not work as expected.
        if (!this.isModifierRequired(this.modifiers.flip, this.modifiers.preventOverflow)) {
            console.warn('WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!');
            return data;
        }

        if (data.flipped && data.placement === data._originalPlacement) {
            // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
            return data;
        }

        var placement = data.placement.split('-')[0];
        var placementOpposite = getOppositePlacement(placement);
        var variation = data.placement.split('-')[1] || '';

        var flipOrder = [];
        if(this._options.flipBehavior === 'flip') {
            flipOrder = [
                placement,
                placementOpposite
            ];
        } else {
            flipOrder = this._options.flipBehavior;
        }

        flipOrder.forEach(function(step, index) {
            if (placement !== step || flipOrder.length === index + 1) {
                return;
            }

            placement = data.placement.split('-')[0];
            placementOpposite = getOppositePlacement(placement);

            var popperOffsets = getPopperClientRect(data.offsets.popper);

            // this boolean is used to distinguish right and bottom from top and left
            // they need different computations to get flipped
            var a = ['right', 'bottom'].indexOf(placement) !== -1;

            // using Math.floor because the reference offsets may contain decimals we are not going to consider here
            if (
                a && Math.floor(data.offsets.reference[placement]) > Math.floor(popperOffsets[placementOpposite]) ||
                !a && Math.floor(data.offsets.reference[placement]) < Math.floor(popperOffsets[placementOpposite])
            ) {
                // we'll use this boolean to detect any flip loop
                data.flipped = true;
                data.placement = flipOrder[index + 1];
                if (variation) {
                    data.placement += '-' + variation;
                }
                data.offsets.popper = this._getOffsets(this._popper, this._reference, data.placement).popper;

                data = this.runModifiers(data, this._options.modifiers, this._flip);
            }
        }.bind(this));
        return data;
    };

    /**
     * Modifier used to add an offset to the popper, useful if you more granularity positioning your popper.
     * The offsets will shift the popper on the side of its reference element.
     * @method
     * @memberof Popper.modifiers
     * @argument {Object} data - The data object generated by _update method
     * @returns {Object} The data object, properly modified
     */
    Popper.prototype.modifiers.offset = function(data) {
        var offset = this._options.offset;
        var popper  = data.offsets.popper;

        if (data.placement.indexOf('left') !== -1) {
            popper.top -= offset;
        }
        else if (data.placement.indexOf('right') !== -1) {
            popper.top += offset;
        }
        else if (data.placement.indexOf('top') !== -1) {
            popper.left -= offset;
        }
        else if (data.placement.indexOf('bottom') !== -1) {
            popper.left += offset;
        }
        return data;
    };

    /**
     * Modifier used to move the arrows on the edge of the popper to make sure them are always between the popper and the reference element
     * It will use the CSS outer size of the arrow element to know how many pixels of conjuction are needed
     * @method
     * @memberof Popper.modifiers
     * @argument {Object} data - The data object generated by _update method
     * @returns {Object} The data object, properly modified
     */
    Popper.prototype.modifiers.arrow = function(data) {
        var arrow  = this._options.arrowElement;

        // if the arrowElement is a string, suppose it's a CSS selector
        if (typeof arrow === 'string') {
            arrow = this._popper.querySelector(arrow);
        }

        // if arrow element is not found, don't run the modifier
        if (!arrow) {
            return data;
        }

        // the arrow element must be child of its popper
        if (!this._popper.contains(arrow)) {
            console.warn('WARNING: `arrowElement` must be child of its popper element!');
            return data;
        }

        // arrow depends on keepTogether in order to work
        if (!this.isModifierRequired(this.modifiers.arrow, this.modifiers.keepTogether)) {
            console.warn('WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!');
            return data;
        }

        var arrowStyle  = {};
        var placement   = data.placement.split('-')[0];
        var popper      = getPopperClientRect(data.offsets.popper);
        var reference   = data.offsets.reference;
        var isVertical  = ['left', 'right'].indexOf(placement) !== -1;

        var len         = isVertical ? 'height' : 'width';
        var side        = isVertical ? 'top' : 'left';
        var altSide     = isVertical ? 'left' : 'top';
        var opSide      = isVertical ? 'bottom' : 'right';
        var arrowSize   = getOuterSizes(arrow)[len];

        //
        // extends keepTogether behavior making sure the popper and its reference have enough pixels in conjuction
        //

        // top/left side
        if (reference[opSide] - arrowSize < popper[side]) {
            data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);
        }
        // bottom/right side
        if (reference[side] + arrowSize > popper[opSide]) {
            data.offsets.popper[side] += (reference[side] + arrowSize) - popper[opSide];
        }

        // compute center of the popper
        var center = reference[side] + (reference[len] / 2) - (arrowSize / 2);

        // Compute the sideValue using the updated popper offsets
        var sideValue = center - getPopperClientRect(data.offsets.popper)[side];

        // prevent arrow from being placed not contiguously to its popper
        sideValue = Math.max(Math.min(popper[len] - arrowSize, sideValue), 0);
        arrowStyle[side] = sideValue;
        arrowStyle[altSide] = ''; // make sure to remove any old style from the arrow

        data.offsets.arrow = arrowStyle;
        data.arrowElement = arrow;

        return data;
    };


    //
    // Helpers
    //

    /**
     * Get the outer sizes of the given element (offset size + margins)
     * @function
     * @ignore
     * @argument {Element} element
     * @returns {Object} object containing width and height properties
     */
    function getOuterSizes(element) {
        // NOTE: 1 DOM access here
        var _display = element.style.display, _visibility = element.style.visibility;
        element.style.display = 'block'; element.style.visibility = 'hidden';
        var calcWidthToForceRepaint = element.offsetWidth;

        // original method
        var styles = root.getComputedStyle(element);
        var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
        var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
        var result = { width: element.offsetWidth + y, height: element.offsetHeight + x };

        // reset element styles
        element.style.display = _display; element.style.visibility = _visibility;
        return result;
    }

    /**
     * Get the opposite placement of the given one/
     * @function
     * @ignore
     * @argument {String} placement
     * @returns {String} flipped placement
     */
    function getOppositePlacement(placement) {
        var hash = {left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
        return placement.replace(/left|right|bottom|top/g, function(matched){
            return hash[matched];
        });
    }

    /**
     * Given the popper offsets, generate an output similar to getBoundingClientRect
     * @function
     * @ignore
     * @argument {Object} popperOffsets
     * @returns {Object} ClientRect like output
     */
    function getPopperClientRect(popperOffsets) {
        var offsets = Object.assign({}, popperOffsets);
        offsets.right = offsets.left + offsets.width;
        offsets.bottom = offsets.top + offsets.height;
        return offsets;
    }

    /**
     * Given an array and the key to find, returns its index
     * @function
     * @ignore
     * @argument {Array} arr
     * @argument keyToFind
     * @returns index or null
     */
    function getArrayKeyIndex(arr, keyToFind) {
        var i = 0, key;
        for (key in arr) {
            if (arr[key] === keyToFind) {
                return i;
            }
            i++;
        }
        return null;
    }

    /**
     * Get CSS computed property of the given element
     * @function
     * @ignore
     * @argument {Eement} element
     * @argument {String} property
     */
    function getStyleComputedProperty(element, property) {
        // NOTE: 1 DOM access here
        var css = root.getComputedStyle(element, null);
        return css[property];
    }

    /**
     * Returns the offset parent of the given element
     * @function
     * @ignore
     * @argument {Element} element
     * @returns {Element} offset parent
     */
    function getOffsetParent(element) {
        // NOTE: 1 DOM access here
        var offsetParent = element.offsetParent;
        return offsetParent === root.document.body || !offsetParent ? root.document.documentElement : offsetParent;
    }

    /**
     * Returns the scrolling parent of the given element
     * @function
     * @ignore
     * @argument {Element} element
     * @returns {Element} offset parent
     */
    function getScrollParent(element) {
        if (element === root.document) {
            // Firefox puts the scrollTOp value on `documentElement` instead of `body`, we then check which of them is
            // greater than 0 and return the proper element
            if (root.document.body.scrollTop) {
                return root.document.body;
            } else {
                return root.document.documentElement;
            }
        }

        // Firefox want us to check `-x` and `-y` variations as well
        if (
            ['scroll', 'auto'].indexOf(getStyleComputedProperty(element, 'overflow')) !== -1 ||
            ['scroll', 'auto'].indexOf(getStyleComputedProperty(element, 'overflow-x')) !== -1 ||
            ['scroll', 'auto'].indexOf(getStyleComputedProperty(element, 'overflow-y')) !== -1
        ) {
            // If the detected scrollParent is body, we perform an additional check on its parentNode
            // in this way we'll get body if the browser is Chrome-ish, or documentElement otherwise
            // fixes issue #65
            return element === root.document.body ? getScrollParent(element.parentNode) : element;
        }
        return element.parentNode ? getScrollParent(element.parentNode) : element;
    }

    /**
     * Check if the given element is fixed or is inside a fixed parent
     * @function
     * @ignore
     * @argument {Element} element
     * @argument {Element} customContainer
     * @returns {Boolean} answer to "isFixed?"
     */
    function isFixed(element) {
        if (element === root.document.body || element.nodeName === 'HTML') {
            return false;
        }
        if (getStyleComputedProperty(element, 'position') === 'fixed') {
            return true;
        }
        return element.parentNode ? isFixed(element.parentNode) : element;
    }

    /**
     * Check if the given element has transforms applied to itself or a parent
     * @param  {Element} element
     * @return {Boolean} answer to "isTransformed?"
     */
    function isTransformed(element) {
      if (element === root.document.body) {
          return false;
      }
      if (getStyleComputedProperty(element, 'transform') !== 'none') {
          return true;
      }
      return element.parentNode ? isTransformed(element.parentNode) : element;
    }

    /**
     * Set the style to the given popper
     * @function
     * @ignore
     * @argument {Element} element - Element to apply the style to
     * @argument {Object} styles - Object with a list of properties and values which will be applied to the element
     */
    function setStyle(element, styles) {
        function is_numeric(n) {
            return (n !== '' && !isNaN(parseFloat(n)) && isFinite(n));
        }
        Object.keys(styles).forEach(function(prop) {
            var unit = '';
            // add unit if the value is numeric and is one of the following
            if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && is_numeric(styles[prop])) {
                unit = 'px';
            }
            element.style[prop] = styles[prop] + unit;
        });
    }

    /**
     * Check if the given variable is a function
     * @function
     * @ignore
     * @argument {Element} element - Element to check
     * @returns {Boolean} answer to: is a function?
     */
    function isFunction(functionToCheck) {
        var getType = {};
        return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
    }

    /**
     * Get the position of the given element, relative to its offset parent
     * @function
     * @ignore
     * @param {Element} element
     * @return {Object} position - Coordinates of the element and its `scrollTop`
     */
    function getOffsetRect(element) {
        var elementRect = {
            width: element.offsetWidth,
            height: element.offsetHeight,
            left: element.offsetLeft,
            top: element.offsetTop
        };

        elementRect.right = elementRect.left + elementRect.width;
        elementRect.bottom = elementRect.top + elementRect.height;

        // position
        return elementRect;
    }

    /**
     * Get bounding client rect of given element
     * @function
     * @ignore
     * @param {HTMLElement} element
     * @return {Object} client rect
     */
    function getBoundingClientRect(element) {
        var rect = element.getBoundingClientRect();
        return {
            left: rect.left,
            top: rect.top,
            right: rect.right,
            bottom: rect.bottom,
            width: rect.right - rect.left,
            height: rect.bottom - rect.top
        };
    }

    /**
     * Given an element and one of its parents, return the offset
     * @function
     * @ignore
     * @param {HTMLElement} element
     * @param {HTMLElement} parent
     * @return {Object} rect
     */
    function getOffsetRectRelativeToCustomParent(element, parent, fixed, transformed) {
        var elementRect = getBoundingClientRect(element);
        var parentRect = getBoundingClientRect(parent);

        if (fixed && !transformed) {
            var scrollParent = getScrollParent(parent);
            parentRect.top += scrollParent.scrollTop;
            parentRect.bottom += scrollParent.scrollTop;
            parentRect.left += scrollParent.scrollLeft;
            parentRect.right += scrollParent.scrollLeft;
        }

        var rect = {
            top: elementRect.top - parentRect.top ,
            left: elementRect.left - parentRect.left ,
            bottom: (elementRect.top - parentRect.top) + elementRect.height,
            right: (elementRect.left - parentRect.left) + elementRect.width,
            width: elementRect.width,
            height: elementRect.height
        };
        return rect;
    }

    /**
     * Get the prefixed supported property name
     * @function
     * @ignore
     * @argument {String} property (camelCase)
     * @returns {String} prefixed property (camelCase)
     */
    function getSupportedPropertyName(property) {
        var prefixes = ['', 'ms', 'webkit', 'moz', 'o'];

        for (var i = 0; i < prefixes.length; i++) {
            var toCheck = prefixes[i] ? prefixes[i] + property.charAt(0).toUpperCase() + property.slice(1) : property;
            if (typeof root.document.body.style[toCheck] !== 'undefined') {
                return toCheck;
            }
        }
        return null;
    }

    /**
     * The Object.assign() method is used to copy the values of all enumerable own properties from one or more source
     * objects to a target object. It will return the target object.
     * This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway
     * Source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
     * @function
     * @ignore
     */
    if (!Object.assign) {
        Object.defineProperty(Object, 'assign', {
            enumerable: false,
            configurable: true,
            writable: true,
            value: function(target) {
                if (target === undefined || target === null) {
                    throw new TypeError('Cannot convert first argument to object');
                }

                var to = Object(target);
                for (var i = 1; i < arguments.length; i++) {
                    var nextSource = arguments[i];
                    if (nextSource === undefined || nextSource === null) {
                        continue;
                    }
                    nextSource = Object(nextSource);

                    var keysArray = Object.keys(nextSource);
                    for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
                        var nextKey = keysArray[nextIndex];
                        var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
                        if (desc !== undefined && desc.enumerable) {
                            to[nextKey] = nextSource[nextKey];
                        }
                    }
                }
                return to;
            }
        });
    }

    if (!root.requestAnimationFrame) {
        /* jshint ignore:start */
        var lastTime = 0;
        var vendors = ['ms', 'moz', 'webkit', 'o'];
        for(var x = 0; x < vendors.length && !root.requestAnimationFrame; ++x) {
            root.requestAnimationFrame = root[vendors[x]+'RequestAnimationFrame'];
            root.cancelAnimationFrame = root[vendors[x]+'CancelAnimationFrame'] || root[vendors[x]+'CancelRequestAnimationFrame'];
        }

        if (!root.requestAnimationFrame) {
            root.requestAnimationFrame = function(callback, element) {
                var currTime = new Date().getTime();
                var timeToCall = Math.max(0, 16 - (currTime - lastTime));
                var id = root.setTimeout(function() { callback(currTime + timeToCall); },
                                           timeToCall);
                lastTime = currTime + timeToCall;
                return id;
            };
        }

        if (!root.cancelAnimationFrame) {
            root.cancelAnimationFrame = function(id) {
                clearTimeout(id);
            };
        }
        /* jshint ignore:end */
    }

    return Popper;
}));


/***/ }),
/* 85 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.i18n = exports.use = exports.t = undefined;

var _getPrototypeOf = __webpack_require__(181);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _zhCN = __webpack_require__(184);

var _zhCN2 = _interopRequireDefault(_zhCN);

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

var _deepmerge = __webpack_require__(185);

var _deepmerge2 = _interopRequireDefault(_deepmerge);

var _format = __webpack_require__(186);

var _format2 = _interopRequireDefault(_format);

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

var format = (0, _format2.default)(_vue2.default);
var lang = _zhCN2.default;
var merged = false;
var i18nHandler = function i18nHandler() {
    var vuei18n = (0, _getPrototypeOf2.default)(this || _vue2.default).$t;
    if (typeof vuei18n === 'function') {
        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 };

/***/ }),
/* 86 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(237), __esModule: true };

/***/ }),
/* 87 */
/***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__(246);
var ITERATOR = __webpack_require__(12)('iterator');
var Iterators = __webpack_require__(34);
module.exports = __webpack_require__(7).getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),
/* 88 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(256),
  /* template */
  __webpack_require__(257),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 89 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(292),
  /* template */
  __webpack_require__(294),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 90 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(297),
  /* template */
  __webpack_require__(298),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 91 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(299),
  /* template */
  __webpack_require__(300),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 92 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(301),
  /* template */
  __webpack_require__(302),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 93 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(303),
  /* template */
  __webpack_require__(306),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 94 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(304),
  /* template */
  __webpack_require__(305),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 95 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    props: {
        disabledHours: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        disabledMinutes: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        disabledSeconds: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        hideDisabledOptions: {
            type: Boolean,
            default: false
        }
    }
};

/***/ }),
/* 96 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(310),
  /* template */
  __webpack_require__(311),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 97 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

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

exports.default = _assign2.default || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

/***/ }),
/* 98 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(4);


/**
 *  Rule for validating required fields.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param source The source object being validated.
 *  @param errors An array of errors that this rule may add
 *  validation errors to.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function required(rule, value, source, errors, options, type) {
  if (rule.required && (!source.hasOwnProperty(rule.field) || __WEBPACK_IMPORTED_MODULE_0__util__["e" /* isEmptyValue */](value, type || rule.type))) {
    errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages.required, rule.fullField));
  }
}

/* harmony default export */ __webpack_exports__["a"] = (required);

/***/ }),
/* 99 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(354),
  /* template */
  __webpack_require__(355),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 100 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _notification = __webpack_require__(375);

var _notification2 = _interopRequireDefault(_notification);

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

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

_notification2.default.newInstance = function (properties) {
    var _props = properties || {};

    var Instance = new _vue2.default({
        data: _props,
        render: function render(h) {
            return h(_notification2.default, {
                props: _props
            });
        }
    });

    var component = Instance.$mount();
    document.body.appendChild(component.$el);
    var notification = Instance.$children[0];

    return {
        notice: function notice(noticeProps) {
            notification.add(noticeProps);
        },
        remove: function remove(name) {
            notification.close(name);
        },

        component: notification,
        destroy: function destroy(element) {
            notification.closeAll();
            setTimeout(function () {
                document.body.removeChild(document.getElementsByClassName(element)[0]);
            }, 500);
        }
    };
};

exports.default = _notification2.default;

/***/ }),
/* 101 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assist = __webpack_require__(2);

exports.default = {
    methods: {
        checkScrollBar: function checkScrollBar() {
            var fullWindowWidth = window.innerWidth;
            if (!fullWindowWidth) {
                var documentElementRect = document.documentElement.getBoundingClientRect();
                fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);
            }
            this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth;
            if (this.bodyIsOverflowing) {
                this.scrollBarWidth = (0, _assist.getScrollBarSize)();
            }
        },
        setScrollBar: function setScrollBar() {
            if (this.bodyIsOverflowing && this.scrollBarWidth !== undefined) {
                document.body.style.paddingRight = this.scrollBarWidth + 'px';
            }
        },
        resetScrollBar: function resetScrollBar() {
            document.body.style.paddingRight = '';
        },
        addScrollEffect: function addScrollEffect() {
            this.checkScrollBar();
            this.setScrollBar();
            document.body.style.overflow = 'hidden';
        },
        removeScrollEffect: function removeScrollEffect() {
            document.body.style.overflow = '';
            this.resetScrollBar();
        }
    }
};

/***/ }),
/* 102 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(395),
  /* template */
  __webpack_require__(396),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 103 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

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

var isServer = _vue2.default.prototype.$isServer;
var Popper = isServer ? function () {} : __webpack_require__(84);exports.default = {
    props: {
        placement: {
            type: String,
            default: 'bottom'
        },
        boundariesPadding: {
            type: Number,
            default: 5
        },
        reference: Object,
        popper: Object,
        offset: {
            default: 0
        },
        value: {
            type: Boolean,
            default: false
        },
        transition: String,
        options: {
            type: Object,
            default: function _default() {
                return {
                    gpuAcceleration: false,
                    boundariesElement: 'body' };
            }
        }
    },
    data: function data() {
        return {
            visible: this.value
        };
    },

    watch: {
        value: {
            immediate: true,
            handler: function handler(val) {
                this.visible = val;
                this.$emit('input', val);
            }
        },
        visible: function visible(val) {
            if (val) {
                this.updatePopper();
                this.$emit('on-popper-show');
            } else {
                this.destroyPopper();
                this.$emit('on-popper-hide');
            }
            this.$emit('input', val);
        }
    },
    methods: {
        createPopper: function createPopper() {
            var _this = this;

            if (isServer) return;
            if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.placement)) {
                return;
            }

            var options = this.options;
            var popper = this.popper || this.$refs.popper;
            var reference = this.reference || this.$refs.reference;

            if (!popper || !reference) return;

            if (this.popperJS && this.popperJS.hasOwnProperty('destroy')) {
                this.popperJS.destroy();
            }

            options.placement = this.placement;
            options.offset = this.offset;

            this.popperJS = new Popper(reference, popper, options);
            this.popperJS.onCreate(function (popper) {
                _this.resetTransformOrigin(popper);
                _this.$nextTick(_this.updatePopper);
                _this.$emit('created', _this);
            });
        },
        updatePopper: function updatePopper() {
            if (isServer) return;
            this.popperJS ? this.popperJS.update() : this.createPopper();
        },
        doDestroy: function doDestroy() {
            if (isServer) return;
            if (this.visible) return;
            this.popperJS.destroy();
            this.popperJS = null;
        },
        destroyPopper: function destroyPopper() {
            if (isServer) return;
            if (this.popperJS) {
                this.resetTransformOrigin(this.popperJS);
            }
        },
        resetTransformOrigin: function resetTransformOrigin(popper) {
            if (isServer) return;
            var placementMap = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' };
            var placement = popper._popper.getAttribute('x-placement').split('-')[0];
            var origin = placementMap[placement];
            popper._popper.style.transformOrigin = ['top', 'bottom'].indexOf(placement) > -1 ? 'center ' + origin : origin + ' center';
        }
    },
    beforeDestroy: function beforeDestroy() {
        if (isServer) return;
        if (this.popperJS) {
            this.popperJS.destroy();
        }
    }
};

/***/ }),
/* 104 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(398),
  /* template */
  __webpack_require__(399),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 105 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(414),
  /* template */
  __webpack_require__(415),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 106 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(419),
  /* template */
  __webpack_require__(420),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 107 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

exports.default = {
    methods: {
        alignCls: function alignCls(column) {
            var _ref;

            var row = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

            var cellClassName = '';
            if (row.cellClassName && column.key && row.cellClassName[column.key]) {
                cellClassName = row.cellClassName[column.key];
            }
            return [(_ref = {}, (0, _defineProperty3.default)(_ref, '' + cellClassName, cellClassName), (0, _defineProperty3.default)(_ref, '' + column.className, column.className), (0, _defineProperty3.default)(_ref, this.prefixCls + '-column-' + column.align, column.align), (0, _defineProperty3.default)(_ref, this.prefixCls + '-hidden', this.fixed === 'left' && column.fixed !== 'left' || this.fixed === 'right' && column.fixed !== 'right' || !this.fixed && column.fixed && (column.fixed === 'left' || column.fixed === 'right')), _ref)];
        },
        isPopperShow: function isPopperShow(column) {
            return column.filters && (!this.fixed && !column.fixed || this.fixed === 'left' && column.fixed === 'left' || this.fixed === 'right' && column.fixed === 'right');
        },
        setCellWidth: function setCellWidth(column, index, top) {
            var width = '';
            if (column.width) {
                width = column.width;
            } else if (this.columnsWidth[column._index]) {
                width = this.columnsWidth[column._index].width;
            }

            if (this.columns.length === index + 1 && top && this.$parent.bodyHeight !== 0) {
                width += this.$parent.scrollBarWidth;
            }

            if (this.fixed === 'right') {
                var firstFixedIndex = this.columns.findIndex(function (col) {
                    return col.fixed === 'right';
                });
                if (firstFixedIndex === index) width += this.$parent.scrollBarWidth;
            }
            if (width === '0') width = '';
            return width;
        }
    }
};

/***/ }),
/* 108 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    name: 'TableExpand',
    functional: true,
    props: {
        row: Object,
        render: Function,
        index: Number,
        column: {
            type: Object,
            default: null
        }
    },
    render: function render(h, ctx) {
        var params = {
            row: ctx.props.row,
            index: ctx.props.index
        };
        if (ctx.props.column) params.column = ctx.props.column;
        return ctx.props.render(h, params);
    }
};

/***/ }),
/* 109 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = module.exports = {};

/**
 * Loops through the collection and calls the callback for each element. if the callback returns truthy, the loop is broken and returns the same value.
 * @public
 * @param {*} collection The collection to loop through. Needs to have a length property set and have indices set from 0 to length - 1.
 * @param {function} callback The callback to be called for each element. The element will be given as a parameter to the callback. If this callback returns truthy, the loop is broken and the same value is returned.
 * @returns {*} The value that a callback has returned (if truthy). Otherwise nothing.
 */
utils.forEach = function(collection, callback) {
    for(var i = 0; i < collection.length; i++) {
        var result = callback(collection[i]);
        if(result) {
            return result;
        }
    }
};


/***/ }),
/* 110 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var detector = module.exports = {};

detector.isIE = function(version) {
    function isAnyIeVersion() {
        var agent = navigator.userAgent.toLowerCase();
        return agent.indexOf("msie") !== -1 || agent.indexOf("trident") !== -1 || agent.indexOf(" edge/") !== -1;
    }

    if(!isAnyIeVersion()) {
        return false;
    }

    if(!version) {
        return true;
    }

    //Shamelessly stolen from https://gist.github.com/padolsey/527683
    var ieVersion = (function(){
        var undef,
            v = 3,
            div = document.createElement("div"),
            all = div.getElementsByTagName("i");

        do {
            div.innerHTML = "<!--[if gt IE " + (++v) + "]><i></i><![endif]-->";
        }
        while (all[0]);

        return v > 4 ? v : undef;
    }());

    return version === ieVersion;
};

detector.isLegacyOpera = function() {
    return !!window.opera;
};


/***/ }),
/* 111 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

var _keys = __webpack_require__(31);

var _keys2 = _interopRequireDefault(_keys);

__webpack_require__(120);

__webpack_require__(140);

var _affix = __webpack_require__(142);

var _affix2 = _interopRequireDefault(_affix);

var _alert = __webpack_require__(149);

var _alert2 = _interopRequireDefault(_alert);

var _autoComplete = __webpack_require__(155);

var _autoComplete2 = _interopRequireDefault(_autoComplete);

var _avatar = __webpack_require__(198);

var _avatar2 = _interopRequireDefault(_avatar);

var _backTop = __webpack_require__(202);

var _backTop2 = _interopRequireDefault(_backTop);

var _badge = __webpack_require__(206);

var _badge2 = _interopRequireDefault(_badge);

var _breadcrumb = __webpack_require__(210);

var _breadcrumb2 = _interopRequireDefault(_breadcrumb);

var _button = __webpack_require__(217);

var _button2 = _interopRequireDefault(_button);

var _card = __webpack_require__(223);

var _card2 = _interopRequireDefault(_card);

var _carousel = __webpack_require__(227);

var _carousel2 = _interopRequireDefault(_carousel);

var _cascader = __webpack_require__(234);

var _cascader2 = _interopRequireDefault(_cascader);

var _checkbox = __webpack_require__(253);

var _checkbox2 = _interopRequireDefault(_checkbox);

var _circle = __webpack_require__(258);

var _circle2 = _interopRequireDefault(_circle);

var _collapse = __webpack_require__(262);

var _collapse2 = _interopRequireDefault(_collapse);

var _colorPicker = __webpack_require__(269);

var _colorPicker2 = _interopRequireDefault(_colorPicker);

var _datePicker = __webpack_require__(290);

var _datePicker2 = _interopRequireDefault(_datePicker);

var _dropdown = __webpack_require__(313);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _form = __webpack_require__(323);

var _form2 = _interopRequireDefault(_form);

var _icon = __webpack_require__(15);

var _icon2 = _interopRequireDefault(_icon);

var _input = __webpack_require__(352);

var _input2 = _interopRequireDefault(_input);

var _inputNumber = __webpack_require__(353);

var _inputNumber2 = _interopRequireDefault(_inputNumber);

var _loadingBar = __webpack_require__(356);

var _loadingBar2 = _interopRequireDefault(_loadingBar);

var _menu = __webpack_require__(361);

var _menu2 = _interopRequireDefault(_menu);

var _message = __webpack_require__(374);

var _message2 = _interopRequireDefault(_message);

var _modal = __webpack_require__(381);

var _modal2 = _interopRequireDefault(_modal);

var _notice = __webpack_require__(386);

var _notice2 = _interopRequireDefault(_notice);

var _page = __webpack_require__(387);

var _page2 = _interopRequireDefault(_page);

var _poptip = __webpack_require__(394);

var _poptip2 = _interopRequireDefault(_poptip);

var _progress = __webpack_require__(397);

var _progress2 = _interopRequireDefault(_progress);

var _radio = __webpack_require__(400);

var _radio2 = _interopRequireDefault(_radio);

var _rate = __webpack_require__(407);

var _rate2 = _interopRequireDefault(_rate);

var _slider = __webpack_require__(411);

var _slider2 = _interopRequireDefault(_slider);

var _spin = __webpack_require__(417);

var _spin2 = _interopRequireDefault(_spin);

var _steps = __webpack_require__(421);

var _steps2 = _interopRequireDefault(_steps);

var _switch = __webpack_require__(428);

var _switch2 = _interopRequireDefault(_switch);

var _table = __webpack_require__(432);

var _table2 = _interopRequireDefault(_table);

var _tabs = __webpack_require__(465);

var _tabs2 = _interopRequireDefault(_tabs);

var _tag = __webpack_require__(473);

var _tag2 = _interopRequireDefault(_tag);

var _timeline = __webpack_require__(477);

var _timeline2 = _interopRequireDefault(_timeline);

var _timePicker = __webpack_require__(484);

var _timePicker2 = _interopRequireDefault(_timePicker);

var _tooltip = __webpack_require__(486);

var _tooltip2 = _interopRequireDefault(_tooltip);

var _transfer = __webpack_require__(487);

var _transfer2 = _interopRequireDefault(_transfer);

var _tree = __webpack_require__(499);

var _tree2 = _interopRequireDefault(_tree);

var _upload = __webpack_require__(506);

var _upload2 = _interopRequireDefault(_upload);

var _grid = __webpack_require__(514);

var _select = __webpack_require__(521);

var _locale = __webpack_require__(85);

var _locale2 = _interopRequireDefault(_locale);

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

var iview = {
    Affix: _affix2.default,
    Alert: _alert2.default,
    AutoComplete: _autoComplete2.default,
    Avatar: _avatar2.default,
    BackTop: _backTop2.default,
    Badge: _badge2.default,
    Breadcrumb: _breadcrumb2.default,
    BreadcrumbItem: _breadcrumb2.default.Item,
    iButton: _button2.default,
    Button: _button2.default,
    ButtonGroup: _button2.default.Group,
    Card: _card2.default,
    Carousel: _carousel2.default,
    CarouselItem: _carousel2.default.Item,
    Cascader: _cascader2.default,
    Checkbox: _checkbox2.default,
    CheckboxGroup: _checkbox2.default.Group,
    iCircle: _circle2.default,
    Col: _grid.Col,
    iCol: _grid.Col,
    Collapse: _collapse2.default,
    ColorPicker: _colorPicker2.default,
    DatePicker: _datePicker2.default,
    Dropdown: _dropdown2.default,
    DropdownItem: _dropdown2.default.Item,
    DropdownMenu: _dropdown2.default.Menu,
    Form: _form2.default,
    iForm: _form2.default,
    FormItem: _form2.default.Item,
    Icon: _icon2.default,
    Input: _input2.default,
    iInput: _input2.default,
    InputNumber: _inputNumber2.default,
    LoadingBar: _loadingBar2.default,
    Menu: _menu2.default,
    iMenu: _menu2.default,
    MenuGroup: _menu2.default.Group,
    MenuItem: _menu2.default.Item,
    Submenu: _menu2.default.Sub,
    Message: _message2.default,
    Modal: _modal2.default,
    Notice: _notice2.default,
    Option: _select.Option,
    iOption: _select.Option,
    OptionGroup: _select.OptionGroup,
    Page: _page2.default,
    Panel: _collapse2.default.Panel,
    Poptip: _poptip2.default,
    Progress: _progress2.default,
    iProgress: _progress2.default,
    Radio: _radio2.default,
    RadioGroup: _radio2.default.Group,
    Rate: _rate2.default,
    Row: _grid.Row,
    Select: _select.Select,
    iSelect: _select.Select,
    Slider: _slider2.default,
    Spin: _spin2.default,
    Step: _steps2.default.Step,
    Steps: _steps2.default,

    iSwitch: _switch2.default,
    iTable: _table2.default,
    Table: _table2.default,
    Tabs: _tabs2.default,
    TabPane: _tabs2.default.Pane,
    Tag: _tag2.default,
    Timeline: _timeline2.default,
    TimelineItem: _timeline2.default.Item,
    TimePicker: _timePicker2.default,
    Tooltip: _tooltip2.default,
    Transfer: _transfer2.default,
    Tree: _tree2.default,
    Upload: _upload2.default
};

var install = function install(Vue) {
    var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

    _locale2.default.use(opts.locale);
    _locale2.default.i18n(opts.i18n);

    (0, _keys2.default)(iview).forEach(function (key) {
        Vue.component(key, iview[key]);
    });

    Vue.prototype.$Loading = _loadingBar2.default;
    Vue.prototype.$Message = _message2.default;
    Vue.prototype.$Modal = _modal2.default;
    Vue.prototype.$Notice = _notice2.default;
    Vue.prototype.$Spin = _spin2.default;
};

if (typeof window !== 'undefined' && window.Vue) {
    install(window.Vue);
}

module.exports = (0, _assign2.default)(iview, { install: install });

/***/ }),
/* 112 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(113);
module.exports = __webpack_require__(7).Object.assign;


/***/ }),
/* 113 */
/***/ (function(module, exports, __webpack_require__) {

// 19.1.3.1 Object.assign(target, source)
var $export = __webpack_require__(17);

$export($export.S + $export.F, 'Object', { assign: __webpack_require__(115) });


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

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),
/* 115 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// 19.1.2.1 Object.assign(target, source, ...)
var getKeys = __webpack_require__(29);
var gOPS = __webpack_require__(52);
var pIE = __webpack_require__(40);
var toObject = __webpack_require__(30);
var IObject = __webpack_require__(67);
var $assign = Object.assign;

// should work with symbols and should have deterministic property order (V8 bug)
module.exports = !$assign || __webpack_require__(23)(function () {
  var A = {};
  var B = {};
  // eslint-disable-next-line no-undef
  var S = Symbol();
  var K = 'abcdefghijklmnopqrst';
  A[S] = 7;
  K.split('').forEach(function (k) { B[k] = k; });
  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
  var T = toObject(target);
  var aLen = arguments.length;
  var index = 1;
  var getSymbols = gOPS.f;
  var isEnum = pIE.f;
  while (aLen > index) {
    var S = IObject(arguments[index++]);
    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
    var length = keys.length;
    var j = 0;
    var key;
    while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
  } return T;
} : $assign;


/***/ }),
/* 116 */
/***/ (function(module, exports, __webpack_require__) {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(24);
var toLength = __webpack_require__(68);
var toAbsoluteIndex = __webpack_require__(117);
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),
/* 117 */
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__(48);
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),
/* 118 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(119);
module.exports = __webpack_require__(7).Object.keys;


/***/ }),
/* 119 */
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__(30);
var $keys = __webpack_require__(29);

__webpack_require__(69)('keys', function () {
  return function keys(it) {
    return $keys(toObject(it));
  };
});


/***/ }),
/* 120 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(121);
module.exports = __webpack_require__(41).Array.find;


/***/ }),
/* 121 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export = __webpack_require__(70);
var $find = __webpack_require__(74)(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
  find: function find(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});
__webpack_require__(77)(KEY);


/***/ }),
/* 122 */
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__(123);
var IE8_DOM_DEFINE = __webpack_require__(124);
var toPrimitive = __webpack_require__(126);
var dP = Object.defineProperty;

exports.f = __webpack_require__(54) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),
/* 123 */
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(42);
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),
/* 124 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = !__webpack_require__(54) && !__webpack_require__(71)(function () {
  return Object.defineProperty(__webpack_require__(125)('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),
/* 125 */
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(42);
var document = __webpack_require__(32).document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),
/* 126 */
/***/ (function(module, exports, __webpack_require__) {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(42);
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),
/* 127 */
/***/ (function(module, exports) {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),
/* 128 */
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(32);
var hide = __webpack_require__(53);
var has = __webpack_require__(129);
var SRC = __webpack_require__(72)('src');
var TO_STRING = 'toString';
var $toString = Function[TO_STRING];
var TPL = ('' + $toString).split(TO_STRING);

__webpack_require__(41).inspectSource = function (it) {
  return $toString.call(it);
};

(module.exports = function (O, key, val, safe) {
  var isFunction = typeof val == 'function';
  if (isFunction) has(val, 'name') || hide(val, 'name', key);
  if (O[key] === val) return;
  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
  if (O === global) {
    O[key] = val;
  } else if (!safe) {
    delete O[key];
    hide(O, key, val);
  } else if (O[key]) {
    O[key] = val;
  } else {
    hide(O, key, val);
  }
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
  return typeof this == 'function' && this[SRC] || $toString.call(this);
});


/***/ }),
/* 129 */
/***/ (function(module, exports) {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),
/* 130 */
/***/ (function(module, exports) {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),
/* 131 */
/***/ (function(module, exports, __webpack_require__) {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(75);
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),
/* 132 */
/***/ (function(module, exports, __webpack_require__) {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(133);
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),
/* 133 */
/***/ (function(module, exports) {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),
/* 134 */
/***/ (function(module, exports, __webpack_require__) {

// 7.1.15 ToLength
var toInteger = __webpack_require__(135);
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),
/* 135 */
/***/ (function(module, exports) {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),
/* 136 */
/***/ (function(module, exports, __webpack_require__) {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(137);

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),
/* 137 */
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__(42);
var isArray = __webpack_require__(138);
var SPECIES = __webpack_require__(76)('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),
/* 138 */
/***/ (function(module, exports, __webpack_require__) {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(75);
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),
/* 139 */
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__(32);
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});
module.exports = function (key) {
  return store[key] || (store[key] = {});
};


/***/ }),
/* 140 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(141);
module.exports = __webpack_require__(41).Array.findIndex;


/***/ }),
/* 141 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
var $export = __webpack_require__(70);
var $find = __webpack_require__(74)(6);
var KEY = 'findIndex';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
  findIndex: function findIndex(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});
__webpack_require__(77)(KEY);


/***/ }),
/* 142 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _affix = __webpack_require__(143);

var _affix2 = _interopRequireDefault(_affix);

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

exports.default = _affix2.default;

/***/ }),
/* 143 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(144),
  /* template */
  __webpack_require__(148),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 144 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _dom = __webpack_require__(33);

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

var prefixCls = 'ivu-affix';

function getScroll(target, top) {
    var prop = top ? 'pageYOffset' : 'pageXOffset';
    var method = top ? 'scrollTop' : 'scrollLeft';

    var ret = target[prop];

    if (typeof ret !== 'number') {
        ret = window.document.documentElement[method];
    }

    return ret;
}

function getOffset(element) {
    var rect = element.getBoundingClientRect();

    var scrollTop = getScroll(window, true);
    var scrollLeft = getScroll(window);

    var docEl = window.document.body;
    var clientTop = docEl.clientTop || 0;
    var clientLeft = docEl.clientLeft || 0;

    return {
        top: rect.top + scrollTop - clientTop,
        left: rect.left + scrollLeft - clientLeft
    };
}

exports.default = {
    name: 'Affix',
    props: {
        offsetTop: {
            type: Number,
            default: 0
        },
        offsetBottom: {
            type: Number
        }
    },
    data: function data() {
        return {
            affix: false,
            styles: {}
        };
    },

    computed: {
        offsetType: function offsetType() {
            var type = 'top';
            if (this.offsetBottom >= 0) {
                type = 'bottom';
            }

            return type;
        },
        classes: function classes() {
            return [(0, _defineProperty3.default)({}, '' + prefixCls, this.affix)];
        }
    },
    mounted: function mounted() {
        (0, _dom.on)(window, 'scroll', this.handleScroll);
        (0, _dom.on)(window, 'resize', this.handleScroll);
    },
    beforeDestroy: function beforeDestroy() {
        (0, _dom.off)(window, 'scroll', this.handleScroll);
        (0, _dom.off)(window, 'resize', this.handleScroll);
    },

    methods: {
        handleScroll: function handleScroll() {
            var affix = this.affix;
            var scrollTop = getScroll(window, true);
            var elOffset = getOffset(this.$el);
            var windowHeight = window.innerHeight;
            var elHeight = this.$el.getElementsByTagName('div')[0].offsetHeight;

            if (elOffset.top - this.offsetTop < scrollTop && this.offsetType == 'top' && !affix) {
                this.affix = true;
                this.styles = {
                    top: this.offsetTop + 'px',
                    left: elOffset.left + 'px',
                    width: this.$el.offsetWidth + 'px'
                };

                this.$emit('on-change', true);
            } else if (elOffset.top - this.offsetTop > scrollTop && this.offsetType == 'top' && affix) {
                this.affix = false;
                this.styles = null;

                this.$emit('on-change', false);
            }

            if (elOffset.top + this.offsetBottom + elHeight > scrollTop + windowHeight && this.offsetType == 'bottom' && !affix) {
                this.affix = true;
                this.styles = {
                    bottom: this.offsetBottom + 'px',
                    left: elOffset.left + 'px',
                    width: this.$el.offsetWidth + 'px'
                };

                this.$emit('on-change', true);
            } else if (elOffset.top + this.offsetBottom + elHeight < scrollTop + windowHeight && this.offsetType == 'bottom' && affix) {
                this.affix = false;
                this.styles = null;

                this.$emit('on-change', false);
            }
        }
    }
};

/***/ }),
/* 145 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(146), __esModule: true };

/***/ }),
/* 146 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(147);
var $Object = __webpack_require__(7).Object;
module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};


/***/ }),
/* 147 */
/***/ (function(module, exports, __webpack_require__) {

var $export = __webpack_require__(17);
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(18), 'Object', { defineProperty: __webpack_require__(14).f });


/***/ }),
/* 148 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', [_c('div', {
      class: _vm.classes,
      style: _vm.styles
    }, [_vm._t("default")], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 149 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _alert = __webpack_require__(150);

var _alert2 = _interopRequireDefault(_alert);

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

exports.default = _alert2.default;

/***/ }),
/* 150 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(151),
  /* template */
  __webpack_require__(154),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 151 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(15);

var _icon2 = _interopRequireDefault(_icon);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-alert';

exports.default = {
    name: 'Alert',
    components: { Icon: _icon2.default },
    props: {
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['success', 'info', 'warning', 'error']);
            },

            default: 'info'
        },
        closable: {
            type: Boolean,
            default: false
        },
        showIcon: {
            type: Boolean,
            default: false
        },
        banner: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            closed: false,
            desc: false
        };
    },

    computed: {
        wrapClasses: function wrapClasses() {
            var _ref;

            return ['' + prefixCls, prefixCls + '-' + this.type, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-with-icon', this.showIcon), (0, _defineProperty3.default)(_ref, prefixCls + '-with-desc', this.desc), (0, _defineProperty3.default)(_ref, prefixCls + '-with-banner', this.banner), _ref)];
        },
        messageClasses: function messageClasses() {
            return prefixCls + '-message';
        },
        descClasses: function descClasses() {
            return prefixCls + '-desc';
        },
        closeClasses: function closeClasses() {
            return prefixCls + '-close';
        },
        iconClasses: function iconClasses() {
            return prefixCls + '-icon';
        },
        iconType: function iconType() {
            var type = '';

            switch (this.type) {
                case 'success':
                    type = 'checkmark-circled';
                    break;
                case 'info':
                    type = 'information-circled';
                    break;
                case 'warning':
                    type = 'android-alert';
                    break;
                case 'error':
                    type = 'close-circled';
                    break;
            }

            return type;
        }
    },
    methods: {
        close: function close(e) {
            this.closed = true;
            this.$emit('on-close', e);
        }
    },
    mounted: function mounted() {
        this.desc = this.$slots.desc !== undefined;
    }
};

/***/ }),
/* 152 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});


var prefixCls = 'ivu-icon';

exports.default = {
    name: 'Icon',
    props: {
        type: String,
        size: [Number, String],
        color: String
    },
    computed: {
        classes: function classes() {
            return prefixCls + ' ' + prefixCls + '-' + this.type;
        },
        styles: function styles() {
            var style = {};

            if (this.size) {
                style['font-size'] = this.size + 'px';
            }

            if (this.color) {
                style.color = this.color;
            }

            return style;
        }
    }
};

/***/ }),
/* 153 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('i', {
      class: _vm.classes,
      style: _vm.styles
    });
  }, staticRenderFns: [] };

/***/ }),
/* 154 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('transition', {
      attrs: {
        "name": "fade"
      }
    }, [!_vm.closed ? _c('div', {
      class: _vm.wrapClasses
    }, [_vm.showIcon ? _c('span', {
      class: _vm.iconClasses
    }, [_vm._t("icon", [_c('Icon', {
      attrs: {
        "type": _vm.iconType
      }
    })])], 2) : _vm._e(), _vm._v(" "), _c('span', {
      class: _vm.messageClasses
    }, [_vm._t("default")], 2), _vm._v(" "), _c('span', {
      class: _vm.descClasses
    }, [_vm._t("desc")], 2), _vm._v(" "), _vm.closable ? _c('a', {
      class: _vm.closeClasses,
      on: {
        "click": _vm.close
      }
    }, [_vm._t("close", [_c('Icon', {
      attrs: {
        "type": "ios-close-empty"
      }
    })])], 2) : _vm._e()]) : _vm._e()]);
  }, staticRenderFns: [] };

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

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _autoComplete = __webpack_require__(156);

var _autoComplete2 = _interopRequireDefault(_autoComplete);

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

exports.default = _autoComplete2.default;

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

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(157),
  /* template */
  __webpack_require__(197),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


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

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _select = __webpack_require__(55);

var _select2 = _interopRequireDefault(_select);

var _option = __webpack_require__(61);

var _option2 = _interopRequireDefault(_option);

var _input = __webpack_require__(35);

var _input2 = _interopRequireDefault(_input);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

exports.default = {
    name: 'AutoComplete',
    mixins: [_emitter2.default],
    components: { iSelect: _select2.default, iOption: _option2.default, iInput: _input2.default },
    props: {
        value: {
            type: [String, Number],
            default: ''
        },
        label: {
            type: [String, Number],
            default: ''
        },
        data: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        disabled: {
            type: Boolean,
            default: false
        },
        clearable: {
            type: Boolean,
            default: false
        },
        placeholder: {
            type: String
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        icon: {
            type: String
        },
        filterMethod: {
            type: [Function, Boolean],
            default: false
        },
        transfer: {
            type: Boolean,
            default: false
        },
        name: {
            type: String
        },
        elementId: {
            type: String
        }
    },
    data: function data() {
        return {
            currentValue: this.value,
            disableEmitChange: false };
    },

    computed: {
        inputIcon: function inputIcon() {
            var icon = '';
            if (this.clearable && this.currentValue) {
                icon = 'ios-close';
            } else if (this.icon) {
                icon = this.icon;
            }
            return icon;
        },
        filteredData: function filteredData() {
            var _this = this;

            if (this.filterMethod) {
                return this.data.filter(function (item) {
                    return _this.filterMethod(_this.currentValue, item);
                });
            } else {
                return this.data;
            }
        }
    },
    watch: {
        value: function value(val) {
            this.disableEmitChange = true;
            this.currentValue = val;
        },
        currentValue: function currentValue(val) {
            this.$refs.select.query = val;
            this.$emit('input', val);
            if (this.disableEmitChange) {
                this.disableEmitChange = false;
                return;
            }
            this.$emit('on-change', val);
            this.dispatch('FormItem', 'on-form-change', val);
        }
    },
    methods: {
        remoteMethod: function remoteMethod(query) {
            this.$emit('on-search', query);
        },
        handleChange: function handleChange(val) {
            this.currentValue = val;
            this.$refs.select.model = val;
            this.$refs.input.blur();
            this.$emit('on-select', val);
        },
        handleFocus: function handleFocus() {
            this.$refs.select.visible = true;
        },
        handleBlur: function handleBlur() {
            this.$refs.select.visible = false;
        },
        handleClear: function handleClear() {
            if (!this.clearable) return;
            this.currentValue = '';
            this.$refs.select.model = '';
        }
    }
};

/***/ }),
/* 158 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _typeof2 = __webpack_require__(11);

var _typeof3 = _interopRequireDefault(_typeof2);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(15);

var _icon2 = _interopRequireDefault(_icon);

var _dropdown = __webpack_require__(25);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _clickoutside = __webpack_require__(26);

var _clickoutside2 = _interopRequireDefault(_clickoutside);

var _transferDom = __webpack_require__(16);

var _transferDom2 = _interopRequireDefault(_transferDom);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

var _utils = __webpack_require__(187);

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

var prefixCls = 'ivu-select';

exports.default = {
    name: 'iSelect',
    mixins: [_emitter2.default, _locale2.default],
    components: { Icon: _icon2.default, Drop: _dropdown2.default },
    directives: { clickoutside: _clickoutside2.default, TransferDom: _transferDom2.default },
    props: {
        value: {
            type: [String, Number, Array],
            default: ''
        },

        label: {
            type: [String, Number, Array],
            default: ''
        },
        multiple: {
            type: Boolean,
            default: false
        },
        disabled: {
            type: Boolean,
            default: false
        },
        clearable: {
            type: Boolean,
            default: false
        },
        placeholder: {
            type: String
        },
        filterable: {
            type: Boolean,
            default: false
        },
        filterMethod: {
            type: Function
        },
        remote: {
            type: Boolean,
            default: false
        },
        remoteMethod: {
            type: Function
        },
        loading: {
            type: Boolean,
            default: false
        },
        loadingText: {
            type: String
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        labelInValue: {
            type: Boolean,
            default: false
        },
        notFoundText: {
            type: String
        },
        placement: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['top', 'bottom']);
            },

            default: 'bottom'
        },
        transfer: {
            type: Boolean,
            default: false
        },

        autoComplete: {
            type: Boolean,
            default: false
        },
        name: {
            type: String
        },
        elementId: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            visible: false,
            options: [],
            optionInstances: [],
            selectedSingle: '',
            selectedMultiple: [],
            focusIndex: 0,
            query: '',
            lastQuery: '',
            selectToChangeQuery: false,
            inputLength: 20,
            notFound: false,
            slotChangeDuration: false,
            model: this.value,
            currentLabel: this.label
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-visible', this.visible), (0, _defineProperty3.default)(_ref, prefixCls + '-disabled', this.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-multiple', this.multiple), (0, _defineProperty3.default)(_ref, prefixCls + '-single', !this.multiple), (0, _defineProperty3.default)(_ref, prefixCls + '-show-clear', this.showCloseIcon), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), _ref)];
        },
        dropdownCls: function dropdownCls() {
            var _ref2;

            return _ref2 = {}, (0, _defineProperty3.default)(_ref2, prefixCls + '-dropdown-transfer', this.transfer), (0, _defineProperty3.default)(_ref2, prefixCls + '-multiple', this.multiple && this.transfer), (0, _defineProperty3.default)(_ref2, 'ivu-auto-complete', this.autoComplete), _ref2;
        },
        selectionCls: function selectionCls() {
            return (0, _defineProperty3.default)({}, prefixCls + '-selection', !this.autoComplete);
        },
        showPlaceholder: function showPlaceholder() {
            var status = false;

            if (typeof this.model === 'string') {
                if (this.model === '') {
                    status = true;
                }
            } else if (Array.isArray(this.model)) {
                if (!this.model.length) {
                    status = true;
                }
            } else if (this.model === null) {
                status = true;
            }

            return status;
        },
        showCloseIcon: function showCloseIcon() {
            return !this.multiple && this.clearable && !this.showPlaceholder;
        },
        inputStyle: function inputStyle() {
            var style = {};

            if (this.multiple) {
                if (this.showPlaceholder) {
                    style.width = '100%';
                } else {
                    style.width = this.inputLength + 'px';
                }
            }

            return style;
        },
        localePlaceholder: function localePlaceholder() {
            if (this.placeholder === undefined) {
                return this.t('i.select.placeholder');
            } else {
                return this.placeholder;
            }
        },
        localeNotFoundText: function localeNotFoundText() {
            if (this.notFoundText === undefined) {
                return this.t('i.select.noMatch');
            } else {
                return this.notFoundText;
            }
        },
        localeLoadingText: function localeLoadingText() {
            if (this.loadingText === undefined) {
                return this.t('i.select.loading');
            } else {
                return this.loadingText;
            }
        },
        transitionName: function transitionName() {
            return this.placement === 'bottom' ? 'slide-up' : 'slide-down';
        },
        dropVisible: function dropVisible() {
            var status = true;
            var options = this.$slots.default || [];
            if (!this.loading && this.remote && this.query === '' && !options.length) status = false;

            if (this.autoComplete && !options.length) status = false;

            return this.visible && status;
        },
        notFoundShow: function notFoundShow() {
            var options = this.$slots.default || [];
            return this.notFound && !this.remote || this.remote && !this.loading && !options.length;
        }
    },
    methods: {
        toggleMenu: function toggleMenu() {
            if (this.disabled || this.autoComplete) {
                return false;
            }
            this.visible = !this.visible;
        },
        hideMenu: function hideMenu() {
            this.visible = false;
            this.focusIndex = 0;
            this.broadcast('iOption', 'on-select-close');
        },
        findChild: function findChild(cb) {
            var find = function find(child) {
                var name = child.$options.componentName;

                if (name) {
                    cb(child);
                } else if (child.$children.length) {
                    child.$children.forEach(function (innerChild) {
                        find(innerChild, cb);
                    });
                }
            };

            if (this.optionInstances.length) {
                this.optionInstances.forEach(function (child) {
                    find(child);
                });
            } else {
                this.$children.forEach(function (child) {
                    find(child);
                });
            }
        },
        updateOptions: function updateOptions() {
            var _this = this;

            var slot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

            var options = [];
            var index = 1;

            this.findChild(function (child) {
                options.push({
                    value: child.value,
                    label: child.label === undefined ? child.$el.textContent : child.label
                });
                child.index = index++;

                _this.optionInstances.push(child);
            });

            this.options = options;

            if (!this.remote) {
                this.updateSingleSelected(true, slot);
                this.updateMultipleSelected(true, slot);
            }
        },
        updateSingleSelected: function updateSingleSelected() {
            var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
            var slot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

            var type = (0, _typeof3.default)(this.model);

            if (type === 'string' || type === 'number') {
                var findModel = false;

                for (var i = 0; i < this.options.length; i++) {
                    if (this.model === this.options[i].value) {
                        this.selectedSingle = this.options[i].label;
                        findModel = true;
                        break;
                    }
                }

                if (slot && !findModel) {
                    this.model = '';
                    this.query = '';
                }
            }

            this.toggleSingleSelected(this.model, init);
        },
        clearSingleSelect: function clearSingleSelect() {
            if (this.showCloseIcon) {
                this.findChild(function (child) {
                    child.selected = false;
                });
                this.model = '';

                if (this.filterable) {
                    this.query = '';
                }
            }
        },
        updateMultipleSelected: function updateMultipleSelected() {
            var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
            var slot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

            if (this.multiple && Array.isArray(this.model)) {
                var selected = this.remote ? this.selectedMultiple : [];

                for (var i = 0; i < this.model.length; i++) {
                    var model = this.model[i];

                    for (var j = 0; j < this.options.length; j++) {
                        var option = this.options[j];

                        if (model === option.value) {
                            selected.push({
                                value: option.value,
                                label: option.label
                            });
                        }
                    }
                }

                var selectedArray = [];
                var selectedObject = {};
                selected.forEach(function (item) {
                    if (!selectedObject[item.value]) {
                        selectedArray.push(item);
                        selectedObject[item.value] = 1;
                    }
                });

                this.selectedMultiple = this.remote ? selectedArray : selected;

                if (slot) {
                    var selectedModel = [];

                    for (var _i = 0; _i < selected.length; _i++) {
                        selectedModel.push(selected[_i].value);
                    }

                    if (this.model.length === selectedModel.length) {
                        this.slotChangeDuration = true;
                    }

                    this.model = selectedModel;
                }
            }
            this.toggleMultipleSelected(this.model, init);
        },
        removeTag: function removeTag(index) {
            if (this.disabled) {
                return false;
            }

            if (this.remote) {
                var tag = this.model[index];
                this.selectedMultiple = this.selectedMultiple.filter(function (item) {
                    return item.value !== tag;
                });
            }

            this.model.splice(index, 1);

            if (this.filterable && this.visible) {
                this.$refs.input.focus();
            }

            this.broadcast('Drop', 'on-update-popper');
        },
        toggleSingleSelected: function toggleSingleSelected(value) {
            var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

            if (!this.multiple) {
                var label = '';

                this.findChild(function (child) {
                    if (child.value === value) {
                        child.selected = true;
                        label = child.label === undefined ? child.$el.innerHTML : child.label;
                    } else {
                        child.selected = false;
                    }
                });

                this.hideMenu();

                if (!init) {
                    if (this.labelInValue) {
                        this.$emit('on-change', {
                            value: value,
                            label: label
                        });
                        this.dispatch('FormItem', 'on-form-change', {
                            value: value,
                            label: label
                        });
                    } else {
                        this.$emit('on-change', value);
                        this.dispatch('FormItem', 'on-form-change', value);
                    }
                }
            }
        },
        toggleMultipleSelected: function toggleMultipleSelected(value) {
            var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

            if (this.multiple) {
                var hybridValue = [];
                for (var i = 0; i < value.length; i++) {
                    hybridValue.push({
                        value: value[i]
                    });
                }

                this.findChild(function (child) {
                    var index = value.indexOf(child.value);

                    if (index >= 0) {
                        child.selected = true;
                        hybridValue[index].label = child.label === undefined ? child.$el.innerHTML : child.label;
                    } else {
                        child.selected = false;
                    }
                });

                if (!init) {
                    if (this.labelInValue) {
                        this.$emit('on-change', hybridValue);
                        this.dispatch('FormItem', 'on-form-change', hybridValue);
                    } else {
                        this.$emit('on-change', value);
                        this.dispatch('FormItem', 'on-form-change', value);
                    }
                }
            }
        },
        handleClose: function handleClose() {
            this.hideMenu();
        },
        handleKeydown: function handleKeydown(e) {
            if (this.visible) {
                var keyCode = e.keyCode;

                if (keyCode === 27) {
                    e.preventDefault();
                    this.hideMenu();
                }

                if (keyCode === 40) {
                    e.preventDefault();
                    this.navigateOptions('next');
                }

                if (keyCode === 38) {
                    e.preventDefault();
                    this.navigateOptions('prev');
                }

                if (keyCode === 13) {
                    e.preventDefault();

                    this.findChild(function (child) {
                        if (child.isFocus) {
                            child.select();
                        }
                    });
                }
            }
        },
        navigateOptions: function navigateOptions(direction) {
            var _this2 = this;

            if (direction === 'next') {
                var next = this.focusIndex + 1;
                this.focusIndex = this.focusIndex === this.options.length ? 1 : next;
            } else if (direction === 'prev') {
                var prev = this.focusIndex - 1;
                this.focusIndex = this.focusIndex <= 1 ? this.options.length : prev;
            }

            var child_status = {
                disabled: false,
                hidden: false
            };

            var find_deep = false;

            this.findChild(function (child) {
                if (child.index === _this2.focusIndex) {
                    child_status.disabled = child.disabled;
                    child_status.hidden = child.hidden;

                    if (!child.disabled && !child.hidden) {
                        child.isFocus = true;
                    }
                } else {
                    child.isFocus = false;
                }

                if (!child.hidden && !child.disabled) {
                    find_deep = true;
                }
            });

            this.resetScrollTop();

            if ((child_status.disabled || child_status.hidden) && find_deep) {
                this.navigateOptions(direction);
            }
        },
        resetScrollTop: function resetScrollTop() {
            var index = this.focusIndex - 1;
            var bottomOverflowDistance = this.optionInstances[index].$el.getBoundingClientRect().bottom - this.$refs.dropdown.$el.getBoundingClientRect().bottom;
            var topOverflowDistance = this.optionInstances[index].$el.getBoundingClientRect().top - this.$refs.dropdown.$el.getBoundingClientRect().top;

            if (bottomOverflowDistance > 0) {
                this.$refs.dropdown.$el.scrollTop += bottomOverflowDistance;
            }
            if (topOverflowDistance < 0) {
                this.$refs.dropdown.$el.scrollTop += topOverflowDistance;
            }
        },
        handleBlur: function handleBlur() {
            var _this3 = this;

            setTimeout(function () {
                if (_this3.autoComplete) return;
                var model = _this3.model;

                if (_this3.multiple) {
                    _this3.query = '';
                } else {
                    if (model !== '') {
                        _this3.findChild(function (child) {
                            if (child.value === model) {
                                _this3.query = child.label === undefined ? child.searchLabel : child.label;
                            }
                        });

                        if (_this3.remote && _this3.query !== _this3.lastQuery) {
                            _this3.$nextTick(function () {
                                _this3.query = _this3.lastQuery;
                            });
                        }
                    } else {
                        _this3.query = '';
                    }
                }
            }, 300);
        },
        resetInputState: function resetInputState() {
            this.inputLength = this.$refs.input.value.length * 12 + 20;
        },
        handleInputDelete: function handleInputDelete() {
            if (this.multiple && this.model.length && this.query === '') {
                this.removeTag(this.model.length - 1);
            }
        },
        slotChange: function slotChange() {
            this.options = [];
            this.optionInstances = [];
        },
        setQuery: function setQuery(query) {
            if (!this.filterable) return;
            this.query = query;
        },
        modelToQuery: function modelToQuery() {
            var _this4 = this;

            if (!this.multiple && this.filterable && this.model !== undefined) {
                this.findChild(function (child) {
                    if (_this4.model === child.value) {
                        if (child.label) {
                            _this4.query = child.label;
                        } else if (child.searchLabel) {
                            _this4.query = child.searchLabel;
                        } else {
                            _this4.query = child.value;
                        }
                    }
                });
            }
        },
        broadcastQuery: function broadcastQuery(val) {
            if ((0, _assist.findComponentDownward)(this, 'OptionGroup')) {
                this.broadcast('OptionGroup', 'on-query-change', val);
                this.broadcast('iOption', 'on-query-change', val);
            } else {
                this.broadcast('iOption', 'on-query-change', val);
            }
        },
        debouncedAppendRemove: function debouncedAppendRemove() {
            return (0, _utils.debounce)(function () {
                var _this5 = this;

                if (!this.remote) {
                    this.modelToQuery();
                    this.$nextTick(function () {
                        return _this5.broadcastQuery('');
                    });
                } else {
                    this.findChild(function (child) {
                        child.updateSearchLabel();
                        child.selected = _this5.multiple ? _this5.model.indexOf(child.value) > -1 : _this5.model === child.value;
                    });
                }
                this.slotChange();
                this.updateOptions(true);
            });
        },
        updateLabel: function updateLabel() {
            var _this6 = this;

            if (this.remote) {
                if (!this.multiple && this.model !== '') {
                    this.selectToChangeQuery = true;
                    if (this.currentLabel === '') this.currentLabel = this.model;
                    this.lastQuery = this.currentLabel;
                    this.query = this.currentLabel;
                } else if (this.multiple && this.model.length) {
                    if (this.currentLabel.length !== this.model.length) this.currentLabel = this.model;
                    this.selectedMultiple = this.model.map(function (item, index) {
                        return {
                            value: item,
                            label: _this6.currentLabel[index]
                        };
                    });
                } else if (this.multiple && !this.model.length) {
                    this.selectedMultiple = [];
                }
            }
        }
    },
    mounted: function mounted() {
        var _this7 = this;

        this.modelToQuery();

        this.updateLabel();
        this.$nextTick(function () {
            _this7.broadcastQuery('');
        });

        this.updateOptions();
        document.addEventListener('keydown', this.handleKeydown);

        this.$on('append', this.debouncedAppendRemove());
        this.$on('remove', this.debouncedAppendRemove());

        this.$on('on-select-selected', function (value) {
            if (_this7.model === value) {
                if (_this7.autoComplete) _this7.$emit('on-change', value);
                _this7.hideMenu();
            } else {
                if (_this7.multiple) {
                    var index = _this7.model.indexOf(value);
                    if (index >= 0) {
                        _this7.removeTag(index);
                    } else {
                        _this7.model.push(value);
                        _this7.broadcast('Drop', 'on-update-popper');
                    }

                    if (_this7.filterable) {
                        if (_this7.query !== '') _this7.selectToChangeQuery = true;
                        _this7.query = '';
                        _this7.$refs.input.focus();
                    }
                } else {
                    _this7.model = value;

                    if (_this7.filterable) {
                        _this7.findChild(function (child) {
                            if (child.value === value) {
                                if (_this7.query !== '') _this7.selectToChangeQuery = true;
                                _this7.lastQuery = _this7.query = child.label === undefined ? child.searchLabel : child.label;
                            }
                        });
                    }
                }
            }
        });
    },
    beforeDestroy: function beforeDestroy() {
        document.removeEventListener('keydown', this.handleKeydown);
    },

    watch: {
        value: function value(val) {
            this.model = val;
            if (val === '') this.query = '';
        },
        label: function label(val) {
            this.currentLabel = val;
            this.updateLabel();
        },
        model: function model() {
            var _this8 = this;

            this.$emit('input', this.model);
            this.modelToQuery();
            if (this.multiple) {
                if (this.slotChangeDuration) {
                    this.slotChangeDuration = false;
                } else {
                    this.updateMultipleSelected();
                }
            } else {
                this.updateSingleSelected();
            }

            if (!this.visible && this.filterable) {
                this.$nextTick(function () {
                    _this8.broadcastQuery('');
                });
            }
        },
        visible: function visible(val) {
            var _this9 = this;

            if (val) {
                if (this.filterable) {
                    if (this.multiple) {
                        this.$refs.input.focus();
                    } else {
                        if (!this.autoComplete) this.$refs.input.select();
                    }
                    if (this.remote) {
                        this.findChild(function (child) {
                            child.selected = _this9.multiple ? _this9.model.indexOf(child.value) > -1 : _this9.model === child.value;
                        });

                        var options = this.$slots.default || [];
                        if (this.query !== '' && !options.length) {
                            this.remoteMethod(this.query);
                        }
                    }
                }
                this.broadcast('Drop', 'on-update-popper');
            } else {
                if (this.filterable) {
                    if (!this.autoComplete) this.$refs.input.blur();

                    setTimeout(function () {
                        _this9.broadcastQuery('');
                    }, 300);
                }
                this.broadcast('Drop', 'on-destroy-popper');
            }
        },
        query: function query(val) {
            var _this10 = this;

            if (this.remote && this.remoteMethod) {
                if (!this.selectToChangeQuery) {
                    this.$emit('on-query-change', val);
                    this.remoteMethod(val);
                }
                this.focusIndex = 0;
                this.findChild(function (child) {
                    child.isFocus = false;
                });
            } else {
                if (!this.selectToChangeQuery) {
                    this.$emit('on-query-change', val);
                }
                this.broadcastQuery(val);

                var is_hidden = true;

                this.$nextTick(function () {
                    _this10.findChild(function (child) {
                        if (!child.hidden) {
                            is_hidden = false;
                        }
                    });
                    _this10.notFound = is_hidden;
                });
            }
            this.selectToChangeQuery = false;
            this.broadcast('Drop', 'on-update-popper');
        }
    }
};

/***/ }),
/* 159 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(160), __esModule: true };

/***/ }),
/* 160 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(56);
__webpack_require__(82);
module.exports = __webpack_require__(59).f('iterator');


/***/ }),
/* 161 */
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__(48);
var defined = __webpack_require__(47);
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),
/* 162 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var create = __webpack_require__(80);
var descriptor = __webpack_require__(28);
var setToStringTag = __webpack_require__(58);
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(21)(IteratorPrototype, __webpack_require__(12)('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),
/* 163 */
/***/ (function(module, exports, __webpack_require__) {

var dP = __webpack_require__(14);
var anObject = __webpack_require__(22);
var getKeys = __webpack_require__(29);

module.exports = __webpack_require__(18) ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),
/* 164 */
/***/ (function(module, exports, __webpack_require__) {

var document = __webpack_require__(13).document;
module.exports = document && document.documentElement;


/***/ }),
/* 165 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var addToUnscopables = __webpack_require__(166);
var step = __webpack_require__(167);
var Iterators = __webpack_require__(34);
var toIObject = __webpack_require__(24);

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(78)(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),
/* 166 */
/***/ (function(module, exports) {

module.exports = function () { /* empty */ };


/***/ }),
/* 167 */
/***/ (function(module, exports) {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),
/* 168 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(169), __esModule: true };

/***/ }),
/* 169 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(170);
__webpack_require__(176);
__webpack_require__(177);
__webpack_require__(178);
module.exports = __webpack_require__(7).Symbol;


/***/ }),
/* 170 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

// ECMAScript 6 symbols shim
var global = __webpack_require__(13);
var has = __webpack_require__(19);
var DESCRIPTORS = __webpack_require__(18);
var $export = __webpack_require__(17);
var redefine = __webpack_require__(79);
var META = __webpack_require__(171).KEY;
var $fails = __webpack_require__(23);
var shared = __webpack_require__(50);
var setToStringTag = __webpack_require__(58);
var uid = __webpack_require__(39);
var wks = __webpack_require__(12);
var wksExt = __webpack_require__(59);
var wksDefine = __webpack_require__(60);
var enumKeys = __webpack_require__(172);
var isArray = __webpack_require__(173);
var anObject = __webpack_require__(22);
var toIObject = __webpack_require__(24);
var toPrimitive = __webpack_require__(45);
var createDesc = __webpack_require__(28);
var _create = __webpack_require__(80);
var gOPNExt = __webpack_require__(174);
var $GOPD = __webpack_require__(175);
var $DP = __webpack_require__(14);
var $keys = __webpack_require__(29);
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function';
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () { return dP(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);
  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, { enumerable: createDesc(0, false) });
    } return setSymbolDesc(it, key, D);
  } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;
  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
  return it;
};
var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  } return result;
};

// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };
    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
    return wrap(tag);
  };
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });

  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__(83).f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__(40).f = $propertyIsEnumerable;
  __webpack_require__(52).f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__(57)) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });

for (var es6Symbols = (
  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '')
      ? SymbolRegistry[key]
      : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () { setter = true; },
  useSimple: function () { setter = false; }
});

$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol();
  // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols
  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    if (it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
    var args = [it];
    var i = 1;
    var replacer, $replacer;
    while (arguments.length > i) args.push(arguments[i++]);
    replacer = args[1];
    if (typeof replacer == 'function') $replacer = replacer;
    if ($replacer || !isArray(replacer)) replacer = function (key, value) {
      if ($replacer) value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
});

// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(21)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);


/***/ }),
/* 171 */
/***/ (function(module, exports, __webpack_require__) {

var META = __webpack_require__(39)('meta');
var isObject = __webpack_require__(38);
var has = __webpack_require__(19);
var setDesc = __webpack_require__(14).f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
  return true;
};
var FREEZE = !__webpack_require__(23)(function () {
  return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
  setDesc(it, META, { value: {
    i: 'O' + ++id, // object ID
    w: {}          // weak collections IDs
  } });
};
var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F';
    // not necessary to add metadata
    if (!create) return 'E';
    // add missing metadata
    setMeta(it);
  // return object ID
  } return it[META].i;
};
var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true;
    // not necessary to add metadata
    if (!create) return false;
    // add missing metadata
    setMeta(it);
  // return hash weak collections IDs
  } return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};
var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};


/***/ }),
/* 172 */
/***/ (function(module, exports, __webpack_require__) {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(29);
var gOPS = __webpack_require__(52);
var pIE = __webpack_require__(40);
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};


/***/ }),
/* 173 */
/***/ (function(module, exports, __webpack_require__) {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(46);
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),
/* 174 */
/***/ (function(module, exports, __webpack_require__) {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(24);
var gOPN = __webpack_require__(83).f;
var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};


/***/ }),
/* 175 */
/***/ (function(module, exports, __webpack_require__) {

var pIE = __webpack_require__(40);
var createDesc = __webpack_require__(28);
var toIObject = __webpack_require__(24);
var toPrimitive = __webpack_require__(45);
var has = __webpack_require__(19);
var IE8_DOM_DEFINE = __webpack_require__(64);
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(18) ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),
/* 176 */
/***/ (function(module, exports) {



/***/ }),
/* 177 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(60)('asyncIterator');


/***/ }),
/* 178 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(60)('observable');


/***/ }),
/* 179 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

var _assist = __webpack_require__(2);

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

var isServer = _vue2.default.prototype.$isServer;

var Popper = isServer ? function () {} : __webpack_require__(84);exports.default = {
    name: 'Drop',
    props: {
        placement: {
            type: String,
            default: 'bottom-start'
        },
        className: {
            type: String
        }
    },
    data: function data() {
        return {
            popper: null,
            width: ''
        };
    },

    computed: {
        styles: function styles() {
            var style = {};
            if (this.width) style.width = this.width + 'px';
            return style;
        }
    },
    methods: {
        update: function update() {
            var _this = this;

            if (isServer) return;
            if (this.popper) {
                this.$nextTick(function () {
                    _this.popper.update();
                });
            } else {
                this.$nextTick(function () {
                    _this.popper = new Popper(_this.$parent.$refs.reference, _this.$el, {
                        gpuAcceleration: false,
                        placement: _this.placement,
                        boundariesPadding: 0,
                        forceAbsolute: true,
                        boundariesElement: 'body'
                    });
                    _this.popper.onCreate(function (popper) {
                        _this.resetTransformOrigin(popper);
                    });
                });
            }

            if (this.$parent.$options.name === 'iSelect') {
                this.width = parseInt((0, _assist.getStyle)(this.$parent.$el, 'width'));
            }
        },
        destroy: function destroy() {
            var _this2 = this;

            if (this.popper) {
                this.resetTransformOrigin(this.popper);
                setTimeout(function () {
                    _this2.popper.destroy();
                    _this2.popper = null;
                }, 300);
            }
        },
        resetTransformOrigin: function resetTransformOrigin(popper) {
            var placementMap = { top: 'bottom', bottom: 'top' };
            var placement = popper._popper.getAttribute('x-placement').split('-')[0];
            var origin = placementMap[placement];
            popper._popper.style.transformOrigin = 'center ' + origin;
        }
    },
    created: function created() {
        this.$on('on-update-popper', this.update);
        this.$on('on-destroy-popper', this.destroy);
    },
    beforeDestroy: function beforeDestroy() {
        if (this.popper) {
            this.popper.destroy();
        }
    }
};

/***/ }),
/* 180 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      staticClass: "ivu-select-dropdown",
      class: _vm.className,
      style: _vm.styles
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 181 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(182), __esModule: true };

/***/ }),
/* 182 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(183);
module.exports = __webpack_require__(7).Object.getPrototypeOf;


/***/ }),
/* 183 */
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(30);
var $getPrototypeOf = __webpack_require__(81);

__webpack_require__(69)('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});


/***/ }),
/* 184 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    i: {
        select: {
            placeholder: '请选择',
            noMatch: '无匹配数据',
            loading: '加载中'
        },
        table: {
            noDataText: '暂无数据',
            noFilteredDataText: '暂无筛选结果',
            confirmFilter: '筛选',
            resetFilter: '重置',
            clearFilter: '全部'
        },
        datepicker: {
            selectDate: '选择日期',
            selectTime: '选择时间',
            startTime: '开始时间',
            endTime: '结束时间',
            clear: '清空',
            ok: '确定',
            month: '月',
            month1: '1 月',
            month2: '2 月',
            month3: '3 月',
            month4: '4 月',
            month5: '5 月',
            month6: '6 月',
            month7: '7 月',
            month8: '8 月',
            month9: '9 月',
            month10: '10 月',
            month11: '11 月',
            month12: '12 月',
            year: '年',
            weeks: {
                sun: '日',
                mon: '一',
                tue: '二',
                wed: '三',
                thu: '四',
                fri: '五',
                sat: '六'
            },
            months: {
                m1: '1月',
                m2: '2月',
                m3: '3月',
                m4: '4月',
                m5: '5月',
                m6: '6月',
                m7: '7月',
                m8: '8月',
                m9: '9月',
                m10: '10月',
                m11: '11月',
                m12: '12月'
            }
        },
        transfer: {
            titles: {
                source: '源列表',
                target: '目的列表'
            },
            filterPlaceholder: '请输入搜索内容',
            notFoundText: '列表为空'
        },
        modal: {
            okText: '确定',
            cancelText: '取消'
        },
        poptip: {
            okText: '确定',
            cancelText: '取消'
        },
        page: {
            prev: '上一页',
            next: '下一页',
            total: '共',
            item: '条',
            items: '条',
            prev5: '向前 5 页',
            next5: '向后 5 页',
            page: '条/页',
            goto: '跳至',
            p: '页'
        },
        rate: {
            star: '星',
            stars: '星'
        },
        tree: {
            emptyText: '暂无数据'
        }
    }
};

/***/ }),
/* 185 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var index$2 = function isMergeableObject(value) {
	return isNonNullObject(value) && isNotSpecial(value)
};

function isNonNullObject(value) {
	return !!value && typeof value === 'object'
}

function isNotSpecial(value) {
	var stringValue = Object.prototype.toString.call(value);

	return stringValue !== '[object RegExp]'
		&& stringValue !== '[object Date]'
}

function emptyTarget(val) {
    return Array.isArray(val) ? [] : {}
}

function cloneIfNecessary(value, optionsArgument) {
    var clone = optionsArgument && optionsArgument.clone === true;
    return (clone && index$2(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value
}

function defaultArrayMerge(target, source, optionsArgument) {
    var destination = target.slice();
    source.forEach(function(e, i) {
        if (typeof destination[i] === 'undefined') {
            destination[i] = cloneIfNecessary(e, optionsArgument);
        } else if (index$2(e)) {
            destination[i] = deepmerge(target[i], e, optionsArgument);
        } else if (target.indexOf(e) === -1) {
            destination.push(cloneIfNecessary(e, optionsArgument));
        }
    });
    return destination
}

function mergeObject(target, source, optionsArgument) {
    var destination = {};
    if (index$2(target)) {
        Object.keys(target).forEach(function(key) {
            destination[key] = cloneIfNecessary(target[key], optionsArgument);
        });
    }
    Object.keys(source).forEach(function(key) {
        if (!index$2(source[key]) || !target[key]) {
            destination[key] = cloneIfNecessary(source[key], optionsArgument);
        } else {
            destination[key] = deepmerge(target[key], source[key], optionsArgument);
        }
    });
    return destination
}

function deepmerge(target, source, optionsArgument) {
    var sourceIsArray = Array.isArray(source);
    var targetIsArray = Array.isArray(target);
    var options = optionsArgument || { arrayMerge: defaultArrayMerge };
    var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;

    if (!sourceAndTargetTypesMatch) {
        return cloneIfNecessary(source, optionsArgument)
    } else if (sourceIsArray) {
        var arrayMerge = options.arrayMerge || defaultArrayMerge;
        return arrayMerge(target, source, optionsArgument)
    } else {
        return mergeObject(target, source, optionsArgument)
    }
}

deepmerge.all = function deepmergeAll(array, optionsArgument) {
    if (!Array.isArray(array) || array.length < 2) {
        throw new Error('first argument should be an array with at least two elements')
    }

    // we are sure there are at least 2 values, so it is safe to have no initial value
    return array.reduce(function(prev, next) {
        return deepmerge(prev, next, optionsArgument)
    })
};

var index = deepmerge;

module.exports = index;


/***/ }),
/* 186 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _typeof2 = __webpack_require__(11);

var _typeof3 = _interopRequireDefault(_typeof2);

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

    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 && (0, _typeof3.default)(args[0]) === 'object') {
            args = args[0];
        }

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

        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 = hasOwn(args, i) ? args[i] : null;
                if (result === null || result === undefined) {
                    return '';
                }

                return result;
            }
        });
    }

    return template;
};

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

var RE_NARGS = /(%|)\{([0-9a-zA-Z_]+)\}/g;

/***/ }),
/* 187 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.debounce = debounce;
function debounce(fn) {
    var waiting = void 0;
    return function () {
        if (waiting) return;
        waiting = true;
        var context = this,
            args = arguments;
        var later = function later() {
            waiting = false;
            fn.apply(context, args);
        };
        this.$nextTick(later);
    };
}

/***/ }),
/* 188 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      directives: [{
        name: "clickoutside",
        rawName: "v-clickoutside",
        value: _vm.handleClose,
        expression: "handleClose"
      }],
      class: _vm.classes
    }, [_c('div', {
      ref: "reference",
      class: _vm.selectionCls,
      on: {
        "click": _vm.toggleMenu
      }
    }, [_vm._t("input", [_c('input', {
      attrs: {
        "type": "hidden",
        "name": _vm.name
      },
      domProps: {
        "value": _vm.model
      }
    }), _vm._v(" "), _vm._l(_vm.selectedMultiple, function (item, index) {
      return _c('div', {
        staticClass: "ivu-tag"
      }, [_c('span', {
        staticClass: "ivu-tag-text"
      }, [_vm._v(_vm._s(item.label))]), _vm._v(" "), _c('Icon', {
        attrs: {
          "type": "ios-close-empty"
        },
        nativeOn: {
          "click": function click($event) {
            $event.stopPropagation();
            _vm.removeTag(index);
          }
        }
      })], 1);
    }), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.showPlaceholder && !_vm.filterable,
        expression: "showPlaceholder && !filterable"
      }],
      class: [_vm.prefixCls + '-placeholder']
    }, [_vm._v(_vm._s(_vm.localePlaceholder))]), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !_vm.showPlaceholder && !_vm.multiple && !_vm.filterable,
        expression: "!showPlaceholder && !multiple && !filterable"
      }],
      class: [_vm.prefixCls + '-selected-value']
    }, [_vm._v(_vm._s(_vm.selectedSingle))]), _vm._v(" "), _vm.filterable ? _c('input', {
      directives: [{
        name: "model",
        rawName: "v-model",
        value: _vm.query,
        expression: "query"
      }],
      ref: "input",
      class: [_vm.prefixCls + '-input'],
      style: _vm.inputStyle,
      attrs: {
        "id": _vm.elementId,
        "type": "text",
        "disabled": _vm.disabled,
        "placeholder": _vm.showPlaceholder ? _vm.localePlaceholder : ''
      },
      domProps: {
        "value": _vm.query
      },
      on: {
        "blur": _vm.handleBlur,
        "keydown": [_vm.resetInputState, function ($event) {
          if (!('button' in $event) && _vm._k($event.keyCode, "delete", [8, 46])) {
            return null;
          }
          _vm.handleInputDelete($event);
        }],
        "input": function input($event) {
          if ($event.target.composing) {
            return;
          }
          _vm.query = $event.target.value;
        }
      }
    }) : _vm._e(), _vm._v(" "), _c('Icon', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.showCloseIcon,
        expression: "showCloseIcon"
      }],
      class: [_vm.prefixCls + '-arrow'],
      attrs: {
        "type": "ios-close"
      },
      nativeOn: {
        "click": function click($event) {
          $event.stopPropagation();
          _vm.clearSingleSelect($event);
        }
      }
    }), _vm._v(" "), !_vm.remote ? _c('Icon', {
      class: [_vm.prefixCls + '-arrow'],
      attrs: {
        "type": "arrow-down-b"
      }
    }) : _vm._e()])], 2), _vm._v(" "), _c('transition', {
      attrs: {
        "name": _vm.transitionName
      }
    }, [_c('Drop', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.dropVisible,
        expression: "dropVisible"
      }, {
        name: "transfer-dom",
        rawName: "v-transfer-dom"
      }],
      ref: "dropdown",
      class: _vm.dropdownCls,
      attrs: {
        "placement": _vm.placement,
        "data-transfer": _vm.transfer
      }
    }, [_c('ul', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.notFoundShow,
        expression: "notFoundShow"
      }],
      class: [_vm.prefixCls + '-not-found']
    }, [_c('li', [_vm._v(_vm._s(_vm.localeNotFoundText))])]), _vm._v(" "), _c('ul', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !_vm.notFound && !_vm.remote || _vm.remote && !_vm.loading && !_vm.notFound,
        expression: "(!notFound && !remote) || (remote && !loading && !notFound)"
      }],
      class: [_vm.prefixCls + '-dropdown-list']
    }, [_vm._t("default")], 2), _vm._v(" "), _c('ul', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.loading,
        expression: "loading"
      }],
      class: [_vm.prefixCls + '-loading']
    }, [_vm._v(_vm._s(_vm.localeLoadingText))])])], 1)], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 189 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-select-item';

exports.default = {
    name: 'iOption',
    componentName: 'select-item',
    mixins: [_emitter2.default],
    props: {
        value: {
            type: [String, Number],
            required: true
        },
        label: {
            type: [String, Number]
        },
        disabled: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            selected: false,
            index: 0,
            isFocus: false,
            hidden: false,
            searchLabel: '',
            autoComplete: false
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-disabled', this.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-selected', this.selected && !this.autoComplete), (0, _defineProperty3.default)(_ref, prefixCls + '-focus', this.isFocus), _ref)];
        },
        showLabel: function showLabel() {
            return this.label ? this.label : this.value;
        }
    },
    methods: {
        select: function select() {
            if (this.disabled) {
                return false;
            }

            this.dispatch('iSelect', 'on-select-selected', this.value);
        },
        blur: function blur() {
            this.isFocus = false;
        },
        queryChange: function queryChange(val) {
            var parsedQuery = val.replace(/(\^|\(|\)|\[|\]|\$|\*|\+|\.|\?|\\|\{|\}|\|)/g, '\\$1');
            this.hidden = !new RegExp(parsedQuery, 'i').test(this.searchLabel);
        },
        updateSearchLabel: function updateSearchLabel() {
            this.searchLabel = this.$el.innerHTML;
        }
    },
    mounted: function mounted() {
        var _this = this;

        this.updateSearchLabel();
        this.dispatch('iSelect', 'append');
        this.$on('on-select-close', function () {
            _this.isFocus = false;
        });
        this.$on('on-query-change', function (val) {
            _this.queryChange(val);
        });

        var Select = (0, _assist.findComponentUpward)(this, 'iSelect');
        if (Select) this.autoComplete = Select.autoComplete;
    },
    beforeDestroy: function beforeDestroy() {
        this.dispatch('iSelect', 'remove');
    }
};

/***/ }),
/* 190 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('li', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !_vm.hidden,
        expression: "!hidden"
      }],
      class: _vm.classes,
      on: {
        "click": function click($event) {
          $event.stopPropagation();
          _vm.select($event);
        },
        "mouseout": function mouseout($event) {
          $event.stopPropagation();
          _vm.blur($event);
        }
      }
    }, [_vm._t("default", [_vm._v(_vm._s(_vm.showLabel))])], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 191 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _isNan = __webpack_require__(192);

var _isNan2 = _interopRequireDefault(_isNan);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _calcTextareaHeight = __webpack_require__(195);

var _calcTextareaHeight2 = _interopRequireDefault(_calcTextareaHeight);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-input';

exports.default = {
    name: 'Input',
    mixins: [_emitter2.default],
    props: {
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['text', 'textarea', 'password']);
            },

            default: 'text'
        },
        value: {
            type: [String, Number],
            default: ''
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        placeholder: {
            type: String,
            default: ''
        },
        maxlength: {
            type: Number
        },
        disabled: {
            type: Boolean,
            default: false
        },
        icon: String,
        autosize: {
            type: [Boolean, Object],
            default: false
        },
        rows: {
            type: Number,
            default: 2
        },
        readonly: {
            type: Boolean,
            default: false
        },
        name: {
            type: String
        },
        number: {
            type: Boolean,
            default: false
        },
        autofocus: {
            type: Boolean,
            default: false
        },
        autocomplete: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['on', 'off']);
            },

            default: 'off'
        },
        elementId: {
            type: String
        }
    },
    data: function data() {
        return {
            currentValue: this.value,
            prefixCls: prefixCls,
            prepend: true,
            append: true,
            slotReady: false,
            textareaStyles: {}
        };
    },

    computed: {
        wrapClasses: function wrapClasses() {
            var _ref;

            return [prefixCls + '-wrapper', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-wrapper-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref, prefixCls + '-type', this.type), (0, _defineProperty3.default)(_ref, prefixCls + '-group', this.prepend || this.append), (0, _defineProperty3.default)(_ref, prefixCls + '-group-' + this.size, (this.prepend || this.append) && !!this.size), (0, _defineProperty3.default)(_ref, prefixCls + '-group-with-prepend', this.prepend), (0, _defineProperty3.default)(_ref, prefixCls + '-group-with-append', this.append), (0, _defineProperty3.default)(_ref, prefixCls + '-hide-icon', this.append), _ref)];
        },
        inputClasses: function inputClasses() {
            var _ref2;

            return ['' + prefixCls, (_ref2 = {}, (0, _defineProperty3.default)(_ref2, prefixCls + '-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref2, prefixCls + '-disabled', this.disabled), _ref2)];
        },
        textareaClasses: function textareaClasses() {
            return ['' + prefixCls, (0, _defineProperty3.default)({}, prefixCls + '-disabled', this.disabled)];
        }
    },
    methods: {
        handleEnter: function handleEnter(event) {
            this.$emit('on-enter', event);
        },
        handleKeydown: function handleKeydown(event) {
            this.$emit('on-keydown', event);
        },
        handleKeypress: function handleKeypress(event) {
            this.$emit('on-keypress', event);
        },
        handleKeyup: function handleKeyup(event) {
            this.$emit('on-keyup', event);
        },
        handleIconClick: function handleIconClick(event) {
            this.$emit('on-click', event);
        },
        handleFocus: function handleFocus(event) {
            this.$emit('on-focus', event);
        },
        handleBlur: function handleBlur(event) {
            this.$emit('on-blur', event);
            if (!(0, _assist.findComponentUpward)(this, ['DatePicker', 'TimePicker', 'Cascader', 'Search'])) {
                this.dispatch('FormItem', 'on-form-blur', this.currentValue);
            }
        },
        handleInput: function handleInput(event) {
            var value = event.target.value;
            if (this.number) value = (0, _isNan2.default)(Number(value)) ? value : Number(value);
            this.$emit('input', value);
            this.setCurrentValue(value);
            this.$emit('on-change', event);
        },
        handleChange: function handleChange(event) {
            this.$emit('on-input-change', event);
        },
        setCurrentValue: function setCurrentValue(value) {
            var _this = this;

            if (value === this.currentValue) return;
            this.$nextTick(function () {
                _this.resizeTextarea();
            });
            this.currentValue = value;
            if (!(0, _assist.findComponentUpward)(this, ['DatePicker', 'TimePicker', 'Cascader', 'Search'])) {
                this.dispatch('FormItem', 'on-form-change', value);
            }
        },
        resizeTextarea: function resizeTextarea() {
            var autosize = this.autosize;
            if (!autosize || this.type !== 'textarea') {
                return false;
            }

            var minRows = autosize.minRows;
            var maxRows = autosize.maxRows;

            this.textareaStyles = (0, _calcTextareaHeight2.default)(this.$refs.textarea, minRows, maxRows);
        },
        focus: function focus() {
            if (this.type === 'textarea') {
                this.$refs.textarea.focus();
            } else {
                this.$refs.input.focus();
            }
        },
        blur: function blur() {
            if (this.type === 'textarea') {
                this.$refs.textarea.blur();
            } else {
                this.$refs.input.blur();
            }
        }
    },
    watch: {
        value: function value(val) {
            this.setCurrentValue(val);
        }
    },
    mounted: function mounted() {
        if (this.type !== 'textarea') {
            this.prepend = this.$slots.prepend !== undefined;
            this.append = this.$slots.append !== undefined;
        } else {
            this.prepend = false;
            this.append = false;
        }
        this.slotReady = true;
        this.resizeTextarea();
    }
};

/***/ }),
/* 192 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(193), __esModule: true };

/***/ }),
/* 193 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(194);
module.exports = __webpack_require__(7).Number.isNaN;


/***/ }),
/* 194 */
/***/ (function(module, exports, __webpack_require__) {

// 20.1.2.4 Number.isNaN(number)
var $export = __webpack_require__(17);

$export($export.S, 'Number', {
  isNaN: function isNaN(number) {
    // eslint-disable-next-line no-self-compare
    return number != number;
  }
});


/***/ }),
/* 195 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = calcTextareaHeight;


var hiddenTextarea = void 0;

var HIDDEN_STYLE = '\n    height:0 !important;\n    min-height:0 !important;\n    max-height:none !important;\n    visibility:hidden !important;\n    overflow:hidden !important;\n    position:absolute !important;\n    z-index:-1000 !important;\n    top:0 !important;\n    right:0 !important\n';

var CONTEXT_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];

function calculateNodeStyling(node) {
    var style = window.getComputedStyle(node);

    var boxSizing = style.getPropertyValue('box-sizing');

    var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));

    var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));

    var contextStyle = CONTEXT_STYLE.map(function (name) {
        return name + ':' + style.getPropertyValue(name);
    }).join(';');

    return { contextStyle: contextStyle, paddingSize: paddingSize, borderSize: borderSize, boxSizing: boxSizing };
}

function calcTextareaHeight(targetNode) {
    var minRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
    var maxRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;

    if (!hiddenTextarea) {
        hiddenTextarea = document.createElement('textarea');
        document.body.appendChild(hiddenTextarea);
    }

    var _calculateNodeStyling = calculateNodeStyling(targetNode),
        paddingSize = _calculateNodeStyling.paddingSize,
        borderSize = _calculateNodeStyling.borderSize,
        boxSizing = _calculateNodeStyling.boxSizing,
        contextStyle = _calculateNodeStyling.contextStyle;

    hiddenTextarea.setAttribute('style', contextStyle + ';' + HIDDEN_STYLE);
    hiddenTextarea.value = targetNode.value || targetNode.placeholder || '';

    var height = hiddenTextarea.scrollHeight;
    var minHeight = -Infinity;
    var maxHeight = Infinity;

    if (boxSizing === 'border-box') {
        height = height + borderSize;
    } else if (boxSizing === 'content-box') {
        height = height - paddingSize;
    }

    hiddenTextarea.value = '';
    var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;

    if (minRows !== null) {
        minHeight = singleRowHeight * minRows;
        if (boxSizing === 'border-box') {
            minHeight = minHeight + paddingSize + borderSize;
        }
        height = Math.max(minHeight, height);
    }
    if (maxRows !== null) {
        maxHeight = singleRowHeight * maxRows;
        if (boxSizing === 'border-box') {
            maxHeight = maxHeight + paddingSize + borderSize;
        }
        height = Math.min(maxHeight, height);
    }

    return {
        height: height + 'px',
        minHeight: minHeight + 'px',
        maxHeight: maxHeight + 'px'
    };
}

/***/ }),
/* 196 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.wrapClasses
    }, [_vm.type !== 'textarea' ? [_vm.prepend ? _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.slotReady,
        expression: "slotReady"
      }],
      class: [_vm.prefixCls + '-group-prepend']
    }, [_vm._t("prepend")], 2) : _vm._e(), _vm._v(" "), _vm.icon ? _c('i', {
      staticClass: "ivu-icon",
      class: ['ivu-icon-' + _vm.icon, _vm.prefixCls + '-icon', _vm.prefixCls + '-icon-normal'],
      on: {
        "click": _vm.handleIconClick
      }
    }) : _vm._e(), _vm._v(" "), _c('transition', {
      attrs: {
        "name": "fade"
      }
    }, [!_vm.icon ? _c('i', {
      staticClass: "ivu-icon ivu-icon-load-c ivu-load-loop",
      class: [_vm.prefixCls + '-icon', _vm.prefixCls + '-icon-validate']
    }) : _vm._e()]), _vm._v(" "), _c('input', {
      ref: "input",
      class: _vm.inputClasses,
      attrs: {
        "id": _vm.elementId,
        "autocomplete": _vm.autocomplete,
        "type": _vm.type,
        "placeholder": _vm.placeholder,
        "disabled": _vm.disabled,
        "maxlength": _vm.maxlength,
        "readonly": _vm.readonly,
        "name": _vm.name,
        "number": _vm.number,
        "autofocus": _vm.autofocus
      },
      domProps: {
        "value": _vm.currentValue
      },
      on: {
        "keyup": [function ($event) {
          if (!('button' in $event) && _vm._k($event.keyCode, "enter", 13)) {
            return null;
          }
          _vm.handleEnter($event);
        }, _vm.handleKeyup],
        "keypress": _vm.handleKeypress,
        "keydown": _vm.handleKeydown,
        "focus": _vm.handleFocus,
        "blur": _vm.handleBlur,
        "input": _vm.handleInput,
        "change": _vm.handleChange
      }
    }), _vm._v(" "), _vm.append ? _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.slotReady,
        expression: "slotReady"
      }],
      class: [_vm.prefixCls + '-group-append']
    }, [_vm._t("append")], 2) : _vm._e()] : _c('textarea', {
      ref: "textarea",
      class: _vm.textareaClasses,
      style: _vm.textareaStyles,
      attrs: {
        "id": _vm.elementId,
        "autocomplete": _vm.autocomplete,
        "placeholder": _vm.placeholder,
        "disabled": _vm.disabled,
        "rows": _vm.rows,
        "maxlength": _vm.maxlength,
        "readonly": _vm.readonly,
        "name": _vm.name,
        "autofocus": _vm.autofocus
      },
      domProps: {
        "value": _vm.currentValue
      },
      on: {
        "keyup": [function ($event) {
          if (!('button' in $event) && _vm._k($event.keyCode, "enter", 13)) {
            return null;
          }
          _vm.handleEnter($event);
        }, _vm.handleKeyup],
        "keypress": _vm.handleKeypress,
        "keydown": _vm.handleKeydown,
        "focus": _vm.handleFocus,
        "blur": _vm.handleBlur,
        "input": _vm.handleInput
      }
    })], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 197 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('i-select', {
      ref: "select",
      staticClass: "ivu-auto-complete",
      attrs: {
        "label": _vm.label,
        "disabled": _vm.disabled,
        "clearable": _vm.clearable,
        "placeholder": _vm.placeholder,
        "size": _vm.size,
        "filterable": "",
        "remote": "",
        "auto-complete": "",
        "remote-method": _vm.remoteMethod,
        "transfer": _vm.transfer
      },
      on: {
        "on-change": _vm.handleChange
      }
    }, [_vm._t("input", [_c('i-input', {
      ref: "input",
      attrs: {
        "slot": "input",
        "element-id": _vm.elementId,
        "name": _vm.name,
        "placeholder": _vm.placeholder,
        "disabled": _vm.disabled,
        "size": _vm.size,
        "icon": _vm.inputIcon
      },
      on: {
        "on-click": _vm.handleClear,
        "on-focus": _vm.handleFocus,
        "on-blur": _vm.handleBlur
      },
      slot: "input",
      model: {
        value: _vm.currentValue,
        callback: function callback($$v) {
          _vm.currentValue = $$v;
        },
        expression: "currentValue"
      }
    })]), _vm._v(" "), _vm._t("default", _vm._l(_vm.filteredData, function (item) {
      return _c('i-option', {
        key: item,
        attrs: {
          "value": item
        }
      }, [_vm._v(_vm._s(item))]);
    }))], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 198 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _avatar = __webpack_require__(199);

var _avatar2 = _interopRequireDefault(_avatar);

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

exports.default = _avatar2.default;

/***/ }),
/* 199 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(200),
  /* template */
  __webpack_require__(201),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 200 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(15);

var _icon2 = _interopRequireDefault(_icon);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-avatar';

exports.default = {
    name: 'Avatar',
    components: { Icon: _icon2.default },
    props: {
        shape: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['circle', 'square']);
            },

            default: 'circle'
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            },

            default: 'default'
        },
        src: {
            type: String
        },
        icon: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            scale: 1,
            isSlotShow: false
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, prefixCls + '-' + this.shape, prefixCls + '-' + this.size, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-image', !!this.src), (0, _defineProperty3.default)(_ref, prefixCls + '-icon', !!this.icon), _ref)];
        },
        childrenStyle: function childrenStyle() {
            var style = {};
            if (this.isSlotShow) {
                style = {
                    msTransform: 'scale(' + this.scale + ')',
                    WebkitTransform: 'scale(' + this.scale + ')',
                    transform: 'scale(' + this.scale + ')',
                    position: 'absolute',
                    display: 'inline-block',
                    left: 'calc(50% - ' + Math.round(this.$refs.children.offsetWidth / 2) + 'px)'
                };
            }
            return style;
        }
    },
    methods: {
        setScale: function setScale() {
            this.isSlotShow = !this.src && !this.icon;
            if (this.$refs.children) {
                var childrenWidth = this.$refs.children.offsetWidth;
                var avatarWidth = this.$el.getBoundingClientRect().width;

                if (avatarWidth - 8 < childrenWidth) {
                    this.scale = (avatarWidth - 8) / childrenWidth;
                } else {
                    this.scale = 1;
                }
            }
        }
    },
    mounted: function mounted() {
        this.setScale();
    },
    updated: function updated() {
        this.setScale();
    }
};

/***/ }),
/* 201 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('span', {
      class: _vm.classes
    }, [_vm.src ? _c('img', {
      attrs: {
        "src": _vm.src
      }
    }) : _vm.icon ? _c('Icon', {
      attrs: {
        "type": _vm.icon
      }
    }) : _c('span', {
      ref: "children",
      class: [_vm.prefixCls + '-string'],
      style: _vm.childrenStyle
    }, [_vm._t("default")], 2)], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 202 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _backTop = __webpack_require__(203);

var _backTop2 = _interopRequireDefault(_backTop);

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

exports.default = _backTop2.default;

/***/ }),
/* 203 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(204),
  /* template */
  __webpack_require__(205),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 204 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _dom = __webpack_require__(33);

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

var prefixCls = 'ivu-back-top';

exports.default = {
    props: {
        height: {
            type: Number,
            default: 400
        },
        bottom: {
            type: Number,
            default: 30
        },
        right: {
            type: Number,
            default: 30
        },
        duration: {
            type: Number,
            default: 1000
        }
    },
    data: function data() {
        return {
            backTop: false
        };
    },
    mounted: function mounted() {
        (0, _dom.on)(window, 'scroll', this.handleScroll);
        (0, _dom.on)(window, 'resize', this.handleScroll);
    },
    beforeDestroy: function beforeDestroy() {
        (0, _dom.off)(window, 'scroll', this.handleScroll);
        (0, _dom.off)(window, 'resize', this.handleScroll);
    },

    computed: {
        classes: function classes() {
            return ['' + prefixCls, (0, _defineProperty3.default)({}, prefixCls + '-show', this.backTop)];
        },
        styles: function styles() {
            return {
                bottom: this.bottom + 'px',
                right: this.right + 'px'
            };
        },
        innerClasses: function innerClasses() {
            return prefixCls + '-inner';
        }
    },
    methods: {
        handleScroll: function handleScroll() {
            this.backTop = window.pageYOffset >= this.height;
        },
        back: function back() {
            var sTop = document.documentElement.scrollTop || document.body.scrollTop;
            (0, _assist.scrollTop)(window, sTop, 0, this.duration);
            this.$emit('on-click');
        }
    }
};

/***/ }),
/* 205 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      style: _vm.styles,
      on: {
        "click": _vm.back
      }
    }, [_vm._t("default", [_c('div', {
      class: _vm.innerClasses
    }, [_c('i', {
      staticClass: "ivu-icon ivu-icon-chevron-up"
    })])])], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 206 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _badge = __webpack_require__(207);

var _badge2 = _interopRequireDefault(_badge);

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

exports.default = _badge2.default;

/***/ }),
/* 207 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(208),
  /* template */
  __webpack_require__(209),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 208 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

var prefixCls = 'ivu-badge';

exports.default = {
    name: 'Badge',
    props: {
        count: [Number, String],
        dot: {
            type: Boolean,
            default: false
        },
        overflowCount: {
            type: [Number, String],
            default: 99
        },
        className: String
    },
    computed: {
        classes: function classes() {
            return '' + prefixCls;
        },
        dotClasses: function dotClasses() {
            return prefixCls + '-dot';
        },
        countClasses: function countClasses() {
            var _ref;

            return [prefixCls + '-count', (_ref = {}, (0, _defineProperty3.default)(_ref, '' + this.className, !!this.className), (0, _defineProperty3.default)(_ref, prefixCls + '-count-alone', this.alone), _ref)];
        },
        finalCount: function finalCount() {
            return parseInt(this.count) >= parseInt(this.overflowCount) ? this.overflowCount + '+' : this.count;
        },
        badge: function badge() {
            var status = false;

            if (this.count) {
                status = !(parseInt(this.count) === 0);
            }

            if (this.dot) {
                status = true;
                if (this.count) {
                    if (parseInt(this.count) === 0) {
                        status = false;
                    }
                }
            }

            return status;
        },
        alone: function alone() {
            return this.$slots.default === undefined;
        }
    }
};

/***/ }),
/* 209 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _vm.dot ? _c('span', {
      ref: "badge",
      class: _vm.classes
    }, [_vm._t("default"), _vm._v(" "), _c('sup', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.badge,
        expression: "badge"
      }],
      class: _vm.dotClasses
    })], 2) : _c('span', {
      ref: "badge",
      class: _vm.classes
    }, [_vm._t("default"), _vm._v(" "), _vm.count ? _c('sup', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.badge,
        expression: "badge"
      }],
      class: _vm.countClasses
    }, [_vm._v(_vm._s(_vm.finalCount))]) : _vm._e()], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 210 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _breadcrumb = __webpack_require__(211);

var _breadcrumb2 = _interopRequireDefault(_breadcrumb);

var _breadcrumbItem = __webpack_require__(214);

var _breadcrumbItem2 = _interopRequireDefault(_breadcrumbItem);

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

_breadcrumb2.default.Item = _breadcrumbItem2.default;
exports.default = _breadcrumb2.default;

/***/ }),
/* 211 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(212),
  /* template */
  __webpack_require__(213),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 212 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});


var prefixCls = 'ivu-breadcrumb';

exports.default = {
    name: 'Breadcrumb',
    props: {
        separator: {
            type: String,
            default: '/'
        }
    },
    computed: {
        classes: function classes() {
            return '' + prefixCls;
        }
    },
    mounted: function mounted() {
        this.updateChildren();
    },
    updated: function updated() {
        var _this = this;

        this.$nextTick(function () {
            _this.updateChildren();
        });
    },

    methods: {
        updateChildren: function updateChildren() {
            var _this2 = this;

            this.$children.forEach(function (child) {
                child.separator = _this2.separator;
            });
        }
    },
    watch: {
        separator: function separator() {
            this.updateChildren();
        }
    }
};

/***/ }),
/* 213 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 214 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(215),
  /* template */
  __webpack_require__(216),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 215 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});


var prefixCls = 'ivu-breadcrumb-item';

exports.default = {
    name: 'BreadcrumbItem',
    props: {
        href: {
            type: String
        },
        replace: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            separator: '',
            showSeparator: false
        };
    },

    computed: {
        linkClasses: function linkClasses() {
            return prefixCls + '-link';
        },
        separatorClasses: function separatorClasses() {
            return prefixCls + '-separator';
        }
    },
    mounted: function mounted() {
        this.showSeparator = this.$slots.separator !== undefined;
    },

    methods: {
        handleClick: function handleClick() {
            var isRoute = this.$router;
            if (isRoute) {
                this.replace ? this.$router.replace(this.href) : this.$router.push(this.href);
            } else {
                window.location.href = this.href;
            }
        }
    }
};

/***/ }),
/* 216 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('span', [_vm.href ? _c('a', {
      class: _vm.linkClasses,
      on: {
        "click": _vm.handleClick
      }
    }, [_vm._t("default")], 2) : _c('span', {
      class: _vm.linkClasses
    }, [_vm._t("default")], 2), _vm._v(" "), !_vm.showSeparator ? _c('span', {
      class: _vm.separatorClasses,
      domProps: {
        "innerHTML": _vm._s(_vm.separator)
      }
    }) : _c('span', {
      class: _vm.separatorClasses
    }, [_vm._t("separator")], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 217 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _button = __webpack_require__(20);

var _button2 = _interopRequireDefault(_button);

var _buttonGroup = __webpack_require__(220);

var _buttonGroup2 = _interopRequireDefault(_buttonGroup);

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

_button2.default.Group = _buttonGroup2.default;
exports.default = _button2.default;

/***/ }),
/* 218 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(15);

var _icon2 = _interopRequireDefault(_icon);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-btn';

exports.default = {
    name: 'Button',
    components: { Icon: _icon2.default },
    props: {
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['primary', 'ghost', 'dashed', 'text', 'info', 'success', 'warning', 'error', 'default']);
            }
        },
        shape: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['circle', 'circle-outline']);
            }
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        loading: Boolean,
        disabled: Boolean,
        htmlType: {
            default: 'button',
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['button', 'submit', 'reset']);
            }
        },
        icon: String,
        long: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            showSlot: true
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.type, !!this.type), (0, _defineProperty3.default)(_ref, prefixCls + '-long', this.long), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.shape, !!this.shape), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref, prefixCls + '-loading', this.loading != null && this.loading), (0, _defineProperty3.default)(_ref, prefixCls + '-icon-only', !this.showSlot && (!!this.icon || this.loading)), _ref)];
        }
    },
    methods: {
        handleClick: function handleClick(event) {
            this.$emit('click', event);
        }
    },
    mounted: function mounted() {
        this.showSlot = this.$slots.default !== undefined;
    }
};

/***/ }),
/* 219 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('button', {
      class: _vm.classes,
      attrs: {
        "type": _vm.htmlType,
        "disabled": _vm.disabled
      },
      on: {
        "click": _vm.handleClick
      }
    }, [_vm.loading ? _c('Icon', {
      staticClass: "ivu-load-loop",
      attrs: {
        "type": "load-c"
      }
    }) : _vm._e(), _vm._v(" "), _vm.icon && !_vm.loading ? _c('Icon', {
      attrs: {
        "type": _vm.icon
      }
    }) : _vm._e(), _vm._v(" "), _vm.showSlot ? _c('span', {
      ref: "slot"
    }, [_vm._t("default")], 2) : _vm._e()], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 220 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(221),
  /* template */
  __webpack_require__(222),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 221 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-btn-group';

exports.default = {
    name: 'ButtonGroup',
    props: {
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        shape: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['circle', 'circle-outline']);
            }
        },
        vertical: {
            type: Boolean,
            default: false
        }
    },
    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.shape, !!this.shape), (0, _defineProperty3.default)(_ref, prefixCls + '-vertical', this.vertical), _ref)];
        }
    }
};

/***/ }),
/* 222 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 223 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _card = __webpack_require__(224);

var _card2 = _interopRequireDefault(_card);

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

exports.default = _card2.default;

/***/ }),
/* 224 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(225),
  /* template */
  __webpack_require__(226),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 225 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

var prefixCls = 'ivu-card';
var defaultPadding = 16;

exports.default = {
    name: 'Card',

    props: {
        bordered: {
            type: Boolean,
            default: true
        },
        disHover: {
            type: Boolean,
            default: false
        },
        shadow: {
            type: Boolean,
            default: false
        },
        padding: {
            type: Number,
            default: defaultPadding
        }
    },
    data: function data() {
        return {
            showHead: true,
            showExtra: true
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-bordered', this.bordered && !this.shadow), (0, _defineProperty3.default)(_ref, prefixCls + '-dis-hover', this.disHover || this.shadow), (0, _defineProperty3.default)(_ref, prefixCls + '-shadow', this.shadow), _ref)];
        },
        headClasses: function headClasses() {
            return prefixCls + '-head';
        },
        extraClasses: function extraClasses() {
            return prefixCls + '-extra';
        },
        bodyClasses: function bodyClasses() {
            return prefixCls + '-body';
        },
        bodyStyles: function bodyStyles() {
            if (this.padding !== defaultPadding) {
                return {
                    padding: this.padding + 'px'
                };
            } else {
                return '';
            }
        }
    },
    mounted: function mounted() {
        this.showHead = this.$slots.title !== undefined;
        this.showExtra = this.$slots.extra !== undefined;
    }
};

/***/ }),
/* 226 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_vm.showHead ? _c('div', {
      class: _vm.headClasses
    }, [_vm._t("title")], 2) : _vm._e(), _vm._v(" "), _vm.showExtra ? _c('div', {
      class: _vm.extraClasses
    }, [_vm._t("extra")], 2) : _vm._e(), _vm._v(" "), _c('div', {
      class: _vm.bodyClasses,
      style: _vm.bodyStyles
    }, [_vm._t("default")], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 227 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _carousel = __webpack_require__(228);

var _carousel2 = _interopRequireDefault(_carousel);

var _carouselItem = __webpack_require__(231);

var _carouselItem2 = _interopRequireDefault(_carouselItem);

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

_carousel2.default.Item = _carouselItem2.default;
exports.default = _carousel2.default;

/***/ }),
/* 228 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(229),
  /* template */
  __webpack_require__(230),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 229 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _assist = __webpack_require__(2);

var _dom = __webpack_require__(33);

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

var prefixCls = 'ivu-carousel';

exports.default = {
    name: 'Carousel',
    components: { Icon: _icon2.default },
    props: {
        arrow: {
            type: String,
            default: 'hover',
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['hover', 'always', 'never']);
            }
        },
        autoplay: {
            type: Boolean,
            default: false
        },
        autoplaySpeed: {
            type: Number,
            default: 2000
        },
        easing: {
            type: String,
            default: 'ease'
        },
        dots: {
            type: String,
            default: 'inside',
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['inside', 'outside', 'none']);
            }
        },
        trigger: {
            type: String,
            default: 'click',
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['click', 'hover']);
            }
        },
        value: {
            type: Number,
            default: 0
        },
        height: {
            type: [String, Number],
            default: 'auto',
            validator: function validator(value) {
                return value === 'auto' || Object.prototype.toString.call(value) === '[object Number]';
            }
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            listWidth: 0,
            trackWidth: 0,
            trackOffset: 0,
            slides: [],
            slideInstances: [],
            timer: null,
            ready: false,
            currentIndex: this.value
        };
    },

    computed: {
        classes: function classes() {
            return ['' + prefixCls];
        },
        trackStyles: function trackStyles() {
            return {
                width: this.trackWidth + 'px',
                transform: 'translate3d(-' + this.trackOffset + 'px, 0px, 0px)',
                transition: 'transform 500ms ' + this.easing
            };
        },
        arrowClasses: function arrowClasses() {
            return [prefixCls + '-arrow', prefixCls + '-arrow-' + this.arrow];
        },
        dotsClasses: function dotsClasses() {
            return [prefixCls + '-dots', prefixCls + '-dots-' + this.dots];
        }
    },
    methods: {
        findChild: function findChild(cb) {
            var find = function find(child) {
                var name = child.$options.componentName;

                if (name) {
                    cb(child);
                } else if (child.$children.length) {
                    child.$children.forEach(function (innerChild) {
                        find(innerChild, cb);
                    });
                }
            };

            if (this.slideInstances.length || !this.$children) {
                this.slideInstances.forEach(function (child) {
                    find(child);
                });
            } else {
                this.$children.forEach(function (child) {
                    find(child);
                });
            }
        },
        updateSlides: function updateSlides(init) {
            var _this = this;

            var slides = [];
            var index = 1;

            this.findChild(function (child) {
                slides.push({
                    $el: child.$el
                });
                child.index = index++;

                if (init) {
                    _this.slideInstances.push(child);
                }
            });

            this.slides = slides;

            this.updatePos();
        },
        updatePos: function updatePos() {
            var _this2 = this;

            this.findChild(function (child) {
                child.width = _this2.listWidth;
                child.height = typeof _this2.height === 'number' ? _this2.height + 'px' : _this2.height;
            });

            this.trackWidth = (this.slides.length || 0) * this.listWidth;
        },
        slotChange: function slotChange() {
            var _this3 = this;

            this.$nextTick(function () {
                _this3.slides = [];
                _this3.slideInstances = [];

                _this3.updateSlides(true, true);
                _this3.updatePos();
                _this3.updateOffset();
            });
        },
        handleResize: function handleResize() {
            this.listWidth = parseInt((0, _assist.getStyle)(this.$el, 'width'));
            this.updatePos();
            this.updateOffset();
        },
        add: function add(offset) {
            var index = this.currentIndex;
            index += offset;
            while (index < 0) {
                index += this.slides.length;
            }index = index % this.slides.length;
            this.currentIndex = index;
            this.$emit('input', index);
        },
        arrowEvent: function arrowEvent(offset) {
            this.setAutoplay();
            this.add(offset);
        },
        dotsEvent: function dotsEvent(event, n) {
            if (event === this.trigger && this.currentIndex !== n) {
                this.currentIndex = n;
                this.$emit('input', n);

                this.setAutoplay();
            }
        },
        setAutoplay: function setAutoplay() {
            var _this4 = this;

            window.clearInterval(this.timer);
            if (this.autoplay) {
                this.timer = window.setInterval(function () {
                    _this4.add(1);
                }, this.autoplaySpeed);
            }
        },
        updateOffset: function updateOffset() {
            var _this5 = this;

            this.$nextTick(function () {
                _this5.trackOffset = _this5.currentIndex * _this5.listWidth;
            });
        }
    },
    watch: {
        autoplay: function autoplay() {
            this.setAutoplay();
        },
        autoplaySpeed: function autoplaySpeed() {
            this.setAutoplay();
        },
        currentIndex: function currentIndex(val, oldVal) {
            this.$emit('on-change', oldVal, val);
            this.updateOffset();
        },
        height: function height() {
            this.updatePos();
        },
        value: function value(val) {
            this.currentIndex = val;
        }
    },
    mounted: function mounted() {
        this.updateSlides(true);
        this.handleResize();
        this.setAutoplay();

        (0, _dom.on)(window, 'resize', this.handleResize);
    },
    beforeDestroy: function beforeDestroy() {
        (0, _dom.off)(window, 'resize', this.handleResize);
    }
};

/***/ }),
/* 230 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_c('button', {
      staticClass: "left",
      class: _vm.arrowClasses,
      on: {
        "click": function click($event) {
          _vm.arrowEvent(-1);
        }
      }
    }, [_c('Icon', {
      attrs: {
        "type": "chevron-left"
      }
    })], 1), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-list']
    }, [_c('div', {
      class: [_vm.prefixCls + '-track'],
      style: _vm.trackStyles
    }, [_vm._t("default")], 2)]), _vm._v(" "), _c('button', {
      staticClass: "right",
      class: _vm.arrowClasses,
      on: {
        "click": function click($event) {
          _vm.arrowEvent(1);
        }
      }
    }, [_c('Icon', {
      attrs: {
        "type": "chevron-right"
      }
    })], 1), _vm._v(" "), _c('ul', {
      class: _vm.dotsClasses
    }, [_vm._l(_vm.slides.length, function (n) {
      return [_c('li', {
        class: [n - 1 === _vm.currentIndex ? _vm.prefixCls + '-active' : ''],
        on: {
          "click": function click($event) {
            _vm.dotsEvent('click', n - 1);
          },
          "mouseover": function mouseover($event) {
            _vm.dotsEvent('hover', n - 1);
          }
        }
      }, [_c('button')])];
    })], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 231 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(232),
  /* template */
  __webpack_require__(233),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 232 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});


var prefixCls = 'ivu-carousel-item';

exports.default = {
    componentName: 'carousel-item',
    name: 'CarouselItem',
    data: function data() {
        return {
            prefixCls: prefixCls,
            width: 0,
            height: 'auto',
            left: 0
        };
    },

    computed: {
        styles: function styles() {
            return {
                width: this.width + 'px',
                height: '' + this.height,
                left: this.left + 'px'
            };
        }
    },
    mounted: function mounted() {
        this.$parent.slotChange();
    },
    beforeDestroy: function beforeDestroy() {
        this.$parent.slotChange();
    }
};

/***/ }),
/* 233 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.prefixCls,
      style: _vm.styles
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 234 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _cascader = __webpack_require__(235);

var _cascader2 = _interopRequireDefault(_cascader);

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

exports.default = _cascader2.default;

/***/ }),
/* 235 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(236),
  /* template */
  __webpack_require__(252),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 236 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

var _stringify = __webpack_require__(86);

var _stringify2 = _interopRequireDefault(_stringify);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _input = __webpack_require__(35);

var _input2 = _interopRequireDefault(_input);

var _dropdown = __webpack_require__(25);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _caspanel = __webpack_require__(238);

var _caspanel2 = _interopRequireDefault(_caspanel);

var _clickoutside = __webpack_require__(26);

var _clickoutside2 = _interopRequireDefault(_clickoutside);

var _transferDom = __webpack_require__(16);

var _transferDom2 = _interopRequireDefault(_transferDom);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-cascader';
var selectPrefixCls = 'ivu-select';

exports.default = {
    name: 'Cascader',
    mixins: [_emitter2.default, _locale2.default],
    components: { iInput: _input2.default, Drop: _dropdown2.default, Icon: _icon2.default, Caspanel: _caspanel2.default },
    directives: { clickoutside: _clickoutside2.default, TransferDom: _transferDom2.default },
    props: {
        data: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        value: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        disabled: {
            type: Boolean,
            default: false
        },
        clearable: {
            type: Boolean,
            default: true
        },
        placeholder: {
            type: String
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large']);
            }
        },
        trigger: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['click', 'hover']);
            },

            default: 'click'
        },
        changeOnSelect: {
            type: Boolean,
            default: false
        },
        renderFormat: {
            type: Function,
            default: function _default(label) {
                return label.join(' / ');
            }
        },
        loadData: {
            type: Function
        },
        filterable: {
            type: Boolean,
            default: false
        },
        notFoundText: {
            type: String
        },
        transfer: {
            type: Boolean,
            default: false
        },
        name: {
            type: String
        },
        elementId: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            selectPrefixCls: selectPrefixCls,
            visible: false,
            selected: [],
            tmpSelected: [],
            updatingValue: false,
            currentValue: this.value,
            query: '',
            validDataStr: '',
            isLoadedChildren: false };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-show-clear', this.showCloseIcon), (0, _defineProperty3.default)(_ref, prefixCls + '-size-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref, prefixCls + '-visible', this.visible), (0, _defineProperty3.default)(_ref, prefixCls + '-disabled', this.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-not-found', this.filterable && this.query !== '' && !this.querySelections.length), _ref)];
        },
        showCloseIcon: function showCloseIcon() {
            return this.currentValue && this.currentValue.length && this.clearable && !this.disabled;
        },
        displayRender: function displayRender() {
            var label = [];
            for (var i = 0; i < this.selected.length; i++) {
                label.push(this.selected[i].label);
            }

            return this.renderFormat(label, this.selected);
        },
        displayInputRender: function displayInputRender() {
            return this.filterable ? '' : this.displayRender;
        },
        localePlaceholder: function localePlaceholder() {
            if (this.placeholder === undefined) {
                return this.t('i.select.placeholder');
            } else {
                return this.placeholder;
            }
        },
        inputPlaceholder: function inputPlaceholder() {
            return this.filterable && this.currentValue.length ? null : this.localePlaceholder;
        },
        localeNotFoundText: function localeNotFoundText() {
            if (this.notFoundText === undefined) {
                return this.t('i.select.noMatch');
            } else {
                return this.notFoundText;
            }
        },
        querySelections: function querySelections() {
            var _this = this;

            var selections = [];
            function getSelections(arr, label, value) {
                for (var i = 0; i < arr.length; i++) {
                    var item = arr[i];
                    item.__label = label ? label + ' / ' + item.label : item.label;
                    item.__value = value ? value + ',' + item.value : item.value;

                    if (item.children && item.children.length) {
                        getSelections(item.children, item.__label, item.__value);
                        delete item.__label;
                        delete item.__value;
                    } else {
                        selections.push({
                            label: item.__label,
                            value: item.__value,
                            display: item.__label,
                            item: item,
                            disabled: !!item.disabled
                        });
                    }
                }
            }
            getSelections(this.data);
            selections = selections.filter(function (item) {
                return item.label.indexOf(_this.query) > -1;
            }).map(function (item) {
                item.display = item.display.replace(new RegExp(_this.query, 'g'), '<span>' + _this.query + '</span>');
                return item;
            });
            return selections;
        }
    },
    methods: {
        clearSelect: function clearSelect() {
            if (this.disabled) return false;
            var oldVal = (0, _stringify2.default)(this.currentValue);
            this.currentValue = this.selected = this.tmpSelected = [];
            this.handleClose();
            this.emitValue(this.currentValue, oldVal);

            this.broadcast('Caspanel', 'on-clear');
        },
        handleClose: function handleClose() {
            this.visible = false;
        },
        toggleOpen: function toggleOpen() {
            if (this.disabled) return false;
            if (this.visible) {
                if (!this.filterable) this.handleClose();
            } else {
                this.onFocus();
            }
        },
        onFocus: function onFocus() {
            this.visible = true;
            if (!this.currentValue.length) {
                this.broadcast('Caspanel', 'on-clear');
            }
        },
        updateResult: function updateResult(result) {
            this.tmpSelected = result;
        },
        updateSelected: function updateSelected() {
            var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

            if (!this.changeOnSelect || init) {
                this.broadcast('Caspanel', 'on-find-selected', {
                    value: this.currentValue
                });
            }
        },
        emitValue: function emitValue(val, oldVal) {
            var _this2 = this;

            if ((0, _stringify2.default)(val) !== oldVal) {
                this.$emit('on-change', this.currentValue, JSON.parse((0, _stringify2.default)(this.selected)));
                this.$nextTick(function () {
                    _this2.dispatch('FormItem', 'on-form-change', {
                        value: _this2.currentValue,
                        selected: JSON.parse((0, _stringify2.default)(_this2.selected))
                    });
                });
            }
        },
        handleInput: function handleInput(event) {
            this.query = event.target.value;
        },
        handleSelectItem: function handleSelectItem(index) {
            var item = this.querySelections[index];

            if (item.item.disabled) return false;
            this.query = '';
            this.$refs.input.currentValue = '';
            var oldVal = (0, _stringify2.default)(this.currentValue);
            this.currentValue = item.value.split(',');
            this.emitValue(this.currentValue, oldVal);
            this.handleClose();
        },
        handleFocus: function handleFocus() {
            this.$refs.input.focus();
        },
        getValidData: function getValidData(data) {
            function deleteData(item) {
                var new_item = (0, _assign2.default)({}, item);
                if ('loading' in new_item) {
                    delete new_item.loading;
                }
                if ('__value' in new_item) {
                    delete new_item.__value;
                }
                if ('__label' in new_item) {
                    delete new_item.__label;
                }
                if ('children' in new_item && new_item.children.length) {
                    new_item.children = new_item.children.map(function (i) {
                        return deleteData(i);
                    });
                }
                return new_item;
            }

            return data.map(function (item) {
                return deleteData(item);
            });
        }
    },
    created: function created() {
        var _this3 = this;

        this.validDataStr = (0, _stringify2.default)(this.getValidData(this.data));
        this.$on('on-result-change', function (params) {
            var lastValue = params.lastValue;
            var changeOnSelect = params.changeOnSelect;
            var fromInit = params.fromInit;

            if (lastValue || changeOnSelect) {
                var oldVal = (0, _stringify2.default)(_this3.currentValue);
                _this3.selected = _this3.tmpSelected;

                var newVal = [];
                _this3.selected.forEach(function (item) {
                    newVal.push(item.value);
                });

                if (!fromInit) {
                    _this3.updatingValue = true;
                    _this3.currentValue = newVal;
                    _this3.emitValue(_this3.currentValue, oldVal);
                }
            }
            if (lastValue && !fromInit) {
                _this3.handleClose();
            }
        });
    },
    mounted: function mounted() {
        this.updateSelected(true);
    },

    watch: {
        visible: function visible(val) {
            if (val) {
                if (this.currentValue.length) {
                    this.updateSelected();
                }
                if (this.transfer) {
                    this.$refs.drop.update();
                }
            } else {
                if (this.filterable) {
                    this.query = '';
                    this.$refs.input.currentValue = '';
                }
                if (this.transfer) {
                    this.$refs.drop.destroy();
                }
            }
            this.$emit('on-visible-change', val);
        },
        value: function value(val) {
            this.currentValue = val;
            if (!val.length) this.selected = [];
        },
        currentValue: function currentValue() {
            this.$emit('input', this.currentValue);
            if (this.updatingValue) {
                this.updatingValue = false;
                return;
            }
            this.updateSelected(true);
        },

        data: {
            deep: true,
            handler: function handler() {
                var _this4 = this;

                var validDataStr = (0, _stringify2.default)(this.getValidData(this.data));
                if (validDataStr !== this.validDataStr) {
                    this.validDataStr = validDataStr;
                    if (!this.isLoadedChildren) {
                        this.$nextTick(function () {
                            return _this4.updateSelected();
                        });
                    }
                    this.isLoadedChildren = false;
                }
            }
        }
    }
};

/***/ }),
/* 237 */
/***/ (function(module, exports, __webpack_require__) {

var core = __webpack_require__(7);
var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });
module.exports = function stringify(it) { // eslint-disable-line no-unused-vars
  return $JSON.stringify.apply($JSON, arguments);
};


/***/ }),
/* 238 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(239),
  /* template */
  __webpack_require__(251),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 239 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _toConsumableArray2 = __webpack_require__(43);

var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

var _casitem = __webpack_require__(248);

var _casitem2 = _interopRequireDefault(_casitem);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

var _assist = __webpack_require__(2);

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

var key = 1;

exports.default = {
    name: 'Caspanel',
    mixins: [_emitter2.default],
    components: { Casitem: _casitem2.default },
    props: {
        data: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        disabled: Boolean,
        changeOnSelect: Boolean,
        trigger: String,
        prefixCls: String
    },
    data: function data() {
        return {
            tmpItem: {},
            result: [],
            sublist: []
        };
    },

    watch: {
        data: function data() {
            this.sublist = [];
        }
    },
    methods: {
        handleClickItem: function handleClickItem(item) {
            if (this.trigger !== 'click' && item.children) return;
            this.handleTriggerItem(item, false, true);
        },
        handleHoverItem: function handleHoverItem(item) {
            if (this.trigger !== 'hover' || !item.children) return;
            this.handleTriggerItem(item, false, true);
        },
        handleTriggerItem: function handleTriggerItem(item) {
            var _this = this;

            var fromInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
            var fromUser = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

            if (item.disabled) return;

            if (item.loading !== undefined && !item.children.length) {
                var cascader = (0, _assist.findComponentUpward)(this, 'Cascader');
                if (cascader && cascader.loadData) {
                    cascader.loadData(item, function () {
                        if (fromUser) {
                            cascader.isLoadedChildren = true;
                        }
                        if (item.children.length) {
                            _this.handleTriggerItem(item);
                        }
                    });
                    return;
                }
            }

            var backItem = this.getBaseItem(item);
            this.tmpItem = backItem;
            this.emitUpdate([backItem]);
            if (item.children && item.children.length) {
                this.sublist = item.children;
                this.dispatch('Cascader', 'on-result-change', {
                    lastValue: false,
                    changeOnSelect: this.changeOnSelect,
                    fromInit: fromInit
                });

                if (this.changeOnSelect) {
                    var Caspanel = (0, _assist.findComponentDownward)(this, 'Caspanel');
                    if (Caspanel) {
                        Caspanel.$emit('on-clear', true);
                    }
                }
            } else {
                this.sublist = [];
                this.dispatch('Cascader', 'on-result-change', {
                    lastValue: true,
                    changeOnSelect: this.changeOnSelect,
                    fromInit: fromInit
                });
            }
        },
        updateResult: function updateResult(item) {
            this.result = [this.tmpItem].concat(item);
            this.emitUpdate(this.result);
        },
        getBaseItem: function getBaseItem(item) {
            var backItem = (0, _assign2.default)({}, item);
            if (backItem.children) {
                delete backItem.children;
            }

            return backItem;
        },
        emitUpdate: function emitUpdate(result) {
            if (this.$parent.$options.name === 'Caspanel') {
                this.$parent.updateResult(result);
            } else {
                this.$parent.$parent.updateResult(result);
            }
        },
        getKey: function getKey() {
            return key++;
        }
    },
    mounted: function mounted() {
        var _this2 = this;

        this.$on('on-find-selected', function (params) {
            var val = params.value;
            var value = [].concat((0, _toConsumableArray3.default)(val));
            for (var i = 0; i < value.length; i++) {
                for (var j = 0; j < _this2.data.length; j++) {
                    if (value[i] === _this2.data[j].value) {
                        _this2.handleTriggerItem(_this2.data[j], true);
                        value.splice(0, 1);
                        _this2.$nextTick(function () {
                            _this2.broadcast('Caspanel', 'on-find-selected', {
                                value: value
                            });
                        });
                        return false;
                    }
                }
            }
        });

        this.$on('on-clear', function () {
            var deep = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

            _this2.sublist = [];
            _this2.tmpItem = {};
            if (deep) {
                var Caspanel = (0, _assist.findComponentDownward)(_this2, 'Caspanel');
                if (Caspanel) {
                    Caspanel.$emit('on-clear', true);
                }
            }
        });
    }
};

/***/ }),
/* 240 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(241), __esModule: true };

/***/ }),
/* 241 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(56);
__webpack_require__(242);
module.exports = __webpack_require__(7).Array.from;


/***/ }),
/* 242 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var ctx = __webpack_require__(63);
var $export = __webpack_require__(17);
var toObject = __webpack_require__(30);
var call = __webpack_require__(243);
var isArrayIter = __webpack_require__(244);
var toLength = __webpack_require__(68);
var createProperty = __webpack_require__(245);
var getIterFn = __webpack_require__(87);

$export($export.S + $export.F * !__webpack_require__(247)(function (iter) { Array.from(iter); }), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
    // if object isn't iterable or it's array with default iterator - use simple case
    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);
      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }
    result.length = index;
    return result;
  }
});


/***/ }),
/* 243 */
/***/ (function(module, exports, __webpack_require__) {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__(22);
module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};


/***/ }),
/* 244 */
/***/ (function(module, exports, __webpack_require__) {

// check on default Array iterator
var Iterators = __webpack_require__(34);
var ITERATOR = __webpack_require__(12)('iterator');
var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};


/***/ }),
/* 245 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";

var $defineProperty = __webpack_require__(14);
var createDesc = __webpack_require__(28);

module.exports = function (object, index, value) {
  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
  else object[index] = value;
};


/***/ }),
/* 246 */
/***/ (function(module, exports, __webpack_require__) {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(46);
var TAG = __webpack_require__(12)('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),
/* 247 */
/***/ (function(module, exports, __webpack_require__) {

var ITERATOR = __webpack_require__(12)('iterator');
var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();
  riter['return'] = function () { SAFE_CLOSING = true; };
  // eslint-disable-next-line no-throw-literal
  Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;
  try {
    var arr = [7];
    var iter = arr[ITERATOR]();
    iter.next = function () { return { done: safe = true }; };
    arr[ITERATOR] = function () { return iter; };
    exec(arr);
  } catch (e) { /* empty */ }
  return safe;
};


/***/ }),
/* 248 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(249),
  /* template */
  __webpack_require__(250),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 249 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

exports.default = {
    name: 'Casitem',
    props: {
        data: Object,
        prefixCls: String,
        tmpItem: Object
    },
    computed: {
        classes: function classes() {
            var _ref;

            return [this.prefixCls + '-menu-item', (_ref = {}, (0, _defineProperty3.default)(_ref, this.prefixCls + '-menu-item-active', this.tmpItem.value === this.data.value), (0, _defineProperty3.default)(_ref, this.prefixCls + '-menu-item-disabled', this.data.disabled), _ref)];
        },
        showArrow: function showArrow() {
            return this.data.children && this.data.children.length || 'loading' in this.data && !this.data.loading;
        },
        showLoading: function showLoading() {
            return 'loading' in this.data && this.data.loading;
        }
    }
};

/***/ }),
/* 250 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('li', {
      class: _vm.classes
    }, [_vm._v("\n    " + _vm._s(_vm.data.label) + "\n    "), _vm.showArrow ? _c('i', {
      staticClass: "ivu-icon ivu-icon-ios-arrow-right"
    }) : _vm._e(), _vm._v(" "), _vm.showLoading ? _c('i', {
      staticClass: "ivu-icon ivu-icon-load-c ivu-load-loop"
    }) : _vm._e()]);
  }, staticRenderFns: [] };

/***/ }),
/* 251 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('span', [_vm.data && _vm.data.length ? _c('ul', {
      class: [_vm.prefixCls + '-menu']
    }, _vm._l(_vm.data, function (item) {
      return _c('Casitem', {
        key: _vm.getKey(),
        attrs: {
          "prefix-cls": _vm.prefixCls,
          "data": item,
          "tmp-item": _vm.tmpItem
        },
        nativeOn: {
          "click": function click($event) {
            $event.stopPropagation();
            _vm.handleClickItem(item);
          },
          "mouseenter": function mouseenter($event) {
            $event.stopPropagation();
            _vm.handleHoverItem(item);
          }
        }
      });
    })) : _vm._e(), _vm.sublist && _vm.sublist.length ? _c('Caspanel', {
      attrs: {
        "prefix-cls": _vm.prefixCls,
        "data": _vm.sublist,
        "disabled": _vm.disabled,
        "trigger": _vm.trigger,
        "change-on-select": _vm.changeOnSelect
      }
    }) : _vm._e()], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 252 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      directives: [{
        name: "clickoutside",
        rawName: "v-clickoutside",
        value: _vm.handleClose,
        expression: "handleClose"
      }],
      class: _vm.classes
    }, [_c('div', {
      ref: "reference",
      class: [_vm.prefixCls + '-rel'],
      on: {
        "click": _vm.toggleOpen
      }
    }, [_c('input', {
      attrs: {
        "type": "hidden",
        "name": _vm.name
      },
      domProps: {
        "value": _vm.currentValue
      }
    }), _vm._v(" "), _vm._t("default", [_c('i-input', {
      ref: "input",
      attrs: {
        "element-id": _vm.elementId,
        "readonly": !_vm.filterable,
        "disabled": _vm.disabled,
        "value": _vm.displayInputRender,
        "size": _vm.size,
        "placeholder": _vm.inputPlaceholder
      },
      on: {
        "on-change": _vm.handleInput
      }
    }), _vm._v(" "), _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.filterable && _vm.query === '',
        expression: "filterable && query === ''"
      }],
      class: [_vm.prefixCls + '-label'],
      on: {
        "click": _vm.handleFocus
      }
    }, [_vm._v(_vm._s(_vm.displayRender))]), _vm._v(" "), _c('Icon', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.showCloseIcon,
        expression: "showCloseIcon"
      }],
      class: [_vm.prefixCls + '-arrow'],
      attrs: {
        "type": "ios-close"
      },
      nativeOn: {
        "click": function click($event) {
          $event.stopPropagation();
          _vm.clearSelect($event);
        }
      }
    }), _vm._v(" "), _c('Icon', {
      class: [_vm.prefixCls + '-arrow'],
      attrs: {
        "type": "arrow-down-b"
      }
    })])], 2), _vm._v(" "), _c('transition', {
      attrs: {
        "name": "slide-up"
      }
    }, [_c('Drop', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.visible,
        expression: "visible"
      }, {
        name: "transfer-dom",
        rawName: "v-transfer-dom"
      }],
      ref: "drop",
      class: (_obj = {}, _obj[_vm.prefixCls + '-transfer'] = _vm.transfer, _obj),
      attrs: {
        "data-transfer": _vm.transfer
      }
    }, [_c('div', [_c('Caspanel', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !_vm.filterable || _vm.filterable && _vm.query === '',
        expression: "!filterable || (filterable && query === '')"
      }],
      ref: "caspanel",
      attrs: {
        "prefix-cls": _vm.prefixCls,
        "data": _vm.data,
        "disabled": _vm.disabled,
        "change-on-select": _vm.changeOnSelect,
        "trigger": _vm.trigger
      }
    }), _vm._v(" "), _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.filterable && _vm.query !== '' && _vm.querySelections.length,
        expression: "filterable && query !== '' && querySelections.length"
      }],
      class: [_vm.prefixCls + '-dropdown']
    }, [_c('ul', {
      class: [_vm.selectPrefixCls + '-dropdown-list']
    }, _vm._l(_vm.querySelections, function (item, index) {
      return _c('li', {
        class: [_vm.selectPrefixCls + '-item', (_obj = {}, _obj[_vm.selectPrefixCls + '-item-disabled'] = item.disabled, _obj)],
        domProps: {
          "innerHTML": _vm._s(item.display)
        },
        on: {
          "click": function click($event) {
            _vm.handleSelectItem(index);
          }
        }
      });
      var _obj;
    }))]), _vm._v(" "), _c('ul', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.filterable && _vm.query !== '' && !_vm.querySelections.length,
        expression: "filterable && query !== '' && !querySelections.length"
      }],
      class: [_vm.prefixCls + '-not-found-tip']
    }, [_c('li', [_vm._v(_vm._s(_vm.localeNotFoundText))])])], 1)])], 1)], 1);
    var _obj;
  }, staticRenderFns: [] };

/***/ }),
/* 253 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _checkbox = __webpack_require__(36);

var _checkbox2 = _interopRequireDefault(_checkbox);

var _checkboxGroup = __webpack_require__(88);

var _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);

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

_checkbox2.default.Group = _checkboxGroup2.default;
exports.default = _checkbox2.default;

/***/ }),
/* 254 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-checkbox';

exports.default = {
    name: 'Checkbox',
    mixins: [_emitter2.default],
    props: {
        disabled: {
            type: Boolean,
            default: false
        },
        value: {
            type: [String, Number, Boolean],
            default: false
        },
        trueValue: {
            type: [String, Number, Boolean],
            default: true
        },
        falseValue: {
            type: [String, Number, Boolean],
            default: false
        },
        label: {
            type: [String, Number, Boolean]
        },
        indeterminate: {
            type: Boolean,
            default: false
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        name: {
            type: String
        }
    },
    data: function data() {
        return {
            model: [],
            currentValue: this.value,
            group: false,
            showSlot: true,
            parent: (0, _assist.findComponentUpward)(this, 'CheckboxGroup')
        };
    },

    computed: {
        wrapClasses: function wrapClasses() {
            var _ref;

            return [prefixCls + '-wrapper', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-group-item', this.group), (0, _defineProperty3.default)(_ref, prefixCls + '-wrapper-checked', this.currentValue), (0, _defineProperty3.default)(_ref, prefixCls + '-wrapper-disabled', this.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), _ref)];
        },
        checkboxClasses: function checkboxClasses() {
            var _ref2;

            return ['' + prefixCls, (_ref2 = {}, (0, _defineProperty3.default)(_ref2, prefixCls + '-checked', this.currentValue), (0, _defineProperty3.default)(_ref2, prefixCls + '-disabled', this.disabled), (0, _defineProperty3.default)(_ref2, prefixCls + '-indeterminate', this.indeterminate), _ref2)];
        },
        innerClasses: function innerClasses() {
            return prefixCls + '-inner';
        },
        inputClasses: function inputClasses() {
            return prefixCls + '-input';
        }
    },
    mounted: function mounted() {
        this.parent = (0, _assist.findComponentUpward)(this, 'CheckboxGroup');
        if (this.parent) this.group = true;
        if (!this.group) {
            this.updateModel();
            this.showSlot = this.$slots.default !== undefined;
        } else {
            this.parent.updateModel(true);
        }
    },

    methods: {
        change: function change(event) {
            if (this.disabled) {
                return false;
            }

            var checked = event.target.checked;
            this.currentValue = checked;

            var value = checked ? this.trueValue : this.falseValue;
            this.$emit('input', value);

            if (this.group) {
                this.parent.change(this.model);
            } else {
                this.$emit('on-change', value);
                this.dispatch('FormItem', 'on-form-change', value);
            }
        },
        updateModel: function updateModel() {
            this.currentValue = this.value === this.trueValue;
        }
    },
    watch: {
        value: function value(val) {
            if (val !== this.trueValue && val !== this.falseValue) {
                throw 'Value should be trueValue or falseValue.';
            }
            this.updateModel();
        }
    }
};

/***/ }),
/* 255 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('label', {
      class: _vm.wrapClasses
    }, [_c('span', {
      class: _vm.checkboxClasses
    }, [_c('span', {
      class: _vm.innerClasses
    }), _vm._v(" "), _vm.group ? _c('input', {
      directives: [{
        name: "model",
        rawName: "v-model",
        value: _vm.model,
        expression: "model"
      }],
      class: _vm.inputClasses,
      attrs: {
        "type": "checkbox",
        "disabled": _vm.disabled,
        "name": _vm.name
      },
      domProps: {
        "value": _vm.label,
        "checked": Array.isArray(_vm.model) ? _vm._i(_vm.model, _vm.label) > -1 : _vm.model
      },
      on: {
        "change": _vm.change,
        "__c": function __c($event) {
          var $$a = _vm.model,
              $$el = $event.target,
              $$c = $$el.checked ? true : false;
          if (Array.isArray($$a)) {
            var $$v = _vm.label,
                $$i = _vm._i($$a, $$v);
            if ($$el.checked) {
              $$i < 0 && (_vm.model = $$a.concat([$$v]));
            } else {
              $$i > -1 && (_vm.model = $$a.slice(0, $$i).concat($$a.slice($$i + 1)));
            }
          } else {
            _vm.model = $$c;
          }
        }
      }
    }) : _vm._e(), _vm._v(" "), !_vm.group ? _c('input', {
      class: _vm.inputClasses,
      attrs: {
        "type": "checkbox",
        "disabled": _vm.disabled,
        "name": _vm.name
      },
      domProps: {
        "checked": _vm.currentValue
      },
      on: {
        "change": _vm.change
      }
    }) : _vm._e()]), _vm._v(" "), _vm._t("default", [_vm.showSlot ? _c('span', [_vm._v(_vm._s(_vm.label))]) : _vm._e()])], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 256 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-checkbox-group';

exports.default = {
    name: 'CheckboxGroup',
    mixins: [_emitter2.default],
    props: {
        value: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        }
    },
    data: function data() {
        return {
            currentValue: this.value,
            childrens: []
        };
    },

    computed: {
        classes: function classes() {
            return ['' + prefixCls, (0, _defineProperty3.default)({}, 'ivu-checkbox-' + this.size, !!this.size)];
        }
    },
    mounted: function mounted() {
        this.updateModel(true);
    },

    methods: {
        updateModel: function updateModel(update) {
            var value = this.value;
            this.childrens = (0, _assist.findComponentsDownward)(this, 'Checkbox');

            if (this.childrens) {
                this.childrens.forEach(function (child) {
                    child.model = value;

                    if (update) {
                        child.currentValue = value.indexOf(child.label) >= 0;
                        child.group = true;
                    }
                });
            }
        },
        change: function change(data) {
            this.currentValue = data;
            this.$emit('input', data);
            this.$emit('on-change', data);
            this.dispatch('FormItem', 'on-form-change', data);
        }
    },
    watch: {
        value: function value() {
            this.updateModel(true);
        }
    }
};

/***/ }),
/* 257 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 258 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _circle = __webpack_require__(259);

var _circle2 = _interopRequireDefault(_circle);

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

exports.default = _circle2.default;

/***/ }),
/* 259 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(260),
  /* template */
  __webpack_require__(261),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 260 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assist = __webpack_require__(2);

var prefixCls = 'ivu-chart-circle';

exports.default = {
    name: 'Circle',
    props: {
        percent: {
            type: Number,
            default: 0
        },
        size: {
            type: Number,
            default: 120
        },
        strokeWidth: {
            type: Number,
            default: 6
        },
        strokeColor: {
            type: String,
            default: '#2db7f5'
        },
        strokeLinecap: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['square', 'round']);
            },

            default: 'round'
        },
        trailWidth: {
            type: Number,
            default: 5
        },
        trailColor: {
            type: String,
            default: '#eaeef2'
        }
    },
    computed: {
        circleSize: function circleSize() {
            return {
                width: this.size + 'px',
                height: this.size + 'px'
            };
        },
        radius: function radius() {
            return 50 - this.strokeWidth / 2;
        },
        pathString: function pathString() {
            return 'M 50,50 m 0,-' + this.radius + '\n            a ' + this.radius + ',' + this.radius + ' 0 1 1 0,' + 2 * this.radius + '\n            a ' + this.radius + ',' + this.radius + ' 0 1 1 0,-' + 2 * this.radius;
        },
        len: function len() {
            return Math.PI * 2 * this.radius;
        },
        pathStyle: function pathStyle() {
            return {
                'stroke-dasharray': this.len + 'px ' + this.len + 'px',
                'stroke-dashoffset': (100 - this.percent) / 100 * this.len + 'px',
                'transition': 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease'
            };
        },
        wrapClasses: function wrapClasses() {
            return '' + prefixCls;
        },
        innerClasses: function innerClasses() {
            return prefixCls + '-inner';
        }
    }
};

/***/ }),
/* 261 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.wrapClasses,
      style: _vm.circleSize
    }, [_c('svg', {
      attrs: {
        "viewBox": "0 0 100 100"
      }
    }, [_c('path', {
      attrs: {
        "d": _vm.pathString,
        "stroke": _vm.trailColor,
        "stroke-width": _vm.trailWidth,
        "fill-opacity": 0
      }
    }), _vm._v(" "), _c('path', {
      style: _vm.pathStyle,
      attrs: {
        "d": _vm.pathString,
        "stroke-linecap": _vm.strokeLinecap,
        "stroke": _vm.strokeColor,
        "stroke-width": _vm.strokeWidth,
        "fill-opacity": "0"
      }
    })]), _vm._v(" "), _c('div', {
      class: _vm.innerClasses
    }, [_vm._t("default")], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 262 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _collapse = __webpack_require__(263);

var _collapse2 = _interopRequireDefault(_collapse);

var _panel = __webpack_require__(266);

var _panel2 = _interopRequireDefault(_panel);

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

_collapse2.default.Panel = _panel2.default;
exports.default = _collapse2.default;

/***/ }),
/* 263 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(264),
  /* template */
  __webpack_require__(265),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 264 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});


var prefixCls = 'ivu-collapse';

exports.default = {
    name: 'Collapse',
    props: {
        accordion: {
            type: Boolean,
            default: false
        },
        value: {
            type: [Array, String]
        }
    },
    data: function data() {
        return {
            currentValue: this.value
        };
    },

    computed: {
        classes: function classes() {
            return '' + prefixCls;
        }
    },
    mounted: function mounted() {
        this.setActive();
    },

    methods: {
        setActive: function setActive() {
            var activeKey = this.getActiveKey();

            this.$children.forEach(function (child, index) {
                var name = child.name || index.toString();
                var isActive = false;

                if (self.accordion) {
                    isActive = activeKey === name;
                } else {
                    isActive = activeKey.indexOf(name) > -1;
                }

                child.isActive = isActive;
                child.index = index;
            });
        },
        getActiveKey: function getActiveKey() {
            var activeKey = this.currentValue || [];
            var accordion = this.accordion;

            if (!Array.isArray(activeKey)) {
                activeKey = [activeKey];
            }

            if (accordion && activeKey.length > 1) {
                activeKey = [activeKey[0]];
            }

            for (var i = 0; i < activeKey.length; i++) {
                activeKey[i] = activeKey[i].toString();
            }

            return activeKey;
        },
        toggle: function toggle(data) {
            var name = data.name.toString();
            var newActiveKey = [];

            if (this.accordion) {
                if (!data.isActive) {
                    newActiveKey.push(name);
                }
            } else {
                var activeKey = this.getActiveKey();
                var nameIndex = activeKey.indexOf(name);

                if (data.isActive) {
                    if (nameIndex > -1) {
                        activeKey.splice(nameIndex, 1);
                    }
                } else {
                    if (nameIndex < 0) {
                        activeKey.push(name);
                    }
                }

                newActiveKey = activeKey;
            }

            this.currentValue = newActiveKey;
            this.$emit('input', newActiveKey);
            this.$emit('on-change', newActiveKey);
        }
    },
    watch: {
        value: function value(val) {
            this.currentValue = val;
        },
        currentValue: function currentValue() {
            this.setActive();
        }
    }
};

/***/ }),
/* 265 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 266 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(267),
  /* template */
  __webpack_require__(268),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 267 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _collapseTransition = __webpack_require__(62);

var _collapseTransition2 = _interopRequireDefault(_collapseTransition);

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

var prefixCls = 'ivu-collapse';

exports.default = {
    name: 'Panel',
    components: { Icon: _icon2.default, CollapseTransition: _collapseTransition2.default },
    props: {
        name: {
            type: String
        }
    },
    data: function data() {
        return {
            index: 0,
            isActive: false
        };
    },

    computed: {
        itemClasses: function itemClasses() {
            return [prefixCls + '-item', (0, _defineProperty3.default)({}, prefixCls + '-item-active', this.isActive)];
        },
        headerClasses: function headerClasses() {
            return prefixCls + '-header';
        },
        contentClasses: function contentClasses() {
            return prefixCls + '-content';
        },
        boxClasses: function boxClasses() {
            return prefixCls + '-content-box';
        }
    },
    methods: {
        toggle: function toggle() {
            this.$parent.toggle({
                name: this.name || this.index,
                isActive: this.isActive
            });
        }
    }
};

/***/ }),
/* 268 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.itemClasses
    }, [_c('div', {
      class: _vm.headerClasses,
      on: {
        "click": _vm.toggle
      }
    }, [_c('Icon', {
      attrs: {
        "type": "arrow-right-b"
      }
    }), _vm._v(" "), _vm._t("default")], 2), _vm._v(" "), _c('collapse-transition', [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.isActive,
        expression: "isActive"
      }],
      class: _vm.contentClasses
    }, [_c('div', {
      class: _vm.boxClasses
    }, [_vm._t("content")], 2)])])], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 269 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _colorPicker = __webpack_require__(270);

var _colorPicker2 = _interopRequireDefault(_colorPicker);

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

exports.default = _colorPicker2.default;

/***/ }),
/* 270 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(271),
  /* template */
  __webpack_require__(289),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 271 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _tinycolor = __webpack_require__(272);

var _tinycolor2 = _interopRequireDefault(_tinycolor);

var _clickoutside = __webpack_require__(26);

var _clickoutside2 = _interopRequireDefault(_clickoutside);

var _transferDom = __webpack_require__(16);

var _transferDom2 = _interopRequireDefault(_transferDom);

var _dropdown = __webpack_require__(25);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _recommendColors = __webpack_require__(273);

var _recommendColors2 = _interopRequireDefault(_recommendColors);

var _confirm = __webpack_require__(37);

var _confirm2 = _interopRequireDefault(_confirm);

var _saturation = __webpack_require__(278);

var _saturation2 = _interopRequireDefault(_saturation);

var _hue = __webpack_require__(283);

var _hue2 = _interopRequireDefault(_hue);

var _alpha = __webpack_require__(286);

var _alpha2 = _interopRequireDefault(_alpha);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-color-picker';
var inputPrefixCls = 'ivu-input';

function _colorChange(data, oldHue) {
    data = data === '' ? '#2d8cf0' : data;
    var alpha = data && data.a;
    var color = void 0;

    if (data && data.hsl) {
        color = (0, _tinycolor2.default)(data.hsl);
    } else if (data && data.hex && data.hex.length > 0) {
        color = (0, _tinycolor2.default)(data.hex);
    } else {
        color = (0, _tinycolor2.default)(data);
    }

    if (color && (color._a === undefined || color._a === null)) {
        color.setAlpha(alpha || 1);
    }

    var hsl = color.toHsl();
    var hsv = color.toHsv();

    if (hsl.s === 0) {
        hsv.h = hsl.h = data.h || data.hsl && data.hsl.h || oldHue || 0;
    }

    if (hsv.v < 0.0164) {
        hsv.h = data.h || data.hsv && data.hsv.h || 0;
        hsv.s = data.s || data.hsv && data.hsv.s || 0;
    }

    if (hsl.l < 0.01) {
        hsl.h = data.h || data.hsl && data.hsl.h || 0;
        hsl.s = data.s || data.hsl && data.hsl.s || 0;
    }

    return {
        hsl: hsl,
        hex: color.toHexString().toUpperCase(),
        rgba: color.toRgb(),
        hsv: hsv,
        oldHue: data.h || oldHue || hsl.h,
        source: data.source,
        a: data.a || color.getAlpha()
    };
}

exports.default = {
    name: 'ColorPicker',
    mixins: [_emitter2.default],
    components: { Drop: _dropdown2.default, Confirm: _confirm2.default, RecommendColors: _recommendColors2.default, Saturation: _saturation2.default, Hue: _hue2.default, Alpha: _alpha2.default },
    directives: { clickoutside: _clickoutside2.default, TransferDom: _transferDom2.default },
    props: {
        value: {
            type: String
        },
        alpha: {
            type: Boolean,
            default: false
        },
        recommend: {
            type: Boolean,
            default: false
        },
        format: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['hsl', 'hsv', 'hex', 'rgb']);
            }
        },
        colors: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        disabled: {
            type: Boolean,
            default: false
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            },

            default: 'default'
        },
        placement: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end']);
            },

            default: 'bottom'
        },
        transfer: {
            type: Boolean,
            default: false
        },
        name: {
            type: String
        }
    },
    data: function data() {
        return {
            val: _colorChange(this.value),
            currentValue: this.value,
            prefixCls: prefixCls,
            visible: false,
            disableCloseUnderTransfer: false,
            recommendedColor: ['#2d8cf0', '#19be6b', '#ff9900', '#ed3f14', '#00b5ff', '#19c919', '#f9e31c', '#ea1a1a', '#9b1dea', '#00c2b1', '#ac7a33', '#1d35ea', '#8bc34a', '#f16b62', '#ea4ca3', '#0d94aa', '#febd79', '#5d4037', '#00bcd4', '#f06292', '#cddc39', '#607d8b', '#000000', '#ffffff']
        };
    },

    computed: {
        transition: function transition() {
            if (this.placement === 'bottom-start' || this.placement === 'bottom' || this.placement === 'bottom-end') {
                return 'slide-up';
            } else {
                return 'fade';
            }
        },

        saturationColors: {
            get: function get() {
                return this.val;
            },
            set: function set(newVal) {
                this.val = newVal;
                this.$emit('on-active-change', this.formatColor);
            }
        },
        classes: function classes() {
            return ['' + prefixCls, (0, _defineProperty3.default)({}, prefixCls + '-transfer', this.transfer)];
        },
        wrapClasses: function wrapClasses() {
            return [prefixCls + '-rel', prefixCls + '-' + this.size, inputPrefixCls + '-wrapper', inputPrefixCls + '-wrapper-' + this.size];
        },
        inputClasses: function inputClasses() {
            return [prefixCls + '-input', '' + inputPrefixCls, inputPrefixCls + '-' + this.size, (0, _defineProperty3.default)({}, inputPrefixCls + '-disabled', this.disabled)];
        },
        displayedColor: function displayedColor() {
            var color = void 0;
            if (this.visible) {
                var rgba = this.saturationColors.rgba;
                color = {
                    r: rgba.r,
                    g: rgba.g,
                    b: rgba.b,
                    a: rgba.a
                };
            } else {
                color = (0, _tinycolor2.default)(this.value).toRgb();
            }
            return 'rgba(' + color.r + ', ' + color.g + ', ' + color.b + ', ' + color.a + ')';
        },
        formatColor: function formatColor() {
            var value = this.saturationColors;
            var format = this.format;
            var color = void 0;

            var rgba = 'rgba(' + value.rgba.r + ', ' + value.rgba.g + ', ' + value.rgba.b + ', ' + value.rgba.a + ')';
            if (format) {
                if (format === 'hsl') {
                    color = (0, _tinycolor2.default)(value.hsl).toHslString();
                } else if (format === 'hsv') {
                    color = (0, _tinycolor2.default)(value.hsv).toHsvString();
                } else if (format === 'hex') {
                    color = value.hex;
                } else if (format === 'rgb') {
                    color = rgba;
                }
            } else if (this.alpha) {
                color = rgba;
            } else {
                color = value.hex;
            }
            return color;
        }
    },
    watch: {
        value: function value(newVal) {
            this.val = _colorChange(newVal);
        },
        visible: function visible(val) {
            this.val = _colorChange(this.value);
            if (val) {
                this.$refs.drop.update();
            } else {
                this.$refs.drop.destroy();
            }
        }
    },
    methods: {
        handleTransferClick: function handleTransferClick() {
            if (this.transfer) this.disableCloseUnderTransfer = true;
        },
        handleClose: function handleClose() {
            if (this.disableCloseUnderTransfer) {
                this.disableCloseUnderTransfer = false;
                return false;
            }
            this.visible = false;
        },
        toggleVisible: function toggleVisible() {
            this.visible = !this.visible;
        },
        childChange: function childChange(data) {
            this.colorChange(data);
        },
        colorChange: function colorChange(data, oldHue) {
            this.oldHue = this.saturationColors.hsl.h;
            this.saturationColors = _colorChange(data, oldHue || this.oldHue);
        },
        isValidHex: function isValidHex(hex) {
            return (0, _tinycolor2.default)(hex).isValid();
        },
        simpleCheckForValidColor: function simpleCheckForValidColor(data) {
            var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];
            var checked = 0;
            var passed = 0;

            for (var i = 0; i < keysToCheck.length; i++) {
                var letter = keysToCheck[i];
                if (data[letter]) {
                    checked++;
                    if (!isNaN(data[letter])) {
                        passed++;
                    }
                }
            }

            if (checked === passed) {
                return data;
            }
        },
        handleSuccess: function handleSuccess() {
            var color = this.formatColor;
            this.currentValue = color;
            this.$emit('input', color);
            this.$emit('on-change', color);
            this.dispatch('FormItem', 'on-form-change', color);
            this.handleClose();
        },
        handleClear: function handleClear() {
            this.currentValue = '';
            this.$emit('input', '');
            this.$emit('on-change', '');
            this.dispatch('FormItem', 'on-form-change', '');
            this.handleClose();
        },
        handleSelectColor: function handleSelectColor(color) {
            this.val = _colorChange(color);
        }
    }
};

/***/ }),
/* 272 */
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1
// https://github.com/bgrins/TinyColor
// Brian Grinstead, MIT License

(function(Math) {

var trimLeft = /^\s+/,
    trimRight = /\s+$/,
    tinyCounter = 0,
    mathRound = Math.round,
    mathMin = Math.min,
    mathMax = Math.max,
    mathRandom = Math.random;

function tinycolor (color, opts) {

    color = (color) ? color : '';
    opts = opts || { };

    // If input is already a tinycolor, return itself
    if (color instanceof tinycolor) {
       return color;
    }
    // If we are called as a function, call using new instead
    if (!(this instanceof tinycolor)) {
        return new tinycolor(color, opts);
    }

    var rgb = inputToRGB(color);
    this._originalInput = color,
    this._r = rgb.r,
    this._g = rgb.g,
    this._b = rgb.b,
    this._a = rgb.a,
    this._roundA = mathRound(100*this._a) / 100,
    this._format = opts.format || rgb.format;
    this._gradientType = opts.gradientType;

    // Don't let the range of [0,255] come back in [0,1].
    // Potentially lose a little bit of precision here, but will fix issues where
    // .5 gets interpreted as half of the total, instead of half of 1
    // If it was supposed to be 128, this was already taken care of by `inputToRgb`
    if (this._r < 1) { this._r = mathRound(this._r); }
    if (this._g < 1) { this._g = mathRound(this._g); }
    if (this._b < 1) { this._b = mathRound(this._b); }

    this._ok = rgb.ok;
    this._tc_id = tinyCounter++;
}

tinycolor.prototype = {
    isDark: function() {
        return this.getBrightness() < 128;
    },
    isLight: function() {
        return !this.isDark();
    },
    isValid: function() {
        return this._ok;
    },
    getOriginalInput: function() {
      return this._originalInput;
    },
    getFormat: function() {
        return this._format;
    },
    getAlpha: function() {
        return this._a;
    },
    getBrightness: function() {
        //http://www.w3.org/TR/AERT#color-contrast
        var rgb = this.toRgb();
        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
    },
    getLuminance: function() {
        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
        var rgb = this.toRgb();
        var RsRGB, GsRGB, BsRGB, R, G, B;
        RsRGB = rgb.r/255;
        GsRGB = rgb.g/255;
        BsRGB = rgb.b/255;

        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}
        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}
        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}
        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);
    },
    setAlpha: function(value) {
        this._a = boundAlpha(value);
        this._roundA = mathRound(100*this._a) / 100;
        return this;
    },
    toHsv: function() {
        var hsv = rgbToHsv(this._r, this._g, this._b);
        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
    },
    toHsvString: function() {
        var hsv = rgbToHsv(this._r, this._g, this._b);
        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
        return (this._a == 1) ?
          "hsv("  + h + ", " + s + "%, " + v + "%)" :
          "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
    },
    toHsl: function() {
        var hsl = rgbToHsl(this._r, this._g, this._b);
        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
    },
    toHslString: function() {
        var hsl = rgbToHsl(this._r, this._g, this._b);
        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
        return (this._a == 1) ?
          "hsl("  + h + ", " + s + "%, " + l + "%)" :
          "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
    },
    toHex: function(allow3Char) {
        return rgbToHex(this._r, this._g, this._b, allow3Char);
    },
    toHexString: function(allow3Char) {
        return '#' + this.toHex(allow3Char);
    },
    toHex8: function(allow4Char) {
        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);
    },
    toHex8String: function(allow4Char) {
        return '#' + this.toHex8(allow4Char);
    },
    toRgb: function() {
        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
    },
    toRgbString: function() {
        return (this._a == 1) ?
          "rgb("  + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
          "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
    },
    toPercentageRgb: function() {
        return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
    },
    toPercentageRgbString: function() {
        return (this._a == 1) ?
          "rgb("  + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
          "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
    },
    toName: function() {
        if (this._a === 0) {
            return "transparent";
        }

        if (this._a < 1) {
            return false;
        }

        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
    },
    toFilter: function(secondColor) {
        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);
        var secondHex8String = hex8String;
        var gradientType = this._gradientType ? "GradientType = 1, " : "";

        if (secondColor) {
            var s = tinycolor(secondColor);
            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);
        }

        return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
    },
    toString: function(format) {
        var formatSet = !!format;
        format = format || this._format;

        var formattedString = false;
        var hasAlpha = this._a < 1 && this._a >= 0;
        var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name");

        if (needsAlphaFormat) {
            // Special case for "transparent", all other non-alpha formats
            // will return rgba when there is transparency.
            if (format === "name" && this._a === 0) {
                return this.toName();
            }
            return this.toRgbString();
        }
        if (format === "rgb") {
            formattedString = this.toRgbString();
        }
        if (format === "prgb") {
            formattedString = this.toPercentageRgbString();
        }
        if (format === "hex" || format === "hex6") {
            formattedString = this.toHexString();
        }
        if (format === "hex3") {
            formattedString = this.toHexString(true);
        }
        if (format === "hex4") {
            formattedString = this.toHex8String(true);
        }
        if (format === "hex8") {
            formattedString = this.toHex8String();
        }
        if (format === "name") {
            formattedString = this.toName();
        }
        if (format === "hsl") {
            formattedString = this.toHslString();
        }
        if (format === "hsv") {
            formattedString = this.toHsvString();
        }

        return formattedString || this.toHexString();
    },
    clone: function() {
        return tinycolor(this.toString());
    },

    _applyModification: function(fn, args) {
        var color = fn.apply(null, [this].concat([].slice.call(args)));
        this._r = color._r;
        this._g = color._g;
        this._b = color._b;
        this.setAlpha(color._a);
        return this;
    },
    lighten: function() {
        return this._applyModification(lighten, arguments);
    },
    brighten: function() {
        return this._applyModification(brighten, arguments);
    },
    darken: function() {
        return this._applyModification(darken, arguments);
    },
    desaturate: function() {
        return this._applyModification(desaturate, arguments);
    },
    saturate: function() {
        return this._applyModification(saturate, arguments);
    },
    greyscale: function() {
        return this._applyModification(greyscale, arguments);
    },
    spin: function() {
        return this._applyModification(spin, arguments);
    },

    _applyCombination: function(fn, args) {
        return fn.apply(null, [this].concat([].slice.call(args)));
    },
    analogous: function() {
        return this._applyCombination(analogous, arguments);
    },
    complement: function() {
        return this._applyCombination(complement, arguments);
    },
    monochromatic: function() {
        return this._applyCombination(monochromatic, arguments);
    },
    splitcomplement: function() {
        return this._applyCombination(splitcomplement, arguments);
    },
    triad: function() {
        return this._applyCombination(triad, arguments);
    },
    tetrad: function() {
        return this._applyCombination(tetrad, arguments);
    }
};

// If input is an object, force 1 into "1.0" to handle ratios properly
// String input requires "1.0" as input, so 1 will be treated as 1
tinycolor.fromRatio = function(color, opts) {
    if (typeof color == "object") {
        var newColor = {};
        for (var i in color) {
            if (color.hasOwnProperty(i)) {
                if (i === "a") {
                    newColor[i] = color[i];
                }
                else {
                    newColor[i] = convertToPercentage(color[i]);
                }
            }
        }
        color = newColor;
    }

    return tinycolor(color, opts);
};

// Given a string or object, convert that input to RGB
// Possible string inputs:
//
//     "red"
//     "#f00" or "f00"
//     "#ff0000" or "ff0000"
//     "#ff000000" or "ff000000"
//     "rgb 255 0 0" or "rgb (255, 0, 0)"
//     "rgb 1.0 0 0" or "rgb (1, 0, 0)"
//     "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
//     "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
//     "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
//     "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
//     "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
//
function inputToRGB(color) {

    var rgb = { r: 0, g: 0, b: 0 };
    var a = 1;
    var s = null;
    var v = null;
    var l = null;
    var ok = false;
    var format = false;

    if (typeof color == "string") {
        color = stringInputToObject(color);
    }

    if (typeof color == "object") {
        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
            rgb = rgbToRgb(color.r, color.g, color.b);
            ok = true;
            format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
        }
        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
            s = convertToPercentage(color.s);
            v = convertToPercentage(color.v);
            rgb = hsvToRgb(color.h, s, v);
            ok = true;
            format = "hsv";
        }
        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
            s = convertToPercentage(color.s);
            l = convertToPercentage(color.l);
            rgb = hslToRgb(color.h, s, l);
            ok = true;
            format = "hsl";
        }

        if (color.hasOwnProperty("a")) {
            a = color.a;
        }
    }

    a = boundAlpha(a);

    return {
        ok: ok,
        format: color.format || format,
        r: mathMin(255, mathMax(rgb.r, 0)),
        g: mathMin(255, mathMax(rgb.g, 0)),
        b: mathMin(255, mathMax(rgb.b, 0)),
        a: a
    };
}


// Conversion Functions
// --------------------

// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>

// `rgbToRgb`
// Handle bounds / percentage checking to conform to CSS color spec
// <http://www.w3.org/TR/css3-color/>
// *Assumes:* r, g, b in [0, 255] or [0, 1]
// *Returns:* { r, g, b } in [0, 255]
function rgbToRgb(r, g, b){
    return {
        r: bound01(r, 255) * 255,
        g: bound01(g, 255) * 255,
        b: bound01(b, 255) * 255
    };
}

// `rgbToHsl`
// Converts an RGB color value to HSL.
// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
// *Returns:* { h, s, l } in [0,1]
function rgbToHsl(r, g, b) {

    r = bound01(r, 255);
    g = bound01(g, 255);
    b = bound01(b, 255);

    var max = mathMax(r, g, b), min = mathMin(r, g, b);
    var h, s, l = (max + min) / 2;

    if(max == min) {
        h = s = 0; // achromatic
    }
    else {
        var d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
        switch(max) {
            case r: h = (g - b) / d + (g < b ? 6 : 0); break;
            case g: h = (b - r) / d + 2; break;
            case b: h = (r - g) / d + 4; break;
        }

        h /= 6;
    }

    return { h: h, s: s, l: l };
}

// `hslToRgb`
// Converts an HSL color value to RGB.
// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
// *Returns:* { r, g, b } in the set [0, 255]
function hslToRgb(h, s, l) {
    var r, g, b;

    h = bound01(h, 360);
    s = bound01(s, 100);
    l = bound01(l, 100);

    function hue2rgb(p, q, t) {
        if(t < 0) t += 1;
        if(t > 1) t -= 1;
        if(t < 1/6) return p + (q - p) * 6 * t;
        if(t < 1/2) return q;
        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
        return p;
    }

    if(s === 0) {
        r = g = b = l; // achromatic
    }
    else {
        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
        var p = 2 * l - q;
        r = hue2rgb(p, q, h + 1/3);
        g = hue2rgb(p, q, h);
        b = hue2rgb(p, q, h - 1/3);
    }

    return { r: r * 255, g: g * 255, b: b * 255 };
}

// `rgbToHsv`
// Converts an RGB color value to HSV
// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
// *Returns:* { h, s, v } in [0,1]
function rgbToHsv(r, g, b) {

    r = bound01(r, 255);
    g = bound01(g, 255);
    b = bound01(b, 255);

    var max = mathMax(r, g, b), min = mathMin(r, g, b);
    var h, s, v = max;

    var d = max - min;
    s = max === 0 ? 0 : d / max;

    if(max == min) {
        h = 0; // achromatic
    }
    else {
        switch(max) {
            case r: h = (g - b) / d + (g < b ? 6 : 0); break;
            case g: h = (b - r) / d + 2; break;
            case b: h = (r - g) / d + 4; break;
        }
        h /= 6;
    }
    return { h: h, s: s, v: v };
}

// `hsvToRgb`
// Converts an HSV color value to RGB.
// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
// *Returns:* { r, g, b } in the set [0, 255]
 function hsvToRgb(h, s, v) {

    h = bound01(h, 360) * 6;
    s = bound01(s, 100);
    v = bound01(v, 100);

    var i = Math.floor(h),
        f = h - i,
        p = v * (1 - s),
        q = v * (1 - f * s),
        t = v * (1 - (1 - f) * s),
        mod = i % 6,
        r = [v, q, p, p, t, v][mod],
        g = [t, v, v, q, p, p][mod],
        b = [p, p, t, v, v, q][mod];

    return { r: r * 255, g: g * 255, b: b * 255 };
}

// `rgbToHex`
// Converts an RGB color to hex
// Assumes r, g, and b are contained in the set [0, 255]
// Returns a 3 or 6 character hex
function rgbToHex(r, g, b, allow3Char) {

    var hex = [
        pad2(mathRound(r).toString(16)),
        pad2(mathRound(g).toString(16)),
        pad2(mathRound(b).toString(16))
    ];

    // Return a 3 character hex if possible
    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
    }

    return hex.join("");
}

// `rgbaToHex`
// Converts an RGBA color plus alpha transparency to hex
// Assumes r, g, b are contained in the set [0, 255] and
// a in [0, 1]. Returns a 4 or 8 character rgba hex
function rgbaToHex(r, g, b, a, allow4Char) {

    var hex = [
        pad2(mathRound(r).toString(16)),
        pad2(mathRound(g).toString(16)),
        pad2(mathRound(b).toString(16)),
        pad2(convertDecimalToHex(a))
    ];

    // Return a 4 character hex if possible
    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {
        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
    }

    return hex.join("");
}

// `rgbaToArgbHex`
// Converts an RGBA color to an ARGB Hex8 string
// Rarely used, but required for "toFilter()"
function rgbaToArgbHex(r, g, b, a) {

    var hex = [
        pad2(convertDecimalToHex(a)),
        pad2(mathRound(r).toString(16)),
        pad2(mathRound(g).toString(16)),
        pad2(mathRound(b).toString(16))
    ];

    return hex.join("");
}

// `equals`
// Can be called with any tinycolor input
tinycolor.equals = function (color1, color2) {
    if (!color1 || !color2) { return false; }
    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
};

tinycolor.random = function() {
    return tinycolor.fromRatio({
        r: mathRandom(),
        g: mathRandom(),
        b: mathRandom()
    });
};


// Modification Functions
// ----------------------
// Thanks to less.js for some of the basics here
// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>

function desaturate(color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var hsl = tinycolor(color).toHsl();
    hsl.s -= amount / 100;
    hsl.s = clamp01(hsl.s);
    return tinycolor(hsl);
}

function saturate(color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var hsl = tinycolor(color).toHsl();
    hsl.s += amount / 100;
    hsl.s = clamp01(hsl.s);
    return tinycolor(hsl);
}

function greyscale(color) {
    return tinycolor(color).desaturate(100);
}

function lighten (color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var hsl = tinycolor(color).toHsl();
    hsl.l += amount / 100;
    hsl.l = clamp01(hsl.l);
    return tinycolor(hsl);
}

function brighten(color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var rgb = tinycolor(color).toRgb();
    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
    return tinycolor(rgb);
}

function darken (color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var hsl = tinycolor(color).toHsl();
    hsl.l -= amount / 100;
    hsl.l = clamp01(hsl.l);
    return tinycolor(hsl);
}

// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
// Values outside of this range will be wrapped into this range.
function spin(color, amount) {
    var hsl = tinycolor(color).toHsl();
    var hue = (hsl.h + amount) % 360;
    hsl.h = hue < 0 ? 360 + hue : hue;
    return tinycolor(hsl);
}

// Combination Functions
// ---------------------
// Thanks to jQuery xColor for some of the ideas behind these
// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>

function complement(color) {
    var hsl = tinycolor(color).toHsl();
    hsl.h = (hsl.h + 180) % 360;
    return tinycolor(hsl);
}

function triad(color) {
    var hsl = tinycolor(color).toHsl();
    var h = hsl.h;
    return [
        tinycolor(color),
        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
    ];
}

function tetrad(color) {
    var hsl = tinycolor(color).toHsl();
    var h = hsl.h;
    return [
        tinycolor(color),
        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
    ];
}

function splitcomplement(color) {
    var hsl = tinycolor(color).toHsl();
    var h = hsl.h;
    return [
        tinycolor(color),
        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
    ];
}

function analogous(color, results, slices) {
    results = results || 6;
    slices = slices || 30;

    var hsl = tinycolor(color).toHsl();
    var part = 360 / slices;
    var ret = [tinycolor(color)];

    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
        hsl.h = (hsl.h + part) % 360;
        ret.push(tinycolor(hsl));
    }
    return ret;
}

function monochromatic(color, results) {
    results = results || 6;
    var hsv = tinycolor(color).toHsv();
    var h = hsv.h, s = hsv.s, v = hsv.v;
    var ret = [];
    var modification = 1 / results;

    while (results--) {
        ret.push(tinycolor({ h: h, s: s, v: v}));
        v = (v + modification) % 1;
    }

    return ret;
}

// Utility Functions
// ---------------------

tinycolor.mix = function(color1, color2, amount) {
    amount = (amount === 0) ? 0 : (amount || 50);

    var rgb1 = tinycolor(color1).toRgb();
    var rgb2 = tinycolor(color2).toRgb();

    var p = amount / 100;

    var rgba = {
        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,
        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,
        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,
        a: ((rgb2.a - rgb1.a) * p) + rgb1.a
    };

    return tinycolor(rgba);
};


// Readability Functions
// ---------------------
// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)

// `contrast`
// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)
tinycolor.readability = function(color1, color2) {
    var c1 = tinycolor(color1);
    var c2 = tinycolor(color2);
    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);
};

// `isReadable`
// Ensure that foreground and background color combinations meet WCAG2 guidelines.
// The third argument is an optional Object.
//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';
//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.
// If the entire object is absent, isReadable defaults to {level:"AA",size:"small"}.

// *Example*
//    tinycolor.isReadable("#000", "#111") => false
//    tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false
tinycolor.isReadable = function(color1, color2, wcag2) {
    var readability = tinycolor.readability(color1, color2);
    var wcag2Parms, out;

    out = false;

    wcag2Parms = validateWCAG2Parms(wcag2);
    switch (wcag2Parms.level + wcag2Parms.size) {
        case "AAsmall":
        case "AAAlarge":
            out = readability >= 4.5;
            break;
        case "AAlarge":
            out = readability >= 3;
            break;
        case "AAAsmall":
            out = readability >= 7;
            break;
    }
    return out;

};

// `mostReadable`
// Given a base color and a list of possible foreground or background
// colors for that base, returns the most readable color.
// Optionally returns Black or White if the most readable color is unreadable.
// *Example*
//    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255"
//    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString();  // "#ffffff"
//    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3"
//    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff"
tinycolor.mostReadable = function(baseColor, colorList, args) {
    var bestColor = null;
    var bestScore = 0;
    var readability;
    var includeFallbackColors, level, size ;
    args = args || {};
    includeFallbackColors = args.includeFallbackColors ;
    level = args.level;
    size = args.size;

    for (var i= 0; i < colorList.length ; i++) {
        readability = tinycolor.readability(baseColor, colorList[i]);
        if (readability > bestScore) {
            bestScore = readability;
            bestColor = tinycolor(colorList[i]);
        }
    }

    if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) {
        return bestColor;
    }
    else {
        args.includeFallbackColors=false;
        return tinycolor.mostReadable(baseColor,["#fff", "#000"],args);
    }
};


// Big List of Colors
// ------------------
// <http://www.w3.org/TR/css3-color/#svg-color>
var names = tinycolor.names = {
    aliceblue: "f0f8ff",
    antiquewhite: "faebd7",
    aqua: "0ff",
    aquamarine: "7fffd4",
    azure: "f0ffff",
    beige: "f5f5dc",
    bisque: "ffe4c4",
    black: "000",
    blanchedalmond: "ffebcd",
    blue: "00f",
    blueviolet: "8a2be2",
    brown: "a52a2a",
    burlywood: "deb887",
    burntsienna: "ea7e5d",
    cadetblue: "5f9ea0",
    chartreuse: "7fff00",
    chocolate: "d2691e",
    coral: "ff7f50",
    cornflowerblue: "6495ed",
    cornsilk: "fff8dc",
    crimson: "dc143c",
    cyan: "0ff",
    darkblue: "00008b",
    darkcyan: "008b8b",
    darkgoldenrod: "b8860b",
    darkgray: "a9a9a9",
    darkgreen: "006400",
    darkgrey: "a9a9a9",
    darkkhaki: "bdb76b",
    darkmagenta: "8b008b",
    darkolivegreen: "556b2f",
    darkorange: "ff8c00",
    darkorchid: "9932cc",
    darkred: "8b0000",
    darksalmon: "e9967a",
    darkseagreen: "8fbc8f",
    darkslateblue: "483d8b",
    darkslategray: "2f4f4f",
    darkslategrey: "2f4f4f",
    darkturquoise: "00ced1",
    darkviolet: "9400d3",
    deeppink: "ff1493",
    deepskyblue: "00bfff",
    dimgray: "696969",
    dimgrey: "696969",
    dodgerblue: "1e90ff",
    firebrick: "b22222",
    floralwhite: "fffaf0",
    forestgreen: "228b22",
    fuchsia: "f0f",
    gainsboro: "dcdcdc",
    ghostwhite: "f8f8ff",
    gold: "ffd700",
    goldenrod: "daa520",
    gray: "808080",
    green: "008000",
    greenyellow: "adff2f",
    grey: "808080",
    honeydew: "f0fff0",
    hotpink: "ff69b4",
    indianred: "cd5c5c",
    indigo: "4b0082",
    ivory: "fffff0",
    khaki: "f0e68c",
    lavender: "e6e6fa",
    lavenderblush: "fff0f5",
    lawngreen: "7cfc00",
    lemonchiffon: "fffacd",
    lightblue: "add8e6",
    lightcoral: "f08080",
    lightcyan: "e0ffff",
    lightgoldenrodyellow: "fafad2",
    lightgray: "d3d3d3",
    lightgreen: "90ee90",
    lightgrey: "d3d3d3",
    lightpink: "ffb6c1",
    lightsalmon: "ffa07a",
    lightseagreen: "20b2aa",
    lightskyblue: "87cefa",
    lightslategray: "789",
    lightslategrey: "789",
    lightsteelblue: "b0c4de",
    lightyellow: "ffffe0",
    lime: "0f0",
    limegreen: "32cd32",
    linen: "faf0e6",
    magenta: "f0f",
    maroon: "800000",
    mediumaquamarine: "66cdaa",
    mediumblue: "0000cd",
    mediumorchid: "ba55d3",
    mediumpurple: "9370db",
    mediumseagreen: "3cb371",
    mediumslateblue: "7b68ee",
    mediumspringgreen: "00fa9a",
    mediumturquoise: "48d1cc",
    mediumvioletred: "c71585",
    midnightblue: "191970",
    mintcream: "f5fffa",
    mistyrose: "ffe4e1",
    moccasin: "ffe4b5",
    navajowhite: "ffdead",
    navy: "000080",
    oldlace: "fdf5e6",
    olive: "808000",
    olivedrab: "6b8e23",
    orange: "ffa500",
    orangered: "ff4500",
    orchid: "da70d6",
    palegoldenrod: "eee8aa",
    palegreen: "98fb98",
    paleturquoise: "afeeee",
    palevioletred: "db7093",
    papayawhip: "ffefd5",
    peachpuff: "ffdab9",
    peru: "cd853f",
    pink: "ffc0cb",
    plum: "dda0dd",
    powderblue: "b0e0e6",
    purple: "800080",
    rebeccapurple: "663399",
    red: "f00",
    rosybrown: "bc8f8f",
    royalblue: "4169e1",
    saddlebrown: "8b4513",
    salmon: "fa8072",
    sandybrown: "f4a460",
    seagreen: "2e8b57",
    seashell: "fff5ee",
    sienna: "a0522d",
    silver: "c0c0c0",
    skyblue: "87ceeb",
    slateblue: "6a5acd",
    slategray: "708090",
    slategrey: "708090",
    snow: "fffafa",
    springgreen: "00ff7f",
    steelblue: "4682b4",
    tan: "d2b48c",
    teal: "008080",
    thistle: "d8bfd8",
    tomato: "ff6347",
    turquoise: "40e0d0",
    violet: "ee82ee",
    wheat: "f5deb3",
    white: "fff",
    whitesmoke: "f5f5f5",
    yellow: "ff0",
    yellowgreen: "9acd32"
};

// Make it easy to access colors via `hexNames[hex]`
var hexNames = tinycolor.hexNames = flip(names);


// Utilities
// ---------

// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
function flip(o) {
    var flipped = { };
    for (var i in o) {
        if (o.hasOwnProperty(i)) {
            flipped[o[i]] = i;
        }
    }
    return flipped;
}

// Return a valid alpha value [0,1] with all invalid values being set to 1
function boundAlpha(a) {
    a = parseFloat(a);

    if (isNaN(a) || a < 0 || a > 1) {
        a = 1;
    }

    return a;
}

// Take input from [0, n] and return it as [0, 1]
function bound01(n, max) {
    if (isOnePointZero(n)) { n = "100%"; }

    var processPercent = isPercentage(n);
    n = mathMin(max, mathMax(0, parseFloat(n)));

    // Automatically convert percentage into number
    if (processPercent) {
        n = parseInt(n * max, 10) / 100;
    }

    // Handle floating point rounding errors
    if ((Math.abs(n - max) < 0.000001)) {
        return 1;
    }

    // Convert into [0, 1] range if it isn't already
    return (n % max) / parseFloat(max);
}

// Force a number between 0 and 1
function clamp01(val) {
    return mathMin(1, mathMax(0, val));
}

// Parse a base-16 hex value into a base-10 integer
function parseIntFromHex(val) {
    return parseInt(val, 16);
}

// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
function isOnePointZero(n) {
    return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
}

// Check to see if string passed in is a percentage
function isPercentage(n) {
    return typeof n === "string" && n.indexOf('%') != -1;
}

// Force a hex value to have 2 characters
function pad2(c) {
    return c.length == 1 ? '0' + c : '' + c;
}

// Replace a decimal with it's percentage value
function convertToPercentage(n) {
    if (n <= 1) {
        n = (n * 100) + "%";
    }

    return n;
}

// Converts a decimal to a hex value
function convertDecimalToHex(d) {
    return Math.round(parseFloat(d) * 255).toString(16);
}
// Converts a hex value to a decimal
function convertHexToDecimal(h) {
    return (parseIntFromHex(h) / 255);
}

var matchers = (function() {

    // <http://www.w3.org/TR/css3-values/#integers>
    var CSS_INTEGER = "[-\\+]?\\d+%?";

    // <http://www.w3.org/TR/css3-values/#number-value>
    var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";

    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
    var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";

    // Actual matching.
    // Parentheses and commas are optional, but not required.
    // Whitespace can take the place of commas or opening paren
    var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
    var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";

    return {
        CSS_UNIT: new RegExp(CSS_UNIT),
        rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
        rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
        hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
        hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
        hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
        hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
    };
})();

// `isValidCSSUnit`
// Take in a single string / number and check to see if it looks like a CSS unit
// (see `matchers` above for definition).
function isValidCSSUnit(color) {
    return !!matchers.CSS_UNIT.exec(color);
}

// `stringInputToObject`
// Permissive string parsing.  Take in a number of formats, and output an object
// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
function stringInputToObject(color) {

    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
    var named = false;
    if (names[color]) {
        color = names[color];
        named = true;
    }
    else if (color == 'transparent') {
        return { r: 0, g: 0, b: 0, a: 0, format: "name" };
    }

    // Try to match string input using regular expressions.
    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
    // Just return an object and let the conversion functions handle that.
    // This way the result will be the same whether the tinycolor is initialized with string or object.
    var match;
    if ((match = matchers.rgb.exec(color))) {
        return { r: match[1], g: match[2], b: match[3] };
    }
    if ((match = matchers.rgba.exec(color))) {
        return { r: match[1], g: match[2], b: match[3], a: match[4] };
    }
    if ((match = matchers.hsl.exec(color))) {
        return { h: match[1], s: match[2], l: match[3] };
    }
    if ((match = matchers.hsla.exec(color))) {
        return { h: match[1], s: match[2], l: match[3], a: match[4] };
    }
    if ((match = matchers.hsv.exec(color))) {
        return { h: match[1], s: match[2], v: match[3] };
    }
    if ((match = matchers.hsva.exec(color))) {
        return { h: match[1], s: match[2], v: match[3], a: match[4] };
    }
    if ((match = matchers.hex8.exec(color))) {
        return {
            r: parseIntFromHex(match[1]),
            g: parseIntFromHex(match[2]),
            b: parseIntFromHex(match[3]),
            a: convertHexToDecimal(match[4]),
            format: named ? "name" : "hex8"
        };
    }
    if ((match = matchers.hex6.exec(color))) {
        return {
            r: parseIntFromHex(match[1]),
            g: parseIntFromHex(match[2]),
            b: parseIntFromHex(match[3]),
            format: named ? "name" : "hex"
        };
    }
    if ((match = matchers.hex4.exec(color))) {
        return {
            r: parseIntFromHex(match[1] + '' + match[1]),
            g: parseIntFromHex(match[2] + '' + match[2]),
            b: parseIntFromHex(match[3] + '' + match[3]),
            a: convertHexToDecimal(match[4] + '' + match[4]),
            format: named ? "name" : "hex8"
        };
    }
    if ((match = matchers.hex3.exec(color))) {
        return {
            r: parseIntFromHex(match[1] + '' + match[1]),
            g: parseIntFromHex(match[2] + '' + match[2]),
            b: parseIntFromHex(match[3] + '' + match[3]),
            format: named ? "name" : "hex"
        };
    }

    return false;
}

function validateWCAG2Parms(parms) {
    // return valid WCAG2 parms for isReadable.
    // If input parms are invalid, return {"level":"AA", "size":"small"}
    var level, size;
    parms = parms || {"level":"AA", "size":"small"};
    level = (parms.level || "AA").toUpperCase();
    size = (parms.size || "small").toLowerCase();
    if (level !== "AA" && level !== "AAA") {
        level = "AA";
    }
    if (size !== "small" && size !== "large") {
        size = "small";
    }
    return {"level":level, "size":size};
}

// Node: Export function
if (typeof module !== "undefined" && module.exports) {
    module.exports = tinycolor;
}
// AMD/requirejs: Define the module
else if (true) {
    !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {return tinycolor;}.call(exports, __webpack_require__, exports, module),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
}
// Browser: Expose to window
else {
    window.tinycolor = tinycolor;
}

})(Math);


/***/ }),
/* 273 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(274),
  /* template */
  __webpack_require__(275),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 274 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    props: {
        list: Array
    },
    methods: {
        handleClick: function handleClick(index) {
            this.$emit('picker-color', this.list[index]);
        }
    }
};

/***/ }),
/* 275 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', [_vm._l(_vm.list, function (item, index) {
      return [_c('span', {
        on: {
          "click": function click($event) {
            _vm.handleClick(index);
          }
        }
      }, [_c('em', {
        style: {
          'background': item
        }
      })]), _vm._v(" "), (index + 1) % 12 === 0 && index !== 0 && index + 1 !== _vm.list.length ? _c('br') : _vm._e()];
    })], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 276 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _button = __webpack_require__(20);

var _button2 = _interopRequireDefault(_button);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-picker';

exports.default = {
    mixins: [_locale2.default],
    components: { iButton: _button2.default },
    props: {
        showTime: false,
        isTime: false,
        timeDisabled: false
    },
    data: function data() {
        return {
            prefixCls: prefixCls
        };
    },

    computed: {
        timeClasses: function timeClasses() {
            return (0, _defineProperty3.default)({}, prefixCls + '-confirm-time-disabled', this.timeDisabled);
        }
    },
    methods: {
        handleClear: function handleClear() {
            this.$emit('on-pick-clear');
        },
        handleSuccess: function handleSuccess() {
            this.$emit('on-pick-success');
        },
        handleToggleTime: function handleToggleTime() {
            if (this.timeDisabled) return;
            this.$emit('on-pick-toggle-time');
        }
    }
};

/***/ }),
/* 277 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: [_vm.prefixCls + '-confirm']
    }, [_vm.showTime ? _c('span', {
      class: _vm.timeClasses,
      on: {
        "click": _vm.handleToggleTime
      }
    }, [_vm.isTime ? [_vm._v(_vm._s(_vm.t('i.datepicker.selectDate')))] : [_vm._v(_vm._s(_vm.t('i.datepicker.selectTime')))]], 2) : _vm._e(), _vm._v(" "), _c('i-button', {
      attrs: {
        "size": "small",
        "type": "text"
      },
      nativeOn: {
        "click": function click($event) {
          _vm.handleClear($event);
        }
      }
    }, [_vm._v(_vm._s(_vm.t('i.datepicker.clear')))]), _vm._v(" "), _c('i-button', {
      attrs: {
        "size": "small",
        "type": "primary"
      },
      nativeOn: {
        "click": function click($event) {
          _vm.handleSuccess($event);
        }
      }
    }, [_vm._v(_vm._s(_vm.t('i.datepicker.ok')))])], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 278 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(279),
  /* template */
  __webpack_require__(282),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 279 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _throttle = __webpack_require__(280);

var _throttle2 = _interopRequireDefault(_throttle);

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

exports.default = {
    name: 'Saturation',
    props: {
        value: Object
    },
    data: function data() {
        return {};
    },

    computed: {
        colors: function colors() {
            return this.value;
        },
        bgColor: function bgColor() {
            return 'hsl(' + this.colors.hsv.h + ', 100%, 50%)';
        },
        pointerTop: function pointerTop() {
            return -(this.colors.hsv.v * 100) + 1 + 100 + '%';
        },
        pointerLeft: function pointerLeft() {
            return this.colors.hsv.s * 100 + '%';
        }
    },
    methods: {
        throttle: (0, _throttle2.default)(function (fn, data) {
            fn(data);
        }, 20, {
            'leading': true,
            'trailing': false
        }),
        handleChange: function handleChange(e, skip) {
            !skip && e.preventDefault();
            var container = this.$refs.container;
            var containerWidth = container.clientWidth;
            var containerHeight = container.clientHeight;
            var xOffset = container.getBoundingClientRect().left + window.pageXOffset;
            var yOffset = container.getBoundingClientRect().top + window.pageYOffset;
            var pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);
            var pageY = e.pageY || (e.touches ? e.touches[0].pageY : 0);
            var left = pageX - xOffset;
            var top = pageY - yOffset;
            if (left < 0) {
                left = 0;
            } else if (left > containerWidth) {
                left = containerWidth;
            } else if (top < 0) {
                top = 0;
            } else if (top > containerHeight) {
                top = containerHeight;
            }
            var saturation = left / containerWidth;
            var bright = -(top / containerHeight) + 1;
            bright = bright > 0 ? bright : 0;
            bright = bright > 1 ? 1 : bright;
            this.throttle(this.onChange, {
                h: this.colors.hsv.h,
                s: saturation,
                v: bright,
                a: this.colors.hsv.a,
                source: 'hsva'
            });
        },
        onChange: function onChange(param) {
            this.$emit('change', param);
        },
        handleMouseDown: function handleMouseDown() {
            window.addEventListener('mousemove', this.handleChange);
            window.addEventListener('mouseup', this.handleChange);
            window.addEventListener('mouseup', this.handleMouseUp);
        },
        handleMouseUp: function handleMouseUp() {
            this.unbindEventListeners();
        },
        unbindEventListeners: function unbindEventListeners() {
            window.removeEventListener('mousemove', this.handleChange);
            window.removeEventListener('mouseup', this.handleChange);
            window.removeEventListener('mouseup', this.handleMouseUp);
        }
    }
};

/***/ }),
/* 280 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {

var _typeof2 = __webpack_require__(11);

var _typeof3 = _interopRequireDefault(_typeof2);

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

var FUNC_ERROR_TEXT = 'Expected a function';

var NAN = 0 / 0;

var symbolTag = '[object Symbol]';

var reTrim = /^\s+|\s+$/g;

var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

var reIsBinary = /^0b[01]+$/i;

var reIsOctal = /^0o[0-7]+$/i;

var freeParseInt = parseInt;

var freeGlobal = (typeof global === 'undefined' ? 'undefined' : (0, _typeof3.default)(global)) == 'object' && global && global.Object === Object && global;

var freeSelf = (typeof self === 'undefined' ? 'undefined' : (0, _typeof3.default)(self)) == 'object' && self && self.Object === Object && self;

var root = freeGlobal || freeSelf || Function('return this')();

var objectProto = Object.prototype;

var objectToString = objectProto.toString;

var nativeMax = Math.max,
    nativeMin = Math.min;

var now = function now() {
    return root.Date.now();
};

function debounce(func, wait, options) {
    var lastArgs,
        lastThis,
        maxWait,
        result,
        timerId,
        lastCallTime,
        lastInvokeTime = 0,
        leading = false,
        maxing = false,
        trailing = true;

    if (typeof func != 'function') {
        throw new TypeError(FUNC_ERROR_TEXT);
    }
    wait = toNumber(wait) || 0;
    if (isObject(options)) {
        leading = !!options.leading;
        maxing = 'maxWait' in options;
        maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
        trailing = 'trailing' in options ? !!options.trailing : trailing;
    }

    function invokeFunc(time) {
        var args = lastArgs,
            thisArg = lastThis;

        lastArgs = lastThis = undefined;
        lastInvokeTime = time;
        result = func.apply(thisArg, args);
        return result;
    }

    function leadingEdge(time) {
        lastInvokeTime = time;

        timerId = setTimeout(timerExpired, wait);

        return leading ? invokeFunc(time) : result;
    }

    function remainingWait(time) {
        var timeSinceLastCall = time - lastCallTime,
            timeSinceLastInvoke = time - lastInvokeTime,
            result = wait - timeSinceLastCall;

        return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
    }

    function shouldInvoke(time) {
        var timeSinceLastCall = time - lastCallTime,
            timeSinceLastInvoke = time - lastInvokeTime;

        return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
    }

    function timerExpired() {
        var time = now();
        if (shouldInvoke(time)) {
            return trailingEdge(time);
        }

        timerId = setTimeout(timerExpired, remainingWait(time));
    }

    function trailingEdge(time) {
        timerId = undefined;

        if (trailing && lastArgs) {
            return invokeFunc(time);
        }
        lastArgs = lastThis = undefined;
        return result;
    }

    function cancel() {
        if (timerId !== undefined) {
            clearTimeout(timerId);
        }
        lastInvokeTime = 0;
        lastArgs = lastCallTime = lastThis = timerId = undefined;
    }

    function flush() {
        return timerId === undefined ? result : trailingEdge(now());
    }

    function debounced() {
        var time = now(),
            isInvoking = shouldInvoke(time);

        lastArgs = arguments;
        lastThis = this;
        lastCallTime = time;

        if (isInvoking) {
            if (timerId === undefined) {
                return leadingEdge(lastCallTime);
            }
            if (maxing) {
                timerId = setTimeout(timerExpired, wait);
                return invokeFunc(lastCallTime);
            }
        }
        if (timerId === undefined) {
            timerId = setTimeout(timerExpired, wait);
        }
        return result;
    }
    debounced.cancel = cancel;
    debounced.flush = flush;
    return debounced;
}

function throttle(func, wait, options) {
    var leading = true,
        trailing = true;

    if (typeof func != 'function') {
        throw new TypeError(FUNC_ERROR_TEXT);
    }
    if (isObject(options)) {
        leading = 'leading' in options ? !!options.leading : leading;
        trailing = 'trailing' in options ? !!options.trailing : trailing;
    }
    return debounce(func, wait, {
        'leading': leading,
        'maxWait': wait,
        'trailing': trailing
    });
}

function isObject(value) {
    var type = typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value);
    return !!value && (type == 'object' || type == 'function');
}

function isObjectLike(value) {
    return !!value && (typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) == 'object';
}

function isSymbol(value) {
    return (typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;
}

function toNumber(value) {
    if (typeof value == 'number') {
        return value;
    }
    if (isSymbol(value)) {
        return NAN;
    }
    if (isObject(value)) {
        var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
        value = isObject(other) ? other + '' : other;
    }
    if (typeof value != 'string') {
        return value === 0 ? value : +value;
    }
    value = value.replace(reTrim, '');
    var isBinary = reIsBinary.test(value);
    return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
}

module.exports = throttle;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(281)))

/***/ }),
/* 281 */
/***/ (function(module, exports) {

var g;

// This works in non-strict mode
g = (function() {
	return this;
})();

try {
	// This works if eval is allowed (see CSP)
	g = g || Function("return this")() || (1,eval)("this");
} catch(e) {
	// This works if the window reference is available
	if(typeof window === "object")
		g = window;
}

// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}

module.exports = g;


/***/ }),
/* 282 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      staticClass: "ivu-color-picker-saturation-wrapper"
    }, [_c('div', {
      ref: "container",
      staticClass: "ivu-color-picker-saturation",
      style: {
        background: _vm.bgColor
      },
      on: {
        "mousedown": _vm.handleMouseDown
      }
    }, [_c('div', {
      staticClass: "ivu-color-picker-saturation--white"
    }), _vm._v(" "), _c('div', {
      staticClass: "ivu-color-picker-saturation--black"
    }), _vm._v(" "), _c('div', {
      staticClass: "ivu-color-picker-saturation-pointer",
      style: {
        top: _vm.pointerTop,
        left: _vm.pointerLeft
      }
    }, [_c('div', {
      staticClass: "ivu-color-picker-saturation-circle"
    })])])]);
  }, staticRenderFns: [] };

/***/ }),
/* 283 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(284),
  /* template */
  __webpack_require__(285),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 284 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    name: 'Hue',
    props: {
        value: Object
    },
    data: function data() {
        return {
            oldHue: 0,
            pullDirection: ''
        };
    },

    computed: {
        colors: function colors() {
            var h = this.value.hsl.h;
            if (h !== 0 && h - this.oldHue > 0) this.pullDirection = 'right';
            if (h !== 0 && h - this.oldHue < 0) this.pullDirection = 'left';
            this.oldHue = h;

            return this.value;
        },
        pointerLeft: function pointerLeft() {
            if (this.colors.hsl.h === 0 && this.pullDirection === 'right') return '100%';
            return this.colors.hsl.h * 100 / 360 + '%';
        }
    },
    methods: {
        handleChange: function handleChange(e, skip) {
            !skip && e.preventDefault();

            var container = this.$refs.container;
            var containerWidth = container.clientWidth;

            var xOffset = container.getBoundingClientRect().left + window.pageXOffset;
            var pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);
            var left = pageX - xOffset;

            var h = void 0;
            var percent = void 0;

            if (left < 0) {
                h = 0;
            } else if (left > containerWidth) {
                h = 360;
            } else {
                percent = left * 100 / containerWidth;
                h = 360 * percent / 100;
            }

            if (this.colors.hsl.h !== h) {
                this.$emit('change', {
                    h: h,
                    s: this.colors.hsl.s,
                    l: this.colors.hsl.l,
                    a: this.colors.hsl.a,
                    source: 'hsl'
                });
            }
        },
        handleMouseDown: function handleMouseDown(e) {
            this.handleChange(e, true);
            window.addEventListener('mousemove', this.handleChange);
            window.addEventListener('mouseup', this.handleMouseUp);
        },
        handleMouseUp: function handleMouseUp() {
            this.unbindEventListeners();
        },
        unbindEventListeners: function unbindEventListeners() {
            window.removeEventListener('mousemove', this.handleChange);
            window.removeEventListener('mouseup', this.handleMouseUp);
        }
    }
};

/***/ }),
/* 285 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      staticClass: "ivu-color-picker-hue"
    }, [_c('div', {
      ref: "container",
      staticClass: "ivu-color-picker-hue-container",
      on: {
        "mousedown": _vm.handleMouseDown,
        "touchmove": _vm.handleChange,
        "touchstart": _vm.handleChange
      }
    }, [_c('div', {
      staticClass: "ivu-color-picker-hue-pointer",
      style: {
        top: 0,
        left: _vm.pointerLeft
      }
    }, [_c('div', {
      staticClass: "ivu-color-picker-hue-picker"
    })])])]);
  }, staticRenderFns: [] };

/***/ }),
/* 286 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(287),
  /* template */
  __webpack_require__(288),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 287 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    name: 'Alpha',
    props: {
        value: Object,
        onChange: Function
    },
    computed: {
        colors: function colors() {
            return this.value;
        },
        gradientColor: function gradientColor() {
            var rgba = this.colors.rgba;
            var rgbStr = [rgba.r, rgba.g, rgba.b].join(',');
            return 'linear-gradient(to right, rgba(' + rgbStr + ', 0) 0%, rgba(' + rgbStr + ', 1) 100%)';
        }
    },
    methods: {
        handleChange: function handleChange(e, skip) {
            !skip && e.preventDefault();
            var container = this.$refs.container;
            var containerWidth = container.clientWidth;

            var xOffset = container.getBoundingClientRect().left + window.pageXOffset;
            var pageX = e.pageX || (e.touches ? e.touches[0].pageX : 0);
            var left = pageX - xOffset;

            var a = void 0;
            if (left < 0) {
                a = 0;
            } else if (left > containerWidth) {
                a = 1;
            } else {
                a = Math.round(left * 100 / containerWidth) / 100;
            }

            if (this.colors.a !== a) {
                this.$emit('change', {
                    h: this.colors.hsl.h,
                    s: this.colors.hsl.s,
                    l: this.colors.hsl.l,
                    a: a,
                    source: 'rgba'
                });
            }
        },
        handleMouseDown: function handleMouseDown(e) {
            this.handleChange(e, true);
            window.addEventListener('mousemove', this.handleChange);
            window.addEventListener('mouseup', this.handleMouseUp);
        },
        handleMouseUp: function handleMouseUp() {
            this.unbindEventListeners();
        },
        unbindEventListeners: function unbindEventListeners() {
            window.removeEventListener('mousemove', this.handleChange);
            window.removeEventListener('mouseup', this.handleMouseUp);
        }
    }
};

/***/ }),
/* 288 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      staticClass: "ivu-color-picker-alpha"
    }, [_vm._m(0), _vm._v(" "), _c('div', {
      staticClass: "ivu-color-picker-alpha-gradient",
      style: {
        background: _vm.gradientColor
      }
    }), _vm._v(" "), _c('div', {
      ref: "container",
      staticClass: "ivu-color-picker-alpha-container",
      on: {
        "mousedown": _vm.handleMouseDown,
        "touchmove": _vm.handleChange,
        "touchstart": _vm.handleChange
      }
    }, [_c('div', {
      staticClass: "ivu-color-picker-alpha-pointer",
      style: {
        left: _vm.colors.a * 100 + '%'
      }
    }, [_c('div', {
      staticClass: "ivu-color-picker-alpha-picker"
    })])])]);
  }, staticRenderFns: [function () {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      staticClass: "ivu-color-picker-alpha-checkboard-wrap"
    }, [_c('div', {
      staticClass: "ivu-color-picker-alpha-checkerboard"
    })]);
  }] };

/***/ }),
/* 289 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      directives: [{
        name: "clickoutside",
        rawName: "v-clickoutside",
        value: _vm.handleClose,
        expression: "handleClose"
      }],
      class: _vm.classes
    }, [_c('div', {
      ref: "reference",
      class: _vm.wrapClasses,
      on: {
        "click": _vm.toggleVisible
      }
    }, [_c('input', {
      attrs: {
        "type": "hidden",
        "name": _vm.name
      },
      domProps: {
        "value": _vm.currentValue
      }
    }), _vm._v(" "), _c('i', {
      staticClass: "ivu-icon ivu-icon-arrow-down-b ivu-input-icon ivu-input-icon-normal"
    }), _vm._v(" "), _c('div', {
      class: _vm.inputClasses
    }, [_c('div', {
      class: [_vm.prefixCls + '-color']
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.value === '' && !_vm.visible,
        expression: "value === '' && !visible"
      }],
      class: [_vm.prefixCls + '-color-empty']
    }, [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-close-empty"
    })]), _vm._v(" "), _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.value || _vm.visible,
        expression: "value || visible"
      }],
      style: {
        backgroundColor: _vm.displayedColor
      }
    })])])]), _vm._v(" "), _c('transition', {
      attrs: {
        "name": _vm.transition
      }
    }, [_c('Drop', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.visible,
        expression: "visible"
      }, {
        name: "transfer-dom",
        rawName: "v-transfer-dom"
      }],
      ref: "drop",
      class: (_obj = {}, _obj[_vm.prefixCls + '-transfer'] = _vm.transfer, _obj),
      attrs: {
        "class-name": "ivu-transfer-no-max-height",
        "placement": _vm.placement,
        "data-transfer": _vm.transfer
      },
      nativeOn: {
        "click": function click($event) {
          _vm.handleTransferClick($event);
        }
      }
    }, [_c('div', {
      class: [_vm.prefixCls + '-picker']
    }, [_c('div', {
      class: [_vm.prefixCls + '-picker-wrapper']
    }, [_c('div', {
      class: [_vm.prefixCls + '-picker-panel']
    }, [_c('Saturation', {
      on: {
        "change": _vm.childChange
      },
      model: {
        value: _vm.saturationColors,
        callback: function callback($$v) {
          _vm.saturationColors = $$v;
        },
        expression: "saturationColors"
      }
    })], 1), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-picker-hue-slider']
    }, [_c('Hue', {
      on: {
        "change": _vm.childChange
      },
      model: {
        value: _vm.saturationColors,
        callback: function callback($$v) {
          _vm.saturationColors = $$v;
        },
        expression: "saturationColors"
      }
    })], 1), _vm._v(" "), _vm.alpha ? _c('div', {
      class: [_vm.prefixCls + '-picker-alpha-slider']
    }, [_c('Alpha', {
      on: {
        "change": _vm.childChange
      },
      model: {
        value: _vm.saturationColors,
        callback: function callback($$v) {
          _vm.saturationColors = $$v;
        },
        expression: "saturationColors"
      }
    })], 1) : _vm._e(), _vm._v(" "), _vm.colors.length ? _c('recommend-colors', {
      class: [_vm.prefixCls + '-picker-colors'],
      attrs: {
        "list": _vm.colors
      },
      on: {
        "picker-color": _vm.handleSelectColor
      }
    }) : _vm._e(), _vm._v(" "), !_vm.colors.length && _vm.recommend ? _c('recommend-colors', {
      class: [_vm.prefixCls + '-picker-colors'],
      attrs: {
        "list": _vm.recommendedColor
      },
      on: {
        "picker-color": _vm.handleSelectColor
      }
    }) : _vm._e()], 1), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-confirm']
    }, [_c('span', {
      class: [_vm.prefixCls + '-confirm-color']
    }, [_vm._v(_vm._s(_vm.formatColor))]), _vm._v(" "), _c('Confirm', {
      on: {
        "on-pick-success": _vm.handleSuccess,
        "on-pick-clear": _vm.handleClear
      }
    })], 1)])])], 1)], 1);
    var _obj;
  }, staticRenderFns: [] };

/***/ }),
/* 290 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _datePicker = __webpack_require__(291);

var _datePicker2 = _interopRequireDefault(_datePicker);

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

exports.default = _datePicker2.default;

/***/ }),
/* 291 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _keys = __webpack_require__(31);

var _keys2 = _interopRequireDefault(_keys);

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

var _picker = __webpack_require__(89);

var _picker2 = _interopRequireDefault(_picker);

var _date = __webpack_require__(295);

var _date2 = _interopRequireDefault(_date);

var _dateRange = __webpack_require__(308);

var _dateRange2 = _interopRequireDefault(_dateRange);

var _assist = __webpack_require__(2);

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

var getPanel = function getPanel(type) {
    if (type === 'daterange' || type === 'datetimerange') {
        return _dateRange2.default;
    }
    return _date2.default;
};

exports.default = {
    mixins: [_picker2.default],
    props: {
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['year', 'month', 'date', 'daterange', 'datetime', 'datetimerange']);
            },

            default: 'date'
        },
        value: {}
    },
    watch: {
        type: function type(value) {
            var typeMap = {
                year: 'year',
                month: 'month',
                date: 'day'
            };
            var validType = (0, _assist.oneOf)(value, (0, _keys2.default)(typeMap));
            if (validType) this.Panel.selectionMode = typeMap[value];
        }
    },
    created: function created() {
        if (!this.currentValue) {
            if (this.type === 'daterange' || this.type === 'datetimerange') {
                this.currentValue = ['', ''];
            } else {
                this.currentValue = '';
            }
        }

        var panel = getPanel(this.type);
        this.Panel = new _vue2.default(panel);
    }
};

/***/ }),
/* 292 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _input = __webpack_require__(35);

var _input2 = _interopRequireDefault(_input);

var _dropdown = __webpack_require__(25);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _clickoutside = __webpack_require__(26);

var _clickoutside2 = _interopRequireDefault(_clickoutside);

var _transferDom = __webpack_require__(16);

var _transferDom2 = _interopRequireDefault(_transferDom);

var _assist = __webpack_require__(2);

var _util = __webpack_require__(27);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-date-picker';

var DEFAULT_FORMATS = {
    date: 'yyyy-MM-dd',
    month: 'yyyy-MM',
    year: 'yyyy',
    datetime: 'yyyy-MM-dd HH:mm:ss',
    time: 'HH:mm:ss',
    timerange: 'HH:mm:ss',
    daterange: 'yyyy-MM-dd',
    datetimerange: 'yyyy-MM-dd HH:mm:ss'
};

var RANGE_SEPARATOR = ' - ';

var DATE_FORMATTER = function DATE_FORMATTER(value, format) {
    return (0, _util.formatDate)(value, format);
};
var DATE_PARSER = function DATE_PARSER(text, format) {
    return (0, _util.parseDate)(text, format);
};
var RANGE_FORMATTER = function RANGE_FORMATTER(value, format) {
    if (Array.isArray(value) && value.length === 2) {
        var start = value[0];
        var end = value[1];

        if (start && end) {
            return (0, _util.formatDate)(start, format) + RANGE_SEPARATOR + (0, _util.formatDate)(end, format);
        }
    }
    return '';
};
var RANGE_PARSER = function RANGE_PARSER(text, format) {
    var array = text.split(RANGE_SEPARATOR);
    if (array.length === 2) {
        var range1 = array[0];
        var range2 = array[1];

        return [(0, _util.parseDate)(range1, format), (0, _util.parseDate)(range2, format)];
    }
    return [];
};

var TYPE_VALUE_RESOLVER_MAP = {
    default: {
        formatter: function formatter(value) {
            if (!value) return '';
            return '' + value;
        },
        parser: function parser(text) {
            if (text === undefined || text === '') return null;
            return text;
        }
    },
    date: {
        formatter: DATE_FORMATTER,
        parser: DATE_PARSER
    },
    datetime: {
        formatter: DATE_FORMATTER,
        parser: DATE_PARSER
    },
    daterange: {
        formatter: RANGE_FORMATTER,
        parser: RANGE_PARSER
    },
    datetimerange: {
        formatter: RANGE_FORMATTER,
        parser: RANGE_PARSER
    },
    timerange: {
        formatter: RANGE_FORMATTER,
        parser: RANGE_PARSER
    },
    time: {
        formatter: DATE_FORMATTER,
        parser: DATE_PARSER
    },
    month: {
        formatter: DATE_FORMATTER,
        parser: DATE_PARSER
    },
    year: {
        formatter: DATE_FORMATTER,
        parser: DATE_PARSER
    },
    number: {
        formatter: function formatter(value) {
            if (!value) return '';
            return '' + value;
        },
        parser: function parser(text) {
            var result = Number(text);

            if (!isNaN(text)) {
                return result;
            } else {
                return null;
            }
        }
    }
};

exports.default = {
    name: 'CalendarPicker',
    mixins: [_emitter2.default],
    components: { iInput: _input2.default, Drop: _dropdown2.default },
    directives: { clickoutside: _clickoutside2.default, TransferDom: _transferDom2.default },
    props: {
        format: {
            type: String
        },
        readonly: {
            type: Boolean,
            default: false
        },
        disabled: {
            type: Boolean,
            default: false
        },
        editable: {
            type: Boolean,
            default: true
        },
        clearable: {
            type: Boolean,
            default: true
        },
        confirm: {
            type: Boolean,
            default: false
        },
        open: {
            type: Boolean,
            default: null
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        placeholder: {
            type: String,
            default: ''
        },
        placement: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end']);
            },

            default: 'bottom-start'
        },
        options: {
            type: Object
        },
        transfer: {
            type: Boolean,
            default: false
        },
        name: {
            type: String
        },
        elementId: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            showClose: false,
            visible: false,
            picker: null,
            internalValue: '',
            disableClickOutSide: false,
            disableCloseUnderTransfer: false,
            currentValue: this.value
        };
    },

    computed: {
        opened: function opened() {
            return this.open === null ? this.visible : this.open;
        },
        iconType: function iconType() {
            var icon = 'ios-calendar-outline';
            if (this.type === 'time' || this.type === 'timerange') icon = 'ios-clock-outline';
            if (this.showClose) icon = 'ios-close';
            return icon;
        },
        transition: function transition() {
            if (this.placement === 'bottom-start' || this.placement === 'bottom' || this.placement === 'bottom-end') {
                return 'slide-up';
            } else {
                return 'slide-down';
            }
        },
        selectionMode: function selectionMode() {
            if (this.type === 'month') {
                return 'month';
            } else if (this.type === 'year') {
                return 'year';
            }

            return 'day';
        },

        visualValue: {
            get: function get() {
                var value = this.internalValue;
                if (!value) return;
                var formatter = (TYPE_VALUE_RESOLVER_MAP[this.type] || TYPE_VALUE_RESOLVER_MAP['default']).formatter;
                var format = DEFAULT_FORMATS[this.type];

                return formatter(value, this.format || format);
            },
            set: function set(value) {
                if (value) {
                    var type = this.type;
                    var parser = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).parser;
                    var parsedValue = parser(value, this.format || DEFAULT_FORMATS[type]);
                    if (parsedValue) {
                        if (this.picker) this.picker.value = parsedValue;
                    }
                    return;
                }
                if (this.picker) this.picker.value = value;
            }
        }
    },
    methods: {
        handleTransferClick: function handleTransferClick() {
            if (this.transfer) this.disableCloseUnderTransfer = true;
        },
        handleClose: function handleClose() {
            if (this.disableCloseUnderTransfer) {
                this.disableCloseUnderTransfer = false;
                return false;
            }
            if (this.open !== null) return;

            this.visible = false;
            this.disableClickOutSide = false;
        },
        handleFocus: function handleFocus() {
            if (this.readonly) return;
            this.visible = true;
        },
        handleBlur: function handleBlur() {
            this.visible = false;
        },
        handleInputChange: function handleInputChange(event) {
            var oldValue = this.visualValue;
            var value = event.target.value;

            var correctValue = '';
            var correctDate = '';
            var type = this.type;
            var format = this.format || DEFAULT_FORMATS[type];

            if (type === 'daterange' || type === 'timerange' || type === 'datetimerange') {
                var parser = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).parser;

                var formatter = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).formatter;

                var parsedValue = parser(value, format);

                if (parsedValue[0] instanceof Date && parsedValue[1] instanceof Date) {
                    if (parsedValue[0].getTime() > parsedValue[1].getTime()) {
                        correctValue = oldValue;
                    } else {
                        correctValue = formatter(parsedValue, format);
                    }
                } else {
                    correctValue = oldValue;
                }

                correctDate = parser(correctValue, format);
            } else if (type === 'time') {
                var parsedDate = (0, _util.parseDate)(value, format);

                if (parsedDate instanceof Date) {
                    if (this.disabledHours.length || this.disabledMinutes.length || this.disabledSeconds.length) {
                        var hours = parsedDate.getHours();
                        var minutes = parsedDate.getMinutes();
                        var seconds = parsedDate.getSeconds();

                        if (this.disabledHours.length && this.disabledHours.indexOf(hours) > -1 || this.disabledMinutes.length && this.disabledMinutes.indexOf(minutes) > -1 || this.disabledSeconds.length && this.disabledSeconds.indexOf(seconds) > -1) {
                            correctValue = oldValue;
                        } else {
                            correctValue = (0, _util.formatDate)(parsedDate, format);
                        }
                    } else {
                        correctValue = (0, _util.formatDate)(parsedDate, format);
                    }
                } else {
                    correctValue = oldValue;
                }

                correctDate = (0, _util.parseDate)(correctValue, format);
            } else {
                var _parsedDate = (0, _util.parseDate)(value, format);

                if (_parsedDate instanceof Date) {
                    var options = this.options || false;
                    if (options && options.disabledDate && typeof options.disabledDate === 'function' && options.disabledDate(new Date(_parsedDate))) {
                        correctValue = oldValue;
                    } else {
                        correctValue = (0, _util.formatDate)(_parsedDate, format);
                    }
                } else {
                    correctValue = oldValue;
                }

                correctDate = (0, _util.parseDate)(correctValue, format);
            }

            this.visualValue = correctValue;
            event.target.value = correctValue;
            this.internalValue = correctDate;
            this.currentValue = correctDate;

            if (correctValue !== oldValue) this.emitChange(correctDate);
        },
        handleInputMouseenter: function handleInputMouseenter() {
            if (this.readonly || this.disabled) return;
            if (this.visualValue && this.clearable) {
                this.showClose = true;
            }
        },
        handleInputMouseleave: function handleInputMouseleave() {
            this.showClose = false;
        },
        handleIconClick: function handleIconClick() {
            if (this.showClose) {
                this.handleClear();
            } else if (!this.disabled) {
                this.handleFocus();
            }
        },
        handleClear: function handleClear() {
            this.visible = false;
            this.internalValue = '';
            this.currentValue = '';
            this.$emit('on-clear');
            this.dispatch('FormItem', 'on-form-change', '');
        },
        showPicker: function showPicker() {
            var _this = this;

            if (!this.picker) {
                var isConfirm = this.confirm;
                var type = this.type;

                this.picker = this.Panel.$mount(this.$refs.picker);
                if (type === 'datetime' || type === 'datetimerange') {
                    isConfirm = true;
                    this.picker.showTime = true;
                }
                this.picker.value = this.internalValue;
                this.picker.confirm = isConfirm;
                this.picker.selectionMode = this.selectionMode;
                if (this.format) this.picker.format = this.format;

                if (this.disabledHours) this.picker.disabledHours = this.disabledHours;
                if (this.disabledMinutes) this.picker.disabledMinutes = this.disabledMinutes;
                if (this.disabledSeconds) this.picker.disabledSeconds = this.disabledSeconds;
                if (this.hideDisabledOptions) this.picker.hideDisabledOptions = this.hideDisabledOptions;

                var options = this.options;
                for (var option in options) {
                    this.picker[option] = options[option];
                }

                this.picker.$on('on-pick', function (date) {
                    var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

                    if (!isConfirm) _this.visible = visible;
                    _this.currentValue = date;
                    _this.picker.value = date;
                    _this.picker.resetView && _this.picker.resetView();
                    _this.emitChange(date);
                });

                this.picker.$on('on-pick-clear', function () {
                    _this.handleClear();
                });
                this.picker.$on('on-pick-success', function () {
                    _this.visible = false;
                    _this.$emit('on-ok');
                });
                this.picker.$on('on-pick-click', function () {
                    return _this.disableClickOutSide = true;
                });
            }
            if (this.internalValue instanceof Date) {
                this.picker.date = new Date(this.internalValue.getTime());
            } else {
                this.picker.value = this.internalValue;
            }
            this.picker.resetView && this.picker.resetView();
        },
        emitChange: function emitChange(date) {
            var _this2 = this;

            var newDate = this.formattingDate(date);

            this.$emit('on-change', newDate);
            this.$nextTick(function () {
                _this2.dispatch('FormItem', 'on-form-change', newDate);
            });
        },
        formattingDate: function formattingDate(date) {
            var type = this.type;
            var format = this.format || DEFAULT_FORMATS[type];
            var formatter = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).formatter;

            var newDate = formatter(date, format);
            if (type === 'daterange' || type === 'timerange' || type === 'datetimerange') {
                newDate = [newDate.split(RANGE_SEPARATOR)[0], newDate.split(RANGE_SEPARATOR)[1]];
            }
            return newDate;
        }
    },
    watch: {
        visible: function visible(val) {
            if (val) {
                this.showPicker();
                this.$refs.drop.update();
                if (this.open === null) this.$emit('on-open-change', true);
            } else {
                if (this.picker) this.picker.resetView && this.picker.resetView(true);
                this.$refs.drop.destroy();
                if (this.open === null) this.$emit('on-open-change', false);

                var input = this.$el.querySelector('input');
                if (input) input.blur();
            }
        },
        internalValue: function internalValue(val) {
            if (!val && this.picker && typeof this.picker.handleClear === 'function') {
                this.picker.handleClear();
            }
        },
        value: function value(val) {
            this.currentValue = val;
        },

        currentValue: {
            immediate: true,
            handler: function handler(val) {
                var type = this.type;
                var parser = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).parser;

                if (val && type === 'time' && !(val instanceof Date)) {
                    val = parser(val, this.format || DEFAULT_FORMATS[type]);
                } else if (val && type === 'timerange' && Array.isArray(val) && val.length === 2 && !(val[0] instanceof Date) && !(val[1] instanceof Date)) {
                    val = val.join(RANGE_SEPARATOR);
                    val = parser(val, this.format || DEFAULT_FORMATS[type]);
                }

                this.internalValue = val;
                this.$emit('input', val);
            }
        },
        open: function open(val) {
            if (val === true) {
                this.visible = val;
                this.$emit('on-open-change', true);
            } else if (val === false) {
                this.$emit('on-open-change', false);
            }
        }
    },
    beforeDestroy: function beforeDestroy() {
        if (this.picker) {
            this.picker.$destroy();
        }
    },
    mounted: function mounted() {
        if (this.open !== null) this.visible = this.open;
    }
};

/***/ }),
/* 293 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
var __WEBPACK_AMD_DEFINE_RESULT__;

(function (main) {
    'use strict';

    var fecha = {};
    var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
    var twoDigits = /\d\d?/;
    var threeDigits = /\d{3}/;
    var fourDigits = /\d{4}/;
    var word = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i;
    var noop = function noop() {};

    function shorten(arr, sLen) {
        var newArr = [];
        for (var i = 0, len = arr.length; i < len; i++) {
            newArr.push(arr[i].substr(0, sLen));
        }
        return newArr;
    }

    function monthUpdate(arrName) {
        return function (d, v, i18n) {
            var index = i18n[arrName].indexOf(v.charAt(0).toUpperCase() + v.substr(1).toLowerCase());
            if (~index) {
                d.month = index;
            }
        };
    }

    function pad(val, len) {
        val = String(val);
        len = len || 2;
        while (val.length < len) {
            val = '0' + val;
        }
        return val;
    }

    var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    var monthNamesShort = shorten(monthNames, 3);
    var dayNamesShort = shorten(dayNames, 3);
    fecha.i18n = {
        dayNamesShort: dayNamesShort,
        dayNames: dayNames,
        monthNamesShort: monthNamesShort,
        monthNames: monthNames,
        amPm: ['am', 'pm'],
        DoFn: function DoFn(D) {
            return D + ['th', 'st', 'nd', 'rd'][D % 10 > 3 ? 0 : (D - D % 10 !== 10) * D % 10];
        }
    };

    var formatFlags = {
        D: function D(dateObj) {
            return dateObj.getDay();
        },
        DD: function DD(dateObj) {
            return pad(dateObj.getDay());
        },
        Do: function Do(dateObj, i18n) {
            return i18n.DoFn(dateObj.getDate());
        },
        d: function d(dateObj) {
            return dateObj.getDate();
        },
        dd: function dd(dateObj) {
            return pad(dateObj.getDate());
        },
        ddd: function ddd(dateObj, i18n) {
            return i18n.dayNamesShort[dateObj.getDay()];
        },
        dddd: function dddd(dateObj, i18n) {
            return i18n.dayNames[dateObj.getDay()];
        },
        M: function M(dateObj) {
            return dateObj.getMonth() + 1;
        },
        MM: function MM(dateObj) {
            return pad(dateObj.getMonth() + 1);
        },
        MMM: function MMM(dateObj, i18n) {
            return i18n.monthNamesShort[dateObj.getMonth()];
        },
        MMMM: function MMMM(dateObj, i18n) {
            return i18n.monthNames[dateObj.getMonth()];
        },
        yy: function yy(dateObj) {
            return String(dateObj.getFullYear()).substr(2);
        },
        yyyy: function yyyy(dateObj) {
            return dateObj.getFullYear();
        },
        h: function h(dateObj) {
            return dateObj.getHours() % 12 || 12;
        },
        hh: function hh(dateObj) {
            return pad(dateObj.getHours() % 12 || 12);
        },
        H: function H(dateObj) {
            return dateObj.getHours();
        },
        HH: function HH(dateObj) {
            return pad(dateObj.getHours());
        },
        m: function m(dateObj) {
            return dateObj.getMinutes();
        },
        mm: function mm(dateObj) {
            return pad(dateObj.getMinutes());
        },
        s: function s(dateObj) {
            return dateObj.getSeconds();
        },
        ss: function ss(dateObj) {
            return pad(dateObj.getSeconds());
        },
        S: function S(dateObj) {
            return Math.round(dateObj.getMilliseconds() / 100);
        },
        SS: function SS(dateObj) {
            return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
        },
        SSS: function SSS(dateObj) {
            return pad(dateObj.getMilliseconds(), 3);
        },
        a: function a(dateObj, i18n) {
            return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1];
        },
        A: function A(dateObj, i18n) {
            return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase();
        },
        ZZ: function ZZ(dateObj) {
            var o = dateObj.getTimezoneOffset();
            return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
        }
    };

    var parseFlags = {
        d: [twoDigits, function (d, v) {
            d.day = v;
        }],
        M: [twoDigits, function (d, v) {
            d.month = v - 1;
        }],
        yy: [twoDigits, function (d, v) {
            var da = new Date(),
                cent = +('' + da.getFullYear()).substr(0, 2);
            d.year = '' + (v > 68 ? cent - 1 : cent) + v;
        }],
        h: [twoDigits, function (d, v) {
            d.hour = v;
        }],
        m: [twoDigits, function (d, v) {
            d.minute = v;
        }],
        s: [twoDigits, function (d, v) {
            d.second = v;
        }],
        yyyy: [fourDigits, function (d, v) {
            d.year = v;
        }],
        S: [/\d/, function (d, v) {
            d.millisecond = v * 100;
        }],
        SS: [/\d{2}/, function (d, v) {
            d.millisecond = v * 10;
        }],
        SSS: [threeDigits, function (d, v) {
            d.millisecond = v;
        }],
        D: [twoDigits, noop],
        ddd: [word, noop],
        MMM: [word, monthUpdate('monthNamesShort')],
        MMMM: [word, monthUpdate('monthNames')],
        a: [word, function (d, v, i18n) {
            var val = v.toLowerCase();
            if (val === i18n.amPm[0]) {
                d.isPm = false;
            } else if (val === i18n.amPm[1]) {
                d.isPm = true;
            }
        }],
        ZZ: [/[\+\-]\d\d:?\d\d/, function (d, v) {
            var parts = (v + '').match(/([\+\-]|\d\d)/gi),
                minutes;

            if (parts) {
                minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
                d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
            }
        }]
    };
    parseFlags.DD = parseFlags.DD;
    parseFlags.dddd = parseFlags.ddd;
    parseFlags.Do = parseFlags.dd = parseFlags.d;
    parseFlags.mm = parseFlags.m;
    parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
    parseFlags.MM = parseFlags.M;
    parseFlags.ss = parseFlags.s;
    parseFlags.A = parseFlags.a;

    fecha.masks = {
        'default': 'ddd MMM dd yyyy HH:mm:ss',
        shortDate: 'M/D/yy',
        mediumDate: 'MMM d, yyyy',
        longDate: 'MMMM d, yyyy',
        fullDate: 'dddd, MMMM d, yyyy',
        shortTime: 'HH:mm',
        mediumTime: 'HH:mm:ss',
        longTime: 'HH:mm:ss.SSS'
    };

    fecha.format = function (dateObj, mask, i18nSettings) {
        var i18n = i18nSettings || fecha.i18n;

        if (typeof dateObj === 'number') {
            dateObj = new Date(dateObj);
        }

        if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
            throw new Error('Invalid Date in fecha.format');
        }

        mask = fecha.masks[mask] || mask || fecha.masks['default'];

        return mask.replace(token, function ($0) {
            return $0 in formatFlags ? formatFlags[$0](dateObj, i18n) : $0.slice(1, $0.length - 1);
        });
    };

    fecha.parse = function (dateStr, format, i18nSettings) {
        var i18n = i18nSettings || fecha.i18n;

        if (typeof format !== 'string') {
            throw new Error('Invalid format in fecha.parse');
        }

        format = fecha.masks[format] || format;

        if (dateStr.length > 1000) {
            return false;
        }

        var isValid = true;
        var dateInfo = {};
        format.replace(token, function ($0) {
            if (parseFlags[$0]) {
                var info = parseFlags[$0];
                var index = dateStr.search(info[0]);
                if (!~index) {
                    isValid = false;
                } else {
                    dateStr.replace(info[0], function (result) {
                        info[1](dateInfo, result, i18n);
                        dateStr = dateStr.substr(index + result.length);
                        return result;
                    });
                }
            }

            return parseFlags[$0] ? '' : $0.slice(1, $0.length - 1);
        });

        if (!isValid) {
            return false;
        }

        var today = new Date();
        if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
            dateInfo.hour = +dateInfo.hour + 12;
        } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
            dateInfo.hour = 0;
        }

        var date;
        if (dateInfo.timezoneOffset != null) {
            dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
            date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
        } else {
            date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
        }
        return date;
    };

    if (typeof module !== 'undefined' && module.exports) {
        module.exports = fecha;
    } else if (true) {
        !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {
            return fecha;
        }.call(exports, __webpack_require__, exports, module),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    } else {
        main.fecha = fecha;
    }
})(undefined);

/***/ }),
/* 294 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      directives: [{
        name: "clickoutside",
        rawName: "v-clickoutside",
        value: _vm.handleClose,
        expression: "handleClose"
      }],
      class: [_vm.prefixCls]
    }, [_c('div', {
      ref: "reference",
      class: [_vm.prefixCls + '-rel']
    }, [_vm._t("default", [_c('i-input', {
      class: [_vm.prefixCls + '-editor'],
      attrs: {
        "element-id": _vm.elementId,
        "readonly": !_vm.editable || _vm.readonly,
        "disabled": _vm.disabled,
        "size": _vm.size,
        "placeholder": _vm.placeholder,
        "value": _vm.visualValue,
        "name": _vm.name,
        "icon": _vm.iconType
      },
      on: {
        "on-input-change": _vm.handleInputChange,
        "on-focus": _vm.handleFocus,
        "on-blur": _vm.handleBlur,
        "on-click": _vm.handleIconClick
      },
      nativeOn: {
        "mouseenter": function mouseenter($event) {
          _vm.handleInputMouseenter($event);
        },
        "mouseleave": function mouseleave($event) {
          _vm.handleInputMouseleave($event);
        }
      }
    })])], 2), _vm._v(" "), _c('transition', {
      attrs: {
        "name": _vm.transition
      }
    }, [_c('Drop', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.opened,
        expression: "opened"
      }, {
        name: "transfer-dom",
        rawName: "v-transfer-dom"
      }],
      ref: "drop",
      class: (_obj = {}, _obj[_vm.prefixCls + '-transfer'] = _vm.transfer, _obj),
      attrs: {
        "placement": _vm.placement,
        "data-transfer": _vm.transfer
      },
      nativeOn: {
        "click": function click($event) {
          _vm.handleTransferClick($event);
        }
      }
    }, [_c('div', {
      ref: "picker"
    })])], 1)], 1);
    var _obj;
  }, staticRenderFns: [] };

/***/ }),
/* 295 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(296),
  /* template */
  __webpack_require__(307),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 296 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _dateTable = __webpack_require__(90);

var _dateTable2 = _interopRequireDefault(_dateTable);

var _yearTable = __webpack_require__(91);

var _yearTable2 = _interopRequireDefault(_yearTable);

var _monthTable = __webpack_require__(92);

var _monthTable2 = _interopRequireDefault(_monthTable);

var _time = __webpack_require__(93);

var _time2 = _interopRequireDefault(_time);

var _confirm = __webpack_require__(37);

var _confirm2 = _interopRequireDefault(_confirm);

var _mixin = __webpack_require__(44);

var _mixin2 = _interopRequireDefault(_mixin);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

var _util = __webpack_require__(27);

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

var prefixCls = 'ivu-picker-panel';
var datePrefixCls = 'ivu-date-picker';

exports.default = {
    name: 'DatePicker',
    mixins: [_mixin2.default, _locale2.default],
    components: { Icon: _icon2.default, DateTable: _dateTable2.default, YearTable: _yearTable2.default, MonthTable: _monthTable2.default, TimePicker: _time2.default, Confirm: _confirm2.default },
    data: function data() {
        return {
            prefixCls: prefixCls,
            datePrefixCls: datePrefixCls,
            shortcuts: [],
            currentView: 'date',
            date: (0, _util.initTimeDate)(),
            value: '',
            showTime: false,
            selectionMode: 'day',
            disabledDate: '',
            year: null,
            month: null,
            confirm: false,
            isTime: false,
            format: 'yyyy-MM-dd'
        };
    },

    computed: {
        classes: function classes() {
            return [prefixCls + '-body-wrapper', (0, _defineProperty3.default)({}, prefixCls + '-with-sidebar', this.shortcuts.length)];
        },
        yearLabel: function yearLabel() {
            var tYear = this.t('i.datepicker.year');
            var year = this.year;
            if (!year) return '';
            if (this.currentView === 'year') {
                var startYear = Math.floor(year / 10) * 10;
                return '' + startYear + tYear + ' - ' + (startYear + 9) + tYear;
            }
            return '' + year + tYear;
        },
        monthLabel: function monthLabel() {
            var month = this.month + 1;
            return this.t('i.datepicker.month' + month);
        }
    },
    watch: {
        value: function value(newVal) {
            if (!newVal) return;
            newVal = new Date(newVal);
            if (!isNaN(newVal)) {
                this.date = newVal;
                this.year = newVal.getFullYear();
                this.month = newVal.getMonth();
            }
            if (this.showTime) this.$refs.timePicker.value = newVal;
        },
        date: function date(val) {
            if (this.showTime) this.$refs.timePicker.date = val;
        },
        format: function format(val) {
            if (this.showTime) this.$refs.timePicker.format = val;
        },
        currentView: function currentView(val) {
            if (val === 'time') this.$refs.timePicker.updateScroll();
        }
    },
    methods: {
        resetDate: function resetDate() {
            this.date = new Date(this.date);
        },
        handleClear: function handleClear() {
            this.date = new Date();
            this.$emit('on-pick', '');
            if (this.showTime) this.$refs.timePicker.handleClear();
        },
        resetView: function resetView() {
            var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

            if (this.currentView !== 'time' || reset) {
                if (this.selectionMode === 'month') {
                    this.currentView = 'month';
                } else if (this.selectionMode === 'year') {
                    this.currentView = 'year';
                } else {
                    this.currentView = 'date';
                }
            }

            this.year = this.date.getFullYear();
            this.month = this.date.getMonth();
            if (reset) this.isTime = false;
        },
        prevYear: function prevYear() {
            if (this.currentView === 'year') {
                this.$refs.yearTable.prevTenYear();
            } else {
                this.year--;
                this.date.setFullYear(this.year);
                this.resetDate();
            }
        },
        nextYear: function nextYear() {
            if (this.currentView === 'year') {
                this.$refs.yearTable.nextTenYear();
            } else {
                this.year++;
                this.date.setFullYear(this.year);
                this.resetDate();
            }
        },
        prevMonth: function prevMonth() {
            this.month--;
            if (this.month < 0) {
                this.month = 11;
                this.year--;
            }
        },
        nextMonth: function nextMonth() {
            this.month++;
            if (this.month > 11) {
                this.month = 0;
                this.year++;
            }
        },
        showYearPicker: function showYearPicker() {
            this.currentView = 'year';
        },
        showMonthPicker: function showMonthPicker() {
            this.currentView = 'month';
        },
        handleToggleTime: function handleToggleTime() {
            if (this.currentView === 'date') {
                this.currentView = 'time';
                this.isTime = true;
            } else if (this.currentView === 'time') {
                this.currentView = 'date';
                this.isTime = false;
            }
        },
        handleYearPick: function handleYearPick(year) {
            var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

            this.year = year;
            if (!close) return;

            this.date.setFullYear(year);
            if (this.selectionMode === 'year') {
                this.$emit('on-pick', new Date(year, 0, 1));
            } else {
                this.currentView = 'month';
            }

            this.resetDate();
        },
        handleMonthPick: function handleMonthPick(month) {
            this.month = month;
            var selectionMode = this.selectionMode;
            if (selectionMode !== 'month') {
                this.date.setMonth(month);
                this.currentView = 'date';
                this.resetDate();
            } else {
                this.date.setMonth(month);
                this.year && this.date.setFullYear(this.year);
                this.resetDate();
                var value = new Date(this.date.getFullYear(), month, 1);
                this.$emit('on-pick', value);
            }
        },
        handleDatePick: function handleDatePick(value) {
            if (this.selectionMode === 'day') {
                this.$emit('on-pick', new Date(value.getTime()));
                this.date.setFullYear(value.getFullYear());
                this.date.setMonth(value.getMonth());
                this.date.setDate(value.getDate());
            }

            this.resetDate();
        },
        handleTimePick: function handleTimePick(date) {
            this.handleDatePick(date);
        }
    },
    mounted: function mounted() {
        if (this.selectionMode === 'month') {
            this.currentView = 'month';
        }

        if (this.date && !this.year) {
            this.year = this.date.getFullYear();
            this.month = this.date.getMonth();
        }
        if (this.showTime) {
            this.$refs.timePicker.date = this.date;
            this.$refs.timePicker.value = this.value;
            this.$refs.timePicker.format = this.format;
            this.$refs.timePicker.showDate = true;
        }
    }
};

/***/ }),
/* 297 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _util = __webpack_require__(27);

var _assist = __webpack_require__(2);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-date-picker-cells';

var clearHours = function clearHours(time) {
    var cloneDate = new Date(time);
    cloneDate.setHours(0, 0, 0, 0);
    return cloneDate.getTime();
};

exports.default = {
    mixins: [_locale2.default],
    props: {
        date: {},
        year: {},
        month: {},
        selectionMode: {
            default: 'day'
        },
        disabledDate: {},
        minDate: {},
        maxDate: {},
        rangeState: {
            default: function _default() {
                return {
                    endDate: null,
                    selecting: false
                };
            }
        },
        value: ''
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            readCells: []
        };
    },

    watch: {
        'rangeState.endDate': function rangeStateEndDate(newVal) {
            this.markRange(newVal);
        },
        minDate: function minDate(newVal, oldVal) {
            if (newVal && !oldVal) {
                this.rangeState.selecting = true;
                this.markRange(newVal);
            } else if (!newVal) {
                this.rangeState.selecting = false;
                this.markRange(newVal);
            } else {
                this.markRange();
            }
        },
        maxDate: function maxDate(newVal, oldVal) {
            if (newVal && !oldVal) {
                this.rangeState.selecting = false;
                this.markRange(newVal);
            }
        },

        cells: {
            handler: function handler(cells) {
                this.readCells = cells;
            },

            immediate: true
        }
    },
    computed: {
        classes: function classes() {
            return ['' + prefixCls];
        },
        cells: function cells() {
            var date = new Date(this.year, this.month, 1);
            var day = (0, _util.getFirstDayOfMonth)(date);
            day = day === 0 ? 7 : day;
            var today = clearHours(new Date());
            var selectDay = clearHours(new Date(this.value));
            var minDay = clearHours(new Date(this.minDate));
            var maxDay = clearHours(new Date(this.maxDate));

            var dateCountOfMonth = (0, _util.getDayCountOfMonth)(date.getFullYear(), date.getMonth());
            var dateCountOfLastMonth = (0, _util.getDayCountOfMonth)(date.getFullYear(), date.getMonth() === 0 ? 11 : date.getMonth() - 1);

            var disabledDate = this.disabledDate;

            var cells = [];
            var cell_tmpl = {
                text: '',
                type: '',
                date: null,
                selected: false,
                disabled: false,
                range: false,
                start: false,
                end: false
            };
            if (day !== 7) {
                for (var i = 0; i < day; i++) {
                    var cell = (0, _assist.deepCopy)(cell_tmpl);
                    cell.type = 'prev-month';
                    cell.text = dateCountOfLastMonth - (day - 1) + i;
                    cell.date = new Date(this.year, this.month - 1, cell.text);
                    var time = clearHours(cell.date);
                    cell.disabled = typeof disabledDate === 'function' && disabledDate(new Date(time));
                    cells.push(cell);
                }
            }

            for (var _i = 1; _i <= dateCountOfMonth; _i++) {
                var _cell = (0, _assist.deepCopy)(cell_tmpl);
                _cell.text = _i;
                _cell.date = new Date(this.year, this.month, _cell.text);
                var _time = clearHours(_cell.date);
                _cell.type = _time === today ? 'today' : 'normal';
                _cell.selected = _time === selectDay;
                _cell.disabled = typeof disabledDate === 'function' && disabledDate(new Date(_time));
                _cell.range = _time >= minDay && _time <= maxDay;
                _cell.start = this.minDate && _time === minDay;
                _cell.end = this.maxDate && _time === maxDay;

                cells.push(_cell);
            }

            var nextMonthCount = 42 - cells.length;
            for (var _i2 = 1; _i2 <= nextMonthCount; _i2++) {
                var _cell2 = (0, _assist.deepCopy)(cell_tmpl);
                _cell2.type = 'next-month';
                _cell2.text = _i2;
                _cell2.date = new Date(this.year, this.month + 1, _cell2.text);
                var _time2 = clearHours(_cell2.date);
                _cell2.disabled = typeof disabledDate === 'function' && disabledDate(new Date(_time2));
                cells.push(_cell2);
            }

            return cells;
        }
    },
    methods: {
        handleClick: function handleClick(cell) {

            if (cell.disabled) return;
            var newDate = cell.date;

            if (this.selectionMode === 'range') {
                if (this.minDate && this.maxDate) {
                    var minDate = new Date(newDate.getTime());
                    var maxDate = null;
                    this.rangeState.selecting = true;
                    this.markRange(this.minDate);

                    this.$emit('on-pick', { minDate: minDate, maxDate: maxDate }, false);
                } else if (this.minDate && !this.maxDate) {
                    if (newDate >= this.minDate) {
                        var _maxDate = new Date(newDate.getTime());
                        this.rangeState.selecting = false;

                        this.$emit('on-pick', { minDate: this.minDate, maxDate: _maxDate });
                    } else {
                        var _minDate = new Date(newDate.getTime());

                        this.$emit('on-pick', { minDate: _minDate, maxDate: this.maxDate }, false);
                    }
                } else if (!this.minDate) {
                    var _minDate2 = new Date(newDate.getTime());
                    this.rangeState.selecting = true;
                    this.markRange(this.minDate);

                    this.$emit('on-pick', { minDate: _minDate2, maxDate: this.maxDate }, false);
                }
            } else {
                this.$emit('on-pick', newDate);
            }
            this.$emit('on-pick-click');
        },
        handleMouseMove: function handleMouseMove(event) {
            if (!this.rangeState.selecting) return;

            this.$emit('on-changerange', {
                minDate: this.minDate,
                maxDate: this.maxDate,
                rangeState: this.rangeState
            });

            var target = event.target;
            if (target.tagName === 'EM') {
                var cell = this.cells[parseInt(event.target.getAttribute('index'))];

                this.rangeState.endDate = cell.date;
            }
        },
        markRange: function markRange(maxDate) {
            var _this = this;

            var minDate = this.minDate;
            if (!maxDate) maxDate = this.maxDate;

            var minDay = clearHours(new Date(minDate));
            var maxDay = clearHours(new Date(maxDate));

            this.cells.forEach(function (cell) {
                if (cell.type === 'today' || cell.type === 'normal') {
                    var time = clearHours(new Date(_this.year, _this.month, cell.text));
                    cell.range = time >= minDay && time <= maxDay;
                    cell.start = minDate && time === minDay;
                    cell.end = maxDate && time === maxDay;
                }
            });
        },
        getCellCls: function getCellCls(cell) {
            var _ref;

            return [prefixCls + '-cell', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-cell-selected', cell.selected || cell.start || cell.end), (0, _defineProperty3.default)(_ref, prefixCls + '-cell-disabled', cell.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-cell-today', cell.type === 'today'), (0, _defineProperty3.default)(_ref, prefixCls + '-cell-prev-month', cell.type === 'prev-month'), (0, _defineProperty3.default)(_ref, prefixCls + '-cell-next-month', cell.type === 'next-month'), (0, _defineProperty3.default)(_ref, prefixCls + '-cell-range', cell.range && !cell.start && !cell.end), _ref)];
        }
    }
};

/***/ }),
/* 298 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      on: {
        "mousemove": _vm.handleMouseMove
      }
    }, [_c('div', {
      class: [_vm.prefixCls + '-header']
    }, [_c('span', [_vm._v(_vm._s(_vm.t('i.datepicker.weeks.sun')))]), _c('span', [_vm._v(_vm._s(_vm.t('i.datepicker.weeks.mon')))]), _c('span', [_vm._v(_vm._s(_vm.t('i.datepicker.weeks.tue')))]), _c('span', [_vm._v(_vm._s(_vm.t('i.datepicker.weeks.wed')))]), _c('span', [_vm._v(_vm._s(_vm.t('i.datepicker.weeks.thu')))]), _c('span', [_vm._v(_vm._s(_vm.t('i.datepicker.weeks.fri')))]), _c('span', [_vm._v(_vm._s(_vm.t('i.datepicker.weeks.sat')))])]), _vm._v(" "), _vm._l(_vm.readCells, function (cell, index) {
      return _c('span', {
        class: _vm.getCellCls(cell)
      }, [_c('em', {
        attrs: {
          "index": index
        },
        on: {
          "click": function click($event) {
            _vm.handleClick(cell);
          }
        }
      }, [_vm._v(_vm._s(cell.text))])]);
    })], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 299 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-date-picker-cells';

exports.default = {
    props: {
        date: {},
        year: {},
        disabledDate: {},
        selectionMode: {
            default: 'year'
        }
    },
    computed: {
        classes: function classes() {
            return ['' + prefixCls, prefixCls + '-year'];
        },
        startYear: function startYear() {
            return Math.floor(this.year / 10) * 10;
        },
        cells: function cells() {
            var cells = [];
            var cell_tmpl = {
                text: '',
                selected: false,
                disabled: false
            };

            for (var i = 0; i < 10; i++) {
                var cell = (0, _assist.deepCopy)(cell_tmpl);
                cell.text = this.startYear + i;

                var date = new Date(this.date);
                date.setFullYear(cell.text);
                cell.disabled = typeof this.disabledDate === 'function' && this.disabledDate(date) && this.selectionMode === 'year';

                cell.selected = Number(this.year) === cell.text;
                cells.push(cell);
            }

            return cells;
        }
    },
    methods: {
        getCellCls: function getCellCls(cell) {
            var _ref;

            return [prefixCls + '-cell', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-cell-selected', cell.selected), (0, _defineProperty3.default)(_ref, prefixCls + '-cell-disabled', cell.disabled), _ref)];
        },
        nextTenYear: function nextTenYear() {
            this.$emit('on-pick', Number(this.year) + 10, false);
        },
        prevTenYear: function prevTenYear() {
            this.$emit('on-pick', Number(this.year) - 10, false);
        },
        handleClick: function handleClick(event) {
            var target = event.target;
            if (target.tagName === 'EM') {
                var cell = this.cells[parseInt(event.target.getAttribute('index'))];
                if (cell.disabled) return;

                this.$emit('on-pick', cell.text);
            }
            this.$emit('on-pick-click');
        }
    }
};

/***/ }),
/* 300 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      on: {
        "click": _vm.handleClick
      }
    }, _vm._l(_vm.cells, function (cell, index) {
      return _c('span', {
        class: _vm.getCellCls(cell)
      }, [_c('em', {
        attrs: {
          "index": index
        }
      }, [_vm._v(_vm._s(cell.text))])]);
    }));
  }, staticRenderFns: [] };

/***/ }),
/* 301 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-date-picker-cells';

exports.default = {
    mixins: [_locale2.default],
    props: {
        date: {},
        month: {
            type: Number
        },
        disabledDate: {},
        selectionMode: {
            default: 'month'
        }
    },
    computed: {
        classes: function classes() {
            return ['' + prefixCls, prefixCls + '-month'];
        },
        cells: function cells() {
            var cells = [];
            var cell_tmpl = {
                text: '',
                selected: false,
                disabled: false
            };

            for (var i = 0; i < 12; i++) {
                var cell = (0, _assist.deepCopy)(cell_tmpl);
                cell.text = i + 1;

                var date = new Date(this.date);
                date.setMonth(i);
                cell.disabled = typeof this.disabledDate === 'function' && this.disabledDate(date) && this.selectionMode === 'month';

                cell.selected = Number(this.month) === i;
                cells.push(cell);
            }

            return cells;
        }
    },
    methods: {
        getCellCls: function getCellCls(cell) {
            var _ref;

            return [prefixCls + '-cell', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-cell-selected', cell.selected), (0, _defineProperty3.default)(_ref, prefixCls + '-cell-disabled', cell.disabled), _ref)];
        },
        handleClick: function handleClick(event) {
            var target = event.target;
            if (target.tagName === 'EM') {
                var index = parseInt(event.target.getAttribute('index'));
                var cell = this.cells[index];
                if (cell.disabled) return;

                this.$emit('on-pick', index);
            }
            this.$emit('on-pick-click');
        },
        tCell: function tCell(cell) {
            return this.t('i.datepicker.months.m' + cell);
        }
    }
};

/***/ }),
/* 302 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      on: {
        "click": _vm.handleClick
      }
    }, _vm._l(_vm.cells, function (cell, index) {
      return _c('span', {
        class: _vm.getCellCls(cell)
      }, [_c('em', {
        attrs: {
          "index": index
        }
      }, [_vm._v(_vm._s(_vm.tCell(cell.text)))])]);
    }));
  }, staticRenderFns: [] };

/***/ }),
/* 303 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _timeSpinner = __webpack_require__(94);

var _timeSpinner2 = _interopRequireDefault(_timeSpinner);

var _confirm = __webpack_require__(37);

var _confirm2 = _interopRequireDefault(_confirm);

var _mixin = __webpack_require__(44);

var _mixin2 = _interopRequireDefault(_mixin);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

var _util = __webpack_require__(27);

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

var prefixCls = 'ivu-picker-panel';
var timePrefixCls = 'ivu-time-picker';

exports.default = {
    name: 'TimePicker',
    mixins: [_mixin2.default, _locale2.default],
    components: { TimeSpinner: _timeSpinner2.default, Confirm: _confirm2.default },
    props: {
        steps: {
            type: Array,
            default: function _default() {
                return [];
            }
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            timePrefixCls: timePrefixCls,
            date: (0, _util.initTimeDate)(),
            value: '',
            showDate: false,
            format: 'HH:mm:ss',
            hours: '',
            minutes: '',
            seconds: '',
            disabledHours: [],
            disabledMinutes: [],
            disabledSeconds: [],
            hideDisabledOptions: false,
            confirm: false
        };
    },

    computed: {
        showSeconds: function showSeconds() {
            return (this.format || '').indexOf('ss') !== -1;
        },
        visibleDate: function visibleDate() {
            var date = this.date;
            var month = date.getMonth() + 1;
            var tYear = this.t('i.datepicker.year');
            var tMonth = this.t('i.datepicker.month' + month);
            return '' + date.getFullYear() + tYear + ' ' + tMonth;
        }
    },
    watch: {
        value: function value(newVal) {
            if (!newVal) return;
            newVal = new Date(newVal);
            if (!isNaN(newVal)) {
                this.date = newVal;
                this.handleChange({
                    hours: newVal.getHours(),
                    minutes: newVal.getMinutes(),
                    seconds: newVal.getSeconds()
                }, false);
            }
        }
    },
    methods: {
        handleClear: function handleClear() {
            this.date = (0, _util.initTimeDate)();
            this.hours = '';
            this.minutes = '';
            this.seconds = '';
        },
        handleChange: function handleChange(date) {
            var emit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

            if (date.hours !== undefined) {
                this.date.setHours(date.hours);
                this.hours = this.date.getHours();
            }
            if (date.minutes !== undefined) {
                this.date.setMinutes(date.minutes);
                this.minutes = this.date.getMinutes();
            }
            if (date.seconds !== undefined) {
                this.date.setSeconds(date.seconds);
                this.seconds = this.date.getSeconds();
            }
            if (emit) this.$emit('on-pick', this.date, true);
        },
        updateScroll: function updateScroll() {
            this.$refs.timeSpinner.updateScroll();
        }
    },
    mounted: function mounted() {
        if (this.$parent && this.$parent.$options.name === 'DatePicker') this.showDate = true;
    }
};

/***/ }),
/* 304 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _timeMixins = __webpack_require__(95);

var _timeMixins2 = _interopRequireDefault(_timeMixins);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-time-picker-cells';

exports.default = {
    mixins: [_timeMixins2.default],
    props: {
        hours: {
            type: [Number, String],
            default: 0
        },
        minutes: {
            type: [Number, String],
            default: 0
        },
        seconds: {
            type: [Number, String],
            default: 0
        },
        showSeconds: {
            type: Boolean,
            default: true
        },
        steps: {
            type: Array,
            default: function _default() {
                return [];
            }
        }
    },
    data: function data() {
        var _this = this;

        return {
            spinerSteps: [1, 1, 1].map(function (one, i) {
                return Math.abs(_this.steps[i]) || one;
            }),
            prefixCls: prefixCls,
            compiled: false
        };
    },

    computed: {
        classes: function classes() {
            return ['' + prefixCls, (0, _defineProperty3.default)({}, prefixCls + '-with-seconds', this.showSeconds)];
        },
        hoursList: function hoursList() {
            var hours = [];
            var step = this.spinerSteps[0];
            var hour_tmpl = {
                text: 0,
                selected: false,
                disabled: false,
                hide: false
            };

            for (var i = 0; i < 24; i += step) {
                var hour = (0, _assist.deepCopy)(hour_tmpl);
                hour.text = i;

                if (this.disabledHours.length && this.disabledHours.indexOf(i) > -1) {
                    hour.disabled = true;
                    if (this.hideDisabledOptions) hour.hide = true;
                }
                if (this.hours === i) hour.selected = true;
                hours.push(hour);
            }

            return hours;
        },
        minutesList: function minutesList() {
            var minutes = [];
            var step = this.spinerSteps[1];
            var minute_tmpl = {
                text: 0,
                selected: false,
                disabled: false,
                hide: false
            };

            for (var i = 0; i < 60; i += step) {
                var minute = (0, _assist.deepCopy)(minute_tmpl);
                minute.text = i;

                if (this.disabledMinutes.length && this.disabledMinutes.indexOf(i) > -1) {
                    minute.disabled = true;
                    if (this.hideDisabledOptions) minute.hide = true;
                }
                if (this.minutes === i) minute.selected = true;
                minutes.push(minute);
            }
            return minutes;
        },
        secondsList: function secondsList() {
            var seconds = [];
            var step = this.spinerSteps[2];
            var second_tmpl = {
                text: 0,
                selected: false,
                disabled: false,
                hide: false
            };

            for (var i = 0; i < 60; i += step) {
                var second = (0, _assist.deepCopy)(second_tmpl);
                second.text = i;

                if (this.disabledSeconds.length && this.disabledSeconds.indexOf(i) > -1) {
                    second.disabled = true;
                    if (this.hideDisabledOptions) second.hide = true;
                }
                if (this.seconds === i) second.selected = true;
                seconds.push(second);
            }

            return seconds;
        }
    },
    methods: {
        getCellCls: function getCellCls(cell) {
            var _ref2;

            return [prefixCls + '-cell', (_ref2 = {}, (0, _defineProperty3.default)(_ref2, prefixCls + '-cell-selected', cell.selected), (0, _defineProperty3.default)(_ref2, prefixCls + '-cell-disabled', cell.disabled), _ref2)];
        },
        handleClick: function handleClick(type, cell) {
            if (cell.disabled) return;
            var data = {};
            data[type] = cell.text;
            this.$emit('on-change', data);
            this.$emit('on-pick-click');
        },
        scroll: function scroll(type, index) {
            var from = this.$refs[type].scrollTop;
            var to = 24 * this.getScrollIndex(type, index);
            (0, _assist.scrollTop)(this.$refs[type], from, to, 500);
        },
        getScrollIndex: function getScrollIndex(type, index) {
            var Type = (0, _assist.firstUpperCase)(type);
            var disabled = this['disabled' + Type];
            if (disabled.length && this.hideDisabledOptions) {
                var _count = 0;
                disabled.forEach(function (item) {
                    return item <= index ? _count++ : '';
                });
                index -= _count;
            }
            return index;
        },
        updateScroll: function updateScroll() {
            var _this2 = this;

            var times = ['hours', 'minutes', 'seconds'];
            this.$nextTick(function () {
                times.forEach(function (type) {
                    _this2.$refs[type].scrollTop = 24 * _this2.getItemIndex(type, _this2[type]);
                });
            });
        },
        formatTime: function formatTime(text) {
            return text < 10 ? '0' + text : text;
        },
        getItemIndex: function getItemIndex(type, val) {
            var item = this[type + 'List'].find(function (obj) {
                return obj.text == val;
            });
            return this[type + 'List'].indexOf(item);
        }
    },
    watch: {
        hours: function hours(val) {
            if (!this.compiled) return;
            this.scroll('hours', this.getItemIndex('hours', val));
        },
        minutes: function minutes(val) {
            if (!this.compiled) return;
            this.scroll('minutes', this.getItemIndex('minutes', val));
        },
        seconds: function seconds(val) {
            if (!this.compiled) return;
            this.scroll('seconds', this.getItemIndex('seconds', val));
        }
    },
    mounted: function mounted() {
        var _this3 = this;

        this.updateScroll();
        this.$nextTick(function () {
            return _this3.compiled = true;
        });
    }
};

/***/ }),
/* 305 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_c('div', {
      ref: "hours",
      class: [_vm.prefixCls + '-list']
    }, [_c('ul', {
      class: [_vm.prefixCls + '-ul']
    }, _vm._l(_vm.hoursList, function (item) {
      return _c('li', {
        directives: [{
          name: "show",
          rawName: "v-show",
          value: !item.hide,
          expression: "!item.hide"
        }],
        class: _vm.getCellCls(item),
        on: {
          "click": function click($event) {
            _vm.handleClick('hours', item);
          }
        }
      }, [_vm._v(_vm._s(_vm.formatTime(item.text)))]);
    }))]), _vm._v(" "), _c('div', {
      ref: "minutes",
      class: [_vm.prefixCls + '-list']
    }, [_c('ul', {
      class: [_vm.prefixCls + '-ul']
    }, _vm._l(_vm.minutesList, function (item) {
      return _c('li', {
        directives: [{
          name: "show",
          rawName: "v-show",
          value: !item.hide,
          expression: "!item.hide"
        }],
        class: _vm.getCellCls(item),
        on: {
          "click": function click($event) {
            _vm.handleClick('minutes', item);
          }
        }
      }, [_vm._v(_vm._s(_vm.formatTime(item.text)))]);
    }))]), _vm._v(" "), _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.showSeconds,
        expression: "showSeconds"
      }],
      ref: "seconds",
      class: [_vm.prefixCls + '-list']
    }, [_c('ul', {
      class: [_vm.prefixCls + '-ul']
    }, _vm._l(_vm.secondsList, function (item) {
      return _c('li', {
        directives: [{
          name: "show",
          rawName: "v-show",
          value: !item.hide,
          expression: "!item.hide"
        }],
        class: _vm.getCellCls(item),
        on: {
          "click": function click($event) {
            _vm.handleClick('seconds', item);
          }
        }
      }, [_vm._v(_vm._s(_vm.formatTime(item.text)))]);
    }))])]);
  }, staticRenderFns: [] };

/***/ }),
/* 306 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: [_vm.prefixCls + '-body-wrapper'],
      on: {
        "mousedown": function mousedown($event) {
          $event.preventDefault();
        }
      }
    }, [_c('div', {
      class: [_vm.prefixCls + '-body']
    }, [_vm.showDate ? _c('div', {
      class: [_vm.timePrefixCls + '-header']
    }, [_vm._v(_vm._s(_vm.visibleDate))]) : _vm._e(), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-content']
    }, [_c('time-spinner', {
      ref: "timeSpinner",
      attrs: {
        "show-seconds": _vm.showSeconds,
        "steps": _vm.steps,
        "hours": _vm.hours,
        "minutes": _vm.minutes,
        "seconds": _vm.seconds,
        "disabled-hours": _vm.disabledHours,
        "disabled-minutes": _vm.disabledMinutes,
        "disabled-seconds": _vm.disabledSeconds,
        "hide-disabled-options": _vm.hideDisabledOptions
      },
      on: {
        "on-change": _vm.handleChange,
        "on-pick-click": _vm.handlePickClick
      }
    })], 1), _vm._v(" "), _vm.confirm ? _c('Confirm', {
      on: {
        "on-pick-clear": _vm.handlePickClear,
        "on-pick-success": _vm.handlePickSuccess
      }
    }) : _vm._e()], 1)]);
  }, staticRenderFns: [] };

/***/ }),
/* 307 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      on: {
        "mousedown": function mousedown($event) {
          $event.preventDefault();
        }
      }
    }, [_vm.shortcuts.length ? _c('div', {
      class: [_vm.prefixCls + '-sidebar']
    }, _vm._l(_vm.shortcuts, function (shortcut) {
      return _c('div', {
        class: [_vm.prefixCls + '-shortcut'],
        on: {
          "click": function click($event) {
            _vm.handleShortcutClick(shortcut);
          }
        }
      }, [_vm._v(_vm._s(shortcut.text))]);
    })) : _vm._e(), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-body']
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentView !== 'time',
        expression: "currentView !== 'time'"
      }],
      class: [_vm.datePrefixCls + '-header']
    }, [_c('span', {
      class: _vm.iconBtnCls('prev', '-double'),
      on: {
        "click": _vm.prevYear
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-left"
      }
    })], 1), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentView === 'date',
        expression: "currentView === 'date'"
      }],
      class: _vm.iconBtnCls('prev'),
      on: {
        "click": _vm.prevMonth
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-left"
      }
    })], 1), _vm._v(" "), _c('span', {
      class: [_vm.datePrefixCls + '-header-label'],
      on: {
        "click": _vm.showYearPicker
      }
    }, [_vm._v(_vm._s(_vm.yearLabel))]), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentView === 'date',
        expression: "currentView === 'date'"
      }],
      class: [_vm.datePrefixCls + '-header-label'],
      on: {
        "click": _vm.showMonthPicker
      }
    }, [_vm._v(_vm._s(_vm.monthLabel))]), _vm._v(" "), _c('span', {
      class: _vm.iconBtnCls('next', '-double'),
      on: {
        "click": _vm.nextYear
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-right"
      }
    })], 1), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentView === 'date',
        expression: "currentView === 'date'"
      }],
      class: _vm.iconBtnCls('next'),
      on: {
        "click": _vm.nextMonth
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-right"
      }
    })], 1)]), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-content']
    }, [_c('date-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentView === 'date',
        expression: "currentView === 'date'"
      }],
      attrs: {
        "year": _vm.year,
        "month": _vm.month,
        "date": _vm.date,
        "value": _vm.value,
        "selection-mode": _vm.selectionMode,
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-pick": _vm.handleDatePick,
        "on-pick-click": _vm.handlePickClick
      }
    }), _vm._v(" "), _c('year-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentView === 'year',
        expression: "currentView === 'year'"
      }],
      ref: "yearTable",
      attrs: {
        "year": _vm.year,
        "date": _vm.date,
        "selection-mode": _vm.selectionMode,
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-pick": _vm.handleYearPick,
        "on-pick-click": _vm.handlePickClick
      }
    }), _vm._v(" "), _c('month-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentView === 'month',
        expression: "currentView === 'month'"
      }],
      ref: "monthTable",
      attrs: {
        "month": _vm.month,
        "date": _vm.date,
        "selection-mode": _vm.selectionMode,
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-pick": _vm.handleMonthPick,
        "on-pick-click": _vm.handlePickClick
      }
    }), _vm._v(" "), _c('time-picker', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentView === 'time',
        expression: "currentView === 'time'"
      }],
      ref: "timePicker",
      attrs: {
        "show-date": ""
      },
      on: {
        "on-pick": _vm.handleTimePick,
        "on-pick-click": _vm.handlePickClick
      }
    })], 1), _vm._v(" "), _vm.confirm ? _c('Confirm', {
      attrs: {
        "show-time": _vm.showTime,
        "is-time": _vm.isTime
      },
      on: {
        "on-pick-toggle-time": _vm.handleToggleTime,
        "on-pick-clear": _vm.handlePickClear,
        "on-pick-success": _vm.handlePickSuccess
      }
    }) : _vm._e()], 1)]);
  }, staticRenderFns: [] };

/***/ }),
/* 308 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(309),
  /* template */
  __webpack_require__(312),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 309 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _dateTable = __webpack_require__(90);

var _dateTable2 = _interopRequireDefault(_dateTable);

var _yearTable = __webpack_require__(91);

var _yearTable2 = _interopRequireDefault(_yearTable);

var _monthTable = __webpack_require__(92);

var _monthTable2 = _interopRequireDefault(_monthTable);

var _timeRange = __webpack_require__(96);

var _timeRange2 = _interopRequireDefault(_timeRange);

var _confirm = __webpack_require__(37);

var _confirm2 = _interopRequireDefault(_confirm);

var _util = __webpack_require__(27);

var _mixin = __webpack_require__(44);

var _mixin2 = _interopRequireDefault(_mixin);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-picker-panel';
var datePrefixCls = 'ivu-date-picker';

exports.default = {
    name: 'DatePicker',
    mixins: [_mixin2.default, _locale2.default],
    components: { Icon: _icon2.default, DateTable: _dateTable2.default, YearTable: _yearTable2.default, MonthTable: _monthTable2.default, TimePicker: _timeRange2.default, Confirm: _confirm2.default },
    data: function data() {
        return {
            prefixCls: prefixCls,
            datePrefixCls: datePrefixCls,
            shortcuts: [],
            date: (0, _util.initTimeDate)(),
            value: '',
            minDate: '',
            maxDate: '',
            confirm: false,
            rangeState: {
                endDate: null,
                selecting: false
            },
            showTime: false,
            disabledDate: '',
            leftCurrentView: 'date',
            rightCurrentView: 'date',
            selectionMode: 'range',
            leftTableYear: null,
            rightTableYear: null,
            isTime: false,
            format: 'yyyy-MM-dd'
        };
    },

    computed: {
        classes: function classes() {
            return [prefixCls + '-body-wrapper', datePrefixCls + '-with-range', (0, _defineProperty3.default)({}, prefixCls + '-with-sidebar', this.shortcuts.length)];
        },
        leftYear: function leftYear() {
            return this.date.getFullYear();
        },
        leftTableDate: function leftTableDate() {
            if (this.leftCurrentView === 'year' || this.leftCurrentView === 'month') {
                return new Date(this.leftTableYear);
            } else {
                return this.date;
            }
        },
        leftYearLabel: function leftYearLabel() {
            var tYear = this.t('i.datepicker.year');
            if (this.leftCurrentView === 'year') {
                var year = this.leftTableYear;
                if (!year) return '';
                var startYear = Math.floor(year / 10) * 10;
                return '' + startYear + tYear + ' - ' + (startYear + 9) + tYear;
            } else {
                var _year = this.leftCurrentView === 'month' ? this.leftTableYear : this.leftYear;
                if (!_year) return '';
                return '' + _year + tYear;
            }
        },
        leftMonth: function leftMonth() {
            return this.date.getMonth();
        },
        leftMonthLabel: function leftMonthLabel() {
            var month = this.leftMonth + 1;
            return this.t('i.datepicker.month' + month);
        },
        rightYear: function rightYear() {
            return this.rightDate.getFullYear();
        },
        rightTableDate: function rightTableDate() {
            if (this.rightCurrentView === 'year' || this.rightCurrentView === 'month') {
                return new Date(this.rightTableYear);
            } else {
                return this.date;
            }
        },
        rightYearLabel: function rightYearLabel() {
            var tYear = this.t('i.datepicker.year');
            if (this.rightCurrentView === 'year') {
                var year = this.rightTableYear;
                if (!year) return '';
                var startYear = Math.floor(year / 10) * 10;
                return '' + startYear + tYear + ' - ' + (startYear + 9) + tYear;
            } else {
                var _year2 = this.rightCurrentView === 'month' ? this.rightTableYear : this.rightYear;
                if (!_year2) return '';
                return '' + _year2 + tYear;
            }
        },
        rightMonth: function rightMonth() {
            return this.rightDate.getMonth();
        },
        rightMonthLabel: function rightMonthLabel() {
            var month = this.rightMonth + 1;
            return this.t('i.datepicker.month' + month);
        },
        rightDate: function rightDate() {
            var newDate = new Date(this.date);
            var month = newDate.getMonth();
            newDate.setDate(1);

            if (month === 11) {
                newDate.setFullYear(newDate.getFullYear() + 1);
                newDate.setMonth(0);
            } else {
                newDate.setMonth(month + 1);
            }
            return newDate;
        },
        timeDisabled: function timeDisabled() {
            return !(this.minDate && this.maxDate);
        }
    },
    watch: {
        value: function value(newVal) {
            if (!newVal) {
                this.minDate = null;
                this.maxDate = null;
            } else if (Array.isArray(newVal)) {
                this.minDate = newVal[0] ? (0, _util.toDate)(newVal[0]) : null;
                this.maxDate = newVal[1] ? (0, _util.toDate)(newVal[1]) : null;
                if (this.minDate) this.date = new Date(this.minDate);
            }
            if (this.showTime) this.$refs.timePicker.value = newVal;
        },
        minDate: function minDate(val) {
            if (this.showTime) this.$refs.timePicker.date = val;
        },
        maxDate: function maxDate(val) {
            if (this.showTime) this.$refs.timePicker.dateEnd = val;
        },
        format: function format(val) {
            if (this.showTime) this.$refs.timePicker.format = val;
        },
        isTime: function isTime(val) {
            if (val) this.$refs.timePicker.updateScroll();
        }
    },
    methods: {
        resetDate: function resetDate() {
            this.date = new Date(this.date);
            this.leftTableYear = this.date.getFullYear();
            this.rightTableYear = this.rightDate.getFullYear();
        },
        handleClear: function handleClear() {
            this.minDate = null;
            this.maxDate = null;
            this.date = new Date();
            this.handleConfirm();
            if (this.showTime) this.$refs.timePicker.handleClear();
        },
        resetView: function resetView() {
            var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

            this.leftCurrentView = 'date';
            this.rightCurrentView = 'date';

            this.leftTableYear = this.leftYear;
            this.rightTableYear = this.rightYear;

            if (reset) this.isTime = false;
        },
        prevYear: function prevYear(direction) {
            if (this[direction + 'CurrentView'] === 'year') {
                this.$refs[direction + 'YearTable'].prevTenYear();
            } else if (this[direction + 'CurrentView'] === 'month') {
                this[direction + 'TableYear']--;
            } else {
                var date = this.date;
                date.setFullYear(date.getFullYear() - 1);
                this.resetDate();
            }
        },
        nextYear: function nextYear(direction) {
            if (this[direction + 'CurrentView'] === 'year') {
                this.$refs[direction + 'YearTable'].nextTenYear();
            } else if (this[direction + 'CurrentView'] === 'month') {
                this[direction + 'TableYear']++;
            } else {
                var date = this.date;
                date.setFullYear(date.getFullYear() + 1);
                this.resetDate();
            }
        },
        prevMonth: function prevMonth() {
            this.date = (0, _util.prevMonth)(this.date);
        },
        nextMonth: function nextMonth() {
            this.date = (0, _util.nextMonth)(this.date);
        },
        handleLeftYearPick: function handleLeftYearPick(year) {
            var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

            this.handleYearPick(year, close, 'left');
        },
        handleRightYearPick: function handleRightYearPick(year) {
            var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

            this.handleYearPick(year, close, 'right');
        },
        handleYearPick: function handleYearPick(year, close, direction) {
            this[direction + 'TableYear'] = year;
            if (!close) return;

            this[direction + 'CurrentView'] = 'month';
        },
        handleLeftMonthPick: function handleLeftMonthPick(month) {
            this.handleMonthPick(month, 'left');
        },
        handleRightMonthPick: function handleRightMonthPick(month) {
            this.handleMonthPick(month, 'right');
        },
        handleMonthPick: function handleMonthPick(month, direction) {
            var year = this[direction + 'TableYear'];
            if (direction === 'right') {
                if (month === 0) {
                    month = 11;
                    year--;
                } else {
                    month--;
                }
            }

            this.date.setYear(year);
            this.date.setMonth(month);
            this[direction + 'CurrentView'] = 'date';
            this.resetDate();
        },
        showYearPicker: function showYearPicker(direction) {
            this[direction + 'CurrentView'] = 'year';
            this[direction + 'TableYear'] = this[direction + 'Year'];
        },
        showMonthPicker: function showMonthPicker(direction) {
            this[direction + 'CurrentView'] = 'month';
        },
        handleConfirm: function handleConfirm(visible) {
            this.$emit('on-pick', [this.minDate, this.maxDate], visible);
        },
        handleRangePick: function handleRangePick(val) {
            var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

            if (this.maxDate === val.maxDate && this.minDate === val.minDate) return;

            this.minDate = val.minDate;
            this.maxDate = val.maxDate;

            if (!close) return;

            this.handleConfirm(false);
        },
        handleChangeRange: function handleChangeRange(val) {
            this.minDate = val.minDate;
            this.maxDate = val.maxDate;
            this.rangeState = val.rangeState;
        },
        handleToggleTime: function handleToggleTime() {
            this.isTime = !this.isTime;
        },
        handleTimePick: function handleTimePick(date) {
            this.minDate = date[0];
            this.maxDate = date[1];
            this.handleConfirm(false);
        }
    },
    mounted: function mounted() {
        if (this.showTime) {
            this.$refs.timePicker.date = this.minDate;
            this.$refs.timePicker.dateEnd = this.maxDate;
            this.$refs.timePicker.value = this.value;
            this.$refs.timePicker.format = this.format;
            this.$refs.timePicker.showDate = true;
        }
    }
};

/***/ }),
/* 310 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _timeSpinner = __webpack_require__(94);

var _timeSpinner2 = _interopRequireDefault(_timeSpinner);

var _confirm = __webpack_require__(37);

var _confirm2 = _interopRequireDefault(_confirm);

var _mixin = __webpack_require__(44);

var _mixin2 = _interopRequireDefault(_mixin);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

var _util = __webpack_require__(27);

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

var prefixCls = 'ivu-picker-panel';
var timePrefixCls = 'ivu-time-picker';

exports.default = {
    name: 'TimePicker',
    mixins: [_mixin2.default, _locale2.default],
    components: { TimeSpinner: _timeSpinner2.default, Confirm: _confirm2.default },
    data: function data() {
        return {
            prefixCls: prefixCls,
            timePrefixCls: timePrefixCls,
            format: 'HH:mm:ss',
            showDate: false,
            date: (0, _util.initTimeDate)(),
            dateEnd: (0, _util.initTimeDate)(),
            value: '',
            hours: '',
            minutes: '',
            seconds: '',
            hoursEnd: '',
            minutesEnd: '',
            secondsEnd: '',
            disabledHours: [],
            disabledMinutes: [],
            disabledSeconds: [],
            hideDisabledOptions: false,
            confirm: false
        };
    },

    computed: {
        classes: function classes() {
            return [prefixCls + '-body-wrapper', timePrefixCls + '-with-range', (0, _defineProperty3.default)({}, timePrefixCls + '-with-seconds', this.showSeconds)];
        },
        showSeconds: function showSeconds() {
            return (this.format || '').indexOf('ss') !== -1;
        },
        visibleDate: function visibleDate() {
            var date = this.date || (0, _util.initTimeDate)();
            var tYear = this.t('i.datepicker.year');
            var month = date.getMonth() + 1;
            var tMonth = this.t('i.datepicker.month' + month);
            return '' + date.getFullYear() + tYear + ' ' + tMonth;
        },
        visibleDateEnd: function visibleDateEnd() {
            var date = this.dateEnd || (0, _util.initTimeDate)();
            var tYear = this.t('i.datepicker.year');
            var month = date.getMonth() + 1;
            var tMonth = this.t('i.datepicker.month' + month);
            return '' + date.getFullYear() + tYear + ' ' + tMonth;
        }
    },
    watch: {
        value: function value(newVal) {
            if (!newVal) return;
            if (Array.isArray(newVal)) {
                var valStart = newVal[0] ? (0, _util.toDate)(newVal[0]) : false;
                var valEnd = newVal[1] ? (0, _util.toDate)(newVal[1]) : false;

                if (valStart && valEnd) {
                    this.handleChange({
                        hours: valStart.getHours(),
                        minutes: valStart.getMinutes(),
                        seconds: valStart.getSeconds()
                    }, {
                        hours: valEnd.getHours(),
                        minutes: valEnd.getMinutes(),
                        seconds: valEnd.getSeconds()
                    }, false);
                }
            }
        }
    },
    methods: {
        handleClear: function handleClear() {
            this.date = (0, _util.initTimeDate)();
            this.dateEnd = (0, _util.initTimeDate)();
            this.hours = '';
            this.minutes = '';
            this.seconds = '';
            this.hoursEnd = '';
            this.minutesEnd = '';
            this.secondsEnd = '';
        },
        handleChange: function handleChange(date, dateEnd) {
            var _this = this;

            var emit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;

            var oldDateEnd = new Date(this.dateEnd);

            if (date.hours !== undefined) {
                this.date.setHours(date.hours);
                this.hours = this.date.getHours();
            }
            if (date.minutes !== undefined) {
                this.date.setMinutes(date.minutes);
                this.minutes = this.date.getMinutes();
            }
            if (date.seconds !== undefined) {
                this.date.setSeconds(date.seconds);
                this.seconds = this.date.getSeconds();
            }
            if (dateEnd.hours !== undefined) {
                this.dateEnd.setHours(dateEnd.hours);
                this.hoursEnd = this.dateEnd.getHours();
            }
            if (dateEnd.minutes !== undefined) {
                this.dateEnd.setMinutes(dateEnd.minutes);
                this.minutesEnd = this.dateEnd.getMinutes();
            }
            if (dateEnd.seconds !== undefined) {
                this.dateEnd.setSeconds(dateEnd.seconds);
                this.secondsEnd = this.dateEnd.getSeconds();
            }

            if (this.dateEnd < this.date) {
                this.$nextTick(function () {
                    _this.dateEnd = new Date(_this.date);
                    _this.hoursEnd = _this.dateEnd.getHours();
                    _this.minutesEnd = _this.dateEnd.getMinutes();
                    _this.secondsEnd = _this.dateEnd.getSeconds();

                    var format = 'yyyy-MM-dd HH:mm:ss';
                    if ((0, _util.formatDate)(oldDateEnd, format) !== (0, _util.formatDate)(_this.dateEnd, format)) {
                        if (emit) _this.$emit('on-pick', [_this.date, _this.dateEnd], true);
                    }
                });
            } else {
                if (emit) this.$emit('on-pick', [this.date, this.dateEnd], true);
            }
        },
        handleStartChange: function handleStartChange(date) {
            this.handleChange(date, {});
        },
        handleEndChange: function handleEndChange(date) {
            this.handleChange({}, date);
        },
        updateScroll: function updateScroll() {
            this.$refs.timeSpinner.updateScroll();
            this.$refs.timeSpinnerEnd.updateScroll();
        }
    },
    mounted: function mounted() {
        if (this.$parent && this.$parent.$options.name === 'DatePicker') this.showDate = true;
    }
};

/***/ }),
/* 311 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      on: {
        "mousedown": function mousedown($event) {
          $event.preventDefault();
        }
      }
    }, [_c('div', {
      class: [_vm.prefixCls + '-body']
    }, [_c('div', {
      class: [_vm.prefixCls + '-content', _vm.prefixCls + '-content-left']
    }, [_c('div', {
      class: [_vm.timePrefixCls + '-header']
    }, [_vm.showDate ? [_vm._v(_vm._s(_vm.visibleDate))] : [_vm._v(_vm._s(_vm.t('i.datepicker.startTime')))]], 2), _vm._v(" "), _c('time-spinner', {
      ref: "timeSpinner",
      attrs: {
        "show-seconds": _vm.showSeconds,
        "hours": _vm.hours,
        "minutes": _vm.minutes,
        "seconds": _vm.seconds,
        "disabled-hours": _vm.disabledHours,
        "disabled-minutes": _vm.disabledMinutes,
        "disabled-seconds": _vm.disabledSeconds,
        "hide-disabled-options": _vm.hideDisabledOptions
      },
      on: {
        "on-change": _vm.handleStartChange,
        "on-pick-click": _vm.handlePickClick
      }
    })], 1), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-content', _vm.prefixCls + '-content-right']
    }, [_c('div', {
      class: [_vm.timePrefixCls + '-header']
    }, [_vm.showDate ? [_vm._v(_vm._s(_vm.visibleDateEnd))] : [_vm._v(_vm._s(_vm.t('i.datepicker.endTime')))]], 2), _vm._v(" "), _c('time-spinner', {
      ref: "timeSpinnerEnd",
      attrs: {
        "show-seconds": _vm.showSeconds,
        "hours": _vm.hoursEnd,
        "minutes": _vm.minutesEnd,
        "seconds": _vm.secondsEnd,
        "disabled-hours": _vm.disabledHours,
        "disabled-minutes": _vm.disabledMinutes,
        "disabled-seconds": _vm.disabledSeconds,
        "hide-disabled-options": _vm.hideDisabledOptions
      },
      on: {
        "on-change": _vm.handleEndChange,
        "on-pick-click": _vm.handlePickClick
      }
    })], 1), _vm._v(" "), _vm.confirm ? _c('Confirm', {
      on: {
        "on-pick-clear": _vm.handlePickClear,
        "on-pick-success": _vm.handlePickSuccess
      }
    }) : _vm._e()], 1)]);
  }, staticRenderFns: [] };

/***/ }),
/* 312 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      on: {
        "mousedown": function mousedown($event) {
          $event.preventDefault();
        }
      }
    }, [_vm.shortcuts.length ? _c('div', {
      class: [_vm.prefixCls + '-sidebar']
    }, _vm._l(_vm.shortcuts, function (shortcut) {
      return _c('div', {
        class: [_vm.prefixCls + '-shortcut'],
        on: {
          "click": function click($event) {
            _vm.handleShortcutClick(shortcut);
          }
        }
      }, [_vm._v(_vm._s(shortcut.text))]);
    })) : _vm._e(), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-body']
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !_vm.isTime,
        expression: "!isTime"
      }],
      class: [_vm.prefixCls + '-content', _vm.prefixCls + '-content-left']
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.leftCurrentView !== 'time',
        expression: "leftCurrentView !== 'time'"
      }],
      class: [_vm.datePrefixCls + '-header']
    }, [_c('span', {
      class: _vm.iconBtnCls('prev', '-double'),
      on: {
        "click": function click($event) {
          _vm.prevYear('left');
        }
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-left"
      }
    })], 1), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.leftCurrentView === 'date',
        expression: "leftCurrentView === 'date'"
      }],
      class: _vm.iconBtnCls('prev'),
      on: {
        "click": _vm.prevMonth
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-left"
      }
    })], 1), _vm._v(" "), _c('span', {
      class: [_vm.datePrefixCls + '-header-label'],
      on: {
        "click": function click($event) {
          _vm.showYearPicker('left');
        }
      }
    }, [_vm._v(_vm._s(_vm.leftYearLabel))]), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.leftCurrentView === 'date',
        expression: "leftCurrentView === 'date'"
      }],
      class: [_vm.datePrefixCls + '-header-label'],
      on: {
        "click": function click($event) {
          _vm.showMonthPicker('left');
        }
      }
    }, [_vm._v(_vm._s(_vm.leftMonthLabel))]), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.leftCurrentView === 'year' || _vm.leftCurrentView === 'month',
        expression: "leftCurrentView === 'year' || leftCurrentView === 'month'"
      }],
      class: _vm.iconBtnCls('next', '-double'),
      on: {
        "click": function click($event) {
          _vm.nextYear('left');
        }
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-right"
      }
    })], 1)]), _vm._v(" "), _c('date-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.leftCurrentView === 'date',
        expression: "leftCurrentView === 'date'"
      }],
      attrs: {
        "year": _vm.leftYear,
        "month": _vm.leftMonth,
        "date": _vm.date,
        "min-date": _vm.minDate,
        "max-date": _vm.maxDate,
        "range-state": _vm.rangeState,
        "selection-mode": "range",
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-changerange": _vm.handleChangeRange,
        "on-pick": _vm.handleRangePick,
        "on-pick-click": _vm.handlePickClick
      }
    }), _vm._v(" "), _c('year-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.leftCurrentView === 'year',
        expression: "leftCurrentView === 'year'"
      }],
      ref: "leftYearTable",
      attrs: {
        "year": _vm.leftTableYear,
        "date": _vm.leftTableDate,
        "selection-mode": "range",
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-pick": _vm.handleLeftYearPick,
        "on-pick-click": _vm.handlePickClick
      }
    }), _vm._v(" "), _c('month-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.leftCurrentView === 'month',
        expression: "leftCurrentView === 'month'"
      }],
      ref: "leftMonthTable",
      attrs: {
        "month": _vm.leftMonth,
        "date": _vm.leftTableDate,
        "selection-mode": "range",
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-pick": _vm.handleLeftMonthPick,
        "on-pick-click": _vm.handlePickClick
      }
    })], 1), _vm._v(" "), _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !_vm.isTime,
        expression: "!isTime"
      }],
      class: [_vm.prefixCls + '-content', _vm.prefixCls + '-content-right']
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.rightCurrentView !== 'time',
        expression: "rightCurrentView !== 'time'"
      }],
      class: [_vm.datePrefixCls + '-header']
    }, [_c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.rightCurrentView === 'year' || _vm.rightCurrentView === 'month',
        expression: "rightCurrentView === 'year' || rightCurrentView === 'month'"
      }],
      class: _vm.iconBtnCls('prev', '-double'),
      on: {
        "click": function click($event) {
          _vm.prevYear('right');
        }
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-left"
      }
    })], 1), _vm._v(" "), _c('span', {
      class: [_vm.datePrefixCls + '-header-label'],
      on: {
        "click": function click($event) {
          _vm.showYearPicker('right');
        }
      }
    }, [_vm._v(_vm._s(_vm.rightYearLabel))]), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.rightCurrentView === 'date',
        expression: "rightCurrentView === 'date'"
      }],
      class: [_vm.datePrefixCls + '-header-label'],
      on: {
        "click": function click($event) {
          _vm.showMonthPicker('right');
        }
      }
    }, [_vm._v(_vm._s(_vm.rightMonthLabel))]), _vm._v(" "), _c('span', {
      class: _vm.iconBtnCls('next', '-double'),
      on: {
        "click": function click($event) {
          _vm.nextYear('right');
        }
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-right"
      }
    })], 1), _vm._v(" "), _c('span', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.rightCurrentView === 'date',
        expression: "rightCurrentView === 'date'"
      }],
      class: _vm.iconBtnCls('next'),
      on: {
        "click": _vm.nextMonth
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-right"
      }
    })], 1)]), _vm._v(" "), _c('date-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.rightCurrentView === 'date',
        expression: "rightCurrentView === 'date'"
      }],
      attrs: {
        "year": _vm.rightYear,
        "month": _vm.rightMonth,
        "date": _vm.rightDate,
        "min-date": _vm.minDate,
        "max-date": _vm.maxDate,
        "range-state": _vm.rangeState,
        "selection-mode": "range",
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-changerange": _vm.handleChangeRange,
        "on-pick": _vm.handleRangePick,
        "on-pick-click": _vm.handlePickClick
      }
    }), _vm._v(" "), _c('year-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.rightCurrentView === 'year',
        expression: "rightCurrentView === 'year'"
      }],
      ref: "rightYearTable",
      attrs: {
        "year": _vm.rightTableYear,
        "date": _vm.rightTableDate,
        "selection-mode": "range",
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-pick": _vm.handleRightYearPick,
        "on-pick-click": _vm.handlePickClick
      }
    }), _vm._v(" "), _c('month-table', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.rightCurrentView === 'month',
        expression: "rightCurrentView === 'month'"
      }],
      ref: "rightMonthTable",
      attrs: {
        "month": _vm.rightMonth,
        "date": _vm.rightTableDate,
        "selection-mode": "range",
        "disabled-date": _vm.disabledDate
      },
      on: {
        "on-pick": _vm.handleRightMonthPick,
        "on-pick-click": _vm.handlePickClick
      }
    })], 1), _vm._v(" "), _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.isTime,
        expression: "isTime"
      }],
      class: [_vm.prefixCls + '-content']
    }, [_c('time-picker', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.isTime,
        expression: "isTime"
      }],
      ref: "timePicker",
      on: {
        "on-pick": _vm.handleTimePick,
        "on-pick-click": _vm.handlePickClick
      }
    })], 1), _vm._v(" "), _vm.confirm ? _c('Confirm', {
      attrs: {
        "show-time": _vm.showTime,
        "is-time": _vm.isTime,
        "time-disabled": _vm.timeDisabled
      },
      on: {
        "on-pick-toggle-time": _vm.handleToggleTime,
        "on-pick-clear": _vm.handlePickClear,
        "on-pick-success": _vm.handlePickSuccess
      }
    }) : _vm._e()], 1)]);
  }, staticRenderFns: [] };

/***/ }),
/* 313 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _dropdown = __webpack_require__(314);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _dropdownMenu = __webpack_require__(317);

var _dropdownMenu2 = _interopRequireDefault(_dropdownMenu);

var _dropdownItem = __webpack_require__(320);

var _dropdownItem2 = _interopRequireDefault(_dropdownItem);

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

_dropdown2.default.Menu = _dropdownMenu2.default;
_dropdown2.default.Item = _dropdownItem2.default;
exports.default = _dropdown2.default;

/***/ }),
/* 314 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(315),
  /* template */
  __webpack_require__(316),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 315 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _dropdown = __webpack_require__(25);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _clickoutside = __webpack_require__(26);

var _clickoutside2 = _interopRequireDefault(_clickoutside);

var _transferDom = __webpack_require__(16);

var _transferDom2 = _interopRequireDefault(_transferDom);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-dropdown';

exports.default = {
    name: 'Dropdown',
    directives: { clickoutside: _clickoutside2.default, TransferDom: _transferDom2.default },
    components: { Drop: _dropdown2.default },
    props: {
        trigger: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['click', 'hover', 'custom']);
            },

            default: 'hover'
        },
        placement: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end']);
            },

            default: 'bottom'
        },
        visible: {
            type: Boolean,
            default: false
        },
        transfer: {
            type: Boolean,
            default: false
        }
    },
    computed: {
        transition: function transition() {
            return ['bottom-start', 'bottom', 'bottom-end'].indexOf(this.placement) > -1 ? 'slide-up' : 'fade';
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            currentVisible: this.visible
        };
    },

    watch: {
        visible: function visible(val) {
            this.currentVisible = val;
        },
        currentVisible: function currentVisible(val) {
            if (val) {
                this.$refs.drop.update();
            } else {
                this.$refs.drop.destroy();
            }
            this.$emit('on-visible-change', val);
        }
    },
    methods: {
        handleClick: function handleClick() {
            if (this.trigger === 'custom') return false;
            if (this.trigger !== 'click') {
                return false;
            }
            this.currentVisible = !this.currentVisible;
        },
        handleMouseenter: function handleMouseenter() {
            var _this = this;

            if (this.trigger === 'custom') return false;
            if (this.trigger !== 'hover') {
                return false;
            }
            if (this.timeout) clearTimeout(this.timeout);
            this.timeout = setTimeout(function () {
                _this.currentVisible = true;
            }, 250);
        },
        handleMouseleave: function handleMouseleave() {
            var _this2 = this;

            if (this.trigger === 'custom') return false;
            if (this.trigger !== 'hover') {
                return false;
            }
            if (this.timeout) {
                clearTimeout(this.timeout);
                this.timeout = setTimeout(function () {
                    _this2.currentVisible = false;
                }, 150);
            }
        },
        handleClose: function handleClose() {
            if (this.trigger === 'custom') return false;
            if (this.trigger !== 'click') {
                return false;
            }
            this.currentVisible = false;
        },
        hasParent: function hasParent() {
            var $parent = (0, _assist.findComponentUpward)(this, 'Dropdown');
            if ($parent) {
                return $parent;
            } else {
                return false;
            }
        }
    },
    mounted: function mounted() {
        var _this3 = this;

        this.$on('on-click', function (key) {
            var $parent = _this3.hasParent();
            if ($parent) $parent.$emit('on-click', key);
        });
        this.$on('on-hover-click', function () {
            var $parent = _this3.hasParent();
            if ($parent) {
                _this3.$nextTick(function () {
                    if (_this3.trigger === 'custom') return false;
                    _this3.currentVisible = false;
                });
                $parent.$emit('on-hover-click');
            } else {
                _this3.$nextTick(function () {
                    if (_this3.trigger === 'custom') return false;
                    _this3.currentVisible = false;
                });
            }
        });
        this.$on('on-haschild-click', function () {
            _this3.$nextTick(function () {
                if (_this3.trigger === 'custom') return false;
                _this3.currentVisible = true;
            });
            var $parent = _this3.hasParent();
            if ($parent) $parent.$emit('on-haschild-click');
        });
    }
};

/***/ }),
/* 316 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      directives: [{
        name: "clickoutside",
        rawName: "v-clickoutside",
        value: _vm.handleClose,
        expression: "handleClose"
      }],
      class: [_vm.prefixCls],
      on: {
        "mouseenter": _vm.handleMouseenter,
        "mouseleave": _vm.handleMouseleave
      }
    }, [_c('div', {
      ref: "reference",
      class: [_vm.prefixCls + '-rel'],
      on: {
        "click": _vm.handleClick
      }
    }, [_vm._t("default")], 2), _vm._v(" "), _c('transition', {
      attrs: {
        "name": _vm.transition
      }
    }, [_c('Drop', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentVisible,
        expression: "currentVisible"
      }, {
        name: "transfer-dom",
        rawName: "v-transfer-dom"
      }],
      ref: "drop",
      attrs: {
        "placement": _vm.placement,
        "data-transfer": _vm.transfer
      },
      nativeOn: {
        "mouseenter": function mouseenter($event) {
          _vm.handleMouseenter($event);
        },
        "mouseleave": function mouseleave($event) {
          _vm.handleMouseleave($event);
        }
      }
    }, [_vm._t("list")], 2)], 1)], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 317 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(318),
  /* template */
  __webpack_require__(319),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 318 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = {};

/***/ }),
/* 319 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('ul', {
      staticClass: "ivu-dropdown-menu"
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 320 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(321),
  /* template */
  __webpack_require__(322),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 321 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

var prefixCls = 'ivu-dropdown-item';

exports.default = {
    name: 'DropdownItem',
    props: {
        name: {
            type: [String, Number]
        },
        disabled: {
            type: Boolean,
            default: false
        },
        selected: {
            type: Boolean,
            default: false
        },
        divided: {
            type: Boolean,
            default: false
        }
    },
    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-disabled', this.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-selected', this.selected), (0, _defineProperty3.default)(_ref, prefixCls + '-divided', this.divided), _ref)];
        }
    },
    methods: {
        handleClick: function handleClick() {
            var $parent = this.$parent.$parent.$parent;
            var hasChildren = this.$parent && this.$parent.$options.name === 'Dropdown';

            if (this.disabled) {
                this.$nextTick(function () {
                    $parent.currentVisible = true;
                });
            } else if (hasChildren) {
                this.$parent.$emit('on-haschild-click');
            } else {
                if ($parent && $parent.$options.name === 'Dropdown') {
                    $parent.$emit('on-hover-click');
                }
            }
            $parent.$emit('on-click', this.name);
        }
    }
};

/***/ }),
/* 322 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('li', {
      class: _vm.classes,
      on: {
        "click": _vm.handleClick
      }
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 323 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _form = __webpack_require__(324);

var _form2 = _interopRequireDefault(_form);

var _formItem = __webpack_require__(327);

var _formItem2 = _interopRequireDefault(_formItem);

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

_form2.default.Item = _formItem2.default;
exports.default = _form2.default;

/***/ }),
/* 324 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(325),
  /* template */
  __webpack_require__(326),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 325 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-form';

exports.default = {
    name: 'iForm',
    props: {
        model: {
            type: Object
        },
        rules: {
            type: Object
        },
        labelWidth: {
            type: Number
        },
        labelPosition: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['left', 'right', 'top']);
            },

            default: 'right'
        },
        inline: {
            type: Boolean,
            default: false
        },
        showMessage: {
            type: Boolean,
            default: true
        }
    },
    data: function data() {
        return {
            fields: []
        };
    },

    computed: {
        classes: function classes() {
            return ['' + prefixCls, prefixCls + '-label-' + this.labelPosition, (0, _defineProperty3.default)({}, prefixCls + '-inline', this.inline)];
        }
    },
    methods: {
        resetFields: function resetFields() {
            this.fields.forEach(function (field) {
                field.resetField();
            });
        },
        validate: function validate(callback) {
            var _this = this;

            var valid = true;
            var count = 0;
            this.fields.forEach(function (field) {
                field.validate('', function (errors) {
                    if (errors) {
                        valid = false;
                    }
                    if (typeof callback === 'function' && ++count === _this.fields.length) {
                        callback(valid);
                    }
                });
            });
        },
        validateField: function validateField(prop, cb) {
            var field = this.fields.filter(function (field) {
                return field.prop === prop;
            })[0];
            if (!field) {
                throw new Error('[iView warn]: must call validateField with valid prop string!');
            }

            field.validate('', cb);
        }
    },
    watch: {
        rules: function rules() {
            this.validate();
        }
    },
    created: function created() {
        var _this2 = this;

        this.$on('on-form-item-add', function (field) {
            if (field) _this2.fields.push(field);
            return false;
        });
        this.$on('on-form-item-remove', function (field) {
            if (field.prop) _this2.fields.splice(_this2.fields.indexOf(field), 1);
            return false;
        });
    }
};

/***/ }),
/* 326 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('form', {
      class: _vm.classes
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 327 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(328),
  /* template */
  __webpack_require__(351),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 328 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _asyncValidator = __webpack_require__(329);

var _asyncValidator2 = _interopRequireDefault(_asyncValidator);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-form-item';

function getPropByPath(obj, path) {
    var tempObj = obj;
    path = path.replace(/\[(\w+)\]/g, '.$1');
    path = path.replace(/^\./, '');

    var keyArr = path.split('.');
    var i = 0;

    for (var len = keyArr.length; i < len - 1; ++i) {
        var key = keyArr[i];
        if (key in tempObj) {
            tempObj = tempObj[key];
        } else {
            throw new Error('[iView warn]: please transfer a valid prop path to form item!');
        }
    }
    return {
        o: tempObj,
        k: keyArr[i],
        v: tempObj[keyArr[i]]
    };
}

exports.default = {
    name: 'FormItem',
    mixins: [_emitter2.default],
    props: {
        label: {
            type: String,
            default: ''
        },
        labelWidth: {
            type: Number
        },
        prop: {
            type: String
        },
        required: {
            type: Boolean,
            default: false
        },
        rules: {
            type: [Object, Array]
        },
        error: {
            type: String
        },
        validateStatus: {
            type: Boolean
        },
        showMessage: {
            type: Boolean,
            default: true
        },
        labelFor: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            isRequired: false,
            validateState: '',
            validateMessage: '',
            validateDisabled: false,
            validator: {}
        };
    },

    watch: {
        error: function error(val) {
            this.validateMessage = val;
            this.validateState = 'error';
        },
        validateStatus: function validateStatus(val) {
            this.validateState = val;
        }
    },
    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-required', this.required || this.isRequired), (0, _defineProperty3.default)(_ref, prefixCls + '-error', this.validateState === 'error'), (0, _defineProperty3.default)(_ref, prefixCls + '-validating', this.validateState === 'validating'), _ref)];
        },
        form: function form() {
            var parent = this.$parent;
            while (parent.$options.name !== 'iForm') {
                parent = parent.$parent;
            }
            return parent;
        },

        fieldValue: {
            cache: false,
            get: function get() {
                var model = this.form.model;
                if (!model || !this.prop) {
                    return;
                }

                var path = this.prop;
                if (path.indexOf(':') !== -1) {
                    path = path.replace(/:/, '.');
                }

                return getPropByPath(model, path).v;
            }
        },
        labelStyles: function labelStyles() {
            var style = {};
            var labelWidth = this.labelWidth || this.form.labelWidth;
            if (labelWidth) {
                style.width = labelWidth + 'px';
            }
            return style;
        },
        contentStyles: function contentStyles() {
            var style = {};
            var labelWidth = this.labelWidth || this.form.labelWidth;
            if (labelWidth) {
                style.marginLeft = labelWidth + 'px';
            }
            return style;
        }
    },
    methods: {
        getRules: function getRules() {
            var formRules = this.form.rules;
            var selfRules = this.rules;

            formRules = formRules ? formRules[this.prop] : [];

            return [].concat(selfRules || formRules || []);
        },
        getFilteredRule: function getFilteredRule(trigger) {
            var rules = this.getRules();

            return rules.filter(function (rule) {
                return !rule.trigger || rule.trigger.indexOf(trigger) !== -1;
            });
        },
        validate: function validate(trigger) {
            var _this = this;

            var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};

            var rules = this.getFilteredRule(trigger);
            if (!rules || rules.length === 0) {
                callback();
                return true;
            }

            this.validateState = 'validating';

            var descriptor = {};
            descriptor[this.prop] = rules;

            var validator = new _asyncValidator2.default(descriptor);
            var model = {};

            model[this.prop] = this.fieldValue;

            validator.validate(model, { firstFields: true }, function (errors) {
                _this.validateState = !errors ? 'success' : 'error';
                _this.validateMessage = errors ? errors[0].message : '';

                callback(_this.validateMessage);
            });
            this.validateDisabled = false;
        },
        resetField: function resetField() {
            this.validateState = '';
            this.validateMessage = '';

            var model = this.form.model;
            var value = this.fieldValue;
            var path = this.prop;
            if (path.indexOf(':') !== -1) {
                path = path.replace(/:/, '.');
            }

            var prop = getPropByPath(model, path);

            if (Array.isArray(value)) {
                this.validateDisabled = true;
                prop.o[prop.k] = [].concat(this.initialValue);
            } else {
                this.validateDisabled = true;
                prop.o[prop.k] = this.initialValue;
            }
        },
        onFieldBlur: function onFieldBlur() {
            this.validate('blur');
        },
        onFieldChange: function onFieldChange() {
            if (this.validateDisabled) {
                this.validateDisabled = false;
                return;
            }

            this.validate('change');
        }
    },
    mounted: function mounted() {
        var _this2 = this;

        if (this.prop) {
            this.dispatch('iForm', 'on-form-item-add', this);

            Object.defineProperty(this, 'initialValue', {
                value: this.fieldValue
            });

            var rules = this.getRules();

            if (rules.length) {
                rules.every(function (rule) {
                    if (rule.required) {
                        _this2.isRequired = true;
                        return false;
                    }
                });
                this.$on('on-form-blur', this.onFieldBlur);
                this.$on('on-form-change', this.onFieldChange);
            }
        }
    },
    beforeDestroy: function beforeDestroy() {
        this.dispatch('iForm', 'on-form-item-remove', this);
    }
};

/***/ }),
/* 329 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(97);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__validator___ = __webpack_require__(330);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__messages__ = __webpack_require__(350);






/**
 *  Encapsulates a validation schema.
 *
 *  @param descriptor An object declaring validation rules
 *  for this schema.
 */
function Schema(descriptor) {
  this.rules = null;
  this._messages = __WEBPACK_IMPORTED_MODULE_4__messages__["a" /* messages */];
  this.define(descriptor);
}

Schema.prototype = {
  messages: function messages(_messages) {
    if (_messages) {
      this._messages = Object(__WEBPACK_IMPORTED_MODULE_2__util__["c" /* deepMerge */])(Object(__WEBPACK_IMPORTED_MODULE_4__messages__["b" /* newMessages */])(), _messages);
    }
    return this._messages;
  },
  define: function define(rules) {
    if (!rules) {
      throw new Error('Cannot configure a schema with no rules');
    }
    if ((typeof rules === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(rules)) !== 'object' || Array.isArray(rules)) {
      throw new Error('Rules must be an object');
    }
    this.rules = {};
    var z = void 0;
    var item = void 0;
    for (z in rules) {
      if (rules.hasOwnProperty(z)) {
        item = rules[z];
        this.rules[z] = Array.isArray(item) ? item : [item];
      }
    }
  },
  validate: function validate(source_) {
    var _this = this;

    var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    var oc = arguments[2];

    var source = source_;
    var options = o;
    var callback = oc;
    if (typeof options === 'function') {
      callback = options;
      options = {};
    }
    if (!this.rules || Object.keys(this.rules).length === 0) {
      if (callback) {
        callback();
      }
      return;
    }
    function complete(results) {
      var i = void 0;
      var field = void 0;
      var errors = [];
      var fields = {};

      function add(e) {
        if (Array.isArray(e)) {
          errors = errors.concat.apply(errors, e);
        } else {
          errors.push(e);
        }
      }

      for (i = 0; i < results.length; i++) {
        add(results[i]);
      }
      if (!errors.length) {
        errors = null;
        fields = null;
      } else {
        for (i = 0; i < errors.length; i++) {
          field = errors[i].field;
          fields[field] = fields[field] || [];
          fields[field].push(errors[i]);
        }
      }
      callback(errors, fields);
    }

    if (options.messages) {
      var messages = this.messages();
      if (messages === __WEBPACK_IMPORTED_MODULE_4__messages__["a" /* messages */]) {
        messages = Object(__WEBPACK_IMPORTED_MODULE_4__messages__["b" /* newMessages */])();
      }
      Object(__WEBPACK_IMPORTED_MODULE_2__util__["c" /* deepMerge */])(messages, options.messages);
      options.messages = messages;
    } else {
      options.messages = this.messages();
    }
    var arr = void 0;
    var value = void 0;
    var series = {};
    var keys = options.keys || Object.keys(this.rules);
    keys.forEach(function (z) {
      arr = _this.rules[z];
      value = source[z];
      arr.forEach(function (r) {
        var rule = r;
        if (typeof rule.transform === 'function') {
          if (source === source_) {
            source = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, source);
          }
          value = source[z] = rule.transform(value);
        }
        if (typeof rule === 'function') {
          rule = {
            validator: rule
          };
        } else {
          rule = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, rule);
        }
        rule.validator = _this.getValidationMethod(rule);
        rule.field = z;
        rule.fullField = rule.fullField || z;
        rule.type = _this.getType(rule);
        if (!rule.validator) {
          return;
        }
        series[z] = series[z] || [];
        series[z].push({
          rule: rule,
          value: value,
          source: source,
          field: z
        });
      });
    });
    var errorFields = {};
    Object(__WEBPACK_IMPORTED_MODULE_2__util__["a" /* asyncMap */])(series, options, function (data, doIt) {
      var rule = data.rule;
      var deep = (rule.type === 'object' || rule.type === 'array') && (__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(rule.fields) === 'object' || __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(rule.defaultField) === 'object');
      deep = deep && (rule.required || !rule.required && data.value);
      rule.field = data.field;
      function addFullfield(key, schema) {
        return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, schema, {
          fullField: rule.fullField + '.' + key
        });
      }

      function cb() {
        var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];

        var errors = e;
        if (!Array.isArray(errors)) {
          errors = [errors];
        }
        if (errors.length) {
          Object(__WEBPACK_IMPORTED_MODULE_2__util__["f" /* warning */])('async-validator:', errors);
        }
        if (errors.length && rule.message) {
          errors = [].concat(rule.message);
        }

        errors = errors.map(Object(__WEBPACK_IMPORTED_MODULE_2__util__["b" /* complementError */])(rule));

        if (options.first && errors.length) {
          errorFields[rule.field] = 1;
          return doIt(errors);
        }
        if (!deep) {
          doIt(errors);
        } else {
          // if rule is required but the target object
          // does not exist fail at the rule level and don't
          // go deeper
          if (rule.required && !data.value) {
            if (rule.message) {
              errors = [].concat(rule.message).map(Object(__WEBPACK_IMPORTED_MODULE_2__util__["b" /* complementError */])(rule));
            } else if (options.error) {
              errors = [options.error(rule, Object(__WEBPACK_IMPORTED_MODULE_2__util__["d" /* format */])(options.messages.required, rule.field))];
            } else {
              errors = [];
            }
            return doIt(errors);
          }

          var fieldsSchema = {};
          if (rule.defaultField) {
            for (var k in data.value) {
              if (data.value.hasOwnProperty(k)) {
                fieldsSchema[k] = rule.defaultField;
              }
            }
          }
          fieldsSchema = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, fieldsSchema, data.rule.fields);
          for (var f in fieldsSchema) {
            if (fieldsSchema.hasOwnProperty(f)) {
              var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];
              fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));
            }
          }
          var schema = new Schema(fieldsSchema);
          schema.messages(options.messages);
          if (data.rule.options) {
            data.rule.options.messages = options.messages;
            data.rule.options.error = options.error;
          }
          schema.validate(data.value, data.rule.options || options, function (errs) {
            doIt(errs && errs.length ? errors.concat(errs) : errs);
          });
        }
      }

      var res = rule.validator(rule, data.value, cb, data.source, options);
      if (res && res.then) {
        res.then(function () {
          return cb();
        }, function (e) {
          return cb(e);
        });
      }
    }, function (results) {
      complete(results);
    });
  },
  getType: function getType(rule) {
    if (rule.type === undefined && rule.pattern instanceof RegExp) {
      rule.type = 'pattern';
    }
    if (typeof rule.validator !== 'function' && rule.type && !__WEBPACK_IMPORTED_MODULE_3__validator___["a" /* default */].hasOwnProperty(rule.type)) {
      throw new Error(Object(__WEBPACK_IMPORTED_MODULE_2__util__["d" /* format */])('Unknown rule type %s', rule.type));
    }
    return rule.type || 'string';
  },
  getValidationMethod: function getValidationMethod(rule) {
    if (typeof rule.validator === 'function') {
      return rule.validator;
    }
    var keys = Object.keys(rule);
    var messageIndex = keys.indexOf('message');
    if (messageIndex !== -1) {
      keys.splice(messageIndex, 1);
    }
    if (keys.length === 1 && keys[0] === 'required') {
      return __WEBPACK_IMPORTED_MODULE_3__validator___["a" /* default */].required;
    }
    return __WEBPACK_IMPORTED_MODULE_3__validator___["a" /* default */][this.getType(rule)] || false;
  }
};

Schema.register = function register(type, validator) {
  if (typeof validator !== 'function') {
    throw new Error('Cannot register a validator by type, validator is not a function');
  }
  __WEBPACK_IMPORTED_MODULE_3__validator___["a" /* default */][type] = validator;
};

Schema.messages = __WEBPACK_IMPORTED_MODULE_4__messages__["a" /* messages */];

/* harmony default export */ __webpack_exports__["default"] = (Schema);

/***/ }),
/* 330 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__string__ = __webpack_require__(331);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__method__ = __webpack_require__(337);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__number__ = __webpack_require__(338);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__boolean__ = __webpack_require__(339);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__regexp__ = __webpack_require__(340);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__integer__ = __webpack_require__(341);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__float__ = __webpack_require__(342);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__array__ = __webpack_require__(343);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__object__ = __webpack_require__(344);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__enum__ = __webpack_require__(345);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__pattern__ = __webpack_require__(346);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__date__ = __webpack_require__(347);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__required__ = __webpack_require__(348);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__type__ = __webpack_require__(349);















/* harmony default export */ __webpack_exports__["a"] = ({
  string: __WEBPACK_IMPORTED_MODULE_0__string__["a" /* default */],
  method: __WEBPACK_IMPORTED_MODULE_1__method__["a" /* default */],
  number: __WEBPACK_IMPORTED_MODULE_2__number__["a" /* default */],
  boolean: __WEBPACK_IMPORTED_MODULE_3__boolean__["a" /* default */],
  regexp: __WEBPACK_IMPORTED_MODULE_4__regexp__["a" /* default */],
  integer: __WEBPACK_IMPORTED_MODULE_5__integer__["a" /* default */],
  float: __WEBPACK_IMPORTED_MODULE_6__float__["a" /* default */],
  array: __WEBPACK_IMPORTED_MODULE_7__array__["a" /* default */],
  object: __WEBPACK_IMPORTED_MODULE_8__object__["a" /* default */],
  'enum': __WEBPACK_IMPORTED_MODULE_9__enum__["a" /* default */],
  pattern: __WEBPACK_IMPORTED_MODULE_10__pattern__["a" /* default */],
  date: __WEBPACK_IMPORTED_MODULE_11__date__["a" /* default */],
  url: __WEBPACK_IMPORTED_MODULE_13__type__["a" /* default */],
  hex: __WEBPACK_IMPORTED_MODULE_13__type__["a" /* default */],
  email: __WEBPACK_IMPORTED_MODULE_13__type__["a" /* default */],
  required: __WEBPACK_IMPORTED_MODULE_12__required__["a" /* default */]
});

/***/ }),
/* 331 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



/**
 *  Performs validation for string types.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function string(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value, 'string') && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options, 'string');
    if (!Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value, 'string')) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].range(rule, value, source, errors, options);
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].pattern(rule, value, source, errors, options);
      if (rule.whitespace === true) {
        __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].whitespace(rule, value, source, errors, options);
      }
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (string);

/***/ }),
/* 332 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(4);


/**
 *  Rule for validating whitespace.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param source The source object being validated.
 *  @param errors An array of errors that this rule may add
 *  validation errors to.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function whitespace(rule, value, source, errors, options) {
  if (/^\s+$/.test(value) || value === '') {
    errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages.whitespace, rule.fullField));
  }
}

/* harmony default export */ __webpack_exports__["a"] = (whitespace);

/***/ }),
/* 333 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__required__ = __webpack_require__(98);




/* eslint max-len:0 */

var pattern = {
  // http://emailregex.com/
  email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
  url: new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', 'i'),
  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i
};

var types = {
  integer: function integer(value) {
    return types.number(value) && parseInt(value, 10) === value;
  },
  float: function float(value) {
    return types.number(value) && !types.integer(value);
  },
  array: function array(value) {
    return Array.isArray(value);
  },
  regexp: function regexp(value) {
    if (value instanceof RegExp) {
      return true;
    }
    try {
      return !!new RegExp(value);
    } catch (e) {
      return false;
    }
  },
  date: function date(value) {
    return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';
  },
  number: function number(value) {
    if (isNaN(value)) {
      return false;
    }
    return typeof value === 'number';
  },
  object: function object(value) {
    return (typeof value === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(value)) === 'object' && !types.array(value);
  },
  method: function method(value) {
    return typeof value === 'function';
  },
  email: function email(value) {
    return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;
  },
  url: function url(value) {
    return typeof value === 'string' && !!value.match(pattern.url);
  },
  hex: function hex(value) {
    return typeof value === 'string' && !!value.match(pattern.hex);
  }
};

/**
 *  Rule for validating the type of a value.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param source The source object being validated.
 *  @param errors An array of errors that this rule may add
 *  validation errors to.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function type(rule, value, source, errors, options) {
  if (rule.required && value === undefined) {
    Object(__WEBPACK_IMPORTED_MODULE_2__required__["a" /* default */])(rule, value, source, errors, options);
    return;
  }
  var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];
  var ruleType = rule.type;
  if (custom.indexOf(ruleType) > -1) {
    if (!types[ruleType](value)) {
      errors.push(__WEBPACK_IMPORTED_MODULE_1__util__["d" /* format */](options.messages.types[ruleType], rule.fullField, rule.type));
    }
    // straight typeof check
  } else if (ruleType && (typeof value === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(value)) !== rule.type) {
    errors.push(__WEBPACK_IMPORTED_MODULE_1__util__["d" /* format */](options.messages.types[ruleType], rule.fullField, rule.type));
  }
}

/* harmony default export */ __webpack_exports__["a"] = (type);

/***/ }),
/* 334 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(4);


/**
 *  Rule for validating minimum and maximum allowed values.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param source The source object being validated.
 *  @param errors An array of errors that this rule may add
 *  validation errors to.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function range(rule, value, source, errors, options) {
  var len = typeof rule.len === 'number';
  var min = typeof rule.min === 'number';
  var max = typeof rule.max === 'number';
  var val = value;
  var key = null;
  var num = typeof value === 'number';
  var str = typeof value === 'string';
  var arr = Array.isArray(value);
  if (num) {
    key = 'number';
  } else if (str) {
    key = 'string';
  } else if (arr) {
    key = 'array';
  }
  // if the value is not of a supported type for range validation
  // the validation rule rule should use the
  // type property to also test for a particular type
  if (!key) {
    return false;
  }
  if (str || arr) {
    val = value.length;
  }
  if (len) {
    if (val !== rule.len) {
      errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages[key].len, rule.fullField, rule.len));
    }
  } else if (min && !max && val < rule.min) {
    errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages[key].min, rule.fullField, rule.min));
  } else if (max && !min && val > rule.max) {
    errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages[key].max, rule.fullField, rule.max));
  } else if (min && max && (val < rule.min || val > rule.max)) {
    errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages[key].range, rule.fullField, rule.min, rule.max));
  }
}

/* harmony default export */ __webpack_exports__["a"] = (range);

/***/ }),
/* 335 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(4);

var ENUM = 'enum';

/**
 *  Rule for validating a value exists in an enumerable list.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param source The source object being validated.
 *  @param errors An array of errors that this rule may add
 *  validation errors to.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function enumerable(rule, value, source, errors, options) {
  rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];
  if (rule[ENUM].indexOf(value) === -1) {
    errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));
  }
}

/* harmony default export */ __webpack_exports__["a"] = (enumerable);

/***/ }),
/* 336 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(4);


/**
 *  Rule for validating a regular expression pattern.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param source The source object being validated.
 *  @param errors An array of errors that this rule may add
 *  validation errors to.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function pattern(rule, value, source, errors, options) {
  if (rule.pattern) {
    if (rule.pattern instanceof RegExp) {
      if (!rule.pattern.test(value)) {
        errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));
      }
    } else if (typeof rule.pattern === 'string') {
      var _pattern = new RegExp(rule.pattern);
      if (!_pattern.test(value)) {
        errors.push(__WEBPACK_IMPORTED_MODULE_0__util__["d" /* format */](options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));
      }
    }
  }
}

/* harmony default export */ __webpack_exports__["a"] = (pattern);

/***/ }),
/* 337 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



/**
 *  Validates a function.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function method(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (value !== undefined) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (method);

/***/ }),
/* 338 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



/**
 *  Validates a number.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function number(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (value !== undefined) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].range(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (number);

/***/ }),
/* 339 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rule___ = __webpack_require__(6);



/**
 *  Validates a boolean.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function boolean(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_0__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_1__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (value !== undefined) {
      __WEBPACK_IMPORTED_MODULE_1__rule___["a" /* default */].type(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (boolean);

/***/ }),
/* 340 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



/**
 *  Validates the regular expression type.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function regexp(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (!Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value)) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (regexp);

/***/ }),
/* 341 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



/**
 *  Validates a number is an integer.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function integer(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (value !== undefined) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].range(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (integer);

/***/ }),
/* 342 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



/**
 *  Validates a number is a floating point number.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function floatFn(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (value !== undefined) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].range(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (floatFn);

/***/ }),
/* 343 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);


/**
 *  Validates an array.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function array(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value, 'array') && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options, 'array');
    if (!Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value, 'array')) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].range(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (array);

/***/ }),
/* 344 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



/**
 *  Validates an object.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function object(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (value !== undefined) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (object);

/***/ }),
/* 345 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);


var ENUM = 'enum';

/**
 *  Validates an enumerable list.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function enumerable(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (value) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */][ENUM](rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (enumerable);

/***/ }),
/* 346 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



/**
 *  Validates a regular expression pattern.
 *
 *  Performs validation when a rule only contains
 *  a pattern property but is not declared as a string type.
 *
 *  @param rule The validation rule.
 *  @param value The value of the field on the source object.
 *  @param callback The callback function.
 *  @param source The source object being validated.
 *  @param options The validation options.
 *  @param options.messages The validation messages.
 */
function pattern(rule, value, callback, source, options) {
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value, 'string') && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (!Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value, 'string')) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].pattern(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (pattern);

/***/ }),
/* 347 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



function date(rule, value, callback, source, options) {
  // console.log('integer rule called %j', rule);
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  // console.log('validate on %s value', value);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options);
    if (!Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value)) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
      if (value) {
        __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].range(rule, value.getTime(), source, errors, options);
      }
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (date);

/***/ }),
/* 348 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rule___ = __webpack_require__(6);



function required(rule, value, callback, source, options) {
  var errors = [];
  var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(value);
  __WEBPACK_IMPORTED_MODULE_1__rule___["a" /* default */].required(rule, value, source, errors, options, type);
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (required);

/***/ }),
/* 349 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(4);



function type(rule, value, callback, source, options) {
  var ruleType = rule.type;
  var errors = [];
  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
  if (validate) {
    if (Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value, ruleType) && !rule.required) {
      return callback();
    }
    __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].required(rule, value, source, errors, options, ruleType);
    if (!Object(__WEBPACK_IMPORTED_MODULE_1__util__["e" /* isEmptyValue */])(value, ruleType)) {
      __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, value, source, errors, options);
    }
  }
  callback(errors);
}

/* harmony default export */ __webpack_exports__["a"] = (type);

/***/ }),
/* 350 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (immutable) */ __webpack_exports__["b"] = newMessages;
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return messages; });
function newMessages() {
  return {
    'default': 'Validation error on field %s',
    required: '%s is required',
    'enum': '%s must be one of %s',
    whitespace: '%s cannot be empty',
    date: {
      format: '%s date %s is invalid for format %s',
      parse: '%s date could not be parsed, %s is invalid ',
      invalid: '%s date %s is invalid'
    },
    types: {
      string: '%s is not a %s',
      method: '%s is not a %s (function)',
      array: '%s is not an %s',
      object: '%s is not an %s',
      number: '%s is not a %s',
      date: '%s is not a %s',
      boolean: '%s is not a %s',
      integer: '%s is not an %s',
      float: '%s is not a %s',
      regexp: '%s is not a valid %s',
      email: '%s is not a valid %s',
      url: '%s is not a valid %s',
      hex: '%s is not a valid %s'
    },
    string: {
      len: '%s must be exactly %s characters',
      min: '%s must be at least %s characters',
      max: '%s cannot be longer than %s characters',
      range: '%s must be between %s and %s characters'
    },
    number: {
      len: '%s must equal %s',
      min: '%s cannot be less than %s',
      max: '%s cannot be greater than %s',
      range: '%s must be between %s and %s'
    },
    array: {
      len: '%s must be exactly %s in length',
      min: '%s cannot be less than %s in length',
      max: '%s cannot be greater than %s in length',
      range: '%s must be between %s and %s in length'
    },
    pattern: {
      mismatch: '%s value %s does not match pattern %s'
    },
    clone: function clone() {
      var cloned = JSON.parse(JSON.stringify(this));
      cloned.clone = this.clone;
      return cloned;
    }
  };
}

var messages = newMessages();

/***/ }),
/* 351 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_vm.label || _vm.$slots.label ? _c('label', {
      class: [_vm.prefixCls + '-label'],
      style: _vm.labelStyles,
      attrs: {
        "for": _vm.labelFor
      }
    }, [_vm._t("label", [_vm._v(_vm._s(_vm.label))])], 2) : _vm._e(), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-content'],
      style: _vm.contentStyles
    }, [_vm._t("default"), _vm._v(" "), _c('transition', {
      attrs: {
        "name": "fade"
      }
    }, [_vm.validateState === 'error' && _vm.showMessage && _vm.form.showMessage ? _c('div', {
      class: [_vm.prefixCls + '-error-tip']
    }, [_vm._v(_vm._s(_vm.validateMessage))]) : _vm._e()])], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 352 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _input = __webpack_require__(35);

var _input2 = _interopRequireDefault(_input);

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

exports.default = _input2.default;

/***/ }),
/* 353 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _inputNumber = __webpack_require__(99);

var _inputNumber2 = _interopRequireDefault(_inputNumber);

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

exports.default = _inputNumber2.default;

/***/ }),
/* 354 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-input-number';
var iconPrefixCls = 'ivu-icon';

function isValueNumber(value) {
    return (/(^-?[0-9]+\.{1}\d+$)|(^-?[1-9][0-9]*$)|(^-?0{1}$)/.test(value + '')
    );
}
function addNum(num1, num2) {
    var sq1 = void 0,
        sq2 = void 0,
        m = void 0;
    try {
        sq1 = num1.toString().split('.')[1].length;
    } catch (e) {
        sq1 = 0;
    }
    try {
        sq2 = num2.toString().split('.')[1].length;
    } catch (e) {
        sq2 = 0;
    }

    m = Math.pow(10, Math.max(sq1, sq2));
    return (Math.round(num1 * m) + Math.round(num2 * m)) / m;
}

exports.default = {
    name: 'InputNumber',
    mixins: [_emitter2.default],
    props: {
        max: {
            type: Number,
            default: Infinity
        },
        min: {
            type: Number,
            default: -Infinity
        },
        step: {
            type: Number,
            default: 1
        },
        value: {
            type: Number,
            default: 1
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        disabled: {
            type: Boolean,
            default: false
        },
        autofocus: {
            type: Boolean,
            default: false
        },
        name: {
            type: String
        },
        precision: {
            type: Number
        },
        elementId: {
            type: String
        }
    },
    data: function data() {
        return {
            focused: false,
            upDisabled: false,
            downDisabled: false,
            currentValue: this.value
        };
    },

    computed: {
        wrapClasses: function wrapClasses() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref, prefixCls + '-disabled', this.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-focused', this.focused), _ref)];
        },
        handlerClasses: function handlerClasses() {
            return prefixCls + '-handler-wrap';
        },
        upClasses: function upClasses() {
            return [prefixCls + '-handler', prefixCls + '-handler-up', (0, _defineProperty3.default)({}, prefixCls + '-handler-up-disabled', this.upDisabled)];
        },
        innerUpClasses: function innerUpClasses() {
            return prefixCls + '-handler-up-inner ' + iconPrefixCls + ' ' + iconPrefixCls + '-ios-arrow-up';
        },
        downClasses: function downClasses() {
            return [prefixCls + '-handler', prefixCls + '-handler-down', (0, _defineProperty3.default)({}, prefixCls + '-handler-down-disabled', this.downDisabled)];
        },
        innerDownClasses: function innerDownClasses() {
            return prefixCls + '-handler-down-inner ' + iconPrefixCls + ' ' + iconPrefixCls + '-ios-arrow-down';
        },
        inputWrapClasses: function inputWrapClasses() {
            return prefixCls + '-input-wrap';
        },
        inputClasses: function inputClasses() {
            return prefixCls + '-input';
        },
        precisionValue: function precisionValue() {
            return this.precision ? this.currentValue.toFixed(this.precision) : this.currentValue;
        }
    },
    methods: {
        preventDefault: function preventDefault(e) {
            e.preventDefault();
        },
        up: function up(e) {
            var targetVal = Number(e.target.value);
            if (this.upDisabled && isNaN(targetVal)) {
                return false;
            }
            this.changeStep('up', e);
        },
        down: function down(e) {
            var targetVal = Number(e.target.value);
            if (this.downDisabled && isNaN(targetVal)) {
                return false;
            }
            this.changeStep('down', e);
        },
        changeStep: function changeStep(type, e) {
            if (this.disabled) {
                return false;
            }

            var targetVal = Number(e.target.value);
            var val = Number(this.currentValue);
            var step = Number(this.step);
            if (isNaN(val)) {
                return false;
            }

            if (!isNaN(targetVal)) {
                if (type === 'up') {
                    if (addNum(targetVal, step) <= this.max) {
                        val = targetVal;
                    } else {
                        return false;
                    }
                } else if (type === 'down') {
                    if (addNum(targetVal, -step) >= this.min) {
                        val = targetVal;
                    } else {
                        return false;
                    }
                }
            }

            if (type === 'up') {
                val = addNum(val, step);
            } else if (type === 'down') {
                val = addNum(val, -step);
            }
            this.setValue(val);
        },
        setValue: function setValue(val) {
            var _this = this;

            if (this.precision) val = Number(Number(val).toFixed(this.precision));

            this.$nextTick(function () {
                _this.currentValue = val;
                _this.$emit('input', val);
                _this.$emit('on-change', val);
                _this.dispatch('FormItem', 'on-form-change', val);
            });
        },
        focus: function focus() {
            this.focused = true;
        },
        blur: function blur() {
            this.focused = false;
        },
        keyDown: function keyDown(e) {
            if (e.keyCode === 38) {
                e.preventDefault();
                this.up(e);
            } else if (e.keyCode === 40) {
                e.preventDefault();
                this.down(e);
            }
        },
        change: function change(event) {
            var val = event.target.value.trim();

            var max = this.max;
            var min = this.min;

            if (isValueNumber(val)) {
                val = Number(val);
                this.currentValue = val;

                if (val > max) {
                    this.setValue(max);
                } else if (val < min) {
                    this.setValue(min);
                } else {
                    this.setValue(val);
                }
            } else {
                event.target.value = this.currentValue;
            }
        },
        changeVal: function changeVal(val) {
            if (isValueNumber(val) || val === 0) {
                val = Number(val);
                var step = this.step;

                this.upDisabled = val + step > this.max;
                this.downDisabled = val - step < this.min;
            } else {
                this.upDisabled = true;
                this.downDisabled = true;
            }
        }
    },
    mounted: function mounted() {
        this.changeVal(this.currentValue);
    },

    watch: {
        value: function value(val) {
            this.currentValue = val;
        },
        currentValue: function currentValue(val) {
            this.changeVal(val);
        },
        min: function min() {
            this.changeVal(this.currentValue);
        },
        max: function max() {
            this.changeVal(this.currentValue);
        }
    }
};

/***/ }),
/* 355 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.wrapClasses
    }, [_c('div', {
      class: _vm.handlerClasses
    }, [_c('a', {
      class: _vm.upClasses,
      on: {
        "click": _vm.up,
        "mousedown": _vm.preventDefault
      }
    }, [_c('span', {
      class: _vm.innerUpClasses,
      on: {
        "click": _vm.preventDefault
      }
    })]), _vm._v(" "), _c('a', {
      class: _vm.downClasses,
      on: {
        "click": _vm.down,
        "mousedown": _vm.preventDefault
      }
    }, [_c('span', {
      class: _vm.innerDownClasses,
      on: {
        "click": _vm.preventDefault
      }
    })])]), _vm._v(" "), _c('div', {
      class: _vm.inputWrapClasses
    }, [_c('input', {
      class: _vm.inputClasses,
      attrs: {
        "id": _vm.elementId,
        "disabled": _vm.disabled,
        "autocomplete": "off",
        "autofocus": _vm.autofocus,
        "name": _vm.name
      },
      domProps: {
        "value": _vm.precisionValue
      },
      on: {
        "focus": _vm.focus,
        "blur": _vm.blur,
        "keydown": function keydown($event) {
          $event.stopPropagation();
          _vm.keyDown($event);
        },
        "change": _vm.change
      }
    })])]);
  }, staticRenderFns: [] };

/***/ }),
/* 356 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _loadingBar = __webpack_require__(357);

var _loadingBar2 = _interopRequireDefault(_loadingBar);

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

var loadingBarInstance = void 0;
var color = 'primary';
var failedColor = 'error';
var height = 2;
var timer = void 0;

function getLoadingBarInstance() {
    loadingBarInstance = loadingBarInstance || _loadingBar2.default.newInstance({
        color: color,
        failedColor: failedColor,
        height: height
    });

    return loadingBarInstance;
}

function _update(options) {
    var instance = getLoadingBarInstance();

    instance.update(options);
}

function hide() {
    setTimeout(function () {
        _update({
            show: false
        });
        setTimeout(function () {
            _update({
                percent: 0
            });
        }, 200);
    }, 800);
}

function clearTimer() {
    if (timer) {
        clearInterval(timer);
        timer = null;
    }
}

exports.default = {
    start: function start() {
        if (timer) return;

        var percent = 0;

        _update({
            percent: percent,
            status: 'success',
            show: true
        });

        timer = setInterval(function () {
            percent += Math.floor(Math.random() * 3 + 5);
            if (percent > 95) {
                clearTimer();
            }
            _update({
                percent: percent,
                status: 'success',
                show: true
            });
        }, 200);
    },
    update: function update(percent) {
        clearTimer();
        _update({
            percent: percent,
            status: 'success',
            show: true
        });
    },
    finish: function finish() {
        clearTimer();
        _update({
            percent: 100,
            status: 'success',
            show: true
        });
        hide();
    },
    error: function error() {
        clearTimer();
        _update({
            percent: 100,
            status: 'error',
            show: true
        });
        hide();
    },
    config: function config(options) {
        if (options.color) {
            color = options.color;
        }
        if (options.failedColor) {
            failedColor = options.failedColor;
        }
        if (options.height) {
            height = options.height;
        }
    },
    destroy: function destroy() {
        clearTimer();
        var instance = getLoadingBarInstance();
        loadingBarInstance = null;
        instance.destroy();
    }
};

/***/ }),
/* 357 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _loadingBar = __webpack_require__(358);

var _loadingBar2 = _interopRequireDefault(_loadingBar);

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

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

_loadingBar2.default.newInstance = function (properties) {
    var _props = properties || {};

    var Instance = new _vue2.default({
        data: _props,
        render: function render(h) {
            return h(_loadingBar2.default, {
                props: _props
            });
        }
    });

    var component = Instance.$mount();
    document.body.appendChild(component.$el);
    var loading_bar = Instance.$children[0];

    return {
        update: function update(options) {
            if ('percent' in options) {
                loading_bar.percent = options.percent;
            }
            if (options.status) {
                loading_bar.status = options.status;
            }
            if ('show' in options) {
                loading_bar.show = options.show;
            }
        },

        component: loading_bar,
        destroy: function destroy() {
            document.body.removeChild(document.getElementsByClassName('ivu-loading-bar')[0]);
        }
    };
};

exports.default = _loadingBar2.default;

/***/ }),
/* 358 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(359),
  /* template */
  __webpack_require__(360),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 359 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

var prefixCls = 'ivu-loading-bar';

exports.default = {
    props: {
        color: {
            type: String,
            default: 'primary'
        },
        failedColor: {
            type: String,
            default: 'error'
        },
        height: {
            type: Number,
            default: 2
        }
    },
    data: function data() {
        return {
            percent: 0,

            status: 'success',
            show: false
        };
    },

    computed: {
        classes: function classes() {
            return '' + prefixCls;
        },
        innerClasses: function innerClasses() {
            var _ref;

            return [prefixCls + '-inner', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-inner-color-primary', this.color === 'primary' && this.status === 'success'), (0, _defineProperty3.default)(_ref, prefixCls + '-inner-failed-color-error', this.failedColor === 'error' && this.status === 'error'), _ref)];
        },
        outerStyles: function outerStyles() {
            return {
                height: this.height + 'px'
            };
        },
        styles: function styles() {
            var style = {
                width: this.percent + '%',
                height: this.height + 'px'
            };

            if (this.color !== 'primary' && this.status === 'success') {
                style.backgroundColor = this.color;
            }

            if (this.failedColor !== 'error' && this.status === 'error') {
                style.backgroundColor = this.failedColor;
            }

            return style;
        }
    }
};

/***/ }),
/* 360 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('transition', {
      attrs: {
        "name": "fade"
      }
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.show,
        expression: "show"
      }],
      class: _vm.classes,
      style: _vm.outerStyles
    }, [_c('div', {
      class: _vm.innerClasses,
      style: _vm.styles
    })])]);
  }, staticRenderFns: [] };

/***/ }),
/* 361 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _menu = __webpack_require__(362);

var _menu2 = _interopRequireDefault(_menu);

var _menuGroup = __webpack_require__(365);

var _menuGroup2 = _interopRequireDefault(_menuGroup);

var _menuItem = __webpack_require__(368);

var _menuItem2 = _interopRequireDefault(_menuItem);

var _submenu = __webpack_require__(371);

var _submenu2 = _interopRequireDefault(_submenu);

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

_menu2.default.Group = _menuGroup2.default;
_menu2.default.Item = _menuItem2.default;
_menu2.default.Sub = _submenu2.default;

exports.default = _menu2.default;

/***/ }),
/* 362 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(363),
  /* template */
  __webpack_require__(364),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 363 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-menu';

exports.default = {
    name: 'Menu',
    mixins: [_emitter2.default],
    props: {
        mode: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['horizontal', 'vertical']);
            },

            default: 'vertical'
        },
        theme: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['light', 'dark', 'primary']);
            },

            default: 'light'
        },
        activeName: {
            type: [String, Number]
        },
        openNames: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        accordion: {
            type: Boolean,
            default: false
        },
        width: {
            type: String,
            default: '240px'
        }
    },
    data: function data() {
        return {
            currentActiveName: this.activeName
        };
    },

    computed: {
        classes: function classes() {
            var theme = this.theme;
            if (this.mode === 'vertical' && this.theme === 'primary') theme = 'light';

            return ['' + prefixCls, prefixCls + '-' + theme, (0, _defineProperty3.default)({}, prefixCls + '-' + this.mode, this.mode)];
        },
        styles: function styles() {
            var style = {};

            if (this.mode === 'vertical') style.width = this.width;

            return style;
        }
    },
    methods: {
        updateActiveName: function updateActiveName() {
            if (this.currentActiveName === undefined) {
                this.currentActiveName = -1;
            }
            this.broadcast('Submenu', 'on-update-active-name', false);
            this.broadcast('MenuItem', 'on-update-active-name', this.currentActiveName);
        },
        updateOpenKeys: function updateOpenKeys(name) {
            var index = this.openNames.indexOf(name);
            if (index > -1) {
                this.openNames.splice(index, 1);
            } else {
                this.openNames.push(name);
                if (this.accordion) {
                    this.openNames.splice(0, this.openNames.length);
                    this.openNames.push(name);
                }
            }
        },
        updateOpened: function updateOpened() {
            var _this = this;

            var items = (0, _assist.findComponentsDownward)(this, 'Submenu');

            if (items.length) {
                items.forEach(function (item) {
                    if (_this.openNames.indexOf(item.name) > -1) item.opened = true;
                });
            }
        }
    },
    mounted: function mounted() {
        var _this2 = this;

        this.updateActiveName();
        this.updateOpened();
        this.$on('on-menu-item-select', function (name) {
            _this2.currentActiveName = name;
            _this2.$emit('on-select', name);
        });
    },

    watch: {
        openNames: function openNames() {
            this.$emit('on-open-change', this.openNames);
        },
        activeName: function activeName(val) {
            this.currentActiveName = val;
        },
        currentActiveName: function currentActiveName() {
            this.updateActiveName();
        }
    }
};

/***/ }),
/* 364 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('ul', {
      class: _vm.classes,
      style: _vm.styles
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 365 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(366),
  /* template */
  __webpack_require__(367),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 366 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});


var prefixCls = 'ivu-menu';

exports.default = {
    name: 'MenuGroup',
    props: {
        title: {
            type: String,
            default: ''
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls
        };
    }
};

/***/ }),
/* 367 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('li', {
      class: [_vm.prefixCls + '-item-group']
    }, [_c('div', {
      class: [_vm.prefixCls + '-item-group-title']
    }, [_vm._v(_vm._s(_vm.title))]), _vm._v(" "), _c('ul', [_vm._t("default")], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 368 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(369),
  /* template */
  __webpack_require__(370),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 369 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-menu';

exports.default = {
    name: 'MenuItem',
    mixins: [_emitter2.default],
    props: {
        name: {
            type: [String, Number],
            required: true
        },
        disabled: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            active: false
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return [prefixCls + '-item', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-item-active', this.active), (0, _defineProperty3.default)(_ref, prefixCls + '-item-selected', this.active), (0, _defineProperty3.default)(_ref, prefixCls + '-item-disabled', this.disabled), _ref)];
        }
    },
    methods: {
        handleClick: function handleClick() {
            if (this.disabled) return;

            var parent = this.$parent;
            var name = parent.$options.name;
            while (parent && (!name || name !== 'Submenu')) {
                parent = parent.$parent;
                if (parent) name = parent.$options.name;
            }

            if (parent) {
                this.dispatch('Submenu', 'on-menu-item-select', this.name);
            } else {
                this.dispatch('Menu', 'on-menu-item-select', this.name);
            }
        }
    },
    mounted: function mounted() {
        var _this = this;

        this.$on('on-update-active-name', function (name) {
            if (_this.name === name) {
                _this.active = true;
                _this.dispatch('Submenu', 'on-update-active-name', true);
            } else {
                _this.active = false;
            }
        });
    }
};

/***/ }),
/* 370 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('li', {
      class: _vm.classes,
      on: {
        "click": function click($event) {
          $event.stopPropagation();
          _vm.handleClick($event);
        }
      }
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 371 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(372),
  /* template */
  __webpack_require__(373),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 372 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _dropdown = __webpack_require__(25);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _collapseTransition = __webpack_require__(62);

var _collapseTransition2 = _interopRequireDefault(_collapseTransition);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-menu';

exports.default = {
    name: 'Submenu',
    mixins: [_emitter2.default],
    components: { Icon: _icon2.default, Drop: _dropdown2.default, CollapseTransition: _collapseTransition2.default },
    props: {
        name: {
            type: [String, Number],
            required: true
        },
        disabled: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            active: false,
            opened: false,
            dropWidth: parseFloat((0, _assist.getStyle)(this.$el, 'width')),
            parent: (0, _assist.findComponentUpward)(this, 'Menu')
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return [prefixCls + '-submenu', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-item-active', this.active), (0, _defineProperty3.default)(_ref, prefixCls + '-opened', this.opened), (0, _defineProperty3.default)(_ref, prefixCls + '-submenu-disabled', this.disabled), _ref)];
        },
        mode: function mode() {
            return this.parent.mode;
        },
        accordion: function accordion() {
            return this.parent.accordion;
        },
        dropStyle: function dropStyle() {
            var style = {};

            if (this.dropWidth) style.minWidth = this.dropWidth + 'px';
            return style;
        }
    },
    methods: {
        handleMouseenter: function handleMouseenter() {
            var _this = this;

            if (this.disabled) return;
            if (this.mode === 'vertical') return;

            clearTimeout(this.timeout);
            this.timeout = setTimeout(function () {
                _this.parent.updateOpenKeys(_this.name);
                _this.opened = true;
            }, 250);
        },
        handleMouseleave: function handleMouseleave() {
            var _this2 = this;

            if (this.disabled) return;
            if (this.mode === 'vertical') return;

            clearTimeout(this.timeout);
            this.timeout = setTimeout(function () {
                _this2.parent.updateOpenKeys(_this2.name);
                _this2.opened = false;
            }, 150);
        },
        handleClick: function handleClick() {
            if (this.disabled) return;
            if (this.mode === 'horizontal') return;
            var opened = this.opened;
            if (this.accordion) {
                this.parent.$children.forEach(function (item) {
                    if (item.$options.name === 'Submenu') item.opened = false;
                });
            }
            this.opened = !opened;
            this.parent.updateOpenKeys(this.name);
        }
    },
    watch: {
        mode: function mode(val) {
            if (val === 'horizontal') {
                this.$refs.drop.update();
            }
        },
        opened: function opened(val) {
            if (this.mode === 'vertical') return;
            if (val) {
                this.dropWidth = parseFloat((0, _assist.getStyle)(this.$el, 'width'));
                this.$refs.drop.update();
            } else {
                this.$refs.drop.destroy();
            }
        }
    },
    mounted: function mounted() {
        var _this3 = this;

        this.$on('on-menu-item-select', function (name) {
            if (_this3.mode === 'horizontal') _this3.opened = false;
            _this3.dispatch('Menu', 'on-menu-item-select', name);
            return true;
        });
        this.$on('on-update-active-name', function (status) {
            _this3.active = status;
        });
    }
};

/***/ }),
/* 373 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('li', {
      class: _vm.classes,
      on: {
        "mouseenter": _vm.handleMouseenter,
        "mouseleave": _vm.handleMouseleave
      }
    }, [_c('div', {
      ref: "reference",
      class: [_vm.prefixCls + '-submenu-title'],
      on: {
        "click": _vm.handleClick
      }
    }, [_vm._t("title"), _vm._v(" "), _c('Icon', {
      class: [_vm.prefixCls + '-submenu-title-icon'],
      attrs: {
        "type": "ios-arrow-down"
      }
    })], 2), _vm._v(" "), _vm.mode === 'vertical' ? _c('collapse-transition', [_c('ul', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.opened,
        expression: "opened"
      }],
      class: [_vm.prefixCls]
    }, [_vm._t("default")], 2)]) : _c('transition', {
      attrs: {
        "name": "slide-up"
      }
    }, [_c('Drop', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.opened,
        expression: "opened"
      }],
      ref: "drop",
      style: _vm.dropStyle,
      attrs: {
        "placement": "bottom"
      }
    }, [_c('ul', {
      class: [_vm.prefixCls + '-drop-list']
    }, [_vm._t("default")], 2)])], 1)], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 374 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _typeof2 = __webpack_require__(11);

var _typeof3 = _interopRequireDefault(_typeof2);

var _notification = __webpack_require__(100);

var _notification2 = _interopRequireDefault(_notification);

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

var prefixCls = 'ivu-message';
var iconPrefixCls = 'ivu-icon';
var prefixKey = 'ivu_message_key_';

var defaultDuration = 1.5;
var top = void 0;
var messageInstance = void 0;
var name = 1;

var iconTypes = {
    'info': 'information-circled',
    'success': 'checkmark-circled',
    'warning': 'android-alert',
    'error': 'close-circled',
    'loading': 'load-c'
};

function getMessageInstance() {
    messageInstance = messageInstance || _notification2.default.newInstance({
        prefixCls: prefixCls,
        styles: {
            top: top + 'px'
        }
    });

    return messageInstance;
}

function notice() {
    var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
    var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultDuration;
    var type = arguments[2];
    var onClose = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
    var closable = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;

    var iconType = iconTypes[type];

    var loadCls = type === 'loading' ? ' ivu-load-loop' : '';

    var instance = getMessageInstance();

    instance.notice({
        name: '' + prefixKey + name,
        duration: duration,
        styles: {},
        transitionName: 'move-up',
        content: '\n            <div class="' + prefixCls + '-custom-content ' + prefixCls + '-' + type + '">\n                <i class="' + iconPrefixCls + ' ' + iconPrefixCls + '-' + iconType + loadCls + '"></i>\n                <span>' + content + '</span>\n            </div>\n        ',
        onClose: onClose,
        closable: closable,
        type: 'message'
    });

    return function () {
        var target = name++;

        return function () {
            instance.remove('' + prefixKey + target);
        };
    }();
}

exports.default = {
    name: 'Message',

    info: function info(options) {
        var type = typeof options === 'undefined' ? 'undefined' : (0, _typeof3.default)(options);
        if (type === 'string') {
            options = {
                content: options
            };
        }
        return notice(options.content, options.duration, 'info', options.onClose, options.closable);
    },
    success: function success(options) {
        var type = typeof options === 'undefined' ? 'undefined' : (0, _typeof3.default)(options);
        if (type === 'string') {
            options = {
                content: options
            };
        }
        return notice(options.content, options.duration, 'success', options.onClose, options.closable);
    },
    warning: function warning(options) {
        var type = typeof options === 'undefined' ? 'undefined' : (0, _typeof3.default)(options);
        if (type === 'string') {
            options = {
                content: options
            };
        }
        return notice(options.content, options.duration, 'warning', options.onClose, options.closable);
    },
    error: function error(options) {
        var type = typeof options === 'undefined' ? 'undefined' : (0, _typeof3.default)(options);
        if (type === 'string') {
            options = {
                content: options
            };
        }
        return notice(options.content, options.duration, 'error', options.onClose, options.closable);
    },
    loading: function loading(options) {
        var type = typeof options === 'undefined' ? 'undefined' : (0, _typeof3.default)(options);
        if (type === 'string') {
            options = {
                content: options
            };
        }
        return notice(options.content, options.duration, 'loading', options.onClose, options.closable);
    },
    config: function config(options) {
        if (options.top) {
            top = options.top;
        }
        if (options.duration) {
            defaultDuration = options.duration;
        }
    },
    destroy: function destroy() {
        var instance = getMessageInstance();
        messageInstance = null;
        instance.destroy('ivu-message');
    }
};

/***/ }),
/* 375 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(376),
  /* template */
  __webpack_require__(380),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 376 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _notice2 = __webpack_require__(377);

var _notice3 = _interopRequireDefault(_notice2);

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

var prefixCls = 'ivu-notification';
var seed = 0;
var now = Date.now();

function getUuid() {
    return 'ivuNotification_' + now + '_' + seed++;
}

exports.default = {
    components: { Notice: _notice3.default },
    props: {
        prefixCls: {
            type: String,
            default: prefixCls
        },
        styles: {
            type: Object,
            default: function _default() {
                return {
                    top: '65px',
                    left: '50%'
                };
            }
        },
        content: {
            type: String
        },
        className: {
            type: String
        }
    },
    data: function data() {
        return {
            notices: []
        };
    },

    computed: {
        classes: function classes() {
            return ['' + this.prefixCls, (0, _defineProperty3.default)({}, '' + this.className, !!this.className)];
        }
    },
    methods: {
        add: function add(notice) {
            var name = notice.name || getUuid();

            var _notice = (0, _assign2.default)({
                styles: {
                    right: '50%'
                },
                content: '',
                duration: 1.5,
                closable: false,
                name: name
            }, notice);

            this.notices.push(_notice);
        },
        close: function close(name) {
            var notices = this.notices;
            for (var i = 0; i < notices.length; i++) {
                if (notices[i].name === name) {
                    this.notices.splice(i, 1);
                    break;
                }
            }
        },
        closeAll: function closeAll() {
            this.notices = [];
        }
    }
};

/***/ }),
/* 377 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(378),
  /* template */
  __webpack_require__(379),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 378 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

exports.default = {
    props: {
        prefixCls: {
            type: String,
            default: ''
        },
        duration: {
            type: Number,
            default: 1.5
        },
        type: {
            type: String
        },
        content: {
            type: String,
            default: ''
        },
        styles: {
            type: Object,
            default: function _default() {
                return {
                    right: '50%'
                };
            }
        },
        closable: {
            type: Boolean,
            default: false
        },
        className: {
            type: String
        },
        name: {
            type: String,
            required: true
        },
        onClose: {
            type: Function
        },
        transitionName: {
            type: String
        }
    },
    data: function data() {
        return {
            withDesc: false
        };
    },

    computed: {
        baseClass: function baseClass() {
            return this.prefixCls + '-notice';
        },
        classes: function classes() {
            var _ref;

            return [this.baseClass, (_ref = {}, (0, _defineProperty3.default)(_ref, '' + this.className, !!this.className), (0, _defineProperty3.default)(_ref, this.baseClass + '-closable', this.closable), (0, _defineProperty3.default)(_ref, this.baseClass + '-with-desc', this.withDesc), _ref)];
        },
        contentClasses: function contentClasses() {
            return this.baseClass + '-content';
        }
    },
    methods: {
        clearCloseTimer: function clearCloseTimer() {
            if (this.closeTimer) {
                clearTimeout(this.closeTimer);
                this.closeTimer = null;
            }
        },
        close: function close() {
            this.clearCloseTimer();
            this.onClose();
            this.$parent.close(this.name);
        },
        handleEnter: function handleEnter(el) {
            if (this.type === 'message') {
                el.style.height = el.scrollHeight + 'px';
            }
        },
        handleLeave: function handleLeave(el) {
            if (this.type === 'message') {
                if (document.getElementsByClassName('ivu-message-notice').length !== 1) {
                    el.style.height = 0;
                    el.style.paddingTop = 0;
                    el.style.paddingBottom = 0;
                }
            }
        }
    },
    mounted: function mounted() {
        var _this = this;

        this.clearCloseTimer();

        if (this.duration !== 0) {
            this.closeTimer = setTimeout(function () {
                _this.close();
            }, this.duration * 1000);
        }

        if (this.prefixCls === 'ivu-notice') {
            this.withDesc = this.$refs.content.querySelectorAll('.' + this.prefixCls + '-desc')[0].innerHTML !== '';
        }
    },
    beforeDestroy: function beforeDestroy() {
        this.clearCloseTimer();
    }
};

/***/ }),
/* 379 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('transition', {
      attrs: {
        "name": _vm.transitionName
      },
      on: {
        "enter": _vm.handleEnter,
        "leave": _vm.handleLeave
      }
    }, [_c('div', {
      class: _vm.classes,
      style: _vm.styles
    }, [_vm.type === 'notice' ? [_c('div', {
      ref: "content",
      class: [_vm.baseClass + '-content'],
      domProps: {
        "innerHTML": _vm._s(_vm.content)
      }
    }), _vm._v(" "), _vm.closable ? _c('a', {
      class: [_vm.baseClass + '-close'],
      on: {
        "click": _vm.close
      }
    }, [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-close-empty"
    })]) : _vm._e()] : _vm._e(), _vm._v(" "), _vm.type === 'message' ? [_c('div', {
      ref: "content",
      class: [_vm.baseClass + '-content']
    }, [_c('div', {
      class: [_vm.baseClass + '-content-text'],
      domProps: {
        "innerHTML": _vm._s(_vm.content)
      }
    }), _vm._v(" "), _vm.closable ? _c('a', {
      class: [_vm.baseClass + '-close'],
      on: {
        "click": _vm.close
      }
    }, [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-close-empty"
    })]) : _vm._e()])] : _vm._e()], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 380 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      style: _vm.styles
    }, _vm._l(_vm.notices, function (notice) {
      return _c('Notice', {
        key: notice.name,
        attrs: {
          "prefix-cls": _vm.prefixCls,
          "styles": notice.styles,
          "type": notice.type,
          "content": notice.content,
          "duration": notice.duration,
          "closable": notice.closable,
          "name": notice.name,
          "transition-name": notice.transitionName,
          "on-close": notice.onClose
        }
      });
    }));
  }, staticRenderFns: [] };

/***/ }),
/* 381 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _confirm = __webpack_require__(382);

var _confirm2 = _interopRequireDefault(_confirm);

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

var modalInstance = void 0;

function getModalInstance() {
    var render = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;

    modalInstance = modalInstance || _confirm2.default.newInstance({
        closable: false,
        maskClosable: false,
        footerHide: true,
        render: render
    });

    return modalInstance;
}

function confirm(options) {
    var render = 'render' in options ? options.render : undefined;
    var instance = getModalInstance(render);

    options.onRemove = function () {
        modalInstance = null;
    };

    instance.show(options);
}

_confirm2.default.info = function () {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    props.icon = 'info';
    props.showCancel = false;
    return confirm(props);
};

_confirm2.default.success = function () {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    props.icon = 'success';
    props.showCancel = false;
    return confirm(props);
};

_confirm2.default.warning = function () {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    props.icon = 'warning';
    props.showCancel = false;
    return confirm(props);
};

_confirm2.default.error = function () {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    props.icon = 'error';
    props.showCancel = false;
    return confirm(props);
};

_confirm2.default.confirm = function () {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    props.icon = 'confirm';
    props.showCancel = true;
    return confirm(props);
};

_confirm2.default.remove = function () {
    if (!modalInstance) {
        return false;
    }

    var instance = getModalInstance();

    instance.remove();
};

exports.default = _confirm2.default;

/***/ }),
/* 382 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

var _modal = __webpack_require__(383);

var _modal2 = _interopRequireDefault(_modal);

var _button = __webpack_require__(20);

var _button2 = _interopRequireDefault(_button);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-modal-confirm';

_modal2.default.newInstance = function (properties) {
    var _props = properties || {};

    var Instance = new _vue2.default({
        mixins: [_locale2.default],
        data: (0, _assign2.default)({}, _props, {
            visible: false,
            width: 416,
            title: '',
            body: '',
            iconType: '',
            iconName: '',
            okText: undefined,
            cancelText: undefined,
            showCancel: false,
            loading: false,
            buttonLoading: false,
            scrollable: false
        }),
        render: function render(h) {
            var _this = this;

            var footerVNodes = [];
            if (this.showCancel) {
                footerVNodes.push(h(_button2.default, {
                    props: {
                        type: 'text',
                        size: 'large'
                    },
                    on: {
                        click: this.cancel
                    }
                }, this.localeCancelText));
            }
            footerVNodes.push(h(_button2.default, {
                props: {
                    type: 'primary',
                    size: 'large',
                    loading: this.buttonLoading
                },
                on: {
                    click: this.ok
                }
            }, this.localeOkText));

            var body_render = void 0;
            if (this.render) {
                body_render = h('div', {
                    attrs: {
                        class: prefixCls + '-body ' + prefixCls + '-body-render'
                    }
                }, [this.render(h)]);
            } else {
                body_render = h('div', {
                    attrs: {
                        class: prefixCls + '-body'
                    }
                }, [h('div', {
                    class: this.iconTypeCls
                }, [h('i', {
                    class: this.iconNameCls
                })]), h('div', {
                    domProps: {
                        innerHTML: this.body
                    }
                })]);
            }

            return h(_modal2.default, {
                props: (0, _assign2.default)({}, _props, {
                    width: this.width,
                    scrollable: this.scrollable
                }),
                domProps: {
                    value: this.visible
                },
                on: {
                    input: function input(status) {
                        _this.visible = status;
                    }
                }
            }, [h('div', {
                attrs: {
                    class: prefixCls
                }
            }, [h('div', {
                attrs: {
                    class: prefixCls + '-head'
                }
            }, [h('div', {
                attrs: {
                    class: prefixCls + '-head-title'
                },
                domProps: {
                    innerHTML: this.title
                }
            })]), body_render, h('div', {
                attrs: {
                    class: prefixCls + '-footer'
                }
            }, footerVNodes)])]);
        },

        computed: {
            iconTypeCls: function iconTypeCls() {
                return [prefixCls + '-body-icon', prefixCls + '-body-icon-' + this.iconType];
            },
            iconNameCls: function iconNameCls() {
                return ['ivu-icon', 'ivu-icon-' + this.iconName];
            },
            localeOkText: function localeOkText() {
                if (this.okText) {
                    return this.okText;
                } else {
                    return this.t('i.modal.okText');
                }
            },
            localeCancelText: function localeCancelText() {
                if (this.cancelText) {
                    return this.cancelText;
                } else {
                    return this.t('i.modal.cancelText');
                }
            }
        },
        methods: {
            cancel: function cancel() {
                this.$children[0].visible = false;
                this.buttonLoading = false;
                this.onCancel();
                this.remove();
            },
            ok: function ok() {
                if (this.loading) {
                    this.buttonLoading = true;
                } else {
                    this.$children[0].visible = false;
                    this.remove();
                }
                this.onOk();
            },
            remove: function remove() {
                var _this2 = this;

                setTimeout(function () {
                    _this2.destroy();
                }, 300);
            },
            destroy: function destroy() {
                this.$destroy();
                document.body.removeChild(this.$el);
                this.onRemove();
            },
            onOk: function onOk() {},
            onCancel: function onCancel() {},
            onRemove: function onRemove() {}
        }
    });

    var component = Instance.$mount();
    document.body.appendChild(component.$el);
    var modal = Instance.$children[0];

    return {
        show: function show(props) {
            modal.$parent.showCancel = props.showCancel;
            modal.$parent.iconType = props.icon;

            switch (props.icon) {
                case 'info':
                    modal.$parent.iconName = 'information-circled';
                    break;
                case 'success':
                    modal.$parent.iconName = 'checkmark-circled';
                    break;
                case 'warning':
                    modal.$parent.iconName = 'android-alert';
                    break;
                case 'error':
                    modal.$parent.iconName = 'close-circled';
                    break;
                case 'confirm':
                    modal.$parent.iconName = 'help-circled';
                    break;
            }

            if ('width' in props) {
                modal.$parent.width = props.width;
            }

            if ('title' in props) {
                modal.$parent.title = props.title;
            }

            if ('content' in props) {
                modal.$parent.body = props.content;
            }

            if ('okText' in props) {
                modal.$parent.okText = props.okText;
            }

            if ('cancelText' in props) {
                modal.$parent.cancelText = props.cancelText;
            }

            if ('onCancel' in props) {
                modal.$parent.onCancel = props.onCancel;
            }

            if ('onOk' in props) {
                modal.$parent.onOk = props.onOk;
            }

            if ('loading' in props) {
                modal.$parent.loading = props.loading;
            }

            if ('scrollable' in props) {
                modal.$parent.scrollable = props.scrollable;
            }

            modal.$parent.onRemove = props.onRemove;

            modal.visible = true;
        },
        remove: function remove() {
            modal.visible = false;
            modal.$parent.buttonLoading = false;
            modal.$parent.remove();
        },

        component: modal
    };
};

exports.default = _modal2.default;

/***/ }),
/* 383 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(384),
  /* template */
  __webpack_require__(385),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 384 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(15);

var _icon2 = _interopRequireDefault(_icon);

var _button = __webpack_require__(20);

var _button2 = _interopRequireDefault(_button);

var _transferDom = __webpack_require__(16);

var _transferDom2 = _interopRequireDefault(_transferDom);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

var _mixinsScrollbar = __webpack_require__(101);

var _mixinsScrollbar2 = _interopRequireDefault(_mixinsScrollbar);

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

var prefixCls = 'ivu-modal';

exports.default = {
    name: 'Modal',
    mixins: [_locale2.default, _emitter2.default, _mixinsScrollbar2.default],
    components: { Icon: _icon2.default, iButton: _button2.default },
    directives: { TransferDom: _transferDom2.default },
    props: {
        value: {
            type: Boolean,
            default: false
        },
        closable: {
            type: Boolean,
            default: true
        },
        maskClosable: {
            type: Boolean,
            default: true
        },
        title: {
            type: String
        },
        width: {
            type: [Number, String],
            default: 520
        },
        okText: {
            type: String
        },
        cancelText: {
            type: String
        },
        loading: {
            type: Boolean,
            default: false
        },
        styles: {
            type: Object
        },
        className: {
            type: String
        },

        footerHide: {
            type: Boolean,
            default: false
        },
        scrollable: {
            type: Boolean,
            default: false
        },
        transitionNames: {
            type: Array,
            default: function _default() {
                return ['ease', 'fade'];
            }
        },
        transfer: {
            type: Boolean,
            default: true
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            wrapShow: false,
            showHead: true,
            buttonLoading: false,
            visible: this.value
        };
    },

    computed: {
        wrapClasses: function wrapClasses() {
            var _ref;

            return [prefixCls + '-wrap', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-hidden', !this.wrapShow), (0, _defineProperty3.default)(_ref, '' + this.className, !!this.className), _ref)];
        },
        maskClasses: function maskClasses() {
            return prefixCls + '-mask';
        },
        classes: function classes() {
            return '' + prefixCls;
        },
        mainStyles: function mainStyles() {
            var style = {};

            var width = parseInt(this.width);
            var styleWidth = {
                width: width <= 100 ? width + '%' : width + 'px'
            };

            var customStyle = this.styles ? this.styles : {};

            (0, _assign2.default)(style, styleWidth, customStyle);

            return style;
        },
        localeOkText: function localeOkText() {
            if (this.okText === undefined) {
                return this.t('i.modal.okText');
            } else {
                return this.okText;
            }
        },
        localeCancelText: function localeCancelText() {
            if (this.cancelText === undefined) {
                return this.t('i.modal.cancelText');
            } else {
                return this.cancelText;
            }
        }
    },
    methods: {
        close: function close() {
            this.visible = false;
            this.$emit('input', false);
            this.$emit('on-cancel');
        },
        mask: function mask() {
            if (this.maskClosable) {
                this.close();
            }
        },
        handleWrapClick: function handleWrapClick(event) {
            var className = event.target.getAttribute('class');
            if (className && className.indexOf(prefixCls + '-wrap') > -1) this.mask();
        },
        cancel: function cancel() {
            this.close();
        },
        ok: function ok() {
            if (this.loading) {
                this.buttonLoading = true;
            } else {
                this.visible = false;
                this.$emit('input', false);
            }
            this.$emit('on-ok');
        },
        EscClose: function EscClose(e) {
            if (this.visible && this.closable) {
                if (e.keyCode === 27) {
                    this.close();
                }
            }
        },
        animationFinish: function animationFinish() {
            this.$emit('on-hidden');
        }
    },
    mounted: function mounted() {
        if (this.visible) {
            this.wrapShow = true;
        }

        var showHead = true;

        if (this.$slots.header === undefined && !this.title) {
            showHead = false;
        }

        this.showHead = showHead;

        document.addEventListener('keydown', this.EscClose);
    },
    beforeDestroy: function beforeDestroy() {
        document.removeEventListener('keydown', this.EscClose);
        this.removeScrollEffect();
    },

    watch: {
        value: function value(val) {
            this.visible = val;
        },
        visible: function visible(val) {
            var _this = this;

            if (val === false) {
                this.buttonLoading = false;
                this.timer = setTimeout(function () {
                    _this.wrapShow = false;
                    _this.removeScrollEffect();
                }, 300);
            } else {
                if (this.timer) clearTimeout(this.timer);
                this.wrapShow = true;
                if (!this.scrollable) {
                    this.addScrollEffect();
                }
            }
            this.broadcast('Table', 'on-visible-change', val);
        },
        loading: function loading(val) {
            if (!val) {
                this.buttonLoading = false;
            }
        },
        scrollable: function scrollable(val) {
            if (!val) {
                this.addScrollEffect();
            } else {
                this.removeScrollEffect();
            }
        },
        title: function title(val) {
            if (this.$slots.header === undefined) {
                this.showHead = !!val;
            }
        }
    }
};

/***/ }),
/* 385 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      directives: [{
        name: "transfer-dom",
        rawName: "v-transfer-dom"
      }],
      attrs: {
        "data-transfer": _vm.transfer
      }
    }, [_c('transition', {
      attrs: {
        "name": _vm.transitionNames[1]
      }
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.visible,
        expression: "visible"
      }],
      class: _vm.maskClasses,
      on: {
        "click": _vm.mask
      }
    })]), _vm._v(" "), _c('div', {
      class: _vm.wrapClasses,
      on: {
        "click": _vm.handleWrapClick
      }
    }, [_c('transition', {
      attrs: {
        "name": _vm.transitionNames[0]
      },
      on: {
        "after-leave": _vm.animationFinish
      }
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.visible,
        expression: "visible"
      }],
      class: _vm.classes,
      style: _vm.mainStyles
    }, [_c('div', {
      class: [_vm.prefixCls + '-content']
    }, [_vm.closable ? _c('a', {
      class: [_vm.prefixCls + '-close'],
      on: {
        "click": _vm.close
      }
    }, [_vm._t("close", [_c('Icon', {
      attrs: {
        "type": "ios-close-empty"
      }
    })])], 2) : _vm._e(), _vm._v(" "), _vm.showHead ? _c('div', {
      class: [_vm.prefixCls + '-header']
    }, [_vm._t("header", [_c('div', {
      class: [_vm.prefixCls + '-header-inner']
    }, [_vm._v(_vm._s(_vm.title))])])], 2) : _vm._e(), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-body']
    }, [_vm._t("default")], 2), _vm._v(" "), !_vm.footerHide ? _c('div', {
      class: [_vm.prefixCls + '-footer']
    }, [_vm._t("footer", [_c('i-button', {
      attrs: {
        "type": "text",
        "size": "large"
      },
      nativeOn: {
        "click": function click($event) {
          _vm.cancel($event);
        }
      }
    }, [_vm._v(_vm._s(_vm.localeCancelText))]), _vm._v(" "), _c('i-button', {
      attrs: {
        "type": "primary",
        "size": "large",
        "loading": _vm.buttonLoading
      },
      nativeOn: {
        "click": function click($event) {
          _vm.ok($event);
        }
      }
    }, [_vm._v(_vm._s(_vm.localeOkText))])])], 2) : _vm._e()])])])], 1)], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 386 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _notification = __webpack_require__(100);

var _notification2 = _interopRequireDefault(_notification);

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

var prefixCls = 'ivu-notice';
var iconPrefixCls = 'ivu-icon';
var prefixKey = 'ivu_notice_key_';

var top = 24;
var defaultDuration = 4.5;
var noticeInstance = void 0;
var name = 1;

var iconTypes = {
    'info': 'information-circled',
    'success': 'checkmark-circled',
    'warning': 'android-alert',
    'error': 'close-circled'
};

function getNoticeInstance() {
    noticeInstance = noticeInstance || _notification2.default.newInstance({
        prefixCls: prefixCls,
        styles: {
            top: top + 'px',
            right: 0
        }
    });

    return noticeInstance;
}

function notice(type, options) {
    var title = options.title || '';
    var desc = options.desc || '';
    var noticeKey = options.name || '' + prefixKey + name;
    var onClose = options.onClose || function () {};

    var duration = options.duration === 0 ? 0 : options.duration || defaultDuration;

    name++;

    var instance = getNoticeInstance();

    var content = void 0;

    var with_desc = desc === '' ? '' : ' ' + prefixCls + '-with-desc';

    if (type == 'normal') {
        content = '\n            <div class="' + prefixCls + '-custom-content ' + prefixCls + '-with-normal' + with_desc + '">\n                <div class="' + prefixCls + '-title">' + title + '</div>\n                <div class="' + prefixCls + '-desc">' + desc + '</div>\n            </div>\n        ';
    } else {
        var iconType = iconTypes[type];
        content = '\n            <div class="' + prefixCls + '-custom-content ' + prefixCls + '-with-icon ' + prefixCls + '-with-' + type + with_desc + '">\n                <span class="' + prefixCls + '-icon ' + prefixCls + '-icon-' + type + '">\n                    <i class="' + iconPrefixCls + ' ' + iconPrefixCls + '-' + iconType + '"></i>\n                </span>\n                <div class="' + prefixCls + '-title">' + title + '</div>\n                <div class="' + prefixCls + '-desc">' + desc + '</div>\n            </div>\n        ';
    }

    instance.notice({
        name: noticeKey.toString(),
        duration: duration,
        styles: {},
        transitionName: 'move-notice',
        content: content,
        onClose: onClose,
        closable: true,
        type: 'notice'
    });
}

exports.default = {
    open: function open(options) {
        return notice('normal', options);
    },
    info: function info(options) {
        return notice('info', options);
    },
    success: function success(options) {
        return notice('success', options);
    },
    warning: function warning(options) {
        return notice('warning', options);
    },
    error: function error(options) {
        return notice('error', options);
    },
    config: function config(options) {
        if (options.top) {
            top = options.top;
        }
        if (options.duration || options.duration === 0) {
            defaultDuration = options.duration;
        }
    },
    close: function close(name) {
        if (name) {
            name = name.toString();
            if (noticeInstance) {
                noticeInstance.remove(name);
            }
        } else {
            return false;
        }
    },
    destroy: function destroy() {
        var instance = getNoticeInstance();
        noticeInstance = null;
        instance.destroy('ivu-notice');
    }
};

/***/ }),
/* 387 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _page = __webpack_require__(388);

var _page2 = _interopRequireDefault(_page);

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

exports.default = _page2.default;

/***/ }),
/* 388 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(389),
  /* template */
  __webpack_require__(393),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 389 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _options = __webpack_require__(390);

var _options2 = _interopRequireDefault(_options);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-page';

exports.default = {
    name: 'Page',
    mixins: [_locale2.default],
    components: { Options: _options2.default },
    props: {
        current: {
            type: Number,
            default: 1
        },
        total: {
            type: Number,
            default: 0
        },
        pageSize: {
            type: Number,
            default: 10
        },
        pageSizeOpts: {
            type: Array,
            default: function _default() {
                return [10, 20, 30, 40];
            }
        },
        placement: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['top', 'bottom']);
            },

            default: 'bottom'
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small']);
            }
        },
        simple: {
            type: Boolean,
            default: false
        },
        showTotal: {
            type: Boolean,
            default: false
        },
        showElevator: {
            type: Boolean,
            default: false
        },
        showSizer: {
            type: Boolean,
            default: false
        },
        className: {
            type: String
        },
        styles: {
            type: Object
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            currentPage: this.current,
            currentPageSize: this.pageSize
        };
    },

    watch: {
        total: function total(val) {
            var maxPage = Math.ceil(val / this.currentPageSize);
            if (maxPage < this.currentPage && maxPage > 0) {
                this.currentPage = maxPage;
            }
        },
        current: function current(val) {
            this.currentPage = val;
        },
        pageSize: function pageSize(val) {
            this.currentPageSize = val;
        }
    },
    computed: {
        isSmall: function isSmall() {
            return !!this.size;
        },
        allPages: function allPages() {
            var allPage = Math.ceil(this.total / this.currentPageSize);
            return allPage === 0 ? 1 : allPage;
        },
        simpleWrapClasses: function simpleWrapClasses() {
            return ['' + prefixCls, prefixCls + '-simple', (0, _defineProperty3.default)({}, '' + this.className, !!this.className)];
        },
        simplePagerClasses: function simplePagerClasses() {
            return prefixCls + '-simple-pager';
        },
        wrapClasses: function wrapClasses() {
            var _ref2;

            return ['' + prefixCls, (_ref2 = {}, (0, _defineProperty3.default)(_ref2, '' + this.className, !!this.className), (0, _defineProperty3.default)(_ref2, 'mini', !!this.size), _ref2)];
        },
        prevClasses: function prevClasses() {
            return [prefixCls + '-prev', (0, _defineProperty3.default)({}, prefixCls + '-disabled', this.currentPage === 1)];
        },
        nextClasses: function nextClasses() {
            return [prefixCls + '-next', (0, _defineProperty3.default)({}, prefixCls + '-disabled', this.currentPage === this.allPages)];
        },
        firstPageClasses: function firstPageClasses() {
            return [prefixCls + '-item', (0, _defineProperty3.default)({}, prefixCls + '-item-active', this.currentPage === 1)];
        },
        lastPageClasses: function lastPageClasses() {
            return [prefixCls + '-item', (0, _defineProperty3.default)({}, prefixCls + '-item-active', this.currentPage === this.allPages)];
        }
    },
    methods: {
        changePage: function changePage(page) {
            if (this.currentPage != page) {
                this.currentPage = page;
                this.$emit('update:current', page);
                this.$emit('on-change', page);
            }
        },
        prev: function prev() {
            var current = this.currentPage;
            if (current <= 1) {
                return false;
            }
            this.changePage(current - 1);
        },
        next: function next() {
            var current = this.currentPage;
            if (current >= this.allPages) {
                return false;
            }
            this.changePage(current + 1);
        },
        fastPrev: function fastPrev() {
            var page = this.currentPage - 5;
            if (page > 0) {
                this.changePage(page);
            } else {
                this.changePage(1);
            }
        },
        fastNext: function fastNext() {
            var page = this.currentPage + 5;
            if (page > this.allPages) {
                this.changePage(this.allPages);
            } else {
                this.changePage(page);
            }
        },
        onSize: function onSize(pageSize) {
            this.currentPageSize = pageSize;
            this.$emit('on-page-size-change', pageSize);
            this.changePage(1);
        },
        onPage: function onPage(page) {
            this.changePage(page);
        },
        keyDown: function keyDown(e) {
            var key = e.keyCode;
            var condition = key >= 48 && key <= 57 || key >= 96 && key <= 105 || key == 8 || key == 37 || key == 39;

            if (!condition) {
                e.preventDefault();
            }
        },
        keyUp: function keyUp(e) {
            var key = e.keyCode;
            var val = parseInt(e.target.value);

            if (key === 38) {
                this.prev();
            } else if (key === 40) {
                this.next();
            } else if (key == 13) {
                var page = 1;

                if (val > this.allPages) {
                    page = this.allPages;
                } else if (val <= 0) {
                    page = 1;
                } else {
                    page = val;
                }

                e.target.value = page;
                this.changePage(page);
            }
        }
    }
};

/***/ }),
/* 390 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(391),
  /* template */
  __webpack_require__(392),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 391 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _select = __webpack_require__(55);

var _select2 = _interopRequireDefault(_select);

var _option = __webpack_require__(61);

var _option2 = _interopRequireDefault(_option);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-page';

function isValueNumber(value) {
    return (/^[1-9][0-9]*$/.test(value + '')
    );
}

exports.default = {
    name: 'PageOption',
    mixins: [_locale2.default],
    components: { iSelect: _select2.default, iOption: _option2.default },
    props: {
        pageSizeOpts: Array,
        showSizer: Boolean,
        showElevator: Boolean,
        current: Number,
        _current: Number,
        pageSize: Number,
        allPages: Number,
        isSmall: Boolean,
        placement: String
    },
    data: function data() {
        return {
            currentPageSize: this.pageSize
        };
    },

    watch: {
        pageSize: function pageSize(val) {
            this.currentPageSize = val;
        }
    },
    computed: {
        size: function size() {
            return this.isSmall ? 'small' : 'default';
        },
        optsClasses: function optsClasses() {
            return [prefixCls + '-options'];
        },
        sizerClasses: function sizerClasses() {
            return [prefixCls + '-options-sizer'];
        },
        ElevatorClasses: function ElevatorClasses() {
            return [prefixCls + '-options-elevator'];
        }
    },
    methods: {
        changeSize: function changeSize() {
            this.$emit('on-size', this.currentPageSize);
        },
        changePage: function changePage(event) {
            var val = event.target.value.trim();
            var page = 0;

            if (isValueNumber(val)) {
                val = Number(val);
                if (val != this.current) {
                    var allPages = this.allPages;

                    if (val > allPages) {
                        page = allPages;
                    } else {
                        page = val;
                    }
                }
            } else {
                page = 1;
            }

            if (page) {
                this.$emit('on-page', page);
                event.target.value = page;
            }
        }
    }
};

/***/ }),
/* 392 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _vm.showSizer || _vm.showElevator ? _c('div', {
      class: _vm.optsClasses
    }, [_vm.showSizer ? _c('div', {
      class: _vm.sizerClasses
    }, [_c('i-select', {
      attrs: {
        "size": _vm.size,
        "placement": _vm.placement
      },
      on: {
        "on-change": _vm.changeSize
      },
      model: {
        value: _vm.currentPageSize,
        callback: function callback($$v) {
          _vm.currentPageSize = $$v;
        },
        expression: "currentPageSize"
      }
    }, _vm._l(_vm.pageSizeOpts, function (item) {
      return _c('i-option', {
        key: item,
        staticStyle: {
          "text-align": "center"
        },
        attrs: {
          "value": item
        }
      }, [_vm._v(_vm._s(item) + " " + _vm._s(_vm.t('i.page.page')))]);
    }))], 1) : _vm._e(), _vm._v(" "), _vm.showElevator ? _c('div', {
      class: _vm.ElevatorClasses
    }, [_vm._v("\n        " + _vm._s(_vm.t('i.page.goto')) + "\n        "), _c('input', {
      attrs: {
        "type": "text"
      },
      domProps: {
        "value": _vm._current
      },
      on: {
        "keyup": function keyup($event) {
          if (!('button' in $event) && _vm._k($event.keyCode, "enter", 13)) {
            return null;
          }
          _vm.changePage($event);
        }
      }
    }), _vm._v("\n        " + _vm._s(_vm.t('i.page.p')) + "\n    ")]) : _vm._e()]) : _vm._e();
  }, staticRenderFns: [] };

/***/ }),
/* 393 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _vm.simple ? _c('ul', {
      class: _vm.simpleWrapClasses,
      style: _vm.styles
    }, [_c('li', {
      class: _vm.prevClasses,
      attrs: {
        "title": _vm.t('i.page.prev')
      },
      on: {
        "click": _vm.prev
      }
    }, [_vm._m(0)]), _vm._v(" "), _c('div', {
      class: _vm.simplePagerClasses,
      attrs: {
        "title": _vm.currentPage + '/' + _vm.allPages
      }
    }, [_c('input', {
      attrs: {
        "type": "text"
      },
      domProps: {
        "value": _vm.currentPage
      },
      on: {
        "keydown": _vm.keyDown,
        "keyup": _vm.keyUp,
        "change": _vm.keyUp
      }
    }), _vm._v(" "), _c('span', [_vm._v("/")]), _vm._v("\n        " + _vm._s(_vm.allPages) + "\n    ")]), _vm._v(" "), _c('li', {
      class: _vm.nextClasses,
      attrs: {
        "title": _vm.t('i.page.next')
      },
      on: {
        "click": _vm.next
      }
    }, [_vm._m(1)])]) : _c('ul', {
      class: _vm.wrapClasses,
      style: _vm.styles
    }, [_vm.showTotal ? _c('span', {
      class: [_vm.prefixCls + '-total']
    }, [_vm._t("default", [_vm._v(_vm._s(_vm.t('i.page.total')) + " " + _vm._s(_vm.total) + " "), _vm.total <= 1 ? [_vm._v(_vm._s(_vm.t('i.page.item')))] : [_vm._v(_vm._s(_vm.t('i.page.items')))]])], 2) : _vm._e(), _vm._v(" "), _c('li', {
      class: _vm.prevClasses,
      attrs: {
        "title": _vm.t('i.page.prev')
      },
      on: {
        "click": _vm.prev
      }
    }, [_vm._m(2)]), _vm._v(" "), _c('li', {
      class: _vm.firstPageClasses,
      attrs: {
        "title": "1"
      },
      on: {
        "click": function click($event) {
          _vm.changePage(1);
        }
      }
    }, [_c('a', [_vm._v("1")])]), _vm._v(" "), _vm.currentPage - 3 > 1 ? _c('li', {
      class: [_vm.prefixCls + '-item-jump-prev'],
      attrs: {
        "title": _vm.t('i.page.prev5')
      },
      on: {
        "click": _vm.fastPrev
      }
    }, [_vm._m(3)]) : _vm._e(), _vm._v(" "), _vm.currentPage - 2 > 1 ? _c('li', {
      class: [_vm.prefixCls + '-item'],
      attrs: {
        "title": _vm.currentPage - 2
      },
      on: {
        "click": function click($event) {
          _vm.changePage(_vm.currentPage - 2);
        }
      }
    }, [_c('a', [_vm._v(_vm._s(_vm.currentPage - 2))])]) : _vm._e(), _vm._v(" "), _vm.currentPage - 1 > 1 ? _c('li', {
      class: [_vm.prefixCls + '-item'],
      attrs: {
        "title": _vm.currentPage - 1
      },
      on: {
        "click": function click($event) {
          _vm.changePage(_vm.currentPage - 1);
        }
      }
    }, [_c('a', [_vm._v(_vm._s(_vm.currentPage - 1))])]) : _vm._e(), _vm._v(" "), _vm.currentPage != 1 && _vm.currentPage != _vm.allPages ? _c('li', {
      class: [_vm.prefixCls + '-item', _vm.prefixCls + '-item-active'],
      attrs: {
        "title": _vm.currentPage
      }
    }, [_c('a', [_vm._v(_vm._s(_vm.currentPage))])]) : _vm._e(), _vm._v(" "), _vm.currentPage + 1 < _vm.allPages ? _c('li', {
      class: [_vm.prefixCls + '-item'],
      attrs: {
        "title": _vm.currentPage + 1
      },
      on: {
        "click": function click($event) {
          _vm.changePage(_vm.currentPage + 1);
        }
      }
    }, [_c('a', [_vm._v(_vm._s(_vm.currentPage + 1))])]) : _vm._e(), _vm._v(" "), _vm.currentPage + 2 < _vm.allPages ? _c('li', {
      class: [_vm.prefixCls + '-item'],
      attrs: {
        "title": _vm.currentPage + 2
      },
      on: {
        "click": function click($event) {
          _vm.changePage(_vm.currentPage + 2);
        }
      }
    }, [_c('a', [_vm._v(_vm._s(_vm.currentPage + 2))])]) : _vm._e(), _vm._v(" "), _vm.currentPage + 3 < _vm.allPages ? _c('li', {
      class: [_vm.prefixCls + '-item-jump-next'],
      attrs: {
        "title": _vm.t('i.page.next5')
      },
      on: {
        "click": _vm.fastNext
      }
    }, [_vm._m(4)]) : _vm._e(), _vm._v(" "), _vm.allPages > 1 ? _c('li', {
      class: _vm.lastPageClasses,
      attrs: {
        "title": _vm.allPages
      },
      on: {
        "click": function click($event) {
          _vm.changePage(_vm.allPages);
        }
      }
    }, [_c('a', [_vm._v(_vm._s(_vm.allPages))])]) : _vm._e(), _vm._v(" "), _c('li', {
      class: _vm.nextClasses,
      attrs: {
        "title": _vm.t('i.page.next')
      },
      on: {
        "click": _vm.next
      }
    }, [_vm._m(5)]), _vm._v(" "), _c('Options', {
      attrs: {
        "show-sizer": _vm.showSizer,
        "page-size": _vm.currentPageSize,
        "page-size-opts": _vm.pageSizeOpts,
        "placement": _vm.placement,
        "show-elevator": _vm.showElevator,
        "_current": _vm.currentPage,
        "current": _vm.currentPage,
        "all-pages": _vm.allPages,
        "is-small": _vm.isSmall
      },
      on: {
        "on-size": _vm.onSize,
        "on-page": _vm.onPage
      }
    })], 1);
  }, staticRenderFns: [function () {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('a', [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-arrow-left"
    })]);
  }, function () {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('a', [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-arrow-right"
    })]);
  }, function () {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('a', [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-arrow-left"
    })]);
  }, function () {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('a', [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-arrow-left"
    })]);
  }, function () {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('a', [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-arrow-right"
    })]);
  }, function () {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('a', [_c('i', {
      staticClass: "ivu-icon ivu-icon-ios-arrow-right"
    })]);
  }] };

/***/ }),
/* 394 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _poptip = __webpack_require__(102);

var _poptip2 = _interopRequireDefault(_poptip);

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

exports.default = _poptip2.default;

/***/ }),
/* 395 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _popper = __webpack_require__(103);

var _popper2 = _interopRequireDefault(_popper);

var _button = __webpack_require__(20);

var _button2 = _interopRequireDefault(_button);

var _clickoutside = __webpack_require__(26);

var _clickoutside2 = _interopRequireDefault(_clickoutside);

var _transferDom = __webpack_require__(16);

var _transferDom2 = _interopRequireDefault(_transferDom);

var _assist = __webpack_require__(2);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-poptip';

exports.default = {
    name: 'Poptip',
    mixins: [_popper2.default, _locale2.default],
    directives: { clickoutside: _clickoutside2.default, TransferDom: _transferDom2.default },
    components: { iButton: _button2.default },
    props: {
        trigger: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['click', 'focus', 'hover']);
            },

            default: 'click'
        },
        placement: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end']);
            },

            default: 'top'
        },
        title: {
            type: [String, Number]
        },
        content: {
            type: [String, Number],
            default: ''
        },
        width: {
            type: [String, Number]
        },
        confirm: {
            type: Boolean,
            default: false
        },
        okText: {
            type: String
        },
        cancelText: {
            type: String
        },
        transfer: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            showTitle: true,
            isInput: false
        };
    },

    computed: {
        classes: function classes() {
            return ['' + prefixCls, (0, _defineProperty3.default)({}, prefixCls + '-confirm', this.confirm)];
        },
        popperClasses: function popperClasses() {
            return [prefixCls + '-popper', (0, _defineProperty3.default)({}, prefixCls + '-confirm', this.transfer && this.confirm)];
        },
        styles: function styles() {
            var style = {};

            if (this.width) {
                style.width = this.width + 'px';
            }
            return style;
        },
        localeOkText: function localeOkText() {
            if (this.okText === undefined) {
                return this.t('i.poptip.okText');
            } else {
                return this.okText;
            }
        },
        localeCancelText: function localeCancelText() {
            if (this.cancelText === undefined) {
                return this.t('i.poptip.cancelText');
            } else {
                return this.cancelText;
            }
        }
    },
    methods: {
        handleClick: function handleClick() {
            if (this.confirm) {
                this.visible = !this.visible;
                return true;
            }
            if (this.trigger !== 'click') {
                return false;
            }
            this.visible = !this.visible;
        },
        handleClose: function handleClose() {
            if (this.confirm) {
                this.visible = false;
                return true;
            }
            if (this.trigger !== 'click') {
                return false;
            }
            this.visible = false;
        },
        handleFocus: function handleFocus() {
            var fromInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;

            if (this.trigger !== 'focus' || this.confirm || this.isInput && !fromInput) {
                return false;
            }
            this.visible = true;
        },
        handleBlur: function handleBlur() {
            var fromInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;

            if (this.trigger !== 'focus' || this.confirm || this.isInput && !fromInput) {
                return false;
            }
            this.visible = false;
        },
        handleMouseenter: function handleMouseenter() {
            var _this = this;

            if (this.trigger !== 'hover' || this.confirm) {
                return false;
            }
            if (this.enterTimer) clearTimeout(this.enterTimer);
            this.enterTimer = setTimeout(function () {
                _this.visible = true;
            }, 100);
        },
        handleMouseleave: function handleMouseleave() {
            var _this2 = this;

            if (this.trigger !== 'hover' || this.confirm) {
                return false;
            }
            if (this.enterTimer) {
                clearTimeout(this.enterTimer);
                this.enterTimer = setTimeout(function () {
                    _this2.visible = false;
                }, 100);
            }
        },
        cancel: function cancel() {
            this.visible = false;
            this.$emit('on-cancel');
        },
        ok: function ok() {
            this.visible = false;
            this.$emit('on-ok');
        },
        getInputChildren: function getInputChildren() {
            var $input = this.$refs.reference.querySelectorAll('input');
            var $textarea = this.$refs.reference.querySelectorAll('textarea');
            var $children = null;

            if ($input.length) {
                $children = $input[0];
            } else if ($textarea.length) {
                $children = $textarea[0];
            }

            return $children;
        }
    },
    mounted: function mounted() {
        var _this3 = this;

        if (!this.confirm) {
            this.showTitle = this.$slots.title !== undefined || this.title;
        }

        if (this.trigger === 'focus') {
            this.$nextTick(function () {
                var $children = _this3.getInputChildren();
                if ($children) {
                    _this3.isInput = true;
                    $children.addEventListener('focus', _this3.handleFocus, false);
                    $children.addEventListener('blur', _this3.handleBlur, false);
                }
            });
        }
    },
    beforeDestroy: function beforeDestroy() {
        var $children = this.getInputChildren();
        if ($children) {
            $children.removeEventListener('focus', this.handleFocus, false);
            $children.removeEventListener('blur', this.handleBlur, false);
        }
    }
};

/***/ }),
/* 396 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      directives: [{
        name: "clickoutside",
        rawName: "v-clickoutside",
        value: _vm.handleClose,
        expression: "handleClose"
      }],
      class: _vm.classes,
      on: {
        "mouseenter": _vm.handleMouseenter,
        "mouseleave": _vm.handleMouseleave
      }
    }, [_c('div', {
      ref: "reference",
      class: [_vm.prefixCls + '-rel'],
      on: {
        "click": _vm.handleClick,
        "mousedown": function mousedown($event) {
          _vm.handleFocus(false);
        },
        "mouseup": function mouseup($event) {
          _vm.handleBlur(false);
        }
      }
    }, [_vm._t("default")], 2), _vm._v(" "), _c('transition', {
      attrs: {
        "name": "fade"
      }
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.visible,
        expression: "visible"
      }, {
        name: "transfer-dom",
        rawName: "v-transfer-dom"
      }],
      ref: "popper",
      class: _vm.popperClasses,
      style: _vm.styles,
      attrs: {
        "data-transfer": _vm.transfer
      },
      on: {
        "mouseenter": _vm.handleMouseenter,
        "mouseleave": _vm.handleMouseleave
      }
    }, [_c('div', {
      class: [_vm.prefixCls + '-content']
    }, [_c('div', {
      class: [_vm.prefixCls + '-arrow']
    }), _vm._v(" "), _vm.confirm ? _c('div', {
      class: [_vm.prefixCls + '-inner']
    }, [_c('div', {
      class: [_vm.prefixCls + '-body']
    }, [_c('i', {
      staticClass: "ivu-icon ivu-icon-help-circled"
    }), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-body-message']
    }, [_vm._t("title", [_vm._v(_vm._s(_vm.title))])], 2)]), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-footer']
    }, [_c('i-button', {
      attrs: {
        "type": "text",
        "size": "small"
      },
      nativeOn: {
        "click": function click($event) {
          _vm.cancel($event);
        }
      }
    }, [_vm._v(_vm._s(_vm.localeCancelText))]), _vm._v(" "), _c('i-button', {
      attrs: {
        "type": "primary",
        "size": "small"
      },
      nativeOn: {
        "click": function click($event) {
          _vm.ok($event);
        }
      }
    }, [_vm._v(_vm._s(_vm.localeOkText))])], 1)]) : _vm._e(), _vm._v(" "), !_vm.confirm ? _c('div', {
      class: [_vm.prefixCls + '-inner']
    }, [_vm.showTitle ? _c('div', {
      ref: "title",
      class: [_vm.prefixCls + '-title']
    }, [_vm._t("title", [_c('div', {
      class: [_vm.prefixCls + '-title-inner']
    }, [_vm._v(_vm._s(_vm.title))])])], 2) : _vm._e(), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-body']
    }, [_c('div', {
      class: [_vm.prefixCls + '-body-content']
    }, [_vm._t("content", [_c('div', {
      class: [_vm.prefixCls + '-body-content-inner']
    }, [_vm._v(_vm._s(_vm.content))])])], 2)])]) : _vm._e()])])])], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 397 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _progress = __webpack_require__(104);

var _progress2 = _interopRequireDefault(_progress);

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

exports.default = _progress2.default;

/***/ }),
/* 398 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(15);

var _icon2 = _interopRequireDefault(_icon);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-progress';

exports.default = {
    components: { Icon: _icon2.default },
    props: {
        percent: {
            type: Number,
            default: 0
        },
        status: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['normal', 'active', 'wrong', 'success']);
            },

            default: 'normal'
        },
        hideInfo: {
            type: Boolean,
            default: false
        },
        strokeWidth: {
            type: Number,
            default: 10
        },
        vertical: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            currentStatus: this.status
        };
    },

    computed: {
        isStatus: function isStatus() {
            return this.currentStatus == 'wrong' || this.currentStatus == 'success';
        },
        statusIcon: function statusIcon() {
            var type = '';
            switch (this.currentStatus) {
                case 'wrong':
                    type = 'ios-close';
                    break;
                case 'success':
                    type = 'ios-checkmark';
                    break;
            }

            return type;
        },
        bgStyle: function bgStyle() {
            return this.vertical ? {
                height: this.percent + '%',
                width: this.strokeWidth + 'px'
            } : {
                width: this.percent + '%',
                height: this.strokeWidth + 'px'
            };
        },
        wrapClasses: function wrapClasses() {
            var _ref;

            return ['' + prefixCls, prefixCls + '-' + this.currentStatus, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-show-info', !this.hideInfo), (0, _defineProperty3.default)(_ref, prefixCls + '-vertical', this.vertical), _ref)];
        },
        textClasses: function textClasses() {
            return prefixCls + '-text';
        },
        textInnerClasses: function textInnerClasses() {
            return prefixCls + '-text-inner';
        },
        outerClasses: function outerClasses() {
            return prefixCls + '-outer';
        },
        innerClasses: function innerClasses() {
            return prefixCls + '-inner';
        },
        bgClasses: function bgClasses() {
            return prefixCls + '-bg';
        }
    },
    created: function created() {
        this.handleStatus();
    },

    methods: {
        handleStatus: function handleStatus(isDown) {
            if (isDown) {
                this.currentStatus = 'normal';
                this.$emit('on-status-change', 'normal');
            } else {
                if (parseInt(this.percent, 10) == 100) {
                    this.currentStatus = 'success';
                    this.$emit('on-status-change', 'success');
                }
            }
        }
    },
    watch: {
        percent: function percent(val, oldVal) {
            if (val < oldVal) {
                this.handleStatus(true);
            } else {
                this.handleStatus();
            }
        },
        status: function status(val) {
            this.currentStatus = val;
        }
    }
};

/***/ }),
/* 399 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.wrapClasses
    }, [_c('div', {
      class: _vm.outerClasses
    }, [_c('div', {
      class: _vm.innerClasses
    }, [_c('div', {
      class: _vm.bgClasses,
      style: _vm.bgStyle
    })])]), _vm._v(" "), !_vm.hideInfo ? _c('span', {
      class: _vm.textClasses
    }, [_vm._t("default", [_vm.isStatus ? _c('span', {
      class: _vm.textInnerClasses
    }, [_c('Icon', {
      attrs: {
        "type": _vm.statusIcon
      }
    })], 1) : _c('span', {
      class: _vm.textInnerClasses
    }, [_vm._v("\n                " + _vm._s(_vm.percent) + "%\n            ")])])], 2) : _vm._e()]);
  }, staticRenderFns: [] };

/***/ }),
/* 400 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _radio = __webpack_require__(401);

var _radio2 = _interopRequireDefault(_radio);

var _radioGroup = __webpack_require__(404);

var _radioGroup2 = _interopRequireDefault(_radioGroup);

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

_radio2.default.Group = _radioGroup2.default;
exports.default = _radio2.default;

/***/ }),
/* 401 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(402),
  /* template */
  __webpack_require__(403),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 402 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-radio';

exports.default = {
    name: 'Radio',
    mixins: [_emitter2.default],
    props: {
        value: {
            type: [String, Number, Boolean],
            default: false
        },
        trueValue: {
            type: [String, Number, Boolean],
            default: true
        },
        falseValue: {
            type: [String, Number, Boolean],
            default: false
        },
        label: {
            type: [String, Number]
        },
        disabled: {
            type: Boolean,
            default: false
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        name: {
            type: String
        }
    },
    data: function data() {
        return {
            currentValue: this.value,
            group: false,
            parent: (0, _assist.findComponentUpward)(this, 'RadioGroup')
        };
    },

    computed: {
        wrapClasses: function wrapClasses() {
            var _ref;

            return [prefixCls + '-wrapper', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-group-item', this.group), (0, _defineProperty3.default)(_ref, prefixCls + '-wrapper-checked', this.currentValue), (0, _defineProperty3.default)(_ref, prefixCls + '-wrapper-disabled', this.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), _ref)];
        },
        radioClasses: function radioClasses() {
            var _ref2;

            return ['' + prefixCls, (_ref2 = {}, (0, _defineProperty3.default)(_ref2, prefixCls + '-checked', this.currentValue), (0, _defineProperty3.default)(_ref2, prefixCls + '-disabled', this.disabled), _ref2)];
        },
        innerClasses: function innerClasses() {
            return prefixCls + '-inner';
        },
        inputClasses: function inputClasses() {
            return prefixCls + '-input';
        }
    },
    mounted: function mounted() {
        if (this.parent) this.group = true;
        if (!this.group) {
            this.updateValue();
        } else {
            this.parent.updateValue();
        }
    },

    methods: {
        change: function change(event) {
            if (this.disabled) {
                return false;
            }

            var checked = event.target.checked;
            this.currentValue = checked;

            var value = checked ? this.trueValue : this.falseValue;
            this.$emit('input', value);

            if (this.group && this.label !== undefined) {
                this.parent.change({
                    value: this.label,
                    checked: this.value
                });
            }
            if (!this.group) {
                this.$emit('on-change', value);
                this.dispatch('FormItem', 'on-form-change', value);
            }
        },
        updateValue: function updateValue() {
            this.currentValue = this.value === this.trueValue;
        }
    },
    watch: {
        value: function value(val) {
            if (val !== this.trueValue && val !== this.falseValue) {
                throw 'Value should be trueValue or falseValue.';
            }
            this.updateValue();
        }
    }
};

/***/ }),
/* 403 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('label', {
      class: _vm.wrapClasses
    }, [_c('span', {
      class: _vm.radioClasses
    }, [_c('span', {
      class: _vm.innerClasses
    }), _vm._v(" "), _c('input', {
      class: _vm.inputClasses,
      attrs: {
        "type": "radio",
        "disabled": _vm.disabled,
        "name": _vm.name
      },
      domProps: {
        "checked": _vm.currentValue
      },
      on: {
        "change": _vm.change
      }
    })]), _vm._t("default", [_vm._v(_vm._s(_vm.label))])], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 404 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(405),
  /* template */
  __webpack_require__(406),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 405 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-radio-group';

exports.default = {
    name: 'RadioGroup',
    mixins: [_emitter2.default],
    props: {
        value: {
            type: [String, Number],
            default: ''
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['button']);
            }
        },
        vertical: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            currentValue: this.value,
            childrens: []
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref, 'ivu-radio-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.type, !!this.type), (0, _defineProperty3.default)(_ref, prefixCls + '-vertical', this.vertical), _ref)];
        }
    },
    mounted: function mounted() {
        this.updateValue();
    },

    methods: {
        updateValue: function updateValue() {
            var value = this.value;
            this.childrens = (0, _assist.findComponentsDownward)(this, 'Radio');

            if (this.childrens) {
                this.childrens.forEach(function (child) {
                    child.currentValue = value == child.label;
                    child.group = true;
                });
            }
        },
        change: function change(data) {
            this.currentValue = data.value;
            this.updateValue();
            this.$emit('input', data.value);
            this.$emit('on-change', data.value);
            this.dispatch('FormItem', 'on-form-change', data.value);
        }
    },
    watch: {
        value: function value() {
            this.updateValue();
        }
    }
};

/***/ }),
/* 406 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 407 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _rate = __webpack_require__(408);

var _rate2 = _interopRequireDefault(_rate);

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

exports.default = _rate2.default;

/***/ }),
/* 408 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(409),
  /* template */
  __webpack_require__(410),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 409 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-rate';

exports.default = {
    name: 'Rate',
    mixins: [_locale2.default, _emitter2.default],
    props: {
        count: {
            type: Number,
            default: 5
        },
        value: {
            type: Number,
            default: 0
        },
        allowHalf: {
            type: Boolean,
            default: false
        },
        disabled: {
            type: Boolean,
            default: false
        },
        showText: {
            type: Boolean,
            default: false
        },
        name: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            hoverIndex: -1,
            isHover: false,
            isHalf: this.allowHalf && this.value.toString().indexOf('.') >= 0,
            currentValue: this.value
        };
    },

    computed: {
        classes: function classes() {
            return ['' + prefixCls, (0, _defineProperty3.default)({}, prefixCls + '-disabled', this.disabled)];
        }
    },
    watch: {
        value: function value(val) {
            this.currentValue = val;
        },
        currentValue: function currentValue(val) {
            this.setHalf(val);
        }
    },
    methods: {
        starCls: function starCls(value) {
            var _ref2;

            var hoverIndex = this.hoverIndex;
            var currentIndex = this.isHover ? hoverIndex : this.currentValue;

            var full = false;
            var isLast = false;

            if (currentIndex >= value) full = true;

            if (this.isHover) {
                isLast = currentIndex === value;
            } else {
                isLast = Math.ceil(this.currentValue) === value;
            }

            return [prefixCls + '-star', (_ref2 = {}, (0, _defineProperty3.default)(_ref2, prefixCls + '-star-full', !isLast && full || isLast && !this.isHalf), (0, _defineProperty3.default)(_ref2, prefixCls + '-star-half', isLast && this.isHalf), (0, _defineProperty3.default)(_ref2, prefixCls + '-star-zero', !full), _ref2)];
        },
        handleMousemove: function handleMousemove(value, event) {
            if (this.disabled) return;

            this.isHover = true;
            if (this.allowHalf) {
                var type = event.target.getAttribute('type') || false;
                this.isHalf = type === 'half';
            } else {
                this.isHalf = false;
            }
            this.hoverIndex = value;
        },
        handleMouseleave: function handleMouseleave() {
            if (this.disabled) return;

            this.isHover = false;
            this.setHalf(this.currentValue);
            this.hoverIndex = -1;
        },
        setHalf: function setHalf(val) {
            this.isHalf = this.allowHalf && val.toString().indexOf('.') >= 0;
        },
        handleClick: function handleClick(value) {
            if (this.disabled) return;

            if (this.isHalf) value -= 0.5;
            this.currentValue = value;
            this.$emit('input', value);
            this.$emit('on-change', value);
            this.dispatch('FormItem', 'on-form-change', value);
        }
    }
};

/***/ }),
/* 410 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      on: {
        "mouseleave": _vm.handleMouseleave
      }
    }, [_c('input', {
      attrs: {
        "type": "hidden",
        "name": _vm.name
      },
      domProps: {
        "value": _vm.currentValue
      }
    }), _vm._v(" "), _vm._l(_vm.count, function (item) {
      return _c('div', {
        class: _vm.starCls(item),
        on: {
          "mousemove": function mousemove($event) {
            _vm.handleMousemove(item, $event);
          },
          "click": function click($event) {
            _vm.handleClick(item);
          }
        }
      }, [_c('span', {
        class: [_vm.prefixCls + '-star-content'],
        attrs: {
          "type": "half"
        }
      })]);
    }), _vm._v(" "), _vm.showText ? _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.currentValue > 0,
        expression: "currentValue > 0"
      }],
      class: [_vm.prefixCls + '-text']
    }, [_vm._t("default", [_c('span', [_vm._v(_vm._s(_vm.currentValue))]), _vm._v(" "), _vm.currentValue <= 1 ? _c('span', [_vm._v(_vm._s(_vm.t('i.rate.star')))]) : _c('span', [_vm._v(_vm._s(_vm.t('i.rate.stars')))])])], 2) : _vm._e()], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 411 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _slider = __webpack_require__(412);

var _slider2 = _interopRequireDefault(_slider);

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

exports.default = _slider2.default;

/***/ }),
/* 412 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(413),
  /* template */
  __webpack_require__(416),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 413 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _toConsumableArray2 = __webpack_require__(43);

var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _inputNumber = __webpack_require__(99);

var _inputNumber2 = _interopRequireDefault(_inputNumber);

var _tooltip = __webpack_require__(105);

var _tooltip2 = _interopRequireDefault(_tooltip);

var _assist = __webpack_require__(2);

var _dom = __webpack_require__(33);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-slider';

exports.default = {
    name: 'Slider',
    mixins: [_emitter2.default],
    components: { InputNumber: _inputNumber2.default, Tooltip: _tooltip2.default },
    props: {
        min: {
            type: Number,
            default: 0
        },
        max: {
            type: Number,
            default: 100
        },
        step: {
            type: Number,
            default: 1
        },
        range: {
            type: Boolean,
            default: false
        },
        value: {
            type: [Number, Array],
            default: 0
        },
        disabled: {
            type: Boolean,
            default: false
        },
        showInput: {
            type: Boolean,
            default: false
        },
        showStops: {
            type: Boolean,
            default: false
        },
        tipFormat: {
            type: Function,
            default: function _default(val) {
                return val;
            }
        },
        showTip: {
            type: String,
            default: 'hover',
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['hover', 'always', 'never']);
            }
        },
        name: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            currentValue: this.value,
            dragging: false,
            firstDragging: false,
            secondDragging: false,
            startX: 0,
            currentX: 0,
            startPos: 0,
            newPos: null,
            oldSingleValue: this.value,
            oldFirstValue: this.value[0],
            oldSecondValue: this.value[1],
            singlePosition: (this.value - this.min) / (this.max - this.min) * 100,
            firstPosition: (this.value[0] - this.min) / (this.max - this.min) * 100,
            secondPosition: (this.value[1] - this.min) / (this.max - this.min) * 100
        };
    },

    watch: {
        value: function value(val) {
            this.currentValue = val;
        },
        currentValue: function currentValue(val) {
            var _this = this;

            this.$nextTick(function () {
                _this.$refs.tooltip.updatePopper();
                if (_this.range) {
                    _this.$refs.tooltip2.updatePopper();
                }
            });
            this.updateValue(val);
            this.$emit('input', val);
            this.$emit('on-input', val);
        }
    },
    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-input', this.showInput && !this.range), (0, _defineProperty3.default)(_ref, prefixCls + '-range', this.range), (0, _defineProperty3.default)(_ref, prefixCls + '-disabled', this.disabled), _ref)];
        },
        buttonClasses: function buttonClasses() {
            return [prefixCls + '-button', (0, _defineProperty3.default)({}, prefixCls + '-button-dragging', this.dragging)];
        },
        button1Classes: function button1Classes() {
            return [prefixCls + '-button', (0, _defineProperty3.default)({}, prefixCls + '-button-dragging', this.firstDragging)];
        },
        button2Classes: function button2Classes() {
            return [prefixCls + '-button', (0, _defineProperty3.default)({}, prefixCls + '-button-dragging', this.secondDragging)];
        },
        barStyle: function barStyle() {
            var style = void 0;

            if (this.range) {
                style = {
                    width: (this.currentValue[1] - this.currentValue[0]) / (this.max - this.min) * 100 + '%',
                    left: (this.currentValue[0] - this.min) / (this.max - this.min) * 100 + '%'
                };
            } else {
                style = {
                    width: (this.currentValue - this.min) / (this.max - this.min) * 100 + '%'
                };
            }

            return style;
        },
        stops: function stops() {
            var stopCount = (this.max - this.min) / this.step;
            var result = [];
            var stepWidth = 100 * this.step / (this.max - this.min);
            for (var i = 1; i < stopCount; i++) {
                result.push(i * stepWidth);
            }
            return result;
        },
        sliderWidth: function sliderWidth() {
            return parseInt((0, _assist.getStyle)(this.$refs.slider, 'width'), 10);
        },
        tipDisabled: function tipDisabled() {
            return this.tipFormat(this.currentValue[0]) === null || this.showTip === 'never';
        }
    },
    methods: {
        updateValue: function updateValue(val) {
            var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

            if (this.range) {
                var value = [].concat((0, _toConsumableArray3.default)(val));
                if (init) {
                    if (value[0] > value[1]) {
                        value = [this.min, this.max];
                    }
                } else {
                    if (value[0] > value[1]) {
                        value[0] = value[1];
                    }
                }
                if (value[0] < this.min) {
                    value[0] = this.min;
                }
                if (value[0] > this.max) {
                    value[0] = this.max;
                }
                if (value[1] < this.min) {
                    value[1] = this.min;
                }
                if (value[1] > this.max) {
                    value[1] = this.max;
                }
                if (this.value[0] === value[0] && this.value[1] === value[1]) {
                    this.setFirstPosition(this.currentValue[0]);
                    this.setSecondPosition(this.currentValue[1]);
                    return;
                }

                this.currentValue = value;
                this.setFirstPosition(this.currentValue[0]);
                this.setSecondPosition(this.currentValue[1]);
            } else {
                if (val < this.min) {
                    this.currentValue = this.min;
                }
                if (val > this.max) {
                    this.currentValue = this.max;
                }
                this.setSinglePosition(this.currentValue);
            }
        },
        sliderClick: function sliderClick(event) {
            if (this.disabled) return;
            var currentX = event.clientX;
            var sliderOffsetLeft = this.$refs.slider.getBoundingClientRect().left;
            var newPos = (currentX - sliderOffsetLeft) / this.sliderWidth * 100;

            if (this.range) {
                var type = '';
                if (newPos <= this.firstPosition) {
                    type = 'First';
                } else if (newPos >= this.secondPosition) {
                    type = 'Second';
                } else {
                    if (newPos - this.firstPosition <= this.secondPosition - newPos) {
                        type = 'First';
                    } else {
                        type = 'Second';
                    }
                }
                this['change' + type + 'Position'](newPos);
            } else {
                this.changeSinglePosition(newPos);
            }
        },
        onSingleButtonDown: function onSingleButtonDown(event) {
            if (this.disabled) return;
            event.preventDefault();
            this.onSingleDragStart(event);

            (0, _dom.on)(window, 'mousemove', this.onSingleDragging);
            (0, _dom.on)(window, 'mouseup', this.onSingleDragEnd);
        },
        onSingleDragStart: function onSingleDragStart(event) {
            this.dragging = false;
            this.startX = event.clientX;
            this.startPos = parseInt(this.singlePosition, 10);
        },
        onSingleDragging: function onSingleDragging(event) {
            this.dragging = true;
            if (this.dragging) {
                this.$refs.tooltip.visible = true;
                this.currentX = event.clientX;
                var diff = (this.currentX - this.startX) / this.sliderWidth * 100;
                this.newPos = this.startPos + diff;
                this.changeSinglePosition(this.newPos);
            }
        },
        onSingleDragEnd: function onSingleDragEnd() {
            if (this.dragging) {
                this.dragging = false;
                this.$refs.tooltip.visible = false;
                this.changeSinglePosition(this.newPos);
            }
            (0, _dom.off)(window, 'mousemove', this.onSingleDragging);
            (0, _dom.off)(window, 'mouseup', this.onSingleDragEnd);
        },
        changeSinglePosition: function changeSinglePosition(newPos) {
            if (newPos < 0) {
                newPos = 0;
            } else if (newPos > 100) {
                newPos = 100;
            }
            var lengthPerStep = 100 / ((this.max - this.min) / this.step);
            var steps = Math.round(newPos / lengthPerStep);

            this.currentValue = Math.round(steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min);
            this.setSinglePosition(this.currentValue);
            if (!this.dragging) {
                if (this.currentValue !== this.oldSingleValue) {
                    this.$emit('on-change', this.currentValue);
                    this.dispatch('FormItem', 'on-form-change', this.currentValue);
                    this.oldSingleValue = this.currentValue;
                }
            }
        },
        setSinglePosition: function setSinglePosition(val) {
            this.singlePosition = (val - this.min) / (this.max - this.min) * 100;
        },
        handleInputChange: function handleInputChange(val) {
            this.currentValue = val;
            this.setSinglePosition(val);
            this.$emit('on-change', this.currentValue);
            this.dispatch('FormItem', 'on-form-change', this.currentValue);
        },
        onFirstButtonDown: function onFirstButtonDown(event) {
            if (this.disabled) return;
            event.preventDefault();
            this.onFirstDragStart(event);

            (0, _dom.on)(window, 'mousemove', this.onFirstDragging);
            (0, _dom.on)(window, 'mouseup', this.onFirstDragEnd);
        },
        onFirstDragStart: function onFirstDragStart(event) {
            this.firstDragging = false;
            this.startX = event.clientX;
            this.startPos = parseInt(this.firstPosition, 10);
        },
        onFirstDragging: function onFirstDragging(event) {
            this.firstDragging = true;
            if (this.firstDragging) {
                this.$refs.tooltip.visible = true;
                this.currentX = event.clientX;
                var diff = (this.currentX - this.startX) / this.sliderWidth * 100;
                this.newPos = this.startPos + diff;
                this.changeFirstPosition(this.newPos);
            }
        },
        onFirstDragEnd: function onFirstDragEnd() {
            if (this.firstDragging) {
                this.firstDragging = false;
                this.$refs.tooltip.visible = false;
                this.changeFirstPosition(this.newPos);
            }
            (0, _dom.off)(window, 'mousemove', this.onFirstDragging);
            (0, _dom.off)(window, 'mouseup', this.onFirstDragEnd);
        },
        changeFirstPosition: function changeFirstPosition(newPos) {
            if (newPos < 0) {
                newPos = 0;
            } else if (newPos > this.secondPosition) {
                newPos = this.secondPosition;
            }
            var lengthPerStep = 100 / ((this.max - this.min) / this.step);
            var steps = Math.round(newPos / lengthPerStep);

            this.currentValue = [Math.round(steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min), this.currentValue[1]];
            this.setFirstPosition(this.currentValue[0]);
            if (!this.firstDragging) {
                if (this.currentValue[0] !== this.oldFirstValue) {
                    this.$emit('on-change', this.currentValue);
                    this.dispatch('FormItem', 'on-form-change', this.currentValue);
                    this.oldFirstValue = this.currentValue[0];
                }
            }
        },
        setFirstPosition: function setFirstPosition(val) {
            this.firstPosition = (val - this.min) / (this.max - this.min) * 100;
        },
        onSecondButtonDown: function onSecondButtonDown(event) {
            if (this.disabled) return;
            event.preventDefault();
            this.onSecondDragStart(event);

            (0, _dom.on)(window, 'mousemove', this.onSecondDragging);
            (0, _dom.on)(window, 'mouseup', this.onSecondDragEnd);
        },
        onSecondDragStart: function onSecondDragStart(event) {
            this.secondDragging = false;
            this.startX = event.clientX;
            this.startPos = parseInt(this.secondPosition, 10);
        },
        onSecondDragging: function onSecondDragging(event) {
            this.secondDragging = true;
            if (this.secondDragging) {
                this.$refs.tooltip2.visible = true;
                this.currentX = event.clientX;
                var diff = (this.currentX - this.startX) / this.sliderWidth * 100;
                this.newPos = this.startPos + diff;
                this.changeSecondPosition(this.newPos);
            }
        },
        onSecondDragEnd: function onSecondDragEnd() {
            if (this.secondDragging) {
                this.secondDragging = false;
                this.$refs.tooltip2.visible = false;
                this.changeSecondPosition(this.newPos);
            }
            (0, _dom.off)(window, 'mousemove', this.onSecondDragging);
            (0, _dom.off)(window, 'mouseup', this.onSecondDragEnd);
        },
        changeSecondPosition: function changeSecondPosition(newPos) {
            if (newPos > 100) {
                newPos = 100;
            } else if (newPos < this.firstPosition) {
                newPos = this.firstPosition;
            }
            var lengthPerStep = 100 / ((this.max - this.min) / this.step);
            var steps = Math.round(newPos / lengthPerStep);

            this.currentValue = [this.currentValue[0], Math.round(steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min)];
            this.setSecondPosition(this.currentValue[1]);
            if (!this.secondDragging) {
                if (this.currentValue[1] !== this.oldSecondValue) {
                    this.$emit('on-change', this.currentValue);
                    this.dispatch('FormItem', 'on-form-change', this.currentValue);
                    this.oldSecondValue = this.currentValue[1];
                }
            }
        },
        setSecondPosition: function setSecondPosition(val) {
            this.secondPosition = (val - this.min) / (this.max - this.min) * 100;
        }
    },
    mounted: function mounted() {
        if (this.range) {
            var isArray = Array.isArray(this.currentValue);
            if (!isArray || isArray && this.currentValue.length != 2 || isArray && (isNaN(this.currentValue[0]) || isNaN(this.currentValue[1]))) {
                this.currentValue = [this.min, this.max];
            } else {
                this.updateValue(this.currentValue, true);
            }
        } else {
            if (typeof this.currentValue !== 'number') {
                this.currentValue = this.min;
            }
            this.updateValue(this.currentValue);
        }
    }
};

/***/ }),
/* 414 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _popper = __webpack_require__(103);

var _popper2 = _interopRequireDefault(_popper);

var _transferDom = __webpack_require__(16);

var _transferDom2 = _interopRequireDefault(_transferDom);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-tooltip';

exports.default = {
    name: 'Tooltip',
    directives: { TransferDom: _transferDom2.default },
    mixins: [_popper2.default],
    props: {
        placement: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'right', 'right-start', 'right-end']);
            },

            default: 'bottom'
        },
        content: {
            type: [String, Number],
            default: ''
        },
        delay: {
            type: Number,
            default: 100
        },
        disabled: {
            type: Boolean,
            default: false
        },
        controlled: {
            type: Boolean,
            default: false
        },
        always: {
            type: Boolean,
            default: false
        },
        transfer: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls
        };
    },

    methods: {
        handleShowPopper: function handleShowPopper() {
            var _this = this;

            if (this.timeout) clearTimeout(this.timeout);
            this.timeout = setTimeout(function () {
                _this.visible = true;
            }, this.delay);
        },
        handleClosePopper: function handleClosePopper() {
            var _this2 = this;

            if (this.timeout) {
                clearTimeout(this.timeout);
                if (!this.controlled) {
                    this.timeout = setTimeout(function () {
                        _this2.visible = false;
                    }, 100);
                }
            }
        }
    },
    mounted: function mounted() {
        if (this.always) {
            this.updatePopper();
        }
    }
};

/***/ }),
/* 415 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: [_vm.prefixCls],
      on: {
        "mouseenter": _vm.handleShowPopper,
        "mouseleave": _vm.handleClosePopper
      }
    }, [_c('div', {
      ref: "reference",
      class: [_vm.prefixCls + '-rel']
    }, [_vm._t("default")], 2), _vm._v(" "), _c('transition', {
      attrs: {
        "name": "fade"
      }
    }, [_c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !_vm.disabled && (_vm.visible || _vm.always),
        expression: "!disabled && (visible || always)"
      }, {
        name: "transfer-dom",
        rawName: "v-transfer-dom"
      }],
      ref: "popper",
      class: [_vm.prefixCls + '-popper'],
      attrs: {
        "data-transfer": _vm.transfer
      },
      on: {
        "mouseenter": _vm.handleShowPopper,
        "mouseleave": _vm.handleClosePopper
      }
    }, [_c('div', {
      class: [_vm.prefixCls + '-content']
    }, [_c('div', {
      class: [_vm.prefixCls + '-arrow']
    }), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-inner']
    }, [_vm._t("content", [_vm._v(_vm._s(_vm.content))])], 2)])])])], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 416 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [!_vm.range && _vm.showInput ? _c('Input-number', {
      attrs: {
        "min": _vm.min,
        "max": _vm.max,
        "step": _vm.step,
        "value": _vm.currentValue,
        "disabled": _vm.disabled
      },
      on: {
        "on-change": _vm.handleInputChange
      }
    }) : _vm._e(), _vm._v(" "), _c('div', {
      ref: "slider",
      class: [_vm.prefixCls + '-wrap'],
      on: {
        "click": function click($event) {
          if ($event.target !== $event.currentTarget) {
            return null;
          }
          _vm.sliderClick($event);
        }
      }
    }, [_c('input', {
      attrs: {
        "type": "hidden",
        "name": _vm.name
      },
      domProps: {
        "value": _vm.currentValue
      }
    }), _vm._v(" "), _vm.showStops ? _vm._l(_vm.stops, function (item) {
      return _c('div', {
        class: [_vm.prefixCls + '-stop'],
        style: {
          'left': item + '%'
        },
        on: {
          "click": function click($event) {
            if ($event.target !== $event.currentTarget) {
              return null;
            }
            _vm.sliderClick($event);
          }
        }
      });
    }) : _vm._e(), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-bar'],
      style: _vm.barStyle,
      on: {
        "click": function click($event) {
          if ($event.target !== $event.currentTarget) {
            return null;
          }
          _vm.sliderClick($event);
        }
      }
    }), _vm._v(" "), _vm.range ? [_c('div', {
      class: [_vm.prefixCls + '-button-wrap'],
      style: {
        left: _vm.firstPosition + '%'
      },
      on: {
        "mousedown": _vm.onFirstButtonDown
      }
    }, [_c('Tooltip', {
      ref: "tooltip",
      attrs: {
        "controlled": _vm.firstDragging,
        "placement": "top",
        "content": _vm.tipFormat(_vm.currentValue[0]),
        "disabled": _vm.tipDisabled,
        "always": _vm.showTip === 'always'
      }
    }, [_c('div', {
      class: _vm.button1Classes
    })])], 1), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-button-wrap'],
      style: {
        left: _vm.secondPosition + '%'
      },
      on: {
        "mousedown": _vm.onSecondButtonDown
      }
    }, [_c('Tooltip', {
      ref: "tooltip2",
      attrs: {
        "controlled": _vm.secondDragging,
        "placement": "top",
        "content": _vm.tipFormat(_vm.currentValue[1]),
        "disabled": _vm.tipDisabled,
        "always": _vm.showTip === 'always'
      }
    }, [_c('div', {
      class: _vm.button2Classes
    })])], 1)] : [_c('div', {
      class: [_vm.prefixCls + '-button-wrap'],
      style: {
        left: _vm.singlePosition + '%'
      },
      on: {
        "mousedown": _vm.onSingleButtonDown
      }
    }, [_c('Tooltip', {
      ref: "tooltip",
      attrs: {
        "controlled": _vm.dragging,
        "placement": "top",
        "content": _vm.tipFormat(_vm.currentValue),
        "disabled": _vm.tipDisabled,
        "always": _vm.showTip === 'always'
      }
    }, [_c('div', {
      class: _vm.buttonClasses
    })])], 1)]], 2)], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 417 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _spin = __webpack_require__(418);

var _spin2 = _interopRequireDefault(_spin);

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

var spinInstance = void 0;

function getSpinInstance() {
    var render = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;

    spinInstance = spinInstance || _spin2.default.newInstance({
        render: render
    });

    return spinInstance;
}

function loading(options) {
    var render = 'render' in options ? options.render : undefined;
    var instance = getSpinInstance(render);

    instance.show(options);
}

_spin2.default.show = function () {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    return loading(props);
};
_spin2.default.hide = function () {
    if (!spinInstance) return false;

    var instance = getSpinInstance();

    instance.remove(function () {
        spinInstance = null;
    });
};

exports.default = _spin2.default;

/***/ }),
/* 418 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

var _spin = __webpack_require__(106);

var _spin2 = _interopRequireDefault(_spin);

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

_spin2.default.newInstance = function (properties) {
    var _props = properties || {};

    var Instance = new _vue2.default({
        data: (0, _assign2.default)({}, _props, {}),
        render: function render(h) {
            var vnode = '';
            if (this.render) {
                vnode = h(_spin2.default, {
                    props: {
                        fix: true,
                        fullscreen: true
                    }
                }, [this.render(h)]);
            } else {
                vnode = h(_spin2.default, {
                    props: {
                        size: 'large',
                        fix: true,
                        fullscreen: true
                    }
                });
            }
            return h('div', {
                'class': 'ivu-spin-fullscreen ivu-spin-fullscreen-wrapper'
            }, [vnode]);
        }
    });

    var component = Instance.$mount();
    document.body.appendChild(component.$el);
    var spin = Instance.$children[0];

    return {
        show: function show() {
            spin.visible = true;
        },
        remove: function remove(cb) {
            spin.visible = false;
            setTimeout(function () {
                spin.$parent.$destroy();
                document.body.removeChild(document.getElementsByClassName('ivu-spin-fullscreen')[0]);
                cb();
            }, 500);
        },

        component: spin
    };
};

exports.default = _spin2.default;

/***/ }),
/* 419 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _mixinsScrollbar = __webpack_require__(101);

var _mixinsScrollbar2 = _interopRequireDefault(_mixinsScrollbar);

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

var prefixCls = 'ivu-spin';

exports.default = {
    name: 'Spin',
    mixins: [_mixinsScrollbar2.default],
    props: {
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large']);
            }
        },
        fix: {
            type: Boolean,
            default: false
        },
        fullscreen: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            showText: false,

            visible: false
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref, prefixCls + '-fix', this.fix), (0, _defineProperty3.default)(_ref, prefixCls + '-show-text', this.showText), (0, _defineProperty3.default)(_ref, prefixCls + '-fullscreen', this.fullscreen), _ref)];
        },
        mainClasses: function mainClasses() {
            return prefixCls + '-main';
        },
        dotClasses: function dotClasses() {
            return prefixCls + '-dot';
        },
        textClasses: function textClasses() {
            return prefixCls + '-text';
        },
        fullscreenVisible: function fullscreenVisible() {
            if (this.fullscreen) {
                return this.visible;
            } else {
                return true;
            }
        }
    },
    watch: {
        visible: function visible(val) {
            if (val) {
                this.addScrollEffect();
            } else {
                this.removeScrollEffect();
            }
        }
    },
    mounted: function mounted() {
        this.showText = this.$slots.default !== undefined;
    }
};

/***/ }),
/* 420 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('transition', {
      attrs: {
        "name": "fade"
      }
    }, [_vm.fullscreenVisible ? _c('div', {
      class: _vm.classes
    }, [_c('div', {
      class: _vm.mainClasses
    }, [_c('span', {
      class: _vm.dotClasses
    }), _vm._v(" "), _c('div', {
      class: _vm.textClasses
    }, [_vm._t("default")], 2)])]) : _vm._e()]);
  }, staticRenderFns: [] };

/***/ }),
/* 421 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _steps = __webpack_require__(422);

var _steps2 = _interopRequireDefault(_steps);

var _step = __webpack_require__(425);

var _step2 = _interopRequireDefault(_step);

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

_steps2.default.Step = _step2.default;
exports.default = _steps2.default;

/***/ }),
/* 422 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(423),
  /* template */
  __webpack_require__(424),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 423 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-steps';

function debounce(fn) {
    var waiting = void 0;
    return function () {
        if (waiting) return;
        waiting = true;
        var context = this,
            args = arguments;
        var later = function later() {
            waiting = false;
            fn.apply(context, args);
        };
        this.$nextTick(later);
    };
}

exports.default = {
    name: 'Steps',
    props: {
        current: {
            type: Number,
            default: 0
        },
        status: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['wait', 'process', 'finish', 'error']);
            },

            default: 'process'
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small']);
            }
        },
        direction: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['horizontal', 'vertical']);
            },

            default: 'horizontal'
        }
    },
    computed: {
        classes: function classes() {
            return ['' + prefixCls, prefixCls + '-' + this.direction, (0, _defineProperty3.default)({}, prefixCls + '-' + this.size, !!this.size)];
        }
    },
    methods: {
        updateChildProps: function updateChildProps(isInit) {
            var _this = this;

            var total = this.$children.length;
            this.$children.forEach(function (child, index) {
                child.stepNumber = index + 1;

                if (_this.direction === 'horizontal') {
                    child.total = total;
                }

                if (!(isInit && child.currentStatus)) {
                    if (index == _this.current) {
                        if (_this.status != 'error') {
                            child.currentStatus = 'process';
                        }
                    } else if (index < _this.current) {
                        child.currentStatus = 'finish';
                    } else {
                        child.currentStatus = 'wait';
                    }
                }

                if (child.currentStatus != 'error' && index != 0) {
                    _this.$children[index - 1].nextError = false;
                }
            });
        },
        setNextError: function setNextError() {
            var _this2 = this;

            this.$children.forEach(function (child, index) {
                if (child.currentStatus == 'error' && index != 0) {
                    _this2.$children[index - 1].nextError = true;
                }
            });
        },
        updateCurrent: function updateCurrent(isInit) {
            if (this.current < 0 || this.current >= this.$children.length) {
                return;
            }
            if (isInit) {
                var current_status = this.$children[this.current].currentStatus;
                if (!current_status) {
                    this.$children[this.current].currentStatus = this.status;
                }
            } else {
                this.$children[this.current].currentStatus = this.status;
            }
        },
        debouncedAppendRemove: function debouncedAppendRemove() {
            return debounce(function () {
                this.updateSteps();
            });
        },
        updateSteps: function updateSteps() {
            this.updateChildProps(true);
            this.setNextError();
            this.updateCurrent(true);
        }
    },
    mounted: function mounted() {
        this.updateSteps();
        this.$on('append', this.debouncedAppendRemove());
        this.$on('remove', this.debouncedAppendRemove());
    },

    watch: {
        current: function current() {
            this.updateChildProps();
        },
        status: function status() {
            this.updateCurrent();
        }
    }
};

/***/ }),
/* 424 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 425 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(426),
  /* template */
  __webpack_require__(427),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 426 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-steps';
var iconPrefixCls = 'ivu-icon';

exports.default = {
    name: 'Step',
    mixins: [_emitter2.default],
    props: {
        status: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['wait', 'process', 'finish', 'error']);
            }
        },
        title: {
            type: String,
            default: ''
        },
        content: {
            type: String
        },
        icon: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            stepNumber: '',
            nextError: false,
            total: 1,
            currentStatus: ''
        };
    },

    computed: {
        wrapClasses: function wrapClasses() {
            var _ref;

            return [prefixCls + '-item', prefixCls + '-status-' + this.currentStatus, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-custom', !!this.icon), (0, _defineProperty3.default)(_ref, prefixCls + '-next-error', this.nextError), _ref)];
        },
        iconClasses: function iconClasses() {
            var icon = '';

            if (this.icon) {
                icon = this.icon;
            } else {
                if (this.currentStatus == 'finish') {
                    icon = 'ios-checkmark-empty';
                } else if (this.currentStatus == 'error') {
                    icon = 'ios-close-empty';
                }
            }

            return [prefixCls + '-icon', '' + iconPrefixCls, (0, _defineProperty3.default)({}, iconPrefixCls + '-' + icon, icon != '')];
        },
        styles: function styles() {
            return {
                width: 1 / this.total * 100 + '%'
            };
        }
    },
    watch: {
        status: function status(val) {
            this.currentStatus = val;
            if (this.currentStatus == 'error') {
                this.$parent.setNextError();
            }
        }
    },
    created: function created() {
        this.currentStatus = this.status;
    },
    mounted: function mounted() {
        this.dispatch('Steps', 'append');
    },
    beforeDestroy: function beforeDestroy() {
        this.dispatch('Steps', 'remove');
    }
};

/***/ }),
/* 427 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.wrapClasses,
      style: _vm.styles
    }, [_c('div', {
      class: [_vm.prefixCls + '-tail']
    }, [_c('i')]), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-head']
    }, [_c('div', {
      class: [_vm.prefixCls + '-head-inner']
    }, [!_vm.icon && _vm.currentStatus != 'finish' && _vm.currentStatus != 'error' ? _c('span', [_vm._v(_vm._s(_vm.stepNumber))]) : _c('span', {
      class: _vm.iconClasses
    })])]), _vm._v(" "), _c('div', {
      class: [_vm.prefixCls + '-main']
    }, [_c('div', {
      class: [_vm.prefixCls + '-title']
    }, [_vm._v(_vm._s(_vm.title))]), _vm._v(" "), _vm._t("default", [_vm.content ? _c('div', {
      class: [_vm.prefixCls + '-content']
    }, [_vm._v(_vm._s(_vm.content))]) : _vm._e()])], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 428 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _switch = __webpack_require__(429);

var _switch2 = _interopRequireDefault(_switch);

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

exports.default = _switch2.default;

/***/ }),
/* 429 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(430),
  /* template */
  __webpack_require__(431),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 430 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-switch';

exports.default = {
    name: 'Switch',
    mixins: [_emitter2.default],
    props: {
        value: {
            type: [String, Number, Boolean],
            default: false
        },
        trueValue: {
            type: [String, Number, Boolean],
            default: true
        },
        falseValue: {
            type: [String, Number, Boolean],
            default: false
        },
        disabled: {
            type: Boolean,
            default: false
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['large', 'small', 'default']);
            }
        },
        name: {
            type: String
        }
    },
    data: function data() {
        return {
            currentValue: this.value
        };
    },

    computed: {
        wrapClasses: function wrapClasses() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-checked', this.currentValue === this.trueValue), (0, _defineProperty3.default)(_ref, prefixCls + '-disabled', this.disabled), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.size, !!this.size), _ref)];
        },
        innerClasses: function innerClasses() {
            return prefixCls + '-inner';
        }
    },
    methods: {
        toggle: function toggle() {
            if (this.disabled) {
                return false;
            }

            var checked = this.currentValue === this.trueValue ? this.falseValue : this.trueValue;

            this.currentValue = checked;
            this.$emit('input', checked);
            this.$emit('on-change', checked);
            this.dispatch('FormItem', 'on-form-change', checked);
        }
    },
    watch: {
        value: function value(val) {
            if (val !== this.trueValue && val !== this.falseValue) {
                throw 'Value should be trueValue or falseValue.';
            }
            this.currentValue = val;
        }
    }
};

/***/ }),
/* 431 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('span', {
      class: _vm.wrapClasses,
      on: {
        "click": _vm.toggle
      }
    }, [_c('input', {
      attrs: {
        "type": "hidden",
        "name": _vm.name
      },
      domProps: {
        "value": _vm.currentValue
      }
    }), _vm._v(" "), _c('span', {
      class: _vm.innerClasses
    }, [_vm.currentValue === _vm.trueValue ? _vm._t("open") : _vm._e(), _vm._v(" "), _vm.currentValue === _vm.falseValue ? _vm._t("close") : _vm._e()], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 432 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _table = __webpack_require__(433);

var _table2 = _interopRequireDefault(_table);

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

exports.default = _table2.default;

/***/ }),
/* 433 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(434),
  /* template */
  __webpack_require__(464),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 434 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _getIterator2 = __webpack_require__(435);

var _getIterator3 = _interopRequireDefault(_getIterator2);

var _stringify = __webpack_require__(86);

var _stringify2 = _interopRequireDefault(_stringify);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _tableHead = __webpack_require__(438);

var _tableHead2 = _interopRequireDefault(_tableHead);

var _tableBody = __webpack_require__(442);

var _tableBody2 = _interopRequireDefault(_tableBody);

var _spin = __webpack_require__(106);

var _spin2 = _interopRequireDefault(_spin);

var _assist = __webpack_require__(2);

var _dom = __webpack_require__(33);

var _csv = __webpack_require__(451);

var _csv2 = _interopRequireDefault(_csv);

var _exportCsv = __webpack_require__(452);

var _exportCsv2 = _interopRequireDefault(_exportCsv);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

var _elementResizeDetector = __webpack_require__(453);

var _elementResizeDetector2 = _interopRequireDefault(_elementResizeDetector);

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

var prefixCls = 'ivu-table';

var rowKey = 1;
var columnKey = 1;

exports.default = {
    name: 'Table',
    mixins: [_locale2.default],
    components: { tableHead: _tableHead2.default, tableBody: _tableBody2.default, Spin: _spin2.default },
    props: {
        data: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        columns: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'large', 'default']);
            }
        },
        width: {
            type: [Number, String]
        },
        height: {
            type: [Number, String]
        },
        stripe: {
            type: Boolean,
            default: false
        },
        border: {
            type: Boolean,
            default: false
        },
        showHeader: {
            type: Boolean,
            default: true
        },
        highlightRow: {
            type: Boolean,
            default: false
        },
        rowClassName: {
            type: Function,
            default: function _default() {
                return '';
            }
        },
        context: {
            type: Object
        },
        noDataText: {
            type: String
        },
        noFilteredDataText: {
            type: String
        },
        disabledHover: {
            type: Boolean
        },
        loading: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            ready: false,
            tableWidth: 0,
            columnsWidth: {},
            prefixCls: prefixCls,
            compiledUids: [],
            objData: this.makeObjData(),
            rebuildData: [],
            cloneColumns: this.makeColumns(),
            showSlotHeader: true,
            showSlotFooter: true,
            bodyHeight: 0,
            bodyRealHeight: 0,
            scrollBarWidth: (0, _assist.getScrollBarSize)(),
            currentContext: this.context,
            cloneData: (0, _assist.deepCopy)(this.data) };
    },

    computed: {
        localeNoDataText: function localeNoDataText() {
            if (this.noDataText === undefined) {
                return this.t('i.table.noDataText');
            } else {
                return this.noDataText;
            }
        },
        localeNoFilteredDataText: function localeNoFilteredDataText() {
            if (this.noFilteredDataText === undefined) {
                return this.t('i.table.noFilteredDataText');
            } else {
                return this.noFilteredDataText;
            }
        },
        wrapClasses: function wrapClasses() {
            var _ref;

            return [prefixCls + '-wrapper', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-hide', !this.ready), (0, _defineProperty3.default)(_ref, prefixCls + '-with-header', this.showSlotHeader), (0, _defineProperty3.default)(_ref, prefixCls + '-with-footer', this.showSlotFooter), _ref)];
        },
        classes: function classes() {
            var _ref2;

            return ['' + prefixCls, (_ref2 = {}, (0, _defineProperty3.default)(_ref2, prefixCls + '-' + this.size, !!this.size), (0, _defineProperty3.default)(_ref2, prefixCls + '-border', this.border), (0, _defineProperty3.default)(_ref2, prefixCls + '-stripe', this.stripe), (0, _defineProperty3.default)(_ref2, prefixCls + '-with-fixed-top', !!this.height), _ref2)];
        },
        fixedHeaderClasses: function fixedHeaderClasses() {
            return [prefixCls + '-fixed-header', (0, _defineProperty3.default)({}, prefixCls + '-fixed-header-with-empty', !this.rebuildData.length)];
        },
        styles: function styles() {
            var style = {};
            if (this.height) {
                var height = this.isLeftFixed || this.isRightFixed ? parseInt(this.height) + this.scrollBarWidth : parseInt(this.height);
                style.height = height + 'px';
            }
            if (this.width) style.width = this.width + 'px';
            return style;
        },
        tableStyle: function tableStyle() {
            var style = {};
            if (this.tableWidth !== 0) {
                var width = '';
                if (this.bodyHeight === 0) {
                    width = this.tableWidth;
                } else {
                    if (this.bodyHeight > this.bodyRealHeight) {
                        width = this.tableWidth;
                    } else {
                        width = this.tableWidth - this.scrollBarWidth;
                    }
                }

                style.width = width + 'px';
            }
            return style;
        },
        fixedTableStyle: function fixedTableStyle() {
            var style = {};
            var width = 0;
            this.leftFixedColumns.forEach(function (col) {
                if (col.fixed && col.fixed === 'left') width += col._width;
            });
            style.width = width + 'px';
            return style;
        },
        fixedRightTableStyle: function fixedRightTableStyle() {
            var style = {};
            var width = 0;
            this.rightFixedColumns.forEach(function (col) {
                if (col.fixed && col.fixed === 'right') width += col._width;
            });
            width += this.scrollBarWidth;
            style.width = width + 'px';
            return style;
        },
        bodyStyle: function bodyStyle() {
            var style = {};
            if (this.bodyHeight !== 0) {
                var height = this.isLeftFixed || this.isRightFixed ? this.bodyHeight + this.scrollBarWidth : this.bodyHeight;
                style.height = height + 'px';
            }
            return style;
        },
        fixedBodyStyle: function fixedBodyStyle() {
            var style = {};
            if (this.bodyHeight !== 0) {
                var height = this.bodyHeight + this.scrollBarWidth - 1;

                if (this.width && this.width < this.tableWidth) {
                    height = this.bodyHeight;
                }

                style.height = this.scrollBarWidth > 0 ? height + 'px' : height - 1 + 'px';
            }
            return style;
        },
        leftFixedColumns: function leftFixedColumns() {
            var left = [];
            var other = [];
            this.cloneColumns.forEach(function (col) {
                if (col.fixed && col.fixed === 'left') {
                    left.push(col);
                } else {
                    other.push(col);
                }
            });
            return left.concat(other);
        },
        rightFixedColumns: function rightFixedColumns() {
            var right = [];
            var other = [];
            this.cloneColumns.forEach(function (col) {
                if (col.fixed && col.fixed === 'right') {
                    right.push(col);
                } else {
                    other.push(col);
                }
            });
            return right.concat(other);
        },
        isLeftFixed: function isLeftFixed() {
            return this.columns.some(function (col) {
                return col.fixed && col.fixed === 'left';
            });
        },
        isRightFixed: function isRightFixed() {
            return this.columns.some(function (col) {
                return col.fixed && col.fixed === 'right';
            });
        }
    },
    methods: {
        rowClsName: function rowClsName(index) {
            return this.rowClassName(this.data[index], index);
        },
        handleResize: function handleResize() {
            var _this = this;

            this.$nextTick(function () {
                var allWidth = !_this.columns.some(function (cell) {
                    return !cell.width;
                });
                if (allWidth) {
                    _this.tableWidth = _this.columns.map(function (cell) {
                        return cell.width;
                    }).reduce(function (a, b) {
                        return a + b;
                    }, 0);
                } else {
                    _this.tableWidth = parseInt((0, _assist.getStyle)(_this.$el, 'width')) - 1;
                }
                _this.columnsWidth = {};
                _this.$nextTick(function () {
                    var columnsWidth = {};
                    var autoWidthIndex = -1;
                    if (allWidth) autoWidthIndex = _this.cloneColumns.findIndex(function (cell) {
                        return !cell.width;
                    });

                    if (_this.data.length) {
                        var $td = _this.$refs.tbody.$el.querySelectorAll('tbody tr')[0].children;
                        for (var i = 0; i < $td.length; i++) {
                            var column = _this.cloneColumns[i];

                            var width = parseInt((0, _assist.getStyle)($td[i], 'width'));
                            if (i === autoWidthIndex) {
                                width = parseInt((0, _assist.getStyle)($td[i], 'width')) - 1;
                            }
                            if (column.width) width = column.width;

                            _this.cloneColumns[i]._width = width;

                            columnsWidth[column._index] = {
                                width: width
                            };
                        }
                        _this.columnsWidth = columnsWidth;
                    }
                });

                _this.bodyRealHeight = parseInt((0, _assist.getStyle)(_this.$refs.tbody.$el, 'height'));
            });
        },
        handleMouseIn: function handleMouseIn(_index) {
            if (this.disabledHover) return;
            if (this.objData[_index]._isHover) return;
            this.objData[_index]._isHover = true;
        },
        handleMouseOut: function handleMouseOut(_index) {
            if (this.disabledHover) return;
            this.objData[_index]._isHover = false;
        },
        handleCurrentRow: function handleCurrentRow(type, _index) {
            var oldIndex = -1;
            for (var i in this.objData) {
                if (this.objData[i]._isHighlight) {
                    oldIndex = parseInt(i);
                    this.objData[i]._isHighlight = false;
                }
            }
            if (type === 'highlight') this.objData[_index]._isHighlight = true;
            var oldData = oldIndex < 0 ? null : JSON.parse((0, _stringify2.default)(this.cloneData[oldIndex]));
            var newData = type === 'highlight' ? JSON.parse((0, _stringify2.default)(this.cloneData[_index])) : null;
            this.$emit('on-current-change', newData, oldData);
        },
        highlightCurrentRow: function highlightCurrentRow(_index) {
            if (!this.highlightRow || this.objData[_index]._isHighlight) return;
            this.handleCurrentRow('highlight', _index);
        },
        clearCurrentRow: function clearCurrentRow() {
            if (!this.highlightRow) return;
            this.handleCurrentRow('clear');
        },
        clickCurrentRow: function clickCurrentRow(_index) {
            this.highlightCurrentRow(_index);
            this.$emit('on-row-click', JSON.parse((0, _stringify2.default)(this.cloneData[_index])), _index);
        },
        dblclickCurrentRow: function dblclickCurrentRow(_index) {
            this.highlightCurrentRow(_index);
            this.$emit('on-row-dblclick', JSON.parse((0, _stringify2.default)(this.cloneData[_index])), _index);
        },
        getSelection: function getSelection() {
            var selectionIndexes = [];
            for (var i in this.objData) {
                if (this.objData[i]._isChecked) selectionIndexes.push(parseInt(i));
            }
            return JSON.parse((0, _stringify2.default)(this.data.filter(function (data, index) {
                return selectionIndexes.indexOf(index) > -1;
            })));
        },
        toggleSelect: function toggleSelect(_index) {
            var data = {};

            for (var i in this.objData) {
                if (parseInt(i) === _index) {
                    data = this.objData[i];
                }
            }
            var status = !data._isChecked;

            this.objData[_index]._isChecked = status;

            var selection = this.getSelection();
            this.$emit(status ? 'on-select' : 'on-select-cancel', selection, JSON.parse((0, _stringify2.default)(this.data[_index])));
            this.$emit('on-selection-change', selection);
        },
        toggleExpand: function toggleExpand(_index) {
            var data = {};

            for (var i in this.objData) {
                if (parseInt(i) === _index) {
                    data = this.objData[i];
                }
            }
            var status = !data._isExpanded;
            this.objData[_index]._isExpanded = status;
            this.$emit('on-expand', JSON.parse((0, _stringify2.default)(this.cloneData[_index])), status);
        },
        selectAll: function selectAll(status) {
            var _iteratorNormalCompletion = true;
            var _didIteratorError = false;
            var _iteratorError = undefined;

            try {
                for (var _iterator = (0, _getIterator3.default)(this.rebuildData), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
                    var data = _step.value;

                    if (this.objData[data._index]._isDisabled) {
                        continue;
                    } else {
                        this.objData[data._index]._isChecked = status;
                    }
                }
            } catch (err) {
                _didIteratorError = true;
                _iteratorError = err;
            } finally {
                try {
                    if (!_iteratorNormalCompletion && _iterator.return) {
                        _iterator.return();
                    }
                } finally {
                    if (_didIteratorError) {
                        throw _iteratorError;
                    }
                }
            }

            var selection = this.getSelection();
            if (status) {
                this.$emit('on-select-all', selection);
            }
            this.$emit('on-selection-change', selection);
        },
        fixedHeader: function fixedHeader() {
            var _this2 = this;

            if (this.height) {
                this.$nextTick(function () {
                    var titleHeight = parseInt((0, _assist.getStyle)(_this2.$refs.title, 'height')) || 0;
                    var headerHeight = parseInt((0, _assist.getStyle)(_this2.$refs.header, 'height')) || 0;
                    var footerHeight = parseInt((0, _assist.getStyle)(_this2.$refs.footer, 'height')) || 0;
                    _this2.bodyHeight = _this2.height - titleHeight - headerHeight - footerHeight;
                });
            } else {
                this.bodyHeight = 0;
            }
        },
        hideColumnFilter: function hideColumnFilter() {
            this.cloneColumns.forEach(function (col) {
                return col._filterVisible = false;
            });
        },
        handleBodyScroll: function handleBodyScroll(event) {
            if (this.showHeader) this.$refs.header.scrollLeft = event.target.scrollLeft;
            if (this.isLeftFixed) this.$refs.fixedBody.scrollTop = event.target.scrollTop;
            if (this.isRightFixed) this.$refs.fixedRightBody.scrollTop = event.target.scrollTop;
            this.hideColumnFilter();
        },
        handleMouseWheel: function handleMouseWheel(event) {
            var deltaX = event.deltaX;
            var $body = this.$refs.body;

            if (deltaX > 0) {
                $body.scrollLeft = $body.scrollLeft + 10;
            } else {
                $body.scrollLeft = $body.scrollLeft - 10;
            }
        },
        sortData: function sortData(data, type, index) {
            var _this3 = this;

            var key = this.cloneColumns[index].key;
            data.sort(function (a, b) {
                if (_this3.cloneColumns[index].sortMethod) {
                    return _this3.cloneColumns[index].sortMethod(a[key], b[key], type);
                } else {
                    if (type === 'asc') {
                        return a[key] > b[key] ? 1 : -1;
                    } else if (type === 'desc') {
                        return a[key] < b[key] ? 1 : -1;
                    }
                }
            });
            return data;
        },
        handleSort: function handleSort(index, type) {
            this.cloneColumns.forEach(function (col) {
                return col._sortType = 'normal';
            });

            var key = this.cloneColumns[index].key;
            if (this.cloneColumns[index].sortable !== 'custom') {
                if (type === 'normal') {
                    this.rebuildData = this.makeDataWithFilter();
                } else {
                    this.rebuildData = this.sortData(this.rebuildData, type, index);
                }
            }
            this.cloneColumns[index]._sortType = type;

            this.$emit('on-sort-change', {
                column: JSON.parse((0, _stringify2.default)(this.columns[this.cloneColumns[index]._index])),
                key: key,
                order: type
            });
        },
        handleFilterHide: function handleFilterHide(index) {
            if (!this.cloneColumns[index]._isFiltered) this.cloneColumns[index]._filterChecked = [];
        },
        filterData: function filterData(data, column) {
            return data.filter(function (row) {
                if (typeof column.filterRemote === 'function') return true;

                var status = !column._filterChecked.length;
                for (var i = 0; i < column._filterChecked.length; i++) {
                    status = column.filterMethod(column._filterChecked[i], row);
                    if (status) break;
                }
                return status;
            });
        },
        filterOtherData: function filterOtherData(data, index) {
            var _this4 = this;

            var column = this.cloneColumns[index];
            if (typeof column.filterRemote === 'function') {
                column.filterRemote.call(this.$parent, column._filterChecked, column.key, column);
            }

            this.cloneColumns.forEach(function (col, colIndex) {
                if (colIndex !== index) {
                    data = _this4.filterData(data, col);
                }
            });
            return data;
        },
        handleFilter: function handleFilter(index) {
            var column = this.cloneColumns[index];
            var filterData = this.makeDataWithSort();

            filterData = this.filterOtherData(filterData, index);
            this.rebuildData = this.filterData(filterData, column);

            this.cloneColumns[index]._isFiltered = true;
            this.cloneColumns[index]._filterVisible = false;
        },
        handleFilterSelect: function handleFilterSelect(index, value) {
            this.cloneColumns[index]._filterChecked = [value];
            this.handleFilter(index);
        },
        handleFilterReset: function handleFilterReset(index) {
            this.cloneColumns[index]._isFiltered = false;
            this.cloneColumns[index]._filterVisible = false;
            this.cloneColumns[index]._filterChecked = [];

            var filterData = this.makeDataWithSort();
            filterData = this.filterOtherData(filterData, index);
            this.rebuildData = filterData;
        },
        makeData: function makeData() {
            var data = (0, _assist.deepCopy)(this.data);
            data.forEach(function (row, index) {
                row._index = index;
                row._rowKey = rowKey++;
            });
            return data;
        },
        makeDataWithSort: function makeDataWithSort() {
            var data = this.makeData();
            var sortType = 'normal';
            var sortIndex = -1;
            var isCustom = false;

            for (var i = 0; i < this.cloneColumns.length; i++) {
                if (this.cloneColumns[i]._sortType !== 'normal') {
                    sortType = this.cloneColumns[i]._sortType;
                    sortIndex = i;
                    isCustom = this.cloneColumns[i].sortable === 'custom';
                    break;
                }
            }
            if (sortType !== 'normal' && !isCustom) data = this.sortData(data, sortType, sortIndex);
            return data;
        },
        makeDataWithFilter: function makeDataWithFilter() {
            var _this5 = this;

            var data = this.makeData();
            this.cloneColumns.forEach(function (col) {
                return data = _this5.filterData(data, col);
            });
            return data;
        },
        makeDataWithSortAndFilter: function makeDataWithSortAndFilter() {
            var _this6 = this;

            var data = this.makeDataWithSort();
            this.cloneColumns.forEach(function (col) {
                return data = _this6.filterData(data, col);
            });
            return data;
        },
        makeObjData: function makeObjData() {
            var data = {};
            this.data.forEach(function (row, index) {
                var newRow = (0, _assist.deepCopy)(row);
                newRow._isHover = false;
                if (newRow._disabled) {
                    newRow._isDisabled = newRow._disabled;
                } else {
                    newRow._isDisabled = false;
                }
                if (newRow._checked) {
                    newRow._isChecked = newRow._checked;
                } else {
                    newRow._isChecked = false;
                }
                if (newRow._expanded) {
                    newRow._isExpanded = newRow._expanded;
                } else {
                    newRow._isExpanded = false;
                }
                if (newRow._highlight) {
                    newRow._isHighlight = newRow._highlight;
                } else {
                    newRow._isHighlight = false;
                }
                data[index] = newRow;
            });
            return data;
        },
        makeColumns: function makeColumns() {
            var columns = (0, _assist.deepCopy)(this.columns);
            var left = [];
            var right = [];
            var center = [];

            columns.forEach(function (column, index) {
                column._index = index;
                column._columnKey = columnKey++;
                column._width = column.width ? column.width : '';
                column._sortType = 'normal';
                column._filterVisible = false;
                column._isFiltered = false;
                column._filterChecked = [];

                if ('filterMultiple' in column) {
                    column._filterMultiple = column.filterMultiple;
                } else {
                    column._filterMultiple = true;
                }
                if ('filteredValue' in column) {
                    column._filterChecked = column.filteredValue;
                    column._isFiltered = true;
                }

                if ('sortType' in column) {
                    column._sortType = column.sortType;
                }

                if (column.fixed && column.fixed === 'left') {
                    left.push(column);
                } else if (column.fixed && column.fixed === 'right') {
                    right.push(column);
                } else {
                    center.push(column);
                }
            });
            return left.concat(center).concat(right);
        },
        exportCsv: function exportCsv(params) {
            if (params.filename) {
                if (params.filename.indexOf('.csv') === -1) {
                    params.filename += '.csv';
                }
            } else {
                params.filename = 'table.csv';
            }

            var columns = [];
            var datas = [];
            if (params.columns && params.data) {
                columns = params.columns;
                datas = params.data;
            } else {
                columns = this.columns;
                if (!('original' in params)) params.original = true;
                datas = params.original ? this.data : this.rebuildData;
            }

            var noHeader = false;
            if ('noHeader' in params) noHeader = params.noHeader;

            var data = (0, _csv2.default)(columns, datas, ',', noHeader);
            _exportCsv2.default.download(params.filename, data);
        }
    },
    created: function created() {
        if (!this.context) this.currentContext = this.$parent;
        this.showSlotHeader = this.$slots.header !== undefined;
        this.showSlotFooter = this.$slots.footer !== undefined;
        this.rebuildData = this.makeDataWithSortAndFilter();
    },
    mounted: function mounted() {
        var _this7 = this;

        this.handleResize();
        this.fixedHeader();
        this.$nextTick(function () {
            return _this7.ready = true;
        });

        (0, _dom.on)(window, 'resize', this.handleResize);
        this.observer = (0, _elementResizeDetector2.default)();
        this.observer.listenTo(this.$el, this.handleResize);

        this.$on('on-visible-change', function (val) {
            if (val) {
                _this7.handleResize();
                _this7.fixedHeader();
            }
        });
    },
    beforeDestroy: function beforeDestroy() {
        (0, _dom.off)(window, 'resize', this.handleResize);
        this.observer.removeListener(this.$el, this.handleResize);
    },

    watch: {
        data: {
            handler: function handler() {
                var _this8 = this;

                var oldDataLen = this.rebuildData.length;
                this.objData = this.makeObjData();
                this.rebuildData = this.makeDataWithSortAndFilter();
                this.handleResize();
                if (!oldDataLen) {
                    this.fixedHeader();
                }

                setTimeout(function () {
                    _this8.cloneData = (0, _assist.deepCopy)(_this8.data);
                }, 0);
            },

            deep: true
        },
        columns: {
            handler: function handler() {
                this.cloneColumns = this.makeColumns();
                this.rebuildData = this.makeDataWithSortAndFilter();
                this.handleResize();
            },

            deep: true
        },
        height: function height() {
            this.fixedHeader();
        }
    }
};

/***/ }),
/* 435 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = { "default": __webpack_require__(436), __esModule: true };

/***/ }),
/* 436 */
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__(82);
__webpack_require__(56);
module.exports = __webpack_require__(437);


/***/ }),
/* 437 */
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__(22);
var get = __webpack_require__(87);
module.exports = __webpack_require__(7).getIterator = function (it) {
  var iterFn = get(it);
  if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');
  return anObject(iterFn.call(it));
};


/***/ }),
/* 438 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(439),
  /* template */
  __webpack_require__(441),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 439 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assign = __webpack_require__(10);

var _assign2 = _interopRequireDefault(_assign);

var _checkboxGroup = __webpack_require__(88);

var _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);

var _checkbox = __webpack_require__(36);

var _checkbox2 = _interopRequireDefault(_checkbox);

var _poptip = __webpack_require__(102);

var _poptip2 = _interopRequireDefault(_poptip);

var _button = __webpack_require__(20);

var _button2 = _interopRequireDefault(_button);

var _header = __webpack_require__(440);

var _header2 = _interopRequireDefault(_header);

var _mixin = __webpack_require__(107);

var _mixin2 = _interopRequireDefault(_mixin);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

exports.default = {
    name: 'TableHead',
    mixins: [_mixin2.default, _locale2.default],
    components: { CheckboxGroup: _checkboxGroup2.default, Checkbox: _checkbox2.default, Poptip: _poptip2.default, iButton: _button2.default, renderHeader: _header2.default },
    props: {
        prefixCls: String,
        styleObject: Object,
        columns: Array,
        objData: Object,
        data: Array,
        columnsWidth: Object,
        fixed: {
            type: [Boolean, String],
            default: false
        }
    },
    computed: {
        styles: function styles() {
            var style = (0, _assign2.default)({}, this.styleObject);
            var width = this.$parent.bodyHeight === 0 ? parseInt(this.styleObject.width) : parseInt(this.styleObject.width) + this.$parent.scrollBarWidth;
            style.width = width + 'px';
            return style;
        },
        isSelectAll: function isSelectAll() {
            var isSelectAll = true;
            if (!this.data.length) isSelectAll = false;
            if (!this.data.find(function (item) {
                return !item._disabled;
            })) isSelectAll = false;
            for (var i = 0; i < this.data.length; i++) {
                if (!this.objData[this.data[i]._index]._isChecked && !this.objData[this.data[i]._index]._isDisabled) {
                    isSelectAll = false;
                    break;
                }
            }

            return isSelectAll;
        }
    },
    methods: {
        cellClasses: function cellClasses(column) {
            return [this.prefixCls + '-cell', (0, _defineProperty3.default)({}, this.prefixCls + '-hidden', !this.fixed && column.fixed && (column.fixed === 'left' || column.fixed === 'right'))];
        },
        itemClasses: function itemClasses(column, item) {
            return [this.prefixCls + '-filter-select-item', (0, _defineProperty3.default)({}, this.prefixCls + '-filter-select-item-selected', column._filterChecked[0] === item.value)];
        },
        itemAllClasses: function itemAllClasses(column) {
            return [this.prefixCls + '-filter-select-item', (0, _defineProperty3.default)({}, this.prefixCls + '-filter-select-item-selected', !column._filterChecked.length)];
        },
        selectAll: function selectAll() {
            var status = !this.isSelectAll;
            this.$parent.selectAll(status);
        },
        handleSort: function handleSort(index, type) {
            if (this.columns[index]._sortType === type) {
                type = 'normal';
            }
            this.$parent.handleSort(index, type);
        },
        handleSortByHead: function handleSortByHead(index) {
            var column = this.columns[index];
            if (column.sortable) {
                var type = column._sortType;
                if (type === 'normal') {
                    this.handleSort(index, 'asc');
                } else if (type === 'asc') {
                    this.handleSort(index, 'desc');
                } else {
                    this.handleSort(index, 'normal');
                }
            }
        },
        handleFilter: function handleFilter(index) {
            this.$parent.handleFilter(index);
        },
        handleSelect: function handleSelect(index, value) {
            this.$parent.handleFilterSelect(index, value);
        },
        handleReset: function handleReset(index) {
            this.$parent.handleFilterReset(index);
        },
        handleFilterHide: function handleFilterHide(index) {
            this.$parent.handleFilterHide(index);
        }
    }
};

/***/ }),
/* 440 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    name: 'TableRenderHeader',
    functional: true,
    props: {
        render: Function,
        column: Object,
        index: Number
    },
    render: function render(h, ctx) {
        var params = {
            column: ctx.props.column,
            index: ctx.props.index
        };
        return ctx.props.render(h, params);
    }
};

/***/ }),
/* 441 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('table', {
      style: _vm.styles,
      attrs: {
        "cellspacing": "0",
        "cellpadding": "0",
        "border": "0"
      }
    }, [_c('colgroup', _vm._l(_vm.columns, function (column, index) {
      return _c('col', {
        attrs: {
          "width": _vm.setCellWidth(column, index, true)
        }
      });
    })), _vm._v(" "), _c('thead', [_c('tr', _vm._l(_vm.columns, function (column, index) {
      return _c('th', {
        class: _vm.alignCls(column)
      }, [_c('div', {
        class: _vm.cellClasses(column)
      }, [column.type === 'expand' ? [!column.renderHeader ? _c('span', [_vm._v(_vm._s(column.title || ''))]) : _c('render-header', {
        attrs: {
          "render": column.renderHeader,
          "column": column,
          "index": index
        }
      })] : column.type === 'selection' ? [_c('Checkbox', {
        attrs: {
          "value": _vm.isSelectAll
        },
        on: {
          "on-change": _vm.selectAll
        }
      })] : [!column.renderHeader ? _c('span', {
        on: {
          "click": function click($event) {
            _vm.handleSortByHead(index);
          }
        }
      }, [_vm._v(_vm._s(column.title || '#'))]) : _c('render-header', {
        attrs: {
          "render": column.renderHeader,
          "column": column,
          "index": index
        }
      }), _vm._v(" "), column.sortable ? _c('span', {
        class: [_vm.prefixCls + '-sort']
      }, [_c('i', {
        staticClass: "ivu-icon ivu-icon-arrow-up-b",
        class: {
          on: column._sortType === 'asc'
        },
        on: {
          "click": function click($event) {
            _vm.handleSort(index, 'asc');
          }
        }
      }), _vm._v(" "), _c('i', {
        staticClass: "ivu-icon ivu-icon-arrow-down-b",
        class: {
          on: column._sortType === 'desc'
        },
        on: {
          "click": function click($event) {
            _vm.handleSort(index, 'desc');
          }
        }
      })]) : _vm._e(), _vm._v(" "), _vm.isPopperShow(column) ? _c('Poptip', {
        attrs: {
          "placement": "bottom"
        },
        on: {
          "on-popper-hide": function onPopperHide($event) {
            _vm.handleFilterHide(index);
          }
        },
        model: {
          value: column._filterVisible,
          callback: function callback($$v) {
            column._filterVisible = $$v;
          },
          expression: "column._filterVisible"
        }
      }, [_c('span', {
        class: [_vm.prefixCls + '-filter']
      }, [_c('i', {
        staticClass: "ivu-icon ivu-icon-funnel",
        class: {
          on: column._isFiltered
        }
      })]), _vm._v(" "), column._filterMultiple ? _c('div', {
        class: [_vm.prefixCls + '-filter-list'],
        attrs: {
          "slot": "content"
        },
        slot: "content"
      }, [_c('div', {
        class: [_vm.prefixCls + '-filter-list-item']
      }, [_c('checkbox-group', {
        model: {
          value: column._filterChecked,
          callback: function callback($$v) {
            column._filterChecked = $$v;
          },
          expression: "column._filterChecked"
        }
      }, _vm._l(column.filters, function (item) {
        return _c('checkbox', {
          key: column._columnKey,
          attrs: {
            "label": item.value
          }
        }, [_vm._v(_vm._s(item.label))]);
      }))], 1), _vm._v(" "), _c('div', {
        class: [_vm.prefixCls + '-filter-footer']
      }, [_c('i-button', {
        attrs: {
          "type": "text",
          "size": "small",
          "disabled": !column._filterChecked.length
        },
        nativeOn: {
          "click": function click($event) {
            _vm.handleFilter(index);
          }
        }
      }, [_vm._v(_vm._s(_vm.t('i.table.confirmFilter')))]), _vm._v(" "), _c('i-button', {
        attrs: {
          "type": "text",
          "size": "small"
        },
        nativeOn: {
          "click": function click($event) {
            _vm.handleReset(index);
          }
        }
      }, [_vm._v(_vm._s(_vm.t('i.table.resetFilter')))])], 1)]) : _c('div', {
        class: [_vm.prefixCls + '-filter-list'],
        attrs: {
          "slot": "content"
        },
        slot: "content"
      }, [_c('ul', {
        class: [_vm.prefixCls + '-filter-list-single']
      }, [_c('li', {
        class: _vm.itemAllClasses(column),
        on: {
          "click": function click($event) {
            _vm.handleReset(index);
          }
        }
      }, [_vm._v(_vm._s(_vm.t('i.table.clearFilter')))]), _vm._v(" "), _vm._l(column.filters, function (item) {
        return _c('li', {
          class: _vm.itemClasses(column, item),
          on: {
            "click": function click($event) {
              _vm.handleSelect(index, item.value);
            }
          }
        }, [_vm._v(_vm._s(item.label))]);
      })], 2)])]) : _vm._e()]], 2)]);
    }))])]);
  }, staticRenderFns: [] };

/***/ }),
/* 442 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(443),
  /* template */
  __webpack_require__(450),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 443 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _tableTr = __webpack_require__(444);

var _tableTr2 = _interopRequireDefault(_tableTr);

var _cell = __webpack_require__(447);

var _cell2 = _interopRequireDefault(_cell);

var _expand = __webpack_require__(108);

var _expand2 = _interopRequireDefault(_expand);

var _mixin = __webpack_require__(107);

var _mixin2 = _interopRequireDefault(_mixin);

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

exports.default = {
    name: 'TableBody',
    mixins: [_mixin2.default],
    components: { Cell: _cell2.default, Expand: _expand2.default, TableTr: _tableTr2.default },
    props: {
        prefixCls: String,
        styleObject: Object,
        columns: Array,
        data: Array,
        objData: Object,
        columnsWidth: Object,
        fixed: {
            type: [Boolean, String],
            default: false
        }
    },
    computed: {
        expandRender: function expandRender() {
            var render = function render() {
                return '';
            };
            for (var i = 0; i < this.columns.length; i++) {
                var column = this.columns[i];
                if (column.type && column.type === 'expand') {
                    if (column.render) render = column.render;
                }
            }
            return render;
        }
    },
    methods: {
        rowChecked: function rowChecked(_index) {
            return this.objData[_index] && this.objData[_index]._isChecked;
        },
        rowDisabled: function rowDisabled(_index) {
            return this.objData[_index] && this.objData[_index]._isDisabled;
        },
        rowExpanded: function rowExpanded(_index) {
            return this.objData[_index] && this.objData[_index]._isExpanded;
        },
        handleMouseIn: function handleMouseIn(_index) {
            this.$parent.handleMouseIn(_index);
        },
        handleMouseOut: function handleMouseOut(_index) {
            this.$parent.handleMouseOut(_index);
        },
        clickCurrentRow: function clickCurrentRow(_index) {
            this.$parent.clickCurrentRow(_index);
        },
        dblclickCurrentRow: function dblclickCurrentRow(_index) {
            this.$parent.dblclickCurrentRow(_index);
        }
    }
};

/***/ }),
/* 444 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(445),
  /* template */
  __webpack_require__(446),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 445 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

exports.default = {
    props: {
        row: Object,
        prefixCls: String
    },
    computed: {
        objData: function objData() {
            return this.$parent.objData;
        }
    },
    methods: {
        rowClasses: function rowClasses(_index) {
            var _ref;

            return [this.prefixCls + "-row", this.rowClsName(_index), (_ref = {}, (0, _defineProperty3.default)(_ref, this.prefixCls + "-row-highlight", this.objData[_index] && this.objData[_index]._isHighlight), (0, _defineProperty3.default)(_ref, this.prefixCls + "-row-hover", this.objData[_index] && this.objData[_index]._isHover), _ref)];
        },
        rowClsName: function rowClsName(_index) {
            return this.$parent.$parent.rowClassName(this.objData[_index], _index);
        }
    }
};

/***/ }),
/* 446 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('tr', {
      class: _vm.rowClasses(_vm.row._index)
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 447 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(448),
  /* template */
  __webpack_require__(449),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 448 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _expand = __webpack_require__(108);

var _expand2 = _interopRequireDefault(_expand);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _checkbox = __webpack_require__(36);

var _checkbox2 = _interopRequireDefault(_checkbox);

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

exports.default = {
    name: 'TableCell',
    components: { Icon: _icon2.default, Checkbox: _checkbox2.default, Cell: _expand2.default },
    props: {
        prefixCls: String,
        row: Object,
        column: Object,
        naturalIndex: Number,
        index: Number,
        checked: Boolean,
        disabled: Boolean,
        expanded: Boolean,
        fixed: {
            type: [Boolean, String],
            default: false
        }
    },
    data: function data() {
        return {
            renderType: '',
            uid: -1,
            context: this.$parent.$parent.$parent.currentContext
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return [this.prefixCls + '-cell', (_ref = {}, (0, _defineProperty3.default)(_ref, this.prefixCls + '-hidden', !this.fixed && this.column.fixed && (this.column.fixed === 'left' || this.column.fixed === 'right')), (0, _defineProperty3.default)(_ref, this.prefixCls + '-cell-ellipsis', this.column.ellipsis || false), (0, _defineProperty3.default)(_ref, this.prefixCls + '-cell-with-expand', this.renderType === 'expand'), _ref)];
        },
        expandCls: function expandCls() {
            return [this.prefixCls + '-cell-expand', (0, _defineProperty3.default)({}, this.prefixCls + '-cell-expand-expanded', this.expanded)];
        }
    },
    methods: {
        toggleSelect: function toggleSelect() {
            this.$parent.$parent.$parent.toggleSelect(this.index);
        },
        toggleExpand: function toggleExpand() {
            this.$parent.$parent.$parent.toggleExpand(this.index);
        },
        handleClick: function handleClick() {}
    },
    created: function created() {
        if (this.column.type === 'index') {
            this.renderType = 'index';
        } else if (this.column.type === 'selection') {
            this.renderType = 'selection';
        } else if (this.column.type === 'html') {
            this.renderType = 'html';
        } else if (this.column.type === 'expand') {
            this.renderType = 'expand';
        } else if (this.column.render) {
            this.renderType = 'render';
        } else {
            this.renderType = 'normal';
        }
    }
};

/***/ }),
/* 449 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      ref: "cell",
      class: _vm.classes
    }, [_vm.renderType === 'index' ? [_vm._v(_vm._s(_vm.naturalIndex + 1))] : _vm._e(), _vm._v(" "), _vm.renderType === 'selection' ? [_c('Checkbox', {
      attrs: {
        "value": _vm.checked,
        "disabled": _vm.disabled
      },
      on: {
        "on-change": _vm.toggleSelect
      },
      nativeOn: {
        "click": function click($event) {
          $event.stopPropagation();
          _vm.handleClick($event);
        }
      }
    })] : _vm._e(), _vm._v(" "), _vm.renderType === 'html' ? [_c('span', {
      domProps: {
        "innerHTML": _vm._s(_vm.row[_vm.column.key])
      }
    })] : _vm._e(), _vm._v(" "), _vm.renderType === 'normal' ? [_c('span', [_vm._v(_vm._s(_vm.row[_vm.column.key]))])] : _vm._e(), _vm._v(" "), _vm.renderType === 'expand' && !_vm.row._disableExpand ? [_c('div', {
      class: _vm.expandCls,
      on: {
        "click": _vm.toggleExpand
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-right"
      }
    })], 1)] : _vm._e(), _vm._v(" "), _vm.renderType === 'render' ? _c('Cell', {
      attrs: {
        "row": _vm.row,
        "column": _vm.column,
        "index": _vm.index,
        "render": _vm.column.render
      }
    }) : _vm._e()], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 450 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('table', {
      style: _vm.styleObject,
      attrs: {
        "cellspacing": "0",
        "cellpadding": "0",
        "border": "0"
      }
    }, [_c('colgroup', _vm._l(_vm.columns, function (column, index) {
      return _c('col', {
        attrs: {
          "width": _vm.setCellWidth(column, index, false)
        }
      });
    })), _vm._v(" "), _c('tbody', {
      class: [_vm.prefixCls + '-tbody']
    }, [_vm._l(_vm.data, function (row, index) {
      return [_c('table-tr', {
        key: row._rowKey,
        attrs: {
          "row": row,
          "prefix-cls": _vm.prefixCls
        },
        nativeOn: {
          "mouseenter": function mouseenter($event) {
            $event.stopPropagation();
            _vm.handleMouseIn(row._index);
          },
          "mouseleave": function mouseleave($event) {
            $event.stopPropagation();
            _vm.handleMouseOut(row._index);
          },
          "click": function click($event) {
            _vm.clickCurrentRow(row._index);
          },
          "dblclick": function dblclick($event) {
            $event.stopPropagation();
            _vm.dblclickCurrentRow(row._index);
          }
        }
      }, _vm._l(_vm.columns, function (column) {
        return _c('td', {
          class: _vm.alignCls(column, row)
        }, [_c('Cell', {
          key: column._columnKey,
          attrs: {
            "fixed": _vm.fixed,
            "prefix-cls": _vm.prefixCls,
            "row": row,
            "column": column,
            "natural-index": index,
            "index": row._index,
            "checked": _vm.rowChecked(row._index),
            "disabled": _vm.rowDisabled(row._index),
            "expanded": _vm.rowExpanded(row._index)
          }
        })], 1);
      })), _vm._v(" "), _vm.rowExpanded(row._index) ? _c('tr', [_c('td', {
        class: _vm.prefixCls + '-expanded-cell',
        attrs: {
          "colspan": _vm.columns.length
        }
      }, [_c('Expand', {
        key: row._rowKey,
        attrs: {
          "row": row,
          "render": _vm.expandRender,
          "index": row._index
        }
      })], 1)]) : _vm._e()];
    })], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 451 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _keys = __webpack_require__(31);

var _keys2 = _interopRequireDefault(_keys);

exports.default = csv;

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

var newLine = '\r\n';

function csv(columns, datas) {
    var separator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ',';
    var noHeader = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;

    var columnOrder = void 0;
    var content = [];
    var column = [];

    if (columns) {
        columnOrder = columns.map(function (v) {
            if (typeof v === 'string') {
                return v;
            }
            if (!noHeader) {
                column.push(typeof v.title !== 'undefined' ? v.title : v.key);
            }
            return v.key;
        });
        if (column.length > 0) {
            content.push(column.join(separator));
        }
    } else {
        columnOrder = [];
        datas.forEach(function (v) {
            if (!Array.isArray(v)) {
                columnOrder = columnOrder.concat((0, _keys2.default)(v));
            }
        });
        if (columnOrder.length > 0) {
            columnOrder = columnOrder.filter(function (value, index, self) {
                return self.indexOf(value) === index;
            });

            if (!noHeader) {
                content.push(columnOrder.join(separator));
            }
        }
    }

    if (Array.isArray(datas)) {
        datas.map(function (v) {
            if (Array.isArray(v)) {
                return v;
            }
            return columnOrder.map(function (k) {
                if (typeof v[k] !== 'undefined') {
                    return v[k];
                }
                return '';
            });
        }).forEach(function (v) {
            content.push(v.join(separator));
        });
    }
    return content.join(newLine);
}

/***/ }),
/* 452 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
function has(browser) {
    var ua = navigator.userAgent;
    if (browser === 'ie') {
        var isIE = ua.indexOf('compatible') > -1 && ua.indexOf('MSIE') > -1;
        if (isIE) {
            var reIE = new RegExp('MSIE (\\d+\\.\\d+);');
            reIE.test(ua);
            return parseFloat(RegExp['$1']);
        } else {
            return false;
        }
    } else {
        return ua.indexOf(browser) > -1;
    }
}

var csv = {
    _isIE11: function _isIE11() {
        var iev = 0;
        var ieold = /MSIE (\d+\.\d+);/.test(navigator.userAgent);
        var trident = !!navigator.userAgent.match(/Trident\/7.0/);
        var rv = navigator.userAgent.indexOf('rv:11.0');

        if (ieold) {
            iev = Number(RegExp.$1);
        }
        if (navigator.appVersion.indexOf('MSIE 10') !== -1) {
            iev = 10;
        }
        if (trident && rv !== -1) {
            iev = 11;
        }

        return iev === 11;
    },
    _isEdge: function _isEdge() {
        return (/Edge/.test(navigator.userAgent)
        );
    },
    _getDownloadUrl: function _getDownloadUrl(text) {
        var BOM = '\uFEFF';

        if (window.Blob && window.URL && window.URL.createObjectURL) {
            var csvData = new Blob([BOM + text], { type: 'text/csv' });
            return URL.createObjectURL(csvData);
        } else {
            return 'data:attachment/csv;charset=utf-8,' + BOM + encodeURIComponent(text);
        }
    },
    download: function download(filename, text) {
        if (has('ie') && has('ie') < 10) {
            var oWin = window.top.open('about:blank', '_blank');
            oWin.document.charset = 'utf-8';
            oWin.document.write(text);
            oWin.document.close();
            oWin.document.execCommand('SaveAs', filename);
            oWin.close();
        } else if (has('ie') === 10 || this._isIE11() || this._isEdge()) {
            var BOM = '\uFEFF';
            var csvData = new Blob([BOM + text], { type: 'text/csv' });
            navigator.msSaveBlob(csvData, filename);
        } else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = this._getDownloadUrl(text);
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);
        }
    }
};

exports.default = csv;

/***/ }),
/* 453 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var forEach                 = __webpack_require__(109).forEach;
var elementUtilsMaker       = __webpack_require__(454);
var listenerHandlerMaker    = __webpack_require__(455);
var idGeneratorMaker        = __webpack_require__(456);
var idHandlerMaker          = __webpack_require__(457);
var reporterMaker           = __webpack_require__(458);
var browserDetector         = __webpack_require__(110);
var batchProcessorMaker     = __webpack_require__(459);
var stateHandler            = __webpack_require__(461);

//Detection strategies.
var objectStrategyMaker     = __webpack_require__(462);
var scrollStrategyMaker     = __webpack_require__(463);

function isCollection(obj) {
    return Array.isArray(obj) || obj.length !== undefined;
}

function toArray(collection) {
    if (!Array.isArray(collection)) {
        var array = [];
        forEach(collection, function (obj) {
            array.push(obj);
        });
        return array;
    } else {
        return collection;
    }
}

function isElement(obj) {
    return obj && obj.nodeType === 1;
}

/**
 * @typedef idHandler
 * @type {object}
 * @property {function} get Gets the resize detector id of the element.
 * @property {function} set Generate and sets the resize detector id of the element.
 */

/**
 * @typedef Options
 * @type {object}
 * @property {boolean} callOnAdd    Determines if listeners should be called when they are getting added.
                                    Default is true. If true, the listener is guaranteed to be called when it has been added.
                                    If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).
 * @property {idHandler} idHandler  A custom id handler that is responsible for generating, setting and retrieving id's for elements.
                                    If not provided, a default id handler will be used.
 * @property {reporter} reporter    A custom reporter that handles reporting logs, warnings and errors.
                                    If not provided, a default id handler will be used.
                                    If set to false, then nothing will be reported.
 * @property {boolean} debug        If set to true, the the system will report debug messages as default for the listenTo method.
 */

/**
 * Creates an element resize detector instance.
 * @public
 * @param {Options?} options Optional global options object that will decide how this instance will work.
 */
module.exports = function(options) {
    options = options || {};

    //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.
    var idHandler;

    if (options.idHandler) {
        // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler
        // so that readonly flag always is true when it's used here. This may be removed next major version bump.
        idHandler = {
            get: function (element) { return options.idHandler.get(element, true); },
            set: options.idHandler.set
        };
    } else {
        var idGenerator = idGeneratorMaker();
        var defaultIdHandler = idHandlerMaker({
            idGenerator: idGenerator,
            stateHandler: stateHandler
        });
        idHandler = defaultIdHandler;
    }

    //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.
    var reporter = options.reporter;

    if(!reporter) {
        //If options.reporter is false, then the reporter should be quiet.
        var quiet = reporter === false;
        reporter = reporterMaker(quiet);
    }

    //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.
    var batchProcessor = getOption(options, "batchProcessor", batchProcessorMaker({ reporter: reporter }));

    //Options to be used as default for the listenTo function.
    var globalOptions = {};
    globalOptions.callOnAdd     = !!getOption(options, "callOnAdd", true);
    globalOptions.debug         = !!getOption(options, "debug", false);

    var eventListenerHandler    = listenerHandlerMaker(idHandler);
    var elementUtils            = elementUtilsMaker({
        stateHandler: stateHandler
    });

    //The detection strategy to be used.
    var detectionStrategy;
    var desiredStrategy = getOption(options, "strategy", "object");
    var strategyOptions = {
        reporter: reporter,
        batchProcessor: batchProcessor,
        stateHandler: stateHandler,
        idHandler: idHandler
    };

    if(desiredStrategy === "scroll") {
        if (browserDetector.isLegacyOpera()) {
            reporter.warn("Scroll strategy is not supported on legacy Opera. Changing to object strategy.");
            desiredStrategy = "object";
        } else if (browserDetector.isIE(9)) {
            reporter.warn("Scroll strategy is not supported on IE9. Changing to object strategy.");
            desiredStrategy = "object";
        }
    }

    if(desiredStrategy === "scroll") {
        detectionStrategy = scrollStrategyMaker(strategyOptions);
    } else if(desiredStrategy === "object") {
        detectionStrategy = objectStrategyMaker(strategyOptions);
    } else {
        throw new Error("Invalid strategy name: " + desiredStrategy);
    }

    //Calls can be made to listenTo with elements that are still being installed.
    //Also, same elements can occur in the elements list in the listenTo function.
    //With this map, the ready callbacks can be synchronized between the calls
    //so that the ready callback can always be called when an element is ready - even if
    //it wasn't installed from the function itself.
    var onReadyCallbacks = {};

    /**
     * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.
     * @public
     * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.
     * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.
     * @param {function} listener The callback to be executed for each resize event for each element.
     */
    function listenTo(options, elements, listener) {
        function onResizeCallback(element) {
            var listeners = eventListenerHandler.get(element);
            forEach(listeners, function callListenerProxy(listener) {
                listener(element);
            });
        }

        function addListener(callOnAdd, element, listener) {
            eventListenerHandler.add(element, listener);

            if(callOnAdd) {
                listener(element);
            }
        }

        //Options object may be omitted.
        if(!listener) {
            listener = elements;
            elements = options;
            options = {};
        }

        if(!elements) {
            throw new Error("At least one element required.");
        }

        if(!listener) {
            throw new Error("Listener required.");
        }

        if (isElement(elements)) {
            // A single element has been passed in.
            elements = [elements];
        } else if (isCollection(elements)) {
            // Convert collection to array for plugins.
            // TODO: May want to check so that all the elements in the collection are valid elements.
            elements = toArray(elements);
        } else {
            return reporter.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");
        }

        var elementsReady = 0;

        var callOnAdd = getOption(options, "callOnAdd", globalOptions.callOnAdd);
        var onReadyCallback = getOption(options, "onReady", function noop() {});
        var debug = getOption(options, "debug", globalOptions.debug);

        forEach(elements, function attachListenerToElement(element) {
            if (!stateHandler.getState(element)) {
                stateHandler.initState(element);
                idHandler.set(element);
            }

            var id = idHandler.get(element);

            debug && reporter.log("Attaching listener to element", id, element);

            if(!elementUtils.isDetectable(element)) {
                debug && reporter.log(id, "Not detectable.");
                if(elementUtils.isBusy(element)) {
                    debug && reporter.log(id, "System busy making it detectable");

                    //The element is being prepared to be detectable. Do not make it detectable.
                    //Just add the listener, because the element will soon be detectable.
                    addListener(callOnAdd, element, listener);
                    onReadyCallbacks[id] = onReadyCallbacks[id] || [];
                    onReadyCallbacks[id].push(function onReady() {
                        elementsReady++;

                        if(elementsReady === elements.length) {
                            onReadyCallback();
                        }
                    });
                    return;
                }

                debug && reporter.log(id, "Making detectable...");
                //The element is not prepared to be detectable, so do prepare it and add a listener to it.
                elementUtils.markBusy(element, true);
                return detectionStrategy.makeDetectable({ debug: debug }, element, function onElementDetectable(element) {
                    debug && reporter.log(id, "onElementDetectable");

                    if (stateHandler.getState(element)) {
                        elementUtils.markAsDetectable(element);
                        elementUtils.markBusy(element, false);
                        detectionStrategy.addListener(element, onResizeCallback);
                        addListener(callOnAdd, element, listener);

                        // Since the element size might have changed since the call to "listenTo", we need to check for this change,
                        // so that a resize event may be emitted.
                        // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.
                        // Also, check the state existance before since the element may have been uninstalled in the installation process.
                        var state = stateHandler.getState(element);
                        if (state && state.startSize) {
                            var width = element.offsetWidth;
                            var height = element.offsetHeight;
                            if (state.startSize.width !== width || state.startSize.height !== height) {
                                onResizeCallback(element);
                            }
                        }

                        if(onReadyCallbacks[id]) {
                            forEach(onReadyCallbacks[id], function(callback) {
                                callback();
                            });
                        }
                    } else {
                        // The element has been unisntalled before being detectable.
                        debug && reporter.log(id, "Element uninstalled before being detectable.");
                    }

                    delete onReadyCallbacks[id];

                    elementsReady++;
                    if(elementsReady === elements.length) {
                        onReadyCallback();
                    }
                });
            }

            debug && reporter.log(id, "Already detecable, adding listener.");

            //The element has been prepared to be detectable and is ready to be listened to.
            addListener(callOnAdd, element, listener);
            elementsReady++;
        });

        if(elementsReady === elements.length) {
            onReadyCallback();
        }
    }

    function uninstall(elements) {
        if(!elements) {
            return reporter.error("At least one element is required.");
        }

        if (isElement(elements)) {
            // A single element has been passed in.
            elements = [elements];
        } else if (isCollection(elements)) {
            // Convert collection to array for plugins.
            // TODO: May want to check so that all the elements in the collection are valid elements.
            elements = toArray(elements);
        } else {
            return reporter.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");
        }

        forEach(elements, function (element) {
            eventListenerHandler.removeAllListeners(element);
            detectionStrategy.uninstall(element);
            stateHandler.cleanState(element);
        });
    }

    return {
        listenTo: listenTo,
        removeListener: eventListenerHandler.removeListener,
        removeAllListeners: eventListenerHandler.removeAllListeners,
        uninstall: uninstall
    };
};

function getOption(options, name, defaultValue) {
    var value = options[name];

    if((value === undefined || value === null) && defaultValue !== undefined) {
        return defaultValue;
    }

    return value;
}


/***/ }),
/* 454 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function(options) {
    var getState = options.stateHandler.getState;

    /**
     * Tells if the element has been made detectable and ready to be listened for resize events.
     * @public
     * @param {element} The element to check.
     * @returns {boolean} True or false depending on if the element is detectable or not.
     */
    function isDetectable(element) {
        var state = getState(element);
        return state && !!state.isDetectable;
    }

    /**
     * Marks the element that it has been made detectable and ready to be listened for resize events.
     * @public
     * @param {element} The element to mark.
     */
    function markAsDetectable(element) {
        getState(element).isDetectable = true;
    }

    /**
     * Tells if the element is busy or not.
     * @public
     * @param {element} The element to check.
     * @returns {boolean} True or false depending on if the element is busy or not.
     */
    function isBusy(element) {
        return !!getState(element).busy;
    }

    /**
     * Marks the object is busy and should not be made detectable.
     * @public
     * @param {element} element The element to mark.
     * @param {boolean} busy If the element is busy or not.
     */
    function markBusy(element, busy) {
        getState(element).busy = !!busy;
    }

    return {
        isDetectable: isDetectable,
        markAsDetectable: markAsDetectable,
        isBusy: isBusy,
        markBusy: markBusy
    };
};


/***/ }),
/* 455 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function(idHandler) {
    var eventListeners = {};

    /**
     * Gets all listeners for the given element.
     * @public
     * @param {element} element The element to get all listeners for.
     * @returns All listeners for the given element.
     */
    function getListeners(element) {
        var id = idHandler.get(element);

        if (id === undefined) {
            return [];
        }

        return eventListeners[id] || [];
    }

    /**
     * Stores the given listener for the given element. Will not actually add the listener to the element.
     * @public
     * @param {element} element The element that should have the listener added.
     * @param {function} listener The callback that the element has added.
     */
    function addListener(element, listener) {
        var id = idHandler.get(element);

        if(!eventListeners[id]) {
            eventListeners[id] = [];
        }

        eventListeners[id].push(listener);
    }

    function removeListener(element, listener) {
        var listeners = getListeners(element);
        for (var i = 0, len = listeners.length; i < len; ++i) {
            if (listeners[i] === listener) {
              listeners.splice(i, 1);
              break;
            }
        }
    }

    function removeAllListeners(element) {
      var listeners = getListeners(element);
      if (!listeners) { return; }
      listeners.length = 0;
    }

    return {
        get: getListeners,
        add: addListener,
        removeListener: removeListener,
        removeAllListeners: removeAllListeners
    };
};


/***/ }),
/* 456 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function() {
    var idCount = 1;

    /**
     * Generates a new unique id in the context.
     * @public
     * @returns {number} A unique id in the context.
     */
    function generate() {
        return idCount++;
    }

    return {
        generate: generate
    };
};


/***/ }),
/* 457 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function(options) {
    var idGenerator     = options.idGenerator;
    var getState        = options.stateHandler.getState;

    /**
     * Gets the resize detector id of the element.
     * @public
     * @param {element} element The target element to get the id of.
     * @returns {string|number|null} The id of the element. Null if it has no id.
     */
    function getId(element) {
        var state = getState(element);

        if (state && state.id !== undefined) {
            return state.id;
        }

        return null;
    }

    /**
     * Sets the resize detector id of the element. Requires the element to have a resize detector state initialized.
     * @public
     * @param {element} element The target element to set the id of.
     * @returns {string|number|null} The id of the element.
     */
    function setId(element) {
        var state = getState(element);

        if (!state) {
            throw new Error("setId required the element to have a resize detection state.");
        }

        var id = idGenerator.generate();

        state.id = id;

        return id;
    }

    return {
        get: getId,
        set: setId
    };
};


/***/ }),
/* 458 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


/* global console: false */

/**
 * Reporter that handles the reporting of logs, warnings and errors.
 * @public
 * @param {boolean} quiet Tells if the reporter should be quiet or not.
 */
module.exports = function(quiet) {
    function noop() {
        //Does nothing.
    }

    var reporter = {
        log: noop,
        warn: noop,
        error: noop
    };

    if(!quiet && window.console) {
        var attachFunction = function(reporter, name) {
            //The proxy is needed to be able to call the method with the console context,
            //since we cannot use bind.
            reporter[name] = function reporterProxy() {
                var f = console[name];
                if (f.apply) { //IE9 does not support console.log.apply :)
                    f.apply(console, arguments);
                } else {
                    for (var i = 0; i < arguments.length; i++) {
                        f(arguments[i]);
                    }
                }
            };
        };

        attachFunction(reporter, "log");
        attachFunction(reporter, "warn");
        attachFunction(reporter, "error");
    }

    return reporter;
};

/***/ }),
/* 459 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__(460);

module.exports = function batchProcessorMaker(options) {
    options             = options || {};
    var reporter        = options.reporter;
    var asyncProcess    = utils.getOption(options, "async", true);
    var autoProcess     = utils.getOption(options, "auto", true);

    if(autoProcess && !asyncProcess) {
        reporter && reporter.warn("Invalid options combination. auto=true and async=false is invalid. Setting async=true.");
        asyncProcess = true;
    }

    var batch = Batch();
    var asyncFrameHandler;
    var isProcessing = false;

    function addFunction(level, fn) {
        if(!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {
            // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.
            // This needs to be done before, since we're checking the size of the batch to be 0.
            processBatchAsync();
        }

        batch.add(level, fn);
    }

    function processBatch() {
        // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.
        // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).
        isProcessing = true;
        while (batch.size()) {
            var processingBatch = batch;
            batch = Batch();
            processingBatch.process();
        }
        isProcessing = false;
    }

    function forceProcessBatch(localAsyncProcess) {
        if (isProcessing) {
            return;
        }

        if(localAsyncProcess === undefined) {
            localAsyncProcess = asyncProcess;
        }

        if(asyncFrameHandler) {
            cancelFrame(asyncFrameHandler);
            asyncFrameHandler = null;
        }

        if(localAsyncProcess) {
            processBatchAsync();
        } else {
            processBatch();
        }
    }

    function processBatchAsync() {
        asyncFrameHandler = requestFrame(processBatch);
    }

    function clearBatch() {
        batch           = {};
        batchSize       = 0;
        topLevel        = 0;
        bottomLevel     = 0;
    }

    function cancelFrame(listener) {
        // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;
        var cancel = clearTimeout;
        return cancel(listener);
    }

    function requestFrame(callback) {
        // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };
        var raf = function(fn) { return setTimeout(fn, 0); };
        return raf(callback);
    }

    return {
        add: addFunction,
        force: forceProcessBatch
    };
};

function Batch() {
    var batch       = {};
    var size        = 0;
    var topLevel    = 0;
    var bottomLevel = 0;

    function add(level, fn) {
        if(!fn) {
            fn = level;
            level = 0;
        }

        if(level > topLevel) {
            topLevel = level;
        } else if(level < bottomLevel) {
            bottomLevel = level;
        }

        if(!batch[level]) {
            batch[level] = [];
        }

        batch[level].push(fn);
        size++;
    }

    function process() {
        for(var level = bottomLevel; level <= topLevel; level++) {
            var fns = batch[level];

            for(var i = 0; i < fns.length; i++) {
                var fn = fns[i];
                fn();
            }
        }
    }

    function getSize() {
        return size;
    }

    return {
        add: add,
        process: process,
        size: getSize
    };
}


/***/ }),
/* 460 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = module.exports = {};

utils.getOption = getOption;

function getOption(options, name, defaultValue) {
    var value = options[name];

    if((value === undefined || value === null) && defaultValue !== undefined) {
        return defaultValue;
    }

    return value;
}


/***/ }),
/* 461 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var prop = "_erd";

function initState(element) {
    element[prop] = {};
    return getState(element);
}

function getState(element) {
    return element[prop];
}

function cleanState(element) {
    delete element[prop];
}

module.exports = {
    initState: initState,
    getState: getState,
    cleanState: cleanState
};


/***/ }),
/* 462 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Resize detection strategy that injects objects to elements in order to detect resize events.
 * Heavily inspired by: http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/
 */



var browserDetector = __webpack_require__(110);

module.exports = function(options) {
    options             = options || {};
    var reporter        = options.reporter;
    var batchProcessor  = options.batchProcessor;
    var getState        = options.stateHandler.getState;

    if(!reporter) {
        throw new Error("Missing required dependency: reporter.");
    }

    /**
     * Adds a resize event listener to the element.
     * @public
     * @param {element} element The element that should have the listener added.
     * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.
     */
    function addListener(element, listener) {
        if(!getObject(element)) {
            throw new Error("Element is not detectable by this strategy.");
        }

        function listenerProxy() {
            listener(element);
        }

        if(browserDetector.isIE(8)) {
            //IE 8 does not support object, but supports the resize event directly on elements.
            getState(element).object = {
                proxy: listenerProxy
            };
            element.attachEvent("onresize", listenerProxy);
        } else {
            var object = getObject(element);
            object.contentDocument.defaultView.addEventListener("resize", listenerProxy);
        }
    }

    /**
     * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.
     * @private
     * @param {object} options Optional options object.
     * @param {element} element The element to make detectable
     * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.
     */
    function makeDetectable(options, element, callback) {
        if (!callback) {
            callback = element;
            element = options;
            options = null;
        }

        options = options || {};
        var debug = options.debug;

        function injectObject(element, callback) {
            var OBJECT_STYLE = "display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; padding: 0; margin: 0; opacity: 0; z-index: -1000; pointer-events: none;";

            //The target element needs to be positioned (everything except static) so the absolute positioned object will be positioned relative to the target element.

            // Position altering may be performed directly or on object load, depending on if style resolution is possible directly or not.
            var positionCheckPerformed = false;

            // The element may not yet be attached to the DOM, and therefore the style object may be empty in some browsers.
            // Since the style object is a reference, it will be updated as soon as the element is attached to the DOM.
            var style = window.getComputedStyle(element);
            var width = element.offsetWidth;
            var height = element.offsetHeight;

            getState(element).startSize = {
                width: width,
                height: height
            };

            function mutateDom() {
                function alterPositionStyles() {
                    if(style.position === "static") {
                        element.style.position = "relative";

                        var removeRelativeStyles = function(reporter, element, style, property) {
                            function getNumericalValue(value) {
                                return value.replace(/[^-\d\.]/g, "");
                            }

                            var value = style[property];

                            if(value !== "auto" && getNumericalValue(value) !== "0") {
                                reporter.warn("An element that is positioned static has style." + property + "=" + value + " which is ignored due to the static positioning. The element will need to be positioned relative, so the style." + property + " will be set to 0. Element: ", element);
                                element.style[property] = 0;
                            }
                        };

                        //Check so that there are no accidental styles that will make the element styled differently now that is is relative.
                        //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).
                        removeRelativeStyles(reporter, element, style, "top");
                        removeRelativeStyles(reporter, element, style, "right");
                        removeRelativeStyles(reporter, element, style, "bottom");
                        removeRelativeStyles(reporter, element, style, "left");
                    }
                }

                function onObjectLoad() {
                    // The object has been loaded, which means that the element now is guaranteed to be attached to the DOM.
                    if (!positionCheckPerformed) {
                        alterPositionStyles();
                    }

                    /*jshint validthis: true */

                    function getDocument(element, callback) {
                        //Opera 12 seem to call the object.onload before the actual document has been created.
                        //So if it is not present, poll it with an timeout until it is present.
                        //TODO: Could maybe be handled better with object.onreadystatechange or similar.
                        if(!element.contentDocument) {
                            setTimeout(function checkForObjectDocument() {
                                getDocument(element, callback);
                            }, 100);

                            return;
                        }

                        callback(element.contentDocument);
                    }

                    //Mutating the object element here seems to fire another load event.
                    //Mutating the inner document of the object element is fine though.
                    var objectElement = this;

                    //Create the style element to be added to the object.
                    getDocument(objectElement, function onObjectDocumentReady(objectDocument) {
                        //Notify that the element is ready to be listened to.
                        callback(element);
                    });
                }

                // The element may be detached from the DOM, and some browsers does not support style resolving of detached elements.
                // The alterPositionStyles needs to be delayed until we know the element has been attached to the DOM (which we are sure of when the onObjectLoad has been fired), if style resolution is not possible.
                if (style.position !== "") {
                    alterPositionStyles(style);
                    positionCheckPerformed = true;
                }

                //Add an object element as a child to the target element that will be listened to for resize events.
                var object = document.createElement("object");
                object.style.cssText = OBJECT_STYLE;
                object.tabIndex = -1;
                object.type = "text/html";
                object.onload = onObjectLoad;

                //Safari: This must occur before adding the object to the DOM.
                //IE: Does not like that this happens before, even if it is also added after.
                if(!browserDetector.isIE()) {
                    object.data = "about:blank";
                }

                element.appendChild(object);
                getState(element).object = object;

                //IE: This must occur after adding the object to the DOM.
                if(browserDetector.isIE()) {
                    object.data = "about:blank";
                }
            }

            if(batchProcessor) {
                batchProcessor.add(mutateDom);
            } else {
                mutateDom();
            }
        }

        if(browserDetector.isIE(8)) {
            //IE 8 does not support objects properly. Luckily they do support the resize event.
            //So do not inject the object and notify that the element is already ready to be listened to.
            //The event handler for the resize event is attached in the utils.addListener instead.
            callback(element);
        } else {
            injectObject(element, callback);
        }
    }

    /**
     * Returns the child object of the target element.
     * @private
     * @param {element} element The target element.
     * @returns The object element of the target.
     */
    function getObject(element) {
        return getState(element).object;
    }

    function uninstall(element) {
        if(browserDetector.isIE(8)) {
            element.detachEvent("onresize", getState(element).object.proxy);
        } else {
            element.removeChild(getObject(element));
        }
        delete getState(element).object;
    }

    return {
        makeDetectable: makeDetectable,
        addListener: addListener,
        uninstall: uninstall
    };
};


/***/ }),
/* 463 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.
 * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js
 */



var forEach = __webpack_require__(109).forEach;

module.exports = function(options) {
    options             = options || {};
    var reporter        = options.reporter;
    var batchProcessor  = options.batchProcessor;
    var getState        = options.stateHandler.getState;
    var hasState        = options.stateHandler.hasState;
    var idHandler       = options.idHandler;

    if (!batchProcessor) {
        throw new Error("Missing required dependency: batchProcessor");
    }

    if (!reporter) {
        throw new Error("Missing required dependency: reporter.");
    }

    //TODO: Could this perhaps be done at installation time?
    var scrollbarSizes = getScrollbarSizes();

    // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.
    // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).
    var styleId = "erd_scroll_detection_scrollbar_style";
    var detectionContainerClass = "erd_scroll_detection_container";
    injectScrollStyle(styleId, detectionContainerClass);

    function getScrollbarSizes() {
        var width = 500;
        var height = 500;

        var child = document.createElement("div");
        child.style.cssText = "position: absolute; width: " + width*2 + "px; height: " + height*2 + "px; visibility: hidden; margin: 0; padding: 0;";

        var container = document.createElement("div");
        container.style.cssText = "position: absolute; width: " + width + "px; height: " + height + "px; overflow: scroll; visibility: none; top: " + -width*3 + "px; left: " + -height*3 + "px; visibility: hidden; margin: 0; padding: 0;";

        container.appendChild(child);

        document.body.insertBefore(container, document.body.firstChild);

        var widthSize = width - container.clientWidth;
        var heightSize = height - container.clientHeight;

        document.body.removeChild(container);

        return {
            width: widthSize,
            height: heightSize
        };
    }

    function injectScrollStyle(styleId, containerClass) {
        function injectStyle(style, method) {
            method = method || function (element) {
                document.head.appendChild(element);
            };

            var styleElement = document.createElement("style");
            styleElement.innerHTML = style;
            styleElement.id = styleId;
            method(styleElement);
            return styleElement;
        }

        if (!document.getElementById(styleId)) {
            var containerAnimationClass = containerClass + "_animation";
            var containerAnimationActiveClass = containerClass + "_animation_active";
            var style = "/* Created by the element-resize-detector library. */\n";
            style += "." + containerClass + " > div::-webkit-scrollbar { display: none; }\n\n";
            style += "." + containerAnimationActiveClass + " { -webkit-animation-duration: 0.1s; animation-duration: 0.1s; -webkit-animation-name: " + containerAnimationClass + "; animation-name: " + containerAnimationClass + "; }\n";
            style += "@-webkit-keyframes " + containerAnimationClass +  " { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\n";
            style += "@keyframes " + containerAnimationClass +          " { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }";
            injectStyle(style);
        }
    }

    function addAnimationClass(element) {
        element.className += " " + detectionContainerClass + "_animation_active";
    }

    function addEvent(el, name, cb) {
        if (el.addEventListener) {
            el.addEventListener(name, cb);
        } else if(el.attachEvent) {
            el.attachEvent("on" + name, cb);
        } else {
            return reporter.error("[scroll] Don't know how to add event listeners.");
        }
    }

    function removeEvent(el, name, cb) {
        if (el.removeEventListener) {
            el.removeEventListener(name, cb);
        } else if(el.detachEvent) {
            el.detachEvent("on" + name, cb);
        } else {
            return reporter.error("[scroll] Don't know how to remove event listeners.");
        }
    }

    function getExpandElement(element) {
        return getState(element).container.childNodes[0].childNodes[0].childNodes[0];
    }

    function getShrinkElement(element) {
        return getState(element).container.childNodes[0].childNodes[0].childNodes[1];
    }

    /**
     * Adds a resize event listener to the element.
     * @public
     * @param {element} element The element that should have the listener added.
     * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.
     */
    function addListener(element, listener) {
        var listeners = getState(element).listeners;

        if (!listeners.push) {
            throw new Error("Cannot add listener to an element that is not detectable.");
        }

        getState(element).listeners.push(listener);
    }

    /**
     * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.
     * @private
     * @param {object} options Optional options object.
     * @param {element} element The element to make detectable
     * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.
     */
    function makeDetectable(options, element, callback) {
        if (!callback) {
            callback = element;
            element = options;
            options = null;
        }

        options = options || {};

        function debug() {
            if (options.debug) {
                var args = Array.prototype.slice.call(arguments);
                args.unshift(idHandler.get(element), "Scroll: ");
                if (reporter.log.apply) {
                    reporter.log.apply(null, args);
                } else {
                    for (var i = 0; i < args.length; i++) {
                        reporter.log(args[i]);
                    }
                }
            }
        }

        function isDetached(element) {
            function isInDocument(element) {
                return element === element.ownerDocument.body || element.ownerDocument.body.contains(element);
            }

            if (!isInDocument(element)) {
                return true;
            }

            // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520
            if (getComputedStyle(element) === null) {
                return true;
            }

            return false;
        }

        function isUnrendered(element) {
            // Check the absolute positioned container since the top level container is display: inline.
            var container = getState(element).container.childNodes[0];
            var style = getComputedStyle(container);
            return !style.width || style.width.indexOf("px") === -1; //Can only compute pixel value when rendered.
        }

        function getStyle() {
            // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,
            // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).
            var elementStyle            = getComputedStyle(element);
            var style                   = {};
            style.position              = elementStyle.position;
            style.width                 = element.offsetWidth;
            style.height                = element.offsetHeight;
            style.top                   = elementStyle.top;
            style.right                 = elementStyle.right;
            style.bottom                = elementStyle.bottom;
            style.left                  = elementStyle.left;
            style.widthCSS              = elementStyle.width;
            style.heightCSS             = elementStyle.height;
            return style;
        }

        function storeStartSize() {
            var style = getStyle();
            getState(element).startSize = {
                width: style.width,
                height: style.height
            };
            debug("Element start size", getState(element).startSize);
        }

        function initListeners() {
            getState(element).listeners = [];
        }

        function storeStyle() {
            debug("storeStyle invoked.");
            if (!getState(element)) {
                debug("Aborting because element has been uninstalled");
                return;
            }

            var style = getStyle();
            getState(element).style = style;
        }

        function storeCurrentSize(element, width, height) {
            getState(element).lastWidth = width;
            getState(element).lastHeight  = height;
        }

        function getExpandChildElement(element) {
            return getExpandElement(element).childNodes[0];
        }

        function getWidthOffset() {
            return 2 * scrollbarSizes.width + 1;
        }

        function getHeightOffset() {
            return 2 * scrollbarSizes.height + 1;
        }

        function getExpandWidth(width) {
            return width + 10 + getWidthOffset();
        }

        function getExpandHeight(height) {
            return height + 10 + getHeightOffset();
        }

        function getShrinkWidth(width) {
            return width * 2 + getWidthOffset();
        }

        function getShrinkHeight(height) {
            return height * 2 + getHeightOffset();
        }

        function positionScrollbars(element, width, height) {
            var expand          = getExpandElement(element);
            var shrink          = getShrinkElement(element);
            var expandWidth     = getExpandWidth(width);
            var expandHeight    = getExpandHeight(height);
            var shrinkWidth     = getShrinkWidth(width);
            var shrinkHeight    = getShrinkHeight(height);
            expand.scrollLeft   = expandWidth;
            expand.scrollTop    = expandHeight;
            shrink.scrollLeft   = shrinkWidth;
            shrink.scrollTop    = shrinkHeight;
        }

        function injectContainerElement() {
            var container = getState(element).container;

            if (!container) {
                container                   = document.createElement("div");
                container.className         = detectionContainerClass;
                container.style.cssText     = "visibility: hidden; display: inline; width: 0px; height: 0px; z-index: -1; overflow: hidden; margin: 0; padding: 0;";
                getState(element).container = container;
                addAnimationClass(container);
                element.appendChild(container);

                var onAnimationStart = function () {
                    getState(element).onRendered && getState(element).onRendered();
                };

                addEvent(container, "animationstart", onAnimationStart);

                // Store the event handler here so that they may be removed when uninstall is called.
                // See uninstall function for an explanation why it is needed.
                getState(element).onAnimationStart = onAnimationStart;
            }

            return container;
        }

        function injectScrollElements() {
            function alterPositionStyles() {
                var style = getState(element).style;

                if(style.position === "static") {
                    element.style.position = "relative";

                    var removeRelativeStyles = function(reporter, element, style, property) {
                        function getNumericalValue(value) {
                            return value.replace(/[^-\d\.]/g, "");
                        }

                        var value = style[property];

                        if(value !== "auto" && getNumericalValue(value) !== "0") {
                            reporter.warn("An element that is positioned static has style." + property + "=" + value + " which is ignored due to the static positioning. The element will need to be positioned relative, so the style." + property + " will be set to 0. Element: ", element);
                            element.style[property] = 0;
                        }
                    };

                    //Check so that there are no accidental styles that will make the element styled differently now that is is relative.
                    //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).
                    removeRelativeStyles(reporter, element, style, "top");
                    removeRelativeStyles(reporter, element, style, "right");
                    removeRelativeStyles(reporter, element, style, "bottom");
                    removeRelativeStyles(reporter, element, style, "left");
                }
            }

            function getLeftTopBottomRightCssText(left, top, bottom, right) {
                left = (!left ? "0" : (left + "px"));
                top = (!top ? "0" : (top + "px"));
                bottom = (!bottom ? "0" : (bottom + "px"));
                right = (!right ? "0" : (right + "px"));

                return "left: " + left + "; top: " + top + "; right: " + right + "; bottom: " + bottom + ";";
            }

            debug("Injecting elements");

            if (!getState(element)) {
                debug("Aborting because element has been uninstalled");
                return;
            }

            alterPositionStyles();

            var rootContainer = getState(element).container;

            if (!rootContainer) {
                rootContainer = injectContainerElement();
            }

            // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),
            // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than
            // the targeted element.
            // When the bug is resolved, "containerContainer" may be removed.

            // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).
            // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.

            var scrollbarWidth          = scrollbarSizes.width;
            var scrollbarHeight         = scrollbarSizes.height;
            var containerContainerStyle = "position: absolute; flex: none; overflow: hidden; z-index: -1; visibility: hidden; width: 100%; height: 100%; left: 0px; top: 0px;";
            var containerStyle          = "position: absolute; flex: none; overflow: hidden; z-index: -1; visibility: hidden; " + getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth);
            var expandStyle             = "position: absolute; flex: none; overflow: scroll; z-index: -1; visibility: hidden; width: 100%; height: 100%;";
            var shrinkStyle             = "position: absolute; flex: none; overflow: scroll; z-index: -1; visibility: hidden; width: 100%; height: 100%;";
            var expandChildStyle        = "position: absolute; left: 0; top: 0;";
            var shrinkChildStyle        = "position: absolute; width: 200%; height: 200%;";

            var containerContainer      = document.createElement("div");
            var container               = document.createElement("div");
            var expand                  = document.createElement("div");
            var expandChild             = document.createElement("div");
            var shrink                  = document.createElement("div");
            var shrinkChild             = document.createElement("div");

            // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56
            // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.
            containerContainer.dir              = "ltr";

            containerContainer.style.cssText    = containerContainerStyle;
            containerContainer.className        = detectionContainerClass;
            container.className                 = detectionContainerClass;
            container.style.cssText             = containerStyle;
            expand.style.cssText                = expandStyle;
            expandChild.style.cssText           = expandChildStyle;
            shrink.style.cssText                = shrinkStyle;
            shrinkChild.style.cssText           = shrinkChildStyle;

            expand.appendChild(expandChild);
            shrink.appendChild(shrinkChild);
            container.appendChild(expand);
            container.appendChild(shrink);
            containerContainer.appendChild(container);
            rootContainer.appendChild(containerContainer);

            function onExpandScroll() {
                getState(element).onExpand && getState(element).onExpand();
            }

            function onShrinkScroll() {
                getState(element).onShrink && getState(element).onShrink();
            }

            addEvent(expand, "scroll", onExpandScroll);
            addEvent(shrink, "scroll", onShrinkScroll);

            // Store the event handlers here so that they may be removed when uninstall is called.
            // See uninstall function for an explanation why it is needed.
            getState(element).onExpandScroll = onExpandScroll;
            getState(element).onShrinkScroll = onShrinkScroll;
        }

        function registerListenersAndPositionElements() {
            function updateChildSizes(element, width, height) {
                var expandChild             = getExpandChildElement(element);
                var expandWidth             = getExpandWidth(width);
                var expandHeight            = getExpandHeight(height);
                expandChild.style.width     = expandWidth + "px";
                expandChild.style.height    = expandHeight + "px";
            }

            function updateDetectorElements(done) {
                var width           = element.offsetWidth;
                var height          = element.offsetHeight;

                debug("Storing current size", width, height);

                // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.
                // Otherwise the if-check in handleScroll is useless.
                storeCurrentSize(element, width, height);

                // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.
                // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.

                batchProcessor.add(0, function performUpdateChildSizes() {
                    if (!getState(element)) {
                        debug("Aborting because element has been uninstalled");
                        return;
                    }

                    if (!areElementsInjected()) {
                        debug("Aborting because element container has not been initialized");
                        return;
                    }

                    if (options.debug) {
                        var w = element.offsetWidth;
                        var h = element.offsetHeight;

                        if (w !== width || h !== height) {
                            reporter.warn(idHandler.get(element), "Scroll: Size changed before updating detector elements.");
                        }
                    }

                    updateChildSizes(element, width, height);
                });

                batchProcessor.add(1, function updateScrollbars() {
                    if (!getState(element)) {
                        debug("Aborting because element has been uninstalled");
                        return;
                    }

                    if (!areElementsInjected()) {
                        debug("Aborting because element container has not been initialized");
                        return;
                    }

                    positionScrollbars(element, width, height);
                });

                if (done) {
                    batchProcessor.add(2, function () {
                        if (!getState(element)) {
                            debug("Aborting because element has been uninstalled");
                            return;
                        }

                        if (!areElementsInjected()) {
                          debug("Aborting because element container has not been initialized");
                          return;
                        }

                        done();
                    });
                }
            }

            function areElementsInjected() {
                return !!getState(element).container;
            }

            function notifyListenersIfNeeded() {
                function isFirstNotify() {
                    return getState(element).lastNotifiedWidth === undefined;
                }

                debug("notifyListenersIfNeeded invoked");

                var state = getState(element);

                // Don't notify the if the current size is the start size, and this is the first notification.
                if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {
                    return debug("Not notifying: Size is the same as the start size, and there has been no notification yet.");
                }

                // Don't notify if the size already has been notified.
                if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {
                    return debug("Not notifying: Size already notified");
                }


                debug("Current size not notified, notifying...");
                state.lastNotifiedWidth = state.lastWidth;
                state.lastNotifiedHeight = state.lastHeight;
                forEach(getState(element).listeners, function (listener) {
                    listener(element);
                });
            }

            function handleRender() {
                debug("startanimation triggered.");

                if (isUnrendered(element)) {
                    debug("Ignoring since element is still unrendered...");
                    return;
                }

                debug("Element rendered.");
                var expand = getExpandElement(element);
                var shrink = getShrinkElement(element);
                if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {
                    debug("Scrollbars out of sync. Updating detector elements...");
                    updateDetectorElements(notifyListenersIfNeeded);
                }
            }

            function handleScroll() {
                debug("Scroll detected.");

                if (isUnrendered(element)) {
                    // Element is still unrendered. Skip this scroll event.
                    debug("Scroll event fired while unrendered. Ignoring...");
                    return;
                }

                var width = element.offsetWidth;
                var height = element.offsetHeight;

                if (width !== element.lastWidth || height !== element.lastHeight) {
                    debug("Element size changed.");
                    updateDetectorElements(notifyListenersIfNeeded);
                } else {
                    debug("Element size has not changed (" + width + "x" + height + ").");
                }
            }

            debug("registerListenersAndPositionElements invoked.");

            if (!getState(element)) {
                debug("Aborting because element has been uninstalled");
                return;
            }

            getState(element).onRendered = handleRender;
            getState(element).onExpand = handleScroll;
            getState(element).onShrink = handleScroll;

            var style = getState(element).style;
            updateChildSizes(element, style.width, style.height);
        }

        function finalizeDomMutation() {
            debug("finalizeDomMutation invoked.");

            if (!getState(element)) {
                debug("Aborting because element has been uninstalled");
                return;
            }

            var style = getState(element).style;
            storeCurrentSize(element, style.width, style.height);
            positionScrollbars(element, style.width, style.height);
        }

        function ready() {
            callback(element);
        }

        function install() {
            debug("Installing...");
            initListeners();
            storeStartSize();

            batchProcessor.add(0, storeStyle);
            batchProcessor.add(1, injectScrollElements);
            batchProcessor.add(2, registerListenersAndPositionElements);
            batchProcessor.add(3, finalizeDomMutation);
            batchProcessor.add(4, ready);
        }

        debug("Making detectable...");

        if (isDetached(element)) {
            debug("Element is detached");

            injectContainerElement();

            debug("Waiting until element is attached...");

            getState(element).onRendered = function () {
                debug("Element is now attached");
                install();
            };
        } else {
            install();
        }
    }

    function uninstall(element) {
        var state = getState(element);

        if (!state) {
            // Uninstall has been called on a non-erd element.
            return;
        }

        // Uninstall may have been called in the following scenarios:
        // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).
        // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).
        // (3) After the installation process (here, state.busy = false and all the stuff has been injected).
        // So to be on the safe side, let's check for each thing before removing.

        // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.
        state.onExpandScroll && removeEvent(getExpandElement(element), "scroll", state.onExpandScroll);
        state.onShrinkScroll && removeEvent(getShrinkElement(element), "scroll", state.onShrinkScroll);
        state.onAnimationStart && removeEvent(state.container, "animationstart", state.onAnimationStart);

        state.container && element.removeChild(state.container);
    }

    return {
        makeDetectable: makeDetectable,
        addListener: addListener,
        uninstall: uninstall
    };
};


/***/ }),
/* 464 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.wrapClasses,
      style: _vm.styles
    }, [_c('div', {
      class: _vm.classes
    }, [_vm.showSlotHeader ? _c('div', {
      ref: "title",
      class: [_vm.prefixCls + '-title']
    }, [_vm._t("header")], 2) : _vm._e(), _vm._v(" "), _vm.showHeader ? _c('div', {
      ref: "header",
      class: [_vm.prefixCls + '-header'],
      on: {
        "mousewheel": _vm.handleMouseWheel
      }
    }, [_c('table-head', {
      attrs: {
        "prefix-cls": _vm.prefixCls,
        "styleObject": _vm.tableStyle,
        "columns": _vm.cloneColumns,
        "obj-data": _vm.objData,
        "columns-width": _vm.columnsWidth,
        "data": _vm.rebuildData
      }
    })], 1) : _vm._e(), _vm._v(" "), _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !(!!_vm.localeNoDataText && (!_vm.data || _vm.data.length === 0) || !!_vm.localeNoFilteredDataText && (!_vm.rebuildData || _vm.rebuildData.length === 0)),
        expression: "!((!!localeNoDataText && (!data || data.length === 0)) || (!!localeNoFilteredDataText && (!rebuildData || rebuildData.length === 0)))"
      }],
      ref: "body",
      class: [_vm.prefixCls + '-body'],
      style: _vm.bodyStyle,
      on: {
        "scroll": _vm.handleBodyScroll
      }
    }, [_c('table-body', {
      ref: "tbody",
      attrs: {
        "prefix-cls": _vm.prefixCls,
        "styleObject": _vm.tableStyle,
        "columns": _vm.cloneColumns,
        "data": _vm.rebuildData,
        "columns-width": _vm.columnsWidth,
        "obj-data": _vm.objData
      }
    })], 1), _vm._v(" "), _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !!_vm.localeNoDataText && (!_vm.data || _vm.data.length === 0) || !!_vm.localeNoFilteredDataText && (!_vm.rebuildData || _vm.rebuildData.length === 0),
        expression: "((!!localeNoDataText && (!data || data.length === 0)) || (!!localeNoFilteredDataText && (!rebuildData || rebuildData.length === 0)))"
      }],
      class: [_vm.prefixCls + '-tip']
    }, [_c('table', {
      attrs: {
        "cellspacing": "0",
        "cellpadding": "0",
        "border": "0"
      }
    }, [_c('tbody', [_c('tr', [_c('td', {
      style: {
        'height': _vm.bodyStyle.height
      }
    }, [!_vm.data || _vm.data.length === 0 ? _c('span', {
      domProps: {
        "innerHTML": _vm._s(_vm.localeNoDataText)
      }
    }) : _c('span', {
      domProps: {
        "innerHTML": _vm._s(_vm.localeNoFilteredDataText)
      }
    })])])])])]), _vm._v(" "), _vm.isLeftFixed ? _c('div', {
      class: [_vm.prefixCls + '-fixed'],
      style: _vm.fixedTableStyle
    }, [_vm.showHeader ? _c('div', {
      class: _vm.fixedHeaderClasses
    }, [_c('table-head', {
      attrs: {
        "fixed": "left",
        "prefix-cls": _vm.prefixCls,
        "styleObject": _vm.fixedTableStyle,
        "columns": _vm.leftFixedColumns,
        "obj-data": _vm.objData,
        "columns-width": _vm.columnsWidth,
        "data": _vm.rebuildData
      }
    })], 1) : _vm._e(), _vm._v(" "), _c('div', {
      ref: "fixedBody",
      class: [_vm.prefixCls + '-fixed-body'],
      style: _vm.fixedBodyStyle
    }, [_c('table-body', {
      attrs: {
        "fixed": "left",
        "prefix-cls": _vm.prefixCls,
        "styleObject": _vm.fixedTableStyle,
        "columns": _vm.leftFixedColumns,
        "data": _vm.rebuildData,
        "columns-width": _vm.columnsWidth,
        "obj-data": _vm.objData
      }
    })], 1)]) : _vm._e(), _vm._v(" "), _vm.isRightFixed ? _c('div', {
      class: [_vm.prefixCls + '-fixed-right'],
      style: _vm.fixedRightTableStyle
    }, [_vm.showHeader ? _c('div', {
      class: _vm.fixedHeaderClasses
    }, [_c('table-head', {
      attrs: {
        "fixed": "right",
        "prefix-cls": _vm.prefixCls,
        "styleObject": _vm.fixedRightTableStyle,
        "columns": _vm.rightFixedColumns,
        "obj-data": _vm.objData,
        "columns-width": _vm.columnsWidth,
        "data": _vm.rebuildData
      }
    })], 1) : _vm._e(), _vm._v(" "), _c('div', {
      ref: "fixedRightBody",
      class: [_vm.prefixCls + '-fixed-body'],
      style: _vm.fixedBodyStyle
    }, [_c('table-body', {
      attrs: {
        "fixed": "right",
        "prefix-cls": _vm.prefixCls,
        "styleObject": _vm.fixedRightTableStyle,
        "columns": _vm.rightFixedColumns,
        "data": _vm.rebuildData,
        "columns-width": _vm.columnsWidth,
        "obj-data": _vm.objData
      }
    })], 1)]) : _vm._e(), _vm._v(" "), _vm.showSlotFooter ? _c('div', {
      ref: "footer",
      class: [_vm.prefixCls + '-footer']
    }, [_vm._t("footer")], 2) : _vm._e()]), _vm._v(" "), _vm.loading ? _c('Spin', {
      attrs: {
        "fix": "",
        "size": "large"
      }
    }, [_vm._t("loading")], 2) : _vm._e()], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 465 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _tabs = __webpack_require__(466);

var _tabs2 = _interopRequireDefault(_tabs);

var _pane = __webpack_require__(470);

var _pane2 = _interopRequireDefault(_pane);

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

_tabs2.default.Pane = _pane2.default;
exports.default = _tabs2.default;

/***/ }),
/* 466 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(467),
  /* template */
  __webpack_require__(469),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 467 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _typeof2 = __webpack_require__(11);

var _typeof3 = _interopRequireDefault(_typeof2);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _render = __webpack_require__(468);

var _render2 = _interopRequireDefault(_render);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-tabs';

exports.default = {
    name: 'Tabs',
    mixins: [_emitter2.default],
    components: { Icon: _icon2.default, Render: _render2.default },
    props: {
        value: {
            type: [String, Number]
        },
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['line', 'card']);
            },

            default: 'line'
        },
        size: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['small', 'default']);
            },

            default: 'default'
        },
        animated: {
            type: Boolean,
            default: true
        },
        closable: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            navList: [],
            barWidth: 0,
            barOffset: 0,
            activeKey: this.value,
            showSlot: false
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-card', this.type === 'card'), (0, _defineProperty3.default)(_ref, prefixCls + '-mini', this.size === 'small' && this.type === 'line'), (0, _defineProperty3.default)(_ref, prefixCls + '-no-animation', !this.animated), _ref)];
        },
        contentClasses: function contentClasses() {
            return [prefixCls + '-content', (0, _defineProperty3.default)({}, prefixCls + '-content-animated', this.animated)];
        },
        barClasses: function barClasses() {
            return [prefixCls + '-ink-bar', (0, _defineProperty3.default)({}, prefixCls + '-ink-bar-animated', this.animated)];
        },
        contentStyle: function contentStyle() {
            var _this = this;

            var x = this.navList.findIndex(function (nav) {
                return nav.name === _this.activeKey;
            });
            var p = x === 0 ? '0%' : '-' + x + '00%';

            var style = {};
            if (x > -1) {
                style = {
                    transform: 'translateX(' + p + ') translateZ(0px)'
                };
            }
            return style;
        },
        barStyle: function barStyle() {
            var style = {
                display: 'none',
                width: this.barWidth + 'px'
            };
            if (this.type === 'line') style.display = 'block';
            if (this.animated) {
                style.transform = 'translate3d(' + this.barOffset + 'px, 0px, 0px)';
            } else {
                style.left = this.barOffset + 'px';
            }

            return style;
        }
    },
    methods: {
        getTabs: function getTabs() {
            return this.$children.filter(function (item) {
                return item.$options.name === 'TabPane';
            });
        },
        updateNav: function updateNav() {
            var _this2 = this;

            this.navList = [];
            this.getTabs().forEach(function (pane, index) {
                _this2.navList.push({
                    labelType: (0, _typeof3.default)(pane.label),
                    label: pane.label,
                    icon: pane.icon || '',
                    name: pane.currentName || index,
                    disabled: pane.disabled,
                    closable: pane.closable
                });
                if (!pane.currentName) pane.currentName = index;
                if (index === 0) {
                    if (!_this2.activeKey) _this2.activeKey = pane.currentName || index;
                }
            });
            this.updateStatus();
            this.updateBar();
        },
        updateBar: function updateBar() {
            var _this3 = this;

            this.$nextTick(function () {
                var index = _this3.navList.findIndex(function (nav) {
                    return nav.name === _this3.activeKey;
                });
                var prevTabs = _this3.$refs.nav.querySelectorAll('.' + prefixCls + '-tab');
                var tab = prevTabs[index];
                _this3.barWidth = tab ? parseFloat(tab.offsetWidth) : 0;

                if (index > 0) {
                    var offset = 0;
                    var gutter = _this3.size === 'small' ? 0 : 16;
                    for (var i = 0; i < index; i++) {
                        offset += parseFloat(prevTabs[i].offsetWidth) + gutter;
                    }

                    _this3.barOffset = offset;
                } else {
                    _this3.barOffset = 0;
                }
            });
        },
        updateStatus: function updateStatus() {
            var _this4 = this;

            var tabs = this.getTabs();
            tabs.forEach(function (tab) {
                return tab.show = tab.currentName === _this4.activeKey || _this4.animated;
            });
        },
        tabCls: function tabCls(item) {
            var _ref4;

            return [prefixCls + '-tab', (_ref4 = {}, (0, _defineProperty3.default)(_ref4, prefixCls + '-tab-disabled', item.disabled), (0, _defineProperty3.default)(_ref4, prefixCls + '-tab-active', item.name === this.activeKey), _ref4)];
        },
        handleChange: function handleChange(index) {
            var nav = this.navList[index];
            if (nav.disabled) return;
            this.activeKey = nav.name;
            this.$emit('input', nav.name);
            this.$emit('on-click', nav.name);
        },
        handleRemove: function handleRemove(index) {
            var tabs = this.getTabs();
            var tab = tabs[index];
            tab.$destroy();

            if (tab.currentName === this.activeKey) {
                var newTabs = this.getTabs();
                var activeKey = -1;

                if (newTabs.length) {
                    var leftNoDisabledTabs = tabs.filter(function (item, itemIndex) {
                        return !item.disabled && itemIndex < index;
                    });
                    var rightNoDisabledTabs = tabs.filter(function (item, itemIndex) {
                        return !item.disabled && itemIndex > index;
                    });

                    if (rightNoDisabledTabs.length) {
                        activeKey = rightNoDisabledTabs[0].currentName;
                    } else if (leftNoDisabledTabs.length) {
                        activeKey = leftNoDisabledTabs[leftNoDisabledTabs.length - 1].currentName;
                    } else {
                        activeKey = newTabs[0].currentName;
                    }
                }
                this.activeKey = activeKey;
                this.$emit('input', activeKey);
            }
            this.$emit('on-tab-remove', tab.currentName);
            this.updateNav();
        },
        showClose: function showClose(item) {
            if (this.type === 'card') {
                if (item.closable !== null) {
                    return item.closable;
                } else {
                    return this.closable;
                }
            } else {
                return false;
            }
        }
    },
    watch: {
        value: function value(val) {
            this.activeKey = val;
        },
        activeKey: function activeKey() {
            this.updateBar();
            this.updateStatus();
            this.broadcast('Table', 'on-visible-change', true);
        }
    },
    mounted: function mounted() {
        this.showSlot = this.$slots.extra !== undefined;
    }
};

/***/ }),
/* 468 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = {
    name: 'RenderCell',
    functional: true,
    props: {
        render: Function
    },
    render: function render(h, ctx) {
        return ctx.props.render(h);
    }
};

/***/ }),
/* 469 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes
    }, [_c('div', {
      class: [_vm.prefixCls + '-bar']
    }, [_c('div', {
      class: [_vm.prefixCls + '-nav-container']
    }, [_c('div', {
      class: [_vm.prefixCls + '-nav-wrap']
    }, [_c('div', {
      class: [_vm.prefixCls + '-nav-scroll']
    }, [_c('div', {
      ref: "nav",
      class: [_vm.prefixCls + '-nav']
    }, [_c('div', {
      class: _vm.barClasses,
      style: _vm.barStyle
    }), _vm._v(" "), _vm._l(_vm.navList, function (item, index) {
      return _c('div', {
        class: _vm.tabCls(item),
        on: {
          "click": function click($event) {
            _vm.handleChange(index);
          }
        }
      }, [item.icon !== '' ? _c('Icon', {
        attrs: {
          "type": item.icon
        }
      }) : _vm._e(), _vm._v(" "), item.labelType === 'function' ? _c('Render', {
        attrs: {
          "render": item.label
        }
      }) : [_vm._v(_vm._s(item.label))], _vm._v(" "), _vm.showClose(item) ? _c('Icon', {
        attrs: {
          "type": "ios-close-empty"
        },
        nativeOn: {
          "click": function click($event) {
            $event.stopPropagation();
            _vm.handleRemove(index);
          }
        }
      }) : _vm._e()], 2);
    })], 2), _vm._v(" "), _vm.showSlot ? _c('div', {
      class: [_vm.prefixCls + '-nav-right']
    }, [_vm._t("extra")], 2) : _vm._e()])])])]), _vm._v(" "), _c('div', {
      class: _vm.contentClasses,
      style: _vm.contentStyle
    }, [_vm._t("default")], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 470 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(471),
  /* template */
  __webpack_require__(472),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 471 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});


var prefixCls = 'ivu-tabs-tabpane';

exports.default = {
    name: 'TabPane',
    props: {
        name: {
            type: String
        },
        label: {
            type: [String, Function],
            default: ''
        },
        icon: {
            type: String
        },
        disabled: {
            type: Boolean,
            default: false
        },
        closable: {
            type: Boolean,
            default: null
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            show: true,
            currentName: this.name
        };
    },

    methods: {
        updateNav: function updateNav() {
            this.$parent.updateNav();
        }
    },
    watch: {
        name: function name(val) {
            this.currentName = val;
            this.updateNav();
        },
        label: function label() {
            this.updateNav();
        },
        icon: function icon() {
            this.updateNav();
        },
        disabled: function disabled() {
            this.updateNav();
        }
    },
    mounted: function mounted() {
        this.updateNav();
    }
};

/***/ }),
/* 472 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.show,
        expression: "show"
      }],
      class: _vm.prefixCls
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 473 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _tag = __webpack_require__(474);

var _tag2 = _interopRequireDefault(_tag);

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

exports.default = _tag2.default;

/***/ }),
/* 474 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(475),
  /* template */
  __webpack_require__(476),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 475 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(15);

var _icon2 = _interopRequireDefault(_icon);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-tag';

exports.default = {
    name: 'Tag',
    components: { Icon: _icon2.default },
    props: {
        closable: {
            type: Boolean,
            default: false
        },
        color: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['blue', 'green', 'red', 'yellow', 'default']);
            }
        },
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['border', 'dot']);
            }
        },
        name: {
            type: [String, Number]
        }
    },
    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.color, !!this.color), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.type, !!this.type), (0, _defineProperty3.default)(_ref, prefixCls + '-closable', this.closable), _ref)];
        },
        textClasses: function textClasses() {
            return prefixCls + '-text';
        },
        dotClasses: function dotClasses() {
            return prefixCls + '-dot-inner';
        },
        showDot: function showDot() {
            return !!this.type && this.type === 'dot';
        }
    },
    methods: {
        close: function close(event) {
            if (this.name === undefined) {
                this.$emit('on-close', event);
            } else {
                this.$emit('on-close', event, this.name);
            }
        }
    }
};

/***/ }),
/* 476 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('transition', {
      attrs: {
        "name": "fade"
      }
    }, [_c('div', {
      class: _vm.classes
    }, [_vm.showDot ? _c('span', {
      class: _vm.dotClasses
    }) : _vm._e(), _c('span', {
      class: _vm.textClasses
    }, [_vm._t("default")], 2), _vm.closable ? _c('Icon', {
      attrs: {
        "type": "ios-close-empty"
      },
      nativeOn: {
        "click": function click($event) {
          $event.stopPropagation();
          _vm.close($event);
        }
      }
    }) : _vm._e()], 1)]);
  }, staticRenderFns: [] };

/***/ }),
/* 477 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _timeline = __webpack_require__(478);

var _timeline2 = _interopRequireDefault(_timeline);

var _timelineItem = __webpack_require__(481);

var _timelineItem2 = _interopRequireDefault(_timelineItem);

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

_timeline2.default.Item = _timelineItem2.default;
exports.default = _timeline2.default;

/***/ }),
/* 478 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(479),
  /* template */
  __webpack_require__(480),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 479 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

var prefixCls = 'ivu-timeline';

exports.default = {
    name: 'Timeline',
    props: {
        pending: {
            type: Boolean,
            default: false
        }
    },
    computed: {
        classes: function classes() {
            return ['' + prefixCls, (0, _defineProperty3.default)({}, prefixCls + '-pending', this.pending)];
        }
    }
};

/***/ }),
/* 480 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('ul', {
      class: _vm.classes
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 481 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(482),
  /* template */
  __webpack_require__(483),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 482 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

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

var prefixCls = 'ivu-timeline';

exports.default = {
    name: 'TimelineItem',
    props: {
        color: {
            type: String,
            default: 'blue'
        }
    },
    data: function data() {
        return {
            dot: false
        };
    },
    mounted: function mounted() {
        this.dot = this.$refs.dot.innerHTML.length ? true : false;
    },

    computed: {
        itemClasses: function itemClasses() {
            return prefixCls + '-item';
        },
        tailClasses: function tailClasses() {
            return prefixCls + '-item-tail';
        },
        headClasses: function headClasses() {
            var _ref;

            return [prefixCls + '-item-head', (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-item-head-custom', this.dot), (0, _defineProperty3.default)(_ref, prefixCls + '-item-head-' + this.color, this.headColorShow), _ref)];
        },
        headColorShow: function headColorShow() {
            return this.color == 'blue' || this.color == 'red' || this.color == 'green';
        },
        customColor: function customColor() {
            var style = {};
            if (this.color) {
                if (!this.headColorShow) {
                    style = {
                        'color': this.color,
                        'border-color': this.color
                    };
                }
            }

            return style;
        },
        contentClasses: function contentClasses() {
            return prefixCls + '-item-content';
        }
    }
};

/***/ }),
/* 483 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('li', {
      class: _vm.itemClasses
    }, [_c('div', {
      class: _vm.tailClasses
    }), _vm._v(" "), _c('div', {
      ref: "dot",
      class: _vm.headClasses,
      style: _vm.customColor
    }, [_vm._t("dot")], 2), _vm._v(" "), _c('div', {
      class: _vm.contentClasses
    }, [_vm._t("default")], 2)]);
  }, staticRenderFns: [] };

/***/ }),
/* 484 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _timePicker = __webpack_require__(485);

var _timePicker2 = _interopRequireDefault(_timePicker);

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

exports.default = _timePicker2.default;

/***/ }),
/* 485 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _vue = __webpack_require__(9);

var _vue2 = _interopRequireDefault(_vue);

var _picker = __webpack_require__(89);

var _picker2 = _interopRequireDefault(_picker);

var _time = __webpack_require__(93);

var _time2 = _interopRequireDefault(_time);

var _timeRange = __webpack_require__(96);

var _timeRange2 = _interopRequireDefault(_timeRange);

var _timeMixins = __webpack_require__(95);

var _timeMixins2 = _interopRequireDefault(_timeMixins);

var _assist = __webpack_require__(2);

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

var getPanel = function getPanel(type) {
    if (type === 'timerange') {
        return _timeRange2.default;
    }
    return _time2.default;
};

exports.default = {
    mixins: [_picker2.default, _timeMixins2.default],
    props: {
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['time', 'timerange']);
            },

            default: 'time'
        },
        steps: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        value: {}
    },
    created: function created() {
        if (!this.currentValue) {
            if (this.type === 'timerange') {
                this.currentValue = ['', ''];
            } else {
                this.currentValue = '';
            }
        }
        var Panel = _vue2.default.extend(getPanel(this.type));
        this.Panel = new Panel({
            propsData: {
                steps: this.steps
            }
        });
    }
};

/***/ }),
/* 486 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _tooltip = __webpack_require__(105);

var _tooltip2 = _interopRequireDefault(_tooltip);

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

exports.default = _tooltip2.default;

/***/ }),
/* 487 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _transfer = __webpack_require__(488);

var _transfer2 = _interopRequireDefault(_transfer);

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

exports.default = _transfer2.default;

/***/ }),
/* 488 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(489),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 489 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _toConsumableArray2 = __webpack_require__(43);

var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);

var _list = __webpack_require__(490);

var _list2 = _interopRequireDefault(_list);

var _operation = __webpack_require__(496);

var _operation2 = _interopRequireDefault(_operation);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-transfer';

exports.default = {
    name: 'Transfer',
    mixins: [_emitter2.default, _locale2.default],
    render: function render(h) {

        function cloneVNode(vnode) {
            var clonedChildren = vnode.children && vnode.children.map(function (vnode) {
                return cloneVNode(vnode);
            });
            var cloned = h(vnode.tag, vnode.data, clonedChildren);
            cloned.text = vnode.text;
            cloned.isComment = vnode.isComment;
            cloned.componentOptions = vnode.componentOptions;
            cloned.elm = vnode.elm;
            cloned.context = vnode.context;
            cloned.ns = vnode.ns;
            cloned.isStatic = vnode.isStatic;
            cloned.key = vnode.key;

            return cloned;
        }

        var vNodes = this.$slots.default === undefined ? [] : this.$slots.default;
        var clonedVNodes = this.$slots.default === undefined ? [] : vNodes.map(function (vnode) {
            return cloneVNode(vnode);
        });

        return h('div', {
            'class': this.classes
        }, [h(_list2.default, {
            ref: 'left',
            props: {
                prefixCls: this.prefixCls + '-list',
                data: this.leftData,
                renderFormat: this.renderFormat,
                checkedKeys: this.leftCheckedKeys,
                validKeysCount: this.leftValidKeysCount,
                listStyle: this.listStyle,
                title: this.localeTitles[0],
                filterable: this.filterable,
                filterPlaceholder: this.localeFilterPlaceholder,
                filterMethod: this.filterMethod,
                notFoundText: this.localeNotFoundText
            },
            on: {
                'on-checked-keys-change': this.handleLeftCheckedKeysChange
            }
        }, vNodes), h(_operation2.default, {
            props: {
                prefixCls: this.prefixCls,
                operations: this.operations,
                leftActive: this.leftValidKeysCount > 0,
                rightActive: this.rightValidKeysCount > 0
            }
        }), h(_list2.default, {
            ref: 'right',
            props: {
                prefixCls: this.prefixCls + '-list',
                data: this.rightData,
                renderFormat: this.renderFormat,
                checkedKeys: this.rightCheckedKeys,
                validKeysCount: this.rightValidKeysCount,
                listStyle: this.listStyle,
                title: this.localeTitles[1],
                filterable: this.filterable,
                filterPlaceholder: this.localeFilterPlaceholder,
                filterMethod: this.filterMethod,
                notFoundText: this.localeNotFoundText
            },
            on: {
                'on-checked-keys-change': this.handleRightCheckedKeysChange
            }
        }, clonedVNodes)]);
    },

    props: {
        data: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        renderFormat: {
            type: Function,
            default: function _default(item) {
                return item.label || item.key;
            }
        },
        targetKeys: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        selectedKeys: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        listStyle: {
            type: Object,
            default: function _default() {
                return {};
            }
        },
        titles: {
            type: Array
        },
        operations: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        filterable: {
            type: Boolean,
            default: false
        },
        filterPlaceholder: {
            type: String
        },
        filterMethod: {
            type: Function,
            default: function _default(data, query) {
                var type = 'label' in data ? 'label' : 'key';
                return data[type].indexOf(query) > -1;
            }
        },
        notFoundText: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            leftData: [],
            rightData: [],
            leftCheckedKeys: [],
            rightCheckedKeys: []
        };
    },

    computed: {
        classes: function classes() {
            return ['' + prefixCls];
        },
        leftValidKeysCount: function leftValidKeysCount() {
            return this.getValidKeys('left').length;
        },
        rightValidKeysCount: function rightValidKeysCount() {
            return this.getValidKeys('right').length;
        },
        localeFilterPlaceholder: function localeFilterPlaceholder() {
            if (this.filterPlaceholder === undefined) {
                return this.t('i.transfer.filterPlaceholder');
            } else {
                return this.filterPlaceholder;
            }
        },
        localeNotFoundText: function localeNotFoundText() {
            if (this.notFoundText === undefined) {
                return this.t('i.transfer.notFoundText');
            } else {
                return this.notFoundText;
            }
        },
        localeTitles: function localeTitles() {
            if (this.titles === undefined) {
                return [this.t('i.transfer.titles.source'), this.t('i.transfer.titles.target')];
            } else {
                return this.titles;
            }
        }
    },
    methods: {
        getValidKeys: function getValidKeys(direction) {
            var _this = this;

            return this[direction + 'Data'].filter(function (data) {
                return !data.disabled && _this[direction + 'CheckedKeys'].indexOf(data.key) > -1;
            }).map(function (data) {
                return data.key;
            });
        },
        splitData: function splitData() {
            var _this2 = this;

            var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

            this.leftData = [].concat((0, _toConsumableArray3.default)(this.data));
            this.rightData = [];
            if (this.targetKeys.length > 0) {
                this.targetKeys.forEach(function (targetKey) {
                    var filteredData = _this2.leftData.filter(function (data, index) {
                        if (data.key === targetKey) {
                            _this2.leftData.splice(index, 1);
                            return true;
                        }
                        return false;
                    });
                    if (filteredData && filteredData.length > 0) _this2.rightData.push(filteredData[0]);
                });
            }
            if (init) {
                this.splitSelectedKey();
            }
        },
        splitSelectedKey: function splitSelectedKey() {
            var selectedKeys = this.selectedKeys;
            if (selectedKeys.length > 0) {
                this.leftCheckedKeys = this.leftData.filter(function (data) {
                    return selectedKeys.indexOf(data.key) > -1;
                }).map(function (data) {
                    return data.key;
                });
                this.rightCheckedKeys = this.rightData.filter(function (data) {
                    return selectedKeys.indexOf(data.key) > -1;
                }).map(function (data) {
                    return data.key;
                });
            }
        },
        moveTo: function moveTo(direction) {
            var targetKeys = this.targetKeys;
            var opposite = direction === 'left' ? 'right' : 'left';
            var moveKeys = this.getValidKeys(opposite);
            var newTargetKeys = direction === 'right' ? moveKeys.concat(targetKeys) : targetKeys.filter(function (targetKey) {
                return !moveKeys.some(function (checkedKey) {
                    return targetKey === checkedKey;
                });
            });

            this.$refs[opposite].toggleSelectAll(false);
            this.$emit('on-change', newTargetKeys, direction, moveKeys);
            this.dispatch('FormItem', 'on-form-change', {
                tarketKeys: newTargetKeys,
                direction: direction,
                moveKeys: moveKeys
            });
        },
        handleLeftCheckedKeysChange: function handleLeftCheckedKeysChange(keys) {
            this.leftCheckedKeys = keys;
        },
        handleRightCheckedKeysChange: function handleRightCheckedKeysChange(keys) {
            this.rightCheckedKeys = keys;
        }
    },
    watch: {
        targetKeys: function targetKeys() {
            this.splitData(false);
        },
        data: function data() {
            this.splitData(false);
        }
    },
    mounted: function mounted() {
        this.splitData(true);
    }
};

/***/ }),
/* 490 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(491),
  /* template */
  __webpack_require__(495),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 491 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _search = __webpack_require__(492);

var _search2 = _interopRequireDefault(_search);

var _checkbox = __webpack_require__(36);

var _checkbox2 = _interopRequireDefault(_checkbox);

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

exports.default = {
    name: 'TransferList',
    components: { Search: _search2.default, Checkbox: _checkbox2.default },
    props: {
        prefixCls: String,
        data: Array,
        renderFormat: Function,
        checkedKeys: Array,
        listStyle: Object,
        title: [String, Number],
        filterable: Boolean,
        filterPlaceholder: String,
        filterMethod: Function,
        notFoundText: String,
        validKeysCount: Number
    },
    data: function data() {
        return {
            showItems: [],
            query: '',
            showFooter: true
        };
    },

    watch: {
        data: function data() {
            this.updateFilteredData();
        }
    },
    computed: {
        classes: function classes() {
            return ['' + this.prefixCls, (0, _defineProperty3.default)({}, this.prefixCls + '-with-footer', this.showFooter)];
        },
        bodyClasses: function bodyClasses() {
            var _ref2;

            return [this.prefixCls + '-body', (_ref2 = {}, (0, _defineProperty3.default)(_ref2, this.prefixCls + '-body-with-search', this.filterable), (0, _defineProperty3.default)(_ref2, this.prefixCls + '-body-with-footer', this.showFooter), _ref2)];
        },
        count: function count() {
            var validKeysCount = this.validKeysCount;
            return (validKeysCount > 0 ? validKeysCount + '/' : '') + ('' + this.data.length);
        },
        checkedAll: function checkedAll() {
            return this.data.filter(function (data) {
                return !data.disabled;
            }).length === this.validKeysCount && this.validKeysCount !== 0;
        },
        checkedAllDisabled: function checkedAllDisabled() {
            return this.data.filter(function (data) {
                return !data.disabled;
            }).length <= 0;
        },
        filterData: function filterData() {
            var _this = this;

            return this.showItems.filter(function (item) {
                return _this.filterMethod(item, _this.query);
            });
        }
    },
    methods: {
        itemClasses: function itemClasses(item) {
            return [this.prefixCls + '-content-item', (0, _defineProperty3.default)({}, this.prefixCls + '-content-item-disabled', item.disabled)];
        },
        showLabel: function showLabel(item) {
            return this.renderFormat(item);
        },
        isCheck: function isCheck(item) {
            return this.checkedKeys.some(function (key) {
                return key === item.key;
            });
        },
        select: function select(item) {
            if (item.disabled) return;
            var index = this.checkedKeys.indexOf(item.key);
            index > -1 ? this.checkedKeys.splice(index, 1) : this.checkedKeys.push(item.key);
        },
        updateFilteredData: function updateFilteredData() {
            this.showItems = this.data;
        },
        toggleSelectAll: function toggleSelectAll(status) {
            var _this2 = this;

            var keys = status ? this.data.filter(function (data) {
                return !data.disabled || _this2.checkedKeys.indexOf(data.key) > -1;
            }).map(function (data) {
                return data.key;
            }) : this.data.filter(function (data) {
                return data.disabled && _this2.checkedKeys.indexOf(data.key) > -1;
            }).map(function (data) {
                return data.key;
            });
            this.$emit('on-checked-keys-change', keys);
        },
        handleQueryClear: function handleQueryClear() {
            this.query = '';
        },
        handleQueryChange: function handleQueryChange(val) {
            this.query = val;
        }
    },
    created: function created() {
        this.updateFilteredData();
    },
    mounted: function mounted() {
        this.showFooter = this.$slots.default !== undefined;
    }
};

/***/ }),
/* 492 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(493),
  /* template */
  __webpack_require__(494),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 493 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _input = __webpack_require__(35);

var _input2 = _interopRequireDefault(_input);

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

exports.default = {
    name: 'Search',
    components: { iInput: _input2.default },
    props: {
        prefixCls: String,
        placeholder: String,
        query: String
    },
    data: function data() {
        return {
            currentQuery: this.query
        };
    },

    watch: {
        query: function query(val) {
            this.currentQuery = val;
        },
        currentQuery: function currentQuery(val) {
            this.$emit('on-query-change', val);
        }
    },
    computed: {
        icon: function icon() {
            return this.query === '' ? 'ios-search' : 'ios-close';
        }
    },
    methods: {
        handleClick: function handleClick() {
            if (this.currentQuery === '') return;
            this.currentQuery = '';
            this.$emit('on-query-clear');
        }
    }
};

/***/ }),
/* 494 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.prefixCls
    }, [_c('i-input', {
      attrs: {
        "size": "small",
        "icon": _vm.icon,
        "placeholder": _vm.placeholder
      },
      on: {
        "on-click": _vm.handleClick
      },
      model: {
        value: _vm.currentQuery,
        callback: function callback($$v) {
          _vm.currentQuery = $$v;
        },
        expression: "currentQuery"
      }
    })], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 495 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      style: _vm.listStyle
    }, [_c('div', {
      class: _vm.prefixCls + '-header'
    }, [_c('Checkbox', {
      attrs: {
        "value": _vm.checkedAll,
        "disabled": _vm.checkedAllDisabled
      },
      on: {
        "on-change": _vm.toggleSelectAll
      }
    }), _vm._v(" "), _c('span', {
      class: _vm.prefixCls + '-header-title',
      on: {
        "click": function click($event) {
          _vm.toggleSelectAll(!_vm.checkedAll);
        }
      }
    }, [_vm._v(_vm._s(_vm.title))]), _vm._v(" "), _c('span', {
      class: _vm.prefixCls + '-header-count'
    }, [_vm._v(_vm._s(_vm.count))])], 1), _vm._v(" "), _c('div', {
      class: _vm.bodyClasses
    }, [_vm.filterable ? _c('div', {
      class: _vm.prefixCls + '-body-search-wrapper'
    }, [_c('Search', {
      attrs: {
        "prefix-cls": _vm.prefixCls + '-search',
        "query": _vm.query,
        "placeholder": _vm.filterPlaceholder
      },
      on: {
        "on-query-clear": _vm.handleQueryClear,
        "on-query-change": _vm.handleQueryChange
      }
    })], 1) : _vm._e(), _vm._v(" "), _c('ul', {
      class: _vm.prefixCls + '-content'
    }, [_vm._l(_vm.filterData, function (item) {
      return _c('li', {
        class: _vm.itemClasses(item),
        on: {
          "click": function click($event) {
            $event.preventDefault();
            _vm.select(item);
          }
        }
      }, [_c('Checkbox', {
        attrs: {
          "value": _vm.isCheck(item),
          "disabled": item.disabled
        }
      }), _vm._v(" "), _c('span', {
        domProps: {
          "innerHTML": _vm._s(_vm.showLabel(item))
        }
      })], 1);
    }), _vm._v(" "), _c('li', {
      class: _vm.prefixCls + '-content-not-found'
    }, [_vm._v(_vm._s(_vm.notFoundText))])], 2)]), _vm._v(" "), _vm.showFooter ? _c('div', {
      class: _vm.prefixCls + '-footer'
    }, [_vm._t("default")], 2) : _vm._e()]);
  }, staticRenderFns: [] };

/***/ }),
/* 496 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(497),
  /* template */
  __webpack_require__(498),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 497 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _button = __webpack_require__(20);

var _button2 = _interopRequireDefault(_button);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

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

exports.default = {
    name: 'Operation',
    components: { iButton: _button2.default, Icon: _icon2.default },
    props: {
        prefixCls: String,
        operations: Array,
        leftActive: Boolean,
        rightActive: Boolean
    },
    methods: {
        moveToLeft: function moveToLeft() {
            this.$parent.moveTo('left');
        },
        moveToRight: function moveToRight() {
            this.$parent.moveTo('right');
        }
    }
};

/***/ }),
/* 498 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.prefixCls + '-operation'
    }, [_c('i-button', {
      attrs: {
        "type": "primary",
        "size": "small",
        "disabled": !_vm.rightActive
      },
      nativeOn: {
        "click": function click($event) {
          _vm.moveToLeft($event);
        }
      }
    }, [_c('Icon', {
      attrs: {
        "type": "ios-arrow-left"
      }
    }), _vm._v(" " + _vm._s(_vm.operations[0]) + "\n    ")], 1), _vm._v(" "), _c('i-button', {
      attrs: {
        "type": "primary",
        "size": "small",
        "disabled": !_vm.leftActive
      },
      nativeOn: {
        "click": function click($event) {
          _vm.moveToRight($event);
        }
      }
    }, [_vm._v("\n        " + _vm._s(_vm.operations[1]) + " "), _c('Icon', {
      attrs: {
        "type": "ios-arrow-right"
      }
    })], 1)], 1);
  }, staticRenderFns: [] };

/***/ }),
/* 499 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _tree = __webpack_require__(500);

var _tree2 = _interopRequireDefault(_tree);

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

exports.default = _tree2.default;

/***/ }),
/* 500 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(501),
  /* template */
  __webpack_require__(505),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 501 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _node = __webpack_require__(502);

var _node2 = _interopRequireDefault(_node);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

var _locale = __webpack_require__(5);

var _locale2 = _interopRequireDefault(_locale);

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

var prefixCls = 'ivu-tree';

var key = 1;

exports.default = {
    name: 'Tree',
    mixins: [_emitter2.default, _locale2.default],
    components: { TreeNode: _node2.default },
    props: {
        data: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        multiple: {
            type: Boolean,
            default: false
        },
        showCheckbox: {
            type: Boolean,
            default: false
        },
        emptyText: {
            type: String
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls
        };
    },

    computed: {
        localeEmptyText: function localeEmptyText() {
            if (this.emptyText === undefined) {
                return this.t('i.tree.emptyText');
            } else {
                return this.emptyText;
            }
        }
    },
    methods: {
        getSelectedNodes: function getSelectedNodes() {
            var nodes = (0, _assist.findComponentsDownward)(this, 'TreeNode');
            return nodes.filter(function (node) {
                return node.data.selected;
            }).map(function (node) {
                return node.data;
            });
        },
        getCheckedNodes: function getCheckedNodes() {
            var nodes = (0, _assist.findComponentsDownward)(this, 'TreeNode');
            return nodes.filter(function (node) {
                return node.data.checked;
            }).map(function (node) {
                return node.data;
            });
        },
        updateData: function updateData() {
            var isInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;

            function reverseChecked(data) {
                if (!data.nodeKey) data.nodeKey = key++;
                if (data.children && data.children.length) {
                    var checkedLength = 0;
                    data.children.forEach(function (node) {
                        if (node.children) node = reverseChecked(node);
                        if (node.checked) checkedLength++;
                    });
                    if (isInit) {
                        if (checkedLength >= data.children.length) data.checked = true;
                    } else {
                        data.checked = checkedLength >= data.children.length;
                    }
                    return data;
                } else {
                    return data;
                }
            }

            function forwardChecked(data) {
                if (data.children) {
                    data.children.forEach(function (node) {
                        if (data.checked) node.checked = true;
                        if (node.children) node = forwardChecked(node);
                    });
                    return data;
                } else {
                    return data;
                }
            }
            this.data.map(function (node) {
                return reverseChecked(node);
            }).map(function (node) {
                return forwardChecked(node);
            });
            this.broadcast('TreeNode', 'indeterminate');
        }
    },
    mounted: function mounted() {
        var _this = this;

        this.updateData();
        this.$on('selected', function (ori) {
            var nodes = (0, _assist.findComponentsDownward)(_this, 'TreeNode');
            nodes.forEach(function (node) {
                _this.$set(node.data, 'selected', false);
            });
            _this.$set(ori, 'selected', true);
        });
        this.$on('on-selected', function () {
            _this.$emit('on-select-change', _this.getSelectedNodes());
        });
        this.$on('checked', function () {
            _this.updateData(false);
        });
        this.$on('on-checked', function () {
            _this.$emit('on-check-change', _this.getCheckedNodes());
        });
        this.$on('toggle-expand', function (payload) {
            _this.$emit('on-toggle-expand', payload);
        });
    },

    watch: {
        data: function data() {
            var _this2 = this;

            this.$nextTick(function () {
                _this2.updateData();
                _this2.broadcast('TreeNode', 'indeterminate');
            });
        }
    }
};

/***/ }),
/* 502 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(503),
  /* template */
  __webpack_require__(504),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 503 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _checkbox = __webpack_require__(36);

var _checkbox2 = _interopRequireDefault(_checkbox);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _collapseTransition = __webpack_require__(62);

var _collapseTransition2 = _interopRequireDefault(_collapseTransition);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-tree';

exports.default = {
    name: 'TreeNode',
    mixins: [_emitter2.default],
    components: { Checkbox: _checkbox2.default, Icon: _icon2.default, CollapseTransition: _collapseTransition2.default },
    props: {
        data: {
            type: Object,
            default: function _default() {
                return {};
            }
        },
        multiple: {
            type: Boolean,
            default: false
        },
        showCheckbox: {
            type: Boolean,
            default: false
        },
        visible: {
            type: Boolean,
            default: false
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            indeterminate: false
        };
    },

    computed: {
        classes: function classes() {
            return [prefixCls + '-children'];
        },
        selectedCls: function selectedCls() {
            return [(0, _defineProperty3.default)({}, prefixCls + '-node-selected', this.data.selected)];
        },
        arrowClasses: function arrowClasses() {
            var _ref2;

            return [prefixCls + '-arrow', (_ref2 = {}, (0, _defineProperty3.default)(_ref2, prefixCls + '-arrow-disabled', this.data.disabled), (0, _defineProperty3.default)(_ref2, prefixCls + '-arrow-open', this.data.expand), (0, _defineProperty3.default)(_ref2, prefixCls + '-arrow-hidden', !(this.data.children && this.data.children.length)), _ref2)];
        },
        titleClasses: function titleClasses() {
            return [prefixCls + '-title', (0, _defineProperty3.default)({}, prefixCls + '-title-selected', this.data.selected)];
        }
    },
    methods: {
        handleExpand: function handleExpand() {
            if (this.data.disabled) return;
            this.$set(this.data, 'expand', !this.data.expand);
            this.dispatch('Tree', 'toggle-expand', this.data);
        },
        handleSelect: function handleSelect() {
            if (this.data.disabled) return;
            if (this.data.selected) {
                this.data.selected = false;
            } else if (this.multiple) {
                this.$set(this.data, 'selected', !this.data.selected);
            } else {
                this.dispatch('Tree', 'selected', this.data);
            }
            this.dispatch('Tree', 'on-selected');
        },
        handleCheck: function handleCheck() {
            if (this.disabled) return;
            var checked = !this.data.checked;
            if (!checked || this.indeterminate) {
                (0, _assist.findComponentsDownward)(this, 'TreeNode').forEach(function (node) {
                    return node.data.checked = false;
                });
            } else {
                (0, _assist.findComponentsDownward)(this, 'TreeNode').forEach(function (node) {
                    return node.data.checked = true;
                });
            }
            this.data.checked = checked;
            this.dispatch('Tree', 'checked');
            this.dispatch('Tree', 'on-checked');
        },
        setIndeterminate: function setIndeterminate() {
            this.indeterminate = this.data.checked ? false : (0, _assist.findComponentsDownward)(this, 'TreeNode').some(function (node) {
                return node.data.checked;
            });
        }
    },
    created: function created() {
        if (!this.data.checked) this.$set(this.data, 'checked', false);
    },
    mounted: function mounted() {
        var _this = this;

        this.$on('indeterminate', function () {
            _this.broadcast('TreeNode', 'indeterminate');
            _this.setIndeterminate();
        });
    }
};

/***/ }),
/* 504 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('collapse-transition', [_c('ul', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: _vm.visible,
        expression: "visible"
      }],
      class: _vm.classes
    }, [_c('li', [_c('span', {
      class: _vm.arrowClasses,
      on: {
        "click": _vm.handleExpand
      }
    }, [_c('Icon', {
      attrs: {
        "type": "arrow-right-b"
      }
    })], 1), _vm._v(" "), _vm.showCheckbox ? _c('Checkbox', {
      attrs: {
        "value": _vm.data.checked,
        "indeterminate": _vm.indeterminate,
        "disabled": _vm.data.disabled || _vm.data.disableCheckbox
      },
      nativeOn: {
        "click": function click($event) {
          $event.preventDefault();
          _vm.handleCheck($event);
        }
      }
    }) : _vm._e(), _vm._v(" "), _c('span', {
      class: _vm.titleClasses,
      domProps: {
        "innerHTML": _vm._s(_vm.data.title)
      },
      on: {
        "click": _vm.handleSelect
      }
    }), _vm._v(" "), _vm._l(_vm.data.children, function (item) {
      return _c('Tree-node', {
        key: item.nodeKey,
        attrs: {
          "data": item,
          "visible": _vm.data.expand,
          "multiple": _vm.multiple,
          "show-checkbox": _vm.showCheckbox
        }
      });
    })], 2)])]);
  }, staticRenderFns: [] };

/***/ }),
/* 505 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.prefixCls
    }, [_vm._l(_vm.data, function (item) {
      return _c('Tree-node', {
        key: item.nodeKey,
        attrs: {
          "data": item,
          "visible": "",
          "multiple": _vm.multiple,
          "show-checkbox": _vm.showCheckbox
        }
      });
    }), _vm._v(" "), !_vm.data.length ? _c('div', {
      class: [_vm.prefixCls + '-empty']
    }, [_vm._v(_vm._s(_vm.localeEmptyText))]) : _vm._e()], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 506 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _upload = __webpack_require__(507);

var _upload2 = _interopRequireDefault(_upload);

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

exports.default = _upload2.default;

/***/ }),
/* 507 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(508),
  /* template */
  __webpack_require__(513),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 508 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _uploadList = __webpack_require__(509);

var _uploadList2 = _interopRequireDefault(_uploadList);

var _ajax = __webpack_require__(512);

var _ajax2 = _interopRequireDefault(_ajax);

var _assist = __webpack_require__(2);

var _emitter = __webpack_require__(3);

var _emitter2 = _interopRequireDefault(_emitter);

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

var prefixCls = 'ivu-upload';

exports.default = {
    name: 'Upload',
    mixins: [_emitter2.default],
    components: { UploadList: _uploadList2.default },
    props: {
        action: {
            type: String,
            required: true
        },
        headers: {
            type: Object,
            default: function _default() {
                return {};
            }
        },
        multiple: {
            type: Boolean,
            default: false
        },
        data: {
            type: Object
        },
        name: {
            type: String,
            default: 'file'
        },
        withCredentials: {
            type: Boolean,
            default: false
        },
        showUploadList: {
            type: Boolean,
            default: true
        },
        type: {
            type: String,
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['select', 'drag']);
            },

            default: 'select'
        },
        format: {
            type: Array,
            default: function _default() {
                return [];
            }
        },
        accept: {
            type: String
        },
        maxSize: {
            type: Number
        },
        beforeUpload: Function,
        onProgress: {
            type: Function,
            default: function _default() {
                return {};
            }
        },
        onSuccess: {
            type: Function,
            default: function _default() {
                return {};
            }
        },
        onError: {
            type: Function,
            default: function _default() {
                return {};
            }
        },
        onRemove: {
            type: Function,
            default: function _default() {
                return {};
            }
        },
        onPreview: {
            type: Function,
            default: function _default() {
                return {};
            }
        },
        onExceededSize: {
            type: Function,
            default: function _default() {
                return {};
            }
        },
        onFormatError: {
            type: Function,
            default: function _default() {
                return {};
            }
        },
        defaultFileList: {
            type: Array,
            default: function _default() {
                return [];
            }
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            dragOver: false,
            fileList: [],
            tempIndex: 1
        };
    },

    computed: {
        classes: function classes() {
            var _ref;

            return ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-select', this.type === 'select'), (0, _defineProperty3.default)(_ref, prefixCls + '-drag', this.type === 'drag'), (0, _defineProperty3.default)(_ref, prefixCls + '-dragOver', this.type === 'drag' && this.dragOver), _ref)];
        }
    },
    methods: {
        handleClick: function handleClick() {
            this.$refs.input.click();
        },
        handleChange: function handleChange(e) {
            var files = e.target.files;

            if (!files) {
                return;
            }
            this.uploadFiles(files);
            this.$refs.input.value = null;
        },
        onDrop: function onDrop(e) {
            this.dragOver = false;
            this.uploadFiles(e.dataTransfer.files);
        },
        uploadFiles: function uploadFiles(files) {
            var _this = this;

            var postFiles = Array.prototype.slice.call(files);
            if (!this.multiple) postFiles = postFiles.slice(0, 1);

            if (postFiles.length === 0) return;

            postFiles.forEach(function (file) {
                _this.upload(file);
            });
        },
        upload: function upload(file) {
            var _this2 = this;

            if (!this.beforeUpload) {
                return this.post(file);
            }

            var before = this.beforeUpload(file);
            if (before && before.then) {
                before.then(function (processedFile) {
                    if (Object.prototype.toString.call(processedFile) === '[object File]') {
                        _this2.post(processedFile);
                    } else {
                        _this2.post(file);
                    }
                }, function () {});
            } else if (before !== false) {
                this.post(file);
            } else {}
        },
        post: function post(file) {
            var _this3 = this;

            if (this.format.length) {
                var _file_format = file.name.split('.').pop().toLocaleLowerCase();
                var checked = this.format.some(function (item) {
                    return item.toLocaleLowerCase() === _file_format;
                });
                if (!checked) {
                    this.onFormatError(file, this.fileList);
                    return false;
                }
            }

            if (this.maxSize) {
                if (file.size > this.maxSize * 1024) {
                    this.onExceededSize(file, this.fileList);
                    return false;
                }
            }

            this.handleStart(file);
            var formData = new FormData();
            formData.append(this.name, file);

            (0, _ajax2.default)({
                headers: this.headers,
                withCredentials: this.withCredentials,
                file: file,
                data: this.data,
                filename: this.name,
                action: this.action,
                onProgress: function onProgress(e) {
                    _this3.handleProgress(e, file);
                },
                onSuccess: function onSuccess(res) {
                    _this3.handleSuccess(res, file);
                },
                onError: function onError(err, response) {
                    _this3.handleError(err, response, file);
                }
            });
        },
        handleStart: function handleStart(file) {
            file.uid = Date.now() + this.tempIndex++;
            var _file = {
                status: 'uploading',
                name: file.name,
                size: file.size,
                percentage: 0,
                uid: file.uid,
                showProgress: true
            };

            this.fileList.push(_file);
        },
        getFile: function getFile(file) {
            var fileList = this.fileList;
            var target = void 0;
            fileList.every(function (item) {
                target = file.uid === item.uid ? item : null;
                return !target;
            });
            return target;
        },
        handleProgress: function handleProgress(e, file) {
            var _file = this.getFile(file);
            this.onProgress(e, _file, this.fileList);
            _file.percentage = e.percent || 0;
        },
        handleSuccess: function handleSuccess(res, file) {
            var _file = this.getFile(file);

            if (_file) {
                _file.status = 'finished';
                _file.response = res;

                this.dispatch('FormItem', 'on-form-change', _file);
                this.onSuccess(res, _file, this.fileList);

                setTimeout(function () {
                    _file.showProgress = false;
                }, 1000);
            }
        },
        handleError: function handleError(err, response, file) {
            var _file = this.getFile(file);
            var fileList = this.fileList;

            _file.status = 'fail';

            fileList.splice(fileList.indexOf(_file), 1);

            this.onError(err, response, file);
        },
        handleRemove: function handleRemove(file) {
            var fileList = this.fileList;
            fileList.splice(fileList.indexOf(file), 1);
            this.onRemove(file, fileList);
        },
        handlePreview: function handlePreview(file) {
            if (file.status === 'finished') {
                this.onPreview(file);
            }
        },
        clearFiles: function clearFiles() {
            this.fileList = [];
        }
    },
    watch: {
        defaultFileList: {
            immediate: true,
            handler: function handler(fileList) {
                var _this4 = this;

                this.fileList = fileList.map(function (item) {
                    item.status = 'finished';
                    item.percentage = 100;
                    item.uid = Date.now() + _this4.tempIndex++;
                    return item;
                });
            }
        }
    }
};

/***/ }),
/* 509 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(510),
  /* template */
  __webpack_require__(511),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 510 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _icon = __webpack_require__(8);

var _icon2 = _interopRequireDefault(_icon);

var _progress = __webpack_require__(104);

var _progress2 = _interopRequireDefault(_progress);

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

var prefixCls = 'ivu-upload';

exports.default = {
    name: 'UploadList',
    components: { Icon: _icon2.default, iProgress: _progress2.default },
    props: {
        files: {
            type: Array,
            default: function _default() {
                return [];
            }
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls
        };
    },

    methods: {
        fileCls: function fileCls(file) {
            return [prefixCls + '-list-file', (0, _defineProperty3.default)({}, prefixCls + '-list-file-finish', file.status === 'finished')];
        },
        handleClick: function handleClick(file) {
            this.$emit('on-file-click', file);
        },
        handlePreview: function handlePreview(file) {
            this.$emit('on-file-preview', file);
        },
        handleRemove: function handleRemove(file) {
            this.$emit('on-file-remove', file);
        },
        format: function format(file) {
            var format = file.name.split('.').pop().toLocaleLowerCase() || '';
            var type = 'document';

            if (['gif', 'jpg', 'jpeg', 'png', 'bmp', 'webp'].indexOf(format) > -1) {
                type = 'image';
            }
            if (['mp4', 'm3u8', 'rmvb', 'avi', 'swf', '3gp', 'mkv', 'flv'].indexOf(format) > -1) {
                type = 'ios-film';
            }
            if (['mp3', 'wav', 'wma', 'ogg', 'aac', 'flac'].indexOf(format) > -1) {
                type = 'ios-musical-notes';
            }
            if (['doc', 'txt', 'docx', 'pages', 'epub', 'pdf'].indexOf(format) > -1) {
                type = 'document-text';
            }
            if (['numbers', 'csv', 'xls', 'xlsx'].indexOf(format) > -1) {
                type = 'stats-bars';
            }
            if (['keynote', 'ppt', 'pptx'].indexOf(format) > -1) {
                type = 'ios-videocam';
            }

            return type;
        },
        parsePercentage: function parsePercentage(val) {
            return parseInt(val, 10);
        }
    }
};

/***/ }),
/* 511 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('ul', {
      class: [_vm.prefixCls + '-list']
    }, _vm._l(_vm.files, function (file) {
      return _c('li', {
        class: _vm.fileCls(file),
        on: {
          "click": function click($event) {
            _vm.handleClick(file);
          }
        }
      }, [_c('span', {
        on: {
          "click": function click($event) {
            _vm.handlePreview(file);
          }
        }
      }, [_c('Icon', {
        attrs: {
          "type": _vm.format(file)
        }
      }), _vm._v(" " + _vm._s(file.name) + "\n        ")], 1), _vm._v(" "), _c('Icon', {
        directives: [{
          name: "show",
          rawName: "v-show",
          value: file.status === 'finished',
          expression: "file.status === 'finished'"
        }],
        class: [_vm.prefixCls + '-list-remove'],
        attrs: {
          "type": "ios-close-empty"
        },
        nativeOn: {
          "click": function click($event) {
            _vm.handleRemove(file);
          }
        }
      }), _vm._v(" "), _c('transition', {
        attrs: {
          "name": "fade"
        }
      }, [file.showProgress ? _c('i-progress', {
        attrs: {
          "stroke-width": 2,
          "percent": _vm.parsePercentage(file.percentage),
          "status": file.status === 'finished' && file.showProgress ? 'success' : 'normal'
        }
      }) : _vm._e()], 1)], 1);
    }));
  }, staticRenderFns: [] };

/***/ }),
/* 512 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _keys = __webpack_require__(31);

var _keys2 = _interopRequireDefault(_keys);

exports.default = upload;

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

function getError(action, option, xhr) {
    var msg = 'fail to post ' + action + ' ' + xhr.status + '\'';
    var err = new Error(msg);
    err.status = xhr.status;
    err.method = 'post';
    err.url = action;
    return err;
}

function getBody(xhr) {
    var text = xhr.responseText || xhr.response;
    if (!text) {
        return text;
    }

    try {
        return JSON.parse(text);
    } catch (e) {
        return text;
    }
}

function upload(option) {
    if (typeof XMLHttpRequest === 'undefined') {
        return;
    }

    var xhr = new XMLHttpRequest();
    var action = option.action;

    if (xhr.upload) {
        xhr.upload.onprogress = function progress(e) {
            if (e.total > 0) {
                e.percent = e.loaded / e.total * 100;
            }
            option.onProgress(e);
        };
    }

    var formData = new FormData();

    if (option.data) {
        (0, _keys2.default)(option.data).map(function (key) {
            formData.append(key, option.data[key]);
        });
    }

    formData.append(option.filename, option.file);

    xhr.onerror = function error(e) {
        option.onError(e);
    };

    xhr.onload = function onload() {
        if (xhr.status < 200 || xhr.status >= 300) {
            return option.onError(getError(action, option, xhr), getBody(xhr));
        }

        option.onSuccess(getBody(xhr));
    };

    xhr.open('post', action, true);

    if (option.withCredentials && 'withCredentials' in xhr) {
        xhr.withCredentials = true;
    }

    var headers = option.headers || {};

    for (var item in headers) {
        if (headers.hasOwnProperty(item) && headers[item] !== null) {
            xhr.setRequestHeader(item, headers[item]);
        }
    }
    xhr.send(formData);
}

/***/ }),
/* 513 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: [_vm.prefixCls]
    }, [_c('div', {
      class: _vm.classes,
      on: {
        "click": _vm.handleClick,
        "drop": function drop($event) {
          $event.preventDefault();
          _vm.onDrop($event);
        },
        "dragover": function dragover($event) {
          $event.preventDefault();
          _vm.dragOver = true;
        },
        "dragleave": function dragleave($event) {
          $event.preventDefault();
          _vm.dragOver = false;
        }
      }
    }, [_c('input', {
      ref: "input",
      class: [_vm.prefixCls + '-input'],
      attrs: {
        "type": "file",
        "multiple": _vm.multiple,
        "accept": _vm.accept
      },
      on: {
        "change": _vm.handleChange
      }
    }), _vm._v(" "), _vm._t("default")], 2), _vm._v(" "), _vm._t("tip"), _vm._v(" "), _vm.showUploadList ? _c('upload-list', {
      attrs: {
        "files": _vm.fileList
      },
      on: {
        "on-file-remove": _vm.handleRemove,
        "on-file-preview": _vm.handlePreview
      }
    }) : _vm._e()], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 514 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.Col = exports.Row = undefined;

var _row = __webpack_require__(515);

var _row2 = _interopRequireDefault(_row);

var _col = __webpack_require__(518);

var _col2 = _interopRequireDefault(_col);

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

exports.Row = _row2.default;
exports.Col = _col2.default;

/***/ }),
/* 515 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(516),
  /* template */
  __webpack_require__(517),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 516 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-row';

exports.default = {
    name: 'Row',
    props: {
        type: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['flex']);
            }
        },
        align: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['top', 'middle', 'bottom']);
            }
        },
        justify: {
            validator: function validator(value) {
                return (0, _assist.oneOf)(value, ['start', 'end', 'center', 'space-around', 'space-between']);
            }
        },
        gutter: {
            type: Number,
            default: 0
        },
        className: String
    },
    computed: {
        classes: function classes() {
            var _ref;

            return [(_ref = {}, (0, _defineProperty3.default)(_ref, '' + prefixCls, !this.type), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.type, !!this.type), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.type + '-' + this.align, !!this.align), (0, _defineProperty3.default)(_ref, prefixCls + '-' + this.type + '-' + this.justify, !!this.justify), (0, _defineProperty3.default)(_ref, '' + this.className, !!this.className), _ref)];
        },
        styles: function styles() {
            var style = {};
            if (this.gutter !== 0) {
                style = {
                    marginLeft: this.gutter / -2 + 'px',
                    marginRight: this.gutter / -2 + 'px'
                };
            }

            return style;
        }
    },
    methods: {
        updateGutter: function updateGutter(val) {
            var Cols = (0, _assist.findComponentsDownward)(this, 'iCol');
            if (Cols.length) {
                Cols.forEach(function (child) {
                    if (val !== 0) {
                        child.gutter = val;
                    }
                });
            }
        }
    },
    watch: {
        gutter: function gutter(val) {
            this.updateGutter(val);
        }
    }
};

/***/ }),
/* 517 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      style: _vm.styles
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 518 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(519),
  /* template */
  __webpack_require__(520),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 519 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _keys = __webpack_require__(31);

var _keys2 = _interopRequireDefault(_keys);

var _typeof2 = __webpack_require__(11);

var _typeof3 = _interopRequireDefault(_typeof2);

var _defineProperty2 = __webpack_require__(1);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _assist = __webpack_require__(2);

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

var prefixCls = 'ivu-col';

exports.default = {
    name: 'iCol',
    props: {
        span: [Number, String],
        order: [Number, String],
        offset: [Number, String],
        push: [Number, String],
        pull: [Number, String],
        className: String,
        xs: [Number, Object],
        sm: [Number, Object],
        md: [Number, Object],
        lg: [Number, Object]
    },
    data: function data() {
        return {
            gutter: 0
        };
    },

    computed: {
        classes: function classes() {
            var _ref,
                _this = this;

            var classList = ['' + prefixCls, (_ref = {}, (0, _defineProperty3.default)(_ref, prefixCls + '-span-' + this.span, this.span), (0, _defineProperty3.default)(_ref, prefixCls + '-order-' + this.order, this.order), (0, _defineProperty3.default)(_ref, prefixCls + '-offset-' + this.offset, this.offset), (0, _defineProperty3.default)(_ref, prefixCls + '-push-' + this.push, this.push), (0, _defineProperty3.default)(_ref, prefixCls + '-pull-' + this.pull, this.pull), (0, _defineProperty3.default)(_ref, '' + this.className, !!this.className), _ref)];

            ['xs', 'sm', 'md', 'lg'].forEach(function (size) {
                if (typeof _this[size] === 'number') {
                    classList.push(prefixCls + '-span-' + size + '-' + _this[size]);
                } else if ((0, _typeof3.default)(_this[size]) === 'object') {
                    var props = _this[size];
                    (0, _keys2.default)(props).forEach(function (prop) {
                        classList.push(prop !== 'span' ? prefixCls + '-' + size + '-' + prop + '-' + props[prop] : prefixCls + '-span-' + size + '-' + props[prop]);
                    });
                }
            });

            return classList;
        },
        styles: function styles() {
            var style = {};
            if (this.gutter !== 0) {
                style = {
                    paddingLeft: this.gutter / 2 + 'px',
                    paddingRight: this.gutter / 2 + 'px'
                };
            }

            return style;
        }
    },
    methods: {
        updateGutter: function updateGutter() {
            var Row = (0, _assist.findComponentUpward)(this, 'Row');
            if (Row) {
                Row.updateGutter(Row.gutter);
            }
        }
    },
    mounted: function mounted() {
        this.updateGutter();
    },
    beforeDestroy: function beforeDestroy() {
        this.updateGutter();
    }
};

/***/ }),
/* 520 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('div', {
      class: _vm.classes,
      style: _vm.styles
    }, [_vm._t("default")], 2);
  }, staticRenderFns: [] };

/***/ }),
/* 521 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.OptionGroup = exports.Option = exports.Select = undefined;

var _select = __webpack_require__(55);

var _select2 = _interopRequireDefault(_select);

var _option = __webpack_require__(61);

var _option2 = _interopRequireDefault(_option);

var _optionGroup = __webpack_require__(522);

var _optionGroup2 = _interopRequireDefault(_optionGroup);

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

exports.Select = _select2.default;
exports.Option = _option2.default;
exports.OptionGroup = _optionGroup2.default;

/***/ }),
/* 522 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(523),
  /* template */
  __webpack_require__(524),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 523 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
    value: true
});


var prefixCls = 'ivu-select-group';

exports.default = {
    name: 'OptionGroup',
    props: {
        label: {
            type: String,
            default: ''
        }
    },
    data: function data() {
        return {
            prefixCls: prefixCls,
            hidden: false };
    },

    methods: {
        queryChange: function queryChange() {
            var _this = this;

            this.$nextTick(function () {
                var options = _this.$refs.options.querySelectorAll('.ivu-select-item');
                var hasVisibleOption = false;
                for (var i = 0; i < options.length; i++) {
                    if (options[i].style.display !== 'none') {
                        hasVisibleOption = true;
                        break;
                    }
                }
                _this.hidden = !hasVisibleOption;
            });
        }
    },
    mounted: function mounted() {
        var _this2 = this;

        this.$on('on-query-change', function () {
            _this2.queryChange();
            return true;
        });
    }
};

/***/ }),
/* 524 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = { render: function render() {
    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;
    return _c('li', {
      directives: [{
        name: "show",
        rawName: "v-show",
        value: !_vm.hidden,
        expression: "!hidden"
      }],
      class: [_vm.prefixCls + '-wrap']
    }, [_c('div', {
      class: [_vm.prefixCls + '-title']
    }, [_vm._v(_vm._s(_vm.label))]), _vm._v(" "), _c('ul', [_c('li', {
      ref: "options",
      class: [_vm.prefixCls]
    }, [_vm._t("default")], 2)])]);
  }, staticRenderFns: [] };

/***/ })
/******/ ]);
});