您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
① 打开一本书的微信读书界面,点击界面右中方“读”字按钮,然后修改相应配置,再打开“滚屏阅读”到开启即可 ② 如果需要后台刷时长,请直接点击 自动时长 按钮一键开启 ③ Edge 浏览器请关闭TAB休眠或者在休眠配置里面排除 https://weread.qq.com
当前为
// ==UserScript== // @name 微信读书-WEB端自动阅读插件 // @namespace https://github.com/diduweiwu // @version 2021.08.21.1 // @description ① 打开一本书的微信读书界面,点击界面右中方“读”字按钮,然后修改相应配置,再打开“滚屏阅读”到开启即可 ② 如果需要后台刷时长,请直接点击 自动时长 按钮一键开启 ③ Edge 浏览器请关闭TAB休眠或者在休眠配置里面排除 https://weread.qq.com // @author 纯白约定 // @grant 纯白约定 // @include https://weread.qq.com/web/reader/* // ==/UserScript== (function() { 'use strict'; /* global $ */ /******/ (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 = 66); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (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__(43); /* 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__(26); /* 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; } /***/ }), /* 1 */ /***/ (function(module, exports) { /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ // css base code, injected by the css-loader module.exports = function(useSourceMap) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = cssWithMappingToString(item, useSourceMap); if(item[2]) { return "@media " + item[2] + "{" + content + "}"; } else { return content; } }).join(""); }; // import a list of modules into the list list.i = function(modules, mediaQuery) { if(typeof modules === "string") modules = [[null, modules, ""]]; var alreadyImportedModules = {}; for(var i = 0; i < this.length; i++) { var id = this[i][0]; if(typeof id === "number") alreadyImportedModules[id] = true; } for(i = 0; i < modules.length; i++) { var item = modules[i]; // skip already imported module // this implementation is not 100% perfect for weird media query combinations // when a module is imported multiple times with different media queries. // I hope this will never occur (Hey this way we have smaller bundles) if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { if(mediaQuery && !item[2]) { item[2] = mediaQuery; } else if(mediaQuery) { item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; } list.push(item); } } }; return list; }; function cssWithMappingToString(item, useSourceMap) { var content = item[1] || ''; var cssMapping = item[3]; if (!cssMapping) { return content; } if (useSourceMap && typeof btoa === 'function') { var sourceMapping = toComment(cssMapping); var sourceURLs = cssMapping.sources.map(function (source) { return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' }); return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); } return [content].join('\n'); } // Adapted from convert-source-map (MIT) function toComment(sourceMap) { // eslint-disable-next-line no-undef var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; return '/*# ' + data + ' */'; } /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra Modified by Evan You @yyx990803 */ var hasDocument = typeof document !== 'undefined' if (typeof DEBUG !== 'undefined' && DEBUG) { if (!hasDocument) { throw new Error( 'vue-style-loader cannot be used in a non-browser environment. ' + "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment." ) } } var listToStyles = __webpack_require__(69) /* type StyleObject = { id: number; parts: Array<StyleObjectPart> } type StyleObjectPart = { css: string; media: string; sourceMap: ?string } */ var stylesInDom = {/* [id: number]: { id: number, refs: number, parts: Array<(obj?: StyleObjectPart) => void> } */} var head = hasDocument && (document.head || document.getElementsByTagName('head')[0]) var singletonElement = null var singletonCounter = 0 var isProduction = false var noop = function () {} var options = null var ssrIdKey = 'data-vue-ssr-id' // Force single-tag solution on IE6-9, which has a hard limit on the # of <style> // tags it will allow on a page var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase()) module.exports = function (parentId, list, _isProduction, _options) { isProduction = _isProduction options = _options || {} var styles = listToStyles(parentId, list) addStylesToDom(styles) return function update (newList) { var mayRemove = [] for (var i = 0; i < styles.length; i++) { var item = styles[i] var domStyle = stylesInDom[item.id] domStyle.refs-- mayRemove.push(domStyle) } if (newList) { styles = listToStyles(parentId, newList) addStylesToDom(styles) } else { styles = [] } for (var i = 0; i < mayRemove.length; i++) { var domStyle = mayRemove[i] if (domStyle.refs === 0) { for (var j = 0; j < domStyle.parts.length; j++) { domStyle.parts[j]() } delete stylesInDom[domStyle.id] } } } } function addStylesToDom (styles /* Array<StyleObject> */) { for (var i = 0; i < styles.length; i++) { var item = styles[i] var domStyle = stylesInDom[item.id] if (domStyle) { domStyle.refs++ for (var j = 0; j < domStyle.parts.length; j++) { domStyle.parts[j](item.parts[j]) } for (; j < item.parts.length; j++) { domStyle.parts.push(addStyle(item.parts[j])) } if (domStyle.parts.length > item.parts.length) { domStyle.parts.length = item.parts.length } } else { var parts = [] for (var j = 0; j < item.parts.length; j++) { parts.push(addStyle(item.parts[j])) } stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts } } } } function createStyleElement () { var styleElement = document.createElement('style') styleElement.type = 'text/css' head.appendChild(styleElement) return styleElement } function addStyle (obj /* StyleObjectPart */) { var update, remove var styleElement = document.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]') if (styleElement) { if (isProduction) { // has SSR styles and in production mode. // simply do nothing. return noop } else { // has SSR styles but in dev mode. // for some reason Chrome can't handle source map in server-rendered // style tags - source maps in <style> only works if the style tag is // created and inserted dynamically. So we remove the server rendered // styles and inject new ones. styleElement.parentNode.removeChild(styleElement) } } if (isOldIE) { // use singleton mode for IE9. var styleIndex = singletonCounter++ styleElement = singletonElement || (singletonElement = createStyleElement()) update = applyToSingletonTag.bind(null, styleElement, styleIndex, false) remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true) } else { // use multi-style-tag mode in all other cases styleElement = createStyleElement() update = applyToTag.bind(null, styleElement) remove = function () { styleElement.parentNode.removeChild(styleElement) } } update(obj) return function updateStyle (newObj /* StyleObjectPart */) { if (newObj) { if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { return } update(obj = newObj) } else { remove() } } } var replaceText = (function () { var textStore = [] return function (index, replacement) { textStore[index] = replacement return textStore.filter(Boolean).join('\n') } })() function applyToSingletonTag (styleElement, index, remove, obj) { var css = remove ? '' : obj.css if (styleElement.styleSheet) { styleElement.styleSheet.cssText = replaceText(index, css) } else { var cssNode = document.createTextNode(css) var childNodes = styleElement.childNodes if (childNodes[index]) styleElement.removeChild(childNodes[index]) if (childNodes.length) { styleElement.insertBefore(cssNode, childNodes[index]) } else { styleElement.appendChild(cssNode) } } } function applyToTag (styleElement, obj) { var css = obj.css var media = obj.media var sourceMap = obj.sourceMap if (media) { styleElement.setAttribute('media', media) } if (options.ssrId) { styleElement.setAttribute(ssrIdKey, obj.id) } if (sourceMap) { // https://developer.chrome.com/devtools/docs/javascript-debugging // this makes source maps inside style tags work properly in Chrome css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */' // http://stackoverflow.com/a/26603875 css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */' } if (styleElement.styleSheet) { styleElement.styleSheet.cssText = css } else { while (styleElement.firstChild) { styleElement.removeChild(styleElement.firstChild) } styleElement.appendChild(document.createTextNode(css)) } } /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__required__ = __webpack_require__(53); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__whitespace__ = __webpack_require__(130); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__type__ = __webpack_require__(131); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__range__ = __webpack_require__(132); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__enum__ = __webpack_require__(133); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__pattern__ = __webpack_require__(134); /* 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 */] }); /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(70); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("78836f66", content, true, {}); /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var bind = __webpack_require__(58); /*global toString:true*/ // utils is a library of generic helper functions non-specific to axios var toString = Object.prototype.toString; /** * Determine if a value is an Array * * @param {Object} val The value to test * @returns {boolean} True if value is an Array, otherwise false */ function isArray(val) { return toString.call(val) === '[object Array]'; } /** * Determine if a value is undefined * * @param {Object} val The value to test * @returns {boolean} True if the value is undefined, otherwise false */ function isUndefined(val) { return typeof val === 'undefined'; } /** * Determine if a value is a Buffer * * @param {Object} val The value to test * @returns {boolean} True if value is a Buffer, otherwise false */ function isBuffer(val) { return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); } /** * Determine if a value is an ArrayBuffer * * @param {Object} val The value to test * @returns {boolean} True if value is an ArrayBuffer, otherwise false */ function isArrayBuffer(val) { return toString.call(val) === '[object ArrayBuffer]'; } /** * Determine if a value is a FormData * * @param {Object} val The value to test * @returns {boolean} True if value is an FormData, otherwise false */ function isFormData(val) { return (typeof FormData !== 'undefined') && (val instanceof FormData); } /** * Determine if a value is a view on an ArrayBuffer * * @param {Object} val The value to test * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false */ function isArrayBufferView(val) { var result; if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { result = ArrayBuffer.isView(val); } else { result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); } return result; } /** * Determine if a value is a String * * @param {Object} val The value to test * @returns {boolean} True if value is a String, otherwise false */ function isString(val) { return typeof val === 'string'; } /** * Determine if a value is a Number * * @param {Object} val The value to test * @returns {boolean} True if value is a Number, otherwise false */ function isNumber(val) { return typeof val === 'number'; } /** * Determine if a value is an Object * * @param {Object} val The value to test * @returns {boolean} True if value is an Object, otherwise false */ function isObject(val) { return val !== null && typeof val === 'object'; } /** * Determine if a value is a plain Object * * @param {Object} val The value to test * @return {boolean} True if value is a plain Object, otherwise false */ function isPlainObject(val) { if (toString.call(val) !== '[object Object]') { return false; } var prototype = Object.getPrototypeOf(val); return prototype === null || prototype === Object.prototype; } /** * Determine if a value is a Date * * @param {Object} val The value to test * @returns {boolean} True if value is a Date, otherwise false */ function isDate(val) { return toString.call(val) === '[object Date]'; } /** * Determine if a value is a File * * @param {Object} val The value to test * @returns {boolean} True if value is a File, otherwise false */ function isFile(val) { return toString.call(val) === '[object File]'; } /** * Determine if a value is a Blob * * @param {Object} val The value to test * @returns {boolean} True if value is a Blob, otherwise false */ function isBlob(val) { return toString.call(val) === '[object Blob]'; } /** * Determine if a value is a Function * * @param {Object} val The value to test * @returns {boolean} True if value is a Function, otherwise false */ function isFunction(val) { return toString.call(val) === '[object Function]'; } /** * Determine if a value is a Stream * * @param {Object} val The value to test * @returns {boolean} True if value is a Stream, otherwise false */ function isStream(val) { return isObject(val) && isFunction(val.pipe); } /** * Determine if a value is a URLSearchParams object * * @param {Object} val The value to test * @returns {boolean} True if value is a URLSearchParams object, otherwise false */ function isURLSearchParams(val) { return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; } /** * Trim excess whitespace off the beginning and end of a string * * @param {String} str The String to trim * @returns {String} The String freed of excess whitespace */ function trim(str) { return str.replace(/^\s*/, '').replace(/\s*$/, ''); } /** * Determine if we're running in a standard browser environment * * This allows axios to run in a web worker, and react-native. * Both environments support XMLHttpRequest, but not fully standard globals. * * web workers: * typeof window -> undefined * typeof document -> undefined * * react-native: * navigator.product -> 'ReactNative' * nativescript * navigator.product -> 'NativeScript' or 'NS' */ function isStandardBrowserEnv() { if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) { return false; } return ( typeof window !== 'undefined' && typeof document !== 'undefined' ); } /** * Iterate over an Array or an Object invoking a function for each item. * * If `obj` is an Array callback will be called passing * the value, index, and complete array for each item. * * If 'obj' is an Object callback will be called passing * the value, key, and complete object for each property. * * @param {Object|Array} obj The object to iterate * @param {Function} fn The callback to invoke for each item */ function forEach(obj, fn) { // Don't bother if no value provided if (obj === null || typeof obj === 'undefined') { return; } // Force an array if not already something iterable if (typeof obj !== 'object') { /*eslint no-param-reassign:0*/ obj = [obj]; } if (isArray(obj)) { // Iterate over array values for (var i = 0, l = obj.length; i < l; i++) { fn.call(null, obj[i], i, obj); } } else { // Iterate over object keys for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { fn.call(null, obj[key], key, obj); } } } } /** * Accepts varargs expecting each argument to be an object, then * immutably merges the properties of each object and returns result. * * When multiple objects contain the same key the later object in * the arguments list will take precedence. * * Example: * * ```js * var result = merge({foo: 123}, {foo: 456}); * console.log(result.foo); // outputs 456 * ``` * * @param {Object} obj1 Object to merge * @returns {Object} Result of all merge properties */ function merge(/* obj1, obj2, obj3, ... */) { var result = {}; function assignValue(val, key) { if (isPlainObject(result[key]) && isPlainObject(val)) { result[key] = merge(result[key], val); } else if (isPlainObject(val)) { result[key] = merge({}, val); } else if (isArray(val)) { result[key] = val.slice(); } else { result[key] = val; } } for (var i = 0, l = arguments.length; i < l; i++) { forEach(arguments[i], assignValue); } return result; } /** * Extends object a by mutably adding to it the properties of object b. * * @param {Object} a The object to be extended * @param {Object} b The object to copy properties from * @param {Object} thisArg The object to bind function to * @return {Object} The resulting value of object a */ function extend(a, b, thisArg) { forEach(b, function assignValue(val, key) { if (thisArg && typeof val === 'function') { a[key] = bind(val, thisArg); } else { a[key] = val; } }); return a; } /** * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) * * @param {string} content with BOM * @return {string} content value without BOM */ function stripBOM(content) { if (content.charCodeAt(0) === 0xFEFF) { content = content.slice(1); } return content; } module.exports = { isArray: isArray, isArrayBuffer: isArrayBuffer, isBuffer: isBuffer, isFormData: isFormData, isArrayBufferView: isArrayBufferView, isString: isString, isNumber: isNumber, isObject: isObject, isPlainObject: isPlainObject, isUndefined: isUndefined, isDate: isDate, isFile: isFile, isBlob: isBlob, isFunction: isFunction, isStream: isStream, isURLSearchParams: isURLSearchParams, isStandardBrowserEnv: isStandardBrowserEnv, forEach: forEach, merge: merge, extend: extend, trim: trim, stripBOM: stripBOM }; /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*! * Vue.js v2.6.14 * (c) 2014-2021 Evan You * Released under the MIT License. */ /* */ var emptyObject = Object.freeze({}); // These helpers produce better VM code in JS engines due to their // explicitness and function inlining. function isUndef (v) { return v === undefined || v === null } function isDef (v) { return v !== undefined && v !== null } function isTrue (v) { return v === true } function isFalse (v) { return v === false } /** * Check if value is primitive. */ function isPrimitive (value) { return ( typeof value === 'string' || typeof value === 'number' || // $flow-disable-line typeof value === 'symbol' || typeof value === 'boolean' ) } /** * Quick object check - this is primarily used to tell * Objects from primitive values when we know the value * is a JSON-compliant type. */ function isObject (obj) { return obj !== null && typeof obj === 'object' } /** * Get the raw type string of a value, e.g., [object Object]. */ var _toString = Object.prototype.toString; function toRawType (value) { return _toString.call(value).slice(8, -1) } /** * Strict object type check. Only returns true * for plain JavaScript objects. */ function isPlainObject (obj) { return _toString.call(obj) === '[object Object]' } function isRegExp (v) { return _toString.call(v) === '[object RegExp]' } /** * Check if val is a valid array index. */ function isValidArrayIndex (val) { var n = parseFloat(String(val)); return n >= 0 && Math.floor(n) === n && isFinite(val) } function isPromise (val) { return ( isDef(val) && typeof val.then === 'function' && typeof val.catch === 'function' ) } /** * Convert a value to a string that is actually rendered. */ function toString (val) { return val == null ? '' : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) ? JSON.stringify(val, null, 2) : String(val) } /** * Convert an input value to a number for persistence. * If the conversion fails, return original string. */ function toNumber (val) { var n = parseFloat(val); return isNaN(n) ? val : n } /** * Make a map and return a function for checking if a key * is in that map. */ function makeMap ( str, expectsLowerCase ) { var map = Object.create(null); var list = str.split(','); for (var i = 0; i < list.length; i++) { map[list[i]] = true; } return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; } } /** * Check if a tag is a built-in tag. */ var isBuiltInTag = makeMap('slot,component', true); /** * Check if an attribute is a reserved attribute. */ var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); /** * Remove an item from an array. */ function remove (arr, item) { if (arr.length) { var index = arr.indexOf(item); if (index > -1) { return arr.splice(index, 1) } } } /** * Check whether an object has the property. */ var hasOwnProperty = Object.prototype.hasOwnProperty; function hasOwn (obj, key) { return hasOwnProperty.call(obj, key) } /** * Create a cached version of a pure function. */ function cached (fn) { var cache = Object.create(null); return (function cachedFn (str) { var hit = cache[str]; return hit || (cache[str] = fn(str)) }) } /** * Camelize a hyphen-delimited string. */ var camelizeRE = /-(\w)/g; var camelize = cached(function (str) { return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) }); /** * Capitalize a string. */ var capitalize = cached(function (str) { return str.charAt(0).toUpperCase() + str.slice(1) }); /** * Hyphenate a camelCase string. */ var hyphenateRE = /\B([A-Z])/g; var hyphenate = cached(function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase() }); /** * Simple bind polyfill for environments that do not support it, * e.g., PhantomJS 1.x. Technically, we don't need this anymore * since native bind is now performant enough in most browsers. * But removing it would mean breaking code that was able to run in * PhantomJS 1.x, so this must be kept for backward compatibility. */ /* istanbul ignore next */ function polyfillBind (fn, ctx) { function boundFn (a) { var l = arguments.length; return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx) } boundFn._length = fn.length; return boundFn } function nativeBind (fn, ctx) { return fn.bind(ctx) } var bind = Function.prototype.bind ? nativeBind : polyfillBind; /** * Convert an Array-like object to a real Array. */ function toArray (list, start) { start = start || 0; var i = list.length - start; var ret = new Array(i); while (i--) { ret[i] = list[i + start]; } return ret } /** * Mix properties into target object. */ function extend (to, _from) { for (var key in _from) { to[key] = _from[key]; } return to } /** * Merge an Array of Objects into a single Object. */ function toObject (arr) { var res = {}; for (var i = 0; i < arr.length; i++) { if (arr[i]) { extend(res, arr[i]); } } return res } /* eslint-disable no-unused-vars */ /** * Perform no operation. * Stubbing args to make Flow happy without leaving useless transpiled code * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). */ function noop (a, b, c) {} /** * Always return false. */ var no = function (a, b, c) { return false; }; /* eslint-enable no-unused-vars */ /** * Return the same value. */ var identity = function (_) { return _; }; /** * Generate a string containing static keys from compiler modules. */ function genStaticKeys (modules) { return modules.reduce(function (keys, m) { return keys.concat(m.staticKeys || []) }, []).join(',') } /** * Check if two values are loosely equal - that is, * if they are plain objects, do they have the same shape? */ function looseEqual (a, b) { if (a === b) { return true } var isObjectA = isObject(a); var isObjectB = isObject(b); if (isObjectA && isObjectB) { try { var isArrayA = Array.isArray(a); var isArrayB = Array.isArray(b); if (isArrayA && isArrayB) { return a.length === b.length && a.every(function (e, i) { return looseEqual(e, b[i]) }) } else if (a instanceof Date && b instanceof Date) { return a.getTime() === b.getTime() } else if (!isArrayA && !isArrayB) { var keysA = Object.keys(a); var keysB = Object.keys(b); return keysA.length === keysB.length && keysA.every(function (key) { return looseEqual(a[key], b[key]) }) } else { /* istanbul ignore next */ return false } } catch (e) { /* istanbul ignore next */ return false } } else if (!isObjectA && !isObjectB) { return String(a) === String(b) } else { return false } } /** * Return the first index at which a loosely equal value can be * found in the array (if value is a plain object, the array must * contain an object of the same shape), or -1 if it is not present. */ function looseIndexOf (arr, val) { for (var i = 0; i < arr.length; i++) { if (looseEqual(arr[i], val)) { return i } } return -1 } /** * Ensure a function is called only once. */ function once (fn) { var called = false; return function () { if (!called) { called = true; fn.apply(this, arguments); } } } var SSR_ATTR = 'data-server-rendered'; var ASSET_TYPES = [ 'component', 'directive', 'filter' ]; var LIFECYCLE_HOOKS = [ 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUpdate', 'updated', 'beforeDestroy', 'destroyed', 'activated', 'deactivated', 'errorCaptured', 'serverPrefetch' ]; /* */ var config = ({ /** * Option merge strategies (used in core/util/options) */ // $flow-disable-line optionMergeStrategies: Object.create(null), /** * Whether to suppress warnings. */ silent: false, /** * Show production mode tip message on boot? */ productionTip: "production" !== 'production', /** * Whether to enable devtools */ devtools: "production" !== 'production', /** * Whether to record perf */ performance: false, /** * Error handler for watcher errors */ errorHandler: null, /** * Warn handler for watcher warns */ warnHandler: null, /** * Ignore certain custom elements */ ignoredElements: [], /** * Custom user key aliases for v-on */ // $flow-disable-line keyCodes: Object.create(null), /** * Check if a tag is reserved so that it cannot be registered as a * component. This is platform-dependent and may be overwritten. */ isReservedTag: no, /** * Check if an attribute is reserved so that it cannot be used as a component * prop. This is platform-dependent and may be overwritten. */ isReservedAttr: no, /** * Check if a tag is an unknown element. * Platform-dependent. */ isUnknownElement: no, /** * Get the namespace of an element */ getTagNamespace: noop, /** * Parse the real tag name for the specific platform. */ parsePlatformTagName: identity, /** * Check if an attribute must be bound using property, e.g. value * Platform-dependent. */ mustUseProp: no, /** * Perform updates asynchronously. Intended to be used by Vue Test Utils * This will significantly reduce performance if set to false. */ async: true, /** * Exposed for legacy reasons */ _lifecycleHooks: LIFECYCLE_HOOKS }); /* */ /** * unicode letters used for parsing html tags, component names and property paths. * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname * skipping \u10000-\uEFFFF due to it freezing up PhantomJS */ var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; /** * Check if a string starts with $ or _ */ function isReserved (str) { var c = (str + '').charCodeAt(0); return c === 0x24 || c === 0x5F } /** * Define a property. */ function def (obj, key, val, enumerable) { Object.defineProperty(obj, key, { value: val, enumerable: !!enumerable, writable: true, configurable: true }); } /** * Parse simple path. */ var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); function parsePath (path) { if (bailRE.test(path)) { return } var segments = path.split('.'); return function (obj) { for (var i = 0; i < segments.length; i++) { if (!obj) { return } obj = obj[segments[i]]; } return obj } } /* */ // can we use __proto__? var hasProto = '__proto__' in {}; // Browser environment sniffing var inBrowser = typeof window !== 'undefined'; var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); var UA = inBrowser && window.navigator.userAgent.toLowerCase(); var isIE = UA && /msie|trident/.test(UA); var isIE9 = UA && UA.indexOf('msie 9.0') > 0; var isEdge = UA && UA.indexOf('edge/') > 0; var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; var isPhantomJS = UA && /phantomjs/.test(UA); var isFF = UA && UA.match(/firefox\/(\d+)/); // Firefox has a "watch" function on Object.prototype... var nativeWatch = ({}).watch; var supportsPassive = false; if (inBrowser) { try { var opts = {}; Object.defineProperty(opts, 'passive', ({ get: function get () { /* istanbul ignore next */ supportsPassive = true; } })); // https://github.com/facebook/flow/issues/285 window.addEventListener('test-passive', null, opts); } catch (e) {} } // this needs to be lazy-evaled because vue may be required before // vue-server-renderer can set VUE_ENV var _isServer; var isServerRendering = function () { if (_isServer === undefined) { /* istanbul ignore if */ if (!inBrowser && !inWeex && typeof global !== 'undefined') { // detect presence of vue-server-renderer and avoid // Webpack shimming the process _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; } else { _isServer = false; } } return _isServer }; // detect devtools var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; /* istanbul ignore next */ function isNative (Ctor) { return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) } var hasSymbol = typeof Symbol !== 'undefined' && isNative(Symbol) && typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); var _Set; /* istanbul ignore if */ // $flow-disable-line if (typeof Set !== 'undefined' && isNative(Set)) { // use native Set when available. _Set = Set; } else { // a non-standard Set polyfill that only works with primitive keys. _Set = /*@__PURE__*/(function () { function Set () { this.set = Object.create(null); } Set.prototype.has = function has (key) { return this.set[key] === true }; Set.prototype.add = function add (key) { this.set[key] = true; }; Set.prototype.clear = function clear () { this.set = Object.create(null); }; return Set; }()); } /* */ var warn = noop; var tip = noop; var generateComponentTrace = (noop); // work around flow check var formatComponentName = (noop); if (false) { var hasConsole = typeof console !== 'undefined'; var classifyRE = /(?:^|[-_])(\w)/g; var classify = function (str) { return str .replace(classifyRE, function (c) { return c.toUpperCase(); }) .replace(/[-_]/g, ''); }; warn = function (msg, vm) { var trace = vm ? generateComponentTrace(vm) : ''; if (config.warnHandler) { config.warnHandler.call(null, msg, vm, trace); } else if (hasConsole && (!config.silent)) { console.error(("[Vue warn]: " + msg + trace)); } }; tip = function (msg, vm) { if (hasConsole && (!config.silent)) { console.warn("[Vue tip]: " + msg + ( vm ? generateComponentTrace(vm) : '' )); } }; formatComponentName = function (vm, includeFile) { if (vm.$root === vm) { return '<Root>' } var options = typeof vm === 'function' && vm.cid != null ? vm.options : vm._isVue ? vm.$options || vm.constructor.options : vm; var name = options.name || options._componentTag; var file = options.__file; if (!name && file) { var match = file.match(/([^/\\]+)\.vue$/); name = match && match[1]; } return ( (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") + (file && includeFile !== false ? (" at " + file) : '') ) }; var repeat = function (str, n) { var res = ''; while (n) { if (n % 2 === 1) { res += str; } if (n > 1) { str += str; } n >>= 1; } return res }; generateComponentTrace = function (vm) { if (vm._isVue && vm.$parent) { var tree = []; var currentRecursiveSequence = 0; while (vm) { if (tree.length > 0) { var last = tree[tree.length - 1]; if (last.constructor === vm.constructor) { currentRecursiveSequence++; vm = vm.$parent; continue } else if (currentRecursiveSequence > 0) { tree[tree.length - 1] = [last, currentRecursiveSequence]; currentRecursiveSequence = 0; } } tree.push(vm); vm = vm.$parent; } return '\n\nfound in\n\n' + tree .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") : formatComponentName(vm))); }) .join('\n') } else { return ("\n\n(found in " + (formatComponentName(vm)) + ")") } }; } /* */ var uid = 0; /** * A dep is an observable that can have multiple * directives subscribing to it. */ var Dep = function Dep () { this.id = uid++; this.subs = []; }; Dep.prototype.addSub = function addSub (sub) { this.subs.push(sub); }; Dep.prototype.removeSub = function removeSub (sub) { remove(this.subs, sub); }; Dep.prototype.depend = function depend () { if (Dep.target) { Dep.target.addDep(this); } }; Dep.prototype.notify = function notify () { // stabilize the subscriber list first var subs = this.subs.slice(); if (false) { // subs aren't sorted in scheduler if not running async // we need to sort them now to make sure they fire in correct // order subs.sort(function (a, b) { return a.id - b.id; }); } for (var i = 0, l = subs.length; i < l; i++) { subs[i].update(); } }; // The current target watcher being evaluated. // This is globally unique because only one watcher // can be evaluated at a time. Dep.target = null; var targetStack = []; function pushTarget (target) { targetStack.push(target); Dep.target = target; } function popTarget () { targetStack.pop(); Dep.target = targetStack[targetStack.length - 1]; } /* */ var VNode = function VNode ( tag, data, children, text, elm, context, componentOptions, asyncFactory ) { this.tag = tag; this.data = data; this.children = children; this.text = text; this.elm = elm; this.ns = undefined; this.context = context; this.fnContext = undefined; this.fnOptions = undefined; this.fnScopeId = undefined; this.key = data && data.key; this.componentOptions = componentOptions; this.componentInstance = undefined; this.parent = undefined; this.raw = false; this.isStatic = false; this.isRootInsert = true; this.isComment = false; this.isCloned = false; this.isOnce = false; this.asyncFactory = asyncFactory; this.asyncMeta = undefined; this.isAsyncPlaceholder = false; }; var prototypeAccessors = { child: { configurable: true } }; // DEPRECATED: alias for componentInstance for backwards compat. /* istanbul ignore next */ prototypeAccessors.child.get = function () { return this.componentInstance }; Object.defineProperties( VNode.prototype, prototypeAccessors ); var createEmptyVNode = function (text) { if ( text === void 0 ) text = ''; var node = new VNode(); node.text = text; node.isComment = true; return node }; function createTextVNode (val) { return new VNode(undefined, undefined, undefined, String(val)) } // optimized shallow clone // used for static nodes and slot nodes because they may be reused across // multiple renders, cloning them avoids errors when DOM manipulations rely // on their elm reference. function cloneVNode (vnode) { var cloned = new VNode( vnode.tag, vnode.data, // #7975 // clone children array to avoid mutating original in case of cloning // a child. vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory ); cloned.ns = vnode.ns; cloned.isStatic = vnode.isStatic; cloned.key = vnode.key; cloned.isComment = vnode.isComment; cloned.fnContext = vnode.fnContext; cloned.fnOptions = vnode.fnOptions; cloned.fnScopeId = vnode.fnScopeId; cloned.asyncMeta = vnode.asyncMeta; cloned.isCloned = true; return cloned } /* * not type checking this file because flow doesn't play well with * dynamically accessing methods on Array prototype */ var arrayProto = Array.prototype; var arrayMethods = Object.create(arrayProto); var methodsToPatch = [ 'push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse' ]; /** * Intercept mutating methods and emit events */ methodsToPatch.forEach(function (method) { // cache original method var original = arrayProto[method]; def(arrayMethods, method, function mutator () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; var result = original.apply(this, args); var ob = this.__ob__; var inserted; switch (method) { case 'push': case 'unshift': inserted = args; break case 'splice': inserted = args.slice(2); break } if (inserted) { ob.observeArray(inserted); } // notify change ob.dep.notify(); return result }); }); /* */ var arrayKeys = Object.getOwnPropertyNames(arrayMethods); /** * In some cases we may want to disable observation inside a component's * update computation. */ var shouldObserve = true; function toggleObserving (value) { shouldObserve = value; } /** * Observer class that is attached to each observed * object. Once attached, the observer converts the target * object's property keys into getter/setters that * collect dependencies and dispatch updates. */ var Observer = function Observer (value) { this.value = value; this.dep = new Dep(); this.vmCount = 0; def(value, '__ob__', this); if (Array.isArray(value)) { if (hasProto) { protoAugment(value, arrayMethods); } else { copyAugment(value, arrayMethods, arrayKeys); } this.observeArray(value); } else { this.walk(value); } }; /** * Walk through all properties and convert them into * getter/setters. This method should only be called when * value type is Object. */ Observer.prototype.walk = function walk (obj) { var keys = Object.keys(obj); for (var i = 0; i < keys.length; i++) { defineReactive$$1(obj, keys[i]); } }; /** * Observe a list of Array items. */ Observer.prototype.observeArray = function observeArray (items) { for (var i = 0, l = items.length; i < l; i++) { observe(items[i]); } }; // helpers /** * Augment a target Object or Array by intercepting * the prototype chain using __proto__ */ function protoAugment (target, src) { /* eslint-disable no-proto */ target.__proto__ = src; /* eslint-enable no-proto */ } /** * Augment a target Object or Array by defining * hidden properties. */ /* istanbul ignore next */ function copyAugment (target, src, keys) { for (var i = 0, l = keys.length; i < l; i++) { var key = keys[i]; def(target, key, src[key]); } } /** * Attempt to create an observer instance for a value, * returns the new observer if successfully observed, * or the existing observer if the value already has one. */ function observe (value, asRootData) { if (!isObject(value) || value instanceof VNode) { return } var ob; if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { ob = value.__ob__; } else if ( shouldObserve && !isServerRendering() && (Array.isArray(value) || isPlainObject(value)) && Object.isExtensible(value) && !value._isVue ) { ob = new Observer(value); } if (asRootData && ob) { ob.vmCount++; } return ob } /** * Define a reactive property on an Object. */ function defineReactive$$1 ( obj, key, val, customSetter, shallow ) { var dep = new Dep(); var property = Object.getOwnPropertyDescriptor(obj, key); if (property && property.configurable === false) { return } // cater for pre-defined getter/setters var getter = property && property.get; var setter = property && property.set; if ((!getter || setter) && arguments.length === 2) { val = obj[key]; } var childOb = !shallow && observe(val); Object.defineProperty(obj, key, { enumerable: true, configurable: true, get: function reactiveGetter () { var value = getter ? getter.call(obj) : val; if (Dep.target) { dep.depend(); if (childOb) { childOb.dep.depend(); if (Array.isArray(value)) { dependArray(value); } } } return value }, set: function reactiveSetter (newVal) { var value = getter ? getter.call(obj) : val; /* eslint-disable no-self-compare */ if (newVal === value || (newVal !== newVal && value !== value)) { return } /* eslint-enable no-self-compare */ if (false) { customSetter(); } // #7981: for accessor properties without setter if (getter && !setter) { return } if (setter) { setter.call(obj, newVal); } else { val = newVal; } childOb = !shallow && observe(newVal); dep.notify(); } }); } /** * Set a property on an object. Adds the new property and * triggers change notification if the property doesn't * already exist. */ function set (target, key, val) { if (false ) { warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); } if (Array.isArray(target) && isValidArrayIndex(key)) { target.length = Math.max(target.length, key); target.splice(key, 1, val); return val } if (key in target && !(key in Object.prototype)) { target[key] = val; return val } var ob = (target).__ob__; if (target._isVue || (ob && ob.vmCount)) { "production" !== 'production' && warn( 'Avoid adding reactive properties to a Vue instance or its root $data ' + 'at runtime - declare it upfront in the data option.' ); return val } if (!ob) { target[key] = val; return val } defineReactive$$1(ob.value, key, val); ob.dep.notify(); return val } /** * Delete a property and trigger change if necessary. */ function del (target, key) { if (false ) { warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); } if (Array.isArray(target) && isValidArrayIndex(key)) { target.splice(key, 1); return } var ob = (target).__ob__; if (target._isVue || (ob && ob.vmCount)) { "production" !== 'production' && warn( 'Avoid deleting properties on a Vue instance or its root $data ' + '- just set it to null.' ); return } if (!hasOwn(target, key)) { return } delete target[key]; if (!ob) { return } ob.dep.notify(); } /** * Collect dependencies on array elements when the array is touched, since * we cannot intercept array element access like property getters. */ function dependArray (value) { for (var e = (void 0), i = 0, l = value.length; i < l; i++) { e = value[i]; e && e.__ob__ && e.__ob__.dep.depend(); if (Array.isArray(e)) { dependArray(e); } } } /* */ /** * Option overwriting strategies are functions that handle * how to merge a parent option value and a child option * value into the final value. */ var strats = config.optionMergeStrategies; /** * Options with restrictions */ if (false) { strats.el = strats.propsData = function (parent, child, vm, key) { if (!vm) { warn( "option \"" + key + "\" can only be used during instance " + 'creation with the `new` keyword.' ); } return defaultStrat(parent, child) }; } /** * Helper that recursively merges two data objects together. */ function mergeData (to, from) { if (!from) { return to } var key, toVal, fromVal; var keys = hasSymbol ? Reflect.ownKeys(from) : Object.keys(from); for (var i = 0; i < keys.length; i++) { key = keys[i]; // in case the object is already observed... if (key === '__ob__') { continue } toVal = to[key]; fromVal = from[key]; if (!hasOwn(to, key)) { set(to, key, fromVal); } else if ( toVal !== fromVal && isPlainObject(toVal) && isPlainObject(fromVal) ) { mergeData(toVal, fromVal); } } return to } /** * Data */ function mergeDataOrFn ( parentVal, childVal, vm ) { if (!vm) { // in a Vue.extend merge, both should be functions if (!childVal) { return parentVal } if (!parentVal) { return childVal } // when parentVal & childVal are both present, // we need to return a function that returns the // merged result of both functions... no need to // check if parentVal is a function here because // it has to be a function to pass previous merges. return function mergedDataFn () { return mergeData( typeof childVal === 'function' ? childVal.call(this, this) : childVal, typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal ) } } else { return function mergedInstanceDataFn () { // instance merge var instanceData = typeof childVal === 'function' ? childVal.call(vm, vm) : childVal; var defaultData = typeof parentVal === 'function' ? parentVal.call(vm, vm) : parentVal; if (instanceData) { return mergeData(instanceData, defaultData) } else { return defaultData } } } } strats.data = function ( parentVal, childVal, vm ) { if (!vm) { if (childVal && typeof childVal !== 'function') { "production" !== 'production' && warn( 'The "data" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm ); return parentVal } return mergeDataOrFn(parentVal, childVal) } return mergeDataOrFn(parentVal, childVal, vm) }; /** * Hooks and props are merged as arrays. */ function mergeHook ( parentVal, childVal ) { var res = childVal ? parentVal ? parentVal.concat(childVal) : Array.isArray(childVal) ? childVal : [childVal] : parentVal; return res ? dedupeHooks(res) : res } function dedupeHooks (hooks) { var res = []; for (var i = 0; i < hooks.length; i++) { if (res.indexOf(hooks[i]) === -1) { res.push(hooks[i]); } } return res } LIFECYCLE_HOOKS.forEach(function (hook) { strats[hook] = mergeHook; }); /** * Assets * * When a vm is present (instance creation), we need to do * a three-way merge between constructor options, instance * options and parent options. */ function mergeAssets ( parentVal, childVal, vm, key ) { var res = Object.create(parentVal || null); if (childVal) { "production" !== 'production' && assertObjectType(key, childVal, vm); return extend(res, childVal) } else { return res } } ASSET_TYPES.forEach(function (type) { strats[type + 's'] = mergeAssets; }); /** * Watchers. * * Watchers hashes should not overwrite one * another, so we merge them as arrays. */ strats.watch = function ( parentVal, childVal, vm, key ) { // work around Firefox's Object.prototype.watch... if (parentVal === nativeWatch) { parentVal = undefined; } if (childVal === nativeWatch) { childVal = undefined; } /* istanbul ignore if */ if (!childVal) { return Object.create(parentVal || null) } if (false) { assertObjectType(key, childVal, vm); } if (!parentVal) { return childVal } var ret = {}; extend(ret, parentVal); for (var key$1 in childVal) { var parent = ret[key$1]; var child = childVal[key$1]; if (parent && !Array.isArray(parent)) { parent = [parent]; } ret[key$1] = parent ? parent.concat(child) : Array.isArray(child) ? child : [child]; } return ret }; /** * Other object hashes. */ strats.props = strats.methods = strats.inject = strats.computed = function ( parentVal, childVal, vm, key ) { if (childVal && "production" !== 'production') { assertObjectType(key, childVal, vm); } if (!parentVal) { return childVal } var ret = Object.create(null); extend(ret, parentVal); if (childVal) { extend(ret, childVal); } return ret }; strats.provide = mergeDataOrFn; /** * Default strategy. */ var defaultStrat = function (parentVal, childVal) { return childVal === undefined ? parentVal : childVal }; /** * Validate component names */ function checkComponents (options) { for (var key in options.components) { validateComponentName(key); } } function validateComponentName (name) { if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { warn( 'Invalid component name: "' + name + '". Component names ' + 'should conform to valid custom element name in html5 specification.' ); } if (isBuiltInTag(name) || config.isReservedTag(name)) { warn( 'Do not use built-in or reserved HTML elements as component ' + 'id: ' + name ); } } /** * Ensure all props option syntax are normalized into the * Object-based format. */ function normalizeProps (options, vm) { var props = options.props; if (!props) { return } var res = {}; var i, val, name; if (Array.isArray(props)) { i = props.length; while (i--) { val = props[i]; if (typeof val === 'string') { name = camelize(val); res[name] = { type: null }; } else if (false) { warn('props must be strings when using array syntax.'); } } } else if (isPlainObject(props)) { for (var key in props) { val = props[key]; name = camelize(key); res[name] = isPlainObject(val) ? val : { type: val }; } } else if (false) { warn( "Invalid value for option \"props\": expected an Array or an Object, " + "but got " + (toRawType(props)) + ".", vm ); } options.props = res; } /** * Normalize all injections into Object-based format */ function normalizeInject (options, vm) { var inject = options.inject; if (!inject) { return } var normalized = options.inject = {}; if (Array.isArray(inject)) { for (var i = 0; i < inject.length; i++) { normalized[inject[i]] = { from: inject[i] }; } } else if (isPlainObject(inject)) { for (var key in inject) { var val = inject[key]; normalized[key] = isPlainObject(val) ? extend({ from: key }, val) : { from: val }; } } else if (false) { warn( "Invalid value for option \"inject\": expected an Array or an Object, " + "but got " + (toRawType(inject)) + ".", vm ); } } /** * Normalize raw function directives into object format. */ function normalizeDirectives (options) { var dirs = options.directives; if (dirs) { for (var key in dirs) { var def$$1 = dirs[key]; if (typeof def$$1 === 'function') { dirs[key] = { bind: def$$1, update: def$$1 }; } } } } function assertObjectType (name, value, vm) { if (!isPlainObject(value)) { warn( "Invalid value for option \"" + name + "\": expected an Object, " + "but got " + (toRawType(value)) + ".", vm ); } } /** * Merge two option objects into a new one. * Core utility used in both instantiation and inheritance. */ function mergeOptions ( parent, child, vm ) { if (false) { checkComponents(child); } if (typeof child === 'function') { child = child.options; } normalizeProps(child, vm); normalizeInject(child, vm); normalizeDirectives(child); // Apply extends and mixins on the child options, // but only if it is a raw options object that isn't // the result of another mergeOptions call. // Only merged options has the _base property. if (!child._base) { if (child.extends) { parent = mergeOptions(parent, child.extends, vm); } if (child.mixins) { for (var i = 0, l = child.mixins.length; i < l; i++) { parent = mergeOptions(parent, child.mixins[i], vm); } } } var options = {}; var key; for (key in parent) { mergeField(key); } for (key in child) { if (!hasOwn(parent, key)) { mergeField(key); } } function mergeField (key) { var strat = strats[key] || defaultStrat; options[key] = strat(parent[key], child[key], vm, key); } return options } /** * Resolve an asset. * This function is used because child instances need access * to assets defined in its ancestor chain. */ function resolveAsset ( options, type, id, warnMissing ) { /* istanbul ignore if */ if (typeof id !== 'string') { return } var assets = options[type]; // check local registration variations first if (hasOwn(assets, id)) { return assets[id] } var camelizedId = camelize(id); if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } var PascalCaseId = capitalize(camelizedId); if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } // fallback to prototype chain var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; if (false) { warn( 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, options ); } return res } /* */ function validateProp ( key, propOptions, propsData, vm ) { var prop = propOptions[key]; var absent = !hasOwn(propsData, key); var value = propsData[key]; // boolean casting var booleanIndex = getTypeIndex(Boolean, prop.type); if (booleanIndex > -1) { if (absent && !hasOwn(prop, 'default')) { value = false; } else if (value === '' || value === hyphenate(key)) { // only cast empty string / same name to boolean if // boolean has higher priority var stringIndex = getTypeIndex(String, prop.type); if (stringIndex < 0 || booleanIndex < stringIndex) { value = true; } } } // check default value if (value === undefined) { value = getPropDefaultValue(vm, prop, key); // since the default value is a fresh copy, // make sure to observe it. var prevShouldObserve = shouldObserve; toggleObserving(true); observe(value); toggleObserving(prevShouldObserve); } if ( false ) { assertProp(prop, key, value, vm, absent); } return value } /** * Get the default value of a prop. */ function getPropDefaultValue (vm, prop, key) { // no default, return undefined if (!hasOwn(prop, 'default')) { return undefined } var def = prop.default; // warn against non-factory defaults for Object & Array if (false) { warn( 'Invalid default value for prop "' + key + '": ' + 'Props with type Object/Array must use a factory function ' + 'to return the default value.', vm ); } // the raw prop value was also undefined from previous render, // return previous default value to avoid unnecessary watcher trigger if (vm && vm.$options.propsData && vm.$options.propsData[key] === undefined && vm._props[key] !== undefined ) { return vm._props[key] } // call factory function for non-Function types // a value is Function if its prototype is function even across different execution context return typeof def === 'function' && getType(prop.type) !== 'Function' ? def.call(vm) : def } /** * Assert whether a prop is valid. */ function assertProp ( prop, name, value, vm, absent ) { if (prop.required && absent) { warn( 'Missing required prop: "' + name + '"', vm ); return } if (value == null && !prop.required) { return } var type = prop.type; var valid = !type || type === true; var expectedTypes = []; if (type) { if (!Array.isArray(type)) { type = [type]; } for (var i = 0; i < type.length && !valid; i++) { var assertedType = assertType(value, type[i], vm); expectedTypes.push(assertedType.expectedType || ''); valid = assertedType.valid; } } var haveExpectedTypes = expectedTypes.some(function (t) { return t; }); if (!valid && haveExpectedTypes) { warn( getInvalidTypeMessage(name, value, expectedTypes), vm ); return } var validator = prop.validator; if (validator) { if (!validator(value)) { warn( 'Invalid prop: custom validator check failed for prop "' + name + '".', vm ); } } } var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/; function assertType (value, type, vm) { var valid; var expectedType = getType(type); if (simpleCheckRE.test(expectedType)) { var t = typeof value; valid = t === expectedType.toLowerCase(); // for primitive wrapper objects if (!valid && t === 'object') { valid = value instanceof type; } } else if (expectedType === 'Object') { valid = isPlainObject(value); } else if (expectedType === 'Array') { valid = Array.isArray(value); } else { try { valid = value instanceof type; } catch (e) { warn('Invalid prop type: "' + String(type) + '" is not a constructor', vm); valid = false; } } return { valid: valid, expectedType: expectedType } } var functionTypeCheckRE = /^\s*function (\w+)/; /** * Use function string name to check built-in types, * because a simple equality check will fail when running * across different vms / iframes. */ function getType (fn) { var match = fn && fn.toString().match(functionTypeCheckRE); return match ? match[1] : '' } function isSameType (a, b) { return getType(a) === getType(b) } function getTypeIndex (type, expectedTypes) { if (!Array.isArray(expectedTypes)) { return isSameType(expectedTypes, type) ? 0 : -1 } for (var i = 0, len = expectedTypes.length; i < len; i++) { if (isSameType(expectedTypes[i], type)) { return i } } return -1 } function getInvalidTypeMessage (name, value, expectedTypes) { var message = "Invalid prop: type check failed for prop \"" + name + "\"." + " Expected " + (expectedTypes.map(capitalize).join(', ')); var expectedType = expectedTypes[0]; var receivedType = toRawType(value); // check if we need to specify expected value if ( expectedTypes.length === 1 && isExplicable(expectedType) && isExplicable(typeof value) && !isBoolean(expectedType, receivedType) ) { message += " with value " + (styleValue(value, expectedType)); } message += ", got " + receivedType + " "; // check if we need to specify received value if (isExplicable(receivedType)) { message += "with value " + (styleValue(value, receivedType)) + "."; } return message } function styleValue (value, type) { if (type === 'String') { return ("\"" + value + "\"") } else if (type === 'Number') { return ("" + (Number(value))) } else { return ("" + value) } } var EXPLICABLE_TYPES = ['string', 'number', 'boolean']; function isExplicable (value) { return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; }) } function isBoolean () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) } /* */ function handleError (err, vm, info) { // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. // See: https://github.com/vuejs/vuex/issues/1505 pushTarget(); try { if (vm) { var cur = vm; while ((cur = cur.$parent)) { var hooks = cur.$options.errorCaptured; if (hooks) { for (var i = 0; i < hooks.length; i++) { try { var capture = hooks[i].call(cur, err, vm, info) === false; if (capture) { return } } catch (e) { globalHandleError(e, cur, 'errorCaptured hook'); } } } } } globalHandleError(err, vm, info); } finally { popTarget(); } } function invokeWithErrorHandling ( handler, context, args, vm, info ) { var res; try { res = args ? handler.apply(context, args) : handler.call(context); if (res && !res._isVue && isPromise(res) && !res._handled) { res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); // issue #9511 // avoid catch triggering multiple times when nested calls res._handled = true; } } catch (e) { handleError(e, vm, info); } return res } function globalHandleError (err, vm, info) { if (config.errorHandler) { try { return config.errorHandler.call(null, err, vm, info) } catch (e) { // if the user intentionally throws the original error in the handler, // do not log it twice if (e !== err) { logError(e, null, 'config.errorHandler'); } } } logError(err, vm, info); } function logError (err, vm, info) { if (false) { warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); } /* istanbul ignore else */ if ((inBrowser || inWeex) && typeof console !== 'undefined') { console.error(err); } else { throw err } } /* */ var isUsingMicroTask = false; var callbacks = []; var pending = false; function flushCallbacks () { pending = false; var copies = callbacks.slice(0); callbacks.length = 0; for (var i = 0; i < copies.length; i++) { copies[i](); } } // Here we have async deferring wrappers using microtasks. // In 2.5 we used (macro) tasks (in combination with microtasks). // However, it has subtle problems when state is changed right before repaint // (e.g. #6813, out-in transitions). // Also, using (macro) tasks in event handler would cause some weird behaviors // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). // So we now use microtasks everywhere, again. // A major drawback of this tradeoff is that there are some scenarios // where microtasks have too high a priority and fire in between supposedly // sequential events (e.g. #4521, #6690, which have workarounds) // or even between bubbling of the same event (#6566). var timerFunc; // The nextTick behavior leverages the microtask queue, which can be accessed // via either native Promise.then or MutationObserver. // MutationObserver has wider support, however it is seriously bugged in // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It // completely stops working after triggering a few times... so, if native // Promise is available, we will use it: /* istanbul ignore next, $flow-disable-line */ if (typeof Promise !== 'undefined' && isNative(Promise)) { var p = Promise.resolve(); timerFunc = function () { p.then(flushCallbacks); // In problematic UIWebViews, Promise.then doesn't completely break, but // it can get stuck in a weird state where callbacks are pushed into the // microtask queue but the queue isn't being flushed, until the browser // needs to do some other work, e.g. handle a timer. Therefore we can // "force" the microtask queue to be flushed by adding an empty timer. if (isIOS) { setTimeout(noop); } }; isUsingMicroTask = true; } else if (!isIE && typeof MutationObserver !== 'undefined' && ( isNative(MutationObserver) || // PhantomJS and iOS 7.x MutationObserver.toString() === '[object MutationObserverConstructor]' )) { // Use MutationObserver where native Promise is not available, // e.g. PhantomJS, iOS7, Android 4.4 // (#6466 MutationObserver is unreliable in IE11) var counter = 1; var observer = new MutationObserver(flushCallbacks); var textNode = document.createTextNode(String(counter)); observer.observe(textNode, { characterData: true }); timerFunc = function () { counter = (counter + 1) % 2; textNode.data = String(counter); }; isUsingMicroTask = true; } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { // Fallback to setImmediate. // Technically it leverages the (macro) task queue, // but it is still a better choice than setTimeout. timerFunc = function () { setImmediate(flushCallbacks); }; } else { // Fallback to setTimeout. timerFunc = function () { setTimeout(flushCallbacks, 0); }; } function nextTick (cb, ctx) { var _resolve; callbacks.push(function () { if (cb) { try { cb.call(ctx); } catch (e) { handleError(e, ctx, 'nextTick'); } } else if (_resolve) { _resolve(ctx); } }); if (!pending) { pending = true; timerFunc(); } // $flow-disable-line if (!cb && typeof Promise !== 'undefined') { return new Promise(function (resolve) { _resolve = resolve; }) } } /* */ var mark; var measure; if (false) { var perf = inBrowser && window.performance; /* istanbul ignore if */ if ( perf && perf.mark && perf.measure && perf.clearMarks && perf.clearMeasures ) { mark = function (tag) { return perf.mark(tag); }; measure = function (name, startTag, endTag) { perf.measure(name, startTag, endTag); perf.clearMarks(startTag); perf.clearMarks(endTag); // perf.clearMeasures(name) }; } } /* not type checking this file because flow doesn't play well with Proxy */ var initProxy; if (false) { var allowedGlobals = makeMap( 'Infinity,undefined,NaN,isFinite,isNaN,' + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' + 'require' // for Webpack/Browserify ); var warnNonPresent = function (target, key) { warn( "Property or method \"" + key + "\" is not defined on the instance but " + 'referenced during render. Make sure that this property is reactive, ' + 'either in the data option, or for class-based components, by ' + 'initializing the property. ' + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target ); }; var warnReservedPrefix = function (target, key) { warn( "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + 'prevent conflicts with Vue internals. ' + 'See: https://vuejs.org/v2/api/#data', target ); }; var hasProxy = typeof Proxy !== 'undefined' && isNative(Proxy); if (hasProxy) { var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); config.keyCodes = new Proxy(config.keyCodes, { set: function set (target, key, value) { if (isBuiltInModifier(key)) { warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); return false } else { target[key] = value; return true } } }); } var hasHandler = { has: function has (target, key) { var has = key in target; var isAllowed = allowedGlobals(key) || (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); if (!has && !isAllowed) { if (key in target.$data) { warnReservedPrefix(target, key); } else { warnNonPresent(target, key); } } return has || !isAllowed } }; var getHandler = { get: function get (target, key) { if (typeof key === 'string' && !(key in target)) { if (key in target.$data) { warnReservedPrefix(target, key); } else { warnNonPresent(target, key); } } return target[key] } }; initProxy = function initProxy (vm) { if (hasProxy) { // determine which proxy handler to use var options = vm.$options; var handlers = options.render && options.render._withStripped ? getHandler : hasHandler; vm._renderProxy = new Proxy(vm, handlers); } else { vm._renderProxy = vm; } }; } /* */ var seenObjects = new _Set(); /** * Recursively traverse an object to evoke all converted * getters, so that every nested property inside the object * is collected as a "deep" dependency. */ function traverse (val) { _traverse(val, seenObjects); seenObjects.clear(); } function _traverse (val, seen) { var i, keys; var isA = Array.isArray(val); if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { return } if (val.__ob__) { var depId = val.__ob__.dep.id; if (seen.has(depId)) { return } seen.add(depId); } if (isA) { i = val.length; while (i--) { _traverse(val[i], seen); } } else { keys = Object.keys(val); i = keys.length; while (i--) { _traverse(val[keys[i]], seen); } } } /* */ var normalizeEvent = cached(function (name) { var passive = name.charAt(0) === '&'; name = passive ? name.slice(1) : name; var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first name = once$$1 ? name.slice(1) : name; var capture = name.charAt(0) === '!'; name = capture ? name.slice(1) : name; return { name: name, once: once$$1, capture: capture, passive: passive } }); function createFnInvoker (fns, vm) { function invoker () { var arguments$1 = arguments; var fns = invoker.fns; if (Array.isArray(fns)) { var cloned = fns.slice(); for (var i = 0; i < cloned.length; i++) { invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); } } else { // return handler return value for single handlers return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") } } invoker.fns = fns; return invoker } function updateListeners ( on, oldOn, add, remove$$1, createOnceHandler, vm ) { var name, def$$1, cur, old, event; for (name in on) { def$$1 = cur = on[name]; old = oldOn[name]; event = normalizeEvent(name); if (isUndef(cur)) { "production" !== 'production' && warn( "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), vm ); } else if (isUndef(old)) { if (isUndef(cur.fns)) { cur = on[name] = createFnInvoker(cur, vm); } if (isTrue(event.once)) { cur = on[name] = createOnceHandler(event.name, cur, event.capture); } add(event.name, cur, event.capture, event.passive, event.params); } else if (cur !== old) { old.fns = cur; on[name] = old; } } for (name in oldOn) { if (isUndef(on[name])) { event = normalizeEvent(name); remove$$1(event.name, oldOn[name], event.capture); } } } /* */ function mergeVNodeHook (def, hookKey, hook) { if (def instanceof VNode) { def = def.data.hook || (def.data.hook = {}); } var invoker; var oldHook = def[hookKey]; function wrappedHook () { hook.apply(this, arguments); // important: remove merged hook to ensure it's called only once // and prevent memory leak remove(invoker.fns, wrappedHook); } if (isUndef(oldHook)) { // no existing hook invoker = createFnInvoker([wrappedHook]); } else { /* istanbul ignore if */ if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { // already a merged invoker invoker = oldHook; invoker.fns.push(wrappedHook); } else { // existing plain hook invoker = createFnInvoker([oldHook, wrappedHook]); } } invoker.merged = true; def[hookKey] = invoker; } /* */ function extractPropsFromVNodeData ( data, Ctor, tag ) { // we are only extracting raw values here. // validation and default values are handled in the child // component itself. var propOptions = Ctor.options.props; if (isUndef(propOptions)) { return } var res = {}; var attrs = data.attrs; var props = data.props; if (isDef(attrs) || isDef(props)) { for (var key in propOptions) { var altKey = hyphenate(key); if (false) { var keyInLowerCase = key.toLowerCase(); if ( key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase) ) { tip( "Prop \"" + keyInLowerCase + "\" is passed to component " + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + " \"" + key + "\". " + "Note that HTML attributes are case-insensitive and camelCased " + "props need to use their kebab-case equivalents when using in-DOM " + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." ); } } checkProp(res, props, key, altKey, true) || checkProp(res, attrs, key, altKey, false); } } return res } function checkProp ( res, hash, key, altKey, preserve ) { if (isDef(hash)) { if (hasOwn(hash, key)) { res[key] = hash[key]; if (!preserve) { delete hash[key]; } return true } else if (hasOwn(hash, altKey)) { res[key] = hash[altKey]; if (!preserve) { delete hash[altKey]; } return true } } return false } /* */ // The template compiler attempts to minimize the need for normalization by // statically analyzing the template at compile time. // // For plain HTML markup, normalization can be completely skipped because the // generated render function is guaranteed to return Array<VNode>. There are // two cases where extra normalization is needed: // 1. When the children contains components - because a functional component // may return an Array instead of a single root. In this case, just a simple // normalization is needed - if any child is an Array, we flatten the whole // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep // because functional components already normalize their own children. function simpleNormalizeChildren (children) { for (var i = 0; i < children.length; i++) { if (Array.isArray(children[i])) { return Array.prototype.concat.apply([], children) } } return children } // 2. When the children contains constructs that always generated nested Arrays, // e.g. <template>, <slot>, v-for, or when the children is provided by user // with hand-written render functions / JSX. In such cases a full normalization // is needed to cater to all possible types of children values. function normalizeChildren (children) { return isPrimitive(children) ? [createTextVNode(children)] : Array.isArray(children) ? normalizeArrayChildren(children) : undefined } function isTextNode (node) { return isDef(node) && isDef(node.text) && isFalse(node.isComment) } function normalizeArrayChildren (children, nestedIndex) { var res = []; var i, c, lastIndex, last; for (i = 0; i < children.length; i++) { c = children[i]; if (isUndef(c) || typeof c === 'boolean') { continue } lastIndex = res.length - 1; last = res[lastIndex]; // nested if (Array.isArray(c)) { if (c.length > 0) { c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i)); // merge adjacent text nodes if (isTextNode(c[0]) && isTextNode(last)) { res[lastIndex] = createTextVNode(last.text + (c[0]).text); c.shift(); } res.push.apply(res, c); } } else if (isPrimitive(c)) { if (isTextNode(last)) { // merge adjacent text nodes // this is necessary for SSR hydration because text nodes are // essentially merged when rendered to HTML strings res[lastIndex] = createTextVNode(last.text + c); } else if (c !== '') { // convert primitive to vnode res.push(createTextVNode(c)); } } else { if (isTextNode(c) && isTextNode(last)) { // merge adjacent text nodes res[lastIndex] = createTextVNode(last.text + c.text); } else { // default key for nested array children (likely generated by v-for) if (isTrue(children._isVList) && isDef(c.tag) && isUndef(c.key) && isDef(nestedIndex)) { c.key = "__vlist" + nestedIndex + "_" + i + "__"; } res.push(c); } } } return res } /* */ function initProvide (vm) { var provide = vm.$options.provide; if (provide) { vm._provided = typeof provide === 'function' ? provide.call(vm) : provide; } } function initInjections (vm) { var result = resolveInject(vm.$options.inject, vm); if (result) { toggleObserving(false); Object.keys(result).forEach(function (key) { /* istanbul ignore else */ if (false) { defineReactive$$1(vm, key, result[key], function () { warn( "Avoid mutating an injected value directly since the changes will be " + "overwritten whenever the provided component re-renders. " + "injection being mutated: \"" + key + "\"", vm ); }); } else { defineReactive$$1(vm, key, result[key]); } }); toggleObserving(true); } } function resolveInject (inject, vm) { if (inject) { // inject is :any because flow is not smart enough to figure out cached var result = Object.create(null); var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject); for (var i = 0; i < keys.length; i++) { var key = keys[i]; // #6574 in case the inject object is observed... if (key === '__ob__') { continue } var provideKey = inject[key].from; var source = vm; while (source) { if (source._provided && hasOwn(source._provided, provideKey)) { result[key] = source._provided[provideKey]; break } source = source.$parent; } if (!source) { if ('default' in inject[key]) { var provideDefault = inject[key].default; result[key] = typeof provideDefault === 'function' ? provideDefault.call(vm) : provideDefault; } else if (false) { warn(("Injection \"" + key + "\" not found"), vm); } } } return result } } /* */ /** * Runtime helper for resolving raw children VNodes into a slot object. */ function resolveSlots ( children, context ) { if (!children || !children.length) { return {} } var slots = {}; for (var i = 0, l = children.length; i < l; i++) { var child = children[i]; var data = child.data; // remove slot attribute if the node is resolved as a Vue slot node if (data && data.attrs && data.attrs.slot) { delete data.attrs.slot; } // named slots should only be respected if the vnode was rendered in the // same context. if ((child.context === context || child.fnContext === context) && data && data.slot != null ) { var name = data.slot; var slot = (slots[name] || (slots[name] = [])); if (child.tag === 'template') { slot.push.apply(slot, child.children || []); } else { slot.push(child); } } else { (slots.default || (slots.default = [])).push(child); } } // ignore slots that contains only whitespace for (var name$1 in slots) { if (slots[name$1].every(isWhitespace)) { delete slots[name$1]; } } return slots } function isWhitespace (node) { return (node.isComment && !node.asyncFactory) || node.text === ' ' } /* */ function isAsyncPlaceholder (node) { return node.isComment && node.asyncFactory } /* */ function normalizeScopedSlots ( slots, normalSlots, prevSlots ) { var res; var hasNormalSlots = Object.keys(normalSlots).length > 0; var isStable = slots ? !!slots.$stable : !hasNormalSlots; var key = slots && slots.$key; if (!slots) { res = {}; } else if (slots._normalized) { // fast path 1: child component re-render only, parent did not change return slots._normalized } else if ( isStable && prevSlots && prevSlots !== emptyObject && key === prevSlots.$key && !hasNormalSlots && !prevSlots.$hasNormal ) { // fast path 2: stable scoped slots w/ no normal slots to proxy, // only need to normalize once return prevSlots } else { res = {}; for (var key$1 in slots) { if (slots[key$1] && key$1[0] !== '$') { res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]); } } } // expose normal slots on scopedSlots for (var key$2 in normalSlots) { if (!(key$2 in res)) { res[key$2] = proxyNormalSlot(normalSlots, key$2); } } // avoriaz seems to mock a non-extensible $scopedSlots object // and when that is passed down this would cause an error if (slots && Object.isExtensible(slots)) { (slots)._normalized = res; } def(res, '$stable', isStable); def(res, '$key', key); def(res, '$hasNormal', hasNormalSlots); return res } function normalizeScopedSlot(normalSlots, key, fn) { var normalized = function () { var res = arguments.length ? fn.apply(null, arguments) : fn({}); res = res && typeof res === 'object' && !Array.isArray(res) ? [res] // single vnode : normalizeChildren(res); var vnode = res && res[0]; return res && ( !vnode || (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode)) // #9658, #10391 ) ? undefined : res }; // this is a slot using the new v-slot syntax without scope. although it is // compiled as a scoped slot, render fn users would expect it to be present // on this.$slots because the usage is semantically a normal slot. if (fn.proxy) { Object.defineProperty(normalSlots, key, { get: normalized, enumerable: true, configurable: true }); } return normalized } function proxyNormalSlot(slots, key) { return function () { return slots[key]; } } /* */ /** * Runtime helper for rendering v-for lists. */ function renderList ( val, render ) { var ret, i, l, keys, key; if (Array.isArray(val) || typeof val === 'string') { ret = new Array(val.length); for (i = 0, l = val.length; i < l; i++) { ret[i] = render(val[i], i); } } else if (typeof val === 'number') { ret = new Array(val); for (i = 0; i < val; i++) { ret[i] = render(i + 1, i); } } else if (isObject(val)) { if (hasSymbol && val[Symbol.iterator]) { ret = []; var iterator = val[Symbol.iterator](); var result = iterator.next(); while (!result.done) { ret.push(render(result.value, ret.length)); result = iterator.next(); } } else { keys = Object.keys(val); ret = new Array(keys.length); for (i = 0, l = keys.length; i < l; i++) { key = keys[i]; ret[i] = render(val[key], key, i); } } } if (!isDef(ret)) { ret = []; } (ret)._isVList = true; return ret } /* */ /** * Runtime helper for rendering <slot> */ function renderSlot ( name, fallbackRender, props, bindObject ) { var scopedSlotFn = this.$scopedSlots[name]; var nodes; if (scopedSlotFn) { // scoped slot props = props || {}; if (bindObject) { if (false) { warn('slot v-bind without argument expects an Object', this); } props = extend(extend({}, bindObject), props); } nodes = scopedSlotFn(props) || (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender); } else { nodes = this.$slots[name] || (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender); } var target = props && props.slot; if (target) { return this.$createElement('template', { slot: target }, nodes) } else { return nodes } } /* */ /** * Runtime helper for resolving filters */ function resolveFilter (id) { return resolveAsset(this.$options, 'filters', id, true) || identity } /* */ function isKeyNotMatch (expect, actual) { if (Array.isArray(expect)) { return expect.indexOf(actual) === -1 } else { return expect !== actual } } /** * Runtime helper for checking keyCodes from config. * exposed as Vue.prototype._k * passing in eventKeyName as last argument separately for backwards compat */ function checkKeyCodes ( eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName ) { var mappedKeyCode = config.keyCodes[key] || builtInKeyCode; if (builtInKeyName && eventKeyName && !config.keyCodes[key]) { return isKeyNotMatch(builtInKeyName, eventKeyName) } else if (mappedKeyCode) { return isKeyNotMatch(mappedKeyCode, eventKeyCode) } else if (eventKeyName) { return hyphenate(eventKeyName) !== key } return eventKeyCode === undefined } /* */ /** * Runtime helper for merging v-bind="object" into a VNode's data. */ function bindObjectProps ( data, tag, value, asProp, isSync ) { if (value) { if (!isObject(value)) { "production" !== 'production' && warn( 'v-bind without argument expects an Object or Array value', this ); } else { if (Array.isArray(value)) { value = toObject(value); } var hash; var loop = function ( key ) { if ( key === 'class' || key === 'style' || isReservedAttribute(key) ) { hash = data; } else { var type = data.attrs && data.attrs.type; hash = asProp || config.mustUseProp(tag, type, key) ? data.domProps || (data.domProps = {}) : data.attrs || (data.attrs = {}); } var camelizedKey = camelize(key); var hyphenatedKey = hyphenate(key); if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) { hash[key] = value[key]; if (isSync) { var on = data.on || (data.on = {}); on[("update:" + key)] = function ($event) { value[key] = $event; }; } } }; for (var key in value) loop( key ); } } return data } /* */ /** * Runtime helper for rendering static trees. */ function renderStatic ( index, isInFor ) { var cached = this._staticTrees || (this._staticTrees = []); var tree = cached[index]; // if has already-rendered static tree and not inside v-for, // we can reuse the same tree. if (tree && !isInFor) { return tree } // otherwise, render a fresh tree. tree = cached[index] = this.$options.staticRenderFns[index].call( this._renderProxy, null, this // for render fns generated for functional component templates ); markStatic(tree, ("__static__" + index), false); return tree } /** * Runtime helper for v-once. * Effectively it means marking the node as static with a unique key. */ function markOnce ( tree, index, key ) { markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true); return tree } function markStatic ( tree, key, isOnce ) { if (Array.isArray(tree)) { for (var i = 0; i < tree.length; i++) { if (tree[i] && typeof tree[i] !== 'string') { markStaticNode(tree[i], (key + "_" + i), isOnce); } } } else { markStaticNode(tree, key, isOnce); } } function markStaticNode (node, key, isOnce) { node.isStatic = true; node.key = key; node.isOnce = isOnce; } /* */ function bindObjectListeners (data, value) { if (value) { if (!isPlainObject(value)) { "production" !== 'production' && warn( 'v-on without argument expects an Object value', this ); } else { var on = data.on = data.on ? extend({}, data.on) : {}; for (var key in value) { var existing = on[key]; var ours = value[key]; on[key] = existing ? [].concat(existing, ours) : ours; } } } return data } /* */ function resolveScopedSlots ( fns, // see flow/vnode res, // the following are added in 2.6 hasDynamicKeys, contentHashKey ) { res = res || { $stable: !hasDynamicKeys }; for (var i = 0; i < fns.length; i++) { var slot = fns[i]; if (Array.isArray(slot)) { resolveScopedSlots(slot, res, hasDynamicKeys); } else if (slot) { // marker for reverse proxying v-slot without scope on this.$slots if (slot.proxy) { slot.fn.proxy = true; } res[slot.key] = slot.fn; } } if (contentHashKey) { (res).$key = contentHashKey; } return res } /* */ function bindDynamicKeys (baseObj, values) { for (var i = 0; i < values.length; i += 2) { var key = values[i]; if (typeof key === 'string' && key) { baseObj[values[i]] = values[i + 1]; } else if (false) { // null is a special value for explicitly removing a binding warn( ("Invalid value for dynamic directive argument (expected string or null): " + key), this ); } } return baseObj } // helper to dynamically append modifier runtime markers to event names. // ensure only append when value is already string, otherwise it will be cast // to string and cause the type check to miss. function prependModifier (value, symbol) { return typeof value === 'string' ? symbol + value : value } /* */ function installRenderHelpers (target) { target._o = markOnce; target._n = toNumber; target._s = toString; target._l = renderList; target._t = renderSlot; target._q = looseEqual; target._i = looseIndexOf; target._m = renderStatic; target._f = resolveFilter; target._k = checkKeyCodes; target._b = bindObjectProps; target._v = createTextVNode; target._e = createEmptyVNode; target._u = resolveScopedSlots; target._g = bindObjectListeners; target._d = bindDynamicKeys; target._p = prependModifier; } /* */ function FunctionalRenderContext ( data, props, children, parent, Ctor ) { var this$1 = this; var options = Ctor.options; // ensure the createElement function in functional components // gets a unique context - this is necessary for correct named slot check var contextVm; if (hasOwn(parent, '_uid')) { contextVm = Object.create(parent); // $flow-disable-line contextVm._original = parent; } else { // the context vm passed in is a functional context as well. // in this case we want to make sure we are able to get a hold to the // real context instance. contextVm = parent; // $flow-disable-line parent = parent._original; } var isCompiled = isTrue(options._compiled); var needNormalization = !isCompiled; this.data = data; this.props = props; this.children = children; this.parent = parent; this.listeners = data.on || emptyObject; this.injections = resolveInject(options.inject, parent); this.slots = function () { if (!this$1.$slots) { normalizeScopedSlots( data.scopedSlots, this$1.$slots = resolveSlots(children, parent) ); } return this$1.$slots }; Object.defineProperty(this, 'scopedSlots', ({ enumerable: true, get: function get () { return normalizeScopedSlots(data.scopedSlots, this.slots()) } })); // support for compiled functional template if (isCompiled) { // exposing $options for renderStatic() this.$options = options; // pre-resolve slots for renderSlot() this.$slots = this.slots(); this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots); } if (options._scopeId) { this._c = function (a, b, c, d) { var vnode = createElement(contextVm, a, b, c, d, needNormalization); if (vnode && !Array.isArray(vnode)) { vnode.fnScopeId = options._scopeId; vnode.fnContext = parent; } return vnode }; } else { this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); }; } } installRenderHelpers(FunctionalRenderContext.prototype); function createFunctionalComponent ( Ctor, propsData, data, contextVm, children ) { var options = Ctor.options; var props = {}; var propOptions = options.props; if (isDef(propOptions)) { for (var key in propOptions) { props[key] = validateProp(key, propOptions, propsData || emptyObject); } } else { if (isDef(data.attrs)) { mergeProps(props, data.attrs); } if (isDef(data.props)) { mergeProps(props, data.props); } } var renderContext = new FunctionalRenderContext( data, props, children, contextVm, Ctor ); var vnode = options.render.call(null, renderContext._c, renderContext); if (vnode instanceof VNode) { return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext) } else if (Array.isArray(vnode)) { var vnodes = normalizeChildren(vnode) || []; var res = new Array(vnodes.length); for (var i = 0; i < vnodes.length; i++) { res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext); } return res } } function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) { // #7817 clone node before setting fnContext, otherwise if the node is reused // (e.g. it was from a cached normal slot) the fnContext causes named slots // that should not be matched to match. var clone = cloneVNode(vnode); clone.fnContext = contextVm; clone.fnOptions = options; if (false) { (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext; } if (data.slot) { (clone.data || (clone.data = {})).slot = data.slot; } return clone } function mergeProps (to, from) { for (var key in from) { to[camelize(key)] = from[key]; } } /* */ /* */ /* */ /* */ // inline hooks to be invoked on component VNodes during patch var componentVNodeHooks = { init: function init (vnode, hydrating) { if ( vnode.componentInstance && !vnode.componentInstance._isDestroyed && vnode.data.keepAlive ) { // kept-alive components, treat as a patch var mountedNode = vnode; // work around flow componentVNodeHooks.prepatch(mountedNode, mountedNode); } else { var child = vnode.componentInstance = createComponentInstanceForVnode( vnode, activeInstance ); child.$mount(hydrating ? vnode.elm : undefined, hydrating); } }, prepatch: function prepatch (oldVnode, vnode) { var options = vnode.componentOptions; var child = vnode.componentInstance = oldVnode.componentInstance; updateChildComponent( child, options.propsData, // updated props options.listeners, // updated listeners vnode, // new parent vnode options.children // new children ); }, insert: function insert (vnode) { var context = vnode.context; var componentInstance = vnode.componentInstance; if (!componentInstance._isMounted) { componentInstance._isMounted = true; callHook(componentInstance, 'mounted'); } if (vnode.data.keepAlive) { if (context._isMounted) { // vue-router#1212 // During updates, a kept-alive component's child components may // change, so directly walking the tree here may call activated hooks // on incorrect children. Instead we push them into a queue which will // be processed after the whole patch process ended. queueActivatedComponent(componentInstance); } else { activateChildComponent(componentInstance, true /* direct */); } } }, destroy: function destroy (vnode) { var componentInstance = vnode.componentInstance; if (!componentInstance._isDestroyed) { if (!vnode.data.keepAlive) { componentInstance.$destroy(); } else { deactivateChildComponent(componentInstance, true /* direct */); } } } }; var hooksToMerge = Object.keys(componentVNodeHooks); function createComponent ( Ctor, data, context, children, tag ) { if (isUndef(Ctor)) { return } var baseCtor = context.$options._base; // plain options object: turn it into a constructor if (isObject(Ctor)) { Ctor = baseCtor.extend(Ctor); } // if at this stage it's not a constructor or an async component factory, // reject. if (typeof Ctor !== 'function') { if (false) { warn(("Invalid Component definition: " + (String(Ctor))), context); } return } // async component var asyncFactory; if (isUndef(Ctor.cid)) { asyncFactory = Ctor; Ctor = resolveAsyncComponent(asyncFactory, baseCtor); if (Ctor === undefined) { // return a placeholder node for async component, which is rendered // as a comment node but preserves all the raw information for the node. // the information will be used for async server-rendering and hydration. return createAsyncPlaceholder( asyncFactory, data, context, children, tag ) } } data = data || {}; // resolve constructor options in case global mixins are applied after // component constructor creation resolveConstructorOptions(Ctor); // transform component v-model data into props & events if (isDef(data.model)) { transformModel(Ctor.options, data); } // extract props var propsData = extractPropsFromVNodeData(data, Ctor, tag); // functional component if (isTrue(Ctor.options.functional)) { return createFunctionalComponent(Ctor, propsData, data, context, children) } // extract listeners, since these needs to be treated as // child component listeners instead of DOM listeners var listeners = data.on; // replace with listeners with .native modifier // so it gets processed during parent component patch. data.on = data.nativeOn; if (isTrue(Ctor.options.abstract)) { // abstract components do not keep anything // other than props & listeners & slot // work around flow var slot = data.slot; data = {}; if (slot) { data.slot = slot; } } // install component management hooks onto the placeholder node installComponentHooks(data); // return a placeholder vnode var name = Ctor.options.name || tag; var vnode = new VNode( ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')), data, undefined, undefined, undefined, context, { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }, asyncFactory ); return vnode } function createComponentInstanceForVnode ( // we know it's MountedComponentVNode but flow doesn't vnode, // activeInstance in lifecycle state parent ) { var options = { _isComponent: true, _parentVnode: vnode, parent: parent }; // check inline-template render functions var inlineTemplate = vnode.data.inlineTemplate; if (isDef(inlineTemplate)) { options.render = inlineTemplate.render; options.staticRenderFns = inlineTemplate.staticRenderFns; } return new vnode.componentOptions.Ctor(options) } function installComponentHooks (data) { var hooks = data.hook || (data.hook = {}); for (var i = 0; i < hooksToMerge.length; i++) { var key = hooksToMerge[i]; var existing = hooks[key]; var toMerge = componentVNodeHooks[key]; if (existing !== toMerge && !(existing && existing._merged)) { hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge; } } } function mergeHook$1 (f1, f2) { var merged = function (a, b) { // flow complains about extra args which is why we use any f1(a, b); f2(a, b); }; merged._merged = true; return merged } // transform component v-model info (value and callback) into // prop and event handler respectively. function transformModel (options, data) { var prop = (options.model && options.model.prop) || 'value'; var event = (options.model && options.model.event) || 'input' ;(data.attrs || (data.attrs = {}))[prop] = data.model.value; var on = data.on || (data.on = {}); var existing = on[event]; var callback = data.model.callback; if (isDef(existing)) { if ( Array.isArray(existing) ? existing.indexOf(callback) === -1 : existing !== callback ) { on[event] = [callback].concat(existing); } } else { on[event] = callback; } } /* */ var SIMPLE_NORMALIZE = 1; var ALWAYS_NORMALIZE = 2; // wrapper function for providing a more flexible interface // without getting yelled at by flow function createElement ( context, tag, data, children, normalizationType, alwaysNormalize ) { if (Array.isArray(data) || isPrimitive(data)) { normalizationType = children; children = data; data = undefined; } if (isTrue(alwaysNormalize)) { normalizationType = ALWAYS_NORMALIZE; } return _createElement(context, tag, data, children, normalizationType) } function _createElement ( context, tag, data, children, normalizationType ) { if (isDef(data) && isDef((data).__ob__)) { "production" !== 'production' && warn( "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" + 'Always create fresh vnode data objects in each render!', context ); return createEmptyVNode() } // object syntax in v-bind if (isDef(data) && isDef(data.is)) { tag = data.is; } if (!tag) { // in case of component :is set to falsy value return createEmptyVNode() } // warn against non-primitive key if (false ) { { warn( 'Avoid using non-primitive value as key, ' + 'use string/number value instead.', context ); } } // support single function children as default scoped slot if (Array.isArray(children) && typeof children[0] === 'function' ) { data = data || {}; data.scopedSlots = { default: children[0] }; children.length = 0; } if (normalizationType === ALWAYS_NORMALIZE) { children = normalizeChildren(children); } else if (normalizationType === SIMPLE_NORMALIZE) { children = simpleNormalizeChildren(children); } var vnode, ns; if (typeof tag === 'string') { var Ctor; ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag); if (config.isReservedTag(tag)) { // platform built-in elements if (false) { warn( ("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."), context ); } vnode = new VNode( config.parsePlatformTagName(tag), data, children, undefined, undefined, context ); } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) { // component vnode = createComponent(Ctor, data, context, children, tag); } else { // unknown or unlisted namespaced elements // check at runtime because it may get assigned a namespace when its // parent normalizes children vnode = new VNode( tag, data, children, undefined, undefined, context ); } } else { // direct component options / constructor vnode = createComponent(tag, data, context, children); } if (Array.isArray(vnode)) { return vnode } else if (isDef(vnode)) { if (isDef(ns)) { applyNS(vnode, ns); } if (isDef(data)) { registerDeepBindings(data); } return vnode } else { return createEmptyVNode() } } function applyNS (vnode, ns, force) { vnode.ns = ns; if (vnode.tag === 'foreignObject') { // use default namespace inside foreignObject ns = undefined; force = true; } if (isDef(vnode.children)) { for (var i = 0, l = vnode.children.length; i < l; i++) { var child = vnode.children[i]; if (isDef(child.tag) && ( isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) { applyNS(child, ns, force); } } } } // ref #5318 // necessary to ensure parent re-render when deep bindings like :style and // :class are used on slot nodes function registerDeepBindings (data) { if (isObject(data.style)) { traverse(data.style); } if (isObject(data.class)) { traverse(data.class); } } /* */ function initRender (vm) { vm._vnode = null; // the root of the child tree vm._staticTrees = null; // v-once cached trees var options = vm.$options; var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree var renderContext = parentVnode && parentVnode.context; vm.$slots = resolveSlots(options._renderChildren, renderContext); vm.$scopedSlots = emptyObject; // bind the createElement fn to this instance // so that we get proper render context inside it. // args order: tag, data, children, normalizationType, alwaysNormalize // internal version is used by render functions compiled from templates vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); }; // normalization is always applied for the public version, used in // user-written render functions. vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); }; // $attrs & $listeners are exposed for easier HOC creation. // they need to be reactive so that HOCs using them are always updated var parentData = parentVnode && parentVnode.data; /* istanbul ignore else */ if (false) { defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () { !isUpdatingChildComponent && warn("$attrs is readonly.", vm); }, true); defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () { !isUpdatingChildComponent && warn("$listeners is readonly.", vm); }, true); } else { defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true); defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true); } } var currentRenderingInstance = null; function renderMixin (Vue) { // install runtime convenience helpers installRenderHelpers(Vue.prototype); Vue.prototype.$nextTick = function (fn) { return nextTick(fn, this) }; Vue.prototype._render = function () { var vm = this; var ref = vm.$options; var render = ref.render; var _parentVnode = ref._parentVnode; if (_parentVnode) { vm.$scopedSlots = normalizeScopedSlots( _parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots ); } // set parent vnode. this allows render functions to have access // to the data on the placeholder node. vm.$vnode = _parentVnode; // render self var vnode; try { // There's no need to maintain a stack because all render fns are called // separately from one another. Nested component's render fns are called // when parent component is patched. currentRenderingInstance = vm; vnode = render.call(vm._renderProxy, vm.$createElement); } catch (e) { handleError(e, vm, "render"); // return error render result, // or previous vnode to prevent render error causing blank component /* istanbul ignore else */ if (false) { try { vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e); } catch (e) { handleError(e, vm, "renderError"); vnode = vm._vnode; } } else { vnode = vm._vnode; } } finally { currentRenderingInstance = null; } // if the returned array contains only a single node, allow it if (Array.isArray(vnode) && vnode.length === 1) { vnode = vnode[0]; } // return empty vnode in case the render function errored out if (!(vnode instanceof VNode)) { if (false) { warn( 'Multiple root nodes returned from render function. Render function ' + 'should return a single root node.', vm ); } vnode = createEmptyVNode(); } // set parent vnode.parent = _parentVnode; return vnode }; } /* */ function ensureCtor (comp, base) { if ( comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module') ) { comp = comp.default; } return isObject(comp) ? base.extend(comp) : comp } function createAsyncPlaceholder ( factory, data, context, children, tag ) { var node = createEmptyVNode(); node.asyncFactory = factory; node.asyncMeta = { data: data, context: context, children: children, tag: tag }; return node } function resolveAsyncComponent ( factory, baseCtor ) { if (isTrue(factory.error) && isDef(factory.errorComp)) { return factory.errorComp } if (isDef(factory.resolved)) { return factory.resolved } var owner = currentRenderingInstance; if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) { // already pending factory.owners.push(owner); } if (isTrue(factory.loading) && isDef(factory.loadingComp)) { return factory.loadingComp } if (owner && !isDef(factory.owners)) { var owners = factory.owners = [owner]; var sync = true; var timerLoading = null; var timerTimeout = null ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); }); var forceRender = function (renderCompleted) { for (var i = 0, l = owners.length; i < l; i++) { (owners[i]).$forceUpdate(); } if (renderCompleted) { owners.length = 0; if (timerLoading !== null) { clearTimeout(timerLoading); timerLoading = null; } if (timerTimeout !== null) { clearTimeout(timerTimeout); timerTimeout = null; } } }; var resolve = once(function (res) { // cache resolved factory.resolved = ensureCtor(res, baseCtor); // invoke callbacks only if this is not a synchronous resolve // (async resolves are shimmed as synchronous during SSR) if (!sync) { forceRender(true); } else { owners.length = 0; } }); var reject = once(function (reason) { "production" !== 'production' && warn( "Failed to resolve async component: " + (String(factory)) + (reason ? ("\nReason: " + reason) : '') ); if (isDef(factory.errorComp)) { factory.error = true; forceRender(true); } }); var res = factory(resolve, reject); if (isObject(res)) { if (isPromise(res)) { // () => Promise if (isUndef(factory.resolved)) { res.then(resolve, reject); } } else if (isPromise(res.component)) { res.component.then(resolve, reject); if (isDef(res.error)) { factory.errorComp = ensureCtor(res.error, baseCtor); } if (isDef(res.loading)) { factory.loadingComp = ensureCtor(res.loading, baseCtor); if (res.delay === 0) { factory.loading = true; } else { timerLoading = setTimeout(function () { timerLoading = null; if (isUndef(factory.resolved) && isUndef(factory.error)) { factory.loading = true; forceRender(false); } }, res.delay || 200); } } if (isDef(res.timeout)) { timerTimeout = setTimeout(function () { timerTimeout = null; if (isUndef(factory.resolved)) { reject( false ? ("timeout (" + (res.timeout) + "ms)") : null ); } }, res.timeout); } } } sync = false; // return in case resolved synchronously return factory.loading ? factory.loadingComp : factory.resolved } } /* */ function getFirstComponentChild (children) { if (Array.isArray(children)) { for (var i = 0; i < children.length; i++) { var c = children[i]; if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) { return c } } } } /* */ /* */ function initEvents (vm) { vm._events = Object.create(null); vm._hasHookEvent = false; // init parent attached events var listeners = vm.$options._parentListeners; if (listeners) { updateComponentListeners(vm, listeners); } } var target; function add (event, fn) { target.$on(event, fn); } function remove$1 (event, fn) { target.$off(event, fn); } function createOnceHandler (event, fn) { var _target = target; return function onceHandler () { var res = fn.apply(null, arguments); if (res !== null) { _target.$off(event, onceHandler); } } } function updateComponentListeners ( vm, listeners, oldListeners ) { target = vm; updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm); target = undefined; } function eventsMixin (Vue) { var hookRE = /^hook:/; Vue.prototype.$on = function (event, fn) { var vm = this; if (Array.isArray(event)) { for (var i = 0, l = event.length; i < l; i++) { vm.$on(event[i], fn); } } else { (vm._events[event] || (vm._events[event] = [])).push(fn); // optimize hook:event cost by using a boolean flag marked at registration // instead of a hash lookup if (hookRE.test(event)) { vm._hasHookEvent = true; } } return vm }; Vue.prototype.$once = function (event, fn) { var vm = this; function on () { vm.$off(event, on); fn.apply(vm, arguments); } on.fn = fn; vm.$on(event, on); return vm }; Vue.prototype.$off = function (event, fn) { var vm = this; // all if (!arguments.length) { vm._events = Object.create(null); return vm } // array of events if (Array.isArray(event)) { for (var i$1 = 0, l = event.length; i$1 < l; i$1++) { vm.$off(event[i$1], fn); } return vm } // specific event var cbs = vm._events[event]; if (!cbs) { return vm } if (!fn) { vm._events[event] = null; return vm } // specific handler var cb; var i = cbs.length; while (i--) { cb = cbs[i]; if (cb === fn || cb.fn === fn) { cbs.splice(i, 1); break } } return vm }; Vue.prototype.$emit = function (event) { var vm = this; if (false) { var lowerCaseEvent = event.toLowerCase(); if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) { tip( "Event \"" + lowerCaseEvent + "\" is emitted in component " + (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " + "Note that HTML attributes are case-insensitive and you cannot use " + "v-on to listen to camelCase events when using in-DOM templates. " + "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"." ); } } var cbs = vm._events[event]; if (cbs) { cbs = cbs.length > 1 ? toArray(cbs) : cbs; var args = toArray(arguments, 1); var info = "event handler for \"" + event + "\""; for (var i = 0, l = cbs.length; i < l; i++) { invokeWithErrorHandling(cbs[i], vm, args, vm, info); } } return vm }; } /* */ var activeInstance = null; var isUpdatingChildComponent = false; function setActiveInstance(vm) { var prevActiveInstance = activeInstance; activeInstance = vm; return function () { activeInstance = prevActiveInstance; } } function initLifecycle (vm) { var options = vm.$options; // locate first non-abstract parent var parent = options.parent; if (parent && !options.abstract) { while (parent.$options.abstract && parent.$parent) { parent = parent.$parent; } parent.$children.push(vm); } vm.$parent = parent; vm.$root = parent ? parent.$root : vm; vm.$children = []; vm.$refs = {}; vm._watcher = null; vm._inactive = null; vm._directInactive = false; vm._isMounted = false; vm._isDestroyed = false; vm._isBeingDestroyed = false; } function lifecycleMixin (Vue) { Vue.prototype._update = function (vnode, hydrating) { var vm = this; var prevEl = vm.$el; var prevVnode = vm._vnode; var restoreActiveInstance = setActiveInstance(vm); vm._vnode = vnode; // Vue.prototype.__patch__ is injected in entry points // based on the rendering backend used. if (!prevVnode) { // initial render vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */); } else { // updates vm.$el = vm.__patch__(prevVnode, vnode); } restoreActiveInstance(); // update __vue__ reference if (prevEl) { prevEl.__vue__ = null; } if (vm.$el) { vm.$el.__vue__ = vm; } // if parent is an HOC, update its $el as well if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) { vm.$parent.$el = vm.$el; } // updated hook is called by the scheduler to ensure that children are // updated in a parent's updated hook. }; Vue.prototype.$forceUpdate = function () { var vm = this; if (vm._watcher) { vm._watcher.update(); } }; Vue.prototype.$destroy = function () { var vm = this; if (vm._isBeingDestroyed) { return } callHook(vm, 'beforeDestroy'); vm._isBeingDestroyed = true; // remove self from parent var parent = vm.$parent; if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) { remove(parent.$children, vm); } // teardown watchers if (vm._watcher) { vm._watcher.teardown(); } var i = vm._watchers.length; while (i--) { vm._watchers[i].teardown(); } // remove reference from data ob // frozen object may not have observer. if (vm._data.__ob__) { vm._data.__ob__.vmCount--; } // call the last hook... vm._isDestroyed = true; // invoke destroy hooks on current rendered tree vm.__patch__(vm._vnode, null); // fire destroyed hook callHook(vm, 'destroyed'); // turn off all instance listeners. vm.$off(); // remove __vue__ reference if (vm.$el) { vm.$el.__vue__ = null; } // release circular reference (#6759) if (vm.$vnode) { vm.$vnode.parent = null; } }; } function mountComponent ( vm, el, hydrating ) { vm.$el = el; if (!vm.$options.render) { vm.$options.render = createEmptyVNode; if (false) { /* istanbul ignore if */ if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') || vm.$options.el || el) { warn( 'You are using the runtime-only build of Vue where the template ' + 'compiler is not available. Either pre-compile the templates into ' + 'render functions, or use the compiler-included build.', vm ); } else { warn( 'Failed to mount component: template or render function not defined.', vm ); } } } callHook(vm, 'beforeMount'); var updateComponent; /* istanbul ignore if */ if (false) { updateComponent = function () { var name = vm._name; var id = vm._uid; var startTag = "vue-perf-start:" + id; var endTag = "vue-perf-end:" + id; mark(startTag); var vnode = vm._render(); mark(endTag); measure(("vue " + name + " render"), startTag, endTag); mark(startTag); vm._update(vnode, hydrating); mark(endTag); measure(("vue " + name + " patch"), startTag, endTag); }; } else { updateComponent = function () { vm._update(vm._render(), hydrating); }; } // we set this to vm._watcher inside the watcher's constructor // since the watcher's initial patch may call $forceUpdate (e.g. inside child // component's mounted hook), which relies on vm._watcher being already defined new Watcher(vm, updateComponent, noop, { before: function before () { if (vm._isMounted && !vm._isDestroyed) { callHook(vm, 'beforeUpdate'); } } }, true /* isRenderWatcher */); hydrating = false; // manually mounted instance, call mounted on self // mounted is called for render-created child components in its inserted hook if (vm.$vnode == null) { vm._isMounted = true; callHook(vm, 'mounted'); } return vm } function updateChildComponent ( vm, propsData, listeners, parentVnode, renderChildren ) { if (false) { isUpdatingChildComponent = true; } // determine whether component has slot children // we need to do this before overwriting $options._renderChildren. // check if there are dynamic scopedSlots (hand-written or compiled but with // dynamic slot names). Static scoped slots compiled from template has the // "$stable" marker. var newScopedSlots = parentVnode.data.scopedSlots; var oldScopedSlots = vm.$scopedSlots; var hasDynamicScopedSlot = !!( (newScopedSlots && !newScopedSlots.$stable) || (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) || (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) || (!newScopedSlots && vm.$scopedSlots.$key) ); // Any static slot children from the parent may have changed during parent's // update. Dynamic scoped slots may also have changed. In such cases, a forced // update is necessary to ensure correctness. var needsForceUpdate = !!( renderChildren || // has new static slots vm.$options._renderChildren || // has old static slots hasDynamicScopedSlot ); vm.$options._parentVnode = parentVnode; vm.$vnode = parentVnode; // update vm's placeholder node without re-render if (vm._vnode) { // update child tree's parent vm._vnode.parent = parentVnode; } vm.$options._renderChildren = renderChildren; // update $attrs and $listeners hash // these are also reactive so they may trigger child update if the child // used them during render vm.$attrs = parentVnode.data.attrs || emptyObject; vm.$listeners = listeners || emptyObject; // update props if (propsData && vm.$options.props) { toggleObserving(false); var props = vm._props; var propKeys = vm.$options._propKeys || []; for (var i = 0; i < propKeys.length; i++) { var key = propKeys[i]; var propOptions = vm.$options.props; // wtf flow? props[key] = validateProp(key, propOptions, propsData, vm); } toggleObserving(true); // keep a copy of raw propsData vm.$options.propsData = propsData; } // update listeners listeners = listeners || emptyObject; var oldListeners = vm.$options._parentListeners; vm.$options._parentListeners = listeners; updateComponentListeners(vm, listeners, oldListeners); // resolve slots + force update if has children if (needsForceUpdate) { vm.$slots = resolveSlots(renderChildren, parentVnode.context); vm.$forceUpdate(); } if (false) { isUpdatingChildComponent = false; } } function isInInactiveTree (vm) { while (vm && (vm = vm.$parent)) { if (vm._inactive) { return true } } return false } function activateChildComponent (vm, direct) { if (direct) { vm._directInactive = false; if (isInInactiveTree(vm)) { return } } else if (vm._directInactive) { return } if (vm._inactive || vm._inactive === null) { vm._inactive = false; for (var i = 0; i < vm.$children.length; i++) { activateChildComponent(vm.$children[i]); } callHook(vm, 'activated'); } } function deactivateChildComponent (vm, direct) { if (direct) { vm._directInactive = true; if (isInInactiveTree(vm)) { return } } if (!vm._inactive) { vm._inactive = true; for (var i = 0; i < vm.$children.length; i++) { deactivateChildComponent(vm.$children[i]); } callHook(vm, 'deactivated'); } } function callHook (vm, hook) { // #7573 disable dep collection when invoking lifecycle hooks pushTarget(); var handlers = vm.$options[hook]; var info = hook + " hook"; if (handlers) { for (var i = 0, j = handlers.length; i < j; i++) { invokeWithErrorHandling(handlers[i], vm, null, vm, info); } } if (vm._hasHookEvent) { vm.$emit('hook:' + hook); } popTarget(); } /* */ var MAX_UPDATE_COUNT = 100; var queue = []; var activatedChildren = []; var has = {}; var circular = {}; var waiting = false; var flushing = false; var index = 0; /** * Reset the scheduler's state. */ function resetSchedulerState () { index = queue.length = activatedChildren.length = 0; has = {}; if (false) { circular = {}; } waiting = flushing = false; } // Async edge case #6566 requires saving the timestamp when event listeners are // attached. However, calling performance.now() has a perf overhead especially // if the page has thousands of event listeners. Instead, we take a timestamp // every time the scheduler flushes and use that for all event listeners // attached during that flush. var currentFlushTimestamp = 0; // Async edge case fix requires storing an event listener's attach timestamp. var getNow = Date.now; // Determine what event timestamp the browser is using. Annoyingly, the // timestamp can either be hi-res (relative to page load) or low-res // (relative to UNIX epoch), so in order to compare time we have to use the // same timestamp type when saving the flush timestamp. // All IE versions use low-res event timestamps, and have problematic clock // implementations (#9632) if (inBrowser && !isIE) { var performance = window.performance; if ( performance && typeof performance.now === 'function' && getNow() > document.createEvent('Event').timeStamp ) { // if the event timestamp, although evaluated AFTER the Date.now(), is // smaller than it, it means the event is using a hi-res timestamp, // and we need to use the hi-res version for event listener timestamps as // well. getNow = function () { return performance.now(); }; } } /** * Flush both queues and run the watchers. */ function flushSchedulerQueue () { currentFlushTimestamp = getNow(); flushing = true; var watcher, id; // Sort queue before flush. // This ensures that: // 1. Components are updated from parent to child. (because parent is always // created before the child) // 2. A component's user watchers are run before its render watcher (because // user watchers are created before the render watcher) // 3. If a component is destroyed during a parent component's watcher run, // its watchers can be skipped. queue.sort(function (a, b) { return a.id - b.id; }); // do not cache length because more watchers might be pushed // as we run existing watchers for (index = 0; index < queue.length; index++) { watcher = queue[index]; if (watcher.before) { watcher.before(); } id = watcher.id; has[id] = null; watcher.run(); // in dev build, check and stop circular updates. if (false) { circular[id] = (circular[id] || 0) + 1; if (circular[id] > MAX_UPDATE_COUNT) { warn( 'You may have an infinite update loop ' + ( watcher.user ? ("in watcher with expression \"" + (watcher.expression) + "\"") : "in a component render function." ), watcher.vm ); break } } } // keep copies of post queues before resetting state var activatedQueue = activatedChildren.slice(); var updatedQueue = queue.slice(); resetSchedulerState(); // call component updated and activated hooks callActivatedHooks(activatedQueue); callUpdatedHooks(updatedQueue); // devtool hook /* istanbul ignore if */ if (devtools && config.devtools) { devtools.emit('flush'); } } function callUpdatedHooks (queue) { var i = queue.length; while (i--) { var watcher = queue[i]; var vm = watcher.vm; if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) { callHook(vm, 'updated'); } } } /** * Queue a kept-alive component that was activated during patch. * The queue will be processed after the entire tree has been patched. */ function queueActivatedComponent (vm) { // setting _inactive to false here so that a render function can // rely on checking whether it's in an inactive tree (e.g. router-view) vm._inactive = false; activatedChildren.push(vm); } function callActivatedHooks (queue) { for (var i = 0; i < queue.length; i++) { queue[i]._inactive = true; activateChildComponent(queue[i], true /* true */); } } /** * Push a watcher into the watcher queue. * Jobs with duplicate IDs will be skipped unless it's * pushed when the queue is being flushed. */ function queueWatcher (watcher) { var id = watcher.id; if (has[id] == null) { has[id] = true; if (!flushing) { queue.push(watcher); } else { // if already flushing, splice the watcher based on its id // if already past its id, it will be run next immediately. var i = queue.length - 1; while (i > index && queue[i].id > watcher.id) { i--; } queue.splice(i + 1, 0, watcher); } // queue the flush if (!waiting) { waiting = true; if (false) { flushSchedulerQueue(); return } nextTick(flushSchedulerQueue); } } } /* */ var uid$2 = 0; /** * A watcher parses an expression, collects dependencies, * and fires callback when the expression value changes. * This is used for both the $watch() api and directives. */ var Watcher = function Watcher ( vm, expOrFn, cb, options, isRenderWatcher ) { this.vm = vm; if (isRenderWatcher) { vm._watcher = this; } vm._watchers.push(this); // options if (options) { this.deep = !!options.deep; this.user = !!options.user; this.lazy = !!options.lazy; this.sync = !!options.sync; this.before = options.before; } else { this.deep = this.user = this.lazy = this.sync = false; } this.cb = cb; this.id = ++uid$2; // uid for batching this.active = true; this.dirty = this.lazy; // for lazy watchers this.deps = []; this.newDeps = []; this.depIds = new _Set(); this.newDepIds = new _Set(); this.expression = false ? expOrFn.toString() : ''; // parse expression for getter if (typeof expOrFn === 'function') { this.getter = expOrFn; } else { this.getter = parsePath(expOrFn); if (!this.getter) { this.getter = noop; "production" !== 'production' && warn( "Failed watching path: \"" + expOrFn + "\" " + 'Watcher only accepts simple dot-delimited paths. ' + 'For full control, use a function instead.', vm ); } } this.value = this.lazy ? undefined : this.get(); }; /** * Evaluate the getter, and re-collect dependencies. */ Watcher.prototype.get = function get () { pushTarget(this); var value; var vm = this.vm; try { value = this.getter.call(vm, vm); } catch (e) { if (this.user) { handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\"")); } else { throw e } } finally { // "touch" every property so they are all tracked as // dependencies for deep watching if (this.deep) { traverse(value); } popTarget(); this.cleanupDeps(); } return value }; /** * Add a dependency to this directive. */ Watcher.prototype.addDep = function addDep (dep) { var id = dep.id; if (!this.newDepIds.has(id)) { this.newDepIds.add(id); this.newDeps.push(dep); if (!this.depIds.has(id)) { dep.addSub(this); } } }; /** * Clean up for dependency collection. */ Watcher.prototype.cleanupDeps = function cleanupDeps () { var i = this.deps.length; while (i--) { var dep = this.deps[i]; if (!this.newDepIds.has(dep.id)) { dep.removeSub(this); } } var tmp = this.depIds; this.depIds = this.newDepIds; this.newDepIds = tmp; this.newDepIds.clear(); tmp = this.deps; this.deps = this.newDeps; this.newDeps = tmp; this.newDeps.length = 0; }; /** * Subscriber interface. * Will be called when a dependency changes. */ Watcher.prototype.update = function update () { /* istanbul ignore else */ if (this.lazy) { this.dirty = true; } else if (this.sync) { this.run(); } else { queueWatcher(this); } }; /** * Scheduler job interface. * Will be called by the scheduler. */ Watcher.prototype.run = function run () { if (this.active) { var value = this.get(); if ( value !== this.value || // Deep watchers and watchers on Object/Arrays should fire even // when the value is the same, because the value may // have mutated. isObject(value) || this.deep ) { // set new value var oldValue = this.value; this.value = value; if (this.user) { var info = "callback for watcher \"" + (this.expression) + "\""; invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info); } else { this.cb.call(this.vm, value, oldValue); } } } }; /** * Evaluate the value of the watcher. * This only gets called for lazy watchers. */ Watcher.prototype.evaluate = function evaluate () { this.value = this.get(); this.dirty = false; }; /** * Depend on all deps collected by this watcher. */ Watcher.prototype.depend = function depend () { var i = this.deps.length; while (i--) { this.deps[i].depend(); } }; /** * Remove self from all dependencies' subscriber list. */ Watcher.prototype.teardown = function teardown () { if (this.active) { // remove self from vm's watcher list // this is a somewhat expensive operation so we skip it // if the vm is being destroyed. if (!this.vm._isBeingDestroyed) { remove(this.vm._watchers, this); } var i = this.deps.length; while (i--) { this.deps[i].removeSub(this); } this.active = false; } }; /* */ var sharedPropertyDefinition = { enumerable: true, configurable: true, get: noop, set: noop }; function proxy (target, sourceKey, key) { sharedPropertyDefinition.get = function proxyGetter () { return this[sourceKey][key] }; sharedPropertyDefinition.set = function proxySetter (val) { this[sourceKey][key] = val; }; Object.defineProperty(target, key, sharedPropertyDefinition); } function initState (vm) { vm._watchers = []; var opts = vm.$options; if (opts.props) { initProps(vm, opts.props); } if (opts.methods) { initMethods(vm, opts.methods); } if (opts.data) { initData(vm); } else { observe(vm._data = {}, true /* asRootData */); } if (opts.computed) { initComputed(vm, opts.computed); } if (opts.watch && opts.watch !== nativeWatch) { initWatch(vm, opts.watch); } } function initProps (vm, propsOptions) { var propsData = vm.$options.propsData || {}; var props = vm._props = {}; // cache prop keys so that future props updates can iterate using Array // instead of dynamic object key enumeration. var keys = vm.$options._propKeys = []; var isRoot = !vm.$parent; // root instance props should be converted if (!isRoot) { toggleObserving(false); } var loop = function ( key ) { keys.push(key); var value = validateProp(key, propsOptions, propsData, vm); /* istanbul ignore else */ if (false) { var hyphenatedKey = hyphenate(key); if (isReservedAttribute(hyphenatedKey) || config.isReservedAttr(hyphenatedKey)) { warn( ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."), vm ); } defineReactive$$1(props, key, value, function () { if (!isRoot && !isUpdatingChildComponent) { warn( "Avoid mutating a prop directly since the value will be " + "overwritten whenever the parent component re-renders. " + "Instead, use a data or computed property based on the prop's " + "value. Prop being mutated: \"" + key + "\"", vm ); } }); } else { defineReactive$$1(props, key, value); } // static props are already proxied on the component's prototype // during Vue.extend(). We only need to proxy props defined at // instantiation here. if (!(key in vm)) { proxy(vm, "_props", key); } }; for (var key in propsOptions) loop( key ); toggleObserving(true); } function initData (vm) { var data = vm.$options.data; data = vm._data = typeof data === 'function' ? getData(data, vm) : data || {}; if (!isPlainObject(data)) { data = {}; "production" !== 'production' && warn( 'data functions should return an object:\n' + 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm ); } // proxy data on instance var keys = Object.keys(data); var props = vm.$options.props; var methods = vm.$options.methods; var i = keys.length; while (i--) { var key = keys[i]; if (false) { if (methods && hasOwn(methods, key)) { warn( ("Method \"" + key + "\" has already been defined as a data property."), vm ); } } if (props && hasOwn(props, key)) { "production" !== 'production' && warn( "The data property \"" + key + "\" is already declared as a prop. " + "Use prop default value instead.", vm ); } else if (!isReserved(key)) { proxy(vm, "_data", key); } } // observe data observe(data, true /* asRootData */); } function getData (data, vm) { // #7573 disable dep collection when invoking data getters pushTarget(); try { return data.call(vm, vm) } catch (e) { handleError(e, vm, "data()"); return {} } finally { popTarget(); } } var computedWatcherOptions = { lazy: true }; function initComputed (vm, computed) { // $flow-disable-line var watchers = vm._computedWatchers = Object.create(null); // computed properties are just getters during SSR var isSSR = isServerRendering(); for (var key in computed) { var userDef = computed[key]; var getter = typeof userDef === 'function' ? userDef : userDef.get; if (false) { warn( ("Getter is missing for computed property \"" + key + "\"."), vm ); } if (!isSSR) { // create internal watcher for the computed property. watchers[key] = new Watcher( vm, getter || noop, noop, computedWatcherOptions ); } // component-defined computed properties are already defined on the // component prototype. We only need to define computed properties defined // at instantiation here. if (!(key in vm)) { defineComputed(vm, key, userDef); } else if (false) { if (key in vm.$data) { warn(("The computed property \"" + key + "\" is already defined in data."), vm); } else if (vm.$options.props && key in vm.$options.props) { warn(("The computed property \"" + key + "\" is already defined as a prop."), vm); } else if (vm.$options.methods && key in vm.$options.methods) { warn(("The computed property \"" + key + "\" is already defined as a method."), vm); } } } } function defineComputed ( target, key, userDef ) { var shouldCache = !isServerRendering(); if (typeof userDef === 'function') { sharedPropertyDefinition.get = shouldCache ? createComputedGetter(key) : createGetterInvoker(userDef); sharedPropertyDefinition.set = noop; } else { sharedPropertyDefinition.get = userDef.get ? shouldCache && userDef.cache !== false ? createComputedGetter(key) : createGetterInvoker(userDef.get) : noop; sharedPropertyDefinition.set = userDef.set || noop; } if (false) { sharedPropertyDefinition.set = function () { warn( ("Computed property \"" + key + "\" was assigned to but it has no setter."), this ); }; } Object.defineProperty(target, key, sharedPropertyDefinition); } function createComputedGetter (key) { return function computedGetter () { var watcher = this._computedWatchers && this._computedWatchers[key]; if (watcher) { if (watcher.dirty) { watcher.evaluate(); } if (Dep.target) { watcher.depend(); } return watcher.value } } } function createGetterInvoker(fn) { return function computedGetter () { return fn.call(this, this) } } function initMethods (vm, methods) { var props = vm.$options.props; for (var key in methods) { if (false) { if (typeof methods[key] !== 'function') { warn( "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " + "Did you reference the function correctly?", vm ); } if (props && hasOwn(props, key)) { warn( ("Method \"" + key + "\" has already been defined as a prop."), vm ); } if ((key in vm) && isReserved(key)) { warn( "Method \"" + key + "\" conflicts with an existing Vue instance method. " + "Avoid defining component methods that start with _ or $." ); } } vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm); } } function initWatch (vm, watch) { for (var key in watch) { var handler = watch[key]; if (Array.isArray(handler)) { for (var i = 0; i < handler.length; i++) { createWatcher(vm, key, handler[i]); } } else { createWatcher(vm, key, handler); } } } function createWatcher ( vm, expOrFn, handler, options ) { if (isPlainObject(handler)) { options = handler; handler = handler.handler; } if (typeof handler === 'string') { handler = vm[handler]; } return vm.$watch(expOrFn, handler, options) } function stateMixin (Vue) { // flow somehow has problems with directly declared definition object // when using Object.defineProperty, so we have to procedurally build up // the object here. var dataDef = {}; dataDef.get = function () { return this._data }; var propsDef = {}; propsDef.get = function () { return this._props }; if (false) { dataDef.set = function () { warn( 'Avoid replacing instance root $data. ' + 'Use nested data properties instead.', this ); }; propsDef.set = function () { warn("$props is readonly.", this); }; } Object.defineProperty(Vue.prototype, '$data', dataDef); Object.defineProperty(Vue.prototype, '$props', propsDef); Vue.prototype.$set = set; Vue.prototype.$delete = del; Vue.prototype.$watch = function ( expOrFn, cb, options ) { var vm = this; if (isPlainObject(cb)) { return createWatcher(vm, expOrFn, cb, options) } options = options || {}; options.user = true; var watcher = new Watcher(vm, expOrFn, cb, options); if (options.immediate) { var info = "callback for immediate watcher \"" + (watcher.expression) + "\""; pushTarget(); invokeWithErrorHandling(cb, vm, [watcher.value], vm, info); popTarget(); } return function unwatchFn () { watcher.teardown(); } }; } /* */ var uid$3 = 0; function initMixin (Vue) { Vue.prototype._init = function (options) { var vm = this; // a uid vm._uid = uid$3++; var startTag, endTag; /* istanbul ignore if */ if (false) { startTag = "vue-perf-start:" + (vm._uid); endTag = "vue-perf-end:" + (vm._uid); mark(startTag); } // a flag to avoid this being observed vm._isVue = true; // merge options if (options && options._isComponent) { // optimize internal component instantiation // since dynamic options merging is pretty slow, and none of the // internal component options needs special treatment. initInternalComponent(vm, options); } else { vm.$options = mergeOptions( resolveConstructorOptions(vm.constructor), options || {}, vm ); } /* istanbul ignore else */ if (false) { initProxy(vm); } else { vm._renderProxy = vm; } // expose real self vm._self = vm; initLifecycle(vm); initEvents(vm); initRender(vm); callHook(vm, 'beforeCreate'); initInjections(vm); // resolve injections before data/props initState(vm); initProvide(vm); // resolve provide after data/props callHook(vm, 'created'); /* istanbul ignore if */ if (false) { vm._name = formatComponentName(vm, false); mark(endTag); measure(("vue " + (vm._name) + " init"), startTag, endTag); } if (vm.$options.el) { vm.$mount(vm.$options.el); } }; } function initInternalComponent (vm, options) { var opts = vm.$options = Object.create(vm.constructor.options); // doing this because it's faster than dynamic enumeration. var parentVnode = options._parentVnode; opts.parent = options.parent; opts._parentVnode = parentVnode; var vnodeComponentOptions = parentVnode.componentOptions; opts.propsData = vnodeComponentOptions.propsData; opts._parentListeners = vnodeComponentOptions.listeners; opts._renderChildren = vnodeComponentOptions.children; opts._componentTag = vnodeComponentOptions.tag; if (options.render) { opts.render = options.render; opts.staticRenderFns = options.staticRenderFns; } } function resolveConstructorOptions (Ctor) { var options = Ctor.options; if (Ctor.super) { var superOptions = resolveConstructorOptions(Ctor.super); var cachedSuperOptions = Ctor.superOptions; if (superOptions !== cachedSuperOptions) { // super option changed, // need to resolve new options. Ctor.superOptions = superOptions; // check if there are any late-modified/attached options (#4976) var modifiedOptions = resolveModifiedOptions(Ctor); // update base extend options if (modifiedOptions) { extend(Ctor.extendOptions, modifiedOptions); } options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions); if (options.name) { options.components[options.name] = Ctor; } } } return options } function resolveModifiedOptions (Ctor) { var modified; var latest = Ctor.options; var sealed = Ctor.sealedOptions; for (var key in latest) { if (latest[key] !== sealed[key]) { if (!modified) { modified = {}; } modified[key] = latest[key]; } } return modified } function Vue (options) { if (false ) { warn('Vue is a constructor and should be called with the `new` keyword'); } this._init(options); } initMixin(Vue); stateMixin(Vue); eventsMixin(Vue); lifecycleMixin(Vue); renderMixin(Vue); /* */ function initUse (Vue) { Vue.use = function (plugin) { var installedPlugins = (this._installedPlugins || (this._installedPlugins = [])); if (installedPlugins.indexOf(plugin) > -1) { return this } // additional parameters var args = toArray(arguments, 1); args.unshift(this); if (typeof plugin.install === 'function') { plugin.install.apply(plugin, args); } else if (typeof plugin === 'function') { plugin.apply(null, args); } installedPlugins.push(plugin); return this }; } /* */ function initMixin$1 (Vue) { Vue.mixin = function (mixin) { this.options = mergeOptions(this.options, mixin); return this }; } /* */ function initExtend (Vue) { /** * Each instance constructor, including Vue, has a unique * cid. This enables us to create wrapped "child * constructors" for prototypal inheritance and cache them. */ Vue.cid = 0; var cid = 1; /** * Class inheritance */ Vue.extend = function (extendOptions) { extendOptions = extendOptions || {}; var Super = this; var SuperId = Super.cid; var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {}); if (cachedCtors[SuperId]) { return cachedCtors[SuperId] } var name = extendOptions.name || Super.options.name; if (false) { validateComponentName(name); } var Sub = function VueComponent (options) { this._init(options); }; Sub.prototype = Object.create(Super.prototype); Sub.prototype.constructor = Sub; Sub.cid = cid++; Sub.options = mergeOptions( Super.options, extendOptions ); Sub['super'] = Super; // For props and computed properties, we define the proxy getters on // the Vue instances at extension time, on the extended prototype. This // avoids Object.defineProperty calls for each instance created. if (Sub.options.props) { initProps$1(Sub); } if (Sub.options.computed) { initComputed$1(Sub); } // allow further extension/mixin/plugin usage Sub.extend = Super.extend; Sub.mixin = Super.mixin; Sub.use = Super.use; // create asset registers, so extended classes // can have their private assets too. ASSET_TYPES.forEach(function (type) { Sub[type] = Super[type]; }); // enable recursive self-lookup if (name) { Sub.options.components[name] = Sub; } // keep a reference to the super options at extension time. // later at instantiation we can check if Super's options have // been updated. Sub.superOptions = Super.options; Sub.extendOptions = extendOptions; Sub.sealedOptions = extend({}, Sub.options); // cache constructor cachedCtors[SuperId] = Sub; return Sub }; } function initProps$1 (Comp) { var props = Comp.options.props; for (var key in props) { proxy(Comp.prototype, "_props", key); } } function initComputed$1 (Comp) { var computed = Comp.options.computed; for (var key in computed) { defineComputed(Comp.prototype, key, computed[key]); } } /* */ function initAssetRegisters (Vue) { /** * Create asset registration methods. */ ASSET_TYPES.forEach(function (type) { Vue[type] = function ( id, definition ) { if (!definition) { return this.options[type + 's'][id] } else { /* istanbul ignore if */ if (false) { validateComponentName(id); } if (type === 'component' && isPlainObject(definition)) { definition.name = definition.name || id; definition = this.options._base.extend(definition); } if (type === 'directive' && typeof definition === 'function') { definition = { bind: definition, update: definition }; } this.options[type + 's'][id] = definition; return definition } }; }); } /* */ function getComponentName (opts) { return opts && (opts.Ctor.options.name || opts.tag) } function matches (pattern, name) { if (Array.isArray(pattern)) { return pattern.indexOf(name) > -1 } else if (typeof pattern === 'string') { return pattern.split(',').indexOf(name) > -1 } else if (isRegExp(pattern)) { return pattern.test(name) } /* istanbul ignore next */ return false } function pruneCache (keepAliveInstance, filter) { var cache = keepAliveInstance.cache; var keys = keepAliveInstance.keys; var _vnode = keepAliveInstance._vnode; for (var key in cache) { var entry = cache[key]; if (entry) { var name = entry.name; if (name && !filter(name)) { pruneCacheEntry(cache, key, keys, _vnode); } } } } function pruneCacheEntry ( cache, key, keys, current ) { var entry = cache[key]; if (entry && (!current || entry.tag !== current.tag)) { entry.componentInstance.$destroy(); } cache[key] = null; remove(keys, key); } var patternTypes = [String, RegExp, Array]; var KeepAlive = { name: 'keep-alive', abstract: true, props: { include: patternTypes, exclude: patternTypes, max: [String, Number] }, methods: { cacheVNode: function cacheVNode() { var ref = this; var cache = ref.cache; var keys = ref.keys; var vnodeToCache = ref.vnodeToCache; var keyToCache = ref.keyToCache; if (vnodeToCache) { var tag = vnodeToCache.tag; var componentInstance = vnodeToCache.componentInstance; var componentOptions = vnodeToCache.componentOptions; cache[keyToCache] = { name: getComponentName(componentOptions), tag: tag, componentInstance: componentInstance, }; keys.push(keyToCache); // prune oldest entry if (this.max && keys.length > parseInt(this.max)) { pruneCacheEntry(cache, keys[0], keys, this._vnode); } this.vnodeToCache = null; } } }, created: function created () { this.cache = Object.create(null); this.keys = []; }, destroyed: function destroyed () { for (var key in this.cache) { pruneCacheEntry(this.cache, key, this.keys); } }, mounted: function mounted () { var this$1 = this; this.cacheVNode(); this.$watch('include', function (val) { pruneCache(this$1, function (name) { return matches(val, name); }); }); this.$watch('exclude', function (val) { pruneCache(this$1, function (name) { return !matches(val, name); }); }); }, updated: function updated () { this.cacheVNode(); }, render: function render () { var slot = this.$slots.default; var vnode = getFirstComponentChild(slot); var componentOptions = vnode && vnode.componentOptions; if (componentOptions) { // check pattern var name = getComponentName(componentOptions); var ref = this; var include = ref.include; var exclude = ref.exclude; if ( // not included (include && (!name || !matches(include, name))) || // excluded (exclude && name && matches(exclude, name)) ) { return vnode } var ref$1 = this; var cache = ref$1.cache; var keys = ref$1.keys; var key = vnode.key == null // same constructor may get registered as different local components // so cid alone is not enough (#3269) ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '') : vnode.key; if (cache[key]) { vnode.componentInstance = cache[key].componentInstance; // make current key freshest remove(keys, key); keys.push(key); } else { // delay setting the cache until update this.vnodeToCache = vnode; this.keyToCache = key; } vnode.data.keepAlive = true; } return vnode || (slot && slot[0]) } }; var builtInComponents = { KeepAlive: KeepAlive }; /* */ function initGlobalAPI (Vue) { // config var configDef = {}; configDef.get = function () { return config; }; if (false) { configDef.set = function () { warn( 'Do not replace the Vue.config object, set individual fields instead.' ); }; } Object.defineProperty(Vue, 'config', configDef); // exposed util methods. // NOTE: these are not considered part of the public API - avoid relying on // them unless you are aware of the risk. Vue.util = { warn: warn, extend: extend, mergeOptions: mergeOptions, defineReactive: defineReactive$$1 }; Vue.set = set; Vue.delete = del; Vue.nextTick = nextTick; // 2.6 explicit observable API Vue.observable = function (obj) { observe(obj); return obj }; Vue.options = Object.create(null); ASSET_TYPES.forEach(function (type) { Vue.options[type + 's'] = Object.create(null); }); // this is used to identify the "base" constructor to extend all plain-object // components with in Weex's multi-instance scenarios. Vue.options._base = Vue; extend(Vue.options.components, builtInComponents); initUse(Vue); initMixin$1(Vue); initExtend(Vue); initAssetRegisters(Vue); } initGlobalAPI(Vue); Object.defineProperty(Vue.prototype, '$isServer', { get: isServerRendering }); Object.defineProperty(Vue.prototype, '$ssrContext', { get: function get () { /* istanbul ignore next */ return this.$vnode && this.$vnode.ssrContext } }); // expose FunctionalRenderContext for ssr runtime helper installation Object.defineProperty(Vue, 'FunctionalRenderContext', { value: FunctionalRenderContext }); Vue.version = '2.6.14'; /* */ // these are reserved for web because they are directly compiled away // during template compilation var isReservedAttr = makeMap('style,class'); // attributes that should be using props for binding var acceptValue = makeMap('input,textarea,option,select,progress'); var mustUseProp = function (tag, type, attr) { return ( (attr === 'value' && acceptValue(tag)) && type !== 'button' || (attr === 'selected' && tag === 'option') || (attr === 'checked' && tag === 'input') || (attr === 'muted' && tag === 'video') ) }; var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck'); var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only'); var convertEnumeratedValue = function (key, value) { return isFalsyAttrValue(value) || value === 'false' ? 'false' // allow arbitrary string value for contenteditable : key === 'contenteditable' && isValidContentEditableValue(value) ? value : 'true' }; var isBooleanAttr = makeMap( 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' + 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' + 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' + 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' + 'required,reversed,scoped,seamless,selected,sortable,' + 'truespeed,typemustmatch,visible' ); var xlinkNS = 'http://www.w3.org/1999/xlink'; var isXlink = function (name) { return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink' }; var getXlinkProp = function (name) { return isXlink(name) ? name.slice(6, name.length) : '' }; var isFalsyAttrValue = function (val) { return val == null || val === false }; /* */ function genClassForVnode (vnode) { var data = vnode.data; var parentNode = vnode; var childNode = vnode; while (isDef(childNode.componentInstance)) { childNode = childNode.componentInstance._vnode; if (childNode && childNode.data) { data = mergeClassData(childNode.data, data); } } while (isDef(parentNode = parentNode.parent)) { if (parentNode && parentNode.data) { data = mergeClassData(data, parentNode.data); } } return renderClass(data.staticClass, data.class) } function mergeClassData (child, parent) { return { staticClass: concat(child.staticClass, parent.staticClass), class: isDef(child.class) ? [child.class, parent.class] : parent.class } } function renderClass ( staticClass, dynamicClass ) { if (isDef(staticClass) || isDef(dynamicClass)) { return concat(staticClass, stringifyClass(dynamicClass)) } /* istanbul ignore next */ return '' } function concat (a, b) { return a ? b ? (a + ' ' + b) : a : (b || '') } function stringifyClass (value) { if (Array.isArray(value)) { return stringifyArray(value) } if (isObject(value)) { return stringifyObject(value) } if (typeof value === 'string') { return value } /* istanbul ignore next */ return '' } function stringifyArray (value) { var res = ''; var stringified; for (var i = 0, l = value.length; i < l; i++) { if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') { if (res) { res += ' '; } res += stringified; } } return res } function stringifyObject (value) { var res = ''; for (var key in value) { if (value[key]) { if (res) { res += ' '; } res += key; } } return res } /* */ var namespaceMap = { svg: 'http://www.w3.org/2000/svg', math: 'http://www.w3.org/1998/Math/MathML' }; var isHTMLTag = makeMap( 'html,body,base,head,link,meta,style,title,' + 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' + 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' + 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' + 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' + 'embed,object,param,source,canvas,script,noscript,del,ins,' + 'caption,col,colgroup,table,thead,tbody,td,th,tr,' + 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' + 'output,progress,select,textarea,' + 'details,dialog,menu,menuitem,summary,' + 'content,element,shadow,template,blockquote,iframe,tfoot' ); // this map is intentionally selective, only covering SVG elements that may // contain child elements. var isSVG = makeMap( 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' + 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' + 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true ); var isPreTag = function (tag) { return tag === 'pre'; }; var isReservedTag = function (tag) { return isHTMLTag(tag) || isSVG(tag) }; function getTagNamespace (tag) { if (isSVG(tag)) { return 'svg' } // basic support for MathML // note it doesn't support other MathML elements being component roots if (tag === 'math') { return 'math' } } var unknownElementCache = Object.create(null); function isUnknownElement (tag) { /* istanbul ignore if */ if (!inBrowser) { return true } if (isReservedTag(tag)) { return false } tag = tag.toLowerCase(); /* istanbul ignore if */ if (unknownElementCache[tag] != null) { return unknownElementCache[tag] } var el = document.createElement(tag); if (tag.indexOf('-') > -1) { // http://stackoverflow.com/a/28210364/1070244 return (unknownElementCache[tag] = ( el.constructor === window.HTMLUnknownElement || el.constructor === window.HTMLElement )) } else { return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString())) } } var isTextInputType = makeMap('text,number,password,search,email,tel,url'); /* */ /** * Query an element selector if it's not an element already. */ function query (el) { if (typeof el === 'string') { var selected = document.querySelector(el); if (!selected) { "production" !== 'production' && warn( 'Cannot find element: ' + el ); return document.createElement('div') } return selected } else { return el } } /* */ function createElement$1 (tagName, vnode) { var elm = document.createElement(tagName); if (tagName !== 'select') { return elm } // false or null will remove the attribute but undefined will not if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) { elm.setAttribute('multiple', 'multiple'); } return elm } function createElementNS (namespace, tagName) { return document.createElementNS(namespaceMap[namespace], tagName) } function createTextNode (text) { return document.createTextNode(text) } function createComment (text) { return document.createComment(text) } function insertBefore (parentNode, newNode, referenceNode) { parentNode.insertBefore(newNode, referenceNode); } function removeChild (node, child) { node.removeChild(child); } function appendChild (node, child) { node.appendChild(child); } function parentNode (node) { return node.parentNode } function nextSibling (node) { return node.nextSibling } function tagName (node) { return node.tagName } function setTextContent (node, text) { node.textContent = text; } function setStyleScope (node, scopeId) { node.setAttribute(scopeId, ''); } var nodeOps = /*#__PURE__*/Object.freeze({ createElement: createElement$1, createElementNS: createElementNS, createTextNode: createTextNode, createComment: createComment, insertBefore: insertBefore, removeChild: removeChild, appendChild: appendChild, parentNode: parentNode, nextSibling: nextSibling, tagName: tagName, setTextContent: setTextContent, setStyleScope: setStyleScope }); /* */ var ref = { create: function create (_, vnode) { registerRef(vnode); }, update: function update (oldVnode, vnode) { if (oldVnode.data.ref !== vnode.data.ref) { registerRef(oldVnode, true); registerRef(vnode); } }, destroy: function destroy (vnode) { registerRef(vnode, true); } }; function registerRef (vnode, isRemoval) { var key = vnode.data.ref; if (!isDef(key)) { return } var vm = vnode.context; var ref = vnode.componentInstance || vnode.elm; var refs = vm.$refs; if (isRemoval) { if (Array.isArray(refs[key])) { remove(refs[key], ref); } else if (refs[key] === ref) { refs[key] = undefined; } } else { if (vnode.data.refInFor) { if (!Array.isArray(refs[key])) { refs[key] = [ref]; } else if (refs[key].indexOf(ref) < 0) { // $flow-disable-line refs[key].push(ref); } } else { refs[key] = ref; } } } /** * Virtual DOM patching algorithm based on Snabbdom by * Simon Friis Vindum (@paldepind) * Licensed under the MIT License * https://github.com/paldepind/snabbdom/blob/master/LICENSE * * modified by Evan You (@yyx990803) * * Not type-checking this because this file is perf-critical and the cost * of making flow understand it is not worth it. */ var emptyNode = new VNode('', {}, []); var hooks = ['create', 'activate', 'update', 'remove', 'destroy']; function sameVnode (a, b) { return ( a.key === b.key && a.asyncFactory === b.asyncFactory && ( ( a.tag === b.tag && a.isComment === b.isComment && isDef(a.data) === isDef(b.data) && sameInputType(a, b) ) || ( isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error) ) ) ) } function sameInputType (a, b) { if (a.tag !== 'input') { return true } var i; var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type; var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type; return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB) } function createKeyToOldIdx (children, beginIdx, endIdx) { var i, key; var map = {}; for (i = beginIdx; i <= endIdx; ++i) { key = children[i].key; if (isDef(key)) { map[key] = i; } } return map } function createPatchFunction (backend) { var i, j; var cbs = {}; var modules = backend.modules; var nodeOps = backend.nodeOps; for (i = 0; i < hooks.length; ++i) { cbs[hooks[i]] = []; for (j = 0; j < modules.length; ++j) { if (isDef(modules[j][hooks[i]])) { cbs[hooks[i]].push(modules[j][hooks[i]]); } } } function emptyNodeAt (elm) { return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm) } function createRmCb (childElm, listeners) { function remove$$1 () { if (--remove$$1.listeners === 0) { removeNode(childElm); } } remove$$1.listeners = listeners; return remove$$1 } function removeNode (el) { var parent = nodeOps.parentNode(el); // element may have already been removed due to v-html / v-text if (isDef(parent)) { nodeOps.removeChild(parent, el); } } function isUnknownElement$$1 (vnode, inVPre) { return ( !inVPre && !vnode.ns && !( config.ignoredElements.length && config.ignoredElements.some(function (ignore) { return isRegExp(ignore) ? ignore.test(vnode.tag) : ignore === vnode.tag }) ) && config.isUnknownElement(vnode.tag) ) } var creatingElmInVPre = 0; function createElm ( vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index ) { if (isDef(vnode.elm) && isDef(ownerArray)) { // This vnode was used in a previous render! // now it's used as a new node, overwriting its elm would cause // potential patch errors down the road when it's used as an insertion // reference node. Instead, we clone the node on-demand before creating // associated DOM element for it. vnode = ownerArray[index] = cloneVNode(vnode); } vnode.isRootInsert = !nested; // for transition enter check if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) { return } var data = vnode.data; var children = vnode.children; var tag = vnode.tag; if (isDef(tag)) { if (false) { if (data && data.pre) { creatingElmInVPre++; } if (isUnknownElement$$1(vnode, creatingElmInVPre)) { warn( 'Unknown custom element: <' + tag + '> - did you ' + 'register the component correctly? For recursive components, ' + 'make sure to provide the "name" option.', vnode.context ); } } vnode.elm = vnode.ns ? nodeOps.createElementNS(vnode.ns, tag) : nodeOps.createElement(tag, vnode); setScope(vnode); /* istanbul ignore if */ { createChildren(vnode, children, insertedVnodeQueue); if (isDef(data)) { invokeCreateHooks(vnode, insertedVnodeQueue); } insert(parentElm, vnode.elm, refElm); } if (false) { creatingElmInVPre--; } } else if (isTrue(vnode.isComment)) { vnode.elm = nodeOps.createComment(vnode.text); insert(parentElm, vnode.elm, refElm); } else { vnode.elm = nodeOps.createTextNode(vnode.text); insert(parentElm, vnode.elm, refElm); } } function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) { var i = vnode.data; if (isDef(i)) { var isReactivated = isDef(vnode.componentInstance) && i.keepAlive; if (isDef(i = i.hook) && isDef(i = i.init)) { i(vnode, false /* hydrating */); } // after calling the init hook, if the vnode is a child component // it should've created a child instance and mounted it. the child // component also has set the placeholder vnode's elm. // in that case we can just return the element and be done. if (isDef(vnode.componentInstance)) { initComponent(vnode, insertedVnodeQueue); insert(parentElm, vnode.elm, refElm); if (isTrue(isReactivated)) { reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm); } return true } } } function initComponent (vnode, insertedVnodeQueue) { if (isDef(vnode.data.pendingInsert)) { insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert); vnode.data.pendingInsert = null; } vnode.elm = vnode.componentInstance.$el; if (isPatchable(vnode)) { invokeCreateHooks(vnode, insertedVnodeQueue); setScope(vnode); } else { // empty component root. // skip all element-related modules except for ref (#3455) registerRef(vnode); // make sure to invoke the insert hook insertedVnodeQueue.push(vnode); } } function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) { var i; // hack for #4339: a reactivated component with inner transition // does not trigger because the inner node's created hooks are not called // again. It's not ideal to involve module-specific logic in here but // there doesn't seem to be a better way to do it. var innerNode = vnode; while (innerNode.componentInstance) { innerNode = innerNode.componentInstance._vnode; if (isDef(i = innerNode.data) && isDef(i = i.transition)) { for (i = 0; i < cbs.activate.length; ++i) { cbs.activate[i](emptyNode, innerNode); } insertedVnodeQueue.push(innerNode); break } } // unlike a newly created component, // a reactivated keep-alive component doesn't insert itself insert(parentElm, vnode.elm, refElm); } function insert (parent, elm, ref$$1) { if (isDef(parent)) { if (isDef(ref$$1)) { if (nodeOps.parentNode(ref$$1) === parent) { nodeOps.insertBefore(parent, elm, ref$$1); } } else { nodeOps.appendChild(parent, elm); } } } function createChildren (vnode, children, insertedVnodeQueue) { if (Array.isArray(children)) { if (false) { checkDuplicateKeys(children); } for (var i = 0; i < children.length; ++i) { createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i); } } else if (isPrimitive(vnode.text)) { nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text))); } } function isPatchable (vnode) { while (vnode.componentInstance) { vnode = vnode.componentInstance._vnode; } return isDef(vnode.tag) } function invokeCreateHooks (vnode, insertedVnodeQueue) { for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) { cbs.create[i$1](emptyNode, vnode); } i = vnode.data.hook; // Reuse variable if (isDef(i)) { if (isDef(i.create)) { i.create(emptyNode, vnode); } if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); } } } // set scope id attribute for scoped CSS. // this is implemented as a special case to avoid the overhead // of going through the normal attribute patching process. function setScope (vnode) { var i; if (isDef(i = vnode.fnScopeId)) { nodeOps.setStyleScope(vnode.elm, i); } else { var ancestor = vnode; while (ancestor) { if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) { nodeOps.setStyleScope(vnode.elm, i); } ancestor = ancestor.parent; } } // for slot content they should also get the scopeId from the host instance. if (isDef(i = activeInstance) && i !== vnode.context && i !== vnode.fnContext && isDef(i = i.$options._scopeId) ) { nodeOps.setStyleScope(vnode.elm, i); } } function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) { for (; startIdx <= endIdx; ++startIdx) { createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx); } } function invokeDestroyHook (vnode) { var i, j; var data = vnode.data; if (isDef(data)) { if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); } for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); } } if (isDef(i = vnode.children)) { for (j = 0; j < vnode.children.length; ++j) { invokeDestroyHook(vnode.children[j]); } } } function removeVnodes (vnodes, startIdx, endIdx) { for (; startIdx <= endIdx; ++startIdx) { var ch = vnodes[startIdx]; if (isDef(ch)) { if (isDef(ch.tag)) { removeAndInvokeRemoveHook(ch); invokeDestroyHook(ch); } else { // Text node removeNode(ch.elm); } } } } function removeAndInvokeRemoveHook (vnode, rm) { if (isDef(rm) || isDef(vnode.data)) { var i; var listeners = cbs.remove.length + 1; if (isDef(rm)) { // we have a recursively passed down rm callback // increase the listeners count rm.listeners += listeners; } else { // directly removing rm = createRmCb(vnode.elm, listeners); } // recursively invoke hooks on child component root node if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) { removeAndInvokeRemoveHook(i, rm); } for (i = 0; i < cbs.remove.length; ++i) { cbs.remove[i](vnode, rm); } if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) { i(vnode, rm); } else { rm(); } } else { removeNode(vnode.elm); } } function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) { var oldStartIdx = 0; var newStartIdx = 0; var oldEndIdx = oldCh.length - 1; var oldStartVnode = oldCh[0]; var oldEndVnode = oldCh[oldEndIdx]; var newEndIdx = newCh.length - 1; var newStartVnode = newCh[0]; var newEndVnode = newCh[newEndIdx]; var oldKeyToIdx, idxInOld, vnodeToMove, refElm; // removeOnly is a special flag used only by <transition-group> // to ensure removed elements stay in correct relative positions // during leaving transitions var canMove = !removeOnly; if (false) { checkDuplicateKeys(newCh); } while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) { if (isUndef(oldStartVnode)) { oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left } else if (isUndef(oldEndVnode)) { oldEndVnode = oldCh[--oldEndIdx]; } else if (sameVnode(oldStartVnode, newStartVnode)) { patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx); oldStartVnode = oldCh[++oldStartIdx]; newStartVnode = newCh[++newStartIdx]; } else if (sameVnode(oldEndVnode, newEndVnode)) { patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx); oldEndVnode = oldCh[--oldEndIdx]; newEndVnode = newCh[--newEndIdx]; } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx); canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm)); oldStartVnode = oldCh[++oldStartIdx]; newEndVnode = newCh[--newEndIdx]; } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx); canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm); oldEndVnode = oldCh[--oldEndIdx]; newStartVnode = newCh[++newStartIdx]; } else { if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); } idxInOld = isDef(newStartVnode.key) ? oldKeyToIdx[newStartVnode.key] : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx); if (isUndef(idxInOld)) { // New element createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx); } else { vnodeToMove = oldCh[idxInOld]; if (sameVnode(vnodeToMove, newStartVnode)) { patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx); oldCh[idxInOld] = undefined; canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm); } else { // same key but different element. treat as new element createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx); } } newStartVnode = newCh[++newStartIdx]; } } if (oldStartIdx > oldEndIdx) { refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm; addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue); } else if (newStartIdx > newEndIdx) { removeVnodes(oldCh, oldStartIdx, oldEndIdx); } } function checkDuplicateKeys (children) { var seenKeys = {}; for (var i = 0; i < children.length; i++) { var vnode = children[i]; var key = vnode.key; if (isDef(key)) { if (seenKeys[key]) { warn( ("Duplicate keys detected: '" + key + "'. This may cause an update error."), vnode.context ); } else { seenKeys[key] = true; } } } } function findIdxInOld (node, oldCh, start, end) { for (var i = start; i < end; i++) { var c = oldCh[i]; if (isDef(c) && sameVnode(node, c)) { return i } } } function patchVnode ( oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly ) { if (oldVnode === vnode) { return } if (isDef(vnode.elm) && isDef(ownerArray)) { // clone reused vnode vnode = ownerArray[index] = cloneVNode(vnode); } var elm = vnode.elm = oldVnode.elm; if (isTrue(oldVnode.isAsyncPlaceholder)) { if (isDef(vnode.asyncFactory.resolved)) { hydrate(oldVnode.elm, vnode, insertedVnodeQueue); } else { vnode.isAsyncPlaceholder = true; } return } // reuse element for static trees. // note we only do this if the vnode is cloned - // if the new node is not cloned it means the render functions have been // reset by the hot-reload-api and we need to do a proper re-render. if (isTrue(vnode.isStatic) && isTrue(oldVnode.isStatic) && vnode.key === oldVnode.key && (isTrue(vnode.isCloned) || isTrue(vnode.isOnce)) ) { vnode.componentInstance = oldVnode.componentInstance; return } var i; var data = vnode.data; if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) { i(oldVnode, vnode); } var oldCh = oldVnode.children; var ch = vnode.children; if (isDef(data) && isPatchable(vnode)) { for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); } if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); } } if (isUndef(vnode.text)) { if (isDef(oldCh) && isDef(ch)) { if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); } } else if (isDef(ch)) { if (false) { checkDuplicateKeys(ch); } if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); } addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue); } else if (isDef(oldCh)) { removeVnodes(oldCh, 0, oldCh.length - 1); } else if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); } } else if (oldVnode.text !== vnode.text) { nodeOps.setTextContent(elm, vnode.text); } if (isDef(data)) { if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); } } } function invokeInsertHook (vnode, queue, initial) { // delay insert hooks for component root nodes, invoke them after the // element is really inserted if (isTrue(initial) && isDef(vnode.parent)) { vnode.parent.data.pendingInsert = queue; } else { for (var i = 0; i < queue.length; ++i) { queue[i].data.hook.insert(queue[i]); } } } var hydrationBailed = false; // list of modules that can skip create hook during hydration because they // are already rendered on the client or has no need for initialization // Note: style is excluded because it relies on initial clone for future // deep updates (#7063). var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key'); // Note: this is a browser-only function so we can assume elms are DOM nodes. function hydrate (elm, vnode, insertedVnodeQueue, inVPre) { var i; var tag = vnode.tag; var data = vnode.data; var children = vnode.children; inVPre = inVPre || (data && data.pre); vnode.elm = elm; if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) { vnode.isAsyncPlaceholder = true; return true } // assert node match if (false) { if (!assertNodeMatch(elm, vnode, inVPre)) { return false } } if (isDef(data)) { if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); } if (isDef(i = vnode.componentInstance)) { // child component. it should have hydrated its own tree. initComponent(vnode, insertedVnodeQueue); return true } } if (isDef(tag)) { if (isDef(children)) { // empty element, allow client to pick up and populate children if (!elm.hasChildNodes()) { createChildren(vnode, children, insertedVnodeQueue); } else { // v-html and domProps: innerHTML if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) { if (i !== elm.innerHTML) { /* istanbul ignore if */ if (false ) { hydrationBailed = true; console.warn('Parent: ', elm); console.warn('server innerHTML: ', i); console.warn('client innerHTML: ', elm.innerHTML); } return false } } else { // iterate and compare children lists var childrenMatch = true; var childNode = elm.firstChild; for (var i$1 = 0; i$1 < children.length; i$1++) { if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) { childrenMatch = false; break } childNode = childNode.nextSibling; } // if childNode is not null, it means the actual childNodes list is // longer than the virtual children list. if (!childrenMatch || childNode) { /* istanbul ignore if */ if (false ) { hydrationBailed = true; console.warn('Parent: ', elm); console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children); } return false } } } } if (isDef(data)) { var fullInvoke = false; for (var key in data) { if (!isRenderedModule(key)) { fullInvoke = true; invokeCreateHooks(vnode, insertedVnodeQueue); break } } if (!fullInvoke && data['class']) { // ensure collecting deps for deep class bindings for future updates traverse(data['class']); } } } else if (elm.data !== vnode.text) { elm.data = vnode.text; } return true } function assertNodeMatch (node, vnode, inVPre) { if (isDef(vnode.tag)) { return vnode.tag.indexOf('vue-component') === 0 || ( !isUnknownElement$$1(vnode, inVPre) && vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase()) ) } else { return node.nodeType === (vnode.isComment ? 8 : 3) } } return function patch (oldVnode, vnode, hydrating, removeOnly) { if (isUndef(vnode)) { if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); } return } var isInitialPatch = false; var insertedVnodeQueue = []; if (isUndef(oldVnode)) { // empty mount (likely as component), create new root element isInitialPatch = true; createElm(vnode, insertedVnodeQueue); } else { var isRealElement = isDef(oldVnode.nodeType); if (!isRealElement && sameVnode(oldVnode, vnode)) { // patch existing root node patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly); } else { if (isRealElement) { // mounting to a real element // check if this is server-rendered content and if we can perform // a successful hydration. if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) { oldVnode.removeAttribute(SSR_ATTR); hydrating = true; } if (isTrue(hydrating)) { if (hydrate(oldVnode, vnode, insertedVnodeQueue)) { invokeInsertHook(vnode, insertedVnodeQueue, true); return oldVnode } else if (false) { warn( 'The client-side rendered virtual DOM tree is not matching ' + 'server-rendered content. This is likely caused by incorrect ' + 'HTML markup, for example nesting block-level elements inside ' + '<p>, or missing <tbody>. Bailing hydration and performing ' + 'full client-side render.' ); } } // either not server-rendered, or hydration failed. // create an empty node and replace it oldVnode = emptyNodeAt(oldVnode); } // replacing existing element var oldElm = oldVnode.elm; var parentElm = nodeOps.parentNode(oldElm); // create new node createElm( vnode, insertedVnodeQueue, // extremely rare edge case: do not insert if old element is in a // leaving transition. Only happens when combining transition + // keep-alive + HOCs. (#4590) oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm) ); // update parent placeholder node element, recursively if (isDef(vnode.parent)) { var ancestor = vnode.parent; var patchable = isPatchable(vnode); while (ancestor) { for (var i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](ancestor); } ancestor.elm = vnode.elm; if (patchable) { for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) { cbs.create[i$1](emptyNode, ancestor); } // #6513 // invoke insert hooks that may have been merged by create hooks. // e.g. for directives that uses the "inserted" hook. var insert = ancestor.data.hook.insert; if (insert.merged) { // start at index 1 to avoid re-invoking component mounted hook for (var i$2 = 1; i$2 < insert.fns.length; i$2++) { insert.fns[i$2](); } } } else { registerRef(ancestor); } ancestor = ancestor.parent; } } // destroy old node if (isDef(parentElm)) { removeVnodes([oldVnode], 0, 0); } else if (isDef(oldVnode.tag)) { invokeDestroyHook(oldVnode); } } } invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch); return vnode.elm } } /* */ var directives = { create: updateDirectives, update: updateDirectives, destroy: function unbindDirectives (vnode) { updateDirectives(vnode, emptyNode); } }; function updateDirectives (oldVnode, vnode) { if (oldVnode.data.directives || vnode.data.directives) { _update(oldVnode, vnode); } } function _update (oldVnode, vnode) { var isCreate = oldVnode === emptyNode; var isDestroy = vnode === emptyNode; var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context); var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context); var dirsWithInsert = []; var dirsWithPostpatch = []; var key, oldDir, dir; for (key in newDirs) { oldDir = oldDirs[key]; dir = newDirs[key]; if (!oldDir) { // new directive, bind callHook$1(dir, 'bind', vnode, oldVnode); if (dir.def && dir.def.inserted) { dirsWithInsert.push(dir); } } else { // existing directive, update dir.oldValue = oldDir.value; dir.oldArg = oldDir.arg; callHook$1(dir, 'update', vnode, oldVnode); if (dir.def && dir.def.componentUpdated) { dirsWithPostpatch.push(dir); } } } if (dirsWithInsert.length) { var callInsert = function () { for (var i = 0; i < dirsWithInsert.length; i++) { callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode); } }; if (isCreate) { mergeVNodeHook(vnode, 'insert', callInsert); } else { callInsert(); } } if (dirsWithPostpatch.length) { mergeVNodeHook(vnode, 'postpatch', function () { for (var i = 0; i < dirsWithPostpatch.length; i++) { callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode); } }); } if (!isCreate) { for (key in oldDirs) { if (!newDirs[key]) { // no longer present, unbind callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy); } } } } var emptyModifiers = Object.create(null); function normalizeDirectives$1 ( dirs, vm ) { var res = Object.create(null); if (!dirs) { // $flow-disable-line return res } var i, dir; for (i = 0; i < dirs.length; i++) { dir = dirs[i]; if (!dir.modifiers) { // $flow-disable-line dir.modifiers = emptyModifiers; } res[getRawDirName(dir)] = dir; dir.def = resolveAsset(vm.$options, 'directives', dir.name, true); } // $flow-disable-line return res } function getRawDirName (dir) { return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.'))) } function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) { var fn = dir.def && dir.def[hook]; if (fn) { try { fn(vnode.elm, dir, vnode, oldVnode, isDestroy); } catch (e) { handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook")); } } } var baseModules = [ ref, directives ]; /* */ function updateAttrs (oldVnode, vnode) { var opts = vnode.componentOptions; if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) { return } if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) { return } var key, cur, old; var elm = vnode.elm; var oldAttrs = oldVnode.data.attrs || {}; var attrs = vnode.data.attrs || {}; // clone observed objects, as the user probably wants to mutate it if (isDef(attrs.__ob__)) { attrs = vnode.data.attrs = extend({}, attrs); } for (key in attrs) { cur = attrs[key]; old = oldAttrs[key]; if (old !== cur) { setAttr(elm, key, cur, vnode.data.pre); } } // #4391: in IE9, setting type can reset value for input[type=radio] // #6666: IE/Edge forces progress value down to 1 before setting a max /* istanbul ignore if */ if ((isIE || isEdge) && attrs.value !== oldAttrs.value) { setAttr(elm, 'value', attrs.value); } for (key in oldAttrs) { if (isUndef(attrs[key])) { if (isXlink(key)) { elm.removeAttributeNS(xlinkNS, getXlinkProp(key)); } else if (!isEnumeratedAttr(key)) { elm.removeAttribute(key); } } } } function setAttr (el, key, value, isInPre) { if (isInPre || el.tagName.indexOf('-') > -1) { baseSetAttr(el, key, value); } else if (isBooleanAttr(key)) { // set attribute for blank value // e.g. <option disabled>Select one</option> if (isFalsyAttrValue(value)) { el.removeAttribute(key); } else { // technically allowfullscreen is a boolean attribute for <iframe>, // but Flash expects a value of "true" when used on <embed> tag value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key; el.setAttribute(key, value); } } else if (isEnumeratedAttr(key)) { el.setAttribute(key, convertEnumeratedValue(key, value)); } else if (isXlink(key)) { if (isFalsyAttrValue(value)) { el.removeAttributeNS(xlinkNS, getXlinkProp(key)); } else { el.setAttributeNS(xlinkNS, key, value); } } else { baseSetAttr(el, key, value); } } function baseSetAttr (el, key, value) { if (isFalsyAttrValue(value)) { el.removeAttribute(key); } else { // #7138: IE10 & 11 fires input event when setting placeholder on // <textarea>... block the first input event and remove the blocker // immediately. /* istanbul ignore if */ if ( isIE && !isIE9 && el.tagName === 'TEXTAREA' && key === 'placeholder' && value !== '' && !el.__ieph ) { var blocker = function (e) { e.stopImmediatePropagation(); el.removeEventListener('input', blocker); }; el.addEventListener('input', blocker); // $flow-disable-line el.__ieph = true; /* IE placeholder patched */ } el.setAttribute(key, value); } } var attrs = { create: updateAttrs, update: updateAttrs }; /* */ function updateClass (oldVnode, vnode) { var el = vnode.elm; var data = vnode.data; var oldData = oldVnode.data; if ( isUndef(data.staticClass) && isUndef(data.class) && ( isUndef(oldData) || ( isUndef(oldData.staticClass) && isUndef(oldData.class) ) ) ) { return } var cls = genClassForVnode(vnode); // handle transition classes var transitionClass = el._transitionClasses; if (isDef(transitionClass)) { cls = concat(cls, stringifyClass(transitionClass)); } // set the class if (cls !== el._prevClass) { el.setAttribute('class', cls); el._prevClass = cls; } } var klass = { create: updateClass, update: updateClass }; /* */ var validDivisionCharRE = /[\w).+\-_$\]]/; function parseFilters (exp) { var inSingle = false; var inDouble = false; var inTemplateString = false; var inRegex = false; var curly = 0; var square = 0; var paren = 0; var lastFilterIndex = 0; var c, prev, i, expression, filters; for (i = 0; i < exp.length; i++) { prev = c; c = exp.charCodeAt(i); if (inSingle) { if (c === 0x27 && prev !== 0x5C) { inSingle = false; } } else if (inDouble) { if (c === 0x22 && prev !== 0x5C) { inDouble = false; } } else if (inTemplateString) { if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; } } else if (inRegex) { if (c === 0x2f && prev !== 0x5C) { inRegex = false; } } else if ( c === 0x7C && // pipe exp.charCodeAt(i + 1) !== 0x7C && exp.charCodeAt(i - 1) !== 0x7C && !curly && !square && !paren ) { if (expression === undefined) { // first filter, end of expression lastFilterIndex = i + 1; expression = exp.slice(0, i).trim(); } else { pushFilter(); } } else { switch (c) { case 0x22: inDouble = true; break // " case 0x27: inSingle = true; break // ' case 0x60: inTemplateString = true; break // ` case 0x28: paren++; break // ( case 0x29: paren--; break // ) case 0x5B: square++; break // [ case 0x5D: square--; break // ] case 0x7B: curly++; break // { case 0x7D: curly--; break // } } if (c === 0x2f) { // / var j = i - 1; var p = (void 0); // find first non-whitespace prev char for (; j >= 0; j--) { p = exp.charAt(j); if (p !== ' ') { break } } if (!p || !validDivisionCharRE.test(p)) { inRegex = true; } } } } if (expression === undefined) { expression = exp.slice(0, i).trim(); } else if (lastFilterIndex !== 0) { pushFilter(); } function pushFilter () { (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim()); lastFilterIndex = i + 1; } if (filters) { for (i = 0; i < filters.length; i++) { expression = wrapFilter(expression, filters[i]); } } return expression } function wrapFilter (exp, filter) { var i = filter.indexOf('('); if (i < 0) { // _f: resolveFilter return ("_f(\"" + filter + "\")(" + exp + ")") } else { var name = filter.slice(0, i); var args = filter.slice(i + 1); return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args)) } } /* */ /* eslint-disable no-unused-vars */ function baseWarn (msg, range) { console.error(("[Vue compiler]: " + msg)); } /* eslint-enable no-unused-vars */ function pluckModuleFunction ( modules, key ) { return modules ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; }) : [] } function addProp (el, name, value, range, dynamic) { (el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range)); el.plain = false; } function addAttr (el, name, value, range, dynamic) { var attrs = dynamic ? (el.dynamicAttrs || (el.dynamicAttrs = [])) : (el.attrs || (el.attrs = [])); attrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range)); el.plain = false; } // add a raw attr (use this in preTransforms) function addRawAttr (el, name, value, range) { el.attrsMap[name] = value; el.attrsList.push(rangeSetItem({ name: name, value: value }, range)); } function addDirective ( el, name, rawName, value, arg, isDynamicArg, modifiers, range ) { (el.directives || (el.directives = [])).push(rangeSetItem({ name: name, rawName: rawName, value: value, arg: arg, isDynamicArg: isDynamicArg, modifiers: modifiers }, range)); el.plain = false; } function prependModifierMarker (symbol, name, dynamic) { return dynamic ? ("_p(" + name + ",\"" + symbol + "\")") : symbol + name // mark the event as captured } function addHandler ( el, name, value, modifiers, important, warn, range, dynamic ) { modifiers = modifiers || emptyObject; // warn prevent and passive modifier /* istanbul ignore if */ if ( false ) { warn( 'passive and prevent can\'t be used together. ' + 'Passive handler can\'t prevent default event.', range ); } // normalize click.right and click.middle since they don't actually fire // this is technically browser-specific, but at least for now browsers are // the only target envs that have right/middle clicks. if (modifiers.right) { if (dynamic) { name = "(" + name + ")==='click'?'contextmenu':(" + name + ")"; } else if (name === 'click') { name = 'contextmenu'; delete modifiers.right; } } else if (modifiers.middle) { if (dynamic) { name = "(" + name + ")==='click'?'mouseup':(" + name + ")"; } else if (name === 'click') { name = 'mouseup'; } } // check capture modifier if (modifiers.capture) { delete modifiers.capture; name = prependModifierMarker('!', name, dynamic); } if (modifiers.once) { delete modifiers.once; name = prependModifierMarker('~', name, dynamic); } /* istanbul ignore if */ if (modifiers.passive) { delete modifiers.passive; name = prependModifierMarker('&', name, dynamic); } var events; if (modifiers.native) { delete modifiers.native; events = el.nativeEvents || (el.nativeEvents = {}); } else { events = el.events || (el.events = {}); } var newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range); if (modifiers !== emptyObject) { newHandler.modifiers = modifiers; } var handlers = events[name]; /* istanbul ignore if */ if (Array.isArray(handlers)) { important ? handlers.unshift(newHandler) : handlers.push(newHandler); } else if (handlers) { events[name] = important ? [newHandler, handlers] : [handlers, newHandler]; } else { events[name] = newHandler; } el.plain = false; } function getRawBindingAttr ( el, name ) { return el.rawAttrsMap[':' + name] || el.rawAttrsMap['v-bind:' + name] || el.rawAttrsMap[name] } function getBindingAttr ( el, name, getStatic ) { var dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name); if (dynamicValue != null) { return parseFilters(dynamicValue) } else if (getStatic !== false) { var staticValue = getAndRemoveAttr(el, name); if (staticValue != null) { return JSON.stringify(staticValue) } } } // note: this only removes the attr from the Array (attrsList) so that it // doesn't get processed by processAttrs. // By default it does NOT remove it from the map (attrsMap) because the map is // needed during codegen. function getAndRemoveAttr ( el, name, removeFromMap ) { var val; if ((val = el.attrsMap[name]) != null) { var list = el.attrsList; for (var i = 0, l = list.length; i < l; i++) { if (list[i].name === name) { list.splice(i, 1); break } } } if (removeFromMap) { delete el.attrsMap[name]; } return val } function getAndRemoveAttrByRegex ( el, name ) { var list = el.attrsList; for (var i = 0, l = list.length; i < l; i++) { var attr = list[i]; if (name.test(attr.name)) { list.splice(i, 1); return attr } } } function rangeSetItem ( item, range ) { if (range) { if (range.start != null) { item.start = range.start; } if (range.end != null) { item.end = range.end; } } return item } /* */ /** * Cross-platform code generation for component v-model */ function genComponentModel ( el, value, modifiers ) { var ref = modifiers || {}; var number = ref.number; var trim = ref.trim; var baseValueExpression = '$$v'; var valueExpression = baseValueExpression; if (trim) { valueExpression = "(typeof " + baseValueExpression + " === 'string'" + "? " + baseValueExpression + ".trim()" + ": " + baseValueExpression + ")"; } if (number) { valueExpression = "_n(" + valueExpression + ")"; } var assignment = genAssignmentCode(value, valueExpression); el.model = { value: ("(" + value + ")"), expression: JSON.stringify(value), callback: ("function (" + baseValueExpression + ") {" + assignment + "}") }; } /** * Cross-platform codegen helper for generating v-model value assignment code. */ function genAssignmentCode ( value, assignment ) { var res = parseModel(value); if (res.key === null) { return (value + "=" + assignment) } else { return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")") } } /** * Parse a v-model expression into a base path and a final key segment. * Handles both dot-path and possible square brackets. * * Possible cases: * * - test * - test[key] * - test[test1[key]] * - test["a"][key] * - xxx.test[a[a].test1[key]] * - test.xxx.a["asa"][test1[key]] * */ var len, str, chr, index$1, expressionPos, expressionEndPos; function parseModel (val) { // Fix https://github.com/vuejs/vue/pull/7730 // allow v-model="obj.val " (trailing whitespace) val = val.trim(); len = val.length; if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) { index$1 = val.lastIndexOf('.'); if (index$1 > -1) { return { exp: val.slice(0, index$1), key: '"' + val.slice(index$1 + 1) + '"' } } else { return { exp: val, key: null } } } str = val; index$1 = expressionPos = expressionEndPos = 0; while (!eof()) { chr = next(); /* istanbul ignore if */ if (isStringStart(chr)) { parseString(chr); } else if (chr === 0x5B) { parseBracket(chr); } } return { exp: val.slice(0, expressionPos), key: val.slice(expressionPos + 1, expressionEndPos) } } function next () { return str.charCodeAt(++index$1) } function eof () { return index$1 >= len } function isStringStart (chr) { return chr === 0x22 || chr === 0x27 } function parseBracket (chr) { var inBracket = 1; expressionPos = index$1; while (!eof()) { chr = next(); if (isStringStart(chr)) { parseString(chr); continue } if (chr === 0x5B) { inBracket++; } if (chr === 0x5D) { inBracket--; } if (inBracket === 0) { expressionEndPos = index$1; break } } } function parseString (chr) { var stringQuote = chr; while (!eof()) { chr = next(); if (chr === stringQuote) { break } } } /* */ var warn$1; // in some cases, the event used has to be determined at runtime // so we used some reserved tokens during compile. var RANGE_TOKEN = '__r'; var CHECKBOX_RADIO_TOKEN = '__c'; function model ( el, dir, _warn ) { warn$1 = _warn; var value = dir.value; var modifiers = dir.modifiers; var tag = el.tag; var type = el.attrsMap.type; if (false) { // inputs with type="file" are read only and setting the input's // value will throw an error. if (tag === 'input' && type === 'file') { warn$1( "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" + "File inputs are read only. Use a v-on:change listener instead.", el.rawAttrsMap['v-model'] ); } } if (el.component) { genComponentModel(el, value, modifiers); // component v-model doesn't need extra runtime return false } else if (tag === 'select') { genSelect(el, value, modifiers); } else if (tag === 'input' && type === 'checkbox') { genCheckboxModel(el, value, modifiers); } else if (tag === 'input' && type === 'radio') { genRadioModel(el, value, modifiers); } else if (tag === 'input' || tag === 'textarea') { genDefaultModel(el, value, modifiers); } else if (!config.isReservedTag(tag)) { genComponentModel(el, value, modifiers); // component v-model doesn't need extra runtime return false } else if (false) { warn$1( "<" + (el.tag) + " v-model=\"" + value + "\">: " + "v-model is not supported on this element type. " + 'If you are working with contenteditable, it\'s recommended to ' + 'wrap a library dedicated for that purpose inside a custom component.', el.rawAttrsMap['v-model'] ); } // ensure runtime directive metadata return true } function genCheckboxModel ( el, value, modifiers ) { var number = modifiers && modifiers.number; var valueBinding = getBindingAttr(el, 'value') || 'null'; var trueValueBinding = getBindingAttr(el, 'true-value') || 'true'; var falseValueBinding = getBindingAttr(el, 'false-value') || 'false'; addProp(el, 'checked', "Array.isArray(" + value + ")" + "?_i(" + value + "," + valueBinding + ")>-1" + ( trueValueBinding === 'true' ? (":(" + value + ")") : (":_q(" + value + "," + trueValueBinding + ")") ) ); addHandler(el, 'change', "var $$a=" + value + "," + '$$el=$event.target,' + "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" + 'if(Array.isArray($$a)){' + "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," + '$$i=_i($$a,$$v);' + "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" + "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" + "}else{" + (genAssignmentCode(value, '$$c')) + "}", null, true ); } function genRadioModel ( el, value, modifiers ) { var number = modifiers && modifiers.number; var valueBinding = getBindingAttr(el, 'value') || 'null'; valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding; addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")")); addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true); } function genSelect ( el, value, modifiers ) { var number = modifiers && modifiers.number; var selectedVal = "Array.prototype.filter" + ".call($event.target.options,function(o){return o.selected})" + ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" + "return " + (number ? '_n(val)' : 'val') + "})"; var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]'; var code = "var $$selectedVal = " + selectedVal + ";"; code = code + " " + (genAssignmentCode(value, assignment)); addHandler(el, 'change', code, null, true); } function genDefaultModel ( el, value, modifiers ) { var type = el.attrsMap.type; // warn if v-bind:value conflicts with v-model // except for inputs with v-bind:type if (false) { var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value']; var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type']; if (value$1 && !typeBinding) { var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value'; warn$1( binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " + 'because the latter already expands to a value binding internally', el.rawAttrsMap[binding] ); } } var ref = modifiers || {}; var lazy = ref.lazy; var number = ref.number; var trim = ref.trim; var needCompositionGuard = !lazy && type !== 'range'; var event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input'; var valueExpression = '$event.target.value'; if (trim) { valueExpression = "$event.target.value.trim()"; } if (number) { valueExpression = "_n(" + valueExpression + ")"; } var code = genAssignmentCode(value, valueExpression); if (needCompositionGuard) { code = "if($event.target.composing)return;" + code; } addProp(el, 'value', ("(" + value + ")")); addHandler(el, event, code, null, true); if (trim || number) { addHandler(el, 'blur', '$forceUpdate()'); } } /* */ // normalize v-model event tokens that can only be determined at runtime. // it's important to place the event as the first in the array because // the whole point is ensuring the v-model callback gets called before // user-attached handlers. function normalizeEvents (on) { /* istanbul ignore if */ if (isDef(on[RANGE_TOKEN])) { // IE input[type=range] only supports `change` event var event = isIE ? 'change' : 'input'; on[event] = [].concat(on[RANGE_TOKEN], on[event] || []); delete on[RANGE_TOKEN]; } // This was originally intended to fix #4521 but no longer necessary // after 2.5. Keeping it for backwards compat with generated code from < 2.4 /* istanbul ignore if */ if (isDef(on[CHECKBOX_RADIO_TOKEN])) { on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []); delete on[CHECKBOX_RADIO_TOKEN]; } } var target$1; function createOnceHandler$1 (event, handler, capture) { var _target = target$1; // save current target element in closure return function onceHandler () { var res = handler.apply(null, arguments); if (res !== null) { remove$2(event, onceHandler, capture, _target); } } } // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp // implementation and does not fire microtasks in between event propagation, so // safe to exclude. var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53); function add$1 ( name, handler, capture, passive ) { // async edge case #6566: inner click event triggers patch, event handler // attached to outer element during patch, and triggered again. This // happens because browsers fire microtask ticks between event propagation. // the solution is simple: we save the timestamp when a handler is attached, // and the handler would only fire if the event passed to it was fired // AFTER it was attached. if (useMicrotaskFix) { var attachedTimestamp = currentFlushTimestamp; var original = handler; handler = original._wrapper = function (e) { if ( // no bubbling, should always fire. // this is just a safety net in case event.timeStamp is unreliable in // certain weird environments... e.target === e.currentTarget || // event is fired after handler attachment e.timeStamp >= attachedTimestamp || // bail for environments that have buggy event.timeStamp implementations // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState // #9681 QtWebEngine event.timeStamp is negative value e.timeStamp <= 0 || // #9448 bail if event is fired in another document in a multi-page // electron/nw.js app, since event.timeStamp will be using a different // starting reference e.target.ownerDocument !== document ) { return original.apply(this, arguments) } }; } target$1.addEventListener( name, handler, supportsPassive ? { capture: capture, passive: passive } : capture ); } function remove$2 ( name, handler, capture, _target ) { (_target || target$1).removeEventListener( name, handler._wrapper || handler, capture ); } function updateDOMListeners (oldVnode, vnode) { if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) { return } var on = vnode.data.on || {}; var oldOn = oldVnode.data.on || {}; target$1 = vnode.elm; normalizeEvents(on); updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context); target$1 = undefined; } var events = { create: updateDOMListeners, update: updateDOMListeners }; /* */ var svgContainer; function updateDOMProps (oldVnode, vnode) { if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) { return } var key, cur; var elm = vnode.elm; var oldProps = oldVnode.data.domProps || {}; var props = vnode.data.domProps || {}; // clone observed objects, as the user probably wants to mutate it if (isDef(props.__ob__)) { props = vnode.data.domProps = extend({}, props); } for (key in oldProps) { if (!(key in props)) { elm[key] = ''; } } for (key in props) { cur = props[key]; // ignore children if the node has textContent or innerHTML, // as these will throw away existing DOM nodes and cause removal errors // on subsequent patches (#3360) if (key === 'textContent' || key === 'innerHTML') { if (vnode.children) { vnode.children.length = 0; } if (cur === oldProps[key]) { continue } // #6601 work around Chrome version <= 55 bug where single textNode // replaced by innerHTML/textContent retains its parentNode property if (elm.childNodes.length === 1) { elm.removeChild(elm.childNodes[0]); } } if (key === 'value' && elm.tagName !== 'PROGRESS') { // store value as _value as well since // non-string values will be stringified elm._value = cur; // avoid resetting cursor position when value is the same var strCur = isUndef(cur) ? '' : String(cur); if (shouldUpdateValue(elm, strCur)) { elm.value = strCur; } } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) { // IE doesn't support innerHTML for SVG elements svgContainer = svgContainer || document.createElement('div'); svgContainer.innerHTML = "<svg>" + cur + "</svg>"; var svg = svgContainer.firstChild; while (elm.firstChild) { elm.removeChild(elm.firstChild); } while (svg.firstChild) { elm.appendChild(svg.firstChild); } } else if ( // skip the update if old and new VDOM state is the same. // `value` is handled separately because the DOM value may be temporarily // out of sync with VDOM state due to focus, composition and modifiers. // This #4521 by skipping the unnecessary `checked` update. cur !== oldProps[key] ) { // some property updates can throw // e.g. `value` on <progress> w/ non-finite value try { elm[key] = cur; } catch (e) {} } } } // check platforms/web/util/attrs.js acceptValue function shouldUpdateValue (elm, checkVal) { return (!elm.composing && ( elm.tagName === 'OPTION' || isNotInFocusAndDirty(elm, checkVal) || isDirtyWithModifiers(elm, checkVal) )) } function isNotInFocusAndDirty (elm, checkVal) { // return true when textbox (.number and .trim) loses focus and its value is // not equal to the updated value var notInFocus = true; // #6157 // work around IE bug when accessing document.activeElement in an iframe try { notInFocus = document.activeElement !== elm; } catch (e) {} return notInFocus && elm.value !== checkVal } function isDirtyWithModifiers (elm, newVal) { var value = elm.value; var modifiers = elm._vModifiers; // injected by v-model runtime if (isDef(modifiers)) { if (modifiers.number) { return toNumber(value) !== toNumber(newVal) } if (modifiers.trim) { return value.trim() !== newVal.trim() } } return value !== newVal } var domProps = { create: updateDOMProps, update: updateDOMProps }; /* */ var parseStyleText = cached(function (cssText) { var res = {}; var listDelimiter = /;(?![^(]*\))/g; var propertyDelimiter = /:(.+)/; cssText.split(listDelimiter).forEach(function (item) { if (item) { var tmp = item.split(propertyDelimiter); tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim()); } }); return res }); // merge static and dynamic style data on the same vnode function normalizeStyleData (data) { var style = normalizeStyleBinding(data.style); // static style is pre-processed into an object during compilation // and is always a fresh object, so it's safe to merge into it return data.staticStyle ? extend(data.staticStyle, style) : style } // normalize possible array / string values into Object function normalizeStyleBinding (bindingStyle) { if (Array.isArray(bindingStyle)) { return toObject(bindingStyle) } if (typeof bindingStyle === 'string') { return parseStyleText(bindingStyle) } return bindingStyle } /** * parent component style should be after child's * so that parent component's style could override it */ function getStyle (vnode, checkChild) { var res = {}; var styleData; if (checkChild) { var childNode = vnode; while (childNode.componentInstance) { childNode = childNode.componentInstance._vnode; if ( childNode && childNode.data && (styleData = normalizeStyleData(childNode.data)) ) { extend(res, styleData); } } } if ((styleData = normalizeStyleData(vnode.data))) { extend(res, styleData); } var parentNode = vnode; while ((parentNode = parentNode.parent)) { if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) { extend(res, styleData); } } return res } /* */ var cssVarRE = /^--/; var importantRE = /\s*!important$/; var setProp = function (el, name, val) { /* istanbul ignore if */ if (cssVarRE.test(name)) { el.style.setProperty(name, val); } else if (importantRE.test(val)) { el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important'); } else { var normalizedName = normalize(name); if (Array.isArray(val)) { // Support values array created by autoprefixer, e.g. // {display: ["-webkit-box", "-ms-flexbox", "flex"]} // Set them one by one, and the browser will only set those it can recognize for (var i = 0, len = val.length; i < len; i++) { el.style[normalizedName] = val[i]; } } else { el.style[normalizedName] = val; } } }; var vendorNames = ['Webkit', 'Moz', 'ms']; var emptyStyle; var normalize = cached(function (prop) { emptyStyle = emptyStyle || document.createElement('div').style; prop = camelize(prop); if (prop !== 'filter' && (prop in emptyStyle)) { return prop } var capName = prop.charAt(0).toUpperCase() + prop.slice(1); for (var i = 0; i < vendorNames.length; i++) { var name = vendorNames[i] + capName; if (name in emptyStyle) { return name } } }); function updateStyle (oldVnode, vnode) { var data = vnode.data; var oldData = oldVnode.data; if (isUndef(data.staticStyle) && isUndef(data.style) && isUndef(oldData.staticStyle) && isUndef(oldData.style) ) { return } var cur, name; var el = vnode.elm; var oldStaticStyle = oldData.staticStyle; var oldStyleBinding = oldData.normalizedStyle || oldData.style || {}; // if static style exists, stylebinding already merged into it when doing normalizeStyleData var oldStyle = oldStaticStyle || oldStyleBinding; var style = normalizeStyleBinding(vnode.data.style) || {}; // store normalized style under a different key for next diff // make sure to clone it if it's reactive, since the user likely wants // to mutate it. vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style; var newStyle = getStyle(vnode, true); for (name in oldStyle) { if (isUndef(newStyle[name])) { setProp(el, name, ''); } } for (name in newStyle) { cur = newStyle[name]; if (cur !== oldStyle[name]) { // ie9 setting to null has no effect, must use empty string setProp(el, name, cur == null ? '' : cur); } } } var style = { create: updateStyle, update: updateStyle }; /* */ var whitespaceRE = /\s+/; /** * Add class with compatibility for SVG since classList is not supported on * SVG elements in IE */ function addClass (el, cls) { /* istanbul ignore if */ if (!cls || !(cls = cls.trim())) { return } /* istanbul ignore else */ if (el.classList) { if (cls.indexOf(' ') > -1) { cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); }); } else { el.classList.add(cls); } } else { var cur = " " + (el.getAttribute('class') || '') + " "; if (cur.indexOf(' ' + cls + ' ') < 0) { el.setAttribute('class', (cur + cls).trim()); } } } /** * Remove class with compatibility for SVG since classList is not supported on * SVG elements in IE */ function removeClass (el, cls) { /* istanbul ignore if */ if (!cls || !(cls = cls.trim())) { return } /* istanbul ignore else */ if (el.classList) { if (cls.indexOf(' ') > -1) { cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); }); } else { el.classList.remove(cls); } if (!el.classList.length) { el.removeAttribute('class'); } } else { var cur = " " + (el.getAttribute('class') || '') + " "; var tar = ' ' + cls + ' '; while (cur.indexOf(tar) >= 0) { cur = cur.replace(tar, ' '); } cur = cur.trim(); if (cur) { el.setAttribute('class', cur); } else { el.removeAttribute('class'); } } } /* */ function resolveTransition (def$$1) { if (!def$$1) { return } /* istanbul ignore else */ if (typeof def$$1 === 'object') { var res = {}; if (def$$1.css !== false) { extend(res, autoCssTransition(def$$1.name || 'v')); } extend(res, def$$1); return res } else if (typeof def$$1 === 'string') { return autoCssTransition(def$$1) } } var autoCssTransition = cached(function (name) { return { enterClass: (name + "-enter"), enterToClass: (name + "-enter-to"), enterActiveClass: (name + "-enter-active"), leaveClass: (name + "-leave"), leaveToClass: (name + "-leave-to"), leaveActiveClass: (name + "-leave-active") } }); var hasTransition = inBrowser && !isIE9; var TRANSITION = 'transition'; var ANIMATION = 'animation'; // Transition property/event sniffing var transitionProp = 'transition'; var transitionEndEvent = 'transitionend'; var animationProp = 'animation'; var animationEndEvent = 'animationend'; if (hasTransition) { /* istanbul ignore if */ if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined ) { transitionProp = 'WebkitTransition'; transitionEndEvent = 'webkitTransitionEnd'; } if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined ) { animationProp = 'WebkitAnimation'; animationEndEvent = 'webkitAnimationEnd'; } } // binding to window is necessary to make hot reload work in IE in strict mode var raf = inBrowser ? window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : setTimeout : /* istanbul ignore next */ function (fn) { return fn(); }; function nextFrame (fn) { raf(function () { raf(fn); }); } function addTransitionClass (el, cls) { var transitionClasses = el._transitionClasses || (el._transitionClasses = []); if (transitionClasses.indexOf(cls) < 0) { transitionClasses.push(cls); addClass(el, cls); } } function removeTransitionClass (el, cls) { if (el._transitionClasses) { remove(el._transitionClasses, cls); } removeClass(el, cls); } function whenTransitionEnds ( el, expectedType, cb ) { var ref = getTransitionInfo(el, expectedType); var type = ref.type; var timeout = ref.timeout; var propCount = ref.propCount; if (!type) { return cb() } var event = type === TRANSITION ? transitionEndEvent : animationEndEvent; var ended = 0; var end = function () { el.removeEventListener(event, onEnd); cb(); }; var onEnd = function (e) { if (e.target === el) { if (++ended >= propCount) { end(); } } }; setTimeout(function () { if (ended < propCount) { end(); } }, timeout + 1); el.addEventListener(event, onEnd); } var transformRE = /\b(transform|all)(,|$)/; function getTransitionInfo (el, expectedType) { var styles = window.getComputedStyle(el); // JSDOM may return undefined for transition properties var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', '); var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', '); var transitionTimeout = getTimeout(transitionDelays, transitionDurations); var animationDelays = (styles[animationProp + 'Delay'] || '').split(', '); var animationDurations = (styles[animationProp + 'Duration'] || '').split(', '); var animationTimeout = getTimeout(animationDelays, animationDurations); var type; var timeout = 0; var propCount = 0; /* istanbul ignore if */ if (expectedType === TRANSITION) { if (transitionTimeout > 0) { type = TRANSITION; timeout = transitionTimeout; propCount = transitionDurations.length; } } else if (expectedType === ANIMATION) { if (animationTimeout > 0) { type = ANIMATION; timeout = animationTimeout; propCount = animationDurations.length; } } else { timeout = Math.max(transitionTimeout, animationTimeout); type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; } var hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']); return { type: type, timeout: timeout, propCount: propCount, hasTransform: hasTransform } } function getTimeout (delays, durations) { /* istanbul ignore next */ while (delays.length < durations.length) { delays = delays.concat(delays); } return Math.max.apply(null, durations.map(function (d, i) { return toMs(d) + toMs(delays[i]) })) } // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers // in a locale-dependent way, using a comma instead of a dot. // If comma is not replaced with a dot, the input will be rounded down (i.e. acting // as a floor function) causing unexpected behaviors function toMs (s) { return Number(s.slice(0, -1).replace(',', '.')) * 1000 } /* */ function enter (vnode, toggleDisplay) { var el = vnode.elm; // call leave callback now if (isDef(el._leaveCb)) { el._leaveCb.cancelled = true; el._leaveCb(); } var data = resolveTransition(vnode.data.transition); if (isUndef(data)) { return } /* istanbul ignore if */ if (isDef(el._enterCb) || el.nodeType !== 1) { return } var css = data.css; var type = data.type; var enterClass = data.enterClass; var enterToClass = data.enterToClass; var enterActiveClass = data.enterActiveClass; var appearClass = data.appearClass; var appearToClass = data.appearToClass; var appearActiveClass = data.appearActiveClass; var beforeEnter = data.beforeEnter; var enter = data.enter; var afterEnter = data.afterEnter; var enterCancelled = data.enterCancelled; var beforeAppear = data.beforeAppear; var appear = data.appear; var afterAppear = data.afterAppear; var appearCancelled = data.appearCancelled; var duration = data.duration; // activeInstance will always be the <transition> component managing this // transition. One edge case to check is when the <transition> is placed // as the root node of a child component. In that case we need to check // <transition>'s parent for appear check. var context = activeInstance; var transitionNode = activeInstance.$vnode; while (transitionNode && transitionNode.parent) { context = transitionNode.context; transitionNode = transitionNode.parent; } var isAppear = !context._isMounted || !vnode.isRootInsert; if (isAppear && !appear && appear !== '') { return } var startClass = isAppear && appearClass ? appearClass : enterClass; var activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass; var toClass = isAppear && appearToClass ? appearToClass : enterToClass; var beforeEnterHook = isAppear ? (beforeAppear || beforeEnter) : beforeEnter; var enterHook = isAppear ? (typeof appear === 'function' ? appear : enter) : enter; var afterEnterHook = isAppear ? (afterAppear || afterEnter) : afterEnter; var enterCancelledHook = isAppear ? (appearCancelled || enterCancelled) : enterCancelled; var explicitEnterDuration = toNumber( isObject(duration) ? duration.enter : duration ); if (false) { checkDuration(explicitEnterDuration, 'enter', vnode); } var expectsCSS = css !== false && !isIE9; var userWantsControl = getHookArgumentsLength(enterHook); var cb = el._enterCb = once(function () { if (expectsCSS) { removeTransitionClass(el, toClass); removeTransitionClass(el, activeClass); } if (cb.cancelled) { if (expectsCSS) { removeTransitionClass(el, startClass); } enterCancelledHook && enterCancelledHook(el); } else { afterEnterHook && afterEnterHook(el); } el._enterCb = null; }); if (!vnode.data.show) { // remove pending leave element on enter by injecting an insert hook mergeVNodeHook(vnode, 'insert', function () { var parent = el.parentNode; var pendingNode = parent && parent._pending && parent._pending[vnode.key]; if (pendingNode && pendingNode.tag === vnode.tag && pendingNode.elm._leaveCb ) { pendingNode.elm._leaveCb(); } enterHook && enterHook(el, cb); }); } // start enter transition beforeEnterHook && beforeEnterHook(el); if (expectsCSS) { addTransitionClass(el, startClass); addTransitionClass(el, activeClass); nextFrame(function () { removeTransitionClass(el, startClass); if (!cb.cancelled) { addTransitionClass(el, toClass); if (!userWantsControl) { if (isValidDuration(explicitEnterDuration)) { setTimeout(cb, explicitEnterDuration); } else { whenTransitionEnds(el, type, cb); } } } }); } if (vnode.data.show) { toggleDisplay && toggleDisplay(); enterHook && enterHook(el, cb); } if (!expectsCSS && !userWantsControl) { cb(); } } function leave (vnode, rm) { var el = vnode.elm; // call enter callback now if (isDef(el._enterCb)) { el._enterCb.cancelled = true; el._enterCb(); } var data = resolveTransition(vnode.data.transition); if (isUndef(data) || el.nodeType !== 1) { return rm() } /* istanbul ignore if */ if (isDef(el._leaveCb)) { return } var css = data.css; var type = data.type; var leaveClass = data.leaveClass; var leaveToClass = data.leaveToClass; var leaveActiveClass = data.leaveActiveClass; var beforeLeave = data.beforeLeave; var leave = data.leave; var afterLeave = data.afterLeave; var leaveCancelled = data.leaveCancelled; var delayLeave = data.delayLeave; var duration = data.duration; var expectsCSS = css !== false && !isIE9; var userWantsControl = getHookArgumentsLength(leave); var explicitLeaveDuration = toNumber( isObject(duration) ? duration.leave : duration ); if (false) { checkDuration(explicitLeaveDuration, 'leave', vnode); } var cb = el._leaveCb = once(function () { if (el.parentNode && el.parentNode._pending) { el.parentNode._pending[vnode.key] = null; } if (expectsCSS) { removeTransitionClass(el, leaveToClass); removeTransitionClass(el, leaveActiveClass); } if (cb.cancelled) { if (expectsCSS) { removeTransitionClass(el, leaveClass); } leaveCancelled && leaveCancelled(el); } else { rm(); afterLeave && afterLeave(el); } el._leaveCb = null; }); if (delayLeave) { delayLeave(performLeave); } else { performLeave(); } function performLeave () { // the delayed leave may have already been cancelled if (cb.cancelled) { return } // record leaving element if (!vnode.data.show && el.parentNode) { (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode; } beforeLeave && beforeLeave(el); if (expectsCSS) { addTransitionClass(el, leaveClass); addTransitionClass(el, leaveActiveClass); nextFrame(function () { removeTransitionClass(el, leaveClass); if (!cb.cancelled) { addTransitionClass(el, leaveToClass); if (!userWantsControl) { if (isValidDuration(explicitLeaveDuration)) { setTimeout(cb, explicitLeaveDuration); } else { whenTransitionEnds(el, type, cb); } } } }); } leave && leave(el, cb); if (!expectsCSS && !userWantsControl) { cb(); } } } // only used in dev mode function checkDuration (val, name, vnode) { if (typeof val !== 'number') { warn( "<transition> explicit " + name + " duration is not a valid number - " + "got " + (JSON.stringify(val)) + ".", vnode.context ); } else if (isNaN(val)) { warn( "<transition> explicit " + name + " duration is NaN - " + 'the duration expression might be incorrect.', vnode.context ); } } function isValidDuration (val) { return typeof val === 'number' && !isNaN(val) } /** * Normalize a transition hook's argument length. The hook may be: * - a merged hook (invoker) with the original in .fns * - a wrapped component method (check ._length) * - a plain function (.length) */ function getHookArgumentsLength (fn) { if (isUndef(fn)) { return false } var invokerFns = fn.fns; if (isDef(invokerFns)) { // invoker return getHookArgumentsLength( Array.isArray(invokerFns) ? invokerFns[0] : invokerFns ) } else { return (fn._length || fn.length) > 1 } } function _enter (_, vnode) { if (vnode.data.show !== true) { enter(vnode); } } var transition = inBrowser ? { create: _enter, activate: _enter, remove: function remove$$1 (vnode, rm) { /* istanbul ignore else */ if (vnode.data.show !== true) { leave(vnode, rm); } else { rm(); } } } : {}; var platformModules = [ attrs, klass, events, domProps, style, transition ]; /* */ // the directive module should be applied last, after all // built-in modules have been applied. var modules = platformModules.concat(baseModules); var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules }); /** * Not type checking this file because flow doesn't like attaching * properties to Elements. */ /* istanbul ignore if */ if (isIE9) { // http://www.matts411.com/post/internet-explorer-9-oninput/ document.addEventListener('selectionchange', function () { var el = document.activeElement; if (el && el.vmodel) { trigger(el, 'input'); } }); } var directive = { inserted: function inserted (el, binding, vnode, oldVnode) { if (vnode.tag === 'select') { // #6903 if (oldVnode.elm && !oldVnode.elm._vOptions) { mergeVNodeHook(vnode, 'postpatch', function () { directive.componentUpdated(el, binding, vnode); }); } else { setSelected(el, binding, vnode.context); } el._vOptions = [].map.call(el.options, getValue); } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) { el._vModifiers = binding.modifiers; if (!binding.modifiers.lazy) { el.addEventListener('compositionstart', onCompositionStart); el.addEventListener('compositionend', onCompositionEnd); // Safari < 10.2 & UIWebView doesn't fire compositionend when // switching focus before confirming composition choice // this also fixes the issue where some browsers e.g. iOS Chrome // fires "change" instead of "input" on autocomplete. el.addEventListener('change', onCompositionEnd); /* istanbul ignore if */ if (isIE9) { el.vmodel = true; } } } }, componentUpdated: function componentUpdated (el, binding, vnode) { if (vnode.tag === 'select') { setSelected(el, binding, vnode.context); // in case the options rendered by v-for have changed, // it's possible that the value is out-of-sync with the rendered options. // detect such cases and filter out values that no longer has a matching // option in the DOM. var prevOptions = el._vOptions; var curOptions = el._vOptions = [].map.call(el.options, getValue); if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) { // trigger change event if // no matching option found for at least one value var needReset = el.multiple ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); }) : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions); if (needReset) { trigger(el, 'change'); } } } } }; function setSelected (el, binding, vm) { actuallySetSelected(el, binding, vm); /* istanbul ignore if */ if (isIE || isEdge) { setTimeout(function () { actuallySetSelected(el, binding, vm); }, 0); } } function actuallySetSelected (el, binding, vm) { var value = binding.value; var isMultiple = el.multiple; if (isMultiple && !Array.isArray(value)) { "production" !== 'production' && warn( "<select multiple v-model=\"" + (binding.expression) + "\"> " + "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)), vm ); return } var selected, option; for (var i = 0, l = el.options.length; i < l; i++) { option = el.options[i]; if (isMultiple) { selected = looseIndexOf(value, getValue(option)) > -1; if (option.selected !== selected) { option.selected = selected; } } else { if (looseEqual(getValue(option), value)) { if (el.selectedIndex !== i) { el.selectedIndex = i; } return } } } if (!isMultiple) { el.selectedIndex = -1; } } function hasNoMatchingOption (value, options) { return options.every(function (o) { return !looseEqual(o, value); }) } function getValue (option) { return '_value' in option ? option._value : option.value } function onCompositionStart (e) { e.target.composing = true; } function onCompositionEnd (e) { // prevent triggering an input event for no reason if (!e.target.composing) { return } e.target.composing = false; trigger(e.target, 'input'); } function trigger (el, type) { var e = document.createEvent('HTMLEvents'); e.initEvent(type, true, true); el.dispatchEvent(e); } /* */ // recursively search for possible transition defined inside the component root function locateNode (vnode) { return vnode.componentInstance && (!vnode.data || !vnode.data.transition) ? locateNode(vnode.componentInstance._vnode) : vnode } var show = { bind: function bind (el, ref, vnode) { var value = ref.value; vnode = locateNode(vnode); var transition$$1 = vnode.data && vnode.data.transition; var originalDisplay = el.__vOriginalDisplay = el.style.display === 'none' ? '' : el.style.display; if (value && transition$$1) { vnode.data.show = true; enter(vnode, function () { el.style.display = originalDisplay; }); } else { el.style.display = value ? originalDisplay : 'none'; } }, update: function update (el, ref, vnode) { var value = ref.value; var oldValue = ref.oldValue; /* istanbul ignore if */ if (!value === !oldValue) { return } vnode = locateNode(vnode); var transition$$1 = vnode.data && vnode.data.transition; if (transition$$1) { vnode.data.show = true; if (value) { enter(vnode, function () { el.style.display = el.__vOriginalDisplay; }); } else { leave(vnode, function () { el.style.display = 'none'; }); } } else { el.style.display = value ? el.__vOriginalDisplay : 'none'; } }, unbind: function unbind ( el, binding, vnode, oldVnode, isDestroy ) { if (!isDestroy) { el.style.display = el.__vOriginalDisplay; } } }; var platformDirectives = { model: directive, show: show }; /* */ var transitionProps = { name: String, appear: Boolean, css: Boolean, mode: String, type: String, enterClass: String, leaveClass: String, enterToClass: String, leaveToClass: String, enterActiveClass: String, leaveActiveClass: String, appearClass: String, appearActiveClass: String, appearToClass: String, duration: [Number, String, Object] }; // in case the child is also an abstract component, e.g. <keep-alive> // we want to recursively retrieve the real component to be rendered function getRealChild (vnode) { var compOptions = vnode && vnode.componentOptions; if (compOptions && compOptions.Ctor.options.abstract) { return getRealChild(getFirstComponentChild(compOptions.children)) } else { return vnode } } function extractTransitionData (comp) { var data = {}; var options = comp.$options; // props for (var key in options.propsData) { data[key] = comp[key]; } // events. // extract listeners and pass them directly to the transition methods var listeners = options._parentListeners; for (var key$1 in listeners) { data[camelize(key$1)] = listeners[key$1]; } return data } function placeholder (h, rawChild) { if (/\d-keep-alive$/.test(rawChild.tag)) { return h('keep-alive', { props: rawChild.componentOptions.propsData }) } } function hasParentTransition (vnode) { while ((vnode = vnode.parent)) { if (vnode.data.transition) { return true } } } function isSameChild (child, oldChild) { return oldChild.key === child.key && oldChild.tag === child.tag } var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); }; var isVShowDirective = function (d) { return d.name === 'show'; }; var Transition = { name: 'transition', props: transitionProps, abstract: true, render: function render (h) { var this$1 = this; var children = this.$slots.default; if (!children) { return } // filter out text nodes (possible whitespaces) children = children.filter(isNotTextNode); /* istanbul ignore if */ if (!children.length) { return } // warn multiple elements if (false) { warn( '<transition> can only be used on a single element. Use ' + '<transition-group> for lists.', this.$parent ); } var mode = this.mode; // warn invalid mode if (false ) { warn( 'invalid <transition> mode: ' + mode, this.$parent ); } var rawChild = children[0]; // if this is a component root node and the component's // parent container node also has transition, skip. if (hasParentTransition(this.$vnode)) { return rawChild } // apply transition data to child // use getRealChild() to ignore abstract components e.g. keep-alive var child = getRealChild(rawChild); /* istanbul ignore if */ if (!child) { return rawChild } if (this._leaving) { return placeholder(h, rawChild) } // ensure a key that is unique to the vnode type and to this transition // component instance. This key will be used to remove pending leaving nodes // during entering. var id = "__transition-" + (this._uid) + "-"; child.key = child.key == null ? child.isComment ? id + 'comment' : id + child.tag : isPrimitive(child.key) ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key) : child.key; var data = (child.data || (child.data = {})).transition = extractTransitionData(this); var oldRawChild = this._vnode; var oldChild = getRealChild(oldRawChild); // mark v-show // so that the transition module can hand over the control to the directive if (child.data.directives && child.data.directives.some(isVShowDirective)) { child.data.show = true; } if ( oldChild && oldChild.data && !isSameChild(child, oldChild) && !isAsyncPlaceholder(oldChild) && // #6687 component root is a comment node !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment) ) { // replace old child transition data with fresh one // important for dynamic transitions! var oldData = oldChild.data.transition = extend({}, data); // handle transition mode if (mode === 'out-in') { // return placeholder node and queue update when leave finishes this._leaving = true; mergeVNodeHook(oldData, 'afterLeave', function () { this$1._leaving = false; this$1.$forceUpdate(); }); return placeholder(h, rawChild) } else if (mode === 'in-out') { if (isAsyncPlaceholder(child)) { return oldRawChild } var delayedLeave; var performLeave = function () { delayedLeave(); }; mergeVNodeHook(data, 'afterEnter', performLeave); mergeVNodeHook(data, 'enterCancelled', performLeave); mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; }); } } return rawChild } }; /* */ var props = extend({ tag: String, moveClass: String }, transitionProps); delete props.mode; var TransitionGroup = { props: props, beforeMount: function beforeMount () { var this$1 = this; var update = this._update; this._update = function (vnode, hydrating) { var restoreActiveInstance = setActiveInstance(this$1); // force removing pass this$1.__patch__( this$1._vnode, this$1.kept, false, // hydrating true // removeOnly (!important, avoids unnecessary moves) ); this$1._vnode = this$1.kept; restoreActiveInstance(); update.call(this$1, vnode, hydrating); }; }, render: function render (h) { var tag = this.tag || this.$vnode.data.tag || 'span'; var map = Object.create(null); var prevChildren = this.prevChildren = this.children; var rawChildren = this.$slots.default || []; var children = this.children = []; var transitionData = extractTransitionData(this); for (var i = 0; i < rawChildren.length; i++) { var c = rawChildren[i]; if (c.tag) { if (c.key != null && String(c.key).indexOf('__vlist') !== 0) { children.push(c); map[c.key] = c ;(c.data || (c.data = {})).transition = transitionData; } else if (false) { var opts = c.componentOptions; var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag; warn(("<transition-group> children must be keyed: <" + name + ">")); } } } if (prevChildren) { var kept = []; var removed = []; for (var i$1 = 0; i$1 < prevChildren.length; i$1++) { var c$1 = prevChildren[i$1]; c$1.data.transition = transitionData; c$1.data.pos = c$1.elm.getBoundingClientRect(); if (map[c$1.key]) { kept.push(c$1); } else { removed.push(c$1); } } this.kept = h(tag, null, kept); this.removed = removed; } return h(tag, null, children) }, updated: function updated () { var children = this.prevChildren; var moveClass = this.moveClass || ((this.name || 'v') + '-move'); if (!children.length || !this.hasMove(children[0].elm, moveClass)) { return } // we divide the work into three loops to avoid mixing DOM reads and writes // in each iteration - which helps prevent layout thrashing. children.forEach(callPendingCbs); children.forEach(recordPosition); children.forEach(applyTranslation); // force reflow to put everything in position // assign to this to avoid being removed in tree-shaking // $flow-disable-line this._reflow = document.body.offsetHeight; children.forEach(function (c) { if (c.data.moved) { var el = c.elm; var s = el.style; addTransitionClass(el, moveClass); s.transform = s.WebkitTransform = s.transitionDuration = ''; el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) { if (e && e.target !== el) { return } if (!e || /transform$/.test(e.propertyName)) { el.removeEventListener(transitionEndEvent, cb); el._moveCb = null; removeTransitionClass(el, moveClass); } }); } }); }, methods: { hasMove: function hasMove (el, moveClass) { /* istanbul ignore if */ if (!hasTransition) { return false } /* istanbul ignore if */ if (this._hasMove) { return this._hasMove } // Detect whether an element with the move class applied has // CSS transitions. Since the element may be inside an entering // transition at this very moment, we make a clone of it and remove // all other transition classes applied to ensure only the move class // is applied. var clone = el.cloneNode(); if (el._transitionClasses) { el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); }); } addClass(clone, moveClass); clone.style.display = 'none'; this.$el.appendChild(clone); var info = getTransitionInfo(clone); this.$el.removeChild(clone); return (this._hasMove = info.hasTransform) } } }; function callPendingCbs (c) { /* istanbul ignore if */ if (c.elm._moveCb) { c.elm._moveCb(); } /* istanbul ignore if */ if (c.elm._enterCb) { c.elm._enterCb(); } } function recordPosition (c) { c.data.newPos = c.elm.getBoundingClientRect(); } function applyTranslation (c) { var oldPos = c.data.pos; var newPos = c.data.newPos; var dx = oldPos.left - newPos.left; var dy = oldPos.top - newPos.top; if (dx || dy) { c.data.moved = true; var s = c.elm.style; s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)"; s.transitionDuration = '0s'; } } var platformComponents = { Transition: Transition, TransitionGroup: TransitionGroup }; /* */ // install platform specific utils Vue.config.mustUseProp = mustUseProp; Vue.config.isReservedTag = isReservedTag; Vue.config.isReservedAttr = isReservedAttr; Vue.config.getTagNamespace = getTagNamespace; Vue.config.isUnknownElement = isUnknownElement; // install platform runtime directives & components extend(Vue.options.directives, platformDirectives); extend(Vue.options.components, platformComponents); // install platform patch function Vue.prototype.__patch__ = inBrowser ? patch : noop; // public mount method Vue.prototype.$mount = function ( el, hydrating ) { el = el && inBrowser ? query(el) : undefined; return mountComponent(this, el, hydrating) }; // devtools global hook /* istanbul ignore next */ if (inBrowser) { setTimeout(function () { if (config.devtools) { if (devtools) { devtools.emit('init', Vue); } else if ( false ) { console[console.info ? 'info' : 'log']( 'Download the Vue Devtools extension for a better development experience:\n' + 'https://github.com/vuejs/vue-devtools' ); } } if (false ) { console[console.info ? 'info' : 'log']( "You are running Vue in development mode.\n" + "Make sure to turn on production mode when deploying for production.\n" + "See more tips at https://vuejs.org/guide/deployment.html" ); } }, 0); } /* */ var defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g; var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g; var buildRegex = cached(function (delimiters) { var open = delimiters[0].replace(regexEscapeRE, '\\$&'); var close = delimiters[1].replace(regexEscapeRE, '\\$&'); return new RegExp(open + '((?:.|\\n)+?)' + close, 'g') }); function parseText ( text, delimiters ) { var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE; if (!tagRE.test(text)) { return } var tokens = []; var rawTokens = []; var lastIndex = tagRE.lastIndex = 0; var match, index, tokenValue; while ((match = tagRE.exec(text))) { index = match.index; // push text token if (index > lastIndex) { rawTokens.push(tokenValue = text.slice(lastIndex, index)); tokens.push(JSON.stringify(tokenValue)); } // tag token var exp = parseFilters(match[1].trim()); tokens.push(("_s(" + exp + ")")); rawTokens.push({ '@binding': exp }); lastIndex = index + match[0].length; } if (lastIndex < text.length) { rawTokens.push(tokenValue = text.slice(lastIndex)); tokens.push(JSON.stringify(tokenValue)); } return { expression: tokens.join('+'), tokens: rawTokens } } /* */ function transformNode (el, options) { var warn = options.warn || baseWarn; var staticClass = getAndRemoveAttr(el, 'class'); if (false) { var res = parseText(staticClass, options.delimiters); if (res) { warn( "class=\"" + staticClass + "\": " + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div class="{{ val }}">, use <div :class="val">.', el.rawAttrsMap['class'] ); } } if (staticClass) { el.staticClass = JSON.stringify(staticClass); } var classBinding = getBindingAttr(el, 'class', false /* getStatic */); if (classBinding) { el.classBinding = classBinding; } } function genData (el) { var data = ''; if (el.staticClass) { data += "staticClass:" + (el.staticClass) + ","; } if (el.classBinding) { data += "class:" + (el.classBinding) + ","; } return data } var klass$1 = { staticKeys: ['staticClass'], transformNode: transformNode, genData: genData }; /* */ function transformNode$1 (el, options) { var warn = options.warn || baseWarn; var staticStyle = getAndRemoveAttr(el, 'style'); if (staticStyle) { /* istanbul ignore if */ if (false) { var res = parseText(staticStyle, options.delimiters); if (res) { warn( "style=\"" + staticStyle + "\": " + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div style="{{ val }}">, use <div :style="val">.', el.rawAttrsMap['style'] ); } } el.staticStyle = JSON.stringify(parseStyleText(staticStyle)); } var styleBinding = getBindingAttr(el, 'style', false /* getStatic */); if (styleBinding) { el.styleBinding = styleBinding; } } function genData$1 (el) { var data = ''; if (el.staticStyle) { data += "staticStyle:" + (el.staticStyle) + ","; } if (el.styleBinding) { data += "style:(" + (el.styleBinding) + "),"; } return data } var style$1 = { staticKeys: ['staticStyle'], transformNode: transformNode$1, genData: genData$1 }; /* */ var decoder; var he = { decode: function decode (html) { decoder = decoder || document.createElement('div'); decoder.innerHTML = html; return decoder.textContent } }; /* */ var isUnaryTag = makeMap( 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + 'link,meta,param,source,track,wbr' ); // Elements that you can, intentionally, leave open // (and which close themselves) var canBeLeftOpenTag = makeMap( 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source' ); // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3 // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content var isNonPhrasingTag = makeMap( 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' + 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' + 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' + 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' + 'title,tr,track' ); /** * Not type-checking this file because it's mostly vendor code. */ // Regular Expressions for parsing tags and attributes var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/; var dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/; var ncname = "[a-zA-Z_][\\-\\.0-9_a-zA-Z" + (unicodeRegExp.source) + "]*"; var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")"; var startTagOpen = new RegExp(("^<" + qnameCapture)); var startTagClose = /^\s*(\/?)>/; var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>")); var doctype = /^<!DOCTYPE [^>]+>/i; // #7298: escape - to avoid being passed as HTML comment when inlined in page var comment = /^<!\--/; var conditionalComment = /^<!\[/; // Special Elements (can contain anything) var isPlainTextElement = makeMap('script,style,textarea', true); var reCache = {}; var decodingMap = { '<': '<', '>': '>', '"': '"', '&': '&', ' ': '\n', '	': '\t', ''': "'" }; var encodedAttr = /&(?:lt|gt|quot|amp|#39);/g; var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g; // #5992 var isIgnoreNewlineTag = makeMap('pre,textarea', true); var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; }; function decodeAttr (value, shouldDecodeNewlines) { var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr; return value.replace(re, function (match) { return decodingMap[match]; }) } function parseHTML (html, options) { var stack = []; var expectHTML = options.expectHTML; var isUnaryTag$$1 = options.isUnaryTag || no; var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no; var index = 0; var last, lastTag; while (html) { last = html; // Make sure we're not in a plaintext content element like script/style if (!lastTag || !isPlainTextElement(lastTag)) { var textEnd = html.indexOf('<'); if (textEnd === 0) { // Comment: if (comment.test(html)) { var commentEnd = html.indexOf('-->'); if (commentEnd >= 0) { if (options.shouldKeepComment) { options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3); } advance(commentEnd + 3); continue } } // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment if (conditionalComment.test(html)) { var conditionalEnd = html.indexOf(']>'); if (conditionalEnd >= 0) { advance(conditionalEnd + 2); continue } } // Doctype: var doctypeMatch = html.match(doctype); if (doctypeMatch) { advance(doctypeMatch[0].length); continue } // End tag: var endTagMatch = html.match(endTag); if (endTagMatch) { var curIndex = index; advance(endTagMatch[0].length); parseEndTag(endTagMatch[1], curIndex, index); continue } // Start tag: var startTagMatch = parseStartTag(); if (startTagMatch) { handleStartTag(startTagMatch); if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) { advance(1); } continue } } var text = (void 0), rest = (void 0), next = (void 0); if (textEnd >= 0) { rest = html.slice(textEnd); while ( !endTag.test(rest) && !startTagOpen.test(rest) && !comment.test(rest) && !conditionalComment.test(rest) ) { // < in plain text, be forgiving and treat it as text next = rest.indexOf('<', 1); if (next < 0) { break } textEnd += next; rest = html.slice(textEnd); } text = html.substring(0, textEnd); } if (textEnd < 0) { text = html; } if (text) { advance(text.length); } if (options.chars && text) { options.chars(text, index - text.length, index); } } else { var endTagLength = 0; var stackedTag = lastTag.toLowerCase(); var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i')); var rest$1 = html.replace(reStackedTag, function (all, text, endTag) { endTagLength = endTag.length; if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') { text = text .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298 .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1'); } if (shouldIgnoreFirstNewline(stackedTag, text)) { text = text.slice(1); } if (options.chars) { options.chars(text); } return '' }); index += html.length - rest$1.length; html = rest$1; parseEndTag(stackedTag, index - endTagLength, index); } if (html === last) { options.chars && options.chars(html); if (false) { options.warn(("Mal-formatted tag at end of template: \"" + html + "\""), { start: index + html.length }); } break } } // Clean up any remaining tags parseEndTag(); function advance (n) { index += n; html = html.substring(n); } function parseStartTag () { var start = html.match(startTagOpen); if (start) { var match = { tagName: start[1], attrs: [], start: index }; advance(start[0].length); var end, attr; while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) { attr.start = index; advance(attr[0].length); attr.end = index; match.attrs.push(attr); } if (end) { match.unarySlash = end[1]; advance(end[0].length); match.end = index; return match } } } function handleStartTag (match) { var tagName = match.tagName; var unarySlash = match.unarySlash; if (expectHTML) { if (lastTag === 'p' && isNonPhrasingTag(tagName)) { parseEndTag(lastTag); } if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) { parseEndTag(tagName); } } var unary = isUnaryTag$$1(tagName) || !!unarySlash; var l = match.attrs.length; var attrs = new Array(l); for (var i = 0; i < l; i++) { var args = match.attrs[i]; var value = args[3] || args[4] || args[5] || ''; var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href' ? options.shouldDecodeNewlinesForHref : options.shouldDecodeNewlines; attrs[i] = { name: args[1], value: decodeAttr(value, shouldDecodeNewlines) }; if (false) { attrs[i].start = args.start + args[0].match(/^\s*/).length; attrs[i].end = args.end; } } if (!unary) { stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs, start: match.start, end: match.end }); lastTag = tagName; } if (options.start) { options.start(tagName, attrs, unary, match.start, match.end); } } function parseEndTag (tagName, start, end) { var pos, lowerCasedTagName; if (start == null) { start = index; } if (end == null) { end = index; } // Find the closest opened tag of the same type if (tagName) { lowerCasedTagName = tagName.toLowerCase(); for (pos = stack.length - 1; pos >= 0; pos--) { if (stack[pos].lowerCasedTag === lowerCasedTagName) { break } } } else { // If no tag name is provided, clean shop pos = 0; } if (pos >= 0) { // Close all the open elements, up the stack for (var i = stack.length - 1; i >= pos; i--) { if (false ) { options.warn( ("tag <" + (stack[i].tag) + "> has no matching end tag."), { start: stack[i].start, end: stack[i].end } ); } if (options.end) { options.end(stack[i].tag, start, end); } } // Remove the open elements from the stack stack.length = pos; lastTag = pos && stack[pos - 1].tag; } else if (lowerCasedTagName === 'br') { if (options.start) { options.start(tagName, [], true, start, end); } } else if (lowerCasedTagName === 'p') { if (options.start) { options.start(tagName, [], false, start, end); } if (options.end) { options.end(tagName, start, end); } } } } /* */ var onRE = /^@|^v-on:/; var dirRE = /^v-|^@|^:|^#/; var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; var stripParensRE = /^\(|\)$/g; var dynamicArgRE = /^\[.*\]$/; var argRE = /:(.*)$/; var bindRE = /^:|^\.|^v-bind:/; var modifierRE = /\.[^.\]]+(?=[^\]]*$)/g; var slotRE = /^v-slot(:|$)|^#/; var lineBreakRE = /[\r\n]/; var whitespaceRE$1 = /[ \f\t\r\n]+/g; var invalidAttributeRE = /[\s"'<>\/=]/; var decodeHTMLCached = cached(he.decode); var emptySlotScopeToken = "_empty_"; // configurable state var warn$2; var delimiters; var transforms; var preTransforms; var postTransforms; var platformIsPreTag; var platformMustUseProp; var platformGetTagNamespace; var maybeComponent; function createASTElement ( tag, attrs, parent ) { return { type: 1, tag: tag, attrsList: attrs, attrsMap: makeAttrsMap(attrs), rawAttrsMap: {}, parent: parent, children: [] } } /** * Convert HTML string to AST. */ function parse ( template, options ) { warn$2 = options.warn || baseWarn; platformIsPreTag = options.isPreTag || no; platformMustUseProp = options.mustUseProp || no; platformGetTagNamespace = options.getTagNamespace || no; var isReservedTag = options.isReservedTag || no; maybeComponent = function (el) { return !!( el.component || el.attrsMap[':is'] || el.attrsMap['v-bind:is'] || !(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag)) ); }; transforms = pluckModuleFunction(options.modules, 'transformNode'); preTransforms = pluckModuleFunction(options.modules, 'preTransformNode'); postTransforms = pluckModuleFunction(options.modules, 'postTransformNode'); delimiters = options.delimiters; var stack = []; var preserveWhitespace = options.preserveWhitespace !== false; var whitespaceOption = options.whitespace; var root; var currentParent; var inVPre = false; var inPre = false; var warned = false; function warnOnce (msg, range) { if (!warned) { warned = true; warn$2(msg, range); } } function closeElement (element) { trimEndingWhitespace(element); if (!inVPre && !element.processed) { element = processElement(element, options); } // tree management if (!stack.length && element !== root) { // allow root elements with v-if, v-else-if and v-else if (root.if && (element.elseif || element.else)) { if (false) { checkRootConstraints(element); } addIfCondition(root, { exp: element.elseif, block: element }); } else if (false) { warnOnce( "Component template should contain exactly one root element. " + "If you are using v-if on multiple elements, " + "use v-else-if to chain them instead.", { start: element.start } ); } } if (currentParent && !element.forbidden) { if (element.elseif || element.else) { processIfConditions(element, currentParent); } else { if (element.slotScope) { // scoped slot // keep it in the children list so that v-else(-if) conditions can // find it as the prev node. var name = element.slotTarget || '"default"' ;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element; } currentParent.children.push(element); element.parent = currentParent; } } // final children cleanup // filter out scoped slots element.children = element.children.filter(function (c) { return !(c).slotScope; }); // remove trailing whitespace node again trimEndingWhitespace(element); // check pre state if (element.pre) { inVPre = false; } if (platformIsPreTag(element.tag)) { inPre = false; } // apply post-transforms for (var i = 0; i < postTransforms.length; i++) { postTransforms[i](element, options); } } function trimEndingWhitespace (el) { // remove trailing whitespace node if (!inPre) { var lastNode; while ( (lastNode = el.children[el.children.length - 1]) && lastNode.type === 3 && lastNode.text === ' ' ) { el.children.pop(); } } } function checkRootConstraints (el) { if (el.tag === 'slot' || el.tag === 'template') { warnOnce( "Cannot use <" + (el.tag) + "> as component root element because it may " + 'contain multiple nodes.', { start: el.start } ); } if (el.attrsMap.hasOwnProperty('v-for')) { warnOnce( 'Cannot use v-for on stateful component root element because ' + 'it renders multiple elements.', el.rawAttrsMap['v-for'] ); } } parseHTML(template, { warn: warn$2, expectHTML: options.expectHTML, isUnaryTag: options.isUnaryTag, canBeLeftOpenTag: options.canBeLeftOpenTag, shouldDecodeNewlines: options.shouldDecodeNewlines, shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref, shouldKeepComment: options.comments, outputSourceRange: options.outputSourceRange, start: function start (tag, attrs, unary, start$1, end) { // check namespace. // inherit parent ns if there is one var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag); // handle IE svg bug /* istanbul ignore if */ if (isIE && ns === 'svg') { attrs = guardIESVGBug(attrs); } var element = createASTElement(tag, attrs, currentParent); if (ns) { element.ns = ns; } if (false) { if (options.outputSourceRange) { element.start = start$1; element.end = end; element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) { cumulated[attr.name] = attr; return cumulated }, {}); } attrs.forEach(function (attr) { if (invalidAttributeRE.test(attr.name)) { warn$2( "Invalid dynamic argument expression: attribute names cannot contain " + "spaces, quotes, <, >, / or =.", { start: attr.start + attr.name.indexOf("["), end: attr.start + attr.name.length } ); } }); } if (isForbiddenTag(element) && !isServerRendering()) { element.forbidden = true; "production" !== 'production' && warn$2( 'Templates should only be responsible for mapping the state to the ' + 'UI. Avoid placing tags with side-effects in your templates, such as ' + "<" + tag + ">" + ', as they will not be parsed.', { start: element.start } ); } // apply pre-transforms for (var i = 0; i < preTransforms.length; i++) { element = preTransforms[i](element, options) || element; } if (!inVPre) { processPre(element); if (element.pre) { inVPre = true; } } if (platformIsPreTag(element.tag)) { inPre = true; } if (inVPre) { processRawAttrs(element); } else if (!element.processed) { // structural directives processFor(element); processIf(element); processOnce(element); } if (!root) { root = element; if (false) { checkRootConstraints(root); } } if (!unary) { currentParent = element; stack.push(element); } else { closeElement(element); } }, end: function end (tag, start, end$1) { var element = stack[stack.length - 1]; // pop stack stack.length -= 1; currentParent = stack[stack.length - 1]; if (false) { element.end = end$1; } closeElement(element); }, chars: function chars (text, start, end) { if (!currentParent) { if (false) { if (text === template) { warnOnce( 'Component template requires a root element, rather than just text.', { start: start } ); } else if ((text = text.trim())) { warnOnce( ("text \"" + text + "\" outside root element will be ignored."), { start: start } ); } } return } // IE textarea placeholder bug /* istanbul ignore if */ if (isIE && currentParent.tag === 'textarea' && currentParent.attrsMap.placeholder === text ) { return } var children = currentParent.children; if (inPre || text.trim()) { text = isTextTag(currentParent) ? text : decodeHTMLCached(text); } else if (!children.length) { // remove the whitespace-only node right after an opening tag text = ''; } else if (whitespaceOption) { if (whitespaceOption === 'condense') { // in condense mode, remove the whitespace node if it contains // line break, otherwise condense to a single space text = lineBreakRE.test(text) ? '' : ' '; } else { text = ' '; } } else { text = preserveWhitespace ? ' ' : ''; } if (text) { if (!inPre && whitespaceOption === 'condense') { // condense consecutive whitespaces into single space text = text.replace(whitespaceRE$1, ' '); } var res; var child; if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) { child = { type: 2, expression: res.expression, tokens: res.tokens, text: text }; } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') { child = { type: 3, text: text }; } if (child) { if (false) { child.start = start; child.end = end; } children.push(child); } } }, comment: function comment (text, start, end) { // adding anything as a sibling to the root node is forbidden // comments should still be allowed, but ignored if (currentParent) { var child = { type: 3, text: text, isComment: true }; if (false) { child.start = start; child.end = end; } currentParent.children.push(child); } } }); return root } function processPre (el) { if (getAndRemoveAttr(el, 'v-pre') != null) { el.pre = true; } } function processRawAttrs (el) { var list = el.attrsList; var len = list.length; if (len) { var attrs = el.attrs = new Array(len); for (var i = 0; i < len; i++) { attrs[i] = { name: list[i].name, value: JSON.stringify(list[i].value) }; if (list[i].start != null) { attrs[i].start = list[i].start; attrs[i].end = list[i].end; } } } else if (!el.pre) { // non root node in pre blocks with no attributes el.plain = true; } } function processElement ( element, options ) { processKey(element); // determine whether this is a plain element after // removing structural attributes element.plain = ( !element.key && !element.scopedSlots && !element.attrsList.length ); processRef(element); processSlotContent(element); processSlotOutlet(element); processComponent(element); for (var i = 0; i < transforms.length; i++) { element = transforms[i](element, options) || element; } processAttrs(element); return element } function processKey (el) { var exp = getBindingAttr(el, 'key'); if (exp) { if (false) { if (el.tag === 'template') { warn$2( "<template> cannot be keyed. Place the key on real elements instead.", getRawBindingAttr(el, 'key') ); } if (el.for) { var iterator = el.iterator2 || el.iterator1; var parent = el.parent; if (iterator && iterator === exp && parent && parent.tag === 'transition-group') { warn$2( "Do not use v-for index as key on <transition-group> children, " + "this is the same as not using keys.", getRawBindingAttr(el, 'key'), true /* tip */ ); } } } el.key = exp; } } function processRef (el) { var ref = getBindingAttr(el, 'ref'); if (ref) { el.ref = ref; el.refInFor = checkInFor(el); } } function processFor (el) { var exp; if ((exp = getAndRemoveAttr(el, 'v-for'))) { var res = parseFor(exp); if (res) { extend(el, res); } else if (false) { warn$2( ("Invalid v-for expression: " + exp), el.rawAttrsMap['v-for'] ); } } } function parseFor (exp) { var inMatch = exp.match(forAliasRE); if (!inMatch) { return } var res = {}; res.for = inMatch[2].trim(); var alias = inMatch[1].trim().replace(stripParensRE, ''); var iteratorMatch = alias.match(forIteratorRE); if (iteratorMatch) { res.alias = alias.replace(forIteratorRE, '').trim(); res.iterator1 = iteratorMatch[1].trim(); if (iteratorMatch[2]) { res.iterator2 = iteratorMatch[2].trim(); } } else { res.alias = alias; } return res } function processIf (el) { var exp = getAndRemoveAttr(el, 'v-if'); if (exp) { el.if = exp; addIfCondition(el, { exp: exp, block: el }); } else { if (getAndRemoveAttr(el, 'v-else') != null) { el.else = true; } var elseif = getAndRemoveAttr(el, 'v-else-if'); if (elseif) { el.elseif = elseif; } } } function processIfConditions (el, parent) { var prev = findPrevElement(parent.children); if (prev && prev.if) { addIfCondition(prev, { exp: el.elseif, block: el }); } else if (false) { warn$2( "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " + "used on element <" + (el.tag) + "> without corresponding v-if.", el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else'] ); } } function findPrevElement (children) { var i = children.length; while (i--) { if (children[i].type === 1) { return children[i] } else { if (false) { warn$2( "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " + "will be ignored.", children[i] ); } children.pop(); } } } function addIfCondition (el, condition) { if (!el.ifConditions) { el.ifConditions = []; } el.ifConditions.push(condition); } function processOnce (el) { var once$$1 = getAndRemoveAttr(el, 'v-once'); if (once$$1 != null) { el.once = true; } } // handle content being passed to a component as slot, // e.g. <template slot="xxx">, <div slot-scope="xxx"> function processSlotContent (el) { var slotScope; if (el.tag === 'template') { slotScope = getAndRemoveAttr(el, 'scope'); /* istanbul ignore if */ if (false) { warn$2( "the \"scope\" attribute for scoped slots have been deprecated and " + "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " + "can also be used on plain elements in addition to <template> to " + "denote scoped slots.", el.rawAttrsMap['scope'], true ); } el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope'); } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) { /* istanbul ignore if */ if (false) { warn$2( "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " + "(v-for takes higher priority). Use a wrapper <template> for the " + "scoped slot to make it clearer.", el.rawAttrsMap['slot-scope'], true ); } el.slotScope = slotScope; } // slot="xxx" var slotTarget = getBindingAttr(el, 'slot'); if (slotTarget) { el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget; el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']); // preserve slot as an attribute for native shadow DOM compat // only for non-scoped slots. if (el.tag !== 'template' && !el.slotScope) { addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot')); } } // 2.6 v-slot syntax { if (el.tag === 'template') { // v-slot on <template> var slotBinding = getAndRemoveAttrByRegex(el, slotRE); if (slotBinding) { if (false) { if (el.slotTarget || el.slotScope) { warn$2( "Unexpected mixed usage of different slot syntaxes.", el ); } if (el.parent && !maybeComponent(el.parent)) { warn$2( "<template v-slot> can only appear at the root level inside " + "the receiving component", el ); } } var ref = getSlotName(slotBinding); var name = ref.name; var dynamic = ref.dynamic; el.slotTarget = name; el.slotTargetDynamic = dynamic; el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf } } else { // v-slot on component, denotes default slot var slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE); if (slotBinding$1) { if (false) { if (!maybeComponent(el)) { warn$2( "v-slot can only be used on components or <template>.", slotBinding$1 ); } if (el.slotScope || el.slotTarget) { warn$2( "Unexpected mixed usage of different slot syntaxes.", el ); } if (el.scopedSlots) { warn$2( "To avoid scope ambiguity, the default slot should also use " + "<template> syntax when there are other named slots.", slotBinding$1 ); } } // add the component's children to its default slot var slots = el.scopedSlots || (el.scopedSlots = {}); var ref$1 = getSlotName(slotBinding$1); var name$1 = ref$1.name; var dynamic$1 = ref$1.dynamic; var slotContainer = slots[name$1] = createASTElement('template', [], el); slotContainer.slotTarget = name$1; slotContainer.slotTargetDynamic = dynamic$1; slotContainer.children = el.children.filter(function (c) { if (!c.slotScope) { c.parent = slotContainer; return true } }); slotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken; // remove children as they are returned from scopedSlots now el.children = []; // mark el non-plain so data gets generated el.plain = false; } } } } function getSlotName (binding) { var name = binding.name.replace(slotRE, ''); if (!name) { if (binding.name[0] !== '#') { name = 'default'; } else if (false) { warn$2( "v-slot shorthand syntax requires a slot name.", binding ); } } return dynamicArgRE.test(name) // dynamic [name] ? { name: name.slice(1, -1), dynamic: true } // static name : { name: ("\"" + name + "\""), dynamic: false } } // handle <slot/> outlets function processSlotOutlet (el) { if (el.tag === 'slot') { el.slotName = getBindingAttr(el, 'name'); if (false) { warn$2( "`key` does not work on <slot> because slots are abstract outlets " + "and can possibly expand into multiple elements. " + "Use the key on a wrapping element instead.", getRawBindingAttr(el, 'key') ); } } } function processComponent (el) { var binding; if ((binding = getBindingAttr(el, 'is'))) { el.component = binding; } if (getAndRemoveAttr(el, 'inline-template') != null) { el.inlineTemplate = true; } } function processAttrs (el) { var list = el.attrsList; var i, l, name, rawName, value, modifiers, syncGen, isDynamic; for (i = 0, l = list.length; i < l; i++) { name = rawName = list[i].name; value = list[i].value; if (dirRE.test(name)) { // mark element as dynamic el.hasBindings = true; // modifiers modifiers = parseModifiers(name.replace(dirRE, '')); // support .foo shorthand syntax for the .prop modifier if (modifiers) { name = name.replace(modifierRE, ''); } if (bindRE.test(name)) { // v-bind name = name.replace(bindRE, ''); value = parseFilters(value); isDynamic = dynamicArgRE.test(name); if (isDynamic) { name = name.slice(1, -1); } if ( false ) { warn$2( ("The value for a v-bind expression cannot be empty. Found in \"v-bind:" + name + "\"") ); } if (modifiers) { if (modifiers.prop && !isDynamic) { name = camelize(name); if (name === 'innerHtml') { name = 'innerHTML'; } } if (modifiers.camel && !isDynamic) { name = camelize(name); } if (modifiers.sync) { syncGen = genAssignmentCode(value, "$event"); if (!isDynamic) { addHandler( el, ("update:" + (camelize(name))), syncGen, null, false, warn$2, list[i] ); if (hyphenate(name) !== camelize(name)) { addHandler( el, ("update:" + (hyphenate(name))), syncGen, null, false, warn$2, list[i] ); } } else { // handler w/ dynamic event name addHandler( el, ("\"update:\"+(" + name + ")"), syncGen, null, false, warn$2, list[i], true // dynamic ); } } } if ((modifiers && modifiers.prop) || ( !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name) )) { addProp(el, name, value, list[i], isDynamic); } else { addAttr(el, name, value, list[i], isDynamic); } } else if (onRE.test(name)) { // v-on name = name.replace(onRE, ''); isDynamic = dynamicArgRE.test(name); if (isDynamic) { name = name.slice(1, -1); } addHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic); } else { // normal directives name = name.replace(dirRE, ''); // parse arg var argMatch = name.match(argRE); var arg = argMatch && argMatch[1]; isDynamic = false; if (arg) { name = name.slice(0, -(arg.length + 1)); if (dynamicArgRE.test(arg)) { arg = arg.slice(1, -1); isDynamic = true; } } addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]); if (false) { checkForAliasModel(el, value); } } } else { // literal attribute if (false) { var res = parseText(value, delimiters); if (res) { warn$2( name + "=\"" + value + "\": " + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div id="{{ val }}">, use <div :id="val">.', list[i] ); } } addAttr(el, name, JSON.stringify(value), list[i]); // #6887 firefox doesn't update muted state if set via attribute // even immediately after element creation if (!el.component && name === 'muted' && platformMustUseProp(el.tag, el.attrsMap.type, name)) { addProp(el, name, 'true', list[i]); } } } } function checkInFor (el) { var parent = el; while (parent) { if (parent.for !== undefined) { return true } parent = parent.parent; } return false } function parseModifiers (name) { var match = name.match(modifierRE); if (match) { var ret = {}; match.forEach(function (m) { ret[m.slice(1)] = true; }); return ret } } function makeAttrsMap (attrs) { var map = {}; for (var i = 0, l = attrs.length; i < l; i++) { if ( false ) { warn$2('duplicate attribute: ' + attrs[i].name, attrs[i]); } map[attrs[i].name] = attrs[i].value; } return map } // for script (e.g. type="x/template") or style, do not decode content function isTextTag (el) { return el.tag === 'script' || el.tag === 'style' } function isForbiddenTag (el) { return ( el.tag === 'style' || (el.tag === 'script' && ( !el.attrsMap.type || el.attrsMap.type === 'text/javascript' )) ) } var ieNSBug = /^xmlns:NS\d+/; var ieNSPrefix = /^NS\d+:/; /* istanbul ignore next */ function guardIESVGBug (attrs) { var res = []; for (var i = 0; i < attrs.length; i++) { var attr = attrs[i]; if (!ieNSBug.test(attr.name)) { attr.name = attr.name.replace(ieNSPrefix, ''); res.push(attr); } } return res } function checkForAliasModel (el, value) { var _el = el; while (_el) { if (_el.for && _el.alias === value) { warn$2( "<" + (el.tag) + " v-model=\"" + value + "\">: " + "You are binding v-model directly to a v-for iteration alias. " + "This will not be able to modify the v-for source array because " + "writing to the alias is like modifying a function local variable. " + "Consider using an array of objects and use v-model on an object property instead.", el.rawAttrsMap['v-model'] ); } _el = _el.parent; } } /* */ function preTransformNode (el, options) { if (el.tag === 'input') { var map = el.attrsMap; if (!map['v-model']) { return } var typeBinding; if (map[':type'] || map['v-bind:type']) { typeBinding = getBindingAttr(el, 'type'); } if (!map.type && !typeBinding && map['v-bind']) { typeBinding = "(" + (map['v-bind']) + ").type"; } if (typeBinding) { var ifCondition = getAndRemoveAttr(el, 'v-if', true); var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : ""; var hasElse = getAndRemoveAttr(el, 'v-else', true) != null; var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true); // 1. checkbox var branch0 = cloneASTElement(el); // process for on the main node processFor(branch0); addRawAttr(branch0, 'type', 'checkbox'); processElement(branch0, options); branch0.processed = true; // prevent it from double-processed branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra; addIfCondition(branch0, { exp: branch0.if, block: branch0 }); // 2. add radio else-if condition var branch1 = cloneASTElement(el); getAndRemoveAttr(branch1, 'v-for', true); addRawAttr(branch1, 'type', 'radio'); processElement(branch1, options); addIfCondition(branch0, { exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra, block: branch1 }); // 3. other var branch2 = cloneASTElement(el); getAndRemoveAttr(branch2, 'v-for', true); addRawAttr(branch2, ':type', typeBinding); processElement(branch2, options); addIfCondition(branch0, { exp: ifCondition, block: branch2 }); if (hasElse) { branch0.else = true; } else if (elseIfCondition) { branch0.elseif = elseIfCondition; } return branch0 } } } function cloneASTElement (el) { return createASTElement(el.tag, el.attrsList.slice(), el.parent) } var model$1 = { preTransformNode: preTransformNode }; var modules$1 = [ klass$1, style$1, model$1 ]; /* */ function text (el, dir) { if (dir.value) { addProp(el, 'textContent', ("_s(" + (dir.value) + ")"), dir); } } /* */ function html (el, dir) { if (dir.value) { addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"), dir); } } var directives$1 = { model: model, text: text, html: html }; /* */ var baseOptions = { expectHTML: true, modules: modules$1, directives: directives$1, isPreTag: isPreTag, isUnaryTag: isUnaryTag, mustUseProp: mustUseProp, canBeLeftOpenTag: canBeLeftOpenTag, isReservedTag: isReservedTag, getTagNamespace: getTagNamespace, staticKeys: genStaticKeys(modules$1) }; /* */ var isStaticKey; var isPlatformReservedTag; var genStaticKeysCached = cached(genStaticKeys$1); /** * Goal of the optimizer: walk the generated template AST tree * and detect sub-trees that are purely static, i.e. parts of * the DOM that never needs to change. * * Once we detect these sub-trees, we can: * * 1. Hoist them into constants, so that we no longer need to * create fresh nodes for them on each re-render; * 2. Completely skip them in the patching process. */ function optimize (root, options) { if (!root) { return } isStaticKey = genStaticKeysCached(options.staticKeys || ''); isPlatformReservedTag = options.isReservedTag || no; // first pass: mark all non-static nodes. markStatic$1(root); // second pass: mark static roots. markStaticRoots(root, false); } function genStaticKeys$1 (keys) { return makeMap( 'type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' + (keys ? ',' + keys : '') ) } function markStatic$1 (node) { node.static = isStatic(node); if (node.type === 1) { // do not make component slot content static. this avoids // 1. components not able to mutate slot nodes // 2. static slot content fails for hot-reloading if ( !isPlatformReservedTag(node.tag) && node.tag !== 'slot' && node.attrsMap['inline-template'] == null ) { return } for (var i = 0, l = node.children.length; i < l; i++) { var child = node.children[i]; markStatic$1(child); if (!child.static) { node.static = false; } } if (node.ifConditions) { for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) { var block = node.ifConditions[i$1].block; markStatic$1(block); if (!block.static) { node.static = false; } } } } } function markStaticRoots (node, isInFor) { if (node.type === 1) { if (node.static || node.once) { node.staticInFor = isInFor; } // For a node to qualify as a static root, it should have children that // are not just static text. Otherwise the cost of hoisting out will // outweigh the benefits and it's better off to just always render it fresh. if (node.static && node.children.length && !( node.children.length === 1 && node.children[0].type === 3 )) { node.staticRoot = true; return } else { node.staticRoot = false; } if (node.children) { for (var i = 0, l = node.children.length; i < l; i++) { markStaticRoots(node.children[i], isInFor || !!node.for); } } if (node.ifConditions) { for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) { markStaticRoots(node.ifConditions[i$1].block, isInFor); } } } } function isStatic (node) { if (node.type === 2) { // expression return false } if (node.type === 3) { // text return true } return !!(node.pre || ( !node.hasBindings && // no dynamic bindings !node.if && !node.for && // not v-if or v-for or v-else !isBuiltInTag(node.tag) && // not a built-in isPlatformReservedTag(node.tag) && // not a component !isDirectChildOfTemplateFor(node) && Object.keys(node).every(isStaticKey) )) } function isDirectChildOfTemplateFor (node) { while (node.parent) { node = node.parent; if (node.tag !== 'template') { return false } if (node.for) { return true } } return false } /* */ var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/; var fnInvokeRE = /\([^)]*?\);*$/; var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/; // KeyboardEvent.keyCode aliases var keyCodes = { esc: 27, tab: 9, enter: 13, space: 32, up: 38, left: 37, right: 39, down: 40, 'delete': [8, 46] }; // KeyboardEvent.key aliases var keyNames = { // #7880: IE11 and Edge use `Esc` for Escape key name. esc: ['Esc', 'Escape'], tab: 'Tab', enter: 'Enter', // #9112: IE11 uses `Spacebar` for Space key name. space: [' ', 'Spacebar'], // #7806: IE11 uses key names without `Arrow` prefix for arrow keys. up: ['Up', 'ArrowUp'], left: ['Left', 'ArrowLeft'], right: ['Right', 'ArrowRight'], down: ['Down', 'ArrowDown'], // #9112: IE11 uses `Del` for Delete key name. 'delete': ['Backspace', 'Delete', 'Del'] }; // #4868: modifiers that prevent the execution of the listener // need to explicitly return null so that we can determine whether to remove // the listener for .once var genGuard = function (condition) { return ("if(" + condition + ")return null;"); }; var modifierCode = { stop: '$event.stopPropagation();', prevent: '$event.preventDefault();', self: genGuard("$event.target !== $event.currentTarget"), ctrl: genGuard("!$event.ctrlKey"), shift: genGuard("!$event.shiftKey"), alt: genGuard("!$event.altKey"), meta: genGuard("!$event.metaKey"), left: genGuard("'button' in $event && $event.button !== 0"), middle: genGuard("'button' in $event && $event.button !== 1"), right: genGuard("'button' in $event && $event.button !== 2") }; function genHandlers ( events, isNative ) { var prefix = isNative ? 'nativeOn:' : 'on:'; var staticHandlers = ""; var dynamicHandlers = ""; for (var name in events) { var handlerCode = genHandler(events[name]); if (events[name] && events[name].dynamic) { dynamicHandlers += name + "," + handlerCode + ","; } else { staticHandlers += "\"" + name + "\":" + handlerCode + ","; } } staticHandlers = "{" + (staticHandlers.slice(0, -1)) + "}"; if (dynamicHandlers) { return prefix + "_d(" + staticHandlers + ",[" + (dynamicHandlers.slice(0, -1)) + "])" } else { return prefix + staticHandlers } } function genHandler (handler) { if (!handler) { return 'function(){}' } if (Array.isArray(handler)) { return ("[" + (handler.map(function (handler) { return genHandler(handler); }).join(',')) + "]") } var isMethodPath = simplePathRE.test(handler.value); var isFunctionExpression = fnExpRE.test(handler.value); var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, '')); if (!handler.modifiers) { if (isMethodPath || isFunctionExpression) { return handler.value } return ("function($event){" + (isFunctionInvocation ? ("return " + (handler.value)) : handler.value) + "}") // inline statement } else { var code = ''; var genModifierCode = ''; var keys = []; for (var key in handler.modifiers) { if (modifierCode[key]) { genModifierCode += modifierCode[key]; // left/right if (keyCodes[key]) { keys.push(key); } } else if (key === 'exact') { var modifiers = (handler.modifiers); genModifierCode += genGuard( ['ctrl', 'shift', 'alt', 'meta'] .filter(function (keyModifier) { return !modifiers[keyModifier]; }) .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); }) .join('||') ); } else { keys.push(key); } } if (keys.length) { code += genKeyFilter(keys); } // Make sure modifiers like prevent and stop get executed after key filtering if (genModifierCode) { code += genModifierCode; } var handlerCode = isMethodPath ? ("return " + (handler.value) + ".apply(null, arguments)") : isFunctionExpression ? ("return (" + (handler.value) + ").apply(null, arguments)") : isFunctionInvocation ? ("return " + (handler.value)) : handler.value; return ("function($event){" + code + handlerCode + "}") } } function genKeyFilter (keys) { return ( // make sure the key filters only apply to KeyboardEvents // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake // key events that do not have keyCode property... "if(!$event.type.indexOf('key')&&" + (keys.map(genFilterCode).join('&&')) + ")return null;" ) } function genFilterCode (key) { var keyVal = parseInt(key, 10); if (keyVal) { return ("$event.keyCode!==" + keyVal) } var keyCode = keyCodes[key]; var keyName = keyNames[key]; return ( "_k($event.keyCode," + (JSON.stringify(key)) + "," + (JSON.stringify(keyCode)) + "," + "$event.key," + "" + (JSON.stringify(keyName)) + ")" ) } /* */ function on (el, dir) { if (false) { warn("v-on without argument does not support modifiers."); } el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); }; } /* */ function bind$1 (el, dir) { el.wrapData = function (code) { return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")") }; } /* */ var baseDirectives = { on: on, bind: bind$1, cloak: noop }; /* */ var CodegenState = function CodegenState (options) { this.options = options; this.warn = options.warn || baseWarn; this.transforms = pluckModuleFunction(options.modules, 'transformCode'); this.dataGenFns = pluckModuleFunction(options.modules, 'genData'); this.directives = extend(extend({}, baseDirectives), options.directives); var isReservedTag = options.isReservedTag || no; this.maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); }; this.onceId = 0; this.staticRenderFns = []; this.pre = false; }; function generate ( ast, options ) { var state = new CodegenState(options); // fix #11483, Root level <script> tags should not be rendered. var code = ast ? (ast.tag === 'script' ? 'null' : genElement(ast, state)) : '_c("div")'; return { render: ("with(this){return " + code + "}"), staticRenderFns: state.staticRenderFns } } function genElement (el, state) { if (el.parent) { el.pre = el.pre || el.parent.pre; } if (el.staticRoot && !el.staticProcessed) { return genStatic(el, state) } else if (el.once && !el.onceProcessed) { return genOnce(el, state) } else if (el.for && !el.forProcessed) { return genFor(el, state) } else if (el.if && !el.ifProcessed) { return genIf(el, state) } else if (el.tag === 'template' && !el.slotTarget && !state.pre) { return genChildren(el, state) || 'void 0' } else if (el.tag === 'slot') { return genSlot(el, state) } else { // component or element var code; if (el.component) { code = genComponent(el.component, el, state); } else { var data; if (!el.plain || (el.pre && state.maybeComponent(el))) { data = genData$2(el, state); } var children = el.inlineTemplate ? null : genChildren(el, state, true); code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")"; } // module transforms for (var i = 0; i < state.transforms.length; i++) { code = state.transforms[i](el, code); } return code } } // hoist static sub-trees out function genStatic (el, state) { el.staticProcessed = true; // Some elements (templates) need to behave differently inside of a v-pre // node. All pre nodes are static roots, so we can use this as a location to // wrap a state change and reset it upon exiting the pre node. var originalPreState = state.pre; if (el.pre) { state.pre = el.pre; } state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}")); state.pre = originalPreState; return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")") } // v-once function genOnce (el, state) { el.onceProcessed = true; if (el.if && !el.ifProcessed) { return genIf(el, state) } else if (el.staticInFor) { var key = ''; var parent = el.parent; while (parent) { if (parent.for) { key = parent.key; break } parent = parent.parent; } if (!key) { "production" !== 'production' && state.warn( "v-once can only be used inside v-for that is keyed. ", el.rawAttrsMap['v-once'] ); return genElement(el, state) } return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")") } else { return genStatic(el, state) } } function genIf ( el, state, altGen, altEmpty ) { el.ifProcessed = true; // avoid recursion return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty) } function genIfConditions ( conditions, state, altGen, altEmpty ) { if (!conditions.length) { return altEmpty || '_e()' } var condition = conditions.shift(); if (condition.exp) { return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty))) } else { return ("" + (genTernaryExp(condition.block))) } // v-if with v-once should generate code like (a)?_m(0):_m(1) function genTernaryExp (el) { return altGen ? altGen(el, state) : el.once ? genOnce(el, state) : genElement(el, state) } } function genFor ( el, state, altGen, altHelper ) { var exp = el.for; var alias = el.alias; var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : ''; var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : ''; if (false ) { state.warn( "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " + "v-for should have explicit keys. " + "See https://vuejs.org/guide/list.html#key for more info.", el.rawAttrsMap['v-for'], true /* tip */ ); } el.forProcessed = true; // avoid recursion return (altHelper || '_l') + "((" + exp + ")," + "function(" + alias + iterator1 + iterator2 + "){" + "return " + ((altGen || genElement)(el, state)) + '})' } function genData$2 (el, state) { var data = '{'; // directives first. // directives may mutate the el's other properties before they are generated. var dirs = genDirectives(el, state); if (dirs) { data += dirs + ','; } // key if (el.key) { data += "key:" + (el.key) + ","; } // ref if (el.ref) { data += "ref:" + (el.ref) + ","; } if (el.refInFor) { data += "refInFor:true,"; } // pre if (el.pre) { data += "pre:true,"; } // record original tag name for components using "is" attribute if (el.component) { data += "tag:\"" + (el.tag) + "\","; } // module data generation functions for (var i = 0; i < state.dataGenFns.length; i++) { data += state.dataGenFns[i](el); } // attributes if (el.attrs) { data += "attrs:" + (genProps(el.attrs)) + ","; } // DOM props if (el.props) { data += "domProps:" + (genProps(el.props)) + ","; } // event handlers if (el.events) { data += (genHandlers(el.events, false)) + ","; } if (el.nativeEvents) { data += (genHandlers(el.nativeEvents, true)) + ","; } // slot target // only for non-scoped slots if (el.slotTarget && !el.slotScope) { data += "slot:" + (el.slotTarget) + ","; } // scoped slots if (el.scopedSlots) { data += (genScopedSlots(el, el.scopedSlots, state)) + ","; } // component v-model if (el.model) { data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},"; } // inline-template if (el.inlineTemplate) { var inlineTemplate = genInlineTemplate(el, state); if (inlineTemplate) { data += inlineTemplate + ","; } } data = data.replace(/,$/, '') + '}'; // v-bind dynamic argument wrap // v-bind with dynamic arguments must be applied using the same v-bind object // merge helper so that class/style/mustUseProp attrs are handled correctly. if (el.dynamicAttrs) { data = "_b(" + data + ",\"" + (el.tag) + "\"," + (genProps(el.dynamicAttrs)) + ")"; } // v-bind data wrap if (el.wrapData) { data = el.wrapData(data); } // v-on data wrap if (el.wrapListeners) { data = el.wrapListeners(data); } return data } function genDirectives (el, state) { var dirs = el.directives; if (!dirs) { return } var res = 'directives:['; var hasRuntime = false; var i, l, dir, needRuntime; for (i = 0, l = dirs.length; i < l; i++) { dir = dirs[i]; needRuntime = true; var gen = state.directives[dir.name]; if (gen) { // compile-time directive that manipulates AST. // returns true if it also needs a runtime counterpart. needRuntime = !!gen(el, dir, state.warn); } if (needRuntime) { hasRuntime = true; res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:" + (dir.isDynamicArg ? dir.arg : ("\"" + (dir.arg) + "\""))) : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},"; } } if (hasRuntime) { return res.slice(0, -1) + ']' } } function genInlineTemplate (el, state) { var ast = el.children[0]; if (false) { state.warn( 'Inline-template components must have exactly one child element.', { start: el.start } ); } if (ast && ast.type === 1) { var inlineRenderFns = generate(ast, state.options); return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}") } } function genScopedSlots ( el, slots, state ) { // by default scoped slots are considered "stable", this allows child // components with only scoped slots to skip forced updates from parent. // but in some cases we have to bail-out of this optimization // for example if the slot contains dynamic names, has v-if or v-for on them... var needsForceUpdate = el.for || Object.keys(slots).some(function (key) { var slot = slots[key]; return ( slot.slotTargetDynamic || slot.if || slot.for || containsSlotChild(slot) // is passing down slot from parent which may be dynamic ) }); // #9534: if a component with scoped slots is inside a conditional branch, // it's possible for the same component to be reused but with different // compiled slot content. To avoid that, we generate a unique key based on // the generated code of all the slot contents. var needsKey = !!el.if; // OR when it is inside another scoped slot or v-for (the reactivity may be // disconnected due to the intermediate scope variable) // #9438, #9506 // TODO: this can be further optimized by properly analyzing in-scope bindings // and skip force updating ones that do not actually use scope variables. if (!needsForceUpdate) { var parent = el.parent; while (parent) { if ( (parent.slotScope && parent.slotScope !== emptySlotScopeToken) || parent.for ) { needsForceUpdate = true; break } if (parent.if) { needsKey = true; } parent = parent.parent; } } var generatedSlots = Object.keys(slots) .map(function (key) { return genScopedSlot(slots[key], state); }) .join(','); return ("scopedSlots:_u([" + generatedSlots + "]" + (needsForceUpdate ? ",null,true" : "") + (!needsForceUpdate && needsKey ? (",null,false," + (hash(generatedSlots))) : "") + ")") } function hash(str) { var hash = 5381; var i = str.length; while(i) { hash = (hash * 33) ^ str.charCodeAt(--i); } return hash >>> 0 } function containsSlotChild (el) { if (el.type === 1) { if (el.tag === 'slot') { return true } return el.children.some(containsSlotChild) } return false } function genScopedSlot ( el, state ) { var isLegacySyntax = el.attrsMap['slot-scope']; if (el.if && !el.ifProcessed && !isLegacySyntax) { return genIf(el, state, genScopedSlot, "null") } if (el.for && !el.forProcessed) { return genFor(el, state, genScopedSlot) } var slotScope = el.slotScope === emptySlotScopeToken ? "" : String(el.slotScope); var fn = "function(" + slotScope + "){" + "return " + (el.tag === 'template' ? el.if && isLegacySyntax ? ("(" + (el.if) + ")?" + (genChildren(el, state) || 'undefined') + ":undefined") : genChildren(el, state) || 'undefined' : genElement(el, state)) + "}"; // reverse proxy v-slot without scope on this.$slots var reverseProxy = slotScope ? "" : ",proxy:true"; return ("{key:" + (el.slotTarget || "\"default\"") + ",fn:" + fn + reverseProxy + "}") } function genChildren ( el, state, checkSkip, altGenElement, altGenNode ) { var children = el.children; if (children.length) { var el$1 = children[0]; // optimize single v-for if (children.length === 1 && el$1.for && el$1.tag !== 'template' && el$1.tag !== 'slot' ) { var normalizationType = checkSkip ? state.maybeComponent(el$1) ? ",1" : ",0" : ""; return ("" + ((altGenElement || genElement)(el$1, state)) + normalizationType) } var normalizationType$1 = checkSkip ? getNormalizationType(children, state.maybeComponent) : 0; var gen = altGenNode || genNode; return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType$1 ? ("," + normalizationType$1) : '')) } } // determine the normalization needed for the children array. // 0: no normalization needed // 1: simple normalization needed (possible 1-level deep nested array) // 2: full normalization needed function getNormalizationType ( children, maybeComponent ) { var res = 0; for (var i = 0; i < children.length; i++) { var el = children[i]; if (el.type !== 1) { continue } if (needsNormalization(el) || (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) { res = 2; break } if (maybeComponent(el) || (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) { res = 1; } } return res } function needsNormalization (el) { return el.for !== undefined || el.tag === 'template' || el.tag === 'slot' } function genNode (node, state) { if (node.type === 1) { return genElement(node, state) } else if (node.type === 3 && node.isComment) { return genComment(node) } else { return genText(node) } } function genText (text) { return ("_v(" + (text.type === 2 ? text.expression // no need for () because already wrapped in _s() : transformSpecialNewlines(JSON.stringify(text.text))) + ")") } function genComment (comment) { return ("_e(" + (JSON.stringify(comment.text)) + ")") } function genSlot (el, state) { var slotName = el.slotName || '"default"'; var children = genChildren(el, state); var res = "_t(" + slotName + (children ? (",function(){return " + children + "}") : ''); var attrs = el.attrs || el.dynamicAttrs ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) { return ({ // slot props are camelized name: camelize(attr.name), value: attr.value, dynamic: attr.dynamic }); })) : null; var bind$$1 = el.attrsMap['v-bind']; if ((attrs || bind$$1) && !children) { res += ",null"; } if (attrs) { res += "," + attrs; } if (bind$$1) { res += (attrs ? '' : ',null') + "," + bind$$1; } return res + ')' } // componentName is el.component, take it as argument to shun flow's pessimistic refinement function genComponent ( componentName, el, state ) { var children = el.inlineTemplate ? null : genChildren(el, state, true); return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")") } function genProps (props) { var staticProps = ""; var dynamicProps = ""; for (var i = 0; i < props.length; i++) { var prop = props[i]; var value = transformSpecialNewlines(prop.value); if (prop.dynamic) { dynamicProps += (prop.name) + "," + value + ","; } else { staticProps += "\"" + (prop.name) + "\":" + value + ","; } } staticProps = "{" + (staticProps.slice(0, -1)) + "}"; if (dynamicProps) { return ("_d(" + staticProps + ",[" + (dynamicProps.slice(0, -1)) + "])") } else { return staticProps } } // #3895, #4268 function transformSpecialNewlines (text) { return text .replace(/\u2028/g, '\\u2028') .replace(/\u2029/g, '\\u2029') } /* */ // these keywords should not appear inside expressions, but operators like // typeof, instanceof and in are allowed var prohibitedKeywordRE = new RegExp('\\b' + ( 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' + 'super,throw,while,yield,delete,export,import,return,switch,default,' + 'extends,finally,continue,debugger,function,arguments' ).split(',').join('\\b|\\b') + '\\b'); // these unary operators should not be used as property/method names var unaryOperatorsRE = new RegExp('\\b' + ( 'delete,typeof,void' ).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)'); // strip strings in expressions var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; // detect problematic expressions in a template function detectErrors (ast, warn) { if (ast) { checkNode(ast, warn); } } function checkNode (node, warn) { if (node.type === 1) { for (var name in node.attrsMap) { if (dirRE.test(name)) { var value = node.attrsMap[name]; if (value) { var range = node.rawAttrsMap[name]; if (name === 'v-for') { checkFor(node, ("v-for=\"" + value + "\""), warn, range); } else if (name === 'v-slot' || name[0] === '#') { checkFunctionParameterExpression(value, (name + "=\"" + value + "\""), warn, range); } else if (onRE.test(name)) { checkEvent(value, (name + "=\"" + value + "\""), warn, range); } else { checkExpression(value, (name + "=\"" + value + "\""), warn, range); } } } } if (node.children) { for (var i = 0; i < node.children.length; i++) { checkNode(node.children[i], warn); } } } else if (node.type === 2) { checkExpression(node.expression, node.text, warn, node); } } function checkEvent (exp, text, warn, range) { var stripped = exp.replace(stripStringRE, ''); var keywordMatch = stripped.match(unaryOperatorsRE); if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') { warn( "avoid using JavaScript unary operator as property name: " + "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim()), range ); } checkExpression(exp, text, warn, range); } function checkFor (node, text, warn, range) { checkExpression(node.for || '', text, warn, range); checkIdentifier(node.alias, 'v-for alias', text, warn, range); checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range); checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range); } function checkIdentifier ( ident, type, text, warn, range ) { if (typeof ident === 'string') { try { new Function(("var " + ident + "=_")); } catch (e) { warn(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())), range); } } } function checkExpression (exp, text, warn, range) { try { new Function(("return " + exp)); } catch (e) { var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE); if (keywordMatch) { warn( "avoid using JavaScript keyword as property name: " + "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim()), range ); } else { warn( "invalid expression: " + (e.message) + " in\n\n" + " " + exp + "\n\n" + " Raw expression: " + (text.trim()) + "\n", range ); } } } function checkFunctionParameterExpression (exp, text, warn, range) { try { new Function(exp, ''); } catch (e) { warn( "invalid function parameter expression: " + (e.message) + " in\n\n" + " " + exp + "\n\n" + " Raw expression: " + (text.trim()) + "\n", range ); } } /* */ var range = 2; function generateCodeFrame ( source, start, end ) { if ( start === void 0 ) start = 0; if ( end === void 0 ) end = source.length; var lines = source.split(/\r?\n/); var count = 0; var res = []; for (var i = 0; i < lines.length; i++) { count += lines[i].length + 1; if (count >= start) { for (var j = i - range; j <= i + range || end > count; j++) { if (j < 0 || j >= lines.length) { continue } res.push(("" + (j + 1) + (repeat$1(" ", 3 - String(j + 1).length)) + "| " + (lines[j]))); var lineLength = lines[j].length; if (j === i) { // push underline var pad = start - (count - lineLength) + 1; var length = end > count ? lineLength - pad : end - start; res.push(" | " + repeat$1(" ", pad) + repeat$1("^", length)); } else if (j > i) { if (end > count) { var length$1 = Math.min(end - count, lineLength); res.push(" | " + repeat$1("^", length$1)); } count += lineLength + 1; } } break } } return res.join('\n') } function repeat$1 (str, n) { var result = ''; if (n > 0) { while (true) { // eslint-disable-line if (n & 1) { result += str; } n >>>= 1; if (n <= 0) { break } str += str; } } return result } /* */ function createFunction (code, errors) { try { return new Function(code) } catch (err) { errors.push({ err: err, code: code }); return noop } } function createCompileToFunctionFn (compile) { var cache = Object.create(null); return function compileToFunctions ( template, options, vm ) { options = extend({}, options); var warn$$1 = options.warn || warn; delete options.warn; /* istanbul ignore if */ if (false) { // detect possible CSP restriction try { new Function('return 1'); } catch (e) { if (e.toString().match(/unsafe-eval|CSP/)) { warn$$1( 'It seems you are using the standalone build of Vue.js in an ' + 'environment with Content Security Policy that prohibits unsafe-eval. ' + 'The template compiler cannot work in this environment. Consider ' + 'relaxing the policy to allow unsafe-eval or pre-compiling your ' + 'templates into render functions.' ); } } } // check cache var key = options.delimiters ? String(options.delimiters) + template : template; if (cache[key]) { return cache[key] } // compile var compiled = compile(template, options); // check compilation errors/tips if (false) { if (compiled.errors && compiled.errors.length) { if (options.outputSourceRange) { compiled.errors.forEach(function (e) { warn$$1( "Error compiling template:\n\n" + (e.msg) + "\n\n" + generateCodeFrame(template, e.start, e.end), vm ); }); } else { warn$$1( "Error compiling template:\n\n" + template + "\n\n" + compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n', vm ); } } if (compiled.tips && compiled.tips.length) { if (options.outputSourceRange) { compiled.tips.forEach(function (e) { return tip(e.msg, vm); }); } else { compiled.tips.forEach(function (msg) { return tip(msg, vm); }); } } } // turn code into functions var res = {}; var fnGenErrors = []; res.render = createFunction(compiled.render, fnGenErrors); res.staticRenderFns = compiled.staticRenderFns.map(function (code) { return createFunction(code, fnGenErrors) }); // check function generation errors. // this should only happen if there is a bug in the compiler itself. // mostly for codegen development use /* istanbul ignore if */ if (false) { if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) { warn$$1( "Failed to generate render function:\n\n" + fnGenErrors.map(function (ref) { var err = ref.err; var code = ref.code; return ((err.toString()) + " in\n\n" + code + "\n"); }).join('\n'), vm ); } } return (cache[key] = res) } } /* */ function createCompilerCreator (baseCompile) { return function createCompiler (baseOptions) { function compile ( template, options ) { var finalOptions = Object.create(baseOptions); var errors = []; var tips = []; var warn = function (msg, range, tip) { (tip ? tips : errors).push(msg); }; if (options) { if (false) { // $flow-disable-line var leadingSpaceLength = template.match(/^\s*/)[0].length; warn = function (msg, range, tip) { var data = { msg: msg }; if (range) { if (range.start != null) { data.start = range.start + leadingSpaceLength; } if (range.end != null) { data.end = range.end + leadingSpaceLength; } } (tip ? tips : errors).push(data); }; } // merge custom modules if (options.modules) { finalOptions.modules = (baseOptions.modules || []).concat(options.modules); } // merge custom directives if (options.directives) { finalOptions.directives = extend( Object.create(baseOptions.directives || null), options.directives ); } // copy other options for (var key in options) { if (key !== 'modules' && key !== 'directives') { finalOptions[key] = options[key]; } } } finalOptions.warn = warn; var compiled = baseCompile(template.trim(), finalOptions); if (false) { detectErrors(compiled.ast, warn); } compiled.errors = errors; compiled.tips = tips; return compiled } return { compile: compile, compileToFunctions: createCompileToFunctionFn(compile) } } } /* */ // `createCompilerCreator` allows creating compilers that use alternative // parser/optimizer/codegen, e.g the SSR optimizing compiler. // Here we just export a default compiler using the default parts. var createCompiler = createCompilerCreator(function baseCompile ( template, options ) { var ast = parse(template.trim(), options); if (options.optimize !== false) { optimize(ast, options); } var code = generate(ast, options); return { ast: ast, render: code.render, staticRenderFns: code.staticRenderFns } }); /* */ var ref$1 = createCompiler(baseOptions); var compile = ref$1.compile; var compileToFunctions = ref$1.compileToFunctions; /* */ // check whether current browser encodes a char inside attribute values var div; function getShouldDecode (href) { div = div || document.createElement('div'); div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>"; return div.innerHTML.indexOf(' ') > 0 } // #3663: IE encodes newlines inside attribute values while other browsers don't var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false; // #6828: chrome encodes content in a[href] var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false; /* */ var idToTemplate = cached(function (id) { var el = query(id); return el && el.innerHTML }); var mount = Vue.prototype.$mount; Vue.prototype.$mount = function ( el, hydrating ) { el = el && query(el); /* istanbul ignore if */ if (el === document.body || el === document.documentElement) { "production" !== 'production' && warn( "Do not mount Vue to <html> or <body> - mount to normal elements instead." ); return this } var options = this.$options; // resolve template/el and convert to render function if (!options.render) { var template = options.template; if (template) { if (typeof template === 'string') { if (template.charAt(0) === '#') { template = idToTemplate(template); /* istanbul ignore if */ if (false) { warn( ("Template element not found or is empty: " + (options.template)), this ); } } } else if (template.nodeType) { template = template.innerHTML; } else { if (false) { warn('invalid template option:' + template, this); } return this } } else if (el) { template = getOuterHTML(el); } if (template) { /* istanbul ignore if */ if (false) { mark('compile'); } var ref = compileToFunctions(template, { outputSourceRange: "production" !== 'production', shouldDecodeNewlines: shouldDecodeNewlines, shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref, delimiters: options.delimiters, comments: options.comments }, this); var render = ref.render; var staticRenderFns = ref.staticRenderFns; options.render = render; options.staticRenderFns = staticRenderFns; /* istanbul ignore if */ if (false) { mark('compile end'); measure(("vue " + (this._name) + " compile"), 'compile', 'compile end'); } } } return mount.call(this, el, hydrating) }; /** * Get outerHTML of elements, taking care * of SVG elements in IE as well. */ function getOuterHTML (el) { if (el.outerHTML) { return el.outerHTML } else { var container = document.createElement('div'); container.appendChild(el.cloneNode(true)); return container.innerHTML } } Vue.compile = compileToFunctions; /* harmony default export */ __webpack_exports__["default"] = (Vue); /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(18), __webpack_require__(86).setImmediate)) /***/ }), /* 7 */ /***/ (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 /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(17)(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 9 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(11); var createDesc = __webpack_require__(21); module.exports = __webpack_require__(8) ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(20); var IE8_DOM_DEFINE = __webpack_require__(44); var toPrimitive = __webpack_require__(30); var dP = Object.defineProperty; exports.f = __webpack_require__(8) ? 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; }; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(47); var defined = __webpack_require__(31); module.exports = function (it) { return IObject(defined(it)); }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(34)('wks'); var uid = __webpack_require__(24); var Symbol = __webpack_require__(7).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; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.isEmpty = exports.isEqual = exports.arrayEquals = exports.looseEqual = exports.capitalize = exports.kebabCase = exports.autoprefixer = exports.isFirefox = exports.isEdge = exports.isIE = exports.coerceTruthyValueToArray = exports.arrayFind = exports.arrayFindIndex = exports.escapeRegexpString = exports.valueEquals = exports.generateId = exports.getValueByPath = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.noop = noop; exports.hasOwn = hasOwn; exports.toObject = toObject; exports.getPropByPath = getPropByPath; exports.rafThrottle = rafThrottle; exports.objToArray = objToArray; var _vue = __webpack_require__(6); var _vue2 = _interopRequireDefault(_vue); var _types = __webpack_require__(88); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var hasOwnProperty = Object.prototype.hasOwnProperty; function noop() {}; function hasOwn(obj, key) { return hasOwnProperty.call(obj, key); }; function extend(to, _from) { for (var key in _from) { to[key] = _from[key]; } return to; }; function toObject(arr) { var res = {}; for (var i = 0; i < arr.length; i++) { if (arr[i]) { extend(res, arr[i]); } } return res; }; var getValueByPath = exports.getValueByPath = function getValueByPath(object, prop) { prop = prop || ''; var paths = prop.split('.'); var current = object; var result = null; for (var i = 0, j = paths.length; i < j; i++) { var path = paths[i]; if (!current) break; if (i === j - 1) { result = current[path]; break; } current = current[path]; } return result; }; function getPropByPath(obj, path, strict) { 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) { if (!tempObj && !strict) break; var key = keyArr[i]; if (key in tempObj) { tempObj = tempObj[key]; } else { if (strict) { throw new Error('please transfer a valid prop path to form item!'); } break; } } return { o: tempObj, k: keyArr[i], v: tempObj ? tempObj[keyArr[i]] : null }; }; var generateId = exports.generateId = function generateId() { return Math.floor(Math.random() * 10000); }; var valueEquals = exports.valueEquals = function valueEquals(a, b) { // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript if (a === b) return true; if (!(a instanceof Array)) return false; if (!(b instanceof Array)) return false; if (a.length !== b.length) return false; for (var i = 0; i !== a.length; ++i) { if (a[i] !== b[i]) return false; } return true; }; var escapeRegexpString = exports.escapeRegexpString = function escapeRegexpString() { var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; return String(value).replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); }; // TODO: use native Array.find, Array.findIndex when IE support is dropped var arrayFindIndex = exports.arrayFindIndex = function arrayFindIndex(arr, pred) { for (var i = 0; i !== arr.length; ++i) { if (pred(arr[i])) { return i; } } return -1; }; var arrayFind = exports.arrayFind = function arrayFind(arr, pred) { var idx = arrayFindIndex(arr, pred); return idx !== -1 ? arr[idx] : undefined; }; // coerce truthy value to array var coerceTruthyValueToArray = exports.coerceTruthyValueToArray = function coerceTruthyValueToArray(val) { if (Array.isArray(val)) { return val; } else if (val) { return [val]; } else { return []; } }; var isIE = exports.isIE = function isIE() { return !_vue2.default.prototype.$isServer && !isNaN(Number(document.documentMode)); }; var isEdge = exports.isEdge = function isEdge() { return !_vue2.default.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1; }; var isFirefox = exports.isFirefox = function isFirefox() { return !_vue2.default.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i); }; var autoprefixer = exports.autoprefixer = function autoprefixer(style) { if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') return style; var rules = ['transform', 'transition', 'animation']; var prefixes = ['ms-', 'webkit-']; rules.forEach(function (rule) { var value = style[rule]; if (rule && value) { prefixes.forEach(function (prefix) { style[prefix + rule] = value; }); } }); return style; }; var kebabCase = exports.kebabCase = function kebabCase(str) { var hyphenateRE = /([^-])([A-Z])/g; return str.replace(hyphenateRE, '$1-$2').replace(hyphenateRE, '$1-$2').toLowerCase(); }; var capitalize = exports.capitalize = function capitalize(str) { if (!(0, _types.isString)(str)) return str; return str.charAt(0).toUpperCase() + str.slice(1); }; var looseEqual = exports.looseEqual = function looseEqual(a, b) { var isObjectA = (0, _types.isObject)(a); var isObjectB = (0, _types.isObject)(b); if (isObjectA && isObjectB) { return JSON.stringify(a) === JSON.stringify(b); } else if (!isObjectA && !isObjectB) { return String(a) === String(b); } else { return false; } }; var arrayEquals = exports.arrayEquals = function arrayEquals(arrayA, arrayB) { arrayA = arrayA || []; arrayB = arrayB || []; if (arrayA.length !== arrayB.length) { return false; } for (var i = 0; i < arrayA.length; i++) { if (!looseEqual(arrayA[i], arrayB[i])) { return false; } } return true; }; var isEqual = exports.isEqual = function isEqual(value1, value2) { if (Array.isArray(value1) && Array.isArray(value2)) { return arrayEquals(value1, value2); } return looseEqual(value1, value2); }; var isEmpty = exports.isEmpty = function isEmpty(val) { // null or undefined if (val == null) return true; if (typeof val === 'boolean') return false; if (typeof val === 'number') return !val; if (val instanceof Error) return val.message === ''; switch (Object.prototype.toString.call(val)) { // String or Array case '[object String]': case '[object Array]': return !val.length; // Map or Set or File case '[object File]': case '[object Map]': case '[object Set]': { return !val.size; } // Plain Object case '[object Object]': { return !Object.keys(val).length; } } return false; }; function rafThrottle(fn) { var locked = false; return function () { var _this = this; for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } if (locked) return; locked = true; window.requestAnimationFrame(function (_) { fn.apply(_this, args); locked = false; }); }; } function objToArray(obj) { if (Array.isArray(obj)) { return obj; } return isEmpty(obj) ? [] : [obj]; } /***/ }), /* 15 */ /***/ (function(module, exports) { var core = module.exports = { version: '2.6.12' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef /***/ }), /* 16 */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 17 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (e) { return true; } }; /***/ }), /* 18 */ /***/ (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; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; function _broadcast(componentName, eventName, params) { this.$children.forEach(function (child) { var name = child.$options.componentName; if (name === componentName) { child.$emit.apply(child, [eventName].concat(params)); } else { _broadcast.apply(child, [componentName, eventName].concat([params])); } }); } exports.default = { methods: { dispatch: function dispatch(componentName, eventName, params) { var parent = this.$parent || this.$root; var name = parent.$options.componentName; while (parent && (!name || name !== componentName)) { parent = parent.$parent; if (parent) { name = parent.$options.componentName; } } if (parent) { parent.$emit.apply(parent, [eventName].concat(params)); } }, broadcast: function broadcast(componentName, eventName, params) { _broadcast.call(this, componentName, eventName, params); } } }; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(16); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; /***/ }), /* 21 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__(46); var enumBugKeys = __webpack_require__(35); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; /***/ }), /* 23 */ /***/ (function(module, exports) { module.exports = true; /***/ }), /* 24 */ /***/ (function(module, exports) { var id = 0; var px = Math.random(); module.exports = function (key) { return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; /***/ }), /* 25 */ /***/ (function(module, exports) { exports.f = {}.propertyIsEnumerable; /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _iterator = __webpack_require__(105); var _iterator2 = _interopRequireDefault(_iterator); var _symbol = __webpack_require__(117); 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); }; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = function (target) { for (var i = 1, j = arguments.length; i < j; i++) { var source = arguments[i] || {}; for (var prop in source) { if (source.hasOwnProperty(prop)) { var value = source[prop]; if (value !== undefined) { target[prop] = value; } } } } return target; }; ; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.isInContainer = exports.getScrollContainer = exports.isScroll = exports.getStyle = exports.once = exports.off = exports.on = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* istanbul ignore next */ exports.hasClass = hasClass; exports.addClass = addClass; exports.removeClass = removeClass; exports.setStyle = setStyle; var _vue = __webpack_require__(6); var _vue2 = _interopRequireDefault(_vue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var isServer = _vue2.default.prototype.$isServer; var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; var MOZ_HACK_REGEXP = /^moz([A-Z])/; var ieVersion = isServer ? 0 : Number(document.documentMode); /* istanbul ignore next */ var trim = function trim(string) { return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ''); }; /* istanbul ignore next */ var camelCase = function camelCase(name) { return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) { return offset ? letter.toUpperCase() : letter; }).replace(MOZ_HACK_REGEXP, 'Moz$1'); }; /* istanbul ignore next */ var on = exports.on = function () { if (!isServer && document.addEventListener) { return function (element, event, handler) { if (element && event && handler) { element.addEventListener(event, handler, false); } }; } else { return function (element, event, handler) { if (element && event && handler) { element.attachEvent('on' + event, handler); } }; } }(); /* istanbul ignore next */ var off = exports.off = function () { if (!isServer && document.removeEventListener) { return function (element, event, handler) { if (element && event) { element.removeEventListener(event, handler, false); } }; } else { return function (element, event, handler) { if (element && event) { element.detachEvent('on' + event, handler); } }; } }(); /* istanbul ignore next */ var once = exports.once = function once(el, event, fn) { var listener = function listener() { if (fn) { fn.apply(this, arguments); } off(el, event, listener); }; on(el, event, listener); }; /* istanbul ignore next */ function hasClass(el, cls) { if (!el || !cls) return false; if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.'); if (el.classList) { return el.classList.contains(cls); } else { return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1; } }; /* istanbul ignore next */ function addClass(el, cls) { if (!el) return; var curClass = el.className; var classes = (cls || '').split(' '); for (var i = 0, j = classes.length; i < j; i++) { var clsName = classes[i]; if (!clsName) continue; if (el.classList) { el.classList.add(clsName); } else if (!hasClass(el, clsName)) { curClass += ' ' + clsName; } } if (!el.classList) { el.className = curClass; } }; /* istanbul ignore next */ function removeClass(el, cls) { if (!el || !cls) return; var classes = cls.split(' '); var curClass = ' ' + el.className + ' '; for (var i = 0, j = classes.length; i < j; i++) { var clsName = classes[i]; if (!clsName) continue; if (el.classList) { el.classList.remove(clsName); } else if (hasClass(el, clsName)) { curClass = curClass.replace(' ' + clsName + ' ', ' '); } } if (!el.classList) { el.className = trim(curClass); } }; /* istanbul ignore next */ var getStyle = exports.getStyle = ieVersion < 9 ? function (element, styleName) { if (isServer) return; if (!element || !styleName) return null; styleName = camelCase(styleName); if (styleName === 'float') { styleName = 'styleFloat'; } try { switch (styleName) { case 'opacity': try { return element.filters.item('alpha').opacity / 100; } catch (e) { return 1.0; } default: return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null; } } catch (e) { return element.style[styleName]; } } : function (element, styleName) { if (isServer) return; if (!element || !styleName) return null; styleName = camelCase(styleName); if (styleName === 'float') { styleName = 'cssFloat'; } try { var computed = document.defaultView.getComputedStyle(element, ''); return element.style[styleName] || computed ? computed[styleName] : null; } catch (e) { return element.style[styleName]; } }; /* istanbul ignore next */ function setStyle(element, styleName, value) { if (!element || !styleName) return; if ((typeof styleName === 'undefined' ? 'undefined' : _typeof(styleName)) === 'object') { for (var prop in styleName) { if (styleName.hasOwnProperty(prop)) { setStyle(element, prop, styleName[prop]); } } } else { styleName = camelCase(styleName); if (styleName === 'opacity' && ieVersion < 9) { element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')'; } else { element.style[styleName] = value; } } }; var isScroll = exports.isScroll = function isScroll(el, vertical) { if (isServer) return; var determinedDirection = vertical !== null || vertical !== undefined; var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow'); return overflow.match(/(scroll|auto)/); }; var getScrollContainer = exports.getScrollContainer = function getScrollContainer(el, vertical) { if (isServer) return; var parent = el; while (parent) { if ([window, document, document.documentElement].includes(parent)) { return window; } if (isScroll(parent, vertical)) { return parent; } parent = parent.parentNode; } return parent; }; var isInContainer = exports.isInContainer = function isInContainer(el, container) { if (isServer || !el || !container) return false; var elRect = el.getBoundingClientRect(); var containerRect = void 0; if ([window, document, document.documentElement, null, undefined].includes(container)) { containerRect = { top: 0, right: window.innerWidth, bottom: window.innerHeight, left: 0 }; } else { containerRect = container.getBoundingClientRect(); } return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right; }; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(7); var core = __webpack_require__(15); var ctx = __webpack_require__(99); var hide = __webpack_require__(10); var has = __webpack_require__(9); 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 && has(exports, key)) 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; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) var isObject = __webpack_require__(16); // 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"); }; /***/ }), /* 31 */ /***/ (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; }; /***/ }), /* 32 */ /***/ (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); }; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(34)('keys'); var uid = __webpack_require__(24); module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); }; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { var core = __webpack_require__(15); var global = __webpack_require__(7); var SHARED = '__core-js_shared__'; var store = global[SHARED] || (global[SHARED] = {}); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: core.version, mode: __webpack_require__(23) ? 'pure' : 'global', copyright: '© 2020 Denis Pushkarev (zloirock.ru)' }); /***/ }), /* 35 */ /***/ (function(module, exports) { // IE 8- don't enum bug keys module.exports = ( 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); /***/ }), /* 36 */ /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(31); module.exports = function (it) { return Object(defined(it)); }; /***/ }), /* 38 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { var def = __webpack_require__(11).f; var has = __webpack_require__(9); var TAG = __webpack_require__(13)('toStringTag'); module.exports = function (it, tag, stat) { if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); }; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { exports.f = __webpack_require__(13); /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(7); var core = __webpack_require__(15); var LIBRARY = __webpack_require__(23); var wksExt = __webpack_require__(40); var defineProperty = __webpack_require__(11).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) }); }; /***/ }), /* 42 */ /***/ (function(module, exports) { // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _assign = __webpack_require__(96); 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; }; /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { module.exports = !__webpack_require__(8) && !__webpack_require__(17)(function () { return Object.defineProperty(__webpack_require__(45)('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(16); var document = __webpack_require__(7).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) : {}; }; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(9); var toIObject = __webpack_require__(12); var arrayIndexOf = __webpack_require__(102)(false); var IE_PROTO = __webpack_require__(33)('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; }; /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(48); // eslint-disable-next-line no-prototype-builtins module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }), /* 48 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var LIBRARY = __webpack_require__(23); var $export = __webpack_require__(29); var redefine = __webpack_require__(50); var hide = __webpack_require__(10); var Iterators = __webpack_require__(38); var $iterCreate = __webpack_require__(109); var setToStringTag = __webpack_require__(39); var getPrototypeOf = __webpack_require__(112); var ITERATOR = __webpack_require__(13)('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 && typeof IteratorPrototype[ITERATOR] != 'function') 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; }; /***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(10); /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var anObject = __webpack_require__(20); var dPs = __webpack_require__(110); var enumBugKeys = __webpack_require__(35); var IE_PROTO = __webpack_require__(33)('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__(45)('iframe'); var i = enumBugKeys.length; var lt = '<'; var gt = '>'; var iframeDocument; iframe.style.display = 'none'; __webpack_require__(111).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); }; /***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) var $keys = __webpack_require__(46); var hiddenKeys = __webpack_require__(35).concat('length', 'prototype'); exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return $keys(O, hiddenKeys); }; /***/ }), /* 53 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _vue = __webpack_require__(6); var _vue2 = _interopRequireDefault(_vue); var _popup = __webpack_require__(157); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var PopperJS = _vue2.default.prototype.$isServer ? function () {} : __webpack_require__(160); var stop = function stop(e) { return e.stopPropagation(); }; /** * @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper. * @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper. * @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end) * @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative). * @param {Boolean} [visible=false] Visibility of the popup element. * @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style. */ exports.default = { props: { transformOrigin: { type: [Boolean, String], default: true }, placement: { type: String, default: 'bottom' }, boundariesPadding: { type: Number, default: 5 }, reference: {}, popper: {}, offset: { default: 0 }, value: Boolean, visibleArrow: Boolean, arrowOffset: { type: Number, default: 35 }, appendToBody: { type: Boolean, default: true }, popperOptions: { type: Object, default: function _default() { return { gpuAcceleration: false }; } } }, data: function data() { return { showPopper: false, currentPlacement: '' }; }, watch: { value: { immediate: true, handler: function handler(val) { this.showPopper = val; this.$emit('input', val); } }, showPopper: function showPopper(val) { if (this.disabled) return; val ? this.updatePopper() : this.destroyPopper(); this.$emit('input', val); } }, methods: { createPopper: function createPopper() { var _this = this; if (this.$isServer) return; this.currentPlacement = this.currentPlacement || this.placement; if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) { return; } var options = this.popperOptions; var popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper; var reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference; if (!reference && this.$slots.reference && this.$slots.reference[0]) { reference = this.referenceElm = this.$slots.reference[0].elm; } if (!popper || !reference) return; if (this.visibleArrow) this.appendArrow(popper); if (this.appendToBody) document.body.appendChild(this.popperElm); if (this.popperJS && this.popperJS.destroy) { this.popperJS.destroy(); } options.placement = this.currentPlacement; options.offset = this.offset; options.arrowOffset = this.arrowOffset; this.popperJS = new PopperJS(reference, popper, options); this.popperJS.onCreate(function (_) { _this.$emit('created', _this); _this.resetTransformOrigin(); _this.$nextTick(_this.updatePopper); }); if (typeof options.onUpdate === 'function') { this.popperJS.onUpdate(options.onUpdate); } this.popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex(); this.popperElm.addEventListener('click', stop); }, updatePopper: function updatePopper() { var popperJS = this.popperJS; if (popperJS) { popperJS.update(); if (popperJS._popper) { popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex(); } } else { this.createPopper(); } }, doDestroy: function doDestroy(forceDestroy) { /* istanbul ignore if */ if (!this.popperJS || this.showPopper && !forceDestroy) return; this.popperJS.destroy(); this.popperJS = null; }, destroyPopper: function destroyPopper() { if (this.popperJS) { this.resetTransformOrigin(); } }, resetTransformOrigin: function resetTransformOrigin() { if (!this.transformOrigin) return; var placementMap = { top: 'bottom', bottom: 'top', left: 'right', right: 'left' }; var placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0]; var origin = placementMap[placement]; this.popperJS._popper.style.transformOrigin = typeof this.transformOrigin === 'string' ? this.transformOrigin : ['top', 'bottom'].indexOf(placement) > -1 ? 'center ' + origin : origin + ' center'; }, appendArrow: function appendArrow(element) { var hash = void 0; if (this.appended) { return; } this.appended = true; for (var item in element.attributes) { if (/^_v-/.test(element.attributes[item].name)) { hash = element.attributes[item].name; break; } } var arrow = document.createElement('div'); if (hash) { arrow.setAttribute(hash, ''); } arrow.setAttribute('x-arrow', ''); arrow.className = 'popper__arrow'; element.appendChild(arrow); } }, beforeDestroy: function beforeDestroy() { this.doDestroy(true); if (this.popperElm && this.popperElm.parentNode === document.body) { this.popperElm.removeEventListener('click', stop); document.body.removeChild(this.popperElm); } }, // call destroy in keep-alive mode deactivated: function deactivated() { this.$options.beforeDestroy[0].call(this); } }; /***/ }), /* 55 */ /***/ (function(module, exports) { /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file. // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. module.exports = function normalizeComponent ( rawScriptExports, compiledTemplate, functionalTemplate, injectStyles, scopeId, moduleIdentifier /* server only */ ) { var esModule var scriptExports = rawScriptExports = rawScriptExports || {} // ES6 modules interop var type = typeof rawScriptExports.default if (type === 'object' || type === 'function') { esModule = rawScriptExports scriptExports = rawScriptExports.default } // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (compiledTemplate) { options.render = compiledTemplate.render options.staticRenderFns = compiledTemplate.staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = injectStyles } if (hook) { var functional = options.functional var existing = functional ? options.render : options.beforeCreate if (!functional) { // inject component registration as beforeCreate hook options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } else { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file options.render = function renderWithStyleInjection (h, context) { hook.call(context) return existing(h, context) } } } return { esModule: esModule, exports: scriptExports, options: options } } /***/ }), /* 56 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__com_Me__ = __webpack_require__(181); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_uiConfig__ = __webpack_require__(203); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_pageReload__ = __webpack_require__(204); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_keyEvent__ = __webpack_require__(205); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_appConfig__ = __webpack_require__(206); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_switchPage__ = __webpack_require__(207); // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["a"] = ({ name: "wechatReaderExt", components: { Me: __WEBPACK_IMPORTED_MODULE_0__com_Me__["a" /* default */] }, mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_uiConfig__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_pageReload__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_keyEvent__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_appConfig__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_switchPage__["a" /* default */]], data: function data() { return { config: { // 标记是否在自动阅读 isScrolling: false, // 滚动方向标记 1 正向,往下 -1 反向,往上 scrollFlag: 1, // 自动滚动步长 scrollOffset: 1, // 自动滚动时间间隔(毫秒) timerScrollIMs: 200, // 是否自动翻页 isAutoSwitchPage: false, // 自动翻页方向 autoSwitchPageFlag: 1, // 自动刷时长模式 timeFlashMode: false }, // 自动阅读定时器 timerAutoRead: null, // 自动下一页定时器 timeAutoSwitchPage: null }; }, methods: { // 计算翻页方向 -1往前翻 1 往后翻 computeSwitchPageDirection: function computeSwitchPageDirection() { // 等待两秒等待页面重新加载完成 var isLast = document.getElementsByClassName("readerFooter_button").length === 0; var isFirst = document.getElementsByClassName("readerBookInfo").length === 1; // 当前是正向,并且已经到达最后一页,则切换到反向 if (this.config.autoSwitchPageFlag === 1 && isLast) { return -1; } // 当前是逆向,并且已经到底第一页,则切换到正向 if (this.config.autoSwitchPageFlag === -1 && isFirst) { return 1; } return this.config.autoSwitchPageFlag; }, // 计算滑动方向 -1往上滑动 1往下滑动 computeScrollPageDirection: function computeScrollPageDirection() { var _document$documentEle = document.documentElement, scrollTop = _document$documentEle.scrollTop, clientHeight = _document$documentEle.clientHeight, scrollHeight = _document$documentEle.scrollHeight; // 已经滚动到底部,切换为往上滚动 if (scrollTop + clientHeight >= scrollHeight) { this.config.scrollFlag = -1; } // 已经滚动到顶部,切换为往下滚动 if (scrollTop === 0) { this.config.scrollFlag = 1; } }, // 自动滚动任务 startAutoRead: function startAutoRead() { if (this.timerAutoRead == null) { var _this = this; this.timerAutoRead = setInterval(function () { var scrollYOffset = window.pageYOffset + _this.config.scrollFlag * _this.config.scrollOffset; // 模拟滚动 window.scrollTo(0, scrollYOffset); _this.computeScrollPageDirection(); }, _this.config.timerScrollIMs); } }, // stop all reading timer stopAutoRead: function stopAutoRead() { if (this.timerAutoRead) { clearInterval(this.timerAutoRead); this.timerAutoRead = null; } }, // 切换至下一页 switchToNextPage: function switchToNextPage() { // 获取翻页方向标识值,有下一页按钮则为正向翻页,没有的话则反向翻页 this.config.autoSwitchPageFlag = this.computeSwitchPageDirection(); // 37为左翻页,39为右翻页 var keyEventCode = this.config.autoSwitchPageFlag === -1 ? 37 : 39; // 此时这里应该判断是否为第一章/最终章,方便往回看,形成阅读闭环 this.fireKeyEvent(document, "keydown", keyEventCode); }, // 开启刷时长模式 startAutoFlash: function startAutoFlash() { if (this.timeAutoSwitchPage === null) { // 定时切换下一页一下页面避免被判定为后台 this.timeAutoSwitchPage = this.startAutoSwitchPage(this.switchToNextPage); } }, // 停止刷时长模式 stopAutoFlash: function stopAutoFlash() { if (this.timeAutoSwitchPage) { this.timeAutoSwitchPage = this.stopAutoSwitchPage(this.timeAutoSwitchPage); } } }, watch: { // 切换了 自动阅读 开关 "config.isScrolling": function configIsScrolling(newValue, oldValue) { if (newValue === true) { this.startAutoRead(); } if (newValue === false) { this.stopAutoRead(); Object.assign(this.config, { timeFlashMode: false }); } }, // 切换了 阅读方向 开关 "config.scrollFlag": { handler: function handler(newValue, oldValue) { // 翻页条件 1.当前正在正向滚动 2.且到达底部时候 3.滚动方向发生改变(即-1->1) 4.开启了自动翻页 var isScrollSwitched = newValue !== oldValue; if (this.config.isScrolling && oldValue === 1 && isScrollSwitched && this.config.isAutoSwitchPage) { this.switchToNextPage(); } }, deep: true }, // 开启自动时长模式 // 自动时长模式下会做以下操作 // 1.开启自动阅读 // 2.每5分钟刷新一次页面 "config.timeFlashMode": function configTimeFlashMode(newValue, oldValue) { if (newValue === true) { // 开启自动阅读相关功能 Object.assign(this.config, { isScrolling: true }); // 开启定时下一页 this.startAutoFlash(); // 开启定时刷新页面(避免内存占用) // this.startAutoReloadPage(); } if (newValue === false) { // 关闭自动阅读相关功能 Object.assign(this.config, { isScrolling: false }); // 关闭定时下一页 this.stopAutoFlash(); // 关闭定时刷新页面 // this.stopAutoReloadPage(); } } } }); /***/ }), /* 57 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios__ = __webpack_require__(184); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_axios__); // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ __webpack_exports__["a"] = ({ name: "Me", data: function data() { return { me: { // 无限卡天数 infiniteCardDays: 0, // ios端书币 iosBookCoin: 0, // 安卓端书币 androidBookCoin: 0 } }; }, methods: { // load member info loadMemberInfo: function loadMemberInfo() { var _this = this; var balanceCallback = function balanceCallback(res) { var _res$data = res.data, iosBookCoin = _res$data.giftBalance, androidBookCoin = _res$data.peerBalance, welfare = _res$data.welfare; var expiredTime = welfare.expiredTime; var infiniteCardDays = Math.floor(expiredTime / 3600 / 24); Object.assign(_this.me, { iosBookCoin: iosBookCoin, androidBookCoin: androidBookCoin, infiniteCardDays: infiniteCardDays }); }; __WEBPACK_IMPORTED_MODULE_0_axios___default.a.post("/web/pay/balance", { "zoneid": "1", "release": "1", "pf": "weread_wx-2001-iap-2001-iphone" }).then(balanceCallback); } }, mounted: function mounted() { this.loadMemberInfo(); } }); /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function bind(fn, thisArg) { return function wrap() { var args = new Array(arguments.length); for (var i = 0; i < args.length; i++) { args[i] = arguments[i]; } return fn.apply(thisArg, args); }; }; /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); function encode(val) { return encodeURIComponent(val). replace(/%3A/gi, ':'). replace(/%24/g, '$'). replace(/%2C/gi, ','). replace(/%20/g, '+'). replace(/%5B/gi, '['). replace(/%5D/gi, ']'); } /** * Build a URL by appending params to the end * * @param {string} url The base of the url (e.g., http://www.google.com) * @param {object} [params] The params to be appended * @returns {string} The formatted url */ module.exports = function buildURL(url, params, paramsSerializer) { /*eslint no-param-reassign:0*/ if (!params) { return url; } var serializedParams; if (paramsSerializer) { serializedParams = paramsSerializer(params); } else if (utils.isURLSearchParams(params)) { serializedParams = params.toString(); } else { var parts = []; utils.forEach(params, function serialize(val, key) { if (val === null || typeof val === 'undefined') { return; } if (utils.isArray(val)) { key = key + '[]'; } else { val = [val]; } utils.forEach(val, function parseValue(v) { if (utils.isDate(v)) { v = v.toISOString(); } else if (utils.isObject(v)) { v = JSON.stringify(v); } parts.push(encode(key) + '=' + encode(v)); }); }); serializedParams = parts.join('&'); } if (serializedParams) { var hashmarkIndex = url.indexOf('#'); if (hashmarkIndex !== -1) { url = url.slice(0, hashmarkIndex); } url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; } return url; }; /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function isCancel(value) { return !!(value && value.__CANCEL__); }; /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) { var utils = __webpack_require__(5); var normalizeHeaderName = __webpack_require__(190); var DEFAULT_CONTENT_TYPE = { 'Content-Type': 'application/x-www-form-urlencoded' }; function setContentTypeIfUnset(headers, value) { if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { headers['Content-Type'] = value; } } function getDefaultAdapter() { var adapter; if (typeof XMLHttpRequest !== 'undefined') { // For browsers use XHR adapter adapter = __webpack_require__(62); } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { // For node use HTTP adapter adapter = __webpack_require__(62); } return adapter; } var defaults = { adapter: getDefaultAdapter(), transformRequest: [function transformRequest(data, headers) { normalizeHeaderName(headers, 'Accept'); normalizeHeaderName(headers, 'Content-Type'); if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data) ) { return data; } if (utils.isArrayBufferView(data)) { return data.buffer; } if (utils.isURLSearchParams(data)) { setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); return data.toString(); } if (utils.isObject(data)) { setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); return JSON.stringify(data); } return data; }], transformResponse: [function transformResponse(data) { /*eslint no-param-reassign:0*/ if (typeof data === 'string') { try { data = JSON.parse(data); } catch (e) { /* Ignore */ } } return data; }], /** * A timeout in milliseconds to abort a request. If set to 0 (default) a * timeout is not created. */ timeout: 0, xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', maxContentLength: -1, maxBodyLength: -1, validateStatus: function validateStatus(status) { return status >= 200 && status < 300; } }; defaults.headers = { common: { 'Accept': 'application/json, text/plain, */*' } }; utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { defaults.headers[method] = {}; }); utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); }); module.exports = defaults; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(42))) /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); var settle = __webpack_require__(191); var cookies = __webpack_require__(193); var buildURL = __webpack_require__(59); var buildFullPath = __webpack_require__(194); var parseHeaders = __webpack_require__(197); var isURLSameOrigin = __webpack_require__(198); var createError = __webpack_require__(63); module.exports = function xhrAdapter(config) { return new Promise(function dispatchXhrRequest(resolve, reject) { var requestData = config.data; var requestHeaders = config.headers; if (utils.isFormData(requestData)) { delete requestHeaders['Content-Type']; // Let the browser set it } var request = new XMLHttpRequest(); // HTTP basic authentication if (config.auth) { var username = config.auth.username || ''; var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); } var fullPath = buildFullPath(config.baseURL, config.url); request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS request.timeout = config.timeout; // Listen for ready state request.onreadystatechange = function handleLoad() { if (!request || request.readyState !== 4) { return; } // The request errored out and we didn't get a response, this will be // handled by onerror instead // With one exception: request that using file: protocol, most browsers // will return status as 0 even though it's a successful request if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { return; } // Prepare the response var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; var response = { data: responseData, status: request.status, statusText: request.statusText, headers: responseHeaders, config: config, request: request }; settle(resolve, reject, response); // Clean up request request = null; }; // Handle browser request cancellation (as opposed to a manual cancellation) request.onabort = function handleAbort() { if (!request) { return; } reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request request = null; }; // Handle low level network errors request.onerror = function handleError() { // Real errors are hidden from us by the browser // onerror should only fire if it's a network error reject(createError('Network Error', config, null, request)); // Clean up request request = null; }; // Handle timeout request.ontimeout = function handleTimeout() { var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; if (config.timeoutErrorMessage) { timeoutErrorMessage = config.timeoutErrorMessage; } reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', request)); // Clean up request request = null; }; // Add xsrf header // This is only done if running in a standard browser environment. // Specifically not if we're in a web worker, or react-native. if (utils.isStandardBrowserEnv()) { // Add xsrf header var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined; if (xsrfValue) { requestHeaders[config.xsrfHeaderName] = xsrfValue; } } // Add headers to the request if ('setRequestHeader' in request) { utils.forEach(requestHeaders, function setRequestHeader(val, key) { if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { // Remove Content-Type if data is undefined delete requestHeaders[key]; } else { // Otherwise add header to the request request.setRequestHeader(key, val); } }); } // Add withCredentials to request if needed if (!utils.isUndefined(config.withCredentials)) { request.withCredentials = !!config.withCredentials; } // Add responseType to request if needed if (config.responseType) { try { request.responseType = config.responseType; } catch (e) { // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. if (config.responseType !== 'json') { throw e; } } } // Handle progress if needed if (typeof config.onDownloadProgress === 'function') { request.addEventListener('progress', config.onDownloadProgress); } // Not all browsers support upload events if (typeof config.onUploadProgress === 'function' && request.upload) { request.upload.addEventListener('progress', config.onUploadProgress); } if (config.cancelToken) { // Handle cancellation config.cancelToken.promise.then(function onCanceled(cancel) { if (!request) { return; } request.abort(); reject(cancel); // Clean up request request = null; }); } if (!requestData) { requestData = null; } // Send the request request.send(requestData); }); }; /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var enhanceError = __webpack_require__(192); /** * Create an Error with the specified message, config, error code, request and response. * * @param {string} message The error message. * @param {Object} config The config. * @param {string} [code] The error code (for example, 'ECONNABORTED'). * @param {Object} [request] The request. * @param {Object} [response] The response. * @returns {Error} The created error. */ module.exports = function createError(message, config, code, request, response) { var error = new Error(message); return enhanceError(error, config, code, request, response); }; /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); /** * Config-specific merge-function which creates a new config-object * by merging two configuration objects together. * * @param {Object} config1 * @param {Object} config2 * @returns {Object} New object resulting from merging config2 to config1 */ module.exports = function mergeConfig(config1, config2) { // eslint-disable-next-line no-param-reassign config2 = config2 || {}; var config = {}; var valueFromConfig2Keys = ['url', 'method', 'data']; var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; var defaultToConfig2Keys = [ 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' ]; var directMergeKeys = ['validateStatus']; function getMergedValue(target, source) { if (utils.isPlainObject(target) && utils.isPlainObject(source)) { return utils.merge(target, source); } else if (utils.isPlainObject(source)) { return utils.merge({}, source); } else if (utils.isArray(source)) { return source.slice(); } return source; } function mergeDeepProperties(prop) { if (!utils.isUndefined(config2[prop])) { config[prop] = getMergedValue(config1[prop], config2[prop]); } else if (!utils.isUndefined(config1[prop])) { config[prop] = getMergedValue(undefined, config1[prop]); } } utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { if (!utils.isUndefined(config2[prop])) { config[prop] = getMergedValue(undefined, config2[prop]); } }); utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { if (!utils.isUndefined(config2[prop])) { config[prop] = getMergedValue(undefined, config2[prop]); } else if (!utils.isUndefined(config1[prop])) { config[prop] = getMergedValue(undefined, config1[prop]); } }); utils.forEach(directMergeKeys, function merge(prop) { if (prop in config2) { config[prop] = getMergedValue(config1[prop], config2[prop]); } else if (prop in config1) { config[prop] = getMergedValue(undefined, config1[prop]); } }); var axiosKeys = valueFromConfig2Keys .concat(mergeDeepPropertiesKeys) .concat(defaultToConfig2Keys) .concat(directMergeKeys); var otherKeys = Object .keys(config1) .concat(Object.keys(config2)) .filter(function filterAxiosKeys(key) { return axiosKeys.indexOf(key) === -1; }); utils.forEach(otherKeys, mergeDeepProperties); return config; }; /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * A `Cancel` is an object that is thrown when an operation is canceled. * * @class * @param {string=} message The message. */ function Cancel(message) { this.message = message; } Cancel.prototype.toString = function toString() { return 'Cancel' + (this.message ? ': ' + this.message : ''); }; Cancel.prototype.__CANCEL__ = true; module.exports = Cancel; /***/ }), /* 66 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_element_ui_lib_theme_chalk_col_css__ = __webpack_require__(67); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_element_ui_lib_theme_chalk_col_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_element_ui_lib_theme_chalk_col_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_element_ui_lib_theme_chalk_base_css__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_element_ui_lib_theme_chalk_base_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_element_ui_lib_theme_chalk_base_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_element_ui_lib_col__ = __webpack_require__(74); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_element_ui_lib_col___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_element_ui_lib_col__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_element_ui_lib_theme_chalk_row_css__ = __webpack_require__(75); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_element_ui_lib_theme_chalk_row_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_element_ui_lib_theme_chalk_row_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_element_ui_lib_row__ = __webpack_require__(77); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_element_ui_lib_row___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_element_ui_lib_row__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_element_ui_lib_theme_chalk_tab_pane_css__ = __webpack_require__(78); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_element_ui_lib_theme_chalk_tab_pane_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_element_ui_lib_theme_chalk_tab_pane_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_element_ui_lib_tab_pane__ = __webpack_require__(80); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_element_ui_lib_tab_pane___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_element_ui_lib_tab_pane__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_element_ui_lib_theme_chalk_tabs_css__ = __webpack_require__(81); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_element_ui_lib_theme_chalk_tabs_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_element_ui_lib_theme_chalk_tabs_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_element_ui_lib_tabs__ = __webpack_require__(83); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_element_ui_lib_tabs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_element_ui_lib_tabs__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_element_ui_lib_theme_chalk_card_css__ = __webpack_require__(89); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_element_ui_lib_theme_chalk_card_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_element_ui_lib_theme_chalk_card_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_element_ui_lib_card__ = __webpack_require__(91); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_element_ui_lib_card___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_element_ui_lib_card__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_element_ui_lib_theme_chalk_form_item_css__ = __webpack_require__(92); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_element_ui_lib_theme_chalk_form_item_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_element_ui_lib_theme_chalk_form_item_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_element_ui_lib_form_item__ = __webpack_require__(94); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_element_ui_lib_form_item___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_element_ui_lib_form_item__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_element_ui_lib_theme_chalk_form_css__ = __webpack_require__(149); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_element_ui_lib_theme_chalk_form_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_element_ui_lib_theme_chalk_form_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_element_ui_lib_form__ = __webpack_require__(151); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_element_ui_lib_form___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_element_ui_lib_form__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_element_ui_lib_theme_chalk_tooltip_css__ = __webpack_require__(152); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_element_ui_lib_theme_chalk_tooltip_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_element_ui_lib_theme_chalk_tooltip_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16_element_ui_lib_tooltip__ = __webpack_require__(154); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16_element_ui_lib_tooltip___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_16_element_ui_lib_tooltip__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17_element_ui_lib_theme_chalk_popover_css__ = __webpack_require__(161); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17_element_ui_lib_theme_chalk_popover_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_17_element_ui_lib_theme_chalk_popover_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18_element_ui_lib_popover__ = __webpack_require__(163); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18_element_ui_lib_popover___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_18_element_ui_lib_popover__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19_element_ui_lib_theme_chalk_button_css__ = __webpack_require__(164); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19_element_ui_lib_theme_chalk_button_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_19_element_ui_lib_theme_chalk_button_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20_element_ui_lib_button__ = __webpack_require__(166); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20_element_ui_lib_button___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_20_element_ui_lib_button__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_element_ui_lib_theme_chalk_radio_group_css__ = __webpack_require__(167); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_element_ui_lib_theme_chalk_radio_group_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_21_element_ui_lib_theme_chalk_radio_group_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22_element_ui_lib_radio_group__ = __webpack_require__(169); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22_element_ui_lib_radio_group___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_22_element_ui_lib_radio_group__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23_element_ui_lib_theme_chalk_radio_css__ = __webpack_require__(170); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23_element_ui_lib_theme_chalk_radio_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_23_element_ui_lib_theme_chalk_radio_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24_element_ui_lib_radio__ = __webpack_require__(172); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24_element_ui_lib_radio___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_24_element_ui_lib_radio__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25_element_ui_lib_theme_chalk_input_css__ = __webpack_require__(173); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25_element_ui_lib_theme_chalk_input_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_25_element_ui_lib_theme_chalk_input_css__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26_element_ui_lib_input__ = __webpack_require__(175); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26_element_ui_lib_input___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_26_element_ui_lib_input__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27_vue__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__App_vue__ = __webpack_require__(178); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_26_element_ui_lib_input___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_24_element_ui_lib_radio___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_22_element_ui_lib_radio_group___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_20_element_ui_lib_button___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_18_element_ui_lib_popover___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_16_element_ui_lib_tooltip___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_14_element_ui_lib_form___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_12_element_ui_lib_form_item___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_10_element_ui_lib_card___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_8_element_ui_lib_tabs___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_6_element_ui_lib_tab_pane___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_4_element_ui_lib_row___default.a); __WEBPACK_IMPORTED_MODULE_27_vue__["default"].use(__WEBPACK_IMPORTED_MODULE_2_element_ui_lib_col___default.a); // 挂载节点 var monkey_plugin = document.createElement("div"); monkey_plugin.id = "monkey_plugin"; monkey_plugin.style = "position:fixed;top:10px;left:10px;width:1px;height:1px;z-index:1000"; document.body.appendChild(monkey_plugin); new __WEBPACK_IMPORTED_MODULE_27_vue__["default"]({ el: '#monkey_plugin', render: function render(h) { return h(__WEBPACK_IMPORTED_MODULE_28__App_vue__["a" /* default */]); } }); /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(68); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("cc9c5a62", content, true, {}); /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-col-pull-0,.el-col-pull-1,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-2,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-push-0,.el-col-push-1,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-2,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9{position:relative}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-col-0{display:none;width:0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}", ""]); // exports /***/ }), /* 69 */ /***/ (function(module, exports) { /** * Translates the list format produced by css-loader into something * easier to manipulate. */ module.exports = function listToStyles (parentId, list) { var styles = [] var newStyles = {} for (var i = 0; i < list.length; i++) { var item = list[i] var id = item[0] var css = item[1] var media = item[2] var sourceMap = item[3] var part = { id: parentId + ':' + i, css: css, media: media, sourceMap: sourceMap } if (!newStyles[id]) { styles.push(newStyles[id] = { id: id, parts: [part] }) } else { newStyles[id].parts.push(part) } } return styles } /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { var escape = __webpack_require__(71); exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}@font-face{font-family:element-icons;src:url(" + escape(__webpack_require__(72)) + ") format(\"woff\"),url(" + escape(__webpack_require__(73)) + ") format(\"truetype\");font-weight:400;font-display:\"auto\";font-style:normal}[class*=\" el-icon-\"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:\"\\E6A0\"}.el-icon-ice-cream-square:before{content:\"\\E6A3\"}.el-icon-lollipop:before{content:\"\\E6A4\"}.el-icon-potato-strips:before{content:\"\\E6A5\"}.el-icon-milk-tea:before{content:\"\\E6A6\"}.el-icon-ice-drink:before{content:\"\\E6A7\"}.el-icon-ice-tea:before{content:\"\\E6A9\"}.el-icon-coffee:before{content:\"\\E6AA\"}.el-icon-orange:before{content:\"\\E6AB\"}.el-icon-pear:before{content:\"\\E6AC\"}.el-icon-apple:before{content:\"\\E6AD\"}.el-icon-cherry:before{content:\"\\E6AE\"}.el-icon-watermelon:before{content:\"\\E6AF\"}.el-icon-grape:before{content:\"\\E6B0\"}.el-icon-refrigerator:before{content:\"\\E6B1\"}.el-icon-goblet-square-full:before{content:\"\\E6B2\"}.el-icon-goblet-square:before{content:\"\\E6B3\"}.el-icon-goblet-full:before{content:\"\\E6B4\"}.el-icon-goblet:before{content:\"\\E6B5\"}.el-icon-cold-drink:before{content:\"\\E6B6\"}.el-icon-coffee-cup:before{content:\"\\E6B8\"}.el-icon-water-cup:before{content:\"\\E6B9\"}.el-icon-hot-water:before{content:\"\\E6BA\"}.el-icon-ice-cream:before{content:\"\\E6BB\"}.el-icon-dessert:before{content:\"\\E6BC\"}.el-icon-sugar:before{content:\"\\E6BD\"}.el-icon-tableware:before{content:\"\\E6BE\"}.el-icon-burger:before{content:\"\\E6BF\"}.el-icon-knife-fork:before{content:\"\\E6C1\"}.el-icon-fork-spoon:before{content:\"\\E6C2\"}.el-icon-chicken:before{content:\"\\E6C3\"}.el-icon-food:before{content:\"\\E6C4\"}.el-icon-dish-1:before{content:\"\\E6C5\"}.el-icon-dish:before{content:\"\\E6C6\"}.el-icon-moon-night:before{content:\"\\E6EE\"}.el-icon-moon:before{content:\"\\E6F0\"}.el-icon-cloudy-and-sunny:before{content:\"\\E6F1\"}.el-icon-partly-cloudy:before{content:\"\\E6F2\"}.el-icon-cloudy:before{content:\"\\E6F3\"}.el-icon-sunny:before{content:\"\\E6F6\"}.el-icon-sunset:before{content:\"\\E6F7\"}.el-icon-sunrise-1:before{content:\"\\E6F8\"}.el-icon-sunrise:before{content:\"\\E6F9\"}.el-icon-heavy-rain:before{content:\"\\E6FA\"}.el-icon-lightning:before{content:\"\\E6FB\"}.el-icon-light-rain:before{content:\"\\E6FC\"}.el-icon-wind-power:before{content:\"\\E6FD\"}.el-icon-baseball:before{content:\"\\E712\"}.el-icon-soccer:before{content:\"\\E713\"}.el-icon-football:before{content:\"\\E715\"}.el-icon-basketball:before{content:\"\\E716\"}.el-icon-ship:before{content:\"\\E73F\"}.el-icon-truck:before{content:\"\\E740\"}.el-icon-bicycle:before{content:\"\\E741\"}.el-icon-mobile-phone:before{content:\"\\E6D3\"}.el-icon-service:before{content:\"\\E6D4\"}.el-icon-key:before{content:\"\\E6E2\"}.el-icon-unlock:before{content:\"\\E6E4\"}.el-icon-lock:before{content:\"\\E6E5\"}.el-icon-watch:before{content:\"\\E6FE\"}.el-icon-watch-1:before{content:\"\\E6FF\"}.el-icon-timer:before{content:\"\\E702\"}.el-icon-alarm-clock:before{content:\"\\E703\"}.el-icon-map-location:before{content:\"\\E704\"}.el-icon-delete-location:before{content:\"\\E705\"}.el-icon-add-location:before{content:\"\\E706\"}.el-icon-location-information:before{content:\"\\E707\"}.el-icon-location-outline:before{content:\"\\E708\"}.el-icon-location:before{content:\"\\E79E\"}.el-icon-place:before{content:\"\\E709\"}.el-icon-discover:before{content:\"\\E70A\"}.el-icon-first-aid-kit:before{content:\"\\E70B\"}.el-icon-trophy-1:before{content:\"\\E70C\"}.el-icon-trophy:before{content:\"\\E70D\"}.el-icon-medal:before{content:\"\\E70E\"}.el-icon-medal-1:before{content:\"\\E70F\"}.el-icon-stopwatch:before{content:\"\\E710\"}.el-icon-mic:before{content:\"\\E711\"}.el-icon-copy-document:before{content:\"\\E718\"}.el-icon-full-screen:before{content:\"\\E719\"}.el-icon-switch-button:before{content:\"\\E71B\"}.el-icon-aim:before{content:\"\\E71C\"}.el-icon-crop:before{content:\"\\E71D\"}.el-icon-odometer:before{content:\"\\E71E\"}.el-icon-time:before{content:\"\\E71F\"}.el-icon-bangzhu:before{content:\"\\E724\"}.el-icon-close-notification:before{content:\"\\E726\"}.el-icon-microphone:before{content:\"\\E727\"}.el-icon-turn-off-microphone:before{content:\"\\E728\"}.el-icon-position:before{content:\"\\E729\"}.el-icon-postcard:before{content:\"\\E72A\"}.el-icon-message:before{content:\"\\E72B\"}.el-icon-chat-line-square:before{content:\"\\E72D\"}.el-icon-chat-dot-square:before{content:\"\\E72E\"}.el-icon-chat-dot-round:before{content:\"\\E72F\"}.el-icon-chat-square:before{content:\"\\E730\"}.el-icon-chat-line-round:before{content:\"\\E731\"}.el-icon-chat-round:before{content:\"\\E732\"}.el-icon-set-up:before{content:\"\\E733\"}.el-icon-turn-off:before{content:\"\\E734\"}.el-icon-open:before{content:\"\\E735\"}.el-icon-connection:before{content:\"\\E736\"}.el-icon-link:before{content:\"\\E737\"}.el-icon-cpu:before{content:\"\\E738\"}.el-icon-thumb:before{content:\"\\E739\"}.el-icon-female:before{content:\"\\E73A\"}.el-icon-male:before{content:\"\\E73B\"}.el-icon-guide:before{content:\"\\E73C\"}.el-icon-news:before{content:\"\\E73E\"}.el-icon-price-tag:before{content:\"\\E744\"}.el-icon-discount:before{content:\"\\E745\"}.el-icon-wallet:before{content:\"\\E747\"}.el-icon-coin:before{content:\"\\E748\"}.el-icon-money:before{content:\"\\E749\"}.el-icon-bank-card:before{content:\"\\E74A\"}.el-icon-box:before{content:\"\\E74B\"}.el-icon-present:before{content:\"\\E74C\"}.el-icon-sell:before{content:\"\\E6D5\"}.el-icon-sold-out:before{content:\"\\E6D6\"}.el-icon-shopping-bag-2:before{content:\"\\E74D\"}.el-icon-shopping-bag-1:before{content:\"\\E74E\"}.el-icon-shopping-cart-2:before{content:\"\\E74F\"}.el-icon-shopping-cart-1:before{content:\"\\E750\"}.el-icon-shopping-cart-full:before{content:\"\\E751\"}.el-icon-smoking:before{content:\"\\E752\"}.el-icon-no-smoking:before{content:\"\\E753\"}.el-icon-house:before{content:\"\\E754\"}.el-icon-table-lamp:before{content:\"\\E755\"}.el-icon-school:before{content:\"\\E756\"}.el-icon-office-building:before{content:\"\\E757\"}.el-icon-toilet-paper:before{content:\"\\E758\"}.el-icon-notebook-2:before{content:\"\\E759\"}.el-icon-notebook-1:before{content:\"\\E75A\"}.el-icon-files:before{content:\"\\E75B\"}.el-icon-collection:before{content:\"\\E75C\"}.el-icon-receiving:before{content:\"\\E75D\"}.el-icon-suitcase-1:before{content:\"\\E760\"}.el-icon-suitcase:before{content:\"\\E761\"}.el-icon-film:before{content:\"\\E763\"}.el-icon-collection-tag:before{content:\"\\E765\"}.el-icon-data-analysis:before{content:\"\\E766\"}.el-icon-pie-chart:before{content:\"\\E767\"}.el-icon-data-board:before{content:\"\\E768\"}.el-icon-data-line:before{content:\"\\E76D\"}.el-icon-reading:before{content:\"\\E769\"}.el-icon-magic-stick:before{content:\"\\E76A\"}.el-icon-coordinate:before{content:\"\\E76B\"}.el-icon-mouse:before{content:\"\\E76C\"}.el-icon-brush:before{content:\"\\E76E\"}.el-icon-headset:before{content:\"\\E76F\"}.el-icon-umbrella:before{content:\"\\E770\"}.el-icon-scissors:before{content:\"\\E771\"}.el-icon-mobile:before{content:\"\\E773\"}.el-icon-attract:before{content:\"\\E774\"}.el-icon-monitor:before{content:\"\\E775\"}.el-icon-search:before{content:\"\\E778\"}.el-icon-takeaway-box:before{content:\"\\E77A\"}.el-icon-paperclip:before{content:\"\\E77D\"}.el-icon-printer:before{content:\"\\E77E\"}.el-icon-document-add:before{content:\"\\E782\"}.el-icon-document:before{content:\"\\E785\"}.el-icon-document-checked:before{content:\"\\E786\"}.el-icon-document-copy:before{content:\"\\E787\"}.el-icon-document-delete:before{content:\"\\E788\"}.el-icon-document-remove:before{content:\"\\E789\"}.el-icon-tickets:before{content:\"\\E78B\"}.el-icon-folder-checked:before{content:\"\\E77F\"}.el-icon-folder-delete:before{content:\"\\E780\"}.el-icon-folder-remove:before{content:\"\\E781\"}.el-icon-folder-add:before{content:\"\\E783\"}.el-icon-folder-opened:before{content:\"\\E784\"}.el-icon-folder:before{content:\"\\E78A\"}.el-icon-edit-outline:before{content:\"\\E764\"}.el-icon-edit:before{content:\"\\E78C\"}.el-icon-date:before{content:\"\\E78E\"}.el-icon-c-scale-to-original:before{content:\"\\E7C6\"}.el-icon-view:before{content:\"\\E6CE\"}.el-icon-loading:before{content:\"\\E6CF\"}.el-icon-rank:before{content:\"\\E6D1\"}.el-icon-sort-down:before{content:\"\\E7C4\"}.el-icon-sort-up:before{content:\"\\E7C5\"}.el-icon-sort:before{content:\"\\E6D2\"}.el-icon-finished:before{content:\"\\E6CD\"}.el-icon-refresh-left:before{content:\"\\E6C7\"}.el-icon-refresh-right:before{content:\"\\E6C8\"}.el-icon-refresh:before{content:\"\\E6D0\"}.el-icon-video-play:before{content:\"\\E7C0\"}.el-icon-video-pause:before{content:\"\\E7C1\"}.el-icon-d-arrow-right:before{content:\"\\E6DC\"}.el-icon-d-arrow-left:before{content:\"\\E6DD\"}.el-icon-arrow-up:before{content:\"\\E6E1\"}.el-icon-arrow-down:before{content:\"\\E6DF\"}.el-icon-arrow-right:before{content:\"\\E6E0\"}.el-icon-arrow-left:before{content:\"\\E6DE\"}.el-icon-top-right:before{content:\"\\E6E7\"}.el-icon-top-left:before{content:\"\\E6E8\"}.el-icon-top:before{content:\"\\E6E6\"}.el-icon-bottom:before{content:\"\\E6EB\"}.el-icon-right:before{content:\"\\E6E9\"}.el-icon-back:before{content:\"\\E6EA\"}.el-icon-bottom-right:before{content:\"\\E6EC\"}.el-icon-bottom-left:before{content:\"\\E6ED\"}.el-icon-caret-top:before{content:\"\\E78F\"}.el-icon-caret-bottom:before{content:\"\\E790\"}.el-icon-caret-right:before{content:\"\\E791\"}.el-icon-caret-left:before{content:\"\\E792\"}.el-icon-d-caret:before{content:\"\\E79A\"}.el-icon-share:before{content:\"\\E793\"}.el-icon-menu:before{content:\"\\E798\"}.el-icon-s-grid:before{content:\"\\E7A6\"}.el-icon-s-check:before{content:\"\\E7A7\"}.el-icon-s-data:before{content:\"\\E7A8\"}.el-icon-s-opportunity:before{content:\"\\E7AA\"}.el-icon-s-custom:before{content:\"\\E7AB\"}.el-icon-s-claim:before{content:\"\\E7AD\"}.el-icon-s-finance:before{content:\"\\E7AE\"}.el-icon-s-comment:before{content:\"\\E7AF\"}.el-icon-s-flag:before{content:\"\\E7B0\"}.el-icon-s-marketing:before{content:\"\\E7B1\"}.el-icon-s-shop:before{content:\"\\E7B4\"}.el-icon-s-open:before{content:\"\\E7B5\"}.el-icon-s-management:before{content:\"\\E7B6\"}.el-icon-s-ticket:before{content:\"\\E7B7\"}.el-icon-s-release:before{content:\"\\E7B8\"}.el-icon-s-home:before{content:\"\\E7B9\"}.el-icon-s-promotion:before{content:\"\\E7BA\"}.el-icon-s-operation:before{content:\"\\E7BB\"}.el-icon-s-unfold:before{content:\"\\E7BC\"}.el-icon-s-fold:before{content:\"\\E7A9\"}.el-icon-s-platform:before{content:\"\\E7BD\"}.el-icon-s-order:before{content:\"\\E7BE\"}.el-icon-s-cooperation:before{content:\"\\E7BF\"}.el-icon-bell:before{content:\"\\E725\"}.el-icon-message-solid:before{content:\"\\E799\"}.el-icon-video-camera:before{content:\"\\E772\"}.el-icon-video-camera-solid:before{content:\"\\E796\"}.el-icon-camera:before{content:\"\\E779\"}.el-icon-camera-solid:before{content:\"\\E79B\"}.el-icon-download:before{content:\"\\E77C\"}.el-icon-upload2:before{content:\"\\E77B\"}.el-icon-upload:before{content:\"\\E7C3\"}.el-icon-picture-outline-round:before{content:\"\\E75F\"}.el-icon-picture-outline:before{content:\"\\E75E\"}.el-icon-picture:before{content:\"\\E79F\"}.el-icon-close:before{content:\"\\E6DB\"}.el-icon-check:before{content:\"\\E6DA\"}.el-icon-plus:before{content:\"\\E6D9\"}.el-icon-minus:before{content:\"\\E6D8\"}.el-icon-help:before{content:\"\\E73D\"}.el-icon-s-help:before{content:\"\\E7B3\"}.el-icon-circle-close:before{content:\"\\E78D\"}.el-icon-circle-check:before{content:\"\\E720\"}.el-icon-circle-plus-outline:before{content:\"\\E723\"}.el-icon-remove-outline:before{content:\"\\E722\"}.el-icon-zoom-out:before{content:\"\\E776\"}.el-icon-zoom-in:before{content:\"\\E777\"}.el-icon-error:before{content:\"\\E79D\"}.el-icon-success:before{content:\"\\E79C\"}.el-icon-circle-plus:before{content:\"\\E7A0\"}.el-icon-remove:before{content:\"\\E7A2\"}.el-icon-info:before{content:\"\\E7A1\"}.el-icon-question:before{content:\"\\E7A4\"}.el-icon-warning-outline:before{content:\"\\E6C9\"}.el-icon-warning:before{content:\"\\E7A3\"}.el-icon-goods:before{content:\"\\E7C2\"}.el-icon-s-goods:before{content:\"\\E7B2\"}.el-icon-star-off:before{content:\"\\E717\"}.el-icon-star-on:before{content:\"\\E797\"}.el-icon-more-outline:before{content:\"\\E6CC\"}.el-icon-more:before{content:\"\\E794\"}.el-icon-phone-outline:before{content:\"\\E6CB\"}.el-icon-phone:before{content:\"\\E795\"}.el-icon-user:before{content:\"\\E6E3\"}.el-icon-user-solid:before{content:\"\\E7A5\"}.el-icon-setting:before{content:\"\\E6CA\"}.el-icon-s-tools:before{content:\"\\E7AC\"}.el-icon-delete:before{content:\"\\E6D7\"}.el-icon-delete-solid:before{content:\"\\E7C9\"}.el-icon-eleme:before{content:\"\\E7C7\"}.el-icon-platform-eleme:before{content:\"\\E7CA\"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}@keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}", ""]); // exports /***/ }), /* 71 */ /***/ (function(module, exports) { module.exports = function escape(url) { if (typeof url !== 'string') { return url } // If url is already wrapped in quotes, remove them if (/^['"].*['"]$/.test(url)) { url = url.slice(1, -1); } // Should url be wrapped? // See https://drafts.csswg.org/css-values-3/#urls if (/["'() \t\n]/.test(url)) { return '"' + url.replace(/"/g, '\\"').replace(/\n/g, '\\n') + '"' } return url } /***/ }), /* 72 */ /***/ (function(module, exports) { module.exports = "data:font/woff;charset=utf-8;base64,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" /***/ }), /* 73 */ /***/ (function(module, exports) { module.exports = "data:font/ttf;charset=utf-8;base64,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5qkAAOapAAAABwAA5qoAAOaqAAAACAAA5qsAAOarAAAACQAA5qwAAOasAAAACgAA5q0AAOatAAAACwAA5q4AAOauAAAADAAA5q8AAOavAAAADQAA5rAAAOawAAAADgAA5rEAAOaxAAAADwAA5rIAAOayAAAAEAAA5rMAAOazAAAAEQAA5rQAAOa0AAAAEgAA5rUAAOa1AAAAEwAA5rYAAOa2AAAAFAAA5rgAAOa4AAAAFQAA5rkAAOa5AAAAFgAA5roAAOa6AAAAFwAA5rsAAOa7AAAAGAAA5rwAAOa8AAAAGQAA5r0AAOa9AAAAGgAA5r4AAOa+AAAAGwAA5r8AAOa/AAAAHAAA5sEAAObBAAAAHQAA5sIAAObCAAAAHgAA5sMAAObDAAAAHwAA5sQAAObEAAAAIAAA5sUAAObFAAAAIQAA5sYAAObGAAAAIgAA5scAAObHAAAAIwAA5sgAAObIAAAAJAAA5skAAObJAAAAJQAA5soAAObKAAAAJgAA5ssAAObLAAAAJwAA5swAAObMAAAAKAAA5s0AAObNAAAAKQAA5s4AAObOAAAAKgAA5s8AAObPAAAAKwAA5tAAAObQAAAALAAA5tEAAObRAAAALQAA5tIAAObSAAAALgAA5tMAAObTAAAALwAA5tQAAObUAAAAMAAA5tUAAObVAAAAMQAA5tYAAObWAAAAMgAA5tcAAObXAAAAMwAA5tgAAObYAAAANAAA5tkAAObZAAAANQAA5toAAObaAAAANgAA5tsAAObbAAAANwAA5twAAObcAAAAOAAA5t0AAObdAAAAOQAA5t4AAObeAAAAOgAA5t8AAObfAAAAOwAA5uAAAObgAAAAPAAA5uEAAObhAAAAPQAA5uIAAObiAAAAPgAA5uMAAObjAAAAPwAA5uQAAObkAAAAQAAA5uUAAOblAAAAQQAA5uYAAObmAAAAQgAA5ucAAObnAAAAQwAA5ugAAOboAAAARAAA5ukAAObpAAAARQAA5uoAAObqAAAARgAA5usAAObrAAAARwAA5uwAAObsAAAASAAA5u0AAObtAAAASQAA5u4AAObuAAAASgAA5vAAAObwAAAASwAA5vEAAObxAAAATAAA5vIAAObyAAAATQAA5vMAAObzAAAATgAA5vYAAOb2AAAATwAA5vcAAOb3AAAAUAAA5vgAAOb4AAAAUQAA5vkAAOb5AAAAUgAA5voAAOb6AAAAUwAA5vsAAOb7AAAAVAAA5vwAAOb8AAAAVQAA5v0AAOb9AAAAVgAA5v4AAOb+AAAAVwAA5v8AAOb/AAAAWAAA5wIAAOcCAAAAWQAA5wMAAOcDAAAAWgAA5wQAAOcEAAAAWwAA5wUAAOcFAAAAXAAA5wYAAOcGAAAAXQAA5wcAAOcHAAAAXgAA5wgAAOcIAAAAXwAA5wkAAOcJAAAAYAAA5woAAOcKAAAAYQAA5wsAAOcLAAAAYgAA5wwAAOcMAAAAYwAA5w0AAOcNAAAAZAAA5w4AAOcOAAAAZQAA5w8AAOcPAAAAZgAA5xAAAOcQAAAAZwAA5xEAAOcRAAAAaAAA5xIAAOcSAAAAaQAA5xMAAOcTAAAAagAA5xUAAOcVAAAAawAA5xYAAOcWAAAAbAAA5xcAAOcXAAAAbQAA5xgAAOcYAAAAbgAA5xkAAOcZAAAAbwAA5xsAAOcbAAAAcAAA5xwAAOccAAAAcQAA5x0AAOcdAAAAcgAA5x4AAOceAAAAcwAA5x8AAOcfAAAAdAAA5yAAAOcgAAAAdQAA5yIAAOciAAAAdgAA5yMAAOcjAAAAdwAA5yQAAOckAAAAeAAA5yUAAOclAAAAeQAA5yYAAOcmAAAAegAA5ycAAOcnAAAAewAA5ygAAOcoAAAAfAAA5ykAAOcpAAAAfQAA5yoAAOcqAAAAfgAA5ysAAOcrAAAAfwAA5y0AAOctAAAAgAAA5y4AAOcuAAAAgQAA5y8AAOcvAAAAggAA5zAAAOcwAAAAgwAA5zEAAOcxAAAAhAAA5zIAAOcyAAAAhQAA5zMAAOczAAAAhgAA5zQAAOc0AAAAhwAA5zUAAOc1AAAAiAAA5zYAAOc2AAAAiQAA5zcAAOc3AAAAigAA5zgAAOc4AAAAiwAA5zkAAOc5AAAAjAAA5zoAAOc6AAAAjQAA5zsAAOc7AAAAjgAA5zwAAOc8AAAAjwAA5z0AAOc9AAAAkAAA5z4AAOc+AAAAkQAA5z8AAOc/AAAAkgAA50AAAOdAAAAAkwAA50EAAOdBAAAAlAAA50QAAOdEAAAAlQAA50UAAOdFAAAAlgAA50cAAOdHAAAAlwAA50gAAOdIAAAAmAAA50kAAOdJAAAAmQAA50oAAOdKAAAAmgAA50sAAOdLAAAAmwAA50wAAOdMAAAAnAAA500AAOdNAAAAnQAA504AAOdOAAAAngAA508AAOdPAAAAnwAA51AAAOdQAAAAoAAA51EAAOdRAAAAoQAA51IAAOdSAAAAogAA51MAAOdTAAAAowAA51QAAOdUAAAApAAA51UAAOdVAAAApQAA51YAAOdWAAAApgAA51cAAOdXAAAApwAA51gAAOdYAAAAqAAA51kAAOdZAAAAqQAA51oAAOdaAAAAqgAA51sAAOdbAAAAqwAA51wAAOdcAAAArAAA510AAOddAAAArQAA514AAOdeAAAArgAA518AAOdfAAAArwAA52AAAOdgAAAAsAAA52EAAOdhAAAAsQAA52MAAOdjAAAAsgAA52QAAOdkAAAAswAA52UAAOdlAAAAtAAA52YAAOdmAAAAtQAA52cAAOdnAAAAtgAA52gAAOdoAAAAtwAA52kAAOdpAAAAuAAA52oAAOdqAAAAuQAA52sAAOdrAAAAugAA52wAAOdsAAAAuwAA520AAOdtAAAAvAAA524AAOduAAAAvQAA528AAOdvAAAAvgAA53AAAOdwAAAAvwAA53EAAOdxAAAAwAAA53IAAOdyAAAAwQAA53MAAOdzAAAAwgAA53QAAOd0AAAAwwAA53UAAOd1AAAAxAAA53YAAOd2AAAAxQAA53cAAOd3AAAAxgAA53gAAOd4AAAAxwAA53kAAOd5AAAAyAAA53oAAOd6AAAAyQAA53sAAOd7AAAAygAA53wAAOd8AAAAywAA530AAOd9AAAAzAAA534AAOd+AAAAzQAA538AAOd/AAAA1QAA54AAAOeAAAAA1gAA54EAAOeBAAAA1wAA54IAAOeCAAAAzgAA54MAAOeDAAAA2AAA54QAAOeEAAAA2QAA54UAAOeFAAAAzwAA54YAAOeGAAAA0AAA54cAAOeHAAAA0QAA54gAAOeIAAAA0gAA54kAAOeJAAAA0wAA54oAAOeKAAAA2gAA54sAAOeLAAAA1AAA54wAAOeMAAAA2wAA540AAOeNAAAA3AAA544AAOeOAAAA3QAA548AAOePAAAA3gAA55AAAOeQAAAA3wAA55EAAOeRAAAA4AAA55IAAOeSAAAA4QAA55MAAOeTAAAA4gAA55QAAOeUAAAA4wAA55UAAOeVAAAA5AAA55YAAOeWAAAA5QAA55cAAOeXAAAA5gAA55gAAOeYAAAA5wAA55kAAOeZAAAA6AAA55oAAOeaAAAA6QAA55sAAOebAAAA6gAA55wAAOecAAAA6wAA550AAOedAAAA7AAA554AAOeeAAAA7QAA558AAOefAAAA7gAA56AAAOegAAAA7wAA56EAAOehAAAA8AAA56IAAOeiAAAA8QAA56MAAOejAAAA8gAA56QAAOekAAAA8wAA56UAAOelAAAA9AAA56YAAOemAAAA9QAA56cAAOenAAAA9gAA56gAAOeoAAAA9wAA56kAAOepAAAA+AAA56oAAOeqAAAA+QAA56sAAOerAAAA+gAA56wAAOesAAAA+wAA560AAOetAAAA/AAA564AAOeuAAAA/QAA568AAOevAAAA/gAA57AAAOewAAAA/wAA57EAAOexAAABAAAA57IAAOeyAAABAQAA57MAAOezAAABAgAA57QAAOe0AAABAwAA57UAAOe1AAABBAAA57YAAOe2AAABBQAA57cAAOe3AAABBgAA57gAAOe4AAABBwAA57kAAOe5AAABCAAA57oAAOe6AAABCQAA57sAAOe7AAABCgAA57wAAOe8AAABCwAA570AAOe9AAABDAAA574AAOe+AAABDQAA578AAOe/AAABDgAA58AAAOfAAAABDwAA58EAAOfBAAABEAAA58IAAOfCAAABEQAA58MAAOfDAAABEgAA58QAAOfEAAABEwAA58UAAOfFAAABFAAA58YAAOfGAAABFQAA58cAAOfHAAABFgAA58kAAOfJAAABFwAA58oAAOfKAAABGAAAAAAAAABuALoBLgHeAkYCrAMeA24D9gRaBO4FaAWeBjwGhAbuBywHbAeoCBQIaAiyCTQJign+CooK3gtCC5gMBAx2DPgNQA2GDcgODA5aDvgPUA+4EAwQZBD8EVgRxhIKElYSwhMyE6IUAhQaFEYUZBSSFNQVEhU2FVoVgBWoFe4WQhamFwgXMhdiF5IXvBfuGBgYSBh4GNgZDhlkGaAZ6BqmGuwbXhvCHEwcsB0UHVwdvh5sHtAfUB+wH/wgWiC2IQIhaCGoIiAioiMYI3Ij2iQUJJYk9iWKJiYmoCb+J14ntif0KGQomikOKVwpoingKi4qpCryK1YrwCxOLH4s4C0qLYIt4C5QLogu5i8kL74wGDB0MNwxJDHoMkwymDLsM2Qz8DRINJw1EjWuNfw2UDagNxY3qjgsOHo4+Dk2OYY50joeOno6tjsAOyw7eDvWPDw8iDzcPUA9cj3SPhw+bj7KPzY/lD/gQDhAakDSQQ5BPkF+Qb5CEEKkQvBDTEOwQ+pEXkSUROxFMkWARcpGJkZgRsBHCEcwR1hHpkgcSFhImEjQSRpJWkmOScZJ/Eo6SmxKpEriSwxLOkuOTDpMSExWTGRMckyuTPBNIk2QTbxOGE5UTmhOvE7wTzJPdk+4T/RQTlB6ULZRAFE2UXZRolG8UdxSGFJCUohSrlLgUxpTMFNaU4pTwlP6VCBUPFRsVJpUslTOVRpVOlVSVXpVmlXmVjRWiFa6Vt5XAleEV+xYRljGAAUAAAAAA4gDCAAOACUALQA5AEUAAAEXFjI/ATY0JyYiDwEGFBcHBi4CPwEnJjQ/ATYyFxYUDwEGIi8CBwYUFjI3ARYUDwEGLgE/ATYyFxYUDwEGLgE/ATYyATTjChkKzDg4PJk7zAmRiB1MOQEchy0bG8xPzE9LS8wcTx1aLYgJExkKAYEJCbUOJAkNtQoaZAoKtQ0jCg21CRsBl+MJCcw7mTw4OMwKGuyHHAE5TB2ILR1PHMxLS0/MT8wcHFstiAoZEwkCCAoZCrUNCSQNtQpkChoKtA0JJA21CQADAAD/wAMAA0AAEAAoADAAAAEhMjY1ETQmIyEiBhURFBYzBRUOASImJzUjLgEnET4BNyEeARcRDgEHKwEVFBYyNjUBoAEADhISDv7ADhISDgEAATZSNgFAKTYBATYpAUApNgEBNimAQBIcEgEAEg4BwA4SEg7+QA4SQKApNjYpoAE2KQHAKTYBATYp/kApNgGgDhISDgAAAAQAAP/7A8gDSAATACsAPgBGAAABJj4BHgEGBx4BPgE1Mw4BBy4BLwEeARcWNjc2JicmBgc+AR4BFyMuAScmBhMHBi4CPwEmNjc2FhceAQcOAScmJwcGHgE3AgEEHDUqDBwaETs/J0ACWkREWgJ+D4ReXpAYFE9VV603PIyBSAFAAmJNTXJczh5LOQEbzjY0YWPlV1QSRkrfoxkVxQ0KIw0BwBsqCxs1KwccFxIyIURaAgJaRB5eeQcDbFtcoSklME0pCUN4SU1rBwVa/rrOGwE5Sx7Obd9KRhJUV+VjYTRaFRnGDSMKDQAHAAD//wNwA0QACgAWAD8AWwBlAHEAewAAATU0JiIGFREzMj8BIgc1MzU0JiIGHQEzMh4CBwMOAQchLgEnAyY+AjMjNT4CFhc2FzU+AhYXNh4CHQEHDgErASImJyM1Ji8BIyIGHwEhNzYmKwEHBgcVJzQmIgYdARY7ASc1NCYiBh0BMyMyFwMXHgEzITI2PwECYBIcEhsUEWUUEUASHBJwFSUbCgQ8BzQk/mAkNAc8BAobJRUQAS5JOgshIgEuSToLFi8oFoETNB12HTQTAQYEG0sNEgMdAh4dAxINSxsFBcASHBIRFBuAEhwSQCUUEWMTAxEMAaAMEQMTAqBADhISDv6wDGQMDKAOEhIOoBIgJxX+vCIrAQErIgFEFScgEqAlNQkmJA0LJSU1CSYkCQUbKhiggBcZGRcCBwgvFQ2eng0VLwgHAuAOEhIOxAxwoA4SEg6gDP7MZgsPDwtmAAAABAAA/78DggOAACMALgA6AEAAAAE1PgE3MzIWFAYrASIGHQEhHgIGBwMOAQchLgEnAy4BPgE3FxMhNy4BNz4BPwElITI2NCYjISIGFBYBEw4CFgGgATYpgA4SEg6ADhIBQCc2BC8mKAIkGv54GiQCKCYvBDYnNCgBiAVQXAQHbVIF/fQCQA4SEg79wA4SEgH7FjdHCDwDACApNgESHBISDiABMk45Bf27GiEBASEaAkUFOU4yAcD9wEcWf1NTcgtBQBIcEhIcEv4IATULT3BYAAYAAP+/A6ADgAADAAcADAARAD0AQQAAARUzNyEjFzMTFTMuAQcOAQczNx4BFzMyFhQGKwEDDgEHIS4BJwMjIiY0NjsBPgE3NT4BNzMyFhQGKwEiBhUTIRMhAgDwEP7AwBCwQPgYh5lEYRO4QHSsGUcOEhIOQDkEIxj+cBgjBDlADhISDkcUhl8BNimADhISDoAOEuj+MCABkAHAgICAAX+/VmgHEmFE/wKLchIcEv44GB8BAR8YAcgSHBJfhRUnKTYBEhwSEg794P8AAAgAAP+/A4ADgAAcACMAJwA3ADsAPwBDAEcAABM+ATceARceAR0BDgEHAw4BByEuAScDLgEnNTQ2NyEuAScOAQEhEyEBITI2PQE0JiMhIgYdARQWFzMVIzsBFSsBMxUjEzMVI8YYrHZ2rBggJgEmITEEIxn+chkjBDEhJgEmYgHwGIdZWYcB1/4SMAGO/hkCQA4SEg79wA4SEq5AQMBAQIBAQEBAQAJ8c48CAo9zCTIhQCEzCf51GB8BAR8YAYsJMyFAITINVmgCAmj+qv6AAcASDkAOEhIOQA4SwEBAQAEAQAAAAAQAAP/AA3wDQAAjACcALAAwAAABMzIWHwEWBisBAw4BIyEiJicDIyImPwE+ATsBJzQ2MyEyFg8BNyEXByEnIQcXEyETAzcODBECFgITDzEnARIN/jwNEgEnMQ8TAhYCEQwOBxMNAjsOEwFHBf4KBDcCYgr9rApLJQGIJQLADwyADhf93g0REQ0CIhcOgAwPXg4UFA5eQECAQEBA/gACAAAKAAD/wAPAA0AABgANABQAGwAiACkAMAA3AEMATAAAJT4BNycGBwU+ATchBgclLgEnBxYXEy4BJxEWFwMOAQcXNjclDgEHITY3BR4BFzcmJwMeARcRJicTLgEnPgE3HgEXDgEDPgE0JiIGFBYCIDxuLrcPEgEFJy4F/v0FCQERBS4ntwkFfC5uPBIPYTxuLrcPEv77Jy4FAQMFCf7vBS4ntwkFfC5uPBEQQb79BQX9vr79BQX9vhskJDYkJAEFLie3CQV8Lm48Eg9hPG4utw8SAQUnLgX+/QUJAREFLie3CQV8Lm48Eg9hPG4utxAR/vsnLgUBAwUJ/q4F/b6+/QUF/b6+/QF7ASQ2JCQ2JAAAAAIAAP+/A2ADQAAcADwAAAEGBw4BJj8BDgEPAg4BFR4BFz4BNzQmLwIuASc2NzY3Nh4BBgcGDwEeAR8BHgEXDgEHLgEnPgE/AT4BAh4EBQYjGQYBMUEIEhQsLgOhfHyhAy4sFBIJRlsMDiMsDBgOBgweHApBWAwMNj0BBMaWlsYEAT02DA91An0MDREHGxEDDEYxZw8gVC5dgAMDgF0uVCAPZzNITRcVMxoGBhcZBxMoDxJhQk4obUB6owMDo3pAbShOUGgAAAAAAgAA/8QDogNDADYAXAAAATYXMx4BFxYXFgIPAQYHDgEjBiYvAS4BIgYPAQ4BBwYmJyYCNz4BNzYWHwI2NzY3PgEeAQcGBwYHDgEuAT8BLgEjDgEHBhYXHgEXPgE3HgEXPgE3NhInLgEHJgYCWCAgAxckFDk3SBNYHw4QFzUiFycWBw8UGRYQBhUjFTZQLkomOSN0RRgvHRwJGQoUFQQXGgsEEkgVHwkaEwEJDBUxGjVaHDQvORpAKSU2LS01JygzJFALNzdNFB86ArQIAwEHCRdCXv7MeCgSERkZAQkKAwcFBQgCCQoBAkBHbgENaz5HAgEMDAsDHhQoPQ0LCBcNOXcbIAkBEhoKDQkRATgwZvFTKUEBBB0CAh4CATYxbgELSD4ZAgMSAAADAAD//wPEA0AANABAAEwAAAE2NzY3IyImNDYzITIWFAYrARYXHgEXHgEXFgYHBiYnJjY3JicmJw4BBx4BBw4BIy4BJyY2Ez4BNy4BJw4BBx4BJT4BNy4BJw4BBx4BAQUVKiRNdQ4SEg4BgA4SEg6VFjkkNhFYeggFZ1dXjhkWTFIiKDsaU0UTWWcHC39aW3kHAm50RFoCAlpERFoCAloCBERaAgJaRERaAgJaAb5pST1TEhwSEhwSO1MzOQYEc1hZhBENWlRWliEjOlRBV3hXEYhaWXEEd1pag/6OAlpERFoCAlpERFo+AlpERFoCAlpERFoAAgAA//ADkwMTABIAHAAAAQcnNycHJzcnByc3JwYSFxYENzMOAScuAScmNjcCqyw9NTeeLp84xhGjjGEMam8BIndbVet8fK8fHUtgASijEMc3ny6eODY+LIx3/t5vagxhYEsdH698fOtVAAAABwAA/8ADpgNAADMAPABFAE4AVwBgAGkAAAEeARc+AR4BDgEHFg4CBxYOASIuATcuAzcuAj4BFhc+ATc1IyImNDY7ATIWFAYrAQM+ATQmIgYUFgc+ATQmIgYUFhc+ATQmIgYUFhc+ATQmIgYUFjc+ATQmIgYUFjc+ATQmIgYUFgIgHTESImdnNQ9MOBAEJj8nFhpYbFgaFic/JgQQOEwPNWdnIhIxHUAOEhIOwA4SEg5AICk2NlI2NtcpNjZSNjapKTY2UjY2qSk2NlI2NqkpNjZSNjapKTY2UjY2Ar0GHxgsHCpdbksHI0xDKQU0aEVFaDQFKUNMIwdLbl0qHCwYHwZDEhwSEhwS/sABNlI2NlI2AQE2UjY2UjbhATZSNjZSNuEBNlI2NlI23wE2UjY2UjbfATZSNjZSNgAAAAUAAP/AA0ADQAAJABMAIwAnACsAAAEhETQmIyEiBhUZARQWMyEyNjURASEeARcRDgEHIS4BJxE+ARczFSMVMxUjAQACABIO/kAOEhIOAcAOEv4gAcApNgEBNin+QCk2AQE2SUBAQEABwAEgDhISDv6g/qAOEhIOAWABwAE2Kf1AKTYBATYpAsApNt9gwGAAAAMAAP/AA0QDQAASACcARQAAARYfARY3FjY3MT4BFzIWHwE1IRceARc+ATcmJy4BIyYGByMOASciJhMuATc1NDYzITIWHQEWBgcRMzIWFAYjISImNDY7AQEACAgNNT4WJx4nOiQpRSAC/gABB317dnwLFBQYMR0WKB8BJTkjKUfAqXsEEg4CQA4SBHupYA4SEg7/AA4SEg5gAnEFBQkfAQETFx4aAR4bApvbZ3wCAXJfERMVFQETGB0aARP+7hPJY+AOEhIO4GPJE/7/EhwSEhwSAAAAAgAA/8ADRANAAB0AJgAAAREzMhYUBiMhIiY0NjsBES4BNzU0NjMhMhYdARYGARQWFz4BJzUhAiBgDhISDv8ADhISDmCpewQSDgJADhIEe/43fYOEfQH+AAEB/v8SHBISHBIBARPJY+AOEhIO4GPJASxyjAICjHLAAAAAAAMAAP/AA0EDQAAFAAwAJgAAASE0JyEGBSEeARc+AQcRMzIWFAYjISImNDY7AREuASc0NyEWFQ4BAQACACX+TikB+P4QGIdZWYfAYA4SEg7/AA4SEg5gfaADQAIAQAOgAkB2SmCgVmgCAmio/v4SHBISHBIBAg+xfoCAYKB+sQAAAgAA/8ADQQNAABkAJAAAAREzMhYUBiMhIiY0NjsBES4BJzQ3IRYVDgEBHgEXPgE3NCchBgIgYA4SEg7/AA4SEg5gfaADQAIAQAOg/mMDkG1tkAMl/k4pAQL+/hIcEhIcEgECD7F+gIBgoH6xAS9tkAMDkG12SmAAAwAA/8ADxwNJACkAOQBEAAABHgIOAicDFTMyFhQGIyEiJjQ2OwE1ASY9ATQ2NzMnJj4BFh8BIT4BBzMeAR0BFA8BFj4BLgEGBwUXFg4BJi8BIwkBAwA7Xi4VUm832mAOEhIO/wAOEhIOYP6tDRIOSEIIAxYZCWABUhViMY8OEg1QMVQgJlxbGv6agQgDFRkJoEoBMAEwA0ABPm1vVRgV/t6rEhwSEhwSqwHDEhULDRIBUwsaEAMKezpFfwESDQsVEWwKLmBYKR0sP6YLGRACCs7+awGVAAAABAAAAAADwgMAABYAHQApADMAAAEyHgEOAicOAQcjLgEnETQ2MyEyFh0BET4BNy4BASEyFhQGIyEiJjQ2ExEeARczPgE3EQMANVk0AzdbNRiHWcBtkAMSDgKADhI2SQEBSf0qAoAOEhIO/YAOEhIuAmxSwFJsAgLANF1mWzACVmkBA5BtAWAOEhIOYP8AAUk2Nkn9wRIcEhIcEgKA/sBSbAICbFIBQAAAAwAA/+ADwAMgAAkAIwAtAAAlESERHgEXIT4BEzMeARcVDgEHIxUOAQchLgEnETQ2MyEyFh0BETMyNjc1LgEjAuD9wAEkGwHAGyRBQCg3AQE3KEABSTb+QDZJARIOAoAOEkANEgEBEg1gAoD9gBskAQEkAjsBNingKTYBgDZJAQFJNgKgDhISDsD+4BIO4A4SAAAAAAcAAP+iA3gDXgADABEAIwAwAD0ASgBWAAABITUhHQEUHgI7ATI+Aj0BJSEeAR0BDgEHIyIuAj0BNDYBMhYdARQGIiY9ATQ2Bx4BFxUOASImJzU+ASUeARcVDgEiJic1PgEBITIWFAYjISImNDYBEQHe/iIdNUQmZiZENR3+AAIiDhQDkG1mNF1IJxQBHw4UEx4TFHsPEwEBEx0TAQETASAOEwEBEx0TAQET/jECqg8TEw/9Vg8TEwGiRIgzJkQ2HBw2RCYzzQETDt5tkQImSV003g4TATQUDqsOFBQOqw4URAETD2YOFBQOZg8TAQETD2YOFBQOZg8T/M0THRQUHRMAAAAABQAA/5kDgANCABIAGQAgACMALgAAEz4BNz4BFx4BFx4BFzMBBiInATMhLgEnDgEFIS4BJw4BBQkBJT4BFy4BDgEHHgGBB2tPDoBYWHcIN0QFAf6lCiIJ/pBBAR4HUDg4UAFYAR8ITzk4T/7RARABAf72H2Q6DVh2VQsoQAHAT2oHVmsBBXNYF147/egODgIYOEcBAUc4OEcBAUd4/nMBjZ8xMwM5RwJKOgovAAYAAP+/A4ADQAAbACcALwA3AD4ASgAAEz0BND4CFz4BNx4BFzYeAh0BDgEHFSM1LgElMyY2Ny4BIgYHHgEHNi4BIg4BFyEzNi4BIg4BAz4BNyEeAQchMhYUBiMhIiY0NoAbMT0gFnVMTHUWID0xGwPEmUCZxAEcwgQfIA5VclUOIB9NBRAlLCUQBQHgjAUQJSwlEKV+sQ/9hA+xAgEADhISDv8ADhISAeAgECA5KhAFSVgBAVhJBRAqOSAwmdYQYWEQ1rknRhg3Q0M3GEYnFigaGigWFigaGij+igOgfX2goxIcEhIcEgAGAAD/uQPHA0cAMQA6AEIASABOAFQAAAEXFhQHAQ4BIiYvAQcOAiYvAS4BPgE/AScuATQ2NwE+ATIWHwE3PgIWHwEeAQ4BBwUhFTc2NyEHBgcWHwEWMj8CJyYiDwEBFzc2JgcBBwYWPwEDIgQmJv7xEy40LhIFEwQXIiMNjwwJCxsSbQQSFBQSAQ8TLjQuEgUTBBcjIg2ODQgLGhL9bgG/PRIB/lVaBgQEBogUMxOVaXYUMxN2/tuPGAITDQHwGAITDYkCIwUnZij+8RIUFBIEbRIbCwkMjw0jIhcEEwUSLjQuEwEPEhQUEgRtEhoLCA2PDSIjFwPaAj0SGloGRwcGiBMTled2ExN2/oiPiQ0TAgJhiQ0TAhgABQAAAAADoANMAAcAHQAkACwAMAAAJT4BNyEeARcHLgEnNDYzITIWFQ4BBxUOAQchLgEnEyM3Nh4BDwEjJTYeAQYHARUhNQLKQE0I/UIITUAWW2QBEg4DAA4SAWRbASQb/sAbJAHNWv4NJAkNFYABDQwZDQYM/goBQMAthU5OhS0/O7hsDhISDmy4O0EbJAEBJBsCAP4NCSQN0ZwGBxcZB/3cQEAAAAAABAAAAAADwAM+AA8ALQA0AD8AABMiBh0BFBYXITI2PQE0JiM3HgEdARQGDwEOAQchLgEvAS4BPQE0Njc1PgE3HgEHLgEnDgEHASEXHgEzITI2PwGgDhIRDQLCDhISDiAdIxwYNQswHv4EHjALNRgcIx0F26Oj1z0DtYiItQMBQP68KQMQCgH8ChADKQGAEg5ADRIBEg5ADhI7CzEfQBsuDI0cIQEBIRyNDC4bQB8xCwWj1wMF2p6ItQMDtYj/AGsKCwsKawAAAAADAAD/wANAA0AAJwAtADkAAAERNDYyFhURPgE9ATQ2MhYdAQ4BBxEUBiImNREuASc1NDYyFh0BFBYlETMmJyYDERQGIiY1ETMeARUBABIcEh0jEhwSAUY5EhwSOUYBEhwSIwGdfwUYFU0SHBJAgEAB5QE7DhISDv7FCzEf4A4SEg7gOlYN/j0OEhIOAcMNVjrgDhISDuAfMfD+gHZaUv6e/sAOEhIOA2CG9KYAAwAA/8ADgANAACcAOgBGAAABETQ2MhYVET4BPQE0NjIWHQEOAQcRFAYiJjURLgEnNTQ2MhYdARQWBS4BJz4BNx4BFw4BBxEUBiImNRM+ATcuAScOAQceAQEAEhwSHSMSHBIBRjkSHBI5RgESHBIjAb1GWQECbFJSbAIBWUYSHBIgM0sCAkszM0sCAksB5gE6DhISDv7GCjEf4A4SEg7gOlYN/j0OEhIOAcMNVjrgDhISDuAfMawRimFtkAMDkG1hihH+nA4SEg4BoAJqVFRqAgJqVFRqAAAABQAA/7MDwQNEAAgAJQAwADsARgAAJTcuAScHHwMeAQ4BLgEvAi4CPgEWFzcmNjc2HgIHDgEvARY2NzYuAgcOAQc2LgEOAh4BPwEXBh4BPgIuAQ8BAV6BDxcIgAICIEIeDSZHUzsIAiApNwwmS08ekgFQRlKphAxPRrVPNizRVjkIYXc7UUTZARQlJxwHECIUOAwBFCUnHAcQIhQ5s4EHGA6BCSACIx5QSyYMNykgAgk6U0cmDR2RTrVHTgyEqVJFUQFRI0NRPHZhCTlX0eUUIhEHHSclFAEESBQhEQcdJiUUAQMABgAAAAADuwNMAB0AKwAxAEAASgBSAAATNT4CFhc2HgIHHgEHAgcVDgEHIS4BJzUmAyY2NzM+ATceARczLgEnDgEXMy4BIgYFMzYuAiMiBxYXNh4CAyEVFBYzITI2NSUhPgE3IR4BgAFfpKdAMmlZJwkcIgQsqwE2Kf8AKTYBqywEIFtAAlpERFoCQAJ/X19/fsABNlI2AbZFBwwkNR4XFRIKEyQYAmH+wBIOAQAOEv6pAW5MYBT9EhRgAh8BWY5EIT4YCkFjNgMsG/76RSspNgEBNikrRQEGGisFRFoCAlpEX38CAn9fKTY2KR05MBoIGx8FDR8m/k8gDhISDmAYjnp6jgAEAAAAAAPRAyAADgAaACEAKQAAATU+ATceARcVFhIHISYSAyEyFhQGIyEiJjQ2NyEuAScOAQE1LgEiBgcVAYACSDY2SAKirhX8ihavfgNADhISDvzADhISLgMABNmjo9kBvAEkNiQBAm0zNkkBAUg3MjT+76mpARH+BhIcEhIcEoCj2QQE2QEdIBskJBsgAAADAAAAAAPJAwAAGQAgACwAAAE1IyImNDYzITIWFAYrARUeAwchJj4CASEuAScOAQMhMhYUBiMhIiY0NgHgYA4SEg4BAA4SEg5gXqR2MQ38iA0xdqT+/gMABNmjo9kkA0AOEhIO/MAOEhICf0ESHBISHBJBB1aTsl1dspNW/kij2QQE2f7dEhwSEhwSAAEAAP/+A40DDQApAAABMzIWFAYHIy4BPQE0NjIWHQE+ARceARcOAQcuASczHgEXPgE3LgEnJgYBIV0OEhIOlQ4SEhwSVt1ransBBNmjo9kEQAO1iIi0BAFuXV69AlcSGxIBARINlQ4SEg4yTSUtMLx0o9kEBNmjiLUDA7WIZZ8mIysAAAEAAP/+A40DDQApAAABNTQ2MhYXFQ4BByMuATQ2OwEuAQcOARceARc+ATczDgEHLgEnPgE3NhYDERIbEgEBEg2VDhISDl1O02NiVhodqXCItARABNmjo9kEAXpqa90CmjIOEhIOlQ0SAQESGxJSIzQ2xG5sgwIDtYij2QQE2aN0vC8uJQAAAAAEAAD/wAPAA0AACwAXACAALQAAAR4BFw4BBy4BJz4BEz4BNy4BJw4BBx4BNw4BIiY0NjIWAzIWFREUBiImNRE0NgIAvv0FBf2+vv0FBf2+o9kEBNmjo9kEBNnTARsoGxsoGy8OEhIcEhIDQAX9vr79BQX9vr79/MUE2aOj2QQE2aOj2awUGxsoGxsBvBIO/uAOEhIOASAOEgAAAAAEAAD/uAPAA0AAHwBMAFgAZAAAARcHHgEXMxEjBgcXBycGJwcnNy4BJyMRMzY3JzcXNh8BDwEnJg8BJwcXBwYPASMVMxceAR8BBxc3FxY/ARc3Jzc2PwEzNSMnLgEvATcHHgEXDgEHLgEnPgEXDgEHHgEXPgE3LgECcd4rFiQMVlYYLiveK0ZGK94rFyMMVlYYLiveK0ZGQwwWLTo6LSJuIR0mFA9EQxAKHBQdIW4iLTo6LSJuIR0mFA9EQxAJHhMdIfdffwICf19ffwICf19EWgICWkREWgICWgNAgEsaPiH/AEM2S4BLDQ1LgEsbPSEBAEM2S4BLDQ0MFCcICwsIO0A7Ii04K4ArHTAYIjtAOwgLCwg7QDsiLjcrgCsbMxciO00Cf19ffwICf19ffz4CWkREWgICWkREWgAABAAA/8QDwANAABkAIQApADEAABMBHgE/AT4BLwEuAQ8BATc2Ji8BJgYPAQYWPwEXBwE3FwcDNR4BFyMuASc1HgEXIy4BTwIBBxMJ/RAGDJkIFAlG/vAjBQQHmgwhB2wEA0RRaS4BUVtovm5tkANAAmxSvv0FQATZAdD9/wcDBGwHIQyaBwQFIwEQRgkUCJkMBhD9CRMXvmhb/q8uaVECNEADkG1SbMJABf2+o9kAAAAGAAAAAAPAAeAACwAUACAAKQA1AD4AABMOAQceARc+ATcuAQceARQGIiY0NiUeARcOAQcuASc+ARcOARQWMjY0JiUeARcOAQcuASc+ARcOARQWMjY0JrAwPwEBPzAwPwEBPzAUGxsoGxsBZDA/AQE/MDA/AQE/MBQbGygbGwE8MD8BAT8wMD8BAT8wFBsbKBsbAeABPzAwPwEBPzAwPz8BGygbGygbQQE/MDA/AQE/MDA/PwEbKBsbKBtBAT8wMD8BAT8wMD8/ARsoGxsoGwAABAAAAAADwALpAA8AGwAnADMAACUBNh4BBwEOAS8BLgE+ARclIiY0NjsBMhYUBiMFIiY0NjMhMhYUBiMFIiY0NjMhMhYUBiMBGQGaCyUPCv5SCBoL5woEEBoLApMOEhIOwA4SEg7+wA4SEg4BQA4SEg7+QA4SEg4BwA4SEg6OAksPAyEQ/ZsLBQitCBoWAwiZEhwSEhwSwBIcEhIcEsASHBISHBIAAAAABAAAAAAEAALgAAsAFwAjAC8AAAEWABcGAAcmACc2ABcOAQceARc+ATcuAQceARcOAQcuASc+ARcOAQceARc+ATcuAQIA8gEMAgL+9PLy/vQCAgEM8qriKSniqqriKSniql9/AgJ/X19/AgJ/X0RaAgJaRERaAgJaAuAW/swWFv7MFhYBNBYWATQqC89GRs8LC89GRs81An9fX38CAn9fX38+AlpERFoCAlpERFoAAAAIAAD/wAPAA0AADAAZACYAMwBAAE0AWgBnAAABMhYdARQGIiY9ATQ2EzIWHQEUBiImPQE0NiUUBisBIiY0NjsBMhYFFAYrASImNDY7ATIWAzYyHwEWFAYiLwEmNAE2Mh8BFhQGIi8BJjQTFhQPAQYiJjQ/ATYyARYUDwEGIiY0PwE2MgIADhISHBISDg4SEhwSEgHOEg7ADhISDsAOEv2AEg7ADhISDsAOEn0KGgmICRMZCogJAc4KGQqICRMaCYgKvwkJiAoZEwmICRr+RQoKiAkaEwmIChkDQBIOwA4SEg7ADhL9gBIOwA4SEg7ADhLADhISHBISDg4SEhwSEgEvCQmIChkTCYgJGv5FCgqICRoTCYgKGQHPChoJiAkTGQqICf4yChkKiAkTGgmICgAAAgAA//IDgQMOAB0AOwAAJQ4BJy4BJzMeARcWNjcjIiY0NjczHgEXFQ4BIiY1ATMyFhQGByMuASc1PgEyFh0BPgEXHgEXIy4BJyYGAwRX3WpqewFAAW1eXr1FXQ4SEg6VDRIBARIbEv4QXQ4SEg6VDRIBARIbElfda2p6AUABbV5evWVOJC0wvHRloCUkLEoSGxIBARINlQ4SEg4CJRIbEgEBEg2VDhISDjJOJC0wvHRloCUkLAAAAAEAAP/NA64DMwBHAAATFxYOAS8BJjQ/ATYeAQ8BIREHBi4BPwE2Mh8BFg4CLwERIScmNDYyHwEWFA8BBiImND8BIRE3Nh4BDwEGIi8BJjQ2Mh8BEboqDAkjDWAKCmANIwkMKgEjKQ0lCQ5gCRoKYAkBExgKKgEjKQoTGgpgCQlgChoTCin+3SoNIwoNYAoaCWAKExoKKQFgKQ4jCQxgChoKYAwJIw4pASYqDQkkDWAKCmAKGBMBCSn+2ykKGhMJYAoaCmAJExoKKf7bKQ0KIw1gCgpgCRoTCSoBJgACAAD/wAOqA0AAFAApAAABNDYyFhURFA4BJicBJjQ3MTYyHwETND4BFhcBFhQHMQYiLwERFAYiJjUBgBIcEgsSEwf+1wkJChkK88ALEhMHASkJCQoZCvMSHBIDIA4SEg787QoPCAQHASkJGwkKCvMCmQoPCAQH/tcJGwkKCvP9Og4SEg4AAAAABAAA/6ADYANgAAkAEwAjACwAADcVHgEXIT4BNzUlIREuASchDgEHEy4BJxE+ATchHgEXEQ4BBycOASImNDYyFuABJBsBwBskAf3AAkABJBv+QBskASApNgEBNikCACk2AQE2KdABGygbGygbgGAbJAEBJBtgQAIgGyQBASQb/MABNikDACk2AQE2Kf0AKTYBkBQbGygbGwADAAD/vwPFA0cAOAA/AEYAAAEeAQ4BBw4BByMiJjQ2OwE+ATcjIiY1ETQ2OwEyFy4BJw4BBzY7ATIWFREUBisBLgI2Nz4BNx4BBQ4BBx4BFyUuAScRPgEDYDIzDUc3FYlcYA4SEg5gPmIVFQ4SEg4gEA8On3Jynw4PECAOEhIOIENkIzE5BMaWlsb9pDZJAQFJNgKAAUk2NkkB5h1kc1cSWm0CEhwSAUU6Eg4BQA4SAnCQAgKQcAISDv7ADhIBTYF1IpbHAwPHvAFJNjZJAYA2SQH/AAFJAAADAAD/wAOEA0AAKwA0AEoAAAEzMhYfASMnIxUUBiImPQEhFRQGIiY9ASMDIRUhIiY3Ez4BOwE1PgE3HgEXBzUuAScOAQcVAScVFAYiJj0BBwYuAT8BNjIfARYOAQLAgw0RAhNAEGYSHBL/ABIcEmYzAVn+gw4TAjkCEQ2DAmxSUmwCQAFJNjZJAQHJSRIcEkkOIwkMgAoaCoAMCSMCYBANw6BgDhISDmBgDhISDmD+AEAVDgJADRAWVnICAnJWFhY7TgEBTjsW/hxK5g4SEg7mSg0KIw2ACgqADSMKAAAAAAMAAP/NA4QDQAArADQASgAAATMyFh8BIycjFRQGIiY9ASEVFAYiJj0BIwMhFSEiJjcTPgE7ATU+ATceARcHNS4BJw4BBxUBNh4BDwEGIi8BJj4BHwE1NDYyFh0BAsCDDRECE0AQZhIcEv8AEhwSZjMBWf6DDhMCOQIRDYMCbFJSbAJAAUk2NkkBAckOJAkNgAoaCoAMCSMOSRIcEgJgEA3DoGAOEhIOYGAOEhIOYP4AQBUOAkANEBZWcgICclYWFjtOAQFOOxb+JA0JJA2ACgqADSMKDUrmDhISDuYAAAAABQAA/8ADwANBAB8AIwAnADQAQQAAEyMiJjQ2MyE1NDYzITIWHQEhMhYUBisBERQGIyEiJjUBNSMVAyERIRMiJjURNDYyFhURFAYzIiY1ETQ2MhYVERQGoEAOEhIOAQASDgEADhIBAA4SEg5AEg79gA4SAcDAwAJA/cDADhISHBISsg4SEhwSEgKAEhwSYA4SEg5gEhwS/WAOEhIOAuBAQP1AAoD+ABIOAUAOEhIO/sAOEhIOAUAOEhIO/sAOEgAAAQAAAAADoAGgAAsAABMhMjY0JiMhIgYUFoADAA4SEg79AA4SEgFgEhwSEhwSAAAAAQAA/+ADoAMgABsAAAERNDYyFhURITIWFAYjIREUBiImNREhIiY0NjMB4BIcEgFgDhISDv6gEhwS/qAOEhIOAaABYA4SEg7+oBIcEv6gDhISDgFgEhwSAAEAAAAAA6ACmQAMAAAlJyYOARcJATYuASIHAZfTDSQJDQEAAgAJARMZCr3TDQojDv8AAgAKGhMJAAAAAAEAAAAAAzcCtwAZAAABBycmIgYUHwEHBh4BPwEXFjI2NC8BNzYuAQL8/PwKGRMJ/PwNCSMO/PwKGRMJ/PwNCSQCqfz8CRMZCvz8DSQJDfz8CRMZCvz8DSQJAAAAAgAAAAADRAL0ABEAIwAAATYyFwEWFAcBBiImNDcJASY0JzYyFwEWFAcBBiImNDcJASY0AcUJGAkBSwkJ/rUJGBIJATj+yAn3CRgJAUsJCf61CRgSCQE4/sgJAusICP6rCRoJ/qsIEhgJAUABQAkYCggI/qsJGgn+qwgSGAkBQAFACRgAAgAAAAADRAL0ABAAIQAAATYyFhQHCQEWFAYiJwEmNDcBNjIWFAcJARYUBiInASY0NwIRCRgSCf7IATgJEhgJ/rUJCQJLCRgSCf7IATgJEhgJ/rUJCQLrCBIYCf7A/sAJGREIAVUKGQkBVQgSGAn+wP7ACRkRCAFVChkJAAEAAAAAApQC9AAQAAAJAQYUFwEWMjY0JwkBNjQmIgJh/rUJCQFLCRgSCf7IATgJEhgC6/6rCRkK/qsIEhgJAUABQAkYEgAAAAEAAAAAA3QCNAAQAAAJAiYiBhQXARYyNwE2NCYiA0D+wP7ACRgSCAFVCRoJAVUIEhgCK/7IATgJEhgI/rQJCQFLCRkRAAAAAAEAAAAAAtQC9AARAAABBhQXCQEGFBYyNwE2NCcBJiIBVQkJATj+yAkSGAkBSwkJ/rUJGALrChgJ/sD+wAkYEggBVQkaCQFVCAAAAAABAAAAAAN0AjIAFAAACQEGFBcVFjI3CQEWMjc1NjQnASYiAen+rAkJCRkJAUABQAkZCQkJ/qwJHAIo/psKGAoBCQkBUP6wCQkBChgKAWUJAAIAAP+3AwQDQQAfACsAAAERNDY7ATIWFAYrARUzMhYUBisBFR4BFxYGBwYmJyY2Ez4BNy4BJw4BBx4BAcATDcAOEhIOoKAOEhIOoGiOCQR9ZmieFhFppFJsAgJsUlJsAgJsAbgBaA0TEhwSgBIcEoACh2dolw8Lc2Zmpv5kAmxSUmwCAmxSUmwAAAAAAwAA/+ADgANAAAsAFwAzAAABPgE3LgEnDgEHHgEXLgEnPgE3HgEXDgETNS4BJyEOAQcVFAYiJj0BPgE3IR4BFxUUBiImAgBSbAICbFJSbAICbFJtkAMDkG1tkAMDkNMBNin+QCk2ARIcEgJaRAHARFoCEhwSAYACbFJSbAICbFJSbEIDkG1tkAMDkG1tkP69YCk2AQE2KWAOEhIOYERaAgJaRGAOEhIABAAA/8ADgANMAA8AHwAsAD8AABMiBhURFBYzITI2NRE0JiMlIR4BFxEOAQchLgEnET4BBTIWHQEUBiImPQE0NhMuAQcOAQcVIRcVITU+ATc2FhfgDhISDgJADhISDv3AAkApNgEBNin9wCk2AQE2AUkOEhIcEhLAG3ZFRVYBAWBg/gACcV1cnSUBwBIO/oAOEhIOAYAOEkABNin+gCk2AQE2KQGAKTafEg7ADhISDsAOEgEnQUAMDmdHQCYagF6KFBBWVwAAAAAFAAD/wAOAA0AADwAfACwANQA+AAATIgYVERQWMyEyNjURNCYjJSEeARcRDgEHIS4BJxE+AQUyFh0BFAYiJj0BNDY3NS4BJw4BBxUTHgEXFSE1PgHgDhISDgJADhISDv3AAkApNgEBNin9wCk2AQE2AUkOEhIcEhLOAmxSUmwCwG2QA/4AA5ABwBIO/oAOEhIOAYAOEkABNin+gCk2AQE2KQGAKTafEg7ADhISDsAOEqBAUmwCAmxSQAFAA5BtgIBtkAAAAQAAAAADTAMhABcAAAERFAYiJjURBwYiJjQ3ATYyFwEWFAYiJwI8ERoR3AgaEQkBDwgaCAEPCREZCQKz/acMEREMAlnqCRMaCgEgCQn+4AoaEwkAAgAAAAADQQLBABAAHAAAASEiJjQ2MyEyFhURFAYiJjUTNjIWFAcBBiImNDcDAP5iDhISDgG+DhISHBIJChoTCf3gChoTCQKAEhwSEg7+QA4SEg4B1wkTGgr94AkTGgoAAgAAAAADIQLBABAAHAAAASEyNjQmIyEiBhURFBYyNjUDJiIGFBcBFjI2NCcBAAGgDhISDv5ADhISHBIJChoTCQIgChoTCQKAEhwSEg7+QA4SEg4B1wkTGgr94AkTGgoAAQAAAAADYQLBABcAAAEhIgYUFjMhBwYUFjI3ATY0JwEmIgYUFwLz/a0OEhIOAlPqCRMaCgEgCQn+4AoaEwkBoBIcEukKGhMJASAKGgoBIAkTGgoAAgAAAAADgALBAAsAHAAAEyEyFhQGIyEiJjQ2FwEWFAYiJwEmNDcBNjIWFAfgAoAOEhIO/YAOEhIbAQoJExoK/uAJCQEgChoTCQGgEhwSEhwSIP73ChoTCQEgChoKASAJExoKAAEAAP/lA0AC+AAXAAAlETQmIgYVEScmIgYUFwEWMjcBNjQmIgcCIBIcEukKGhMJASAKGgoBIAkTGgpaAn4OEhIO/YL4ChUaC/7OCgoBMgsaFQoAAAIAAAAAA0ECoQAQABwAACUiBhQWMyEyNjURNCYiBhURFxYyNjQnASYiBhQXAWAOEhIOAcAOEhIcEgkKGhMJ/eAKGhMJgBIcEhIOAcAOEhIO/mA3CRMaCgIgCRMaCgAAAAIAAAAAAyECoQAQABwAACUhMhYUBiMhIiY1ETQ2MhYVAwYiJjQ3ATYyFhQHAQABoA4SEg7+QA4SEhwSCQoaEwkCIAoaEwmAEhwSEg4BwA4SEg7+KQkTGgoCIAkTGgoAAAYAAP/ABAADTAAKABYAFwAjAC8APwAAAT4BNyYOAhczJgcmEjc2JBcOAhYXJTMhMhUxFCMhIjUxNBchMhYUBiMhIiY0NhczMhYVMRQGKwEuATUxNDYBgAFxZmKtdh0gvRPVPzlvcQEhgmWlYAMy/g0gA8AgIPxAIKABgA4SEg7+gA4SEq7gDhISDuAOEhIBgHfKPgZQnLxdP3+KARxnZBtNB2qyxFhAICAgIIASHBISHBKAEg4OEgESDQ4SAAAAAAIAAP+3A7QDNAANABwAABMOAR4CNjcGLgI3BhMWBDcGBCcuAScmEjcGEvBKMzuXz8VHdN+pPhwJrXABJncr/vyoqOIQC7ujZAkCkE3HzY0vQE8cPqnfdAj+jmwJZKO7CxDiqKgBBCt3/toAAAMAAP//A9ADQAAPACEAMgAAKQEGJicmNjc+ARceAQcOASUhFjY3NiYnJgYPAg4BFx4BAy4BPgEeARcGBy4BDgIWFwJW/vJqlAoEgGo+64B+ghQaxf5rARBuoRUSa2dpwDMQI09gAwhvazgePX+ffh8bIxhhd10rGisBhmpqmA52YSgt2oSDoUEBg2xssyQhT2EfBApzT1BkAUs5lZNUAVVKAxA3PgNCcG8pAAACAAAAAAPQAxYADwAhAAAlIQYmJyY2Nz4BFx4BBw4BJSEWNjc2JicmBg8CDgEXHgECVv7yapQKBIBqPuuAfoIUGsX+awEQbqEVEmtnacAzECNPYAMIb0ABhmpqmA52YSgt2oSDoUEBg2xssyQhT2EfBApzT1BkAAACAAAAAAPAAwQAFwAqAAABLwEuAQ4BDwIOARceARchMj4CNS4BJx4BFw4BByEuAScmNjc+ATc2FgLhIQwXaIJfDwknSVEGCmpLAXAqSzsgAVc4XXECA5l0/pBkjQ4JbWEVf1ZXigIaCCA9RAhRPycJEnRLSl4CIDtLKkluURiQYHOaAwJ+Y2SaGVRrBgVbAAAKAAD/wAPAA0AACwAXACQAMQA9AEoAVwBkAHEAfgAAJT4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BAzIWHQEUBiImPQE0NhMyFh0BFAYiJj0BNDYBNjIfARYOAS8BJjQBNjIfARYUBiIvASY0JTQ2OwEyFhQGKwEiJiU0NjsBMhYUBisBIiYBJjQ/ATYyFhQPAQYiASY0PwE2MhYUDwEGIgIAUmwCAmxSUmwCAmxSbZADA5BtbZADA5BtDhISHBISDg4SEhwSEv7RChoJLgwJIw4tCQIoChoKLQkTGgkuCf1nEg5ADhISDkAOEgMAEg5ADhISDkAOEv2DCQktChoTCS4JGgIVCQkuCRoTCS0KGsACbFJSbAICbFJSbEIDkG1tkAMDkG1tkAK9Eg5ADhISDkAOEv0AEg5ADhISDkAOEgJ9CQktDiMJDC4JGv3rCQkuCRoTCS0KGuwOEhIcEhIODhISHBIS/tEKGgkuCRMaCi0JAigKGgotCRMaCS4JAAUAAAAABAADQAATABQAIAAhAC0AABMmEjc2IBcWEgcjNiYnJiIHDgEXBzMhMhUxFCMhIjUxNAUzITIVMRQjISI1MTRTKFt2eAEYeHZbKEMpSGdo92lnSCmWIAPAICD8QCABACABwCAg/kAgAQCNAQlWVFRW/veNeuxOTExO7HpAICAgIIAgICAgAAAABwAAAAAEAANAAAsADAAYACYAMwA/AEsAADchMhYUBiMhIiY0NhczITIVMRQjISI1MTQnPgE3HgEXIy4BJw4BBwEyFh0BFAYiJj0BNDYFFhQPAQYuAT8BNjIFNjIfARYOAS8BJjQgA8AOEhIO/EAOEhLuIAHAICD+QCBgBMaWlsYEQAOjenqjAwEgDhISHBISAaUKCkQNIwoNRAoZ/NwKGQpEDQojDUQKwBIcEhIcEoAgICAgwJbGBATGlnqjAwOjegJAEg5gDhISDmAOEqkKGQpEDQojDUQKCgoKRA0jCg1EChkABQAAAAAEAAMAAAsAGQAmADIAPgAANyEyFhQGIyEiJjQ2Nz4BNx4BFyMuAScOAQcBMhYdARQGIiY9ATQ2BRYUDwEGLgE/ATYyBTYyHwEWDgEvASY0IAPADhISDvxADhISjxDDjIzDEEEOn3Fxnw4BHg4SEhwSEgGlCgpEDSMKDUQKGfzcChkKRA0KIw1ECoASHBISHBJgi7MDA7OLcI4CAo5wAiASDmAOEhIOYA4SqQoZCkQNCiMNRAoKCgpEDSMKDUQKGQAAAAAGAAD/wAPAA0QAFQAqADcARABRAF4AAAEvAS4BDgEPAg4BBx4BFyE+ATc2JhcOAQchIi4CNT4BNz4BNzYWFx4BATIWHQEUBiImPQE0NjMyFh0BFAYiJj0BNDYzMhYdARQGIiY9ATQ2MzIWHQEUBiImPQE0NgLjIw0YZ4BfEAopQVABAmNLAZBMagkFVpIDkWz+cDFXRCQBblgWfVZViiBcc/0iDhISHBISzg4SEhwSEs4OEhIcEhLODhISHBISAl0GIjtDCE8/KAcNX0JLYwICYExMc61tkAMkRFgwWoIRUmoGBVlPFIr+YhIOYA4SEg5gDhISDmAOEhIOYA4SEg5gDhISDmAOEhIOYA4SEg5gDhIAAAACAAD/vQPBA0QAKAA9AAAlFS4BJz4BNz4BNzYWFx4BBw4BBzU+ATcuAS8CLgEOAQ8CDgEHHgEXLgE/ATYyFg8BMx4BDwEOAS4BPwEBIGF9AgFuWBZ9VlWKIF9zAgR7YEZYAgFWRiMNGGeAXxAKKUFQAQFaxRISCIAKJBMJZYkSEgiABxkYBgZl4UAIhmFaghFSagYFWU8Uj2FgiA5BDWdHSGgPBiI7QwhPPygHDV9CR2FIAR8Q4BAgELABHxDgDAYNGQywAAAAAAcAAP/AA8ADRAAVACoALgAyADYAOgA+AAABLwEuAQ4BDwIOAQceARchPgE3NiYXDgEHISIuAjU+ATc+ATc2FhceAQEzFSM3MxUjBzMVIzczFSM3MxUjAuMjDRhngF8QCilBUAECY0sBkExqCQVWkgORbP5wMVdEJAFuWBZ9VlWKIFxz/WJAQMBAQGBAQMBAQGBAQAJdBiI7QwhPPygHDV9CS2MCAmBMTHOtbZADJERYMFqCEVJqBgVZTxSK/mJAQEAgQEBAoEAABQAA/8ADwANAAAAADAAQACIALAAAEzMxMhURFCMxIjURNAE3NScDEScVIzUFHgEXFQ4BBwURMxUlNz4BPQE0Ji8BgCAgICABwICAQMBAAmkmMAEBMCb9l0ABwGMNEBANYwNAIPzAICADQCD+nQzuDP71ARASGmA4BDYmkCY2BDgBINopCQESDZANEgEJAAAABwAA/8ADQANAAAsAFwAkACUAMQA5AEEAACU+ATcuAScOAQceARcuASc+ATceARcOAQMyFh0BFAYiJj0BNDYHOwEyFTEUKwEiNTE0EzUjFSM1IRUBFTM1MxUhNQIAbZADA5BtbZADA5BtiLUDA7WIiLUDA7WoDhISHBISEiCAICCAIKDAQAFA/wDAQP7AgAOQbW2QAwOQbW2QQwO1iIi1AwO1iIi1Ad0SDqAOEhIOoA4SoCAgICABAICAwMD+AICAwMAAAAwAAP/AA0ADQAALABcAHwAnADAAOQBCAEsAVABdAGYAbwAAJT4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BAzUjFSM1IRUBFTM1MxUhNRMiJjQ2MhYUBgMiJjQ2MhYUBicUBiImNDYyFgUUBiImNDYyFiUGLgE3NjIeARcGLgE3Nh4BFCcWDgEnJjQ+ATcWDgEnJj4BMgIAbZADA5BtbZADA5BtiLUDA7WIiLUDA7UowEABQP8AwED+wKAOEhIcEhIODhISHBISjhIcEhIcEgFAEhwSEhwS/uYOIwoNChkTAdkNJAkMChoT6wwJJA0JExrsDAkjDgkBExmAA5BtbZADA5BtbZBDA7WIiLUDA7WIiLUCPYCAwMD+AICAwMABgBIcEhIcEv7AEhwSEhwSwA4SEhwSEg4OEhIcEhJMDAkkDQkTGuwNCiMOCQETGSQOIwoNChkTAdkOIwkMChoTAAYAAP/AA4ADQAALABcAJAAlAC4APgAAIT4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BAzIWFQcUBiImJzc0NhMjHgEyNjQmIgYTFSM1IyImNDYzITIWFAYjAgCItQMDtYiItQMDtYij2QQE2aOj2QQE2aMOEgESGxIBARIOQAEkNiQkNiRfQGAOEhIOAQAOEhIOA7WIiLUDA7WIiLVDBNmjo9kEBNmjo9kCfBIO4A4SEg7gDhL/ABskJDYkJAGlgIASHBISHBIAAAAABwAA/8QDvgNFAAsAFwAeACUANgBDAE8AACU+ATcuAScOAQceARcuASc+ATceARcOASUXBwYiJjclBxcWMjYnATMyFhQGKwEiJj0BNDYyFhUlJj4CFwcmDgIXByE2LgIHFzYeAgcCAIi1AwO1iIi1AwO1iKPZBATZo6PZBATZ/oE4MAokEggB6DgwCiQSCP70oA4SEg7ADhISHBL+Wh8LU24xLxw7KwsNLgNDHwtSbzEvHDssCg1AA7WIiLUDA7WIiLVDBNmjo9kEBNmjo9lDIFMPHxBTIFMPHxABjBIcEhIO4A4SEg4IMW5TCx8vDQosOxwvMW5TCx8vDQosOxwAAAYAAP/AA8ADQAALABUAHgAqADIANgAAAS4BJw4BBxQWFz4BAQA1PgE3HgEXFCU+ATQmIgYUFhcuASc+ATceARcOAQUTITUhFSETKQEHIQMgA6N6eqMDj5GRj/7g/qAExpaWxgT+oBskJDYkJBs2SQEBSTY2SQEBSQEkZv7g/sD+4GYCb/3WTALCAeB6owMDo3pZ5YuL5f45AUDglsYEBMaW4MABJDYkJDYkQQFJNjZJAQFJNjZJwf8AQEABAMAAAAYAAP/AA2EDQAAAAAwAGAAiACMALwAAITMhMhUxFCMhIjUxNAEuAScOAQcUFhc+AQEANT4BNx4BFxQBMyEyFTEUIyEiNTE0AQAgAcAgIP5AIAIgA6N6eqMDj5GRj/7g/qAExpaWxgT+ACABACAg/wAgICAgIAHgeqMDA6N6WeWLi+X+OQFA4JbGBATGluABACAgICAAAAAABQAA/8ADYQNAAAAADAAYACIAPgAAITMhMhUxFCMhIjUxNAEuAScOAQcUFhc+AQEANT4BNx4BFxQBMzIWFAYrARUUBiImPQEjIiY0NjsBNTQ2MhYVAQAgAcAgIP5AIAIgA6N6eqMDj5GRj/7g/qAExpaWxgT+wGAOEhIOYBIcEmAOEhIOYBIcEiAgICAB4HqjAwOjelnli4vl/jkBQOCWxgQExpbgAQASHBJgDhISDmASHBJgDhISDgAAAAAGAAD/wANhA0AAAAAMABgAIgArADcAACEzITIVMRQjISI1MTQBLgEnDgEHFBYXPgEBADU+ATceARcUJT4BNCYiBhQWFy4BJz4BNx4BFw4BAQAgAcAgIP5AIAIgA6N6eqMDj5GRj/7g/qAExpaWxgT+oCk2NlI2NilEWgICWkREWgICWiAgICAB4HqjAwOjelnli4vl/jkBQOCWxgQExpbggAE2UjY2UjZBAlpERFoCAlpERFoAAAAABAAA/8ADYQNAAAsAFQAeACoAAAEuAScOAQcUFhc+AQEANT4BNx4BFxQlPgE0JiIGFBYXLgEnPgE3HgEXDgEDIAOjenqjA4+RkY/+4P6gBMaWlsYE/qApNjZSNjYpRFoCAlpERFoCAloB4HqjAwOjelnli4vl/jkBQOCWxgQExpbggAE2UjY2UjZBAlpERFoCAlpERFoAAAAEAAD/wAOAA0AACwAXACQAPgAAAT4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BJzIWFREUBiImNRE0NgcVDgEHHgEXPgE3LgEnNR4BFw4BBy4BJz4BAgBSbAICbFJSbAICbFJtkAMDkG1tkAMDkG0OEhIcEhJyV2gBA7OKirMDAWhXcowCBNmjo9kEAowBgAJsUlJsAgJsUlJsQgOQbW2QAwOQbW2QPRIO/wAOEhIOAQAOEolBDzEWHz8CAj8fFjEPQRFRNURaAgJaRDVRAAADAAD/wAPAA0AACwAXACMAACE+ATcuAScOAQceARcuASc+ATceARcOARMOAQcGJjc+ATc2FgIAo9kEBNmjo9kEBNmjvv0FBf2+vv0FBf0YSqeqCAwDSqarCAwE2aOj2QQE2aOj2UQF/b6+/QUF/b6+/QKAq6ZKAwwIqqZLAwwAAAUAAAAAA8ADQAAPAB8AOwA/AE8AABMOAQcRHgEXIT4BNxEuASclIR4BFxEOAQchLgEnET4BATMyFhQGKwEVFAYiJj0BIyImNDY7ATU0NjIWFQMVITUlITIWHQEUBiMhIiY9ATQ2wBskAQEkGwKAGyQBASQb/YACgDZJAQFJNv2ANkkBAUkBlmAOEhIOYBIcEmAOEhIOYBIcEsABQP6gAYAOEhIO/oAOEhICgAEkG/5AGyQBASQbAcAbJAFAAUk2/kA2SQEBSTYBwDZJ/sESHBJgDhISDmASHBJgDhISDgEgQEBAEg6ADhISDoAOEgAAAAkAAP/AA6EDQAAIABcAHQAmACwANQA5AEUAUQAAAREeARc+ATcRJSEyFhURDgEHLgEnETQ2BTMGBwYHNyMRMjc2NzQmBSMWFxYXJzMRIicmJyY2ATMVIwchMhYUBiMhIiY0NjchMhYUBiMhIiY0NgFAAmxSUmwC/mABwA4SA5BtbZADEgHvXQkiFhx/v19BOgUT/XNeCiEXHH+/YEA6BQETAW1AQOACAA4SEg7+AA4SEo4BAA4SEg7/AA4SEgMA/wBSbAICbFIBAEASDv7gbZADA5BtASAOEsByIRYM9f7AQDqlDRRAciEWDPX+wEA6pQ0U/oDAgBIcEhIcEoASHBISHBIABAAA/8ADqANAADMAPABGAFAAACE1LgEnIyImLwEmPgI7ATU0NjMhMhYdATMyHgIPAQ4BKwEOAQcVMzIWFAYjISImNDYzAREhER4BFz4BNzMyNj8BNiYrAQU1IyIGHwEeATMB4E90FSEgMgotBgcWIBJZEg4BwA4SWRIgFgcGLgkyICEVdE+ADhISDv7ADhISDgFg/oACbFJSbEIZChEDLgIIBln+AFkGCAIuAxEKwgtmTSUfmRIjHhBgDhISDmAQHiMSmR4mTWYLwhIcEhIcEgHAAUD+wFJsAgJsUgwLmQYKwMAKBpkLDAAAAAAGAAD/wANAA0AACwAXAB4AIwAoADQAACE+ATcuAScOAQceARcuASc+ATceARcOAQMjFTYzMhc3FRYXNyEjFzY3AyEyFgcDJiIHAyY2AgBtkAMDkG1tkAMDkG2ItQMDtYiItQMDtUiAICAdI0AlKSf+i3UnKSWbAjYOEwI6q6qrOgITA5BtbZADA5BtbZBDA7WIiLUDA7WIiLUDPcgICMjcDRX+/hUNARwWD/6FYGABew8WAAAHAAD/wANAA0AACwAXACIAKQAuADMAPwAAIT4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BAzMRMxUjNTM1IzUTIxU2MzIXNxUWFzchIxc2NwMhMhYHAyYiBwMmNgIAbZADA5BtbZADA5BtiLUDA7WIiLUDA7WoQEDAQECggCAgHSNAJSkn/ot1JyklmwI2DhMCOquqqzoCEwOQbW2QAwOQbW2QQwO1iIi1AwO1iIi1Ad3/AEBAwEABYMgICMjcDRX+/hUNARwWD/6FYGABew8WAAAAAwAA/8ADwANAAAsAFwAeAAAhPgE3LgEnDgEHHgEXLgEnPgE3HgEXDgEDAgcGJjc2AgCj2QQE2aOj2QQE2aO+/QUF/b6+/QUF/R47QDh6KEAE2aOj2QQE2aOj2UQF/b6+/QUF/b6+/QLQ/vpuTkZYbgAAAAACAAD/wAMAA0AAQABgAAAlMz4BNzUjIiY0NjsBNSMiJjQ2OwE1IyImNDY7ATUuASchDgEHFTMyFhQGKwEVMzIWFAYrARUzMhYUBisBFR4BHwEVMzIWFAYjISImNDY7ATUjLgEnET4BNyEeARcRDgEHAeCgGyQBYA4SEg5gYA4SEg5gYA4SEg5gASQb/wAbJAFgDhISDmBgDhISDmBgDhISDmABJBugwA4SEg7+QA4SEg7AYDZJAQFJNgEANkkBAUk2wAEkGyASHBJgEhwSYBIcEiAbJAEBJBsgEhwSYBIcEmASHBIgGyQBQIASHBISHBKAAUk2AcA2SQEBSTb+QDZJAQAAAAQAAP+/A8EDQQALABcAJwA3AAA3JhA3NiAXFhAHBiAnFiA3NhAnJiAHBhABFhcGFhceATcWFwYmJy4BATYWFx4BByYnNiYnLgEHJsODg4oBZoqDg4r+ml13ATJ3cHB3/s53cAFxIx4rFj5AqE4HB1/HTEkg/qhewElHIykiICgZPD2jTQZDigFmioODiv6aioOwcHB3ATJ3cHB3/s4COAcHTqhAPhYrHiMtIElMx/7UKSNHScBeBgZNoz08GSghAAUAAP/AA8ADQAAFABEAFwAjAFkAACUBBh4CNz4DNwEOAwclNi4CBwEmEjc2JBcWAgcGBAE3NjIWFA8BFxYOAS8BBxcWDgEvAQcXFg4BLwEHBi4BPwEnJj4BHwE3JyY+AR8BNycmNDYyFwGi/vYMFUV1kD9yX0UV/sFAc19FFQK9DBVEdEj+OFYwlZ8BaF5WMpWf/poBZhcKGRMJFi0NCiMNLi0tDQkkDS0tLQ0KIw0tFw0kCQ0WLQ0KIw0uLS0NCSQNLS0tCRMZChkBCkd2RBUeFUVfcj8BPxVGXnE+ckd1RBUN/TBdAWWflTRWXv6an5UyAkgWCRMZChctDSMKDS0tLQ0kCQ0tLS4NIwoNLRYNCSQNFy0NIwoNLS0tDSQJDS0tLgoZEwkADAAA/8ADwANAAAsAFwAeACUAKwAxADcAPgBFAEsAUQBXAAAFLgEnPgE3HgEXDgEnPgE3LgEnDgEHHgEDNjcWFwcmJQYHJzY3FgU3FjcXBicmJzcWFwUGByc2NwE2NxcGByYlBgcmJzcWJTYXByYHJxcGByc2BQcmJzcWAgC+/QUF/b6+/QUF/b6j2QQE2aOj2QQE2aIYFxooIS8CbSIyISobF/6iCyMjCy5tLCcgHSEBIicsCyEd/hciMiEpGxgCeRkYGykhMv6rLi4LIyNKCyEdICcBWSAeIQwsQAX9vr79BQX9vr79OwTZo6PZBATZo6PZAnAYFi4jOSc6Nyo4JTEVzj8EBD8GEw0WOBELHBYNPwsR/lw3KjglLxQWFxQwJTgqfwYGPwQEMj8LETgWFjgRCz8NAAAABwAA/78DwQNBAAcAEAAdACYALgA7AEcAACU+ATcuAQcWBy4BJw4BFz4BByY2NyYnDgEnHgMBFjY3LgEnDgE3Fhc2JicOASUWBgcWFz4BFy4DEwYgJyYQNzYgFxYQAwszOwY4fztYERE/LUsfMjBc1S0wVRcZSM5mCDhddf7tVbc/PIdJGyBnjXYaByFGfgENHgQjJB9Ck0UIOF110Yr+moqDg4oBZoqDbDF+RiIHG3W6SYg8QLdVBCAjZs9HGhdVMCxBdl04AZUxH0ouPhEpW7smVzt+OAY7QESTQx8jIwQfQnVdOP1Ng4OKAWaKg4OK/poAAAIAAP/aA8ADMAAYADsAACUXFjYvATc2Ji8CJiIPAg4BHwEHFBY3FwYuAj8BJy4BPgE/Aj4BMhYfAh4CBg8BFxYOAi8BAgDkBAYBK7gDAgT/cgIIAnL/BAIDuCwGBB4TJyEPAyagDwkNHhTeYwkiKCIJY94UHwwJD6AmAw8hJxPGlHgBBAT+tAMHASXnBATnJQEHA7T+BAQBOAoDGCUU3ZwOJycZAyDJExQUE8kgAxknJw6c3RQlGAMJaQAAAwAA/8ADwANAABcAJwA3AAAlDgEHIS4BJxE+ATcVDgEHER4BFyE+ATcBDgEHER4BFyE+ATcRLgEnJSEeARcRDgEHIS4BJxE+AQMAAUk2/kA2SQEBSTYbJAEBJBsBwBskAf7AGyQBASQbAcAbJAEBJBv+QAHANkkBAUk2/kA2SQEBSUA2SQEBSTYBwDZJAUABJBv+QBskAQEkGwLAASQb/kAbJAEBJBsBwBskAUABSTb+QDZJAQFJNgHANkkAAAAABAAA/+ADoAMgAA4AHgAuAD0AABMzHgEUBisBFRQGIiY1ERMxIxE0NjIWHQEzMhYUBgcBMTMRFAYiJj0BIyImNDY3EyMuATQ2OwE1NDYyFhURoMAOEhIOwBIcEkBAEhwSwA4SEg4CAEASHBLADhISDsDADhISDsASHBIDIAESGxLADhISDgEA/MABAA4SEg7AEhsSAQNA/wAOEhIOwBIbEgH8wAESGxLADhISDv8AAAADAAD/wAOzA0AAGQAaACYAAAEVDgEXHgEXPgE3NiYnNR4BBw4BBy4BJyY2JTMxMhURFCMxIjURNAFgbmMbH7p9fbofG2Nui4gbId+YmOAgG4gBCyAgICAC4EY72Hl5kwICk3l52DtGPf+VlbcDA7eUlv+dIP7AICABQCAABgAA/8ADwANAAAsAFwAkADEAPgBLAAAhPgE3LgEnDgEHHgEXLgEnPgE3HgEXDgEDMhYdARQGIiY9ATQ2EzIWHQEUBiImPQE0NiU0NjsBMhYUBisBIiYlNDY7ATIWFAYrASImAgCj2QQE2aOj2QQE2aO+/QUF/b6+/QUF/b4OEhIcEhIODhISHBIS/m4SDsAOEhIOwA4SAkASDsAOEhIOwA4SBNmjo9kEBNmjo9lEBf2+vv0FBf2+vv0DWxIOwA4SEg7ADhL9wBIOwA4SEg7ADhKgDhISHBISDg4SEhwSEgACAAD/wAPAA0AAEAAhAAAlITIWFAYjISImNRE0NjIWFQURFAYiJjURISImNDYzITIWAQACoA4SEg79QA4SEhwSAkASHBL9YA4SEg4CwA4SgBIcEhIOAsAOEhIOgP1ADhISDgKgEhwSEgAAAAAFAAD/wAPAA0AACwAXAC0APABFAAAhPgE3LgEnDgEHHgEXLgEnPgE3HgEXDgEBPgE3HgEXFAYiJjUuAScOAQcUBiImBR4BDgEuAT4BPwE+ARYHAxY+AS4BDgEWAgCj2QQE2aOj2QQE2aO+/QUF/b6+/QUF/f4CA7WIiLUDEhwSA5BtbZADEhwSAXocDyFARCQLMyQ9BiMZBoENFwgLGhcICwTZo6PZBATZo6PZRAX9vr79BQX9vr79AbuItQMDtYgOEhIObZADA5BtDhISZhZDPxoXOUctArwRCBsS/toECxoXCAsaFwAABQAA/8ADwANAAAsAFwAkACUAMQAAIT4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BAzIWFREUBiImNRE0NgMzITIVMRQjISI1MTQCAKPZBATZo6PZBATZo779BQX9vr79BQX93g4SEhwSEhIgAQAgIP8AIATZo6PZBATZo6PZRAX9vr79BQX9vr79ArsSDv8ADhISDgEADhL/ACAgICAAAwAA/8ADwANAAAsAFwAoAAAhPgE3LgEnDgEHHgEXLgEnPgE3HgEXDgETNjIWFAcBBiIvASY0NjIfAQIAo9kEBNmjo9kEBNmjvv0FBf2+vv0FBf0rChoTCf7gChoKoAkTGgqJBNmjo9kEBNmjo9lEBf2+vv0FBf2+vv0CUgkTGgr+4AkJoAoaEwmKAAADAAD/wAPAA0AACwAXACMAAAEhMhYUBiMhIiY0NhM+ATcuAScOAQceARcuASc+ATceARcOAQFgAUAOEhIO/sAOEhKuo9kEBNmjo9kEBNmjvv0FBf2+vv0FBf0BoBIcEhIcEv5gBNmjo9kEBNmjo9lEBf2+vv0FBf2+vv0ABAAA/8ADwANAAAsAFwAjAC8AAAEhMhYUBiMhIiY0NhcRNDYyFhURFAYiJhc+ATcuAScOAQceARcuASc+ATceARcOAQFgAUAOEhIO/sAOEhKOEhwSEhwSIKPZBATZo6PZBATZo779BQX9vr79BQX9AaASHBISHBLAAUAOEhIO/sAOEhLSBNmjo9kEBNmjo9lEBf2+vv0FBf2+vv0ACAAA/8ADwANAAAsAFwAjAC8ANAA5AD4AQwAAIT4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BJz4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BEzcXByYfAQcnNg8BJzcWLwE3FwYCAKPZBATZo6PZBATZo779BQX9vr79BQX9vlJsAgJsUlJsAgJsUm2QAwOQbW2QAwOQAqEtoBMToC2hG/mhLaATE6AtoRsE2aOj2QQE2aOj2UQF/b6+/QUF/b6+/fsCbFJSbAICbFJSbEIDkG1tkAMDkG1tkAGaoC2hG/mhLaATE6AtoRv5oS2gEwAAAAAGAAD/wAPAA0AACAARABoAGwAnAC0AAAEeARcVIzU+AQMhES4BJw4BBwEeARcRIRE+AQEzITIVMRQjISI1MTQFMw4BIiYCABskAYABJOUCAAOQbW2QAwEAiLUD/YADtf7IIANAICD8wCABgIABJDYkA0ABJBtAQBsk/UEBQG2QAwOQbQFAA7WI/oABgIi1/YMgICAggBskJAAAAAAEAAD/wAPAA0AAEAAtADMAPwAAPwEhESYnNx4BFREzMhYUBiMhIyImNDY7ARE+ATc1PgEyFhcVHgEXBy4BDgEHERczDgEiJiUGIi4BNwE2Mh4BB/FAAc8BGy4WGGAOEhIO/Pc3DhISDmACjHIBJDYkATJXIy42mJdYAcCAASQ2JP7WChkTAQkCwAoZEwEJQEABQEA2LyVTLf7AEhwSEhwSAUB1qxoGGyQkGwYLMSUuPCQ6gFH+6qobJCRACRMZCgLFCRMaCgAAAAMAAP/AA0ADQAANABsARQAAAQ4BBxEeARc+ATcRLgEnHgEXEQ4BBy4BJxE+ARM1LgEnNTQ2MhYdAR4BFzM+ATc1NDYyFh0BDgEHFTMyFhQGKwEiJjQ2MwIANkkBAUk2NkkBAUk2UmwCAmxSUmwCAmwyeqMDEhwSAn9fQF9/AhIcEgOjekAOEhIOwA4SEg4DAAFJNv8ANkkBAUk2AQA2SUECbFL/AFJsAgJsUgEAUmz8wkADo3ogDhISDiBffwICf18gDhISDiB6owNAEhwSEhwSAAAABQAA/8ADYANAABYAJABHAFUAYQAAAQcuATURPgE3HgEXFQc1LgEnDgEHERYXFj4CPQE3FRQOASInBzcWOwE+ATc1NDYyFh0BDgEHFTMyFhQGKwEiJjQ2OwE1IiYnLgE9ATQ2MhYdARQWFwcGIi4BNwE2Mh4BBwGcLRcYAmxSUmwCQAFJNjZJAQFPHj81HkAzWmUuZS43QEBffwISHBIDo3pADhISDsAOEhIOQC5UUyUmEhwSHhqhChkTAQkCwAoZEwEJATAuG0AjAQBSbAICbFIsQGw2SQEBSTb/AC5JDAckOCA5QHk0WDQZZS4iAn9fIA4SEg4geqMDQBIcEhIcEkAbQyljNiAOEhIOICtLHqcJExkKAsUJExoKAAACAAD/3QOoAygAAwAWAAATBRsBAS4CNjcBNh4CBwEOAS4BJwP6AT8o7P0sCw8DCwoDCgkSDgQE/soEExYPATEB3yv+ygJP/uMBDxcSBAE3BAQOEgn8+AoLAw8LAYAAAAAHAAAAAAPAAuAADwAfACgAKQA1ADYAQgAAEyIGFREUFjMhMjY1ETQmIyUhHgEXEQ4BByEuAScRPgEFHgEUBiImNDYFMyEyFTEUIyEiNTE0FTMhMhUxFCMhIjUxNKAOEhIOAsAOEhIO/UACwCk2AQE2Kf1AKTYBATYCSRskJDYkJP5bIAEAICD/ACAgAQAgIP8AIAKgEg7+AA4SEg4CAA4SQAE2Kf4AKTYBATYpAgApNp8BJDYkJDYkfyAgICCAICAgIAAABAAAAAADwALgAAkAGQAhACkAABMRHgEXIT4BNxElIR4BFxEOAQchLgEnET4BBQMOASImJwMzFx4BMjY/AYABJBsCgBskAf0AAwAbJAEBSTb9gDZJAQEkAyP3HEtUSxz3VdMSMjgyEtMCoP4AGyQBASQbAgBAASQb/gA2SQEBSTYCABskP/7lHyIiHwEb8RUWFhXxAAYAAP/dA6ADAAANAB4AHwArACwAOAAAPwEhPgE3ES4BJyEOAQcTBwYmJxE+ATchHgEXEQ4BBwEzITIVMRQjISI1MTQ1MyEyFTEUIyEiNTE0oHICDhskAQEkG/3AGyQBiJQQIwEBSTYCQDZJAQFJNv4gIAFAICD+wCAgAUAgIP7AIEVbASQbAaAbJAEBJBv94HYMERQCfTZJAQFJNv5gNkkBASAgICAgwCAgICAAAAAABQAA/90DoAMAAA0AHgAnADAAOQAAJSE+ATcRLgEnIQ4BBxE3BwYmJxE+ATchHgEXEQ4BBwEiJjQ2MhYUBjMiJjQ2MhYUBiEiJjQ2MhYUBgESAg4bJAEBJBv9wBskAYiUECMBAUk2AkA2SQEBSTb+4BYdHSwdHaoWHR0sHR3+ahYdHSwdHaABJBsBoBskAQEkG/3FG3YMERQCfTZJAQFJNv5gNkkBAS0dLB0dLB0dLB0dLB0dLB0dLB0AAAAFAAD/0APAAyAAEQAkADAAPABIAAA/ARcWMz4BNy4BJw4BBxQWHwEHBiY/AS4BNT4BNx4BFw4BByInEyIuATQ+ATMyFhQGMyIuATQ+ATMyFhQGISIuATQ+ATMyFhQGr4cYUmCj2QQE2aOj2QQkIxZcExsHOigsBPjExPgEBPjEbWLPDhcODhcOFh0dqg4XDg4XDhYdHf5qDhcODhcOFh0dKC0LKgXLkJDLBQXLkDRmLR3GBh0TkjV5QKX1Bgb1paX1BjABPQ0ZGhkNHSwdDRkaGQ0dLB0NGRoZDR0sHQAAAAIAAP/dA6ADAAANAB4AACUhPgE3ES4BJyEOAQcRNwcGJicRPgE3IR4BFxEOAQcBEgIOGyQBASQb/cAbJAGIlBAjAQFJNgJANkkBAUk2oAEkGwGgGyQBASQb/cUbdgwRFAJ9NkkBAUk2/mA2SQEAAAAGAAD/0APAAyAAEQAkACUAMQAyAD4AAD8BFxYzPgE3LgEnDgEHFBYfAQcGJj8BLgE1PgE3HgEXDgEHIicTMyEyFTEUIyEiNTE0NzMhMhUxFCMhIjUxNK+HGFJgo9kEBNmjo9kEJCMWXBMbBzooLAT4xMT4BAT4xG1iDyABQCAg/sAgICABACAg/wAgKC0LKgXLkJDLBQXLkDRmLR3GBh0TkjV5QKX1Bgb1paX1BjABMCAgICDAICAgIAAAAAIAAP/QA8ADIAARACQAAD8BFxYzPgE3LgEnDgEHFBYfAQcGJj8BLgE1PgE3HgEXDgEHJievghdSZqvSAwPRrKzRAyQhFloTGwc4KCoC7dHR7QIC7tB4XCgsDCgEyJSVxwQEx5U4aCwdwQYdE401fEKl9QYG9aWl9QYBLgAKAAD/4AOgAyAADwAfACgANAA1AEEASgBWAFcAYwAAEw4BBxEeARchPgE3ES4BJyUhHgEXEQ4BByEuAScRPgETPgE0JiIGFBYXLgEnPgE3HgEXDgE3MyEyFTEUIyEiNTE0Ez4BNCYiBhQWFy4BJz4BNx4BFw4BJTMhMhUxFCMhIjUxNOAbJAEBJBsCQBskAQEkG/3AAkA2SQEBSTb9wDZJAQFJ1hskJDYkJBs2SQEBSTY2SQEBSQogAQAgIP8AIMAbJCQ2JCQbNkkBAUk2NkkBAUn+SiABACAg/wAgAuABJBv9wBskAQEkGwJAGyQBQAFJNv3ANkkBAUk2AkA2Sf7BASQ2JCQ2JEEBSTY2SQEBSTY2SZ8gICAg/mABJDYkJDYkQQFJNjZJAQFJNjZJnyAgICAAAAQAAAAAA/4CyAANABsAKAA0AAABDgEHHgEXIT4BNy4BJyUhHgEXDgEHIS4BJz4BEzI+ATQuASMOAQceARcuASc+ATceARcOAQFKbJADA5BsAWxskAMDkGz+lAFsi7kEBLmL/pSLuQQEuYseMR4eMR4uPgEBPi5NZwICZ01NZwICZwJ/A5BsbJADA5BsbJADSQS5i4u5BAS5i4u5/k8dMzozHQE+Li4+SgJnTU1nAgJnTU1nAAQAAAAAA/4CyAANABsAKAA0AAABDgEHHgEXIT4BNy4BJyUhHgEXDgEHIS4BJz4BATI+ATQuASMOAQceARcuASc+ATceARcOAQFKbJADA5BsAWxskAMDkGz+lAFsi7kEBLmL/pSLuQQEuQH3HjIdHTIeLj4BAT4uTWcCAmdNTWcCAmcCfwOQbGyQAwOQbGyQA0kEuYuLuQQEuYuLuf5PHTM6Mx0BPi4uPkoCZ01NZwICZ01NZwAAAAACAAAAAAPAAwAAIQBDAAABFSMOAQcVHgEXIT4BNzU0Jic1HgEXFQ4BByEuASc1PgE3AzUzPgE3NS4BJyEOAQcVFBYXFS4BJzU+ATchHgEXFQ4BBwKAwDZJAQFJNgFANkkBIh45RgECbFL+wFJsAgJsUkDANkkBAUk2/sA2SQEiHjpFAQJsUgFAUmwCAmxSAgBAAUk2gDZJAQFJNoAjOhJGFWBAgFJsAgJsUoBSbAL/AEABSTaANkkBAUk2gCM6EkYVYj6AUmwCAmxSgFJsAgAAAwAAAAADfwL/ABEAIwAnAAABJzc+AScmBg8BJzc+ARcWBg8CDgEnJjY/ARcHDgEXFjY/ARMXAScCzC5bOA0uMow7Wy1aT8BFQQ1LtVpPwEVBDUtaLls4DS4yjDtbLS3+8S0BDy1bO4wyLg04Wy5aSw1BRcBPtVpLDUFFwE9aLVs7jDIuDThbATwt/vEtAAAADgAA/8ADwANAAA8AHwAoADEAOgBDAEwAVQBeAGcAcAB5AIIAiwAAAQ4BBxEeARchPgE3ES4BJyUhHgEXEQ4BByEuAScRPgE3MhYdASM1NDYzMhYdASM1NDYhMhYdASM1NDYTIiY9ATMVFAYzIiY9ATMVFAYhIiY9ATMVFAYBNDY7ARUjIiY1NDY7ARUjIiYRNDY7ARUjIiYlFAYrATUzMhY1FAYrATUzMhYRFAYrATUzMhYBQBskAQEkGwGAGyQBASQb/oABgDZJAQFJNv6ANkkBAUn2DhJAEq4OEkAS/s4OEkASrg4SQBKSDhJAEv6yDhJAEv7SEg6AgA4SEg6AgA4SEg6AgA4SA4ASDoCADhISDoCADhISDoCADhICgAEkG/6AGyQBASQbAYAbJAFAAUk2/oA2SQEBSTYBgDZJgRIOgIAOEhIOgIAOEhIOgIAOEvyAEg6AgA4SEg6AgA4SEg6AgA4SAcAOEkASrg4SQBL+zg4SQBKuDhJAEpIOEkAS/rIOEkASAAACAAD/wAPAA0MAGwA+AAABDgEHEScuAQcOAR8BHgEzIRE0Ji8BLgE9AS4BAxcRND4BMh4BHQEUFh8BHgEXEQ4BByEiJi8BLgE+ATc2FhcCABwkAa0ZPRsOBgu1CRsPAgAZFc4fJQEktBghPUU9IQwLzikxAQEkG/4AHzUStQ0LCBgTLGUpAwABJBv9+4oUAhIMJA/wDQ0BQRUiBj4KMSGoGyT+VBMBgCM8JCQ8I6gLEQM+DUIr/r8bJAEbGPESKy0lDB0FIAAAAAYAAP/AA0ADQAALABcAGAAkACUAMQAAAT4BNy4BJw4BBx4BFy4BJz4BNx4BFw4BJzMxMhURFCMxIjURNAczITIVMRQjISI1MTQCAG2QAwOQbW2QAwOQbYi1AwO1iIi1AwO1qCAgICCgIAFAICD+wCABAAOQbW2QAwOQbW2QQwO1iIi1AwO1iIi1PSD/ACAgAQAgoCAgICAABwAA//YDigMKAAwAGAAZACUAJgAyADYAACU+ATcuAScOAQceAR8BLgEnPgE3HgEXDgETOwEyFTEUKwEiNTE0OwExMh0BFCMxIj0BNAMnARcBkF9/AwN/X2B/AgJ/XwF4nwMDn3d4nwMDn2oc4Rwc4RzhHBwcHPUoASUoLwJ/YF9/AwN/X2B/AjkDn3d4nwMDn3d4nwMRHBwcHBzhHBzhHP6rKAElKAAACAAA/8ADwQNAAAMAEQAVACMAKAA6AD8AUQAAASM1MxEVFAYrASImPQEzFTM1JzUzFRMjNSMVIzU0NjsBMhYVBQcXITUlITIWHQEUBiMhIi8BJjQ/ATYBByE1ITchIgYdARQWMyEyPwE2NC8BJgKAQEASDsAOEkCAwEDAQIBAEg7ADhL+XUdHAiP9zgJSDhISDv2uDgpjCAhjCgK1R/3dAiMO/a8OEhIOAlEPCWQICGQJASDA/qCgDhISDqCAgKDAwAFggICgDhISDqBQUKBAEg7gDhILcAkYCXAL/hBQoEASDuAOEgtwCRgJcAsAAAAABgAA/8ADwANAAAwAGQAmADMATABYAAAlJw4BIiYnBx4BMzI2Nz4BNTQmJwceARQGBxMuASMiBgcXPgEyFhclDgEVFBYXNy4BNDY3ATY3PgE1NCYnLgEjIgYHDgEVFBYXHgEyNgMuASc+ATceARcOAQL4WyJQVlAiWzR/RUd+YCwvMCtbGhwcGi40f0VHfjNbIlBYTyH+PiwvMCtbGxscGgFGDAsVGCMhGkAiK0wcFRgjIRk/SD9jvv0FBf2+vv0FBf1bWxsbGxtbLC8wWDR/RUd+M1shT1pPIQHCLC8wK1sbGxwaLjR/RUd+M1siUFhPIf7QCwwZPyQrTBwWFyMhGT8kK0wcFRgY/ugF/b6+/QUF/b6+/QAAAAMAAAAAA8ADQAAbACcAMwAAARUhDgEHER4BFyE+ATcRMxEOAQchLgEnET4BNwE+ATcuAScOAQceARcuASc+ATceARcOAQIA/wAbJAEBJBsCABskAUABSTb+ADZJAQFJNgIANkkBAUk2NkkBAUk2UmwCAmxSUmwCAmwDAEABJBv+ABskAQEkGwEA/wA2SQEBSTYCADZJAf8AAUk2NkkBAUk2NklBAmxSUmwCAmxSUmwABAAA//8DuQMvAB0AIAAlAC8AAAEVITIWBwMOAQchLgEnAyY2MyERPgEfATcVFxYGDwE3JxEhFyE3BRceARchPgE/AQIAAZYPEwRME2RC/qJCZBNMBBMPAVYBHhAOA+gQARHmkZH+lRICshL9Th0MQywBXixDDB0B/T0aD/70P0sBAUs/AQwPGgFKEhIIBwEDfgonCCNCT/6sQECAYyoyAQEyKmMAAAAABgAAAAADvQLAACQAMAA3ADsARABNAAA3IyImNRE0NjMhMhYdATMyFhcTFgYrARYOASIuATcjFg4BIi4BNz4BMhYXMzY3ESERITMnIxUeATcnIxUDPgE0JiIGFBYFPgE0JiIGFBaBIQ4SEg4CQA4SpQwRAjYCEw5cBCNHUkcjBIIEI0dSRyMbFT5KPhWwGy3+AAKoTROiIDZCD4kQIi0tRC0t/oIiLS1ELS2gEg4B4A4SEg5gDwz+oA8WKkktLUkqKkktLUlqHiIiHicRAWj+YIBBBCClYGD+oAEtRC0tRC0BAS1ELS1ELQAAAAAJAAAAAAPAAwAACwAXABgAJAAwADwATQBdAGEAACU+ATcuAScOAQceARcuASc+ATceARcOASczITIVMRQjISI1MTQFPgE3LgEnDgEHHgEXLgEnPgE3HgEXDgEBIiY0NjsBMhYXExYOASYnAwUiJjQ2OwEyFh8BFgYmLwEXJwEXAQA2SQEBSTY2SQEBSTZSbAICbFJSbAICbFIgAUAgIP7AIAIANkkBAUk2NkkBAUk2UmwCAmxSUmwCAmz+jg4SEg6gCxEDYAMOGRYEWv35DhISDoALEANABhglBTmsKgFAKkABSTY2SQEBSTY2SUECbFJSbAICbFJSbN4gICAgoAFJNjZJAQFJNjZJQQJsUlJsAgJsUlJsAr4SHBINC/6ADRYGDA0BaMASHBIMCsASHAgSqtgwASAwAAAEAAD/wANgA1sABwAZACIALgAAExEhEScmIgc3BRYVERQGIyEiJjURNDclNjIDPgE0JiIGFBYXLgEnPgE3HgEXDgHgAkD3EywTegEDDBIO/YAOEgwBAyVYLBskJDYkJBs2SQEBSTY2SQEBSQJC/b4CQsoPDzLUCg/9jw4SEg4CcQ8K1B3+ZQEkNiQkNiRBAUk2NkkBAUk2NkkAAAAFAAD/wANgA1sABwALAB0AJgAyAAA3IREnJiIPAREVITUDBRYVERQGIyEiJjURNDclNjIDPgE0JiIGFBYXLgEnPgE3HgEXDgHgAkD3EywT9wJAzwEDDBIO/YAOEgwBAyVYLBskJDYkJBs2SQEBSTY2SQEBScABgsoPD8r+PoCAAr7UCg/9jw4SEg4CcQ8K1B3+ZQEkNiQkNiRBAUk2NkkBAUk2NkkAAAAEAAAAAAPAA0AAFQAZACkAMgAAASM1IREhFRQWMyEiJjURNDYzITIWFQURIRElITIWFREUBiMhIiY1ETQ2AS4BNDYyFhQGAoBA/kABgBIO/kAOEhIOAgAOEv4AAwD84ANADhISDvzADhISAm4bJCQ2JCQCYKD9QCAOEhIOAwAOEhIO4P4AAgBAEg79wA4SEg4CQA4S/oABJDYkJDYkAAAABAAA/+ADoAMgABcALwA7AEcAABMXBgceARc+ATcmJzceARUOAQcuASc0NjcXBgceARc+ATcmJzceARUOAQcuASc0NgUuASc+ATceARcOASc+ATcuAScOAQceAaIeHwEExZeXxQQBHx8fIgXsr6/sBSMfHh8BBMWXl8UEAR8fHyIF7K+v7AUjAX2v7AUF7K+v7AUF7K+XxQQExZeXxQQExQE7Ox4iQF4CAl5AIh47Gj4jY3sCAntjIz7aOx4iQF4CAl5AIh47Gj4jY3sCAntjIz6BAntjY3sCAntjY3s+Al5AQF4CAl5AQF4AAAAFAAAAAAPAAwAAIQAlAEkAVQBeAAABFSERIzUzMhYXFhceARURFAYHBgcOASMhIiYnJicuAT0BASERIRMRFAYHBgcOASMhIiYnJicuATURNDY3Njc+ATMhMhYXFhceAQEuASc+ATceARcOASc+ATQmIgYUFgEAAoCAlwoLBAgEAgICAgUHBAsK/VIKCwQIBAICAkD9gAKAQAICBQcECwr9UgoLBAgEAgICAgUHBAsKAq4KCwQHBQIC/oBEWgICWkREWgICWkQpNjZSNjYBAMABwEACAgUHBAsK/hIKCwQIBAICAgIFBwQLCtcBwP5AAdf+EgoLBAgEAgICAgUHBAsKAe4KCwQIBAICAgIFBwQL/l8CWkREWgICWkREWj4BNlI2NlI2AAAAAAUAAAAAA8AC4QAjAEcASwBPAFMAAAE0JicmJy4BIyEiBgcGBw4BFREUFhcWFx4BMyEyNjc2Nz4BNRMRFAYHBgcOASMhIiYnJicuATURNDY3Njc+ATMhMhYXFhceAQUhFSEVIRUhFyEVIQOABAYHDwkcH/3IHxwJDwcGBAQGBw8JHB8COB8cCQ8HBgRACQgRHw8qKv3IKioPHxEICQkIER8PKioCOCoqDiARCAn8gAOA/IADgPyAgAEA/wACPB8cCQ8HBgQEBgcPCRwf/ogfHAkPBwYEBAYHDwkcHwF4/ogqKg4gEQgJCQgRHw8qKgF4KioPHxEICQkIER8PKiZAQECAQAAABQAA/8ADwANAAAUAGQAdACMALwAAAQcRIREnJSEyHwEWFREUBiMhIiY1ETQ/ATYDIRUhJREzEScjJzMTERQGKwEiJjURAT29AwC9/mwBog8KzggSDvzADhIIzgrgA4D8gAGAgDIcMoBAEg7ADhIDANj92AIo2EAL7AkM/awOEhIOAlQMCewL/wBAOP7IATjIQP8A/qAOEhIOAWAACQAA/8ADwANAAAcADwAZABoAJgAvADsARABQAAAhESE1IREhESkBESERIRUhASERFAYjISImNQMzITIVMRQjISI1MTQhPgE0JiIGFBYXLgEnPgE3HgEXDgE3PgE0JiIGFBYXLgEnPgE3HgEXDgEB4P7gASD+4AFgASD+4AEg/uD+YAMAEg79QA4SQCADQCAg/MAgAWAbJCQ2JCQbNkkBAUk2NkkBAUmKGyQkNiQkGzZJAQFJNjZJAQFJAQBAAQD9wAJA/wBAAYD9YA4SEg4CoCAgICABJDYkJDYkQQFJNjZJAQFJNjZJPwEkNiQkNiRBAUk2NkkBAUk2NkkAAwAA/8ADgANAAAMAEwAlAAATESERJSEyFhURFAYjISImNRE0NgU1LgEnDgEHFSM1PgE3HgEXFcACgP1gAsAOEhIO/UAOEhIB7gFJNjZJAUACbFJSbAICQP3AAkBAEg79gA4SEg4CgA4SwMA2SQEBSTbAwFJsAgJsUsAAAAQAAP/AA4ADQAARACgALwAzAAABFRQGKwE1IRUjIiY9ASMRIRElPgE3HgEXMzIWFREUBiMhIiY1ETQ2OwEhLgEnDgEDIRUhAsASDiD/ACAOEoACgP4AAmxSUmwCoA4SEg79QA4SEg7gAQABSTY2ScECgP2AAkBgDhKAgBIOYP3AAkBAUmwCAmxSEg79gA4SEg4CgA4SNkkBAUn+CkAAAAAEAAD/4APDA0AACAARACkALQAABS4BNDYyFhQGBS4BNDYyFhQGASImNDY7ATIWHwEhMhYHAw4BIyEiJicDEyETIQGwFBsbKBsbASwUGxsoGxv9XA4SEg6gDBECIgJfDxMDYAIRDP5ADBECe7QBjFL91SABGygbGygbAQEbKBsbKBsDHxIcEg4MphgP/kALDg4MAmb9wAGAAAQAAP/gA7oDAAAXABsAJAAtAAATITIWBwMOASMhFSEyFhQGIyERIyImNDYXESETAS4BNDYyFhQGBS4BNDYyFhQGYAM3DxMDcAMRC/3ZAmAOEhIO/WBgDhISrgIOYP4CFBsbKBsbASwUGxsoGxsDABkP/kALDUASHBICQBIcEkD+gAGA/SABGygbGygbAQEbKBsbKBsAAAAABgAA/+ADwwNAAAgAEQApAC0AMAA2AAAFLgE0NjIWFAYFLgE0NjIWFAYBIiY0NjsBMhYfASEyFgcDDgEjISImJwMTIRMhJScHNzYyHwEhAbAUGxsoGxsBLBQbGygbG/1cDhISDqAMEQIiAl8PEwNgAhEM/kAMEQJ7tAGMUv3VAW9cXCsTPBOz/jggARsoGxsoGwEBGygbGygbAx8SHBIODKYYD/5ACw4ODAJm/cABgEBubpcWFtcAAAYAAAAAA8ADQAADABMAFwAbAB8AIwAAARUhNSUhMhYdARQGIyEiJj0BNDYFMxUjATMRIyczFSMHMxEjAQACgP1gAsAOEhIO/UAOEhIB7kBA/kBAQIBAQEBAQAFAgIBAEg7ADhISDsAOEkCAAoD+wMDAgP8AAAAAAAcAAP/wA8ADQAANABoAHgAiACYAKgAuAAABIxUzByMiJj0BNDYzIRczNTczMhYdARQGIyE3FTM1JxcBJxMzESMnMxUjBzMRIwG4uDhAGA4SEg4BGFB4SJgOEhIO/mj4gJ4u/g4uEEBAgEBAQEBAAUCAQBIOwA4SwHhIEg7ADhLAgIDQLv4OLgMi/sDAwID/AAAAAAACAAD/wAOAAzcABAAWAAATESERAQUBNjIXARYVERQGIyEiJjURNMACgP7A/owBYAkWCQFgDBIO/UAOEgHi/h4B4gEL4wElBwf+2woP/e8OEhIOAhEPAAAABwAA/8ADewNAAAAADAAQACAAIQAtADEAACEzITIVMRQjISI1MTQLASEDJSEyFhcTFgYjISImNxM+AQEzMTIdARQjMSI9ATQjMxEjAUAgAUAgIP7AIA1jAmBj/k0BzAwRA3EDEw/9UA8TA3EDEQFyICAgIKBAQCAgICADAP5AAcBADgv+AA8YGA8CAAsO/gAggCAggCD+gAAJAAAAAAPAA0AAAwATABcAGwAkAC0AMQA1ADkAABMRIRElITIWFREUBiMhIiY1ETQ2AyEVIQEzFSMTITUuAScOAQc3HgEXFSE1PgEnMxUjATMVIxUzFSPgAkD9oAKADhISDv2ADhIScgOA/IABAICAQAEAAUk2NkkBgFJsAv6AAmxugIABAICAgIADAP1AAsBAEg79AA4SEg4DAA4S/QBAAsBg/eBANkkBAUk2wAJsUoCAUmzCYAEgYGBgAAoAAAAAA8ADQAADABMAFwAbAB8AIwAnACsALwA/AAATESERJSEyFhURFAYjISImNRE0NhchFSEVIRUhFSEVISUzFSMVMxUjBSEVIQERMxEnITIWFREUBiMhIiY1ETQ2wAGA/mABwA4SEg7+QA4SEm4BAP8AAQD/AAEA/wABgICAgID9wAOA/IACQMDgAQAOEhIO/wAOEhIDAP1AAsBAEg79AA4SEg4DAA4SwECAQIBAwEBAQIBAAgD+QAHAQBIO/gAOEhIOAgAOEgAAAAQAAP/AA8ADQAAJABcAIgArAAABIQ4BBxEhETQ2Nx4BFw4BByMRIRE+ATcBFTM+ATcuAScOARcuATQ2MhYUBgJT/u1SbAIBgC2zX38CAn9foP4AA5BtAQCgQV0CAl1BQV2eGyQkNiQkAwACbFL9wAIgRHRoA6N6eqMD/sACgG2QA/7g4AJ9YWF9AgJ9wQE2UjY2UjYAAAAACAAA/8ADgANAAAcAFwAYACQAJQAxADIAPgAAAREjESMRIRElITIWFREUBiMhIiY1ETQ2BTsBMhUxFCsBIjUxNBU7ATIVMRQrASI1MTQVOwEyFTEUKwEiNTE0AWBAYAKA/WACwA4SEg79QA4SEgEuIMAgIMAgIMAgIMAgIMAgIMAgAwD9AAMA/QADAEASDvzADhISDgNADhLAICAgIMAgICAgwCAgICAACwAA/8ADgANAAAMAEwAXABgAJAAlADEAMgA+AD8ASwAAExEhESUhMhYVERQGIyEiJjURNDYFMxEjATsBMhUxFCsBIjUxNBU7ATIVMRQrASI1MTQVOwEyFTEUKwEiNTE0FTsBMhUxFCsBIjUxNMACgP1gAsAOEhIO/UAOEhICDkBA/aAggCAggCAggCAggCAggCAggCAggCAggCADAP0AAwBAEg78wA4SEg4DQA4SQP0AAsAgICAgwCAgICDAICAgIMAgICAgAAAEAAAAAAPAA0AAAwATABcAGwAAExEhESUhMhYVERQGIyEiJjURNDY3IRUhNyEVIYADAPzgA0AOEhIO/MAOEhJOAsD9QGACAP4AAgD+QAHAQBIO/gAOEhIOAgAOEoBAwEAAAAAABgAA/8ADgANAAAYAFAAcACgALQA4AAA3IREhDgEHNyEyFhURFAYjIQcRPgETDgEUFhchNSUhFQ4BByEuASc+ARMVNxc1JSERDgEvAQcGJifAAoD9wBskAUACYA4SEg79QCABSSYUGxsUAlD9sAKQASQb/bAwPwEBP8BgYP8AAUABIxBsbBAjAaACYAEkG4ASDv1gDhI6Apo2Sf0hARsoGwFgQKAbJAEBPzAwPwJh+01N+0D+gxQRDFZWDBEUAAAABQAAAAADwQMAAAMABwAPABcAKwAAASEVITchFSEHMxUhNTMDIQEjFSE1IxEhASEWFxMWFREUBiMhIiY1ETQ3EzYBIAHA/kBgAQD/AP39AQD9q/5cAlLA/oDAAwD9lAHYFAm0AxIO/MAOEgO0CQIAQMBAwICAAUD+gICA/wACwAER/pkHCP6oDhISDgFYCAcBZxEAAAUAAP/gA6ADIAADABMAFAAgADQAABMRIRElITIWFREUBiMhIiY1ETQ2FzMxMhUxFCMxIjUxNAMnEz4BHwEWNjcTFwMOAS8BJgYHoALA/SADAA4SEg79AA4SEs5AQEBAhzLYGE8ffQsZCdgy2BlPH3wLGQgC4P1AAsBAEg79AA4SEg4DAA4SwEBAQED9sycBGh8KF2UIAwoBDij+8h8IGGQIAwsABQAA/8ADwANAAAsAFwAYACQAOAAAAQ4BBx4BFz4BNy4BJx4BFw4BBy4BJz4BFzMxMhUxFCMxIjUxNAEnNz4BHwEWNj8BFwcOAS8BJgYHAgCj2QQE2aOj2QQE2aO+/QUF/b6+/QUF/f5AQEBA/pcuuhpEHooJFgn6KvkbQRyLCRcJAwAE2aOj2QQE2aOj2UQF/b6+/QUF/b6+/dtAQEBA/gkuuRkGFWIHAgfgMOAWBBRiBwIIAAAAAAcAAAAAA8ADQAAJABAAFAAbACsALwA/AAATITUuASchDgEHFREeARczERMhESEBMz4BNxEjASEeARcRDgEHIS4BJxE+ATcVITUlIR4BFxUOAQchLgEnNT4BgAMAASQb/YAbJAEBJBtAQAGA/oABwEAbJAGA/cACgDZJAQFJNv2ANkkBAUn2AQD/AAEAGyQBASQb/wAbJAEBJAIAQBskAQEkG4D+wBskAQGA/oABgP6AASQbAUABAAFJNv5ANkkBAUk2AcA2SUFAQEABJBtAGyQBASQbQBskAAUAAAAAA8ADQAAJABMAIwAnADcAABMhNS4BJyEOAQcVER4BFyE+ATcRASEeARcRDgEHIS4BJxE+ATcVITUlIR4BFxUOAQchLgEnNT4BgAMAASQb/YAbJAEBJBsCgBskAf1AAoA2SQEBSTb9gDZJAQFJ9gEA/wABABskAQEkG/8AGyQBASQCAEAbJAEBJBuA/sAbJAEBJBsBQAEAAUk2/kA2SQEBSTYBwDZJQUBAQAEkG0AbJAEBJBtAGyQAAwAA/+ADoAMgAAMAEwA3AAATESERJSEyFhURFAYjISImNRE0Nhc1MxEhETMVMxUjFTMVIxUzFSMVIxEhESM1IzUzNSM1MzUjNaACwP0gAwAOEhIO/QAOEhLOQAEAQKCgoKCgoED/AEDAwMDAwALg/UACwEASDv0ADhISDgMADhLAoP6gAWCgQIBAgECgAWD+oKBAgECAQAADAAAAAAOZAxkAGgAiADMAAAE0NjIWFREUBiMhIiY1ETQ2MyEyFhQGIyERIQE3ATYuAQcJARYUBwEGDwEGJj8BNjcBNjIDQBIcEhIO/UAOEhIOAWAOEhIO/sACgP6WNQFEDQkkDf67AZ8cHP61CAtpEBYCDwEIAUwdTQGADhISDv6gDhISDgLADhISHBL9gAEWBwFFDSMKDf68AXEcTx3+tQgCDwIXEGkLBwFMHAAAAAIAAP/dA0ADQAAHABsAAAERNzYyHwERJSEyFhURDgEvASYiDwEGJicRNDYBAMQbQhvE/eACQA4SASMQ+AkWCfgQIwESAwD9RZ0VFZ0Cu0ASDvzjFBEMxgcHxgwRFAMdDhIAAAAFAAD/wAPgAwAAHQAhAC4AOwBIAAAlFyMnIwcjNyMiJjURIyImNDYzITIWFAYrAREUBiMDIREhATIWHQEUBiImPQE0NjcyFh0BFAYiJj0BNDY3MhYdARQGIiY9ATQ2AplvSm+eb0pvxw4SQA4SEg4DgA4SEg5AEg4g/YACgP4gDhISHBISrg4SEhwSEq4OEhIcEhKAwMDAwBIOAiASHBISHBL94A4SAkD+AAEAEg5ADhISDkAOEkASDoAOEhIOgA4SQBIOwA4SEg7ADhIAAAAAAwAA/7kD5gNmABMAGAAgAAABFQ4BFx4BFz4BNzMGBCcuASc+AQURIS4BJzU2HgIHIQHAlrEJENWZkNAbQB7+97Sz6AUD1AEpAV8Pwc9itYtDBv4hAzxBHuSZmMQEA7CNstQIEfm0q/UB/qGPwTAfBkOLtWIAAAAABQAA/8AD4AMAAAMABwARABUAGQAAEyEVITMRIRElIREUBiMhIiY1FyM3FwUjJzcgA8D8QKACgP1AAwASDv1ADhLCSpE3AUhKfjcDAED+AAIAQP2gDhISDuD7INvbIAAAAwAA/98DwAMaAAcAHQAhAAAtAREFBiclERMFFjclNhYXERQGBwUGJyUuATURPgEFMxEjAgABgP6ODg7+jgkBcgUFAXIdKwEfGP58BQX+fBgfASsBdEBAITYCfzUCAjX9gQK/NQEBNQMmHf2BGCMENwEBNwQjGAJ/HSZZ/UAAAAAIAAD/5AOgA0AAAwAHAAsADwATABcAGwAfAAABMxUjETMVIwE1MxUhNTMVATcXBwE3FwcFJwEXASc3FwIAQEBAQP6gwAGAwP1aLYgtAQ8tiC39WS0BPS0BDy2ILQNAwP6AwAFgQEBAQAEZLYgt/vEtiC21LQE9LQEPLYgtAAAAAAUAAP/AA4ADQAADAAsAFQAhAC0AAAEzESMFIS4BJyEOATchHgEXFSE1PgEBPgE3LgEnDgEHHgEXLgEnPgE3HgEXDgEB4EBA/uACgAEkG/4AGyQ/AgA2SQH9AAFJATZSbAICbFJSbAICbFJtkAMDkG1tkAMDkAGA/sBAGyQBASRlAUk2QEA2SQEBAmxSUmwCAmxSUmxCA5BtbZADA5BtbZAAAAAABQAA/78DQANAACMARwBIAFQAaAAAASIGBwYHDgEVERQWFxYXHgE7ATI2NzY3PgE1ETQmJyYnLgEjJzMyFhcWFx4BFREUBgcGBw4BKwEiJicmJy4BNRE0Njc2Nz4BFzMxMh0BFCMxIj0BNDcUBiImPQE0JisBIiY0NjsBHgEXAbYyMhIeEAoICAoQHhIyMpQyMhIeEAoICAoQHhIyMpSUPkAWLxkNDQ0NGS8WQD6UPkAWLxkNDQ0NGS8WQGggICAgQBIcEhIOYA4SEg5gKTYBAoAIChAeEjIy/uwyMhIeEAoICAoQHhIyMgEUMjISHhAKCEANDRkvFkA+/uw+QBYvGQ0NDQ0ZLxZAPgEUPkAWLxkNDYAggCAggCBgDhISDkAOEhIcEgE2KQADAAD/wAPgAwAAHQAhADAAACUjIiY1ESMiJjQ2MyEyFhQGKwERFAYrARcjJyMHIwEhESElBiImND8BFzc2HgEPAScBZ8cOEkAOEhIOA4AOEhIOQBIOx29Kb55vSgJI/YACgP4XChoTCZR9bQwlDQyTg4ASDgIgEhwSEhwS/eAOEsDAwAMA/gCpCRMaCpNeiA8FIw+4YgAAAAMAAP/AA8ADIAANAC4AOwAAASEVHgEXMxUhNTM+ATcBNDc2NyEHNzMGBwYXMxEOAQcjFRQGIyEiJj0BIy4BJxEzISY3NjcjBzchBgcGA4D9AAEkG8ABAMAbJAH8/RAWPQGhD27TJQ4JA0YBSTaAEg7+wA4SgDZJAX0CfQMKBgxg3Rz+zycPDgHAwBskAcDAASQbAQBHOVFPRkZAYEBA/wA2SQGgDhISDqABSTYBAEVELimNjTk4MAADAAAAAAPAA0AAJwAzAD8AAAE1LgEnDgEHFTYyHgEdAQ4BBy4BJxE+ATceARcRDgEHLgEnNTQ+ATIXLgEiBgcVHgEyNjclFR4BMjY3NS4BIgYDgATZo6PZBB5EPCIBSTY2SQEF/b6+/QUBSTY2SQEiPEQeASQ2JAEBJDYkAf0AASQ2JAEBJDYkAW8Ro9kEBNmjEREjOiOANkkBAUk2AQC+/QUF/b7/ADZJAQFJNoAjOiOAGyQkG4AbJCQbgIAbJCQbgBskJAAAAAIAAAAAA8ADQAAZACAAACU0NjIWFR4BMjY3ESE+ATceARchEQ4BBy4BAS4BJw4BBwFAEhwSASQ2JAH+QAX9vr79Bf6AAUk2NkkCOhvQkJDQG4AOEhIOGyQkGwEAvv0FBf2+/wA2SQEBSQF2jbADA7CNAAAABAAA//kDtQM0ACEAKgA2AEIAAAEHFgYHBiYnJjY3NhYXNwEmPgEWFwE+ARceAQcOAScuATcDEz4BHgEHAycBHgE+AiYnJg4BFgU+AS4CBgcOAR4BAgBrAUo9PWMTETE4OXAhW/7sCAUWGQgBiSJvOTgxERNjPTxLATXRCBkWBQjdJ/6HFjIwHQUWFiJKLgwCpBYWBB0xMxUgDC5KAT6ZPloLCT47O2saGCM0ggGLCxkQBQv9zzQjGBprOzs+CQtaPgFWASkLBRAZC/7DOP5WDwUWKjQuDxYOQkoZDy41KhYFEBhLQQ4AAAQAAAAAA8ACwAADABcAGwAfAAAlESERATcRJxUUBiMhIiY1ETQ2MyEyFh0CFxElMxUjAsD9wAKAwMASDv2ADhISDgKADhKA/UDAwIACAP4AAaBg/gBggA4SEg4CQA4SEg7IsEABMChAAAAAAAQAAP/AA4ADQAAPAB8AKwA0AAABDgEHER4BFyE+ATcRLgEnJSEeARcRDgEHIS4BJxE+ARchMhYUBiMhIiY0NhMuATQ2MhYUBgEAGyQBASQbAgAbJAEBJBv+AAIANkkBAUk2/gA2SQEBSbYBAA4SEg7/AA4SEo4bJCQ2JCQDAAEkG/2AGyQBASQbAoAbJAFAAUk2/YA2SQEBSTYCgDZJfxIcEhIcEv2AASQ2JCQ2JAAAAgAAAAADgAMAABkAKwAAATUjEQ4BBy4BJxEjFTMVIxUeARc+ATc1IzUHESERDgEHLgEnESERHgEXPgEDQIACbFJSbAKAgIADtYiItQOAQAEABNmjo9kEAQABSTY2SQJAgP7AUmwCAmxSAUCAQICItQMDtYiAQMABgP6Ao9kEBNmjAYD+gDZJAQFJAAACAAD/wAPAAwAAHwAvAAAlFTMyFhQGIyEiJjQ2OwE1IS4BJxE+ATchHgEXEQ4BBwEOAQcRHgEXIT4BNxEuAScCIMAOEhIO/kAOEhIOwP7gNkkBAUk2AoA2SQEBSTb9gBskAQEkGwKAGyQBASQbgIASHBISHBKAAUk2AYA2SQEBSTb+gDZJAQJAASQb/oAbJAEBJBsBgBskAQAAAAADAAD/3gOiA0QAEgAeACoAACUXFhQGIi8BBiQnJhI3NiQXFhIFPgE3LgEnDgEHHgETITIWFAYjISImNDYDHH0JExkKfYX+vHdyBnd8AUSBexP+V5bGBATGlpbGBATGFgEADhISDv8ADhISkX0KGRMJfW0Te4EBRHx3BnJ3/rzWBMaWlsYEBMaWlsYBfBIcEhIcEgAAAwAA/94DogNEABIAHgA6AAAlFxYUBiIvAQYkJyYSNzYkFxYSBT4BNy4BJw4BBx4BEzU0NjIWHQEzMhYUBisBFRQGIiY9ASMiJjQ2MwMcfQkTGQp9hf68d3IGd3wBRIF7E/5XlsYEBMaWlsYEBMZ2EhwSYA4SEg5gEhwSYA4SEg6RfQoZEwl9bRN7gQFEfHcGcnf+vNYExpaWxgQExpaWxgF8YA4SEg5gEhwSYA4SEg5gEhwSAAAAAAIAAP/eA6IDRAASAB4AACUXFhQGIi8BBiQnJhI3NiQXFhIFPgE3LgEnDgEHHgEDHH0JExkKfYX+vHdyBnd8AUSBexP+V5bGBATGlpbGBATGkX0KGRMJfW0Te4EBRHx3BnJ3/rzWBMaWlsYEBMaWlsYAAAAABQAAAAADwANAAAMABwAhAC0AOQAAASERIQMnIQcjMzc+ATMhMhYfATMyFhURFAYjISImNRE0NgE+ATcuAScOAQceARcuASc+ATceARcOAQOA/QADAMcg/s8g6KAuCR4TATESHgkuoA4SEg78wA4SEgGuRFoCAlpERFoCAlpEX38CAn9fX38CAn8CgP3AAoBAQF0QExMQXRIO/YAOEhIOAoAOEv4AAlpERFoCAlpERFpCAn9fX38CAn9fX38AAAAABAAAAAAD4ANAAAMABwAhAC0AAAEhESEBITUhAREUBiMhIiY1ESMiJjURNDYzITIWFREUBiMFMzIWFAYrASImNDYDQP2AAoD9IANA/MADIBIO/UAOEkAOEhIOA4AOEhIO/eDADhISDsAOEhICAP5AAgDA/wD+IA4SEg4B4BIOAQAOEhIO/wAOEoASHBISHBIAAgAAAAADgAMAAAsAFAAANyEyFhQGIyEiJjQ2AREjEQcnCQEHoALADhISDv1ADhISAY5A8y0BPQE9LkASHBISHBICQv4+AcnzLQE9/sMtAAACAAAAAAOAAwAACwAUAAA3ITIWFAYjISImNDYlNxcJATcXETOgAsAOEhIO/UAOEhIBjuwu/sP+wy3zQEASHBISHBL+7C3+wwE9LfMByQAAAAEAAP/4A6MDRQAsAAABNjIXFhQHAQYiJyY0NwEXAQYUFxYyNwE2NCcmIgcBBh4BNwEXAQ4BLgI2NwJaPJk7ODj+w0/MT0tLAZcu/mg4ODyZOwE9JSUoZif+2g0JJA0BJi3+2hIyMyQNDhICkDg4PJk7/sNLS0/MTwGYLv5pO5k8ODgBPShmJyYm/toNJAkNASYt/toTDg0kNDESAAYAAP/AA8ADQAArAC8AQwBHAEsATwAAJSMiJicmJy4BNRE0Njc2Nz4BOwE1IRUzMhYXFhceARURFAYHBgcOASsBFSETESERBTUhFTMRNC4DIyEiDgMVERMhNSEDMxUjNzMVIwEAlwoLBAgEAgIHBg0XCyAfRQIARR8gCxcNBgcCAgUHBAsKl/4AQAGA/kACAIACBwsSFf12FRILBwLAAYD+gEBAQIBAQIACAgUHBAsKAVwfIAsXDQYHwMAHBg0XCyAf/qQKCwQIBAICwAGA/sABQIDAwAFFFRILBwICBwsSFf67AcCA/wBAQEAABAAA/8ADgANAAAUACAAWACIAAAEhESERIQMnFQEhAREUBiMhIiY1ETQ2ATUzFTMVIxUjNSM1A0D/AP6AAoAapv4gAeABABIO/UAOEhIBTkCAgECAAgABAP0AAkCmpgEA/wD9oA4SEg4DQA4S/gCAgECAgEAAAAAABgAA/8ADgANAAAUACAAWABoAHgAiAAABIREhESEDJxUBIQERFAYjISImNRE0NhMhFSERMxUjESEVIQNA/wD+gAKAGqb+IAHgAQASDv1ADhISrgGA/oCgoAGA/oACAAEA/QACQKamAQD/AP2gDhISDgNADhL+QEABAED+wEAAAAAEAAD/wAOAA0AAAgAIABYAHAAAAScVFyERIREhASEBERQGIyEiJjURNDYBNxcHJzcDJqbA/wD+gAKA/WAB4AEAEg79QA4SEgFMtS7jni0CQKamQAEA/QADQP8A/aAOEhIOA0AOEv26tS3jny0AAAAABQAA/8ADwANAAAMAEwAmACoALgAAExEhESUhMhYVERQGIyEiJjURNDYlERQGKwE1MxEhFSM1NDYzITIWASEVIREhFSGAAkD9oAKADhISDv2ADhISA24SDmBA/gBAEg4CQA4S/UABQP7AAUD+wAJA/cACQEASDv2ADhISDgKADhKg/UAOEkACgEBgDhIS/bJAAQBAAAQAAP/AA4ADQAACAAgAFgAiAAABJxUXIREhESEBIQERFAYjISImNRE0NgEnNxc3FwcXBycHJwMmpsD/AP6AAoD9YAHgAQASDv1ADhISAUNbLlpbLVpaLVtaLgJApqZAAQD9AANA/wD9oA4SEg4DQA4S/d5aLltbLlpbLVpaLQAABAAA/8ADgANAAAIACAAWABoAAAEnFRchESERIQEhAREUBiMhIiY1ETQ2EyEVIQMmpsD/AP6AAoD9YAHgAQASDv1ADhISzgFA/sACQKamQAEA/QADQP8A/aAOEhIOA0AOEv4AQAAAAAAFAAD/wAOAA0AAAwATABcAGwAfAAATESERJSEyFhURFAYjISImNRE0NhMhFSERMxUjESEVIcACgP1gAsAOEhIO/UAOEhKuAYD+gMDAAYD+gAMA/QADAEASDvzADhISDgNADhL+QEABAED+wEAAAAAAAwAAAAADwAMAAAUAFwAdAAATESERISclIRchMhYVERQGIyEiJjURNDYBNxcHJzeAAwD+ZoD++gEggAGgDhISDvzADhISAay1LeKeLQLA/YACAIBAgBIO/cAOEhIOAsAOEv4KtS3jny0AAAAAAwAAAAADwAMAAAUAFwAjAAATESERISclIRchMhYVERQGIyEiJjURNDYBJzcXNxcHFwcnByeAAwD+ZoD++gEggAGgDhISDvzADhISAYFbLlpaLltbLlpaLgLA/YACAIBAgBIO/cAOEhIOAsAOEv5AWi5bWy5aWi5bWy4AAAMAAAAAA8ADAAAFABcAGwAAExEhESEnJSEXITIWFREUBiMhIiY1ETQ2ASEVIYADAP5mgP76ASCAAaAOEhIO/MAOEhIBDgFA/sACwP2AAgCAQIASDv3ADhISDgLADhL+YEAAAAADAAAAAAPAAwAABQAXACMAABMRIREhJyUhFyEyFhURFAYjISImNRE0NgE1MxUzFSMVIzUjNYADAP5mgP76ASCAAaAOEhIO/MAOEhIBjkCAgECAAsD9gAIAgECAEg79wA4SEg4CwA4S/mCAgECAgEAAAwAA//8DugMAAAMADQAkAAABIQMhEzUhJyMRNz4BMwEhIiY1ETQ2MyEXITIWHQEzMhYHAw4BA279hGACfDL+poDmOgMRCwJO/TkOEhIOASCAAWAOEhcPEwNwAxEBwP6AAcBAgP5A6AsN/gASDgLADhKAEg5gGQ/+QAsNAAIAAAAAA8ADAAAFABcAABMRIREhJyUhFyEyFhURFAYjISImNRE0NoADAP5mgP76ASCAAaAOEhIO/MAOEhICwP2AAgCAQIASDv3ADhISDgLADhIAAAUAAP+8A6kDVQADAAYACgAQABQAADcX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APkAAwABBAkACgBWAQcAAwABBAkACwAmAV0KQ3JlYXRlZCBieSBpY29uZm9udAplbGVtZW50UmVndWxhcmVsZW1lbnRlbGVtZW50VmVyc2lvbiAxLjBlbGVtZW50R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAZQBsAGUAbQBlAG4AdABSAGUAZwB1AGwAYQByAGUAbABlAG0AZQBuAHQAZQBsAGUAbQBlAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAZQBsAGUAbQBlAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgAPaWNlLWNyZWFtLXJvdW5kEGljZS1jcmVhbS1zcXVhcmUIbG9sbGlwb3ANcG90YXRvLXN0cmlwcwhtaWxrLXRlYQlpY2UtZHJpbmsHaWNlLXRlYQZjb2ZmZWUGb3JhbmdlBHBlYXIFYXBwbGUGY2hlcnJ5CndhdGVybWVsb24FZ3JhcGUMcmVmcmlnZXJhdG9yEmdvYmxldC1zcXVhcmUtZnVsbA1nb2JsZXQtc3F1YXJlC2dvYmxldC1mdWxsBmdvYmxldApjb2xkLWRyaW5rCmNvZmZlZS1jdXAJd2F0ZXItY3VwCWhvdC13YXRlcglpY2UtY3JlYW0HZGVzc2VydAVzdWdhcgl0YWJsZXdhcmUGYnVyZ2VyCmtuaWZlLWZvcmsKZm9yay1zcG9vbgdjaGlja2VuBGZvb2QGZGlzaC0xBGRpc2gMcmVmcmVzaC1sZWZ0DXJlZnJlc2gtcmlnaHQPd2FybmluZy1vdXRsaW5lB3NldHRpbmcNcGhvbmUtb3V0bGluZQxtb3JlLW91dGxpbmUIZmluaXNoZWQEdmlldwdsb2FkaW5nB3JlZnJlc2gEcmFuawRzb3J0DG1vYmlsZS1waG9uZQdzZXJ2aWNlBHNlbGwIc29sZC1vdXQGZGVsZXRlBW1pbnVzBHBsdXMFY2hlY2sFY2xvc2UNZC1hcnJvdy1yaWdodAxkLWFycm93LWxlZnQKYXJyb3ctbGVmdAphcnJvdy1kb3duC2Fycm93LXJpZ2h0CGFycm93LXVwA2tleQR1c2VyBnVubG9jawRsb2NrA3RvcAl0b3AtcmlnaHQIdG9wLWxlZnQFcmlnaHQEYmFjawZib3R0b20MYm90dG9tLXJpZ2h0C2JvdHRvbS1sZWZ0Cm1vb24tbmlnaHQEbW9vbhBjbG91ZHktYW5kLXN1bm55DXBhcnRseS1jbG91ZHkGY2xvdWR5BXN1bm55BnN1bnNldAlzdW5yaXNlLTEHc3VucmlzZQpoZWF2eS1yYWluCWxpZ2h0bmluZwpsaWdodC1yYWluCndpbmQtcG93ZXIFd2F0Y2gHd2F0Y2gtMQV0aW1lcgthbGFybS1jbG9jawxtYXAtbG9jYXRpb24PZGVsZXRlLWxvY2F0aW9uDGFkZC1sb2NhdGlvbhRsb2NhdGlvbi1pbmZvcm1hdGlvbhBsb2NhdGlvbi1vdXRsaW5lBXBsYWNlCGRpc2NvdmVyDWZpcnN0LWFpZC1raXQIdHJvcGh5LTEGdHJvcGh5BW1lZGFsB21lZGFsLTEJc3RvcHdhdGNoA21pYwhiYXNlYmFsbAZzb2NjZXIIZm9vdGJhbGwKYmFza2V0YmFsbAhzdGFyLW9mZg1jb3B5LWRvY3VtZW50C2Z1bGwtc2NyZWVuDXN3aXRjaC1idXR0b24DYWltBGNyb3AIb2RvbWV0ZXIEdGltZQxjaXJjbGUtY2hlY2sOcmVtb3ZlLW91dGxpbmUTY2lyY2xlLXBsdXMtb3V0bGluZQdiYW5nemh1BGJlbGwSY2xvc2Utbm90aWZpY2F0aW9uCm1pY3JvcGhvbmUTdHVybi1vZmYtbWljcm9waG9uZQhwb3NpdGlvbghwb3N0Y2FyZAdtZXNzYWdlEGNoYXQtbGluZS1zcXVhcmUPY2hhdC1kb3Qtc3F1YXJlDmNoYXQtZG90LXJvdW5kC2NoYXQtc3F1YXJlD2NoYXQtbGluZS1yb3VuZApjaGF0LXJvdW5kBnNldC11cAh0dXJuLW9mZgRvcGVuCmNvbm5lY3Rpb24EbGluawNjcHUFdGh1bWIGZmVtYWxlBG1hbGUFZ3VpZGUEaGVscARuZXdzBHNoaXAFdHJ1Y2sHYmljeWNsZQlwcmljZS10YWcIZGlzY291bnQGd2FsbGV0BGNvaW4FbW9uZXkJYmFuay1jYXJkA2JveAdwcmVzZW50DnNob3BwaW5nLWJhZy0yDnNob3BwaW5nLWJhZy0xD3Nob3BwaW5nLWNhcnQtMg9zaG9wcGluZy1jYXJ0LTESc2hvcHBpbmctY2FydC1mdWxsB3Ntb2tpbmcKbm8tc21va2luZwVob3VzZQp0YWJsZS1sYW1wBnNjaG9vbA9vZmZpY2UtYnVpbGRpbmcMdG9pbGV0LXBhcGVyCm5vdGVib29rLTIKbm90ZWJvb2stMQVmaWxlcwpjb2xsZWN0aW9uCXJlY2VpdmluZw9waWN0dXJlLW91dGxpbmUVcGljdHVyZS1vdXRsaW5lLXJvdW5kCnN1aXRjYXNlLTEIc3VpdGNhc2UEZmlsbQxlZGl0LW91dGxpbmUOY29sbGVjdGlvbi10YWcNZGF0YS1hbmFseXNpcwlwaWUtY2hhcnQKZGF0YS1ib2FyZAdyZWFkaW5nC21hZ2ljLXN0aWNrCmNvb3JkaW5hdGUFbW91c2UJZGF0YS1saW5lBWJydXNoB2hlYWRzZXQIdW1icmVsbGEIc2Npc3NvcnMMdmlkZW8tY2FtZXJhBm1vYmlsZQdhdHRyYWN0B21vbml0b3IIem9vbS1vdXQHem9vbS1pbgZzZWFyY2gGY2FtZXJhDHRha2Vhd2F5LWJveAd1cGxvYWQyCGRvd25sb2FkCXBhcGVyY2xpcAdwcmludGVyDGRvY3VtZW50LWFkZAhkb2N1bWVudBBkb2N1bWVudC1jaGVja2VkDWRvY3VtZW50LWNvcHkPZG9jdW1lbnQtZGVsZXRlD2RvY3VtZW50LXJlbW92ZQd0aWNrZXRzDmZvbGRlci1jaGVja2VkDWZvbGRlci1kZWxldGUNZm9sZGVyLXJlbW92ZQpmb2xkZXItYWRkDWZvbGRlci1vcGVuZWQGZm9sZGVyBGVkaXQMY2lyY2xlLWNsb3NlBGRhdGUJY2FyZXQtdG9wDGNhcmV0LWJvdHRvbQtjYXJldC1yaWdodApjYXJldC1sZWZ0BXNoYXJlBG1vcmUFcGhvbmUSdmlkZW8tY2FtZXJhLXNvbGlkB3N0YXItb24EbWVudQ1tZXNzYWdlLXNvbGlkB2QtY2FyZXQMY2FtZXJhLXNvbGlkB3N1Y2Nlc3MFZXJyb3IIbG9jYXRpb24HcGljdHVyZQtjaXJjbGUtcGx1cwRpbmZvBnJlbW92ZQd3YXJuaW5nCHF1ZXN0aW9uCnVzZXItc29saWQGcy1ncmlkB3MtY2hlY2sGcy1kYXRhBnMtZm9sZA1zLW9wcG9ydHVuaXR5CHMtY3VzdG9tB3MtdG9vbHMHcy1jbGFpbQlzLWZpbmFuY2UJcy1jb21tZW50BnMtZmxhZwtzLW1hcmtldGluZwdzLWdvb2RzBnMtaGVscAZzLXNob3AGcy1vcGVuDHMtbWFuYWdlbWVudAhzLXRpY2tldAlzLXJlbGVhc2UGcy1ob21lC3MtcHJvbW90aW9uC3Mtb3BlcmF0aW9uCHMtdW5mb2xkCnMtcGxhdGZvcm0Hcy1vcmRlcg1zLWNvb3BlcmF0aW9uCnZpZGVvLXBsYXkLdmlkZW8tcGF1c2UFZ29vZHMGdXBsb2FkCXNvcnQtZG93bgdzb3J0LXVwE2Mtc2NhbGUtdG8tb3JpZ2luYWwFZWxlbWUMZGVsZXRlLXNvbGlkDnBsYXRmb3JtLWVsZW1lAAAA" /***/ }), /* 74 */ /***/ (function(module, exports) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 134); /******/ }) /************************************************************************/ /******/ ({ /***/ 134: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./packages/col/src/col.js var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* harmony default export */ var col = ({ name: 'ElCol', props: { span: { type: Number, default: 24 }, tag: { type: String, default: 'div' }, offset: Number, pull: Number, push: Number, xs: [Number, Object], sm: [Number, Object], md: [Number, Object], lg: [Number, Object], xl: [Number, Object] }, computed: { gutter: function gutter() { var parent = this.$parent; while (parent && parent.$options.componentName !== 'ElRow') { parent = parent.$parent; } return parent ? parent.gutter : 0; } }, render: function render(h) { var _this = this; var classList = []; var style = {}; if (this.gutter) { style.paddingLeft = this.gutter / 2 + 'px'; style.paddingRight = style.paddingLeft; } ['span', 'offset', 'pull', 'push'].forEach(function (prop) { if (_this[prop] || _this[prop] === 0) { classList.push(prop !== 'span' ? 'el-col-' + prop + '-' + _this[prop] : 'el-col-' + _this[prop]); } }); ['xs', 'sm', 'md', 'lg', 'xl'].forEach(function (size) { if (typeof _this[size] === 'number') { classList.push('el-col-' + size + '-' + _this[size]); } else if (_typeof(_this[size]) === 'object') { var props = _this[size]; Object.keys(props).forEach(function (prop) { classList.push(prop !== 'span' ? 'el-col-' + size + '-' + prop + '-' + props[prop] : 'el-col-' + size + '-' + props[prop]); }); } }); return h(this.tag, { class: ['el-col', classList], style: style }, this.$slots.default); } }); // CONCATENATED MODULE: ./packages/col/index.js /* istanbul ignore next */ col.install = function (Vue) { Vue.component(col.name, col); }; /* harmony default export */ var packages_col = __webpack_exports__["default"] = (col); /***/ }) /******/ }); /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(76); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("7a28540f", content, true, {}); /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row::after,.el-row::before{display:table;content:\"\"}.el-row::after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}", ""]); // exports /***/ }), /* 77 */ /***/ (function(module, exports) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 132); /******/ }) /************************************************************************/ /******/ ({ /***/ 132: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./packages/row/src/row.js /* harmony default export */ var row = ({ name: 'ElRow', componentName: 'ElRow', props: { tag: { type: String, default: 'div' }, gutter: Number, type: String, justify: { type: String, default: 'start' }, align: { type: String, default: 'top' } }, computed: { style: function style() { var ret = {}; if (this.gutter) { ret.marginLeft = '-' + this.gutter / 2 + 'px'; ret.marginRight = ret.marginLeft; } return ret; } }, render: function render(h) { return h(this.tag, { class: ['el-row', this.justify !== 'start' ? 'is-justify-' + this.justify : '', this.align !== 'top' ? 'is-align-' + this.align : '', { 'el-row--flex': this.type === 'flex' }], style: this.style }, this.$slots.default); } }); // CONCATENATED MODULE: ./packages/row/index.js /* istanbul ignore next */ row.install = function (Vue) { Vue.component(row.name, row); }; /* harmony default export */ var packages_row = __webpack_exports__["default"] = (row); /***/ }) /******/ }); /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(79); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("b344bdaa", content, true, {}); /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, "", ""]); // exports /***/ }), /* 80 */ /***/ (function(module, exports) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 112); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 112: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tabs/src/tab-pane.vue?vue&type=template&id=9145a070& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return !_vm.lazy || _vm.loaded || _vm.active ? _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.active, expression: "active" } ], staticClass: "el-tab-pane", attrs: { role: "tabpanel", "aria-hidden": !_vm.active, id: "pane-" + _vm.paneName, "aria-labelledby": "tab-" + _vm.paneName } }, [_vm._t("default")], 2 ) : _vm._e() } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/tabs/src/tab-pane.vue?vue&type=template&id=9145a070& // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/tabs/src/tab-pane.vue?vue&type=script&lang=js& // // // // // // // // // // // // // /* harmony default export */ var tab_panevue_type_script_lang_js_ = ({ name: 'ElTabPane', componentName: 'ElTabPane', props: { label: String, labelContent: Function, name: String, closable: Boolean, disabled: Boolean, lazy: Boolean }, data: function data() { return { index: null, loaded: false }; }, computed: { isClosable: function isClosable() { return this.closable || this.$parent.closable; }, active: function active() { var active = this.$parent.currentName === (this.name || this.index); if (active) { this.loaded = true; } return active; }, paneName: function paneName() { return this.name || this.index; } }, updated: function updated() { this.$parent.$emit('tab-nav-update'); } }); // CONCATENATED MODULE: ./packages/tabs/src/tab-pane.vue?vue&type=script&lang=js& /* harmony default export */ var src_tab_panevue_type_script_lang_js_ = (tab_panevue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/tabs/src/tab-pane.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_tab_panevue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/tabs/src/tab-pane.vue" /* harmony default export */ var tab_pane = (component.exports); // CONCATENATED MODULE: ./packages/tab-pane/index.js /* istanbul ignore next */ tab_pane.install = function (Vue) { Vue.component(tab_pane.name, tab_pane); }; /* harmony default export */ var packages_tab_pane = __webpack_exports__["default"] = (tab_pane); /***/ }) /******/ }); /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(82); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("5a15e267", content, true, {}); /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409EFF;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#409EFF}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:\"\";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#E4E7ED;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #409EFF inset;box-shadow:0 0 2px 2px #409EFF inset;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#C0C4CC;color:#FFF}.el-tabs__item.is-active{color:#409EFF}.el-tabs__item:hover{color:#409EFF;cursor:pointer}.el-tabs__item.is-disabled{color:#C0C4CC;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #E4E7ED}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #E4E7ED;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #E4E7ED;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#FFF}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#FFF;border:1px solid #DCDFE6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#F5F7FA;border-bottom:1px solid #E4E7ED;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409EFF;background-color:#FFF;border-right-color:#DCDFE6;border-left-color:#DCDFE6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409EFF}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#C0C4CC}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #DCDFE6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left::after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left::after,.el-tabs--left .el-tabs__nav-wrap.is-right::after,.el-tabs--right .el-tabs__nav-wrap.is-left::after,.el-tabs--right .el-tabs__nav-wrap.is-right::after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #E4E7ED;border-bottom:none;border-top:1px solid #E4E7ED;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #E4E7ED;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #E4E7ED;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #E4E7ED;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right::after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #E4E7ED}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #E4E7ED;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #E4E7ED;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #E4E7ED;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}", ""]); // exports /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 60); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 16: /***/ (function(module, exports) { module.exports = __webpack_require__(84); /***/ }), /***/ 3: /***/ (function(module, exports) { module.exports = __webpack_require__(14); /***/ }), /***/ 60: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tabs/src/tab-bar.vue?vue&type=template&id=2031f33a& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("div", { staticClass: "el-tabs__active-bar", class: "is-" + _vm.rootTabs.tabPosition, style: _vm.barStyle }) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/tabs/src/tab-bar.vue?vue&type=template&id=2031f33a& // EXTERNAL MODULE: external "element-ui/lib/utils/util" var util_ = __webpack_require__(3); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/tabs/src/tab-bar.vue?vue&type=script&lang=js& // // // /* harmony default export */ var tab_barvue_type_script_lang_js_ = ({ name: 'TabBar', props: { tabs: Array }, inject: ['rootTabs'], computed: { barStyle: { get: function get() { var _this = this; var style = {}; var offset = 0; var tabSize = 0; var sizeName = ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1 ? 'width' : 'height'; var sizeDir = sizeName === 'width' ? 'x' : 'y'; var firstUpperCase = function firstUpperCase(str) { return str.toLowerCase().replace(/( |^)[a-z]/g, function (L) { return L.toUpperCase(); }); }; this.tabs.every(function (tab, index) { var $el = Object(util_["arrayFind"])(_this.$parent.$refs.tabs || [], function (t) { return t.id.replace('tab-', '') === tab.paneName; }); if (!$el) { return false; } if (!tab.active) { offset += $el['client' + firstUpperCase(sizeName)]; return true; } else { tabSize = $el['client' + firstUpperCase(sizeName)]; var tabStyles = window.getComputedStyle($el); if (sizeName === 'width' && _this.tabs.length > 1) { tabSize -= parseFloat(tabStyles.paddingLeft) + parseFloat(tabStyles.paddingRight); } if (sizeName === 'width') { offset += parseFloat(tabStyles.paddingLeft); } return false; } }); var transform = 'translate' + firstUpperCase(sizeDir) + '(' + offset + 'px)'; style[sizeName] = tabSize + 'px'; style.transform = transform; style.msTransform = transform; style.webkitTransform = transform; return style; } } } }); // CONCATENATED MODULE: ./packages/tabs/src/tab-bar.vue?vue&type=script&lang=js& /* harmony default export */ var src_tab_barvue_type_script_lang_js_ = (tab_barvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/tabs/src/tab-bar.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_tab_barvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/tabs/src/tab-bar.vue" /* harmony default export */ var tab_bar = (component.exports); // EXTERNAL MODULE: external "element-ui/lib/utils/resize-event" var resize_event_ = __webpack_require__(16); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/tabs/src/tab-nav.vue?vue&type=script&lang=js& function noop() {} var tab_navvue_type_script_lang_js_firstUpperCase = function firstUpperCase(str) { return str.toLowerCase().replace(/( |^)[a-z]/g, function (L) { return L.toUpperCase(); }); }; /* harmony default export */ var tab_navvue_type_script_lang_js_ = ({ name: 'TabNav', components: { TabBar: tab_bar }, inject: ['rootTabs'], props: { panes: Array, currentName: String, editable: Boolean, onTabClick: { type: Function, default: noop }, onTabRemove: { type: Function, default: noop }, type: String, stretch: Boolean }, data: function data() { return { scrollable: false, navOffset: 0, isFocus: false, focusable: true }; }, computed: { navStyle: function navStyle() { var dir = ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1 ? 'X' : 'Y'; return { transform: 'translate' + dir + '(-' + this.navOffset + 'px)' }; }, sizeName: function sizeName() { return ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1 ? 'width' : 'height'; } }, methods: { scrollPrev: function scrollPrev() { var containerSize = this.$refs.navScroll['offset' + tab_navvue_type_script_lang_js_firstUpperCase(this.sizeName)]; var currentOffset = this.navOffset; if (!currentOffset) return; var newOffset = currentOffset > containerSize ? currentOffset - containerSize : 0; this.navOffset = newOffset; }, scrollNext: function scrollNext() { var navSize = this.$refs.nav['offset' + tab_navvue_type_script_lang_js_firstUpperCase(this.sizeName)]; var containerSize = this.$refs.navScroll['offset' + tab_navvue_type_script_lang_js_firstUpperCase(this.sizeName)]; var currentOffset = this.navOffset; if (navSize - currentOffset <= containerSize) return; var newOffset = navSize - currentOffset > containerSize * 2 ? currentOffset + containerSize : navSize - containerSize; this.navOffset = newOffset; }, scrollToActiveTab: function scrollToActiveTab() { if (!this.scrollable) return; var nav = this.$refs.nav; var activeTab = this.$el.querySelector('.is-active'); if (!activeTab) return; var navScroll = this.$refs.navScroll; var isHorizontal = ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1; var activeTabBounding = activeTab.getBoundingClientRect(); var navScrollBounding = navScroll.getBoundingClientRect(); var maxOffset = isHorizontal ? nav.offsetWidth - navScrollBounding.width : nav.offsetHeight - navScrollBounding.height; var currentOffset = this.navOffset; var newOffset = currentOffset; if (isHorizontal) { if (activeTabBounding.left < navScrollBounding.left) { newOffset = currentOffset - (navScrollBounding.left - activeTabBounding.left); } if (activeTabBounding.right > navScrollBounding.right) { newOffset = currentOffset + activeTabBounding.right - navScrollBounding.right; } } else { if (activeTabBounding.top < navScrollBounding.top) { newOffset = currentOffset - (navScrollBounding.top - activeTabBounding.top); } if (activeTabBounding.bottom > navScrollBounding.bottom) { newOffset = currentOffset + (activeTabBounding.bottom - navScrollBounding.bottom); } } newOffset = Math.max(newOffset, 0); this.navOffset = Math.min(newOffset, maxOffset); }, update: function update() { if (!this.$refs.nav) return; var sizeName = this.sizeName; var navSize = this.$refs.nav['offset' + tab_navvue_type_script_lang_js_firstUpperCase(sizeName)]; var containerSize = this.$refs.navScroll['offset' + tab_navvue_type_script_lang_js_firstUpperCase(sizeName)]; var currentOffset = this.navOffset; if (containerSize < navSize) { var _currentOffset = this.navOffset; this.scrollable = this.scrollable || {}; this.scrollable.prev = _currentOffset; this.scrollable.next = _currentOffset + containerSize < navSize; if (navSize - _currentOffset < containerSize) { this.navOffset = navSize - containerSize; } } else { this.scrollable = false; if (currentOffset > 0) { this.navOffset = 0; } } }, changeTab: function changeTab(e) { var keyCode = e.keyCode; var nextIndex = void 0; var currentIndex = void 0, tabList = void 0; if ([37, 38, 39, 40].indexOf(keyCode) !== -1) { // 左右上下键更换tab tabList = e.currentTarget.querySelectorAll('[role=tab]'); currentIndex = Array.prototype.indexOf.call(tabList, e.target); } else { return; } if (keyCode === 37 || keyCode === 38) { // left if (currentIndex === 0) { // first nextIndex = tabList.length - 1; } else { nextIndex = currentIndex - 1; } } else { // right if (currentIndex < tabList.length - 1) { // not last nextIndex = currentIndex + 1; } else { nextIndex = 0; } } tabList[nextIndex].focus(); // 改变焦点元素 tabList[nextIndex].click(); // 选中下一个tab this.setFocus(); }, setFocus: function setFocus() { if (this.focusable) { this.isFocus = true; } }, removeFocus: function removeFocus() { this.isFocus = false; }, visibilityChangeHandler: function visibilityChangeHandler() { var _this = this; var visibility = document.visibilityState; if (visibility === 'hidden') { this.focusable = false; } else if (visibility === 'visible') { setTimeout(function () { _this.focusable = true; }, 50); } }, windowBlurHandler: function windowBlurHandler() { this.focusable = false; }, windowFocusHandler: function windowFocusHandler() { var _this2 = this; setTimeout(function () { _this2.focusable = true; }, 50); } }, updated: function updated() { this.update(); }, render: function render(h) { var _this3 = this; var type = this.type, panes = this.panes, editable = this.editable, stretch = this.stretch, onTabClick = this.onTabClick, onTabRemove = this.onTabRemove, navStyle = this.navStyle, scrollable = this.scrollable, scrollNext = this.scrollNext, scrollPrev = this.scrollPrev, changeTab = this.changeTab, setFocus = this.setFocus, removeFocus = this.removeFocus; var scrollBtn = scrollable ? [h( 'span', { 'class': ['el-tabs__nav-prev', scrollable.prev ? '' : 'is-disabled'], on: { 'click': scrollPrev } }, [h('i', { 'class': 'el-icon-arrow-left' })] ), h( 'span', { 'class': ['el-tabs__nav-next', scrollable.next ? '' : 'is-disabled'], on: { 'click': scrollNext } }, [h('i', { 'class': 'el-icon-arrow-right' })] )] : null; var tabs = this._l(panes, function (pane, index) { var _ref; var tabName = pane.name || pane.index || index; var closable = pane.isClosable || editable; pane.index = '' + index; var btnClose = closable ? h('span', { 'class': 'el-icon-close', on: { 'click': function click(ev) { onTabRemove(pane, ev); } } }) : null; var tabLabelContent = pane.$slots.label || pane.label; var tabindex = pane.active ? 0 : -1; return h( 'div', { 'class': (_ref = { 'el-tabs__item': true }, _ref['is-' + _this3.rootTabs.tabPosition] = true, _ref['is-active'] = pane.active, _ref['is-disabled'] = pane.disabled, _ref['is-closable'] = closable, _ref['is-focus'] = _this3.isFocus, _ref), attrs: { id: 'tab-' + tabName, 'aria-controls': 'pane-' + tabName, role: 'tab', 'aria-selected': pane.active, tabindex: tabindex }, key: 'tab-' + tabName, ref: 'tabs', refInFor: true, on: { 'focus': function focus() { setFocus(); }, 'blur': function blur() { removeFocus(); }, 'click': function click(ev) { removeFocus();onTabClick(pane, tabName, ev); }, 'keydown': function keydown(ev) { if (closable && (ev.keyCode === 46 || ev.keyCode === 8)) { onTabRemove(pane, ev); } } } }, [tabLabelContent, btnClose] ); }); return h( 'div', { 'class': ['el-tabs__nav-wrap', scrollable ? 'is-scrollable' : '', 'is-' + this.rootTabs.tabPosition] }, [scrollBtn, h( 'div', { 'class': ['el-tabs__nav-scroll'], ref: 'navScroll' }, [h( 'div', { 'class': ['el-tabs__nav', 'is-' + this.rootTabs.tabPosition, stretch && ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1 ? 'is-stretch' : ''], ref: 'nav', style: navStyle, attrs: { role: 'tablist' }, on: { 'keydown': changeTab } }, [!type ? h('tab-bar', { attrs: { tabs: panes } }) : null, tabs] )] )] ); }, mounted: function mounted() { var _this4 = this; Object(resize_event_["addResizeListener"])(this.$el, this.update); document.addEventListener('visibilitychange', this.visibilityChangeHandler); window.addEventListener('blur', this.windowBlurHandler); window.addEventListener('focus', this.windowFocusHandler); setTimeout(function () { _this4.scrollToActiveTab(); }, 0); }, beforeDestroy: function beforeDestroy() { if (this.$el && this.update) Object(resize_event_["removeResizeListener"])(this.$el, this.update); document.removeEventListener('visibilitychange', this.visibilityChangeHandler); window.removeEventListener('blur', this.windowBlurHandler); window.removeEventListener('focus', this.windowFocusHandler); } }); // CONCATENATED MODULE: ./packages/tabs/src/tab-nav.vue?vue&type=script&lang=js& /* harmony default export */ var src_tab_navvue_type_script_lang_js_ = (tab_navvue_type_script_lang_js_); // CONCATENATED MODULE: ./packages/tabs/src/tab-nav.vue var tab_nav_render, tab_nav_staticRenderFns /* normalize component */ var tab_nav_component = Object(componentNormalizer["a" /* default */])( src_tab_navvue_type_script_lang_js_, tab_nav_render, tab_nav_staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var tab_nav_api; } tab_nav_component.options.__file = "packages/tabs/src/tab-nav.vue" /* harmony default export */ var tab_nav = (tab_nav_component.exports); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/tabs/src/tabs.vue?vue&type=script&lang=js& /* harmony default export */ var tabsvue_type_script_lang_js_ = ({ name: 'ElTabs', components: { TabNav: tab_nav }, props: { type: String, activeName: String, closable: Boolean, addable: Boolean, value: {}, editable: Boolean, tabPosition: { type: String, default: 'top' }, beforeLeave: Function, stretch: Boolean }, provide: function provide() { return { rootTabs: this }; }, data: function data() { return { currentName: this.value || this.activeName, panes: [] }; }, watch: { activeName: function activeName(value) { this.setCurrentName(value); }, value: function value(_value) { this.setCurrentName(_value); }, currentName: function currentName(value) { var _this = this; if (this.$refs.nav) { this.$nextTick(function () { _this.$refs.nav.$nextTick(function (_) { _this.$refs.nav.scrollToActiveTab(); }); }); } } }, methods: { calcPaneInstances: function calcPaneInstances() { var _this2 = this; var isForceUpdate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; if (this.$slots.default) { var paneSlots = this.$slots.default.filter(function (vnode) { return vnode.tag && vnode.componentOptions && vnode.componentOptions.Ctor.options.name === 'ElTabPane'; }); // update indeed var panes = paneSlots.map(function (_ref) { var componentInstance = _ref.componentInstance; return componentInstance; }); var panesChanged = !(panes.length === this.panes.length && panes.every(function (pane, index) { return pane === _this2.panes[index]; })); if (isForceUpdate || panesChanged) { this.panes = panes; } } else if (this.panes.length !== 0) { this.panes = []; } }, handleTabClick: function handleTabClick(tab, tabName, event) { if (tab.disabled) return; this.setCurrentName(tabName); this.$emit('tab-click', tab, event); }, handleTabRemove: function handleTabRemove(pane, ev) { if (pane.disabled) return; ev.stopPropagation(); this.$emit('edit', pane.name, 'remove'); this.$emit('tab-remove', pane.name); }, handleTabAdd: function handleTabAdd() { this.$emit('edit', null, 'add'); this.$emit('tab-add'); }, setCurrentName: function setCurrentName(value) { var _this3 = this; var changeCurrentName = function changeCurrentName() { _this3.currentName = value; _this3.$emit('input', value); }; if (this.currentName !== value && this.beforeLeave) { var before = this.beforeLeave(value, this.currentName); if (before && before.then) { before.then(function () { changeCurrentName(); _this3.$refs.nav && _this3.$refs.nav.removeFocus(); }, function () { // https://github.com/ElemeFE/element/pull/14816 // ignore promise rejection in `before-leave` hook }); } else if (before !== false) { changeCurrentName(); } } else { changeCurrentName(); } } }, render: function render(h) { var _ref2; var type = this.type, handleTabClick = this.handleTabClick, handleTabRemove = this.handleTabRemove, handleTabAdd = this.handleTabAdd, currentName = this.currentName, panes = this.panes, editable = this.editable, addable = this.addable, tabPosition = this.tabPosition, stretch = this.stretch; var newButton = editable || addable ? h( 'span', { 'class': 'el-tabs__new-tab', on: { 'click': handleTabAdd, 'keydown': function keydown(ev) { if (ev.keyCode === 13) { handleTabAdd(); } } }, attrs: { tabindex: '0' } }, [h('i', { 'class': 'el-icon-plus' })] ) : null; var navData = { props: { currentName: currentName, onTabClick: handleTabClick, onTabRemove: handleTabRemove, editable: editable, type: type, panes: panes, stretch: stretch }, ref: 'nav' }; var header = h( 'div', { 'class': ['el-tabs__header', 'is-' + tabPosition] }, [newButton, h('tab-nav', navData)] ); var panels = h( 'div', { 'class': 'el-tabs__content' }, [this.$slots.default] ); return h( 'div', { 'class': (_ref2 = { 'el-tabs': true, 'el-tabs--card': type === 'card' }, _ref2['el-tabs--' + tabPosition] = true, _ref2['el-tabs--border-card'] = type === 'border-card', _ref2) }, [tabPosition !== 'bottom' ? [header, panels] : [panels, header]] ); }, created: function created() { if (!this.currentName) { this.setCurrentName('0'); } this.$on('tab-nav-update', this.calcPaneInstances.bind(null, true)); }, mounted: function mounted() { this.calcPaneInstances(); }, updated: function updated() { this.calcPaneInstances(); } }); // CONCATENATED MODULE: ./packages/tabs/src/tabs.vue?vue&type=script&lang=js& /* harmony default export */ var src_tabsvue_type_script_lang_js_ = (tabsvue_type_script_lang_js_); // CONCATENATED MODULE: ./packages/tabs/src/tabs.vue var tabs_render, tabs_staticRenderFns /* normalize component */ var tabs_component = Object(componentNormalizer["a" /* default */])( src_tabsvue_type_script_lang_js_, tabs_render, tabs_staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var tabs_api; } tabs_component.options.__file = "packages/tabs/src/tabs.vue" /* harmony default export */ var tabs = (tabs_component.exports); // CONCATENATED MODULE: ./packages/tabs/index.js /* istanbul ignore next */ tabs.install = function (Vue) { Vue.component(tabs.name, tabs); }; /* harmony default export */ var packages_tabs = __webpack_exports__["default"] = (tabs); /***/ }) /******/ }); /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.removeResizeListener = exports.addResizeListener = undefined; var _resizeObserverPolyfill = __webpack_require__(85); var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var isServer = typeof window === 'undefined'; /* istanbul ignore next */ var resizeHandler = function resizeHandler(entries) { for (var _iterator = entries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var entry = _ref; var listeners = entry.target.__resizeListeners__ || []; if (listeners.length) { listeners.forEach(function (fn) { fn(); }); } } }; /* istanbul ignore next */ var addResizeListener = exports.addResizeListener = function addResizeListener(element, fn) { if (isServer) return; if (!element.__resizeListeners__) { element.__resizeListeners__ = []; element.__ro__ = new _resizeObserverPolyfill2.default(resizeHandler); element.__ro__.observe(element); } element.__resizeListeners__.push(fn); }; /* istanbul ignore next */ var removeResizeListener = exports.removeResizeListener = function removeResizeListener(element, fn) { if (!element || !element.__resizeListeners__) return; element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1); if (!element.__resizeListeners__.length) { element.__ro__.disconnect(); } }; /***/ }), /* 85 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* WEBPACK VAR INJECTION */(function(global) {/** * A collection of shims that provide minimal functionality of the ES6 collections. * * These implementations are not meant to be used outside of the ResizeObserver * modules as they cover only a limited range of use cases. */ /* eslint-disable require-jsdoc, valid-jsdoc */ var MapShim = (function () { if (typeof Map !== 'undefined') { return Map; } /** * Returns index in provided array that matches the specified key. * * @param {Array<Array>} arr * @param {*} key * @returns {number} */ function getIndex(arr, key) { var result = -1; arr.some(function (entry, index) { if (entry[0] === key) { result = index; return true; } return false; }); return result; } return /** @class */ (function () { function class_1() { this.__entries__ = []; } Object.defineProperty(class_1.prototype, "size", { /** * @returns {boolean} */ get: function () { return this.__entries__.length; }, enumerable: true, configurable: true }); /** * @param {*} key * @returns {*} */ class_1.prototype.get = function (key) { var index = getIndex(this.__entries__, key); var entry = this.__entries__[index]; return entry && entry[1]; }; /** * @param {*} key * @param {*} value * @returns {void} */ class_1.prototype.set = function (key, value) { var index = getIndex(this.__entries__, key); if (~index) { this.__entries__[index][1] = value; } else { this.__entries__.push([key, value]); } }; /** * @param {*} key * @returns {void} */ class_1.prototype.delete = function (key) { var entries = this.__entries__; var index = getIndex(entries, key); if (~index) { entries.splice(index, 1); } }; /** * @param {*} key * @returns {void} */ class_1.prototype.has = function (key) { return !!~getIndex(this.__entries__, key); }; /** * @returns {void} */ class_1.prototype.clear = function () { this.__entries__.splice(0); }; /** * @param {Function} callback * @param {*} [ctx=null] * @returns {void} */ class_1.prototype.forEach = function (callback, ctx) { if (ctx === void 0) { ctx = null; } for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) { var entry = _a[_i]; callback.call(ctx, entry[1], entry[0]); } }; return class_1; }()); })(); /** * Detects whether window and document objects are available in current environment. */ var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment. var global$1 = (function () { if (typeof global !== 'undefined' && global.Math === Math) { return global; } if (typeof self !== 'undefined' && self.Math === Math) { return self; } if (typeof window !== 'undefined' && window.Math === Math) { return window; } // eslint-disable-next-line no-new-func return Function('return this')(); })(); /** * A shim for the requestAnimationFrame which falls back to the setTimeout if * first one is not supported. * * @returns {number} Requests' identifier. */ var requestAnimationFrame$1 = (function () { if (typeof requestAnimationFrame === 'function') { // It's required to use a bounded function because IE sometimes throws // an "Invalid calling object" error if rAF is invoked without the global // object on the left hand side. return requestAnimationFrame.bind(global$1); } return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); }; })(); // Defines minimum timeout before adding a trailing call. var trailingTimeout = 2; /** * Creates a wrapper function which ensures that provided callback will be * invoked only once during the specified delay period. * * @param {Function} callback - Function to be invoked after the delay period. * @param {number} delay - Delay after which to invoke callback. * @returns {Function} */ function throttle (callback, delay) { var leadingCall = false, trailingCall = false, lastCallTime = 0; /** * Invokes the original callback function and schedules new invocation if * the "proxy" was called during current request. * * @returns {void} */ function resolvePending() { if (leadingCall) { leadingCall = false; callback(); } if (trailingCall) { proxy(); } } /** * Callback invoked after the specified delay. It will further postpone * invocation of the original function delegating it to the * requestAnimationFrame. * * @returns {void} */ function timeoutCallback() { requestAnimationFrame$1(resolvePending); } /** * Schedules invocation of the original function. * * @returns {void} */ function proxy() { var timeStamp = Date.now(); if (leadingCall) { // Reject immediately following calls. if (timeStamp - lastCallTime < trailingTimeout) { return; } // Schedule new call to be in invoked when the pending one is resolved. // This is important for "transitions" which never actually start // immediately so there is a chance that we might miss one if change // happens amids the pending invocation. trailingCall = true; } else { leadingCall = true; trailingCall = false; setTimeout(timeoutCallback, delay); } lastCallTime = timeStamp; } return proxy; } // Minimum delay before invoking the update of observers. var REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that // might affect dimensions of observed elements. var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available. var mutationObserverSupported = typeof MutationObserver !== 'undefined'; /** * Singleton controller class which handles updates of ResizeObserver instances. */ var ResizeObserverController = /** @class */ (function () { /** * Creates a new instance of ResizeObserverController. * * @private */ function ResizeObserverController() { /** * Indicates whether DOM listeners have been added. * * @private {boolean} */ this.connected_ = false; /** * Tells that controller has subscribed for Mutation Events. * * @private {boolean} */ this.mutationEventsAdded_ = false; /** * Keeps reference to the instance of MutationObserver. * * @private {MutationObserver} */ this.mutationsObserver_ = null; /** * A list of connected observers. * * @private {Array<ResizeObserverSPI>} */ this.observers_ = []; this.onTransitionEnd_ = this.onTransitionEnd_.bind(this); this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY); } /** * Adds observer to observers list. * * @param {ResizeObserverSPI} observer - Observer to be added. * @returns {void} */ ResizeObserverController.prototype.addObserver = function (observer) { if (!~this.observers_.indexOf(observer)) { this.observers_.push(observer); } // Add listeners if they haven't been added yet. if (!this.connected_) { this.connect_(); } }; /** * Removes observer from observers list. * * @param {ResizeObserverSPI} observer - Observer to be removed. * @returns {void} */ ResizeObserverController.prototype.removeObserver = function (observer) { var observers = this.observers_; var index = observers.indexOf(observer); // Remove observer if it's present in registry. if (~index) { observers.splice(index, 1); } // Remove listeners if controller has no connected observers. if (!observers.length && this.connected_) { this.disconnect_(); } }; /** * Invokes the update of observers. It will continue running updates insofar * it detects changes. * * @returns {void} */ ResizeObserverController.prototype.refresh = function () { var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might // be future ones caused by CSS transitions. if (changesDetected) { this.refresh(); } }; /** * Updates every observer from observers list and notifies them of queued * entries. * * @private * @returns {boolean} Returns "true" if any observer has detected changes in * dimensions of it's elements. */ ResizeObserverController.prototype.updateObservers_ = function () { // Collect observers that have active observations. var activeObservers = this.observers_.filter(function (observer) { return observer.gatherActive(), observer.hasActive(); }); // Deliver notifications in a separate cycle in order to avoid any // collisions between observers, e.g. when multiple instances of // ResizeObserver are tracking the same element and the callback of one // of them changes content dimensions of the observed target. Sometimes // this may result in notifications being blocked for the rest of observers. activeObservers.forEach(function (observer) { return observer.broadcastActive(); }); return activeObservers.length > 0; }; /** * Initializes DOM listeners. * * @private * @returns {void} */ ResizeObserverController.prototype.connect_ = function () { // Do nothing if running in a non-browser environment or if listeners // have been already added. if (!isBrowser || this.connected_) { return; } // Subscription to the "Transitionend" event is used as a workaround for // delayed transitions. This way it's possible to capture at least the // final state of an element. document.addEventListener('transitionend', this.onTransitionEnd_); window.addEventListener('resize', this.refresh); if (mutationObserverSupported) { this.mutationsObserver_ = new MutationObserver(this.refresh); this.mutationsObserver_.observe(document, { attributes: true, childList: true, characterData: true, subtree: true }); } else { document.addEventListener('DOMSubtreeModified', this.refresh); this.mutationEventsAdded_ = true; } this.connected_ = true; }; /** * Removes DOM listeners. * * @private * @returns {void} */ ResizeObserverController.prototype.disconnect_ = function () { // Do nothing if running in a non-browser environment or if listeners // have been already removed. if (!isBrowser || !this.connected_) { return; } document.removeEventListener('transitionend', this.onTransitionEnd_); window.removeEventListener('resize', this.refresh); if (this.mutationsObserver_) { this.mutationsObserver_.disconnect(); } if (this.mutationEventsAdded_) { document.removeEventListener('DOMSubtreeModified', this.refresh); } this.mutationsObserver_ = null; this.mutationEventsAdded_ = false; this.connected_ = false; }; /** * "Transitionend" event handler. * * @private * @param {TransitionEvent} event * @returns {void} */ ResizeObserverController.prototype.onTransitionEnd_ = function (_a) { var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element. var isReflowProperty = transitionKeys.some(function (key) { return !!~propertyName.indexOf(key); }); if (isReflowProperty) { this.refresh(); } }; /** * Returns instance of the ResizeObserverController. * * @returns {ResizeObserverController} */ ResizeObserverController.getInstance = function () { if (!this.instance_) { this.instance_ = new ResizeObserverController(); } return this.instance_; }; /** * Holds reference to the controller's instance. * * @private {ResizeObserverController} */ ResizeObserverController.instance_ = null; return ResizeObserverController; }()); /** * Defines non-writable/enumerable properties of the provided target object. * * @param {Object} target - Object for which to define properties. * @param {Object} props - Properties to be defined. * @returns {Object} Target object. */ var defineConfigurable = (function (target, props) { for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) { var key = _a[_i]; Object.defineProperty(target, key, { value: props[key], enumerable: false, writable: false, configurable: true }); } return target; }); /** * Returns the global object associated with provided element. * * @param {Object} target * @returns {Object} */ var getWindowOf = (function (target) { // Assume that the element is an instance of Node, which means that it // has the "ownerDocument" property from which we can retrieve a // corresponding global object. var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from // provided element. return ownerGlobal || global$1; }); // Placeholder of an empty content rectangle. var emptyRect = createRectInit(0, 0, 0, 0); /** * Converts provided string to a number. * * @param {number|string} value * @returns {number} */ function toFloat(value) { return parseFloat(value) || 0; } /** * Extracts borders size from provided styles. * * @param {CSSStyleDeclaration} styles * @param {...string} positions - Borders positions (top, right, ...) * @returns {number} */ function getBordersSize(styles) { var positions = []; for (var _i = 1; _i < arguments.length; _i++) { positions[_i - 1] = arguments[_i]; } return positions.reduce(function (size, position) { var value = styles['border-' + position + '-width']; return size + toFloat(value); }, 0); } /** * Extracts paddings sizes from provided styles. * * @param {CSSStyleDeclaration} styles * @returns {Object} Paddings box. */ function getPaddings(styles) { var positions = ['top', 'right', 'bottom', 'left']; var paddings = {}; for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) { var position = positions_1[_i]; var value = styles['padding-' + position]; paddings[position] = toFloat(value); } return paddings; } /** * Calculates content rectangle of provided SVG element. * * @param {SVGGraphicsElement} target - Element content rectangle of which needs * to be calculated. * @returns {DOMRectInit} */ function getSVGContentRect(target) { var bbox = target.getBBox(); return createRectInit(0, 0, bbox.width, bbox.height); } /** * Calculates content rectangle of provided HTMLElement. * * @param {HTMLElement} target - Element for which to calculate the content rectangle. * @returns {DOMRectInit} */ function getHTMLElementContentRect(target) { // Client width & height properties can't be // used exclusively as they provide rounded values. var clientWidth = target.clientWidth, clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and // detached elements. Though elements with width & height properties less // than 0.5 will be discarded as well. // // Without it we would need to implement separate methods for each of // those cases and it's not possible to perform a precise and performance // effective test for hidden elements. E.g. even jQuery's ':visible' filter // gives wrong results for elements with width & height less than 0.5. if (!clientWidth && !clientHeight) { return emptyRect; } var styles = getWindowOf(target).getComputedStyle(target); var paddings = getPaddings(styles); var horizPad = paddings.left + paddings.right; var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the // only dimensions available to JS that contain non-rounded values. It could // be possible to utilize the getBoundingClientRect if only it's data wasn't // affected by CSS transformations let alone paddings, borders and scroll bars. var width = toFloat(styles.width), height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box // model is applied (except for IE). if (styles.boxSizing === 'border-box') { // Following conditions are required to handle Internet Explorer which // doesn't include paddings and borders to computed CSS dimensions. // // We can say that if CSS dimensions + paddings are equal to the "client" // properties then it's either IE, and thus we don't need to subtract // anything, or an element merely doesn't have paddings/borders styles. if (Math.round(width + horizPad) !== clientWidth) { width -= getBordersSize(styles, 'left', 'right') + horizPad; } if (Math.round(height + vertPad) !== clientHeight) { height -= getBordersSize(styles, 'top', 'bottom') + vertPad; } } // Following steps can't be applied to the document's root element as its // client[Width/Height] properties represent viewport area of the window. // Besides, it's as well not necessary as the <html> itself neither has // rendered scroll bars nor it can be clipped. if (!isDocumentElement(target)) { // In some browsers (only in Firefox, actually) CSS width & height // include scroll bars size which can be removed at this step as scroll // bars are the only difference between rounded dimensions + paddings // and "client" properties, though that is not always true in Chrome. var vertScrollbar = Math.round(width + horizPad) - clientWidth; var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of "client" properties. // E.g. for an element with content width of 314.2px it sometimes gives // the client width of 315px and for the width of 314.7px it may give // 314px. And it doesn't happen all the time. So just ignore this delta // as a non-relevant. if (Math.abs(vertScrollbar) !== 1) { width -= vertScrollbar; } if (Math.abs(horizScrollbar) !== 1) { height -= horizScrollbar; } } return createRectInit(paddings.left, paddings.top, width, height); } /** * Checks whether provided element is an instance of the SVGGraphicsElement. * * @param {Element} target - Element to be checked. * @returns {boolean} */ var isSVGGraphicsElement = (function () { // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement // interface. if (typeof SVGGraphicsElement !== 'undefined') { return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; }; } // If it's so, then check that element is at least an instance of the // SVGElement and that it has the "getBBox" method. // eslint-disable-next-line no-extra-parens return function (target) { return (target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function'); }; })(); /** * Checks whether provided element is a document element (<html>). * * @param {Element} target - Element to be checked. * @returns {boolean} */ function isDocumentElement(target) { return target === getWindowOf(target).document.documentElement; } /** * Calculates an appropriate content rectangle for provided html or svg element. * * @param {Element} target - Element content rectangle of which needs to be calculated. * @returns {DOMRectInit} */ function getContentRect(target) { if (!isBrowser) { return emptyRect; } if (isSVGGraphicsElement(target)) { return getSVGContentRect(target); } return getHTMLElementContentRect(target); } /** * Creates rectangle with an interface of the DOMRectReadOnly. * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly * * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions. * @returns {DOMRectReadOnly} */ function createReadOnlyRect(_a) { var x = _a.x, y = _a.y, width = _a.width, height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle. var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object; var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable. defineConfigurable(rect, { x: x, y: y, width: width, height: height, top: y, right: x + width, bottom: height + y, left: x }); return rect; } /** * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates. * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit * * @param {number} x - X coordinate. * @param {number} y - Y coordinate. * @param {number} width - Rectangle's width. * @param {number} height - Rectangle's height. * @returns {DOMRectInit} */ function createRectInit(x, y, width, height) { return { x: x, y: y, width: width, height: height }; } /** * Class that is responsible for computations of the content rectangle of * provided DOM element and for keeping track of it's changes. */ var ResizeObservation = /** @class */ (function () { /** * Creates an instance of ResizeObservation. * * @param {Element} target - Element to be observed. */ function ResizeObservation(target) { /** * Broadcasted width of content rectangle. * * @type {number} */ this.broadcastWidth = 0; /** * Broadcasted height of content rectangle. * * @type {number} */ this.broadcastHeight = 0; /** * Reference to the last observed content rectangle. * * @private {DOMRectInit} */ this.contentRect_ = createRectInit(0, 0, 0, 0); this.target = target; } /** * Updates content rectangle and tells whether it's width or height properties * have changed since the last broadcast. * * @returns {boolean} */ ResizeObservation.prototype.isActive = function () { var rect = getContentRect(this.target); this.contentRect_ = rect; return (rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight); }; /** * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data * from the corresponding properties of the last observed content rectangle. * * @returns {DOMRectInit} Last observed content rectangle. */ ResizeObservation.prototype.broadcastRect = function () { var rect = this.contentRect_; this.broadcastWidth = rect.width; this.broadcastHeight = rect.height; return rect; }; return ResizeObservation; }()); var ResizeObserverEntry = /** @class */ (function () { /** * Creates an instance of ResizeObserverEntry. * * @param {Element} target - Element that is being observed. * @param {DOMRectInit} rectInit - Data of the element's content rectangle. */ function ResizeObserverEntry(target, rectInit) { var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable // and are also not enumerable in the native implementation. // // Property accessors are not being used as they'd require to define a // private WeakMap storage which may cause memory leaks in browsers that // don't support this type of collections. defineConfigurable(this, { target: target, contentRect: contentRect }); } return ResizeObserverEntry; }()); var ResizeObserverSPI = /** @class */ (function () { /** * Creates a new instance of ResizeObserver. * * @param {ResizeObserverCallback} callback - Callback function that is invoked * when one of the observed elements changes it's content dimensions. * @param {ResizeObserverController} controller - Controller instance which * is responsible for the updates of observer. * @param {ResizeObserver} callbackCtx - Reference to the public * ResizeObserver instance which will be passed to callback function. */ function ResizeObserverSPI(callback, controller, callbackCtx) { /** * Collection of resize observations that have detected changes in dimensions * of elements. * * @private {Array<ResizeObservation>} */ this.activeObservations_ = []; /** * Registry of the ResizeObservation instances. * * @private {Map<Element, ResizeObservation>} */ this.observations_ = new MapShim(); if (typeof callback !== 'function') { throw new TypeError('The callback provided as parameter 1 is not a function.'); } this.callback_ = callback; this.controller_ = controller; this.callbackCtx_ = callbackCtx; } /** * Starts observing provided element. * * @param {Element} target - Element to be observed. * @returns {void} */ ResizeObserverSPI.prototype.observe = function (target) { if (!arguments.length) { throw new TypeError('1 argument required, but only 0 present.'); } // Do nothing if current environment doesn't have the Element interface. if (typeof Element === 'undefined' || !(Element instanceof Object)) { return; } if (!(target instanceof getWindowOf(target).Element)) { throw new TypeError('parameter 1 is not of type "Element".'); } var observations = this.observations_; // Do nothing if element is already being observed. if (observations.has(target)) { return; } observations.set(target, new ResizeObservation(target)); this.controller_.addObserver(this); // Force the update of observations. this.controller_.refresh(); }; /** * Stops observing provided element. * * @param {Element} target - Element to stop observing. * @returns {void} */ ResizeObserverSPI.prototype.unobserve = function (target) { if (!arguments.length) { throw new TypeError('1 argument required, but only 0 present.'); } // Do nothing if current environment doesn't have the Element interface. if (typeof Element === 'undefined' || !(Element instanceof Object)) { return; } if (!(target instanceof getWindowOf(target).Element)) { throw new TypeError('parameter 1 is not of type "Element".'); } var observations = this.observations_; // Do nothing if element is not being observed. if (!observations.has(target)) { return; } observations.delete(target); if (!observations.size) { this.controller_.removeObserver(this); } }; /** * Stops observing all elements. * * @returns {void} */ ResizeObserverSPI.prototype.disconnect = function () { this.clearActive(); this.observations_.clear(); this.controller_.removeObserver(this); }; /** * Collects observation instances the associated element of which has changed * it's content rectangle. * * @returns {void} */ ResizeObserverSPI.prototype.gatherActive = function () { var _this = this; this.clearActive(); this.observations_.forEach(function (observation) { if (observation.isActive()) { _this.activeObservations_.push(observation); } }); }; /** * Invokes initial callback function with a list of ResizeObserverEntry * instances collected from active resize observations. * * @returns {void} */ ResizeObserverSPI.prototype.broadcastActive = function () { // Do nothing if observer doesn't have active observations. if (!this.hasActive()) { return; } var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation. var entries = this.activeObservations_.map(function (observation) { return new ResizeObserverEntry(observation.target, observation.broadcastRect()); }); this.callback_.call(ctx, entries, ctx); this.clearActive(); }; /** * Clears the collection of active observations. * * @returns {void} */ ResizeObserverSPI.prototype.clearActive = function () { this.activeObservations_.splice(0); }; /** * Tells whether observer has active observations. * * @returns {boolean} */ ResizeObserverSPI.prototype.hasActive = function () { return this.activeObservations_.length > 0; }; return ResizeObserverSPI; }()); // Registry of internal observers. If WeakMap is not available use current shim // for the Map collection as it has all required methods and because WeakMap // can't be fully polyfilled anyway. var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim(); /** * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation * exposing only those methods and properties that are defined in the spec. */ var ResizeObserver = /** @class */ (function () { /** * Creates a new instance of ResizeObserver. * * @param {ResizeObserverCallback} callback - Callback that is invoked when * dimensions of the observed elements change. */ function ResizeObserver(callback) { if (!(this instanceof ResizeObserver)) { throw new TypeError('Cannot call a class as a function.'); } if (!arguments.length) { throw new TypeError('1 argument required, but only 0 present.'); } var controller = ResizeObserverController.getInstance(); var observer = new ResizeObserverSPI(callback, controller, this); observers.set(this, observer); } return ResizeObserver; }()); // Expose public methods of ResizeObserver. [ 'observe', 'unobserve', 'disconnect' ].forEach(function (method) { ResizeObserver.prototype[method] = function () { var _a; return (_a = observers.get(this))[method].apply(_a, arguments); }; }); var index = (function () { // Export existing implementation if available. if (typeof global$1.ResizeObserver !== 'undefined') { return global$1.ResizeObserver; } return ResizeObserver; })(); /* harmony default export */ __webpack_exports__["default"] = (index); /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(18))) /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) || (typeof self !== "undefined" && self) || window; var apply = Function.prototype.apply; // DOM APIs, for completeness exports.setTimeout = function() { return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout); }; exports.setInterval = function() { return new Timeout(apply.call(setInterval, scope, arguments), clearInterval); }; exports.clearTimeout = exports.clearInterval = function(timeout) { if (timeout) { timeout.close(); } }; function Timeout(id, clearFn) { this._id = id; this._clearFn = clearFn; } Timeout.prototype.unref = Timeout.prototype.ref = function() {}; Timeout.prototype.close = function() { this._clearFn.call(scope, this._id); }; // Does not start the time, just sets up the members needed. exports.enroll = function(item, msecs) { clearTimeout(item._idleTimeoutId); item._idleTimeout = msecs; }; exports.unenroll = function(item) { clearTimeout(item._idleTimeoutId); item._idleTimeout = -1; }; exports._unrefActive = exports.active = function(item) { clearTimeout(item._idleTimeoutId); var msecs = item._idleTimeout; if (msecs >= 0) { item._idleTimeoutId = setTimeout(function onTimeout() { if (item._onTimeout) item._onTimeout(); }, msecs); } }; // setimmediate attaches itself to the global object __webpack_require__(87); // On some exotic environments, it's not clear which object `setimmediate` was // able to install onto. Search each possibility in the same order as the // `setimmediate` library. exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) || (typeof global !== "undefined" && global.setImmediate) || (this && this.setImmediate); exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) || (typeof global !== "undefined" && global.clearImmediate) || (this && this.clearImmediate); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(18))) /***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { "use strict"; if (global.setImmediate) { return; } var nextHandle = 1; // Spec says greater than zero var tasksByHandle = {}; var currentlyRunningATask = false; var doc = global.document; var registerImmediate; function setImmediate(callback) { // Callback can either be a function or a string if (typeof callback !== "function") { callback = new Function("" + callback); } // Copy function arguments var args = new Array(arguments.length - 1); for (var i = 0; i < args.length; i++) { args[i] = arguments[i + 1]; } // Store and register the task var task = { callback: callback, args: args }; tasksByHandle[nextHandle] = task; registerImmediate(nextHandle); return nextHandle++; } function clearImmediate(handle) { delete tasksByHandle[handle]; } function run(task) { var callback = task.callback; var args = task.args; switch (args.length) { case 0: callback(); break; case 1: callback(args[0]); break; case 2: callback(args[0], args[1]); break; case 3: callback(args[0], args[1], args[2]); break; default: callback.apply(undefined, args); break; } } function runIfPresent(handle) { // From the spec: "Wait until any invocations of this algorithm started before this one have completed." // So if we're currently running a task, we'll need to delay this invocation. if (currentlyRunningATask) { // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a // "too much recursion" error. setTimeout(runIfPresent, 0, handle); } else { var task = tasksByHandle[handle]; if (task) { currentlyRunningATask = true; try { run(task); } finally { clearImmediate(handle); currentlyRunningATask = false; } } } } function installNextTickImplementation() { registerImmediate = function(handle) { process.nextTick(function () { runIfPresent(handle); }); }; } function canUsePostMessage() { // The test against `importScripts` prevents this implementation from being installed inside a web worker, // where `global.postMessage` means something completely different and can't be used for this purpose. if (global.postMessage && !global.importScripts) { var postMessageIsAsynchronous = true; var oldOnMessage = global.onmessage; global.onmessage = function() { postMessageIsAsynchronous = false; }; global.postMessage("", "*"); global.onmessage = oldOnMessage; return postMessageIsAsynchronous; } } function installPostMessageImplementation() { // Installs an event handler on `global` for the `message` event: see // * https://developer.mozilla.org/en/DOM/window.postMessage // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages var messagePrefix = "setImmediate$" + Math.random() + "$"; var onGlobalMessage = function(event) { if (event.source === global && typeof event.data === "string" && event.data.indexOf(messagePrefix) === 0) { runIfPresent(+event.data.slice(messagePrefix.length)); } }; if (global.addEventListener) { global.addEventListener("message", onGlobalMessage, false); } else { global.attachEvent("onmessage", onGlobalMessage); } registerImmediate = function(handle) { global.postMessage(messagePrefix + handle, "*"); }; } function installMessageChannelImplementation() { var channel = new MessageChannel(); channel.port1.onmessage = function(event) { var handle = event.data; runIfPresent(handle); }; registerImmediate = function(handle) { channel.port2.postMessage(handle); }; } function installReadyStateChangeImplementation() { var html = doc.documentElement; registerImmediate = function(handle) { // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called. var script = doc.createElement("script"); script.onreadystatechange = function () { runIfPresent(handle); script.onreadystatechange = null; html.removeChild(script); script = null; }; html.appendChild(script); }; } function installSetTimeoutImplementation() { registerImmediate = function(handle) { setTimeout(runIfPresent, 0, handle); }; } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live. var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global); attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments. if ({}.toString.call(global.process) === "[object process]") { // For Node.js before 0.9 installNextTickImplementation(); } else if (canUsePostMessage()) { // For non-IE10 modern browsers installPostMessageImplementation(); } else if (global.MessageChannel) { // For web workers, where supported installMessageChannelImplementation(); } else if (doc && "onreadystatechange" in doc.createElement("script")) { // For IE 6–8 installReadyStateChangeImplementation(); } else { // For older browsers installSetTimeoutImplementation(); } attachTo.setImmediate = setImmediate; attachTo.clearImmediate = clearImmediate; }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self)); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(18), __webpack_require__(42))) /***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.isDefined = exports.isUndefined = exports.isFunction = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.isString = isString; exports.isObject = isObject; exports.isHtmlElement = isHtmlElement; var _vue = __webpack_require__(6); var _vue2 = _interopRequireDefault(_vue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function isString(obj) { return Object.prototype.toString.call(obj) === '[object String]'; } function isObject(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; } function isHtmlElement(node) { return node && node.nodeType === Node.ELEMENT_NODE; } /** * - Inspired: * https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js */ var isFunction = function isFunction(functionToCheck) { var getType = {}; return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; }; if (typeof /./ !== 'function' && (typeof Int8Array === 'undefined' ? 'undefined' : _typeof(Int8Array)) !== 'object' && (_vue2.default.prototype.$isServer || typeof document.childNodes !== 'function')) { exports.isFunction = isFunction = function isFunction(obj) { return typeof obj === 'function' || false; }; } exports.isFunction = isFunction; var isUndefined = exports.isUndefined = function isUndefined(val) { return val === void 0; }; var isDefined = exports.isDefined = function isDefined(val) { return val !== undefined && val !== null; }; /***/ }), /* 89 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(90); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("221b850b", content, true, {}); /***/ }), /* 90 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-card{border-radius:4px;border:1px solid #EBEEF5;background-color:#FFF;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #EBEEF5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}", ""]); // exports /***/ }), /* 91 */ /***/ (function(module, exports) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 103); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 103: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/card/src/main.vue?vue&type=template&id=59a4a40f& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "el-card", class: _vm.shadow ? "is-" + _vm.shadow + "-shadow" : "is-always-shadow" }, [ _vm.$slots.header || _vm.header ? _c( "div", { staticClass: "el-card__header" }, [_vm._t("header", [_vm._v(_vm._s(_vm.header))])], 2 ) : _vm._e(), _c( "div", { staticClass: "el-card__body", style: _vm.bodyStyle }, [_vm._t("default")], 2 ) ] ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/card/src/main.vue?vue&type=template&id=59a4a40f& // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/card/src/main.vue?vue&type=script&lang=js& // // // // // // // // // // // /* harmony default export */ var mainvue_type_script_lang_js_ = ({ name: 'ElCard', props: { header: {}, bodyStyle: {}, shadow: { type: String } } }); // CONCATENATED MODULE: ./packages/card/src/main.vue?vue&type=script&lang=js& /* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/card/src/main.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_mainvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/card/src/main.vue" /* harmony default export */ var main = (component.exports); // CONCATENATED MODULE: ./packages/card/index.js /* istanbul ignore next */ main.install = function (Vue) { Vue.component(main.name, main); }; /* harmony default export */ var card = __webpack_exports__["default"] = (main); /***/ }) /******/ }); /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(93); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("066f1c62", content, true, {}); /***/ }), /* 93 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, "", ""]); // exports /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 67); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 3: /***/ (function(module, exports) { module.exports = __webpack_require__(14); /***/ }), /***/ 4: /***/ (function(module, exports) { module.exports = __webpack_require__(19); /***/ }), /***/ 48: /***/ (function(module, exports) { module.exports = __webpack_require__(95); /***/ }), /***/ 67: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item.vue?vue&type=template&id=b6f3db6c& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: "el-form-item", class: [ { "el-form-item--feedback": _vm.elForm && _vm.elForm.statusIcon, "is-error": _vm.validateState === "error", "is-validating": _vm.validateState === "validating", "is-success": _vm.validateState === "success", "is-required": _vm.isRequired || _vm.required, "is-no-asterisk": _vm.elForm && _vm.elForm.hideRequiredAsterisk }, _vm.sizeClass ? "el-form-item--" + _vm.sizeClass : "" ] }, [ _c( "label-wrap", { attrs: { "is-auto-width": _vm.labelStyle && _vm.labelStyle.width === "auto", "update-all": _vm.form.labelWidth === "auto" } }, [ _vm.label || _vm.$slots.label ? _c( "label", { staticClass: "el-form-item__label", style: _vm.labelStyle, attrs: { for: _vm.labelFor } }, [ _vm._t("label", [ _vm._v(_vm._s(_vm.label + _vm.form.labelSuffix)) ]) ], 2 ) : _vm._e() ] ), _c( "div", { staticClass: "el-form-item__content", style: _vm.contentStyle }, [ _vm._t("default"), _c( "transition", { attrs: { name: "el-zoom-in-top" } }, [ _vm.validateState === "error" && _vm.showMessage && _vm.form.showMessage ? _vm._t( "error", [ _c( "div", { staticClass: "el-form-item__error", class: { "el-form-item__error--inline": typeof _vm.inlineMessage === "boolean" ? _vm.inlineMessage : (_vm.elForm && _vm.elForm.inlineMessage) || false } }, [ _vm._v( "\n " + _vm._s(_vm.validateMessage) + "\n " ) ] ) ], { error: _vm.validateMessage } ) : _vm._e() ], 2 ) ], 2 ) ], 1 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/form/src/form-item.vue?vue&type=template&id=b6f3db6c& // EXTERNAL MODULE: external "async-validator" var external_async_validator_ = __webpack_require__(48); var external_async_validator_default = /*#__PURE__*/__webpack_require__.n(external_async_validator_); // EXTERNAL MODULE: external "element-ui/lib/mixins/emitter" var emitter_ = __webpack_require__(4); var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_); // EXTERNAL MODULE: external "element-ui/lib/utils/merge" var merge_ = __webpack_require__(9); var merge_default = /*#__PURE__*/__webpack_require__.n(merge_); // EXTERNAL MODULE: external "element-ui/lib/utils/util" var util_ = __webpack_require__(3); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/label-wrap.vue?vue&type=script&lang=js& /* harmony default export */ var label_wrapvue_type_script_lang_js_ = ({ props: { isAutoWidth: Boolean, updateAll: Boolean }, inject: ['elForm', 'elFormItem'], render: function render() { var h = arguments[0]; var slots = this.$slots.default; if (!slots) return null; if (this.isAutoWidth) { var autoLabelWidth = this.elForm.autoLabelWidth; var style = {}; if (autoLabelWidth && autoLabelWidth !== 'auto') { var marginLeft = parseInt(autoLabelWidth, 10) - this.computedWidth; if (marginLeft) { style.marginLeft = marginLeft + 'px'; } } return h( 'div', { 'class': 'el-form-item__label-wrap', style: style }, [slots] ); } else { return slots[0]; } }, methods: { getLabelWidth: function getLabelWidth() { if (this.$el && this.$el.firstElementChild) { var computedWidth = window.getComputedStyle(this.$el.firstElementChild).width; return Math.ceil(parseFloat(computedWidth)); } else { return 0; } }, updateLabelWidth: function updateLabelWidth() { var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'update'; if (this.$slots.default && this.isAutoWidth && this.$el.firstElementChild) { if (action === 'update') { this.computedWidth = this.getLabelWidth(); } else if (action === 'remove') { this.elForm.deregisterLabelWidth(this.computedWidth); } } } }, watch: { computedWidth: function computedWidth(val, oldVal) { if (this.updateAll) { this.elForm.registerLabelWidth(val, oldVal); this.elFormItem.updateComputedLabelWidth(val); } } }, data: function data() { return { computedWidth: 0 }; }, mounted: function mounted() { this.updateLabelWidth('update'); }, updated: function updated() { this.updateLabelWidth('update'); }, beforeDestroy: function beforeDestroy() { this.updateLabelWidth('remove'); } }); // CONCATENATED MODULE: ./packages/form/src/label-wrap.vue?vue&type=script&lang=js& /* harmony default export */ var src_label_wrapvue_type_script_lang_js_ = (label_wrapvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/form/src/label-wrap.vue var label_wrap_render, label_wrap_staticRenderFns /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_label_wrapvue_type_script_lang_js_, label_wrap_render, label_wrap_staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/form/src/label-wrap.vue" /* harmony default export */ var label_wrap = (component.exports); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var form_itemvue_type_script_lang_js_ = ({ name: 'ElFormItem', componentName: 'ElFormItem', mixins: [emitter_default.a], provide: function provide() { return { elFormItem: this }; }, inject: ['elForm'], props: { label: String, labelWidth: String, prop: String, required: { type: Boolean, default: undefined }, rules: [Object, Array], error: String, validateStatus: String, for: String, inlineMessage: { type: [String, Boolean], default: '' }, showMessage: { type: Boolean, default: true }, size: String }, components: { // use this component to calculate auto width LabelWrap: label_wrap }, watch: { error: { immediate: true, handler: function handler(value) { this.validateMessage = value; this.validateState = value ? 'error' : ''; } }, validateStatus: function validateStatus(value) { this.validateState = value; } }, computed: { labelFor: function labelFor() { return this.for || this.prop; }, labelStyle: function labelStyle() { var ret = {}; if (this.form.labelPosition === 'top') return ret; var labelWidth = this.labelWidth || this.form.labelWidth; if (labelWidth) { ret.width = labelWidth; } return ret; }, contentStyle: function contentStyle() { var ret = {}; var label = this.label; if (this.form.labelPosition === 'top' || this.form.inline) return ret; if (!label && !this.labelWidth && this.isNested) return ret; var labelWidth = this.labelWidth || this.form.labelWidth; if (labelWidth === 'auto') { if (this.labelWidth === 'auto') { ret.marginLeft = this.computedLabelWidth; } else if (this.form.labelWidth === 'auto') { ret.marginLeft = this.elForm.autoLabelWidth; } } else { ret.marginLeft = labelWidth; } return ret; }, form: function form() { var parent = this.$parent; var parentName = parent.$options.componentName; while (parentName !== 'ElForm') { if (parentName === 'ElFormItem') { this.isNested = true; } parent = parent.$parent; parentName = parent.$options.componentName; } return parent; }, fieldValue: function fieldValue() { var model = this.form.model; if (!model || !this.prop) { return; } var path = this.prop; if (path.indexOf(':') !== -1) { path = path.replace(/:/, '.'); } return Object(util_["getPropByPath"])(model, path, true).v; }, isRequired: function isRequired() { var rules = this.getRules(); var isRequired = false; if (rules && rules.length) { rules.every(function (rule) { if (rule.required) { isRequired = true; return false; } return true; }); } return isRequired; }, _formSize: function _formSize() { return this.elForm.size; }, elFormItemSize: function elFormItemSize() { return this.size || this._formSize; }, sizeClass: function sizeClass() { return this.elFormItemSize || (this.$ELEMENT || {}).size; } }, data: function data() { return { validateState: '', validateMessage: '', validateDisabled: false, validator: {}, isNested: false, computedLabelWidth: '' }; }, methods: { validate: function validate(trigger) { var _this = this; var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : util_["noop"]; this.validateDisabled = false; var rules = this.getFilteredRule(trigger); if ((!rules || rules.length === 0) && this.required === undefined) { callback(); return true; } this.validateState = 'validating'; var descriptor = {}; if (rules && rules.length > 0) { rules.forEach(function (rule) { delete rule.trigger; }); } descriptor[this.prop] = rules; var validator = new external_async_validator_default.a(descriptor); var model = {}; model[this.prop] = this.fieldValue; validator.validate(model, { firstFields: true }, function (errors, invalidFields) { _this.validateState = !errors ? 'success' : 'error'; _this.validateMessage = errors ? errors[0].message : ''; callback(_this.validateMessage, invalidFields); _this.elForm && _this.elForm.$emit('validate', _this.prop, !errors, _this.validateMessage || null); }); }, clearValidate: function clearValidate() { this.validateState = ''; this.validateMessage = ''; this.validateDisabled = false; }, resetField: function resetField() { var _this2 = this; 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 = Object(util_["getPropByPath"])(model, path, true); this.validateDisabled = true; if (Array.isArray(value)) { prop.o[prop.k] = [].concat(this.initialValue); } else { prop.o[prop.k] = this.initialValue; } // reset validateDisabled after onFieldChange triggered this.$nextTick(function () { _this2.validateDisabled = false; }); this.broadcast('ElTimeSelect', 'fieldReset', this.initialValue); }, getRules: function getRules() { var formRules = this.form.rules; var selfRules = this.rules; var requiredRule = this.required !== undefined ? { required: !!this.required } : []; var prop = Object(util_["getPropByPath"])(formRules, this.prop || ''); formRules = formRules ? prop.o[this.prop || ''] || prop.v : []; return [].concat(selfRules || formRules || []).concat(requiredRule); }, getFilteredRule: function getFilteredRule(trigger) { var rules = this.getRules(); return rules.filter(function (rule) { if (!rule.trigger || trigger === '') return true; if (Array.isArray(rule.trigger)) { return rule.trigger.indexOf(trigger) > -1; } else { return rule.trigger === trigger; } }).map(function (rule) { return merge_default()({}, rule); }); }, onFieldBlur: function onFieldBlur() { this.validate('blur'); }, onFieldChange: function onFieldChange() { if (this.validateDisabled) { this.validateDisabled = false; return; } this.validate('change'); }, updateComputedLabelWidth: function updateComputedLabelWidth(width) { this.computedLabelWidth = width ? width + 'px' : ''; }, addValidateEvents: function addValidateEvents() { var rules = this.getRules(); if (rules.length || this.required !== undefined) { this.$on('el.form.blur', this.onFieldBlur); this.$on('el.form.change', this.onFieldChange); } }, removeValidateEvents: function removeValidateEvents() { this.$off(); } }, mounted: function mounted() { if (this.prop) { this.dispatch('ElForm', 'el.form.addField', [this]); var initialValue = this.fieldValue; if (Array.isArray(initialValue)) { initialValue = [].concat(initialValue); } Object.defineProperty(this, 'initialValue', { value: initialValue }); this.addValidateEvents(); } }, beforeDestroy: function beforeDestroy() { this.dispatch('ElForm', 'el.form.removeField', [this]); } }); // CONCATENATED MODULE: ./packages/form/src/form-item.vue?vue&type=script&lang=js& /* harmony default export */ var src_form_itemvue_type_script_lang_js_ = (form_itemvue_type_script_lang_js_); // CONCATENATED MODULE: ./packages/form/src/form-item.vue /* normalize component */ var form_item_component = Object(componentNormalizer["a" /* default */])( src_form_itemvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var form_item_api; } form_item_component.options.__file = "packages/form/src/form-item.vue" /* harmony default export */ var form_item = (form_item_component.exports); // CONCATENATED MODULE: ./packages/form-item/index.js /* istanbul ignore next */ form_item.install = function (Vue) { Vue.component(form_item.name, form_item); }; /* harmony default export */ var packages_form_item = __webpack_exports__["default"] = (form_item); /***/ }), /***/ 9: /***/ (function(module, exports) { module.exports = __webpack_require__(27); /***/ }) /******/ }); /***/ }), /* 95 */ /***/ (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__(43); /* 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__(26); /* 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__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__validator___ = __webpack_require__(128); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__messages__ = __webpack_require__(148); /** * 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); /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(97), __esModule: true }; /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(98); module.exports = __webpack_require__(15).Object.assign; /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.1 Object.assign(target, source) var $export = __webpack_require__(29); $export($export.S + $export.F, 'Object', { assign: __webpack_require__(101) }); /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(100); 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); }; }; /***/ }), /* 100 */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; /***/ }), /* 101 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 19.1.2.1 Object.assign(target, source, ...) var DESCRIPTORS = __webpack_require__(8); var getKeys = __webpack_require__(22); var gOPS = __webpack_require__(36); var pIE = __webpack_require__(25); var toObject = __webpack_require__(37); var IObject = __webpack_require__(47); var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) module.exports = !$assign || __webpack_require__(17)(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) { key = keys[j++]; if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; } } return T; } : $assign; /***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) { // false -> Array#indexOf // true -> Array#includes var toIObject = __webpack_require__(12); var toLength = __webpack_require__(103); var toAbsoluteIndex = __webpack_require__(104); 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; }; }; /***/ }), /* 103 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.15 ToLength var toInteger = __webpack_require__(32); var min = Math.min; module.exports = function (it) { return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; /***/ }), /* 104 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(32); 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); }; /***/ }), /* 105 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(106), __esModule: true }; /***/ }), /* 106 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(107); __webpack_require__(113); module.exports = __webpack_require__(40).f('iterator'); /***/ }), /* 107 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $at = __webpack_require__(108)(true); // 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(49)(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 }; }); /***/ }), /* 108 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(32); var defined = __webpack_require__(31); // 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; }; }; /***/ }), /* 109 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var create = __webpack_require__(51); var descriptor = __webpack_require__(21); var setToStringTag = __webpack_require__(39); var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() __webpack_require__(10)(IteratorPrototype, __webpack_require__(13)('iterator'), function () { return this; }); module.exports = function (Constructor, NAME, next) { Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); setToStringTag(Constructor, NAME + ' Iterator'); }; /***/ }), /* 110 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(11); var anObject = __webpack_require__(20); var getKeys = __webpack_require__(22); module.exports = __webpack_require__(8) ? 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; }; /***/ }), /* 111 */ /***/ (function(module, exports, __webpack_require__) { var document = __webpack_require__(7).document; module.exports = document && document.documentElement; /***/ }), /* 112 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var has = __webpack_require__(9); var toObject = __webpack_require__(37); var IE_PROTO = __webpack_require__(33)('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; }; /***/ }), /* 113 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(114); var global = __webpack_require__(7); var hide = __webpack_require__(10); var Iterators = __webpack_require__(38); var TO_STRING_TAG = __webpack_require__(13)('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; } /***/ }), /* 114 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var addToUnscopables = __webpack_require__(115); var step = __webpack_require__(116); var Iterators = __webpack_require__(38); var toIObject = __webpack_require__(12); // 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__(49)(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'); /***/ }), /* 115 */ /***/ (function(module, exports) { module.exports = function () { /* empty */ }; /***/ }), /* 116 */ /***/ (function(module, exports) { module.exports = function (done, value) { return { value: value, done: !!done }; }; /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(118), __esModule: true }; /***/ }), /* 118 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(119); __webpack_require__(125); __webpack_require__(126); __webpack_require__(127); module.exports = __webpack_require__(15).Symbol; /***/ }), /* 119 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // ECMAScript 6 symbols shim var global = __webpack_require__(7); var has = __webpack_require__(9); var DESCRIPTORS = __webpack_require__(8); var $export = __webpack_require__(29); var redefine = __webpack_require__(50); var META = __webpack_require__(120).KEY; var $fails = __webpack_require__(17); var shared = __webpack_require__(34); var setToStringTag = __webpack_require__(39); var uid = __webpack_require__(24); var wks = __webpack_require__(13); var wksExt = __webpack_require__(40); var wksDefine = __webpack_require__(41); var enumKeys = __webpack_require__(121); var isArray = __webpack_require__(122); var anObject = __webpack_require__(20); var isObject = __webpack_require__(16); var toObject = __webpack_require__(37); var toIObject = __webpack_require__(12); var toPrimitive = __webpack_require__(30); var createDesc = __webpack_require__(21); var _create = __webpack_require__(51); var gOPNExt = __webpack_require__(123); var $GOPD = __webpack_require__(124); var $GOPS = __webpack_require__(36); var $DP = __webpack_require__(11); var $keys = __webpack_require__(22); 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' && !!$GOPS.f; 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__(52).f = gOPNExt.f = $getOwnPropertyNames; __webpack_require__(25).f = $propertyIsEnumerable; $GOPS.f = $getOwnPropertySymbols; if (DESCRIPTORS && !__webpack_require__(23)) { 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 }); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives // https://bugs.chromium.org/p/v8/issues/detail?id=3443 var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); }); $export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { getOwnPropertySymbols: function getOwnPropertySymbols(it) { return $GOPS.f(toObject(it)); } }); // 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) { var args = [it]; var i = 1; var replacer, $replacer; while (arguments.length > i) args.push(arguments[i++]); $replacer = replacer = args[1]; if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined if (!isArray(replacer)) replacer = function (key, value) { if (typeof $replacer == 'function') 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__(10)($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); /***/ }), /* 120 */ /***/ (function(module, exports, __webpack_require__) { var META = __webpack_require__(24)('meta'); var isObject = __webpack_require__(16); var has = __webpack_require__(9); var setDesc = __webpack_require__(11).f; var id = 0; var isExtensible = Object.isExtensible || function () { return true; }; var FREEZE = !__webpack_require__(17)(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 }; /***/ }), /* 121 */ /***/ (function(module, exports, __webpack_require__) { // all enumerable object keys, includes symbols var getKeys = __webpack_require__(22); var gOPS = __webpack_require__(36); var pIE = __webpack_require__(25); 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; }; /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { // 7.2.2 IsArray(argument) var cof = __webpack_require__(48); module.exports = Array.isArray || function isArray(arg) { return cof(arg) == 'Array'; }; /***/ }), /* 123 */ /***/ (function(module, exports, __webpack_require__) { // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var toIObject = __webpack_require__(12); var gOPN = __webpack_require__(52).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)); }; /***/ }), /* 124 */ /***/ (function(module, exports, __webpack_require__) { var pIE = __webpack_require__(25); var createDesc = __webpack_require__(21); var toIObject = __webpack_require__(12); var toPrimitive = __webpack_require__(30); var has = __webpack_require__(9); var IE8_DOM_DEFINE = __webpack_require__(44); var gOPD = Object.getOwnPropertyDescriptor; exports.f = __webpack_require__(8) ? 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]); }; /***/ }), /* 125 */ /***/ (function(module, exports) { /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(41)('asyncIterator'); /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(41)('observable'); /***/ }), /* 128 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__string__ = __webpack_require__(129); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__method__ = __webpack_require__(135); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__number__ = __webpack_require__(136); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__boolean__ = __webpack_require__(137); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__regexp__ = __webpack_require__(138); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__integer__ = __webpack_require__(139); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__float__ = __webpack_require__(140); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__array__ = __webpack_require__(141); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__object__ = __webpack_require__(142); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__enum__ = __webpack_require__(143); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__pattern__ = __webpack_require__(144); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__date__ = __webpack_require__(145); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__required__ = __webpack_require__(146); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__type__ = __webpack_require__(147); /* 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 */] }); /***/ }), /* 129 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 130 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 131 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(26); /* 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__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__required__ = __webpack_require__(53); /* 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); /***/ }), /* 132 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(0); /** * 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'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane) var spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; 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 (arr) { val = value.length; } if (str) { // 处理码点大于U+010000的文字length属性不准确的bug,如"𠮷𠮷𠮷".lenght !== 3 val = value.replace(spRegexp, '_').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); /***/ }), /* 133 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(0); 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); /***/ }), /* 134 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(0); /** * 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 a RegExp instance is passed, reset `lastIndex` in case its `global` // flag is accidentally set to `true`, which in a validation scenario // is not necessary and the result might be misleading rule.pattern.lastIndex = 0; 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); /***/ }), /* 135 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 136 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 137 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__rule___ = __webpack_require__(3); /** * 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); /***/ }), /* 138 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 139 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 140 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 141 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 142 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 143 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); 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); /***/ }), /* 144 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); /** * 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); /***/ }), /* 145 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); 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)) { var dateObject = void 0; if (typeof value === 'number') { dateObject = new Date(value); } else { dateObject = value; } __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].type(rule, dateObject, source, errors, options); if (dateObject) { __WEBPACK_IMPORTED_MODULE_0__rule___["a" /* default */].range(rule, dateObject.getTime(), source, errors, options); } } } callback(errors); } /* harmony default export */ __webpack_exports__["a"] = (date); /***/ }), /* 146 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(26); /* 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__(3); 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); /***/ }), /* 147 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rule___ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(0); 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); /***/ }), /* 148 */ /***/ (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(); /***/ }), /* 149 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(150); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("4de7eb73", content, true, {}); /***/ }), /* 150 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item::after,.el-form-item__content::after{clear:both}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{margin-right:10px}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:\"\"}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:\"\"}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#F56C6C;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:'*';color:#F56C6C;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#F56C6C}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#F56C6C}.el-form-item--feedback .el-input__validateIcon{display:inline-block}", ""]); // exports /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 121); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 121: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form.vue?vue&type=template&id=a1b5ff34& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "form", { staticClass: "el-form", class: [ _vm.labelPosition ? "el-form--label-" + _vm.labelPosition : "", { "el-form--inline": _vm.inline } ] }, [_vm._t("default")], 2 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/form/src/form.vue?vue&type=template&id=a1b5ff34& // EXTERNAL MODULE: external "element-ui/lib/utils/merge" var merge_ = __webpack_require__(9); var merge_default = /*#__PURE__*/__webpack_require__.n(merge_); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form.vue?vue&type=script&lang=js& // // // // // // // // /* harmony default export */ var formvue_type_script_lang_js_ = ({ name: 'ElForm', componentName: 'ElForm', provide: function provide() { return { elForm: this }; }, props: { model: Object, rules: Object, labelPosition: String, labelWidth: String, labelSuffix: { type: String, default: '' }, inline: Boolean, inlineMessage: Boolean, statusIcon: Boolean, showMessage: { type: Boolean, default: true }, size: String, disabled: Boolean, validateOnRuleChange: { type: Boolean, default: true }, hideRequiredAsterisk: { type: Boolean, default: false } }, watch: { rules: function rules() { // remove then add event listeners on form-item after form rules change this.fields.forEach(function (field) { field.removeValidateEvents(); field.addValidateEvents(); }); if (this.validateOnRuleChange) { this.validate(function () {}); } } }, computed: { autoLabelWidth: function autoLabelWidth() { if (!this.potentialLabelWidthArr.length) return 0; var max = Math.max.apply(Math, this.potentialLabelWidthArr); return max ? max + 'px' : ''; } }, data: function data() { return { fields: [], potentialLabelWidthArr: [] // use this array to calculate auto width }; }, created: function created() { var _this = this; this.$on('el.form.addField', function (field) { if (field) { _this.fields.push(field); } }); /* istanbul ignore next */ this.$on('el.form.removeField', function (field) { if (field.prop) { _this.fields.splice(_this.fields.indexOf(field), 1); } }); }, methods: { resetFields: function resetFields() { if (!this.model) { console.warn('[Element Warn][Form]model is required for resetFields to work.'); return; } this.fields.forEach(function (field) { field.resetField(); }); }, clearValidate: function clearValidate() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var fields = props.length ? typeof props === 'string' ? this.fields.filter(function (field) { return props === field.prop; }) : this.fields.filter(function (field) { return props.indexOf(field.prop) > -1; }) : this.fields; fields.forEach(function (field) { field.clearValidate(); }); }, validate: function validate(callback) { var _this2 = this; if (!this.model) { console.warn('[Element Warn][Form]model is required for validate to work!'); return; } var promise = void 0; // if no callback, return promise if (typeof callback !== 'function' && window.Promise) { promise = new window.Promise(function (resolve, reject) { callback = function callback(valid) { valid ? resolve(valid) : reject(valid); }; }); } var valid = true; var count = 0; // 如果需要验证的fields为空,调用验证时立刻返回callback if (this.fields.length === 0 && callback) { callback(true); } var invalidFields = {}; this.fields.forEach(function (field) { field.validate('', function (message, field) { if (message) { valid = false; } invalidFields = merge_default()({}, invalidFields, field); if (typeof callback === 'function' && ++count === _this2.fields.length) { callback(valid, invalidFields); } }); }); if (promise) { return promise; } }, validateField: function validateField(props, cb) { props = [].concat(props); var fields = this.fields.filter(function (field) { return props.indexOf(field.prop) !== -1; }); if (!fields.length) { console.warn('[Element Warn]please pass correct props!'); return; } fields.forEach(function (field) { field.validate('', cb); }); }, getLabelWidthIndex: function getLabelWidthIndex(width) { var index = this.potentialLabelWidthArr.indexOf(width); // it's impossible if (index === -1) { throw new Error('[ElementForm]unpected width ', width); } return index; }, registerLabelWidth: function registerLabelWidth(val, oldVal) { if (val && oldVal) { var index = this.getLabelWidthIndex(oldVal); this.potentialLabelWidthArr.splice(index, 1, val); } else if (val) { this.potentialLabelWidthArr.push(val); } }, deregisterLabelWidth: function deregisterLabelWidth(val) { var index = this.getLabelWidthIndex(val); this.potentialLabelWidthArr.splice(index, 1); } } }); // CONCATENATED MODULE: ./packages/form/src/form.vue?vue&type=script&lang=js& /* harmony default export */ var src_formvue_type_script_lang_js_ = (formvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/form/src/form.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_formvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/form/src/form.vue" /* harmony default export */ var src_form = (component.exports); // CONCATENATED MODULE: ./packages/form/index.js /* istanbul ignore next */ src_form.install = function (Vue) { Vue.component(src_form.name, src_form); }; /* harmony default export */ var packages_form = __webpack_exports__["default"] = (src_form); /***/ }), /***/ 9: /***/ (function(module, exports) { module.exports = __webpack_require__(27); /***/ }) /******/ }); /***/ }), /* 152 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(153); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("7a58fea2", content, true, {}); /***/ }), /* 153 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:\" \";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#FFF}.el-tooltip__popper.is-light{background:#FFF;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#FFF}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#FFF}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#FFF}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#FFF}", ""]); // exports /***/ }), /* 154 */ /***/ (function(module, exports, __webpack_require__) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 131); /******/ }) /************************************************************************/ /******/ ({ /***/ 131: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: external "element-ui/lib/utils/vue-popper" var vue_popper_ = __webpack_require__(5); var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_); // EXTERNAL MODULE: external "throttle-debounce/debounce" var debounce_ = __webpack_require__(17); var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce_); // EXTERNAL MODULE: external "element-ui/lib/utils/dom" var dom_ = __webpack_require__(2); // EXTERNAL MODULE: external "element-ui/lib/utils/util" var util_ = __webpack_require__(3); // EXTERNAL MODULE: external "vue" var external_vue_ = __webpack_require__(7); var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_); // CONCATENATED MODULE: ./packages/tooltip/src/main.js /* harmony default export */ var main = ({ name: 'ElTooltip', mixins: [vue_popper_default.a], props: { openDelay: { type: Number, default: 0 }, disabled: Boolean, manual: Boolean, effect: { type: String, default: 'dark' }, arrowOffset: { type: Number, default: 0 }, popperClass: String, content: String, visibleArrow: { default: true }, transition: { type: String, default: 'el-fade-in-linear' }, popperOptions: { default: function _default() { return { boundariesPadding: 10, gpuAcceleration: false }; } }, enterable: { type: Boolean, default: true }, hideAfter: { type: Number, default: 0 }, tabindex: { type: Number, default: 0 } }, data: function data() { return { tooltipId: 'el-tooltip-' + Object(util_["generateId"])(), timeoutPending: null, focusing: false }; }, beforeCreate: function beforeCreate() { var _this = this; if (this.$isServer) return; this.popperVM = new external_vue_default.a({ data: { node: '' }, render: function render(h) { return this.node; } }).$mount(); this.debounceClose = debounce_default()(200, function () { return _this.handleClosePopper(); }); }, render: function render(h) { var _this2 = this; if (this.popperVM) { this.popperVM.node = h( 'transition', { attrs: { name: this.transition }, on: { 'afterLeave': this.doDestroy } }, [h( 'div', { on: { 'mouseleave': function mouseleave() { _this2.setExpectedState(false);_this2.debounceClose(); }, 'mouseenter': function mouseenter() { _this2.setExpectedState(true); } }, ref: 'popper', attrs: { role: 'tooltip', id: this.tooltipId, 'aria-hidden': this.disabled || !this.showPopper ? 'true' : 'false' }, directives: [{ name: 'show', value: !this.disabled && this.showPopper }], 'class': ['el-tooltip__popper', 'is-' + this.effect, this.popperClass] }, [this.$slots.content || this.content] )] ); } var firstElement = this.getFirstElement(); if (!firstElement) return null; var data = firstElement.data = firstElement.data || {}; data.staticClass = this.addTooltipClass(data.staticClass); return firstElement; }, mounted: function mounted() { var _this3 = this; this.referenceElm = this.$el; if (this.$el.nodeType === 1) { this.$el.setAttribute('aria-describedby', this.tooltipId); this.$el.setAttribute('tabindex', this.tabindex); Object(dom_["on"])(this.referenceElm, 'mouseenter', this.show); Object(dom_["on"])(this.referenceElm, 'mouseleave', this.hide); Object(dom_["on"])(this.referenceElm, 'focus', function () { if (!_this3.$slots.default || !_this3.$slots.default.length) { _this3.handleFocus(); return; } var instance = _this3.$slots.default[0].componentInstance; if (instance && instance.focus) { instance.focus(); } else { _this3.handleFocus(); } }); Object(dom_["on"])(this.referenceElm, 'blur', this.handleBlur); Object(dom_["on"])(this.referenceElm, 'click', this.removeFocusing); } // fix issue https://github.com/ElemeFE/element/issues/14424 if (this.value && this.popperVM) { this.popperVM.$nextTick(function () { if (_this3.value) { _this3.updatePopper(); } }); } }, watch: { focusing: function focusing(val) { if (val) { Object(dom_["addClass"])(this.referenceElm, 'focusing'); } else { Object(dom_["removeClass"])(this.referenceElm, 'focusing'); } } }, methods: { show: function show() { this.setExpectedState(true); this.handleShowPopper(); }, hide: function hide() { this.setExpectedState(false); this.debounceClose(); }, handleFocus: function handleFocus() { this.focusing = true; this.show(); }, handleBlur: function handleBlur() { this.focusing = false; this.hide(); }, removeFocusing: function removeFocusing() { this.focusing = false; }, addTooltipClass: function addTooltipClass(prev) { if (!prev) { return 'el-tooltip'; } else { return 'el-tooltip ' + prev.replace('el-tooltip', ''); } }, handleShowPopper: function handleShowPopper() { var _this4 = this; if (!this.expectedState || this.manual) return; clearTimeout(this.timeout); this.timeout = setTimeout(function () { _this4.showPopper = true; }, this.openDelay); if (this.hideAfter > 0) { this.timeoutPending = setTimeout(function () { _this4.showPopper = false; }, this.hideAfter); } }, handleClosePopper: function handleClosePopper() { if (this.enterable && this.expectedState || this.manual) return; clearTimeout(this.timeout); if (this.timeoutPending) { clearTimeout(this.timeoutPending); } this.showPopper = false; if (this.disabled) { this.doDestroy(); } }, setExpectedState: function setExpectedState(expectedState) { if (expectedState === false) { clearTimeout(this.timeoutPending); } this.expectedState = expectedState; }, getFirstElement: function getFirstElement() { var slots = this.$slots.default; if (!Array.isArray(slots)) return null; var element = null; for (var index = 0; index < slots.length; index++) { if (slots[index] && slots[index].tag) { element = slots[index]; }; } return element; } }, beforeDestroy: function beforeDestroy() { this.popperVM && this.popperVM.$destroy(); }, destroyed: function destroyed() { var reference = this.referenceElm; if (reference.nodeType === 1) { Object(dom_["off"])(reference, 'mouseenter', this.show); Object(dom_["off"])(reference, 'mouseleave', this.hide); Object(dom_["off"])(reference, 'focus', this.handleFocus); Object(dom_["off"])(reference, 'blur', this.handleBlur); Object(dom_["off"])(reference, 'click', this.removeFocusing); } } }); // CONCATENATED MODULE: ./packages/tooltip/index.js /* istanbul ignore next */ main.install = function (Vue) { Vue.component(main.name, main); }; /* harmony default export */ var tooltip = __webpack_exports__["default"] = (main); /***/ }), /***/ 17: /***/ (function(module, exports) { module.exports = __webpack_require__(155); /***/ }), /***/ 2: /***/ (function(module, exports) { module.exports = __webpack_require__(28); /***/ }), /***/ 3: /***/ (function(module, exports) { module.exports = __webpack_require__(14); /***/ }), /***/ 5: /***/ (function(module, exports) { module.exports = __webpack_require__(54); /***/ }), /***/ 7: /***/ (function(module, exports) { module.exports = __webpack_require__(6); /***/ }) /******/ }); /***/ }), /* 155 */ /***/ (function(module, exports, __webpack_require__) { /* eslint-disable no-undefined */ var throttle = __webpack_require__(156); /** * Debounce execution of a function. Debouncing, unlike throttling, * guarantees that a function is only executed a single time, either at the * very beginning of a series of calls, or at the very end. * * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful. * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call. * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset). * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is, * to `callback` when the debounced-function is executed. * * @return {Function} A new, debounced function. */ module.exports = function ( delay, atBegin, callback ) { return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false); }; /***/ }), /* 156 */ /***/ (function(module, exports) { /* eslint-disable no-undefined,no-param-reassign,no-shadow */ /** * Throttle execution of a function. Especially useful for rate limiting * execution of handlers on events like resize and scroll. * * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful. * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds, * the internal counter is reset) * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is, * to `callback` when the throttled-function is executed. * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end), * schedule `callback` to execute after `delay` ms. * * @return {Function} A new, throttled, function. */ module.exports = function ( delay, noTrailing, callback, debounceMode ) { // After wrapper has stopped being called, this timeout ensures that // `callback` is executed at the proper times in `throttle` and `end` // debounce modes. var timeoutID; // Keep track of the last time `callback` was executed. var lastExec = 0; // `noTrailing` defaults to falsy. if ( typeof noTrailing !== 'boolean' ) { debounceMode = callback; callback = noTrailing; noTrailing = undefined; } // The `wrapper` function encapsulates all of the throttling / debouncing // functionality and when executed will limit the rate at which `callback` // is executed. function wrapper () { var self = this; var elapsed = Number(new Date()) - lastExec; var args = arguments; // Execute `callback` and update the `lastExec` timestamp. function exec () { lastExec = Number(new Date()); callback.apply(self, args); } // If `debounceMode` is true (at begin) this is used to clear the flag // to allow future `callback` executions. function clear () { timeoutID = undefined; } if ( debounceMode && !timeoutID ) { // Since `wrapper` is being called for the first time and // `debounceMode` is true (at begin), execute `callback`. exec(); } // Clear any existing timeout. if ( timeoutID ) { clearTimeout(timeoutID); } if ( debounceMode === undefined && elapsed > delay ) { // In throttle mode, if `delay` time has been exceeded, execute // `callback`. exec(); } else if ( noTrailing !== true ) { // In trailing throttle mode, since `delay` time has not been // exceeded, schedule `callback` to execute `delay` ms after most // recent execution. // // If `debounceMode` is true (at begin), schedule `clear` to execute // after `delay` ms. // // If `debounceMode` is false (at end), schedule `callback` to // execute after `delay` ms. timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay); } } // Return the wrapper function. return wrapper; }; /***/ }), /* 157 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.PopupManager = undefined; var _vue = __webpack_require__(6); var _vue2 = _interopRequireDefault(_vue); var _merge = __webpack_require__(27); var _merge2 = _interopRequireDefault(_merge); var _popupManager = __webpack_require__(158); var _popupManager2 = _interopRequireDefault(_popupManager); var _scrollbarWidth = __webpack_require__(159); var _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth); var _dom = __webpack_require__(28); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var idSeed = 1; var scrollBarWidth = void 0; exports.default = { props: { visible: { type: Boolean, default: false }, openDelay: {}, closeDelay: {}, zIndex: {}, modal: { type: Boolean, default: false }, modalFade: { type: Boolean, default: true }, modalClass: {}, modalAppendToBody: { type: Boolean, default: false }, lockScroll: { type: Boolean, default: true }, closeOnPressEscape: { type: Boolean, default: false }, closeOnClickModal: { type: Boolean, default: false } }, beforeMount: function beforeMount() { this._popupId = 'popup-' + idSeed++; _popupManager2.default.register(this._popupId, this); }, beforeDestroy: function beforeDestroy() { _popupManager2.default.deregister(this._popupId); _popupManager2.default.closeModal(this._popupId); this.restoreBodyStyle(); }, data: function data() { return { opened: false, bodyPaddingRight: null, computedBodyPaddingRight: 0, withoutHiddenClass: true, rendered: false }; }, watch: { visible: function visible(val) { var _this = this; if (val) { if (this._opening) return; if (!this.rendered) { this.rendered = true; _vue2.default.nextTick(function () { _this.open(); }); } else { this.open(); } } else { this.close(); } } }, methods: { open: function open(options) { var _this2 = this; if (!this.rendered) { this.rendered = true; } var props = (0, _merge2.default)({}, this.$props || this, options); if (this._closeTimer) { clearTimeout(this._closeTimer); this._closeTimer = null; } clearTimeout(this._openTimer); var openDelay = Number(props.openDelay); if (openDelay > 0) { this._openTimer = setTimeout(function () { _this2._openTimer = null; _this2.doOpen(props); }, openDelay); } else { this.doOpen(props); } }, doOpen: function doOpen(props) { if (this.$isServer) return; if (this.willOpen && !this.willOpen()) return; if (this.opened) return; this._opening = true; var dom = this.$el; var modal = props.modal; var zIndex = props.zIndex; if (zIndex) { _popupManager2.default.zIndex = zIndex; } if (modal) { if (this._closing) { _popupManager2.default.closeModal(this._popupId); this._closing = false; } _popupManager2.default.openModal(this._popupId, _popupManager2.default.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade); if (props.lockScroll) { this.withoutHiddenClass = !(0, _dom.hasClass)(document.body, 'el-popup-parent--hidden'); if (this.withoutHiddenClass) { this.bodyPaddingRight = document.body.style.paddingRight; this.computedBodyPaddingRight = parseInt((0, _dom.getStyle)(document.body, 'paddingRight'), 10); } scrollBarWidth = (0, _scrollbarWidth2.default)(); var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight; var bodyOverflowY = (0, _dom.getStyle)(document.body, 'overflowY'); if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) { document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px'; } (0, _dom.addClass)(document.body, 'el-popup-parent--hidden'); } } if (getComputedStyle(dom).position === 'static') { dom.style.position = 'absolute'; } dom.style.zIndex = _popupManager2.default.nextZIndex(); this.opened = true; this.onOpen && this.onOpen(); this.doAfterOpen(); }, doAfterOpen: function doAfterOpen() { this._opening = false; }, close: function close() { var _this3 = this; if (this.willClose && !this.willClose()) return; if (this._openTimer !== null) { clearTimeout(this._openTimer); this._openTimer = null; } clearTimeout(this._closeTimer); var closeDelay = Number(this.closeDelay); if (closeDelay > 0) { this._closeTimer = setTimeout(function () { _this3._closeTimer = null; _this3.doClose(); }, closeDelay); } else { this.doClose(); } }, doClose: function doClose() { this._closing = true; this.onClose && this.onClose(); if (this.lockScroll) { setTimeout(this.restoreBodyStyle, 200); } this.opened = false; this.doAfterClose(); }, doAfterClose: function doAfterClose() { _popupManager2.default.closeModal(this._popupId); this._closing = false; }, restoreBodyStyle: function restoreBodyStyle() { if (this.modal && this.withoutHiddenClass) { document.body.style.paddingRight = this.bodyPaddingRight; (0, _dom.removeClass)(document.body, 'el-popup-parent--hidden'); } this.withoutHiddenClass = true; } } }; exports.PopupManager = _popupManager2.default; /***/ }), /* 158 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _vue = __webpack_require__(6); var _vue2 = _interopRequireDefault(_vue); var _dom = __webpack_require__(28); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var hasModal = false; var hasInitZIndex = false; var zIndex = void 0; var getModal = function getModal() { if (_vue2.default.prototype.$isServer) return; var modalDom = PopupManager.modalDom; if (modalDom) { hasModal = true; } else { hasModal = false; modalDom = document.createElement('div'); PopupManager.modalDom = modalDom; modalDom.addEventListener('touchmove', function (event) { event.preventDefault(); event.stopPropagation(); }); modalDom.addEventListener('click', function () { PopupManager.doOnModalClick && PopupManager.doOnModalClick(); }); } return modalDom; }; var instances = {}; var PopupManager = { modalFade: true, getInstance: function getInstance(id) { return instances[id]; }, register: function register(id, instance) { if (id && instance) { instances[id] = instance; } }, deregister: function deregister(id) { if (id) { instances[id] = null; delete instances[id]; } }, nextZIndex: function nextZIndex() { return PopupManager.zIndex++; }, modalStack: [], doOnModalClick: function doOnModalClick() { var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1]; if (!topItem) return; var instance = PopupManager.getInstance(topItem.id); if (instance && instance.closeOnClickModal) { instance.close(); } }, openModal: function openModal(id, zIndex, dom, modalClass, modalFade) { if (_vue2.default.prototype.$isServer) return; if (!id || zIndex === undefined) return; this.modalFade = modalFade; var modalStack = this.modalStack; for (var i = 0, j = modalStack.length; i < j; i++) { var item = modalStack[i]; if (item.id === id) { return; } } var modalDom = getModal(); (0, _dom.addClass)(modalDom, 'v-modal'); if (this.modalFade && !hasModal) { (0, _dom.addClass)(modalDom, 'v-modal-enter'); } if (modalClass) { var classArr = modalClass.trim().split(/\s+/); classArr.forEach(function (item) { return (0, _dom.addClass)(modalDom, item); }); } setTimeout(function () { (0, _dom.removeClass)(modalDom, 'v-modal-enter'); }, 200); if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) { dom.parentNode.appendChild(modalDom); } else { document.body.appendChild(modalDom); } if (zIndex) { modalDom.style.zIndex = zIndex; } modalDom.tabIndex = 0; modalDom.style.display = ''; this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass }); }, closeModal: function closeModal(id) { var modalStack = this.modalStack; var modalDom = getModal(); if (modalStack.length > 0) { var topItem = modalStack[modalStack.length - 1]; if (topItem.id === id) { if (topItem.modalClass) { var classArr = topItem.modalClass.trim().split(/\s+/); classArr.forEach(function (item) { return (0, _dom.removeClass)(modalDom, item); }); } modalStack.pop(); if (modalStack.length > 0) { modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex; } } else { for (var i = modalStack.length - 1; i >= 0; i--) { if (modalStack[i].id === id) { modalStack.splice(i, 1); break; } } } } if (modalStack.length === 0) { if (this.modalFade) { (0, _dom.addClass)(modalDom, 'v-modal-leave'); } setTimeout(function () { if (modalStack.length === 0) { if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom); modalDom.style.display = 'none'; PopupManager.modalDom = undefined; } (0, _dom.removeClass)(modalDom, 'v-modal-leave'); }, 200); } } }; Object.defineProperty(PopupManager, 'zIndex', { configurable: true, get: function get() { if (!hasInitZIndex) { zIndex = zIndex || (_vue2.default.prototype.$ELEMENT || {}).zIndex || 2000; hasInitZIndex = true; } return zIndex; }, set: function set(value) { zIndex = value; } }); var getTopPopup = function getTopPopup() { if (_vue2.default.prototype.$isServer) return; if (PopupManager.modalStack.length > 0) { var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1]; if (!topPopup) return; var instance = PopupManager.getInstance(topPopup.id); return instance; } }; if (!_vue2.default.prototype.$isServer) { // handle `esc` key when the popup is shown window.addEventListener('keydown', function (event) { if (event.keyCode === 27) { var topPopup = getTopPopup(); if (topPopup && topPopup.closeOnPressEscape) { topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close(); } } }); } exports.default = PopupManager; /***/ }), /* 159 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = function () { if (_vue2.default.prototype.$isServer) return 0; if (scrollBarWidth !== undefined) return scrollBarWidth; var outer = document.createElement('div'); outer.className = 'el-scrollbar__wrap'; outer.style.visibility = 'hidden'; outer.style.width = '100px'; outer.style.position = 'absolute'; outer.style.top = '-9999px'; document.body.appendChild(outer); var widthNoScroll = outer.offsetWidth; outer.style.overflow = 'scroll'; var inner = document.createElement('div'); inner.style.width = '100%'; outer.appendChild(inner); var widthWithScroll = inner.offsetWidth; outer.parentNode.removeChild(outer); scrollBarWidth = widthNoScroll - widthWithScroll; return scrollBarWidth; }; var _vue = __webpack_require__(6); var _vue2 = _interopRequireDefault(_vue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var scrollBarWidth = void 0; ; /***/ }), /* 160 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /** * @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 === 'undefined' ? 'undefined' : _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(); } })(undefined, 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]', arrowOffset: 0, // list of functions used to modify the offsets before they are applied to the popper modifiers: ['shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle'], modifiersIgnored: [], forceAbsolute: false }; /** * 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 = {}; // 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, top: 0 }); // 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.remove(); } 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: {} }; // 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 reference 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 (typeof this.state.updateCallback === 'function') { this.state.updateCallback(data); } }; /** * 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 callback(this); 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 * @param reference {HTMLElement} reference element * @returns {String} position */ Popper.prototype._getPosition = function (popper, reference) { var container = getOffsetParent(reference); if (this._options.forceAbsolute) { return 'absolute'; } // 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(reference, container); return isParentFixed ? 'fixed' : 'absolute'; }; /** * 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'; // // Get reference element position // var referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed); // // 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); this.state.scrollTarget = target; } }; /** * 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' && this.state.scrollTarget) { this.state.scrollTarget.removeEventListener('scroll', this.state.updateBound); this.state.scrollTarget = null; } 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); // Thanks the fucking native API, `document.body.scrollTop` & `document.documentElement.scrollTop` var getScrollTopValue = function getScrollTopValue(element) { return element == document.body ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : element.scrollTop; }; var getScrollLeftValue = function getScrollLeftValue(element) { return element == document.body ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : element.scrollLeft; }; // if the popper is fixed we don't have to substract scrolling from the boundaries var scrollTop = data.offsets.popper.position === 'fixed' ? 0 : getScrollTopValue(scrollParent); var scrollLeft = data.offsets.popper.position === 'fixed' ? 0 : getScrollLeftValue(scrollParent); 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 * @param {String} requesting - name of requesting modifier * @param {String} requested - name of requested modifier * @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 modifier is required and the arrow style has been computed, apply the arrow style if (this.isModifierRequired(this.modifiers.applyStyle, this.modifiers.arrow) && data.offsets.arrow) { setStyle(data.arrowElement, data.offsets.arrow); } 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 left() { var left = popper.left; if (popper.left < data.boundaries.left) { left = Math.max(popper.left, data.boundaries.left); } return { left: left }; }, right: function right() { 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 top() { var top = popper.top; if (popper.top < data.boundaries.top) { top = Math.max(popper.top, data.boundaries.top); } return { top: top }; }, bottom: function bottom() { 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; var arrowOffset = this._options.arrowOffset; // 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 translate = isVertical ? 'translateY' : 'translateX'; 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] + (arrowOffset || reference[len] / 2 - arrowSize / 2); var sideValue = center - popper[side]; // prevent arrow from being placed not contiguously to its popper sideValue = Math.max(Math.min(popper[len] - arrowSize - 8, sideValue), 8); 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) { var parent = element.parentNode; if (!parent) { return element; } if (parent === 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 || root.document.body.scrollLeft) { 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(parent, 'overflow')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-x')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, '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 parent; } return getScrollParent(element.parentNode); } /** * 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) { return false; } if (getStyleComputedProperty(element, 'position') === 'fixed') { return true; } return element.parentNode ? isFixed(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 {*} functionToCheck - variable 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(); // whether the IE version is lower than 11 var isIE = navigator.userAgent.indexOf("MSIE") != -1; // fix ie document bounding top always 0 bug var rectTop = isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top; return { left: rect.left, top: rectTop, right: rect.right, bottom: rect.bottom, width: rect.right - rect.left, height: rect.bottom - rectTop }; } /** * 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) { var elementRect = getBoundingClientRect(element); var parentRect = getBoundingClientRect(parent); if (fixed) { 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 value(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; } }); } return Popper; }); /***/ }), /* 161 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(162); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("401d43ef", content, true, {}); /***/ }), /* 162 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:\" \";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#EBEEF5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#FFF;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#EBEEF5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#FFF}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#EBEEF5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#FFF;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#EBEEF5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#FFF}.el-popover{position:absolute;background:#FFF;min-width:150px;border-radius:4px;border:1px solid #EBEEF5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}", ""]); // exports /***/ }), /* 163 */ /***/ (function(module, exports, __webpack_require__) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 74); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 2: /***/ (function(module, exports) { module.exports = __webpack_require__(28); /***/ }), /***/ 3: /***/ (function(module, exports) { module.exports = __webpack_require__(14); /***/ }), /***/ 5: /***/ (function(module, exports) { module.exports = __webpack_require__(54); /***/ }), /***/ 7: /***/ (function(module, exports) { module.exports = __webpack_require__(6); /***/ }), /***/ 74: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/popover/src/main.vue?vue&type=template&id=52060272& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "span", [ _c( "transition", { attrs: { name: _vm.transition }, on: { "after-enter": _vm.handleAfterEnter, "after-leave": _vm.handleAfterLeave } }, [ _c( "div", { directives: [ { name: "show", rawName: "v-show", value: !_vm.disabled && _vm.showPopper, expression: "!disabled && showPopper" } ], ref: "popper", staticClass: "el-popover el-popper", class: [_vm.popperClass, _vm.content && "el-popover--plain"], style: { width: _vm.width + "px" }, attrs: { role: "tooltip", id: _vm.tooltipId, "aria-hidden": _vm.disabled || !_vm.showPopper ? "true" : "false" } }, [ _vm.title ? _c("div", { staticClass: "el-popover__title", domProps: { textContent: _vm._s(_vm.title) } }) : _vm._e(), _vm._t("default", [_vm._v(_vm._s(_vm.content))]) ], 2 ) ] ), _c( "span", { ref: "wrapper", staticClass: "el-popover__reference-wrapper" }, [_vm._t("reference")], 2 ) ], 1 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/popover/src/main.vue?vue&type=template&id=52060272& // EXTERNAL MODULE: external "element-ui/lib/utils/vue-popper" var vue_popper_ = __webpack_require__(5); var vue_popper_default = /*#__PURE__*/__webpack_require__.n(vue_popper_); // EXTERNAL MODULE: external "element-ui/lib/utils/dom" var dom_ = __webpack_require__(2); // EXTERNAL MODULE: external "element-ui/lib/utils/util" var util_ = __webpack_require__(3); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/popover/src/main.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var mainvue_type_script_lang_js_ = ({ name: 'ElPopover', mixins: [vue_popper_default.a], props: { trigger: { type: String, default: 'click', validator: function validator(value) { return ['click', 'focus', 'hover', 'manual'].indexOf(value) > -1; } }, openDelay: { type: Number, default: 0 }, closeDelay: { type: Number, default: 200 }, title: String, disabled: Boolean, content: String, reference: {}, popperClass: String, width: {}, visibleArrow: { default: true }, arrowOffset: { type: Number, default: 0 }, transition: { type: String, default: 'fade-in-linear' }, tabindex: { type: Number, default: 0 } }, computed: { tooltipId: function tooltipId() { return 'el-popover-' + Object(util_["generateId"])(); } }, watch: { showPopper: function showPopper(val) { if (this.disabled) { return; } val ? this.$emit('show') : this.$emit('hide'); } }, mounted: function mounted() { var _this = this; var reference = this.referenceElm = this.reference || this.$refs.reference; var popper = this.popper || this.$refs.popper; if (!reference && this.$refs.wrapper.children) { reference = this.referenceElm = this.$refs.wrapper.children[0]; } // 可访问性 if (reference) { Object(dom_["addClass"])(reference, 'el-popover__reference'); reference.setAttribute('aria-describedby', this.tooltipId); reference.setAttribute('tabindex', this.tabindex); // tab序列 popper.setAttribute('tabindex', 0); if (this.trigger !== 'click') { Object(dom_["on"])(reference, 'focusin', function () { _this.handleFocus(); var instance = reference.__vue__; if (instance && typeof instance.focus === 'function') { instance.focus(); } }); Object(dom_["on"])(popper, 'focusin', this.handleFocus); Object(dom_["on"])(reference, 'focusout', this.handleBlur); Object(dom_["on"])(popper, 'focusout', this.handleBlur); } Object(dom_["on"])(reference, 'keydown', this.handleKeydown); Object(dom_["on"])(reference, 'click', this.handleClick); } if (this.trigger === 'click') { Object(dom_["on"])(reference, 'click', this.doToggle); Object(dom_["on"])(document, 'click', this.handleDocumentClick); } else if (this.trigger === 'hover') { Object(dom_["on"])(reference, 'mouseenter', this.handleMouseEnter); Object(dom_["on"])(popper, 'mouseenter', this.handleMouseEnter); Object(dom_["on"])(reference, 'mouseleave', this.handleMouseLeave); Object(dom_["on"])(popper, 'mouseleave', this.handleMouseLeave); } else if (this.trigger === 'focus') { if (this.tabindex < 0) { console.warn('[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key'); } if (reference.querySelector('input, textarea')) { Object(dom_["on"])(reference, 'focusin', this.doShow); Object(dom_["on"])(reference, 'focusout', this.doClose); } else { Object(dom_["on"])(reference, 'mousedown', this.doShow); Object(dom_["on"])(reference, 'mouseup', this.doClose); } } }, beforeDestroy: function beforeDestroy() { this.cleanup(); }, deactivated: function deactivated() { this.cleanup(); }, methods: { doToggle: function doToggle() { this.showPopper = !this.showPopper; }, doShow: function doShow() { this.showPopper = true; }, doClose: function doClose() { this.showPopper = false; }, handleFocus: function handleFocus() { Object(dom_["addClass"])(this.referenceElm, 'focusing'); if (this.trigger === 'click' || this.trigger === 'focus') this.showPopper = true; }, handleClick: function handleClick() { Object(dom_["removeClass"])(this.referenceElm, 'focusing'); }, handleBlur: function handleBlur() { Object(dom_["removeClass"])(this.referenceElm, 'focusing'); if (this.trigger === 'click' || this.trigger === 'focus') this.showPopper = false; }, handleMouseEnter: function handleMouseEnter() { var _this2 = this; clearTimeout(this._timer); if (this.openDelay) { this._timer = setTimeout(function () { _this2.showPopper = true; }, this.openDelay); } else { this.showPopper = true; } }, handleKeydown: function handleKeydown(ev) { if (ev.keyCode === 27 && this.trigger !== 'manual') { // esc this.doClose(); } }, handleMouseLeave: function handleMouseLeave() { var _this3 = this; clearTimeout(this._timer); if (this.closeDelay) { this._timer = setTimeout(function () { _this3.showPopper = false; }, this.closeDelay); } else { this.showPopper = false; } }, handleDocumentClick: function handleDocumentClick(e) { var reference = this.reference || this.$refs.reference; var popper = this.popper || this.$refs.popper; if (!reference && this.$refs.wrapper.children) { reference = this.referenceElm = this.$refs.wrapper.children[0]; } if (!this.$el || !reference || this.$el.contains(e.target) || reference.contains(e.target) || !popper || popper.contains(e.target)) return; this.showPopper = false; }, handleAfterEnter: function handleAfterEnter() { this.$emit('after-enter'); }, handleAfterLeave: function handleAfterLeave() { this.$emit('after-leave'); this.doDestroy(); }, cleanup: function cleanup() { if (this.openDelay || this.closeDelay) { clearTimeout(this._timer); } } }, destroyed: function destroyed() { var reference = this.reference; Object(dom_["off"])(reference, 'click', this.doToggle); Object(dom_["off"])(reference, 'mouseup', this.doClose); Object(dom_["off"])(reference, 'mousedown', this.doShow); Object(dom_["off"])(reference, 'focusin', this.doShow); Object(dom_["off"])(reference, 'focusout', this.doClose); Object(dom_["off"])(reference, 'mousedown', this.doShow); Object(dom_["off"])(reference, 'mouseup', this.doClose); Object(dom_["off"])(reference, 'mouseleave', this.handleMouseLeave); Object(dom_["off"])(reference, 'mouseenter', this.handleMouseEnter); Object(dom_["off"])(document, 'click', this.handleDocumentClick); } }); // CONCATENATED MODULE: ./packages/popover/src/main.vue?vue&type=script&lang=js& /* harmony default export */ var src_mainvue_type_script_lang_js_ = (mainvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/popover/src/main.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_mainvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/popover/src/main.vue" /* harmony default export */ var main = (component.exports); // CONCATENATED MODULE: ./packages/popover/src/directive.js var getReference = function getReference(el, binding, vnode) { var _ref = binding.expression ? binding.value : binding.arg; var popper = vnode.context.$refs[_ref]; if (popper) { if (Array.isArray(popper)) { popper[0].$refs.reference = el; } else { popper.$refs.reference = el; } } }; /* harmony default export */ var directive = ({ bind: function bind(el, binding, vnode) { getReference(el, binding, vnode); }, inserted: function inserted(el, binding, vnode) { getReference(el, binding, vnode); } }); // EXTERNAL MODULE: external "vue" var external_vue_ = __webpack_require__(7); var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_); // CONCATENATED MODULE: ./packages/popover/index.js external_vue_default.a.directive('popover', directive); /* istanbul ignore next */ main.install = function (Vue) { Vue.directive('popover', directive); Vue.component(main.name, main); }; main.directive = directive; /* harmony default export */ var popover = __webpack_exports__["default"] = (main); /***/ }) /******/ }); /***/ }), /* 164 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(165); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("3e8afe62", content, true, {}); /***/ }), /* 165 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-button-group>.el-button.is-active,.el-button-group>.el-button.is-disabled,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#FFF;border:1px solid #DCDFE6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409EFF;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#FFF;border-color:#409EFF;color:#409EFF}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#FFF;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#FFF;border-color:#EBEEF5;color:#C0C4CC}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#FFF;background-color:#409EFF;border-color:#409EFF}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#FFF}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#FFF;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409EFF;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409EFF;border-color:#409EFF;color:#FFF}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#FFF;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#FFF;background-color:#67C23A;border-color:#67C23A}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#FFF}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#FFF}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#FFF;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67C23A;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67C23A;border-color:#67C23A;color:#FFF}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#FFF;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#FFF;background-color:#E6A23C;border-color:#E6A23C}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#FFF}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#FFF}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#FFF;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#E6A23C;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#E6A23C;border-color:#E6A23C;color:#FFF}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#FFF;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#FFF;background-color:#F56C6C;border-color:#F56C6C}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#FFF}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#FFF}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#FFF;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#F56C6C;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#F56C6C;border-color:#F56C6C;color:#FFF}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#FFF;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#FFF;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#FFF}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#FFF}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#FFF;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#FFF}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#FFF;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409EFF;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table;content:\"\"}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}", ""]); // exports /***/ }), /* 166 */ /***/ (function(module, exports) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 97); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 97: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/button/src/button.vue?vue&type=template&id=ca859fb4& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "button", { staticClass: "el-button", class: [ _vm.type ? "el-button--" + _vm.type : "", _vm.buttonSize ? "el-button--" + _vm.buttonSize : "", { "is-disabled": _vm.buttonDisabled, "is-loading": _vm.loading, "is-plain": _vm.plain, "is-round": _vm.round, "is-circle": _vm.circle } ], attrs: { disabled: _vm.buttonDisabled || _vm.loading, autofocus: _vm.autofocus, type: _vm.nativeType }, on: { click: _vm.handleClick } }, [ _vm.loading ? _c("i", { staticClass: "el-icon-loading" }) : _vm._e(), _vm.icon && !_vm.loading ? _c("i", { class: _vm.icon }) : _vm._e(), _vm.$slots.default ? _c("span", [_vm._t("default")], 2) : _vm._e() ] ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/button/src/button.vue?vue&type=template&id=ca859fb4& // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/button/src/button.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var buttonvue_type_script_lang_js_ = ({ name: 'ElButton', inject: { elForm: { default: '' }, elFormItem: { default: '' } }, props: { type: { type: String, default: 'default' }, size: String, icon: { type: String, default: '' }, nativeType: { type: String, default: 'button' }, loading: Boolean, disabled: Boolean, plain: Boolean, autofocus: Boolean, round: Boolean, circle: Boolean }, computed: { _elFormItemSize: function _elFormItemSize() { return (this.elFormItem || {}).elFormItemSize; }, buttonSize: function buttonSize() { return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size; }, buttonDisabled: function buttonDisabled() { return this.disabled || (this.elForm || {}).disabled; } }, methods: { handleClick: function handleClick(evt) { this.$emit('click', evt); } } }); // CONCATENATED MODULE: ./packages/button/src/button.vue?vue&type=script&lang=js& /* harmony default export */ var src_buttonvue_type_script_lang_js_ = (buttonvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/button/src/button.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_buttonvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/button/src/button.vue" /* harmony default export */ var src_button = (component.exports); // CONCATENATED MODULE: ./packages/button/index.js /* istanbul ignore next */ src_button.install = function (Vue) { Vue.component(src_button.name, src_button); }; /* harmony default export */ var packages_button = __webpack_exports__["default"] = (src_button); /***/ }) /******/ }); /***/ }), /* 167 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(168); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("0eb07e6f", content, true, {}); /***/ }), /* 168 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}", ""]); // exports /***/ }), /* 169 */ /***/ (function(module, exports, __webpack_require__) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 79); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 4: /***/ (function(module, exports) { module.exports = __webpack_require__(19); /***/ }), /***/ 79: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/radio/src/radio-group.vue?vue&type=template&id=818a704c& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( _vm._elTag, { tag: "component", staticClass: "el-radio-group", attrs: { role: "radiogroup" }, on: { keydown: _vm.handleKeydown } }, [_vm._t("default")], 2 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/radio/src/radio-group.vue?vue&type=template&id=818a704c& // EXTERNAL MODULE: external "element-ui/lib/mixins/emitter" var emitter_ = __webpack_require__(4); var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/radio/src/radio-group.vue?vue&type=script&lang=js& // // // // // // // // // // var keyCode = Object.freeze({ LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40 }); /* harmony default export */ var radio_groupvue_type_script_lang_js_ = ({ name: 'ElRadioGroup', componentName: 'ElRadioGroup', inject: { elFormItem: { default: '' } }, mixins: [emitter_default.a], props: { value: {}, size: String, fill: String, textColor: String, disabled: Boolean }, computed: { _elFormItemSize: function _elFormItemSize() { return (this.elFormItem || {}).elFormItemSize; }, _elTag: function _elTag() { return (this.$vnode.data || {}).tag || 'div'; }, radioGroupSize: function radioGroupSize() { return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size; } }, created: function created() { var _this = this; this.$on('handleChange', function (value) { _this.$emit('change', value); }); }, mounted: function mounted() { // 当radioGroup没有默认选项时,第一个可以选中Tab导航 var radios = this.$el.querySelectorAll('[type=radio]'); var firstLabel = this.$el.querySelectorAll('[role=radio]')[0]; if (![].some.call(radios, function (radio) { return radio.checked; }) && firstLabel) { firstLabel.tabIndex = 0; } }, methods: { handleKeydown: function handleKeydown(e) { // 左右上下按键 可以在radio组内切换不同选项 var target = e.target; var className = target.nodeName === 'INPUT' ? '[type=radio]' : '[role=radio]'; var radios = this.$el.querySelectorAll(className); var length = radios.length; var index = [].indexOf.call(radios, target); var roleRadios = this.$el.querySelectorAll('[role=radio]'); switch (e.keyCode) { case keyCode.LEFT: case keyCode.UP: e.stopPropagation(); e.preventDefault(); if (index === 0) { roleRadios[length - 1].click(); roleRadios[length - 1].focus(); } else { roleRadios[index - 1].click(); roleRadios[index - 1].focus(); } break; case keyCode.RIGHT: case keyCode.DOWN: if (index === length - 1) { e.stopPropagation(); e.preventDefault(); roleRadios[0].click(); roleRadios[0].focus(); } else { roleRadios[index + 1].click(); roleRadios[index + 1].focus(); } break; default: break; } } }, watch: { value: function value(_value) { this.dispatch('ElFormItem', 'el.form.change', [this.value]); } } }); // CONCATENATED MODULE: ./packages/radio/src/radio-group.vue?vue&type=script&lang=js& /* harmony default export */ var src_radio_groupvue_type_script_lang_js_ = (radio_groupvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/radio/src/radio-group.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_radio_groupvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/radio/src/radio-group.vue" /* harmony default export */ var radio_group = (component.exports); // CONCATENATED MODULE: ./packages/radio-group/index.js /* istanbul ignore next */ radio_group.install = function (Vue) { Vue.component(radio_group.name, radio_group); }; /* harmony default export */ var packages_radio_group = __webpack_exports__["default"] = (radio_group); /***/ }) /******/ }); /***/ }), /* 170 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(171); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("e0b76d22", content, true, {}); /***/ }), /* 171 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, "@charset \"UTF-8\";.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio,.el-radio__input{white-space:nowrap;line-height:1;outline:0}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-radio{color:#606266;font-weight:500;cursor:pointer;margin-right:30px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #DCDFE6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409EFF}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#EBEEF5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#F5F7FA;border-color:#E4E7ED}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#F5F7FA}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#C0C4CC}.el-radio__input.is-disabled+span.el-radio__label{color:#C0C4CC;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409EFF;background:#409EFF}.el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409EFF}.el-radio__input.is-focus .el-radio__inner{border-color:#409EFF}.el-radio__inner{border:1px solid #DCDFE6;border-radius:100%;width:14px;height:14px;background-color:#FFF;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#409EFF}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#FFF;content:\"\";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409EFF;box-shadow:0 0 2px 2px #409EFF}.el-radio__label{font-size:14px;padding-left:10px}", ""]); // exports /***/ }), /* 172 */ /***/ (function(module, exports, __webpack_require__) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 116); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 116: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/radio/src/radio.vue?vue&type=template&id=69cd6268& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "label", { staticClass: "el-radio", class: [ _vm.border && _vm.radioSize ? "el-radio--" + _vm.radioSize : "", { "is-disabled": _vm.isDisabled }, { "is-focus": _vm.focus }, { "is-bordered": _vm.border }, { "is-checked": _vm.model === _vm.label } ], attrs: { role: "radio", "aria-checked": _vm.model === _vm.label, "aria-disabled": _vm.isDisabled, tabindex: _vm.tabIndex }, on: { keydown: function($event) { if ( !("button" in $event) && _vm._k($event.keyCode, "space", 32, $event.key, [" ", "Spacebar"]) ) { return null } $event.stopPropagation() $event.preventDefault() _vm.model = _vm.isDisabled ? _vm.model : _vm.label } } }, [ _c( "span", { staticClass: "el-radio__input", class: { "is-disabled": _vm.isDisabled, "is-checked": _vm.model === _vm.label } }, [ _c("span", { staticClass: "el-radio__inner" }), _c("input", { directives: [ { name: "model", rawName: "v-model", value: _vm.model, expression: "model" } ], ref: "radio", staticClass: "el-radio__original", attrs: { type: "radio", "aria-hidden": "true", name: _vm.name, disabled: _vm.isDisabled, tabindex: "-1" }, domProps: { value: _vm.label, checked: _vm._q(_vm.model, _vm.label) }, on: { focus: function($event) { _vm.focus = true }, blur: function($event) { _vm.focus = false }, change: [ function($event) { _vm.model = _vm.label }, _vm.handleChange ] } }) ] ), _c( "span", { staticClass: "el-radio__label", on: { keydown: function($event) { $event.stopPropagation() } } }, [ _vm._t("default"), !_vm.$slots.default ? [_vm._v(_vm._s(_vm.label))] : _vm._e() ], 2 ) ] ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/radio/src/radio.vue?vue&type=template&id=69cd6268& // EXTERNAL MODULE: external "element-ui/lib/mixins/emitter" var emitter_ = __webpack_require__(4); var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/radio/src/radio.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var radiovue_type_script_lang_js_ = ({ name: 'ElRadio', mixins: [emitter_default.a], inject: { elForm: { default: '' }, elFormItem: { default: '' } }, componentName: 'ElRadio', props: { value: {}, label: {}, disabled: Boolean, name: String, border: Boolean, size: String }, data: function data() { return { focus: false }; }, computed: { isGroup: function isGroup() { var parent = this.$parent; while (parent) { if (parent.$options.componentName !== 'ElRadioGroup') { parent = parent.$parent; } else { this._radioGroup = parent; return true; } } return false; }, model: { get: function get() { return this.isGroup ? this._radioGroup.value : this.value; }, set: function set(val) { if (this.isGroup) { this.dispatch('ElRadioGroup', 'input', [val]); } else { this.$emit('input', val); } this.$refs.radio && (this.$refs.radio.checked = this.model === this.label); } }, _elFormItemSize: function _elFormItemSize() { return (this.elFormItem || {}).elFormItemSize; }, radioSize: function radioSize() { var temRadioSize = this.size || this._elFormItemSize || (this.$ELEMENT || {}).size; return this.isGroup ? this._radioGroup.radioGroupSize || temRadioSize : temRadioSize; }, isDisabled: function isDisabled() { return this.isGroup ? this._radioGroup.disabled || this.disabled || (this.elForm || {}).disabled : this.disabled || (this.elForm || {}).disabled; }, tabIndex: function tabIndex() { return this.isDisabled || this.isGroup && this.model !== this.label ? -1 : 0; } }, methods: { handleChange: function handleChange() { var _this = this; this.$nextTick(function () { _this.$emit('change', _this.model); _this.isGroup && _this.dispatch('ElRadioGroup', 'handleChange', _this.model); }); } } }); // CONCATENATED MODULE: ./packages/radio/src/radio.vue?vue&type=script&lang=js& /* harmony default export */ var src_radiovue_type_script_lang_js_ = (radiovue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/radio/src/radio.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_radiovue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/radio/src/radio.vue" /* harmony default export */ var src_radio = (component.exports); // CONCATENATED MODULE: ./packages/radio/index.js /* istanbul ignore next */ src_radio.install = function (Vue) { Vue.component(src_radio.name, src_radio); }; /* harmony default export */ var packages_radio = __webpack_exports__["default"] = (src_radio); /***/ }), /***/ 4: /***/ (function(module, exports) { module.exports = __webpack_require__(19); /***/ }) /******/ }); /***/ }), /* 173 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(174); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("2174e7e2", content, true, {}); /***/ }), /* 174 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#FFF;background-image:none;border:1px solid #DCDFE6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#C0C4CC}.el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::-ms-input-placeholder{color:#C0C4CC}.el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea__inner:hover{border-color:#C0C4CC}.el-textarea__inner:focus{outline:0;border-color:#409EFF}.el-textarea .el-input__count{color:#909399;background:#FFF;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#C0C4CC}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#C0C4CC}.el-textarea.is-exceed .el-textarea__inner{border-color:#F56C6C}.el-textarea.is-exceed .el-input__count{color:#F56C6C}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#C0C4CC;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#FFF;line-height:initial;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#FFF;background-image:none;border-radius:4px;border:1px solid #DCDFE6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;text-align:center;height:100%;color:#C0C4CC}.el-input__inner::-ms-reveal{display:none}.el-input__inner::-webkit-input-placeholder{color:#C0C4CC}.el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input__inner::-ms-input-placeholder{color:#C0C4CC}.el-input__inner::placeholder{color:#C0C4CC}.el-input__inner:hover{border-color:#C0C4CC}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409EFF;outline:0}.el-input__suffix{right:5px;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#F5F7FA;border-color:#E4E7ED;color:#C0C4CC;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__inner::placeholder{color:#C0C4CC}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#F56C6C}.el-input.is-exceed .el-input__suffix .el-input__count{color:#F56C6C}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#F5F7FA;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #DCDFE6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}", ""]); // exports /***/ }), /* 175 */ /***/ (function(module, exports, __webpack_require__) { module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = 76); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 11: /***/ (function(module, exports) { module.exports = __webpack_require__(176); /***/ }), /***/ 21: /***/ (function(module, exports) { module.exports = __webpack_require__(177); /***/ }), /***/ 4: /***/ (function(module, exports) { module.exports = __webpack_require__(19); /***/ }), /***/ 76: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=template&id=343dd774& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { class: [ _vm.type === "textarea" ? "el-textarea" : "el-input", _vm.inputSize ? "el-input--" + _vm.inputSize : "", { "is-disabled": _vm.inputDisabled, "is-exceed": _vm.inputExceed, "el-input-group": _vm.$slots.prepend || _vm.$slots.append, "el-input-group--append": _vm.$slots.append, "el-input-group--prepend": _vm.$slots.prepend, "el-input--prefix": _vm.$slots.prefix || _vm.prefixIcon, "el-input--suffix": _vm.$slots.suffix || _vm.suffixIcon || _vm.clearable || _vm.showPassword } ], on: { mouseenter: function($event) { _vm.hovering = true }, mouseleave: function($event) { _vm.hovering = false } } }, [ _vm.type !== "textarea" ? [ _vm.$slots.prepend ? _c( "div", { staticClass: "el-input-group__prepend" }, [_vm._t("prepend")], 2 ) : _vm._e(), _vm.type !== "textarea" ? _c( "input", _vm._b( { ref: "input", staticClass: "el-input__inner", attrs: { tabindex: _vm.tabindex, type: _vm.showPassword ? _vm.passwordVisible ? "text" : "password" : _vm.type, disabled: _vm.inputDisabled, readonly: _vm.readonly, autocomplete: _vm.autoComplete || _vm.autocomplete, "aria-label": _vm.label }, on: { compositionstart: _vm.handleCompositionStart, compositionupdate: _vm.handleCompositionUpdate, compositionend: _vm.handleCompositionEnd, input: _vm.handleInput, focus: _vm.handleFocus, blur: _vm.handleBlur, change: _vm.handleChange } }, "input", _vm.$attrs, false ) ) : _vm._e(), _vm.$slots.prefix || _vm.prefixIcon ? _c( "span", { staticClass: "el-input__prefix" }, [ _vm._t("prefix"), _vm.prefixIcon ? _c("i", { staticClass: "el-input__icon", class: _vm.prefixIcon }) : _vm._e() ], 2 ) : _vm._e(), _vm.getSuffixVisible() ? _c("span", { staticClass: "el-input__suffix" }, [ _c( "span", { staticClass: "el-input__suffix-inner" }, [ !_vm.showClear || !_vm.showPwdVisible || !_vm.isWordLimitVisible ? [ _vm._t("suffix"), _vm.suffixIcon ? _c("i", { staticClass: "el-input__icon", class: _vm.suffixIcon }) : _vm._e() ] : _vm._e(), _vm.showClear ? _c("i", { staticClass: "el-input__icon el-icon-circle-close el-input__clear", on: { mousedown: function($event) { $event.preventDefault() }, click: _vm.clear } }) : _vm._e(), _vm.showPwdVisible ? _c("i", { staticClass: "el-input__icon el-icon-view el-input__clear", on: { click: _vm.handlePasswordVisible } }) : _vm._e(), _vm.isWordLimitVisible ? _c("span", { staticClass: "el-input__count" }, [ _c( "span", { staticClass: "el-input__count-inner" }, [ _vm._v( "\n " + _vm._s(_vm.textLength) + "/" + _vm._s(_vm.upperLimit) + "\n " ) ] ) ]) : _vm._e() ], 2 ), _vm.validateState ? _c("i", { staticClass: "el-input__icon", class: ["el-input__validateIcon", _vm.validateIcon] }) : _vm._e() ]) : _vm._e(), _vm.$slots.append ? _c( "div", { staticClass: "el-input-group__append" }, [_vm._t("append")], 2 ) : _vm._e() ] : _c( "textarea", _vm._b( { ref: "textarea", staticClass: "el-textarea__inner", style: _vm.textareaStyle, attrs: { tabindex: _vm.tabindex, disabled: _vm.inputDisabled, readonly: _vm.readonly, autocomplete: _vm.autoComplete || _vm.autocomplete, "aria-label": _vm.label }, on: { compositionstart: _vm.handleCompositionStart, compositionupdate: _vm.handleCompositionUpdate, compositionend: _vm.handleCompositionEnd, input: _vm.handleInput, focus: _vm.handleFocus, blur: _vm.handleBlur, change: _vm.handleChange } }, "textarea", _vm.$attrs, false ) ), _vm.isWordLimitVisible && _vm.type === "textarea" ? _c("span", { staticClass: "el-input__count" }, [ _vm._v(_vm._s(_vm.textLength) + "/" + _vm._s(_vm.upperLimit)) ]) : _vm._e() ], 2 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=template&id=343dd774& // EXTERNAL MODULE: external "element-ui/lib/mixins/emitter" var emitter_ = __webpack_require__(4); var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_); // EXTERNAL MODULE: external "element-ui/lib/mixins/migrating" var migrating_ = __webpack_require__(11); var migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_); // CONCATENATED MODULE: ./packages/input/src/calcTextareaHeight.js var hiddenTextarea = void 0; var HIDDEN_STYLE = '\n height:0 !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(targetElement) { var style = window.getComputedStyle(targetElement); 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(targetElement) { var minRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; var maxRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; if (!hiddenTextarea) { hiddenTextarea = document.createElement('textarea'); document.body.appendChild(hiddenTextarea); } var _calculateNodeStyling = calculateNodeStyling(targetElement), paddingSize = _calculateNodeStyling.paddingSize, borderSize = _calculateNodeStyling.borderSize, boxSizing = _calculateNodeStyling.boxSizing, contextStyle = _calculateNodeStyling.contextStyle; hiddenTextarea.setAttribute('style', contextStyle + ';' + HIDDEN_STYLE); hiddenTextarea.value = targetElement.value || targetElement.placeholder || ''; var height = hiddenTextarea.scrollHeight; var result = {}; 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) { var minHeight = singleRowHeight * minRows; if (boxSizing === 'border-box') { minHeight = minHeight + paddingSize + borderSize; } height = Math.max(minHeight, height); result.minHeight = minHeight + 'px'; } if (maxRows !== null) { var maxHeight = singleRowHeight * maxRows; if (boxSizing === 'border-box') { maxHeight = maxHeight + paddingSize + borderSize; } height = Math.min(maxHeight, height); } result.height = height + 'px'; hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea); hiddenTextarea = null; return result; }; // EXTERNAL MODULE: external "element-ui/lib/utils/merge" var merge_ = __webpack_require__(9); var merge_default = /*#__PURE__*/__webpack_require__.n(merge_); // EXTERNAL MODULE: external "element-ui/lib/utils/shared" var shared_ = __webpack_require__(21); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var inputvue_type_script_lang_js_ = ({ name: 'ElInput', componentName: 'ElInput', mixins: [emitter_default.a, migrating_default.a], inheritAttrs: false, inject: { elForm: { default: '' }, elFormItem: { default: '' } }, data: function data() { return { textareaCalcStyle: {}, hovering: false, focused: false, isComposing: false, passwordVisible: false }; }, props: { value: [String, Number], size: String, resize: String, form: String, disabled: Boolean, readonly: Boolean, type: { type: String, default: 'text' }, autosize: { type: [Boolean, Object], default: false }, autocomplete: { type: String, default: 'off' }, /** @Deprecated in next major version */ autoComplete: { type: String, validator: function validator(val) { false && false; return true; } }, validateEvent: { type: Boolean, default: true }, suffixIcon: String, prefixIcon: String, label: String, clearable: { type: Boolean, default: false }, showPassword: { type: Boolean, default: false }, showWordLimit: { type: Boolean, default: false }, tabindex: String }, computed: { _elFormItemSize: function _elFormItemSize() { return (this.elFormItem || {}).elFormItemSize; }, validateState: function validateState() { return this.elFormItem ? this.elFormItem.validateState : ''; }, needStatusIcon: function needStatusIcon() { return this.elForm ? this.elForm.statusIcon : false; }, validateIcon: function validateIcon() { return { validating: 'el-icon-loading', success: 'el-icon-circle-check', error: 'el-icon-circle-close' }[this.validateState]; }, textareaStyle: function textareaStyle() { return merge_default()({}, this.textareaCalcStyle, { resize: this.resize }); }, inputSize: function inputSize() { return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size; }, inputDisabled: function inputDisabled() { return this.disabled || (this.elForm || {}).disabled; }, nativeInputValue: function nativeInputValue() { return this.value === null || this.value === undefined ? '' : String(this.value); }, showClear: function showClear() { return this.clearable && !this.inputDisabled && !this.readonly && this.nativeInputValue && (this.focused || this.hovering); }, showPwdVisible: function showPwdVisible() { return this.showPassword && !this.inputDisabled && !this.readonly && (!!this.nativeInputValue || this.focused); }, isWordLimitVisible: function isWordLimitVisible() { return this.showWordLimit && this.$attrs.maxlength && (this.type === 'text' || this.type === 'textarea') && !this.inputDisabled && !this.readonly && !this.showPassword; }, upperLimit: function upperLimit() { return this.$attrs.maxlength; }, textLength: function textLength() { if (typeof this.value === 'number') { return String(this.value).length; } return (this.value || '').length; }, inputExceed: function inputExceed() { // show exceed style if length of initial value greater then maxlength return this.isWordLimitVisible && this.textLength > this.upperLimit; } }, watch: { value: function value(val) { this.$nextTick(this.resizeTextarea); if (this.validateEvent) { this.dispatch('ElFormItem', 'el.form.change', [val]); } }, // native input value is set explicitly // do not use v-model / :value in template // see: https://github.com/ElemeFE/element/issues/14521 nativeInputValue: function nativeInputValue() { this.setNativeInputValue(); }, // when change between <input> and <textarea>, // update DOM dependent value and styles // https://github.com/ElemeFE/element/issues/14857 type: function type() { var _this = this; this.$nextTick(function () { _this.setNativeInputValue(); _this.resizeTextarea(); _this.updateIconOffset(); }); } }, methods: { focus: function focus() { this.getInput().focus(); }, blur: function blur() { this.getInput().blur(); }, getMigratingConfig: function getMigratingConfig() { return { props: { 'icon': 'icon is removed, use suffix-icon / prefix-icon instead.', 'on-icon-click': 'on-icon-click is removed.' }, events: { 'click': 'click is removed.' } }; }, handleBlur: function handleBlur(event) { this.focused = false; this.$emit('blur', event); if (this.validateEvent) { this.dispatch('ElFormItem', 'el.form.blur', [this.value]); } }, select: function select() { this.getInput().select(); }, resizeTextarea: function resizeTextarea() { if (this.$isServer) return; var autosize = this.autosize, type = this.type; if (type !== 'textarea') return; if (!autosize) { this.textareaCalcStyle = { minHeight: calcTextareaHeight(this.$refs.textarea).minHeight }; return; } var minRows = autosize.minRows; var maxRows = autosize.maxRows; this.textareaCalcStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows); }, setNativeInputValue: function setNativeInputValue() { var input = this.getInput(); if (!input) return; if (input.value === this.nativeInputValue) return; input.value = this.nativeInputValue; }, handleFocus: function handleFocus(event) { this.focused = true; this.$emit('focus', event); }, handleCompositionStart: function handleCompositionStart() { this.isComposing = true; }, handleCompositionUpdate: function handleCompositionUpdate(event) { var text = event.target.value; var lastCharacter = text[text.length - 1] || ''; this.isComposing = !Object(shared_["isKorean"])(lastCharacter); }, handleCompositionEnd: function handleCompositionEnd(event) { if (this.isComposing) { this.isComposing = false; this.handleInput(event); } }, handleInput: function handleInput(event) { // should not emit input during composition // see: https://github.com/ElemeFE/element/issues/10516 if (this.isComposing) return; // hack for https://github.com/ElemeFE/element/issues/8548 // should remove the following line when we don't support IE if (event.target.value === this.nativeInputValue) return; this.$emit('input', event.target.value); // ensure native input value is controlled // see: https://github.com/ElemeFE/element/issues/12850 this.$nextTick(this.setNativeInputValue); }, handleChange: function handleChange(event) { this.$emit('change', event.target.value); }, calcIconOffset: function calcIconOffset(place) { var elList = [].slice.call(this.$el.querySelectorAll('.el-input__' + place) || []); if (!elList.length) return; var el = null; for (var i = 0; i < elList.length; i++) { if (elList[i].parentNode === this.$el) { el = elList[i]; break; } } if (!el) return; var pendantMap = { suffix: 'append', prefix: 'prepend' }; var pendant = pendantMap[place]; if (this.$slots[pendant]) { el.style.transform = 'translateX(' + (place === 'suffix' ? '-' : '') + this.$el.querySelector('.el-input-group__' + pendant).offsetWidth + 'px)'; } else { el.removeAttribute('style'); } }, updateIconOffset: function updateIconOffset() { this.calcIconOffset('prefix'); this.calcIconOffset('suffix'); }, clear: function clear() { this.$emit('input', ''); this.$emit('change', ''); this.$emit('clear'); }, handlePasswordVisible: function handlePasswordVisible() { var _this2 = this; this.passwordVisible = !this.passwordVisible; this.$nextTick(function () { _this2.focus(); }); }, getInput: function getInput() { return this.$refs.input || this.$refs.textarea; }, getSuffixVisible: function getSuffixVisible() { return this.$slots.suffix || this.suffixIcon || this.showClear || this.showPassword || this.isWordLimitVisible || this.validateState && this.needStatusIcon; } }, created: function created() { this.$on('inputSelect', this.select); }, mounted: function mounted() { this.setNativeInputValue(); this.resizeTextarea(); this.updateIconOffset(); }, updated: function updated() { this.$nextTick(this.updateIconOffset); } }); // CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=script&lang=js& /* harmony default export */ var src_inputvue_type_script_lang_js_ = (inputvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./packages/input/src/input.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_inputvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/input/src/input.vue" /* harmony default export */ var input = (component.exports); // CONCATENATED MODULE: ./packages/input/index.js /* istanbul ignore next */ input.install = function (Vue) { Vue.component(input.name, input); }; /* harmony default export */ var packages_input = __webpack_exports__["default"] = (input); /***/ }), /***/ 9: /***/ (function(module, exports) { module.exports = __webpack_require__(27); /***/ }) /******/ }); /***/ }), /* 176 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; var _util = __webpack_require__(14); /** * Show migrating guide in browser console. * * Usage: * import Migrating from 'element-ui/src/mixins/migrating'; * * mixins: [Migrating] * * add getMigratingConfig method for your component. * getMigratingConfig() { * return { * props: { * 'allow-no-selection': 'allow-no-selection is removed.', * 'selection-mode': 'selection-mode is removed.' * }, * events: { * selectionchange: 'selectionchange is renamed to selection-change.' * } * }; * }, */ exports.default = { mounted: function mounted() { if (true) return; if (!this.$vnode) return; var _getMigratingConfig = this.getMigratingConfig(), _getMigratingConfig$p = _getMigratingConfig.props, props = _getMigratingConfig$p === undefined ? {} : _getMigratingConfig$p, _getMigratingConfig$e = _getMigratingConfig.events, events = _getMigratingConfig$e === undefined ? {} : _getMigratingConfig$e; var _$vnode = this.$vnode, data = _$vnode.data, componentOptions = _$vnode.componentOptions; var definedProps = data.attrs || {}; var definedEvents = componentOptions.listeners || {}; for (var propName in definedProps) { propName = (0, _util.kebabCase)(propName); // compatible with camel case if (props[propName]) { console.warn('[Element Migrating][' + this.$options.name + '][Attribute]: ' + props[propName]); } } for (var eventName in definedEvents) { eventName = (0, _util.kebabCase)(eventName); // compatible with camel case if (events[eventName]) { console.warn('[Element Migrating][' + this.$options.name + '][Event]: ' + events[eventName]); } } }, methods: { getMigratingConfig: function getMigratingConfig() { return { props: {}, events: {} }; } } }; /***/ }), /* 177 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.isDef = isDef; exports.isKorean = isKorean; function isDef(val) { return val !== undefined && val !== null; } function isKorean(text) { var reg = /([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi; return reg.test(text); } /***/ }), /* 178 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_13_7_3_vue_loader_lib_selector_type_script_index_0_App_vue__ = __webpack_require__(56); /* unused harmony namespace reexport */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_13_7_3_vue_loader_lib_template_compiler_index_id_data_v_036be0a0_hasScoped_false_buble_transforms_node_modules_vue_loader_13_7_3_vue_loader_lib_selector_type_template_index_0_App_vue__ = __webpack_require__(208); function injectStyle (ssrContext) { __webpack_require__(179) } var normalizeComponent = __webpack_require__(55) /* script */ /* template */ /* template functional */ var __vue_template_functional__ = false /* styles */ var __vue_styles__ = injectStyle /* scopeId */ var __vue_scopeId__ = null /* moduleIdentifier (server only) */ var __vue_module_identifier__ = null var Component = normalizeComponent( __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_13_7_3_vue_loader_lib_selector_type_script_index_0_App_vue__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_13_7_3_vue_loader_lib_template_compiler_index_id_data_v_036be0a0_hasScoped_false_buble_transforms_node_modules_vue_loader_13_7_3_vue_loader_lib_selector_type_template_index_0_App_vue__["a" /* default */], __vue_template_functional__, __vue_styles__, __vue_scopeId__, __vue_module_identifier__ ) /* harmony default export */ __webpack_exports__["a"] = (Component.exports); /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(180); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("141b2846", content, true, {}); /***/ }), /* 180 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, ".config-button{position:fixed;top:50vh;right:10px}.el-col{margin-bottom:5px}.gray{color:#928b8b}.el-card__header{padding:5px 20px!important}", ""]); // exports /***/ }), /* 181 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_13_7_3_vue_loader_lib_selector_type_script_index_0_Me_vue__ = __webpack_require__(57); /* unused harmony namespace reexport */ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_13_7_3_vue_loader_lib_template_compiler_index_id_data_v_4060e0c6_hasScoped_true_buble_transforms_node_modules_vue_loader_13_7_3_vue_loader_lib_selector_type_template_index_0_Me_vue__ = __webpack_require__(202); function injectStyle (ssrContext) { __webpack_require__(182) } var normalizeComponent = __webpack_require__(55) /* script */ /* template */ /* template functional */ var __vue_template_functional__ = false /* styles */ var __vue_styles__ = injectStyle /* scopeId */ var __vue_scopeId__ = "data-v-4060e0c6" /* moduleIdentifier (server only) */ var __vue_module_identifier__ = null var Component = normalizeComponent( __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_13_7_3_vue_loader_lib_selector_type_script_index_0_Me_vue__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_13_7_3_vue_loader_lib_template_compiler_index_id_data_v_4060e0c6_hasScoped_true_buble_transforms_node_modules_vue_loader_13_7_3_vue_loader_lib_selector_type_template_index_0_Me_vue__["a" /* default */], __vue_template_functional__, __vue_styles__, __vue_scopeId__, __vue_module_identifier__ ) /* harmony default export */ __webpack_exports__["a"] = (Component.exports); /***/ }), /* 182 */ /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__(183); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var update = __webpack_require__(2)("f6102dd8", content, true, {}); /***/ }), /* 183 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(1)(false); // imports // module exports.push([module.i, "", ""]); // exports /***/ }), /* 184 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(185); /***/ }), /* 185 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); var bind = __webpack_require__(58); var Axios = __webpack_require__(186); var mergeConfig = __webpack_require__(64); var defaults = __webpack_require__(61); /** * Create an instance of Axios * * @param {Object} defaultConfig The default config for the instance * @return {Axios} A new instance of Axios */ function createInstance(defaultConfig) { var context = new Axios(defaultConfig); var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance utils.extend(instance, Axios.prototype, context); // Copy context to instance utils.extend(instance, context); return instance; } // Create the default instance to be exported var axios = createInstance(defaults); // Expose Axios class to allow class inheritance axios.Axios = Axios; // Factory for creating new instances axios.create = function create(instanceConfig) { return createInstance(mergeConfig(axios.defaults, instanceConfig)); }; // Expose Cancel & CancelToken axios.Cancel = __webpack_require__(65); axios.CancelToken = __webpack_require__(199); axios.isCancel = __webpack_require__(60); // Expose all/spread axios.all = function all(promises) { return Promise.all(promises); }; axios.spread = __webpack_require__(200); // Expose isAxiosError axios.isAxiosError = __webpack_require__(201); module.exports = axios; // Allow use of default import syntax in TypeScript module.exports.default = axios; /***/ }), /* 186 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); var buildURL = __webpack_require__(59); var InterceptorManager = __webpack_require__(187); var dispatchRequest = __webpack_require__(188); var mergeConfig = __webpack_require__(64); /** * Create a new instance of Axios * * @param {Object} instanceConfig The default config for the instance */ function Axios(instanceConfig) { this.defaults = instanceConfig; this.interceptors = { request: new InterceptorManager(), response: new InterceptorManager() }; } /** * Dispatch a request * * @param {Object} config The config specific for this request (merged with this.defaults) */ Axios.prototype.request = function request(config) { /*eslint no-param-reassign:0*/ // Allow for axios('example/url'[, config]) a la fetch API if (typeof config === 'string') { config = arguments[1] || {}; config.url = arguments[0]; } else { config = config || {}; } config = mergeConfig(this.defaults, config); // Set config.method if (config.method) { config.method = config.method.toLowerCase(); } else if (this.defaults.method) { config.method = this.defaults.method.toLowerCase(); } else { config.method = 'get'; } // Hook up interceptors middleware var chain = [dispatchRequest, undefined]; var promise = Promise.resolve(config); this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { chain.unshift(interceptor.fulfilled, interceptor.rejected); }); this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { chain.push(interceptor.fulfilled, interceptor.rejected); }); while (chain.length) { promise = promise.then(chain.shift(), chain.shift()); } return promise; }; Axios.prototype.getUri = function getUri(config) { config = mergeConfig(this.defaults, config); return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); }; // Provide aliases for supported request methods utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { /*eslint func-names:0*/ Axios.prototype[method] = function(url, config) { return this.request(mergeConfig(config || {}, { method: method, url: url, data: (config || {}).data })); }; }); utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { /*eslint func-names:0*/ Axios.prototype[method] = function(url, data, config) { return this.request(mergeConfig(config || {}, { method: method, url: url, data: data })); }; }); module.exports = Axios; /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); function InterceptorManager() { this.handlers = []; } /** * Add a new interceptor to the stack * * @param {Function} fulfilled The function to handle `then` for a `Promise` * @param {Function} rejected The function to handle `reject` for a `Promise` * * @return {Number} An ID used to remove interceptor later */ InterceptorManager.prototype.use = function use(fulfilled, rejected) { this.handlers.push({ fulfilled: fulfilled, rejected: rejected }); return this.handlers.length - 1; }; /** * Remove an interceptor from the stack * * @param {Number} id The ID that was returned by `use` */ InterceptorManager.prototype.eject = function eject(id) { if (this.handlers[id]) { this.handlers[id] = null; } }; /** * Iterate over all the registered interceptors * * This method is particularly useful for skipping over any * interceptors that may have become `null` calling `eject`. * * @param {Function} fn The function to call for each interceptor */ InterceptorManager.prototype.forEach = function forEach(fn) { utils.forEach(this.handlers, function forEachHandler(h) { if (h !== null) { fn(h); } }); }; module.exports = InterceptorManager; /***/ }), /* 188 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); var transformData = __webpack_require__(189); var isCancel = __webpack_require__(60); var defaults = __webpack_require__(61); /** * Throws a `Cancel` if cancellation has been requested. */ function throwIfCancellationRequested(config) { if (config.cancelToken) { config.cancelToken.throwIfRequested(); } } /** * Dispatch a request to the server using the configured adapter. * * @param {object} config The config that is to be used for the request * @returns {Promise} The Promise to be fulfilled */ module.exports = function dispatchRequest(config) { throwIfCancellationRequested(config); // Ensure headers exist config.headers = config.headers || {}; // Transform request data config.data = transformData( config.data, config.headers, config.transformRequest ); // Flatten headers config.headers = utils.merge( config.headers.common || {}, config.headers[config.method] || {}, config.headers ); utils.forEach( ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) { delete config.headers[method]; } ); var adapter = config.adapter || defaults.adapter; return adapter(config).then(function onAdapterResolution(response) { throwIfCancellationRequested(config); // Transform response data response.data = transformData( response.data, response.headers, config.transformResponse ); return response; }, function onAdapterRejection(reason) { if (!isCancel(reason)) { throwIfCancellationRequested(config); // Transform response data if (reason && reason.response) { reason.response.data = transformData( reason.response.data, reason.response.headers, config.transformResponse ); } } return Promise.reject(reason); }); }; /***/ }), /* 189 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); /** * Transform the data for a request or a response * * @param {Object|String} data The data to be transformed * @param {Array} headers The headers for the request or response * @param {Array|Function} fns A single function or Array of functions * @returns {*} The resulting transformed data */ module.exports = function transformData(data, headers, fns) { /*eslint no-param-reassign:0*/ utils.forEach(fns, function transform(fn) { data = fn(data, headers); }); return data; }; /***/ }), /* 190 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); module.exports = function normalizeHeaderName(headers, normalizedName) { utils.forEach(headers, function processHeader(value, name) { if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { headers[normalizedName] = value; delete headers[name]; } }); }; /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var createError = __webpack_require__(63); /** * Resolve or reject a Promise based on response status. * * @param {Function} resolve A function that resolves the promise. * @param {Function} reject A function that rejects the promise. * @param {object} response The response. */ module.exports = function settle(resolve, reject, response) { var validateStatus = response.config.validateStatus; if (!response.status || !validateStatus || validateStatus(response.status)) { resolve(response); } else { reject(createError( 'Request failed with status code ' + response.status, response.config, null, response.request, response )); } }; /***/ }), /* 192 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Update an Error with the specified config, error code, and response. * * @param {Error} error The error to update. * @param {Object} config The config. * @param {string} [code] The error code (for example, 'ECONNABORTED'). * @param {Object} [request] The request. * @param {Object} [response] The response. * @returns {Error} The error. */ module.exports = function enhanceError(error, config, code, request, response) { error.config = config; if (code) { error.code = code; } error.request = request; error.response = response; error.isAxiosError = true; error.toJSON = function toJSON() { return { // Standard message: this.message, name: this.name, // Microsoft description: this.description, number: this.number, // Mozilla fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, // Axios config: this.config, code: this.code }; }; return error; }; /***/ }), /* 193 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); module.exports = ( utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie (function standardBrowserEnv() { return { write: function write(name, value, expires, path, domain, secure) { var cookie = []; cookie.push(name + '=' + encodeURIComponent(value)); if (utils.isNumber(expires)) { cookie.push('expires=' + new Date(expires).toGMTString()); } if (utils.isString(path)) { cookie.push('path=' + path); } if (utils.isString(domain)) { cookie.push('domain=' + domain); } if (secure === true) { cookie.push('secure'); } document.cookie = cookie.join('; '); }, read: function read(name) { var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); return (match ? decodeURIComponent(match[3]) : null); }, remove: function remove(name) { this.write(name, '', Date.now() - 86400000); } }; })() : // Non standard browser env (web workers, react-native) lack needed support. (function nonStandardBrowserEnv() { return { write: function write() {}, read: function read() { return null; }, remove: function remove() {} }; })() ); /***/ }), /* 194 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isAbsoluteURL = __webpack_require__(195); var combineURLs = __webpack_require__(196); /** * Creates a new URL by combining the baseURL with the requestedURL, * only when the requestedURL is not already an absolute URL. * If the requestURL is absolute, this function returns the requestedURL untouched. * * @param {string} baseURL The base URL * @param {string} requestedURL Absolute or relative URL to combine * @returns {string} The combined full path */ module.exports = function buildFullPath(baseURL, requestedURL) { if (baseURL && !isAbsoluteURL(requestedURL)) { return combineURLs(baseURL, requestedURL); } return requestedURL; }; /***/ }), /* 195 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Determines whether the specified URL is absolute * * @param {string} url The URL to test * @returns {boolean} True if the specified URL is absolute, otherwise false */ module.exports = function isAbsoluteURL(url) { // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL). // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed // by any combination of letters, digits, plus, period, or hyphen. return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); }; /***/ }), /* 196 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Creates a new URL by combining the specified URLs * * @param {string} baseURL The base URL * @param {string} relativeURL The relative URL * @returns {string} The combined URL */ module.exports = function combineURLs(baseURL, relativeURL) { return relativeURL ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; }; /***/ }), /* 197 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); // Headers whose duplicates are ignored by node // c.f. https://nodejs.org/api/http.html#http_message_headers var ignoreDuplicateOf = [ 'age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent' ]; /** * Parse headers into an object * * ``` * Date: Wed, 27 Aug 2014 08:58:49 GMT * Content-Type: application/json * Connection: keep-alive * Transfer-Encoding: chunked * ``` * * @param {String} headers Headers needing to be parsed * @returns {Object} Headers parsed into an object */ module.exports = function parseHeaders(headers) { var parsed = {}; var key; var val; var i; if (!headers) { return parsed; } utils.forEach(headers.split('\n'), function parser(line) { i = line.indexOf(':'); key = utils.trim(line.substr(0, i)).toLowerCase(); val = utils.trim(line.substr(i + 1)); if (key) { if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { return; } if (key === 'set-cookie') { parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); } else { parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; } } }); return parsed; }; /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(5); module.exports = ( utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test // whether the request URL is of the same origin as current location. (function standardBrowserEnv() { var msie = /(msie|trident)/i.test(navigator.userAgent); var urlParsingNode = document.createElement('a'); var originURL; /** * Parse a URL to discover it's components * * @param {String} url The URL to be parsed * @returns {Object} */ function resolveURL(url) { var href = url; if (msie) { // IE needs attribute set twice to normalize properties urlParsingNode.setAttribute('href', href); href = urlParsingNode.href; } urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils return { href: urlParsingNode.href, protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', host: urlParsingNode.host, search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', hostname: urlParsingNode.hostname, port: urlParsingNode.port, pathname: (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname : '/' + urlParsingNode.pathname }; } originURL = resolveURL(window.location.href); /** * Determine if a URL shares the same origin as the current location * * @param {String} requestURL The URL to test * @returns {boolean} True if URL shares the same origin, otherwise false */ return function isURLSameOrigin(requestURL) { var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; return (parsed.protocol === originURL.protocol && parsed.host === originURL.host); }; })() : // Non standard browser envs (web workers, react-native) lack needed support. (function nonStandardBrowserEnv() { return function isURLSameOrigin() { return true; }; })() ); /***/ }), /* 199 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Cancel = __webpack_require__(65); /** * A `CancelToken` is an object that can be used to request cancellation of an operation. * * @class * @param {Function} executor The executor function. */ function CancelToken(executor) { if (typeof executor !== 'function') { throw new TypeError('executor must be a function.'); } var resolvePromise; this.promise = new Promise(function promiseExecutor(resolve) { resolvePromise = resolve; }); var token = this; executor(function cancel(message) { if (token.reason) { // Cancellation has already been requested return; } token.reason = new Cancel(message); resolvePromise(token.reason); }); } /** * Throws a `Cancel` if cancellation has been requested. */ CancelToken.prototype.throwIfRequested = function throwIfRequested() { if (this.reason) { throw this.reason; } }; /** * Returns an object that contains a new `CancelToken` and a function that, when called, * cancels the `CancelToken`. */ CancelToken.source = function source() { var cancel; var token = new CancelToken(function executor(c) { cancel = c; }); return { token: token, cancel: cancel }; }; module.exports = CancelToken; /***/ }), /* 200 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Syntactic sugar for invoking a function and expanding an array for arguments. * * Common use case would be to use `Function.prototype.apply`. * * ```js * function f(x, y, z) {} * var args = [1, 2, 3]; * f.apply(null, args); * ``` * * With `spread` this example can be re-written. * * ```js * spread(function(x, y, z) {})([1, 2, 3]); * ``` * * @param {Function} callback * @returns {Function} */ module.exports = function spread(callback) { return function wrap(arr) { return callback.apply(null, arr); }; }; /***/ }), /* 201 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Determines whether the payload is an error thrown by Axios * * @param {*} payload The value to test * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false */ module.exports = function isAxiosError(payload) { return (typeof payload === 'object') && (payload.isAxiosError === true); }; /***/ }), /* 202 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-row',{attrs:{"gutter":10}},[_c('el-col',{attrs:{"span":12}},[_c('el-card',{attrs:{"shadow":"hover"}},[_c('span',[_vm._v("安卓书币")]),_vm._v(" "),_c('br'),_c('strong',{staticClass:"gray"},[_vm._v(_vm._s(_vm.me.androidBookCoin)+" 个")])])],1),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('el-card',{attrs:{"shadow":"hover"}},[_c('span',[_vm._v("苹果书币")]),_vm._v(" "),_c('br'),_c('strong',{staticClass:"gray"},[_vm._v(_vm._s(_vm.me.iosBookCoin)+" 个")])])],1),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('el-card',{attrs:{"shadow":"hover"}},[_c('span',[_vm._v("无限卡")]),_vm._v(" "),_c('br'),_c('strong',{staticClass:"gray"},[_vm._v(_vm._s(_vm.me.infiniteCardDays)+" 天")])])],1),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('el-card',{attrs:{"shadow":"hover"}},[_c('span',[_vm._v("源码地址")]),_vm._v(" "),_c('br'),_c('strong',{staticClass:"gray"},[_c('a',{attrs:{"href":"https://gitee.com/diduweiwu-itestdev/wechat-reader-ext","target":"_blank"}},[_vm._v("点击直达🧐")])])])],1)],1)],1)} var staticRenderFns = [] var esExports = { render: render, staticRenderFns: staticRenderFns } /* harmony default export */ __webpack_exports__["a"] = (esExports); /***/ }), /* 203 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony default export */ __webpack_exports__["a"] = ({ data: function data() { return { config: { // content width 阅读区域宽度 readContentWidth: 1000, // 隐藏工具栏 isHideControls: false } }; }, methods: { // 更改内容区域宽度 resizeWidth: function resizeWidth(newWidth) { document.querySelector(".readerContent .app_content").style["max-width"] = newWidth + "px"; document.querySelector(".readerTopBar").style["max-width"] = newWidth + "px"; var myEvent = new Event("resize"); window.dispatchEvent(myEvent); } }, watch: { "config.readContentWidth": { handler: function handler(newValue, oldValue) { // 设置阅读区域宽度 this.resizeWidth(newValue); }, deep: true }, "config.isHideControls": { handler: function handler(newValue, oldValue) { // 只有在正向滚动,并且到达底部时候,才进行翻页 document.querySelector(".readerControls").style.opacity = newValue ? "1" : "0"; }, deep: true, immediate: true } } }); /***/ }), /* 204 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony default export */ __webpack_exports__["a"] = ({ // 自动刷新页面,微信读书web端有内存泄漏问题 //当切换章节的时候,会导致内存积压,此时只能通过刷新页面释放内存 // 故我们在开启 自动时长模式时候会开启这个定时任务去释放内存 data: function data() { return { // wait seconds to reload 等待刷新页面的时间 config: { waitSecondsToReload: 0 }, timeAutoReloadPage: null, // 刷新页面的秒数间隔 countPageReloadSeconds: 300 }; }, methods: { plusWaitSeconds: function plusWaitSeconds() { return this.config.waitSecondsToReload++; }, resetWaitSeconds: function resetWaitSeconds() { this.config.waitSecondsToReload = 0; }, startAutoReloadPage: function startAutoReloadPage() { var _this = this; // 5分钟刷新一次页面 if (!this.timeAutoReloadPage) { this.timeAutoReloadPage = setInterval(function () { var seconds = _this.plusWaitSeconds(); // 等待 大于或等于${this.countPageReloadSeconds} 秒的时候刷新页面 if (seconds >= _this.countPageReloadSeconds) { _this.resetWaitSeconds(); // window.location.reload() } }, 1000); } }, stopAutoReloadPage: function stopAutoReloadPage() { if (this.timeAutoReloadPage) { clearInterval(this.timeAutoReloadPage); this.timeAutoReloadPage = null; this.resetWaitSeconds(); } } } }); /***/ }), /* 205 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony default export */ __webpack_exports__["a"] = ({ methods: { fireKeyEvent: function fireKeyEvent(el, evtType, keyCode) { var evtObj = void 0; if (document.createEvent) { // firefox 浏览器下模拟事件 if (window.KeyEvent) { evtObj = document.createEvent("KeyEvents"); evtObj.initKeyEvent(evtType, true, true); el.dispatchEvent(evtObj); return; } // chrome 浏览器下模拟事件 evtObj = document.createEvent("UIEvents"); evtObj.initUIEvent(evtType, true, true); delete evtObj.keyCode; //为了模拟keycode if (typeof evtObj.keyCode === "undefined") { Object.defineProperty(evtObj, "keyCode", { value: keyCode }); } else { evtObj.key = String.fromCharCode(keyCode); } if (typeof evtObj.ctrlKey === "undefined") { //为了模拟ctrl键 Object.defineProperty(evtObj, "ctrlKey", { value: true }); } else { evtObj.ctrlKey = true; } el.dispatchEvent(evtObj); return; } //IE 浏览器下模拟事件 if (document.createEventObject) { evtObj = document.createEventObject(); evtObj.keyCode = keyCode; el.fireEvent("on" + evtType, evtObj); } } } }); /***/ }), /* 206 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony default export */ __webpack_exports__["a"] = ({ data: function data() { return { config: {} }; }, watch: { config: { handler: function handler() { localStorage.setItem("config", JSON.stringify(this.config)); }, deep: true } }, methods: { loadConfig: function loadConfig() { var configJson = localStorage.getItem("config"); if (!configJson) { return; } try { var config = JSON.parse(configJson); Object.assign(this.config, config); } catch (e) { console.log("解析配置出错,使用默认配置"); } }, sleep: function sleep(time) { return new Promise(function (resolve) { return setTimeout(resolve, time); }); } }, mounted: function mounted() { var _this = this; // 等待元素加载完成再进行配置加载 var timeCheck = setInterval(function () { var loadFlag = document.getElementsByClassName('readerFooter').length; console.log("\u7EE7\u7EED\u7B49\u5F85\u548C\u68C0\u67E5 " + loadFlag); if (loadFlag) { console.log('页面加载完成,开始加载配置'); _this.loadConfig(); clearInterval(timeCheck); } }, 1000); } }); /***/ }), /* 207 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony default export */ __webpack_exports__["a"] = ({ data: function data() { return { config: { waitSecondsToSwitch: 0 }, countSwitchPageSeconds: 50 }; }, methods: { plusWaitSwitchSeconds: function plusWaitSwitchSeconds() { return this.config.waitSecondsToSwitch++; }, resetWaitSwitchSeconds: function resetWaitSwitchSeconds() { this.config.waitSecondsToSwitch = 0; }, startAutoSwitchPage: function startAutoSwitchPage(switchToNextPage) { var _this = this; if (!switchToNextPage) { return null; } return setInterval(function () { var seconds = _this.plusWaitSwitchSeconds(); // 等待 大于或等于${this.countSwitchPageSeconds} 秒的时候刷新页面 if (seconds >= _this.countSwitchPageSeconds) { _this.resetWaitSwitchSeconds(); switchToNextPage(); } }, 1000); }, stopAutoSwitchPage: function stopAutoSwitchPage(timeAutoSwitchPage) { if (timeAutoSwitchPage) { clearInterval(timeAutoSwitchPage); } this.resetWaitSwitchSeconds(); return null; } } }); /***/ }), /* 208 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-popover',{attrs:{"placement":"left","width":"800"},scopedSlots:_vm._u([{key:"reference",fn:function(){return [_c('el-button',{staticClass:"config-button",style:({ opacity: _vm.config.isScrolling ? 0.5 : 1 }),attrs:{"type":"default","plain":"","circle":""}},[_vm._v("读\n ")])]},proxy:true}])},[_vm._v(" "),_c('el-row',{attrs:{"gutter":5}},[_c('el-col',{attrs:{"span":12}},[_c('el-card',{staticStyle:{"min-height":"411px"}},[_c('div',{attrs:{"slot":"header"},slot:"header"},[_vm._v("阅读设置")]),_vm._v(" "),_c('el-form',{ref:"autoScroll",attrs:{"model":_vm.config,"label-width":"100px","size":"mini"}},[_c('el-form-item',{scopedSlots:_vm._u([{key:"label",fn:function(){return [_c('el-tooltip',{attrs:{"placement":"left"}},[_c('div',{attrs:{"slot":"content"},slot:"content"},[_vm._v("\n 开启自动刷时长模式后,可将页面放到后台 "),_c('br'),_vm._v("\n 会间隔一定时间刷新页面,避免被微信读书检测导致暂停时长累积\n "),_c('br'),_vm._v("\n 如果您一直在前端阅读,则可以关闭该项避免影响阅读体验\n ")]),_vm._v(" "),_c('span',[_c('i',{staticClass:"el-icon-info"}),_vm._v("自动时长")])])]},proxy:true}])},[_vm._v(" "),_c('el-radio-group',{model:{value:(_vm.config.timeFlashMode),callback:function ($$v) {_vm.$set(_vm.config, "timeFlashMode", $$v)},expression:"config.timeFlashMode"}},[_c('el-radio',{attrs:{"border":"","label":true}},[_vm._v("开启")]),_vm._v(" "),_c('el-radio',{attrs:{"border":"","label":false}},[_vm._v("关闭")])],1)],1),_vm._v(" "),_c('el-form-item',{attrs:{"label":"自动阅读"}},[_c('el-radio-group',{attrs:{"size":"mini"},model:{value:(_vm.config.isScrolling),callback:function ($$v) {_vm.$set(_vm.config, "isScrolling", $$v)},expression:"config.isScrolling"}},[_c('el-radio',{attrs:{"border":"","label":true}},[_vm._v("开启")]),_vm._v(" "),_c('el-radio',{attrs:{"border":"","label":false}},[_vm._v("关闭")])],1)],1),_vm._v(" "),_c('el-form-item',{attrs:{"label":"自动步长"}},[_c('el-input',{attrs:{"disabled":_vm.config.isScrolling,"min":"1","max":"200","maxlength":"3","type":"number"},scopedSlots:_vm._u([{key:"suffix",fn:function(){return [_c('i',[_vm._v("像素")])]},proxy:true}]),model:{value:(_vm.config.scrollOffset),callback:function ($$v) {_vm.$set(_vm.config, "scrollOffset", $$v)},expression:"config.scrollOffset"}})],1),_vm._v(" "),_c('el-form-item',{attrs:{"label":"滚动间隔"}},[_c('el-input',{attrs:{"disabled":_vm.config.isScrolling,"min":"200","max":"90000","maxlength":"5"},scopedSlots:_vm._u([{key:"suffix",fn:function(){return [_c('i',[_vm._v("毫秒")])]},proxy:true}]),model:{value:(_vm.config.timerScrollIMs),callback:function ($$v) {_vm.$set(_vm.config, "timerScrollIMs", $$v)},expression:"config.timerScrollIMs"}})],1),_vm._v(" "),_c('el-form-item',{attrs:{"label":"阅读方向"}},[_c('el-radio-group',{attrs:{"disabled":_vm.config.isScrolling},model:{value:(_vm.config.scrollFlag),callback:function ($$v) {_vm.$set(_vm.config, "scrollFlag", $$v)},expression:"config.scrollFlag"}},[_c('el-radio',{attrs:{"border":"","label":1}},[_vm._v("正向")]),_vm._v(" "),_c('el-radio',{attrs:{"border":"","label":-1}},[_vm._v("反向")])],1)],1),_vm._v(" "),_c('el-form-item',{attrs:{"label":"自动翻页"}},[_c('el-radio-group',{attrs:{"disabled":_vm.config.isScrolling},model:{value:(_vm.config.isAutoSwitchPage),callback:function ($$v) {_vm.$set(_vm.config, "isAutoSwitchPage", $$v)},expression:"config.isAutoSwitchPage"}},[_c('el-radio',{attrs:{"border":"","label":true}},[_vm._v("开启")]),_vm._v(" "),_c('el-radio',{attrs:{"border":"","label":false}},[_vm._v("关闭")])],1)],1),_vm._v(" "),_c('el-form-item',{attrs:{"label":"翻页方向"}},[_c('el-radio-group',{attrs:{"disabled":_vm.config.isScrolling || !_vm.config.isAutoSwitchPage},model:{value:(_vm.config.autoSwitchPageFlag),callback:function ($$v) {_vm.$set(_vm.config, "autoSwitchPageFlag", $$v)},expression:"config.autoSwitchPageFlag"}},[_c('el-radio',{attrs:{"border":"","label":1}},[_vm._v("正向")]),_vm._v(" "),_c('el-radio',{attrs:{"border":"","label":-1}},[_vm._v("反向")])],1)],1)],1)],1)],1),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('el-card',[_c('div',{attrs:{"slot":"header"},slot:"header"},[_vm._v("界面设置")]),_vm._v(" "),_c('el-form',{ref:"uiConfig",attrs:{"model":_vm.config,"label-width":"100px","size":"mini"}},[_c('el-form-item',{attrs:{"label":"阅读宽度"}},[_c('el-input',{attrs:{"type":"number","max":20000,"min":100},scopedSlots:_vm._u([{key:"suffix",fn:function(){return [_c('i',[_vm._v("像素")])]},proxy:true}]),model:{value:(_vm.config.readContentWidth),callback:function ($$v) {_vm.$set(_vm.config, "readContentWidth", $$v)},expression:"config.readContentWidth"}})],1),_vm._v(" "),_c('el-form-item',{attrs:{"label":"工具栏"}},[_c('el-radio-group',{model:{value:(_vm.config.isHideControls),callback:function ($$v) {_vm.$set(_vm.config, "isHideControls", $$v)},expression:"config.isHideControls"}},[_c('el-radio',{attrs:{"border":"","label":true}},[_vm._v("显示")]),_vm._v(" "),_c('el-radio',{attrs:{"border":"","label":false}},[_vm._v("隐藏")])],1)],1)],1)],1)],1),_vm._v(" "),_c('el-col',{attrs:{"span":12}},[_c('el-card',[_c('div',{attrs:{"slot":"header"},slot:"header"},[_vm._v("我的账户")]),_vm._v(" "),_c('Me')],1)],1)],1)],1)} var staticRenderFns = [] var esExports = { render: render, staticRenderFns: staticRenderFns } /* harmony default export */ __webpack_exports__["a"] = (esExports); /***/ }) /******/ ]); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址