From 4ca56cbc6ba2b5a114612dcfbd59f83f2edc46d7 Mon Sep 17 00:00:00 2001 From: shubhadip Date: Sat, 11 Feb 2023 19:53:09 +0530 Subject: [PATCH 1/2] fix: clear btn functionality ffix --- .eslintcache | 1 - package.json | 2 +- serve/datepicker.js | 17709 ++------------------ src/components/datepicker/DateInput.vue | 1 + src/components/datepicker/datepicker.css | 4 +- src/components/datepicker/locale/index.ts | 4 +- src/components/examples/VModel.vue | 4 +- 7 files changed, 1714 insertions(+), 16011 deletions(-) delete mode 100644 .eslintcache diff --git a/.eslintcache b/.eslintcache deleted file mode 100644 index 0bd9fd8..0000000 --- a/.eslintcache +++ /dev/null @@ -1 +0,0 @@ -[{"/Users/shubhadipmaity/projects/vuejs3-datepicker/src/App.vue":"1"},{"size":4144,"mtime":1667540200834}] \ No newline at end of file diff --git a/package.json b/package.json index e7a2e9e..665a717 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuejs3-datepicker", - "version": "1.0.11", + "version": "1.0.14", "description": "Vue 3 datepicker", "files": [ "dist/*", diff --git a/serve/datepicker.js b/serve/datepicker.js index c48c030..268db21 100644 --- a/serve/datepicker.js +++ b/serve/datepicker.js @@ -1,74 +1,10 @@ -var _ErrorTypeStrings; - -function _ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { _ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { _ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -(function (l, r) { - if (l.getElementById('livereloadscript')) return; - r = l.createElement('script'); - r.async = 1; - r.src = '//' + (window.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; - r.id = 'livereloadscript'; - l.getElementsByTagName('head')[0].appendChild(r); -})(window.document); -/** +var _ErrorTypeStrings;function _ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;iarr.length)len=arr.length;for(var i=0,arr2=new Array(len);i N/A @@ -78,5703 +14,476 @@ var isGloballyWhitelisted = /*#__PURE__*/makeMap(GLOBALS_WHITE_LISTED); * - nomodule -> noModule * - novalidate -> noValidate * - readonly -> readOnly - */ - -var specialBooleanAttrs = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly"; -var isSpecialBooleanAttr = /*#__PURE__*/makeMap(specialBooleanAttrs); - -function normalizeStyle(value) { - if (isArray(value)) { - var res = {}; - - for (var i = 0; i < value.length; i++) { - var item = value[i]; - var normalized = normalizeStyle(isString(item) ? parseStringStyle(item) : item); - - if (normalized) { - for (var key in normalized) { - res[key] = normalized[key]; - } - } - } - - return res; - } else if (isObject(value)) { - return value; - } -} - -var listDelimiterRE = /;(?![^(]*\))/g; -var propertyDelimiterRE = /:(.+)/; - -function parseStringStyle(cssText) { - var ret = {}; - cssText.split(listDelimiterRE).forEach(function (item) { - if (item) { - var tmp = item.split(propertyDelimiterRE); - tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); - } - }); - return ret; -} - -function normalizeClass(value) { - var res = ''; - - if (isString(value)) { - res = value; - } else if (isArray(value)) { - for (var i = 0; i < value.length; i++) { - res += normalizeClass(value[i]) + ' '; - } - } else if (isObject(value)) { - for (var name in value) { - if (value[name]) { - res += name + ' '; - } - } - } - - return res.trim(); -} // These tag configs are shared between compiler-dom and runtime-dom, so they + */var specialBooleanAttrs="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly";var isSpecialBooleanAttr=/*#__PURE__*/makeMap(specialBooleanAttrs);function normalizeStyle(value){if(isArray(value)){var res={};for(var i=0;i1&&(ret[tmp[0].trim()]=tmp[1].trim());}});return ret;}function normalizeClass(value){var res='';if(isString(value)){res=value;}else if(isArray(value)){for(var i=0;i")] = val; - return entries; - }, {})); - } else if (isSet(val)) { - return _defineProperty({}, "Set(".concat(val.size, ")"), _toConsumableArray(val.values())); - } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { - return String(val); - } - - return val; -}; - -var EMPTY_OBJ = Object.freeze({}); -var EMPTY_ARR = Object.freeze([]); - -var NOOP = function NOOP() {}; -/** + */var toDisplayString=function toDisplayString(val){return val==null?'':isObject(val)?JSON.stringify(val,replacer,2):String(val);};var replacer=function replacer(_key,val){if(isMap(val)){return _defineProperty({},"Map(".concat(val.size,")"),_toConsumableArray(val.entries()).reduce(function(entries,_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],val=_ref2[1];entries["".concat(key," =>")]=val;return entries;},{}));}else if(isSet(val)){return _defineProperty({},"Set(".concat(val.size,")"),_toConsumableArray(val.values()));}else if(isObject(val)&&!isArray(val)&&!isPlainObject(val)){return String(val);}return val;};var EMPTY_OBJ=Object.freeze({});var EMPTY_ARR=Object.freeze([]);var NOOP=function NOOP(){};/** * Always return false. - */ - - -var NO = function NO() { - return false; -}; - -var onRE = /^on[^a-z]/; - -var isOn = function isOn(key) { - return onRE.test(key); -}; - -var isModelListener = function isModelListener(key) { - return key.startsWith('onUpdate:'); -}; - -var extend = Object.assign; - -var remove = function remove(arr, el) { - var i = arr.indexOf(el); - - if (i > -1) { - arr.splice(i, 1); - } -}; - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -var hasOwn = function hasOwn(val, key) { - return hasOwnProperty.call(val, key); -}; - -var isArray = Array.isArray; - -var isMap = function isMap(val) { - return toTypeString(val) === '[object Map]'; -}; - -var isSet = function isSet(val) { - return toTypeString(val) === '[object Set]'; -}; - -var isDate = function isDate(val) { - return val instanceof Date; -}; - -var isFunction = function isFunction(val) { - return typeof val === 'function'; -}; - -var isString = function isString(val) { - return typeof val === 'string'; -}; - -var isSymbol = function isSymbol(val) { - return _typeof(val) === 'symbol'; -}; - -var isObject = function isObject(val) { - return val !== null && _typeof(val) === 'object'; -}; - -var isPromise = function isPromise(val) { - return isObject(val) && isFunction(val.then) && isFunction(val.catch); -}; - -var objectToString = Object.prototype.toString; - -var toTypeString = function toTypeString(value) { - return objectToString.call(value); -}; - -var toRawType = function toRawType(value) { - // extract "RawType" from strings like "[object RawType]" - return toTypeString(value).slice(8, -1); -}; - -var isPlainObject = function isPlainObject(val) { - return toTypeString(val) === '[object Object]'; -}; - -var isIntegerKey = function isIntegerKey(key) { - return isString(key) && key !== 'NaN' && key[0] !== '-' && '' + parseInt(key, 10) === key; -}; - -var isReservedProp = /*#__PURE__*/makeMap( // the leading comma is intentional so empty string "" is also included -',key,ref,' + 'onVnodeBeforeMount,onVnodeMounted,' + 'onVnodeBeforeUpdate,onVnodeUpdated,' + 'onVnodeBeforeUnmount,onVnodeUnmounted'); - -var cacheStringFunction = function cacheStringFunction(fn) { - var cache = Object.create(null); - return function (str) { - var hit = cache[str]; - return hit || (cache[str] = fn(str)); - }; -}; - -var camelizeRE = /-(\w)/g; -/** + */var NO=function NO(){return false;};var onRE=/^on[^a-z]/;var isOn=function isOn(key){return onRE.test(key);};var isModelListener=function isModelListener(key){return key.startsWith('onUpdate:');};var extend=Object.assign;var remove=function remove(arr,el){var i=arr.indexOf(el);if(i>-1){arr.splice(i,1);}};var hasOwnProperty=Object.prototype.hasOwnProperty;var hasOwn=function hasOwn(val,key){return hasOwnProperty.call(val,key);};var isArray=Array.isArray;var isMap=function isMap(val){return toTypeString(val)==='[object Map]';};var isSet=function isSet(val){return toTypeString(val)==='[object Set]';};var isDate=function isDate(val){return val instanceof Date;};var isFunction=function isFunction(val){return typeof val==='function';};var isString=function isString(val){return typeof val==='string';};var isSymbol=function isSymbol(val){return _typeof(val)==='symbol';};var isObject=function isObject(val){return val!==null&&_typeof(val)==='object';};var isPromise=function isPromise(val){return isObject(val)&&isFunction(val.then)&&isFunction(val.catch);};var objectToString=Object.prototype.toString;var toTypeString=function toTypeString(value){return objectToString.call(value);};var toRawType=function toRawType(value){// extract "RawType" from strings like "[object RawType]" +return toTypeString(value).slice(8,-1);};var isPlainObject=function isPlainObject(val){return toTypeString(val)==='[object Object]';};var isIntegerKey=function isIntegerKey(key){return isString(key)&&key!=='NaN'&&key[0]!=='-'&&''+parseInt(key,10)===key;};var isReservedProp=/*#__PURE__*/makeMap(// the leading comma is intentional so empty string "" is also included +',key,ref,'+'onVnodeBeforeMount,onVnodeMounted,'+'onVnodeBeforeUpdate,onVnodeUpdated,'+'onVnodeBeforeUnmount,onVnodeUnmounted');var cacheStringFunction=function cacheStringFunction(fn){var cache=Object.create(null);return function(str){var hit=cache[str];return hit||(cache[str]=fn(str));};};var camelizeRE=/-(\w)/g;/** * @private - */ - -var camelize = cacheStringFunction(function (str) { - return str.replace(camelizeRE, function (_, c) { - return c ? c.toUpperCase() : ''; - }); -}); -var hyphenateRE = /\B([A-Z])/g; -/** + */var camelize=cacheStringFunction(function(str){return str.replace(camelizeRE,function(_,c){return c?c.toUpperCase():'';});});var hyphenateRE=/\B([A-Z])/g;/** * @private - */ - -var hyphenate = cacheStringFunction(function (str) { - return str.replace(hyphenateRE, '-$1').toLowerCase(); -}); -/** + */var hyphenate=cacheStringFunction(function(str){return str.replace(hyphenateRE,'-$1').toLowerCase();});/** * @private - */ - -var capitalize = cacheStringFunction(function (str) { - return str.charAt(0).toUpperCase() + str.slice(1); -}); -/** + */var capitalize=cacheStringFunction(function(str){return str.charAt(0).toUpperCase()+str.slice(1);});/** * @private - */ - -var toHandlerKey = cacheStringFunction(function (str) { - return str ? "on".concat(capitalize(str)) : ""; -}); // compare whether a value has changed, accounting for NaN. - -var hasChanged = function hasChanged(value, oldValue) { - return value !== oldValue && (value === value || oldValue === oldValue); -}; - -var invokeArrayFns = function invokeArrayFns(fns, arg) { - for (var i = 0; i < fns.length; i++) { - fns[i](arg); - } -}; - -var def = function def(obj, key, value) { - Object.defineProperty(obj, key, { - configurable: true, - enumerable: false, - value: value - }); -}; - -var toNumber = function toNumber(val) { - var n = parseFloat(val); - return isNaN(n) ? val : n; -}; - -var _globalThis; - -var getGlobalThis = function getGlobalThis() { - return _globalThis || (_globalThis = typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}); -}; - -var targetMap = new WeakMap(); -var effectStack = []; -var activeEffect; -var ITERATE_KEY = Symbol('iterate'); -var MAP_KEY_ITERATE_KEY = Symbol('Map key iterate'); - -function isEffect(fn) { - return fn && fn._isEffect === true; -} - -function effect(fn) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : EMPTY_OBJ; - - if (isEffect(fn)) { - fn = fn.raw; - } - - var effect = createReactiveEffect(fn, options); - - if (!options.lazy) { - effect(); - } - - return effect; -} - -function stop(effect) { - if (effect.active) { - cleanup(effect); - - if (effect.options.onStop) { - effect.options.onStop(); - } - - effect.active = false; - } -} - -var uid = 0; - -function createReactiveEffect(fn, options) { - var effect = function reactiveEffect() { - if (!effect.active) { - return options.scheduler ? undefined : fn(); - } - - if (!effectStack.includes(effect)) { - cleanup(effect); - - try { - enableTracking(); - effectStack.push(effect); - activeEffect = effect; - return fn(); - } finally { - effectStack.pop(); - resetTracking(); - activeEffect = effectStack[effectStack.length - 1]; - } - } - }; - - effect.id = uid++; - effect.allowRecurse = !!options.allowRecurse; - effect._isEffect = true; - effect.active = true; - effect.raw = fn; - effect.deps = []; - effect.options = options; - return effect; -} - -function cleanup(effect) { - var deps = effect.deps; - - if (deps.length) { - for (var i = 0; i < deps.length; i++) { - deps[i].delete(effect); - } - - deps.length = 0; - } -} - -var shouldTrack = true; -var trackStack = []; - -function pauseTracking() { - trackStack.push(shouldTrack); - shouldTrack = false; -} - -function enableTracking() { - trackStack.push(shouldTrack); - shouldTrack = true; -} - -function resetTracking() { - var last = trackStack.pop(); - shouldTrack = last === undefined ? true : last; -} - -function track(target, type, key) { - if (!shouldTrack || activeEffect === undefined) { - return; - } - - var depsMap = targetMap.get(target); - - if (!depsMap) { - targetMap.set(target, depsMap = new Map()); - } - - var dep = depsMap.get(key); - - if (!dep) { - depsMap.set(key, dep = new Set()); - } - - if (!dep.has(activeEffect)) { - dep.add(activeEffect); - activeEffect.deps.push(dep); - - if (activeEffect.options.onTrack) { - activeEffect.options.onTrack({ - effect: activeEffect, - target: target, - type: type, - key: key - }); - } - } -} - -function trigger(target, type, key, newValue, oldValue, oldTarget) { - var depsMap = targetMap.get(target); - - if (!depsMap) { - // never been tracked - return; - } - - var effects = new Set(); - - var add = function add(effectsToAdd) { - if (effectsToAdd) { - effectsToAdd.forEach(function (effect) { - if (effect !== activeEffect || effect.allowRecurse) { - effects.add(effect); - } - }); - } - }; - - if (type === "clear" - /* CLEAR */ - ) { - // collection being cleared - // trigger all effects for target - depsMap.forEach(add); - } else if (key === 'length' && isArray(target)) { - depsMap.forEach(function (dep, key) { - if (key === 'length' || key >= newValue) { - add(dep); - } - }); - } else { - // schedule runs for SET | ADD | DELETE - if (key !== void 0) { - add(depsMap.get(key)); - } // also run for iteration key on ADD | DELETE | Map.SET - - - switch (type) { - case "add" - /* ADD */ - : - if (!isArray(target)) { - add(depsMap.get(ITERATE_KEY)); - - if (isMap(target)) { - add(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } else if (isIntegerKey(key)) { - // new index added to array -> length changes - add(depsMap.get('length')); - } - - break; - - case "delete" - /* DELETE */ - : - if (!isArray(target)) { - add(depsMap.get(ITERATE_KEY)); - - if (isMap(target)) { - add(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } - - break; - - case "set" - /* SET */ - : - if (isMap(target)) { - add(depsMap.get(ITERATE_KEY)); - } - - break; - } - } - - var run = function run(effect) { - if (effect.options.onTrigger) { - effect.options.onTrigger({ - effect: effect, - target: target, - key: key, - type: type, - newValue: newValue, - oldValue: oldValue, - oldTarget: oldTarget - }); - } - - if (effect.options.scheduler) { - effect.options.scheduler(effect); - } else { - effect(); - } - }; - - effects.forEach(run); -} - -var builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map(function (key) { - return Symbol[key]; -}).filter(isSymbol)); -var get = /*#__PURE__*/createGetter(); -var shallowGet = /*#__PURE__*/createGetter(false, true); -var readonlyGet = /*#__PURE__*/createGetter(true); -var shallowReadonlyGet = /*#__PURE__*/createGetter(true, true); -var arrayInstrumentations = {}; -['includes', 'indexOf', 'lastIndexOf'].forEach(function (key) { - var method = Array.prototype[key]; - - arrayInstrumentations[key] = function () { - var arr = toRaw(this); - - for (var i = 0, l = this.length; i < l; i++) { - track(arr, "get" - /* GET */ - , i + ''); - } // we run the method using the original args first (which may be reactive) - - - for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) { - args[_key2] = arguments[_key2]; - } - - var res = method.apply(arr, args); - - if (res === -1 || res === false) { - // if that didn't work, run it again using raw values. - return method.apply(arr, args.map(toRaw)); - } else { - return res; - } - }; -}); -['push', 'pop', 'shift', 'unshift', 'splice'].forEach(function (key) { - var method = Array.prototype[key]; - - arrayInstrumentations[key] = function () { - pauseTracking(); - - for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) { - args[_key3] = arguments[_key3]; - } - - var res = method.apply(this, args); - resetTracking(); - return res; - }; -}); - -function createGetter() { - var isReadonly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var shallow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - return function get(target, key, receiver) { - if (key === "__v_isReactive" - /* IS_REACTIVE */ - ) { - return !isReadonly; - } else if (key === "__v_isReadonly" - /* IS_READONLY */ - ) { - return isReadonly; - } else if (key === "__v_raw" - /* RAW */ - && receiver === (isReadonly ? readonlyMap : reactiveMap).get(target)) { - return target; - } - - var targetIsArray = isArray(target); - - if (targetIsArray && hasOwn(arrayInstrumentations, key)) { - return Reflect.get(arrayInstrumentations, key, receiver); - } - - var res = Reflect.get(target, key, receiver); - - if (isSymbol(key) ? builtInSymbols.has(key) : key === "__proto__" || key === "__v_isRef") { - return res; - } - - if (!isReadonly) { - track(target, "get" - /* GET */ - , key); - } - - if (shallow) { - return res; - } - - if (isRef(res)) { - // ref unwrapping - does not apply for Array + integer key. - var shouldUnwrap = !targetIsArray || !isIntegerKey(key); - return shouldUnwrap ? res.value : res; - } - - if (isObject(res)) { - // Convert returned value into a proxy as well. we do the isObject check - // here to avoid invalid value warning. Also need to lazy access readonly - // and reactive here to avoid circular dependency. - return isReadonly ? readonly(res) : reactive(res); - } - - return res; - }; -} - -var set = /*#__PURE__*/createSetter(); -var shallowSet = /*#__PURE__*/createSetter(true); - -function createSetter() { - var shallow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - return function set(target, key, value, receiver) { - var oldValue = target[key]; - - if (!shallow) { - value = toRaw(value); - - if (!isArray(target) && isRef(oldValue) && !isRef(value)) { - oldValue.value = value; - return true; - } - } - - var hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); - var result = Reflect.set(target, key, value, receiver); // don't trigger if target is something up in the prototype chain of original - - if (target === toRaw(receiver)) { - if (!hadKey) { - trigger(target, "add" - /* ADD */ - , key, value); - } else if (hasChanged(value, oldValue)) { - trigger(target, "set" - /* SET */ - , key, value, oldValue); - } - } - - return result; - }; -} - -function deleteProperty(target, key) { - var hadKey = hasOwn(target, key); - var oldValue = target[key]; - var result = Reflect.deleteProperty(target, key); - - if (result && hadKey) { - trigger(target, "delete" - /* DELETE */ - , key, undefined, oldValue); - } - - return result; -} - -function has(target, key) { - var result = Reflect.has(target, key); - - if (!isSymbol(key) || !builtInSymbols.has(key)) { - track(target, "has" - /* HAS */ - , key); - } - - return result; -} - -function ownKeys(target) { - track(target, "iterate" - /* ITERATE */ - , isArray(target) ? 'length' : ITERATE_KEY); - return Reflect.ownKeys(target); -} - -var mutableHandlers = { - get: get, - set: set, - deleteProperty: deleteProperty, - has: has, - ownKeys: ownKeys -}; -var readonlyHandlers = { - get: readonlyGet, - set: function set(target, key) { - { - console.warn("Set operation on key \"".concat(String(key), "\" failed: target is readonly."), target); - } - return true; - }, - deleteProperty: function deleteProperty(target, key) { - { - console.warn("Delete operation on key \"".concat(String(key), "\" failed: target is readonly."), target); - } - return true; - } -}; -var shallowReactiveHandlers = extend({}, mutableHandlers, { - get: shallowGet, - set: shallowSet -}); // Props handlers are special in the sense that it should not unwrap top-level + */var toHandlerKey=cacheStringFunction(function(str){return str?"on".concat(capitalize(str)):"";});// compare whether a value has changed, accounting for NaN. +var hasChanged=function hasChanged(value,oldValue){return value!==oldValue&&(value===value||oldValue===oldValue);};var invokeArrayFns=function invokeArrayFns(fns,arg){for(var i=0;i1&&arguments[1]!==undefined?arguments[1]:EMPTY_OBJ;if(isEffect(fn)){fn=fn.raw;}var effect=createReactiveEffect(fn,options);if(!options.lazy){effect();}return effect;}function stop(effect){if(effect.active){cleanup(effect);if(effect.options.onStop){effect.options.onStop();}effect.active=false;}}var uid=0;function createReactiveEffect(fn,options){var effect=function reactiveEffect(){if(!effect.active){return options.scheduler?undefined:fn();}if(!effectStack.includes(effect)){cleanup(effect);try{enableTracking();effectStack.push(effect);activeEffect=effect;return fn();}finally{effectStack.pop();resetTracking();activeEffect=effectStack[effectStack.length-1];}}};effect.id=uid++;effect.allowRecurse=!!options.allowRecurse;effect._isEffect=true;effect.active=true;effect.raw=fn;effect.deps=[];effect.options=options;return effect;}function cleanup(effect){var deps=effect.deps;if(deps.length){for(var i=0;i=newValue){add(dep);}});}else{// schedule runs for SET | ADD | DELETE +if(key!==void 0){add(depsMap.get(key));}// also run for iteration key on ADD | DELETE | Map.SET +switch(type){case"add"/* ADD */:if(!isArray(target)){add(depsMap.get(ITERATE_KEY));if(isMap(target)){add(depsMap.get(MAP_KEY_ITERATE_KEY));}}else if(isIntegerKey(key)){// new index added to array -> length changes +add(depsMap.get('length'));}break;case"delete"/* DELETE */:if(!isArray(target)){add(depsMap.get(ITERATE_KEY));if(isMap(target)){add(depsMap.get(MAP_KEY_ITERATE_KEY));}}break;case"set"/* SET */:if(isMap(target)){add(depsMap.get(ITERATE_KEY));}break;}}var run=function run(effect){if(effect.options.onTrigger){effect.options.onTrigger({effect:effect,target:target,key:key,type:type,newValue:newValue,oldValue:oldValue,oldTarget:oldTarget});}if(effect.options.scheduler){effect.options.scheduler(effect);}else{effect();}};effects.forEach(run);}var builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).map(function(key){return Symbol[key];}).filter(isSymbol));var get=/*#__PURE__*/createGetter();var shallowGet=/*#__PURE__*/createGetter(false,true);var readonlyGet=/*#__PURE__*/createGetter(true);var shallowReadonlyGet=/*#__PURE__*/createGetter(true,true);var arrayInstrumentations={};['includes','indexOf','lastIndexOf'].forEach(function(key){var method=Array.prototype[key];arrayInstrumentations[key]=function(){var arr=toRaw(this);for(var i=0,l=this.length;i0&&arguments[0]!==undefined?arguments[0]:false;var shallow=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return function get(target,key,receiver){if(key==="__v_isReactive"/* IS_REACTIVE */){return!isReadonly;}else if(key==="__v_isReadonly"/* IS_READONLY */){return isReadonly;}else if(key==="__v_raw"/* RAW */&&receiver===(isReadonly?readonlyMap:reactiveMap).get(target)){return target;}var targetIsArray=isArray(target);if(targetIsArray&&hasOwn(arrayInstrumentations,key)){return Reflect.get(arrayInstrumentations,key,receiver);}var res=Reflect.get(target,key,receiver);if(isSymbol(key)?builtInSymbols.has(key):key==="__proto__"||key==="__v_isRef"){return res;}if(!isReadonly){track(target,"get"/* GET */,key);}if(shallow){return res;}if(isRef(res)){// ref unwrapping - does not apply for Array + integer key. +var shouldUnwrap=!targetIsArray||!isIntegerKey(key);return shouldUnwrap?res.value:res;}if(isObject(res)){// Convert returned value into a proxy as well. we do the isObject check +// here to avoid invalid value warning. Also need to lazy access readonly +// and reactive here to avoid circular dependency. +return isReadonly?readonly(res):reactive(res);}return res;};}var set=/*#__PURE__*/createSetter();var shallowSet=/*#__PURE__*/createSetter(true);function createSetter(){var shallow=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return function set(target,key,value,receiver){var oldValue=target[key];if(!shallow){value=toRaw(value);if(!isArray(target)&&isRef(oldValue)&&!isRef(value)){oldValue.value=value;return true;}}var hadKey=isArray(target)&&isIntegerKey(key)?Number(key) 2 && arguments[2] !== undefined ? arguments[2] : false; - var isShallow = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - // #1772: readonly(reactive(Map)) should return readonly + reactive version - // of the value - target = target["__v_raw" - /* RAW */ - ]; - var rawTarget = toRaw(target); - var rawKey = toRaw(key); - - if (key !== rawKey) { - !isReadonly && track(rawTarget, "get" - /* GET */ - , key); - } - - !isReadonly && track(rawTarget, "get" - /* GET */ - , rawKey); - - var _getProto = getProto(rawTarget), - has = _getProto.has; - - var wrap = isReadonly ? toReadonly : isShallow ? toShallow : toReactive; - - if (has.call(rawTarget, key)) { - return wrap(target.get(key)); - } else if (has.call(rawTarget, rawKey)) { - return wrap(target.get(rawKey)); - } -} - -function has$1(key) { - var isReadonly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var target = this["__v_raw" - /* RAW */ - ]; - var rawTarget = toRaw(target); - var rawKey = toRaw(key); - - if (key !== rawKey) { - !isReadonly && track(rawTarget, "has" - /* HAS */ - , key); - } - - !isReadonly && track(rawTarget, "has" - /* HAS */ - , rawKey); - return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); -} - -function size(target) { - var isReadonly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - target = target["__v_raw" - /* RAW */ - ]; - !isReadonly && track(toRaw(target), "iterate" - /* ITERATE */ - , ITERATE_KEY); - return Reflect.get(target, 'size', target); -} - -function add(value) { - value = toRaw(value); - var target = toRaw(this); - var proto = getProto(target); - var hadKey = proto.has.call(target, value); - var result = target.add(value); - - if (!hadKey) { - trigger(target, "add" - /* ADD */ - , value, value); - } - - return result; -} - -function set$1(key, value) { - value = toRaw(value); - var target = toRaw(this); - - var _getProto2 = getProto(target), - has = _getProto2.has, - get = _getProto2.get; - - var hadKey = has.call(target, key); - - if (!hadKey) { - key = toRaw(key); - hadKey = has.call(target, key); - } else { - checkIdentityKeys(target, has, key); - } - - var oldValue = get.call(target, key); - var result = target.set(key, value); - - if (!hadKey) { - trigger(target, "add" - /* ADD */ - , key, value); - } else if (hasChanged(value, oldValue)) { - trigger(target, "set" - /* SET */ - , key, value, oldValue); - } - - return result; -} - -function deleteEntry(key) { - var target = toRaw(this); - - var _getProto3 = getProto(target), - has = _getProto3.has, - get = _getProto3.get; - - var hadKey = has.call(target, key); - - if (!hadKey) { - key = toRaw(key); - hadKey = has.call(target, key); - } else { - checkIdentityKeys(target, has, key); - } - - var oldValue = get ? get.call(target, key) : undefined; // forward the operation before queueing reactions - - var result = target.delete(key); - - if (hadKey) { - trigger(target, "delete" - /* DELETE */ - , key, undefined, oldValue); - } - - return result; -} - -function clear() { - var target = toRaw(this); - var hadItems = target.size !== 0; - var oldTarget = isMap(target) ? new Map(target) : new Set(target); // forward the operation before queueing reactions - - var result = target.clear(); - - if (hadItems) { - trigger(target, "clear" - /* CLEAR */ - , undefined, undefined, oldTarget); - } - - return result; -} - -function createForEach(isReadonly, isShallow) { - return function forEach(callback, thisArg) { - var observed = this; - var target = observed["__v_raw" - /* RAW */ - ]; - var rawTarget = toRaw(target); - var wrap = isReadonly ? toReadonly : isShallow ? toShallow : toReactive; - !isReadonly && track(rawTarget, "iterate" - /* ITERATE */ - , ITERATE_KEY); - return target.forEach(function (value, key) { - // important: make sure the callback is - // 1. invoked with the reactive map as `this` and 3rd arg - // 2. the value received should be a corresponding reactive/readonly. - return callback.call(thisArg, wrap(value), wrap(key), observed); - }); - }; -} - -function createIterableMethod(method, isReadonly, isShallow) { - return function () { - var target = this["__v_raw" - /* RAW */ - ]; - var rawTarget = toRaw(target); - var targetIsMap = isMap(rawTarget); - var isPair = method === 'entries' || method === Symbol.iterator && targetIsMap; - var isKeyOnly = method === 'keys' && targetIsMap; - var innerIterator = target[method].apply(target, arguments); - var wrap = isReadonly ? toReadonly : isShallow ? toShallow : toReactive; - !isReadonly && track(rawTarget, "iterate" - /* ITERATE */ - , isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY); // return a wrapped iterator which returns observed versions of the - // values emitted from the real iterator - - return _defineProperty({ - // iterator protocol - next: function next() { - var _innerIterator$next = innerIterator.next(), - value = _innerIterator$next.value, - done = _innerIterator$next.done; - - return done ? { - value: value, - done: done - } : { - value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), - done: done - }; - } - }, Symbol.iterator, function () { - return this; - }); - }; -} - -function createReadonlyMethod(type) { - return function () { - { - var key = (arguments.length <= 0 ? undefined : arguments[0]) ? "on key \"".concat(arguments.length <= 0 ? undefined : arguments[0], "\" ") : ""; - console.warn("".concat(capitalize(type), " operation ").concat(key, "failed: target is readonly."), toRaw(this)); - } - return type === "delete" - /* DELETE */ - ? false : this; - }; -} - -var mutableInstrumentations = { - get: function get(key) { - return get$1(this, key); - }, - - get size() { - return size(this); - }, - - has: has$1, - add: add, - set: set$1, - delete: deleteEntry, - clear: clear, - forEach: createForEach(false, false) -}; -var shallowInstrumentations = { - get: function get(key) { - return get$1(this, key, false, true); - }, - - get size() { - return size(this); - }, - - has: has$1, - add: add, - set: set$1, - delete: deleteEntry, - clear: clear, - forEach: createForEach(false, true) -}; -var readonlyInstrumentations = { - get: function get(key) { - return get$1(this, key, true); - }, - - get size() { - return size(this, true); - }, - - has: function has(key) { - return has$1.call(this, key, true); - }, - add: createReadonlyMethod("add" - /* ADD */ - ), - set: createReadonlyMethod("set" - /* SET */ - ), - delete: createReadonlyMethod("delete" - /* DELETE */ - ), - clear: createReadonlyMethod("clear" - /* CLEAR */ - ), - forEach: createForEach(true, false) -}; -var iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator]; -iteratorMethods.forEach(function (method) { - mutableInstrumentations[method] = createIterableMethod(method, false, false); - readonlyInstrumentations[method] = createIterableMethod(method, true, false); - shallowInstrumentations[method] = createIterableMethod(method, false, true); -}); - -function createInstrumentationGetter(isReadonly, shallow) { - var instrumentations = shallow ? shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations; - return function (target, key, receiver) { - if (key === "__v_isReactive" - /* IS_REACTIVE */ - ) { - return !isReadonly; - } else if (key === "__v_isReadonly" - /* IS_READONLY */ - ) { - return isReadonly; - } else if (key === "__v_raw" - /* RAW */ - ) { - return target; - } - - return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver); - }; -} - -var mutableCollectionHandlers = { - get: createInstrumentationGetter(false, false) -}; -var shallowCollectionHandlers = { - get: createInstrumentationGetter(false, true) -}; -var readonlyCollectionHandlers = { - get: createInstrumentationGetter(true, false) -}; - -function checkIdentityKeys(target, has, key) { - var rawKey = toRaw(key); - - if (rawKey !== key && has.call(target, rawKey)) { - var type = toRawType(target); - console.warn("Reactive ".concat(type, " contains both the raw and reactive ") + "versions of the same object".concat(type === "Map" ? " as keys" : "", ", ") + "which can lead to inconsistencies. " + "Avoid differentiating between the raw and reactive versions " + "of an object and only use the reactive version if possible."); - } -} - -var reactiveMap = new WeakMap(); -var readonlyMap = new WeakMap(); - -function targetTypeMap(rawType) { - switch (rawType) { - case 'Object': - case 'Array': - return 1 - /* COMMON */ - ; - - case 'Map': - case 'Set': - case 'WeakMap': - case 'WeakSet': - return 2 - /* COLLECTION */ - ; - - default: - return 0 - /* INVALID */ - ; - } -} - -function getTargetType(value) { - return value["__v_skip" - /* SKIP */ - ] || !Object.isExtensible(value) ? 0 - /* INVALID */ - : targetTypeMap(toRawType(value)); -} - -function reactive(target) { - // if trying to observe a readonly proxy, return the readonly version. - if (target && target["__v_isReadonly" - /* IS_READONLY */ - ]) { - return target; - } - - return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers); -} // Return a reactive-copy of the original object, where only the root level +var shallowReadonlyHandlers=extend({},readonlyHandlers,{get:shallowReadonlyGet});var toReactive=function toReactive(value){return isObject(value)?reactive(value):value;};var toReadonly=function toReadonly(value){return isObject(value)?readonly(value):value;};var toShallow=function toShallow(value){return value;};var getProto=function getProto(v){return Reflect.getPrototypeOf(v);};function get$1(target,key){var isReadonly=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var isShallow=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;// #1772: readonly(reactive(Map)) should return readonly + reactive version +// of the value +target=target["__v_raw"/* RAW */];var rawTarget=toRaw(target);var rawKey=toRaw(key);if(key!==rawKey){!isReadonly&&track(rawTarget,"get"/* GET */,key);}!isReadonly&&track(rawTarget,"get"/* GET */,rawKey);var _getProto=getProto(rawTarget),has=_getProto.has;var wrap=isReadonly?toReadonly:isShallow?toShallow:toReactive;if(has.call(rawTarget,key)){return wrap(target.get(key));}else if(has.call(rawTarget,rawKey)){return wrap(target.get(rawKey));}}function has$1(key){var isReadonly=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var target=this["__v_raw"/* RAW */];var rawTarget=toRaw(target);var rawKey=toRaw(key);if(key!==rawKey){!isReadonly&&track(rawTarget,"has"/* HAS */,key);}!isReadonly&&track(rawTarget,"has"/* HAS */,rawKey);return key===rawKey?target.has(key):target.has(key)||target.has(rawKey);}function size(target){var isReadonly=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;target=target["__v_raw"/* RAW */];!isReadonly&&track(toRaw(target),"iterate"/* ITERATE */,ITERATE_KEY);return Reflect.get(target,'size',target);}function add(value){value=toRaw(value);var target=toRaw(this);var proto=getProto(target);var hadKey=proto.has.call(target,value);var result=target.add(value);if(!hadKey){trigger(target,"add"/* ADD */,value,value);}return result;}function set$1(key,value){value=toRaw(value);var target=toRaw(this);var _getProto2=getProto(target),has=_getProto2.has,get=_getProto2.get;var hadKey=has.call(target,key);if(!hadKey){key=toRaw(key);hadKey=has.call(target,key);}else{checkIdentityKeys(target,has,key);}var oldValue=get.call(target,key);var result=target.set(key,value);if(!hadKey){trigger(target,"add"/* ADD */,key,value);}else if(hasChanged(value,oldValue)){trigger(target,"set"/* SET */,key,value,oldValue);}return result;}function deleteEntry(key){var target=toRaw(this);var _getProto3=getProto(target),has=_getProto3.has,get=_getProto3.get;var hadKey=has.call(target,key);if(!hadKey){key=toRaw(key);hadKey=has.call(target,key);}else{checkIdentityKeys(target,has,key);}var oldValue=get?get.call(target,key):undefined;// forward the operation before queueing reactions +var result=target.delete(key);if(hadKey){trigger(target,"delete"/* DELETE */,key,undefined,oldValue);}return result;}function clear(){var target=toRaw(this);var hadItems=target.size!==0;var oldTarget=isMap(target)?new Map(target):new Set(target);// forward the operation before queueing reactions +var result=target.clear();if(hadItems){trigger(target,"clear"/* CLEAR */,undefined,undefined,oldTarget);}return result;}function createForEach(isReadonly,isShallow){return function forEach(callback,thisArg){var observed=this;var target=observed["__v_raw"/* RAW */];var rawTarget=toRaw(target);var wrap=isReadonly?toReadonly:isShallow?toShallow:toReactive;!isReadonly&&track(rawTarget,"iterate"/* ITERATE */,ITERATE_KEY);return target.forEach(function(value,key){// important: make sure the callback is +// 1. invoked with the reactive map as `this` and 3rd arg +// 2. the value received should be a corresponding reactive/readonly. +return callback.call(thisArg,wrap(value),wrap(key),observed);});};}function createIterableMethod(method,isReadonly,isShallow){return function(){var target=this["__v_raw"/* RAW */];var rawTarget=toRaw(target);var targetIsMap=isMap(rawTarget);var isPair=method==='entries'||method===Symbol.iterator&&targetIsMap;var isKeyOnly=method==='keys'&&targetIsMap;var innerIterator=target[method].apply(target,arguments);var wrap=isReadonly?toReadonly:isShallow?toShallow:toReactive;!isReadonly&&track(rawTarget,"iterate"/* ITERATE */,isKeyOnly?MAP_KEY_ITERATE_KEY:ITERATE_KEY);// return a wrapped iterator which returns observed versions of the +// values emitted from the real iterator +return _defineProperty({// iterator protocol +next:function next(){var _innerIterator$next=innerIterator.next(),value=_innerIterator$next.value,done=_innerIterator$next.done;return done?{value:value,done:done}:{value:isPair?[wrap(value[0]),wrap(value[1])]:wrap(value),done:done};}},Symbol.iterator,function(){return this;});};}function createReadonlyMethod(type){return function(){{var key=(arguments.length<=0?undefined:arguments[0])?"on key \"".concat(arguments.length<=0?undefined:arguments[0],"\" "):"";console.warn("".concat(capitalize(type)," operation ").concat(key,"failed: target is readonly."),toRaw(this));}return type==="delete"/* DELETE */?false:this;};}var mutableInstrumentations={get:function get(key){return get$1(this,key);},get size(){return size(this);},has:has$1,add:add,set:set$1,delete:deleteEntry,clear:clear,forEach:createForEach(false,false)};var shallowInstrumentations={get:function get(key){return get$1(this,key,false,true);},get size(){return size(this);},has:has$1,add:add,set:set$1,delete:deleteEntry,clear:clear,forEach:createForEach(false,true)};var readonlyInstrumentations={get:function get(key){return get$1(this,key,true);},get size(){return size(this,true);},has:function has(key){return has$1.call(this,key,true);},add:createReadonlyMethod("add"/* ADD */),set:createReadonlyMethod("set"/* SET */),delete:createReadonlyMethod("delete"/* DELETE */),clear:createReadonlyMethod("clear"/* CLEAR */),forEach:createForEach(true,false)};var iteratorMethods=['keys','values','entries',Symbol.iterator];iteratorMethods.forEach(function(method){mutableInstrumentations[method]=createIterableMethod(method,false,false);readonlyInstrumentations[method]=createIterableMethod(method,true,false);shallowInstrumentations[method]=createIterableMethod(method,false,true);});function createInstrumentationGetter(isReadonly,shallow){var instrumentations=shallow?shallowInstrumentations:isReadonly?readonlyInstrumentations:mutableInstrumentations;return function(target,key,receiver){if(key==="__v_isReactive"/* IS_REACTIVE */){return!isReadonly;}else if(key==="__v_isReadonly"/* IS_READONLY */){return isReadonly;}else if(key==="__v_raw"/* RAW */){return target;}return Reflect.get(hasOwn(instrumentations,key)&&key in target?instrumentations:target,key,receiver);};}var mutableCollectionHandlers={get:createInstrumentationGetter(false,false)};var shallowCollectionHandlers={get:createInstrumentationGetter(false,true)};var readonlyCollectionHandlers={get:createInstrumentationGetter(true,false)};function checkIdentityKeys(target,has,key){var rawKey=toRaw(key);if(rawKey!==key&&has.call(target,rawKey)){var type=toRawType(target);console.warn("Reactive ".concat(type," contains both the raw and reactive ")+"versions of the same object".concat(type==="Map"?" as keys":"",", ")+"which can lead to inconsistencies. "+"Avoid differentiating between the raw and reactive versions "+"of an object and only use the reactive version if possible.");}}var reactiveMap=new WeakMap();var readonlyMap=new WeakMap();function targetTypeMap(rawType){switch(rawType){case'Object':case'Array':return 1/* COMMON */;case'Map':case'Set':case'WeakMap':case'WeakSet':return 2/* COLLECTION */;default:return 0/* INVALID */;}}function getTargetType(value){return value["__v_skip"/* SKIP */]||!Object.isExtensible(value)?0/* INVALID */:targetTypeMap(toRawType(value));}function reactive(target){// if trying to observe a readonly proxy, return the readonly version. +if(target&&target["__v_isReadonly"/* IS_READONLY */]){return target;}return createReactiveObject(target,false,mutableHandlers,mutableCollectionHandlers);}// Return a reactive-copy of the original object, where only the root level // properties are reactive, and does NOT unwrap refs nor recursively convert // returned properties. - - -function shallowReactive(target) { - return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers); -} - -function readonly(target) { - return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers); -} // Return a reactive-copy of the original object, where only the root level +function shallowReactive(target){return createReactiveObject(target,false,shallowReactiveHandlers,shallowCollectionHandlers);}function readonly(target){return createReactiveObject(target,true,readonlyHandlers,readonlyCollectionHandlers);}// Return a reactive-copy of the original object, where only the root level // properties are readonly, and does NOT unwrap refs nor recursively convert // returned properties. // This is used for creating the props proxy object for stateful components. - - -function shallowReadonly(target) { - return createReactiveObject(target, true, shallowReadonlyHandlers, readonlyCollectionHandlers); -} - -function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers) { - if (!isObject(target)) { - { - console.warn("value cannot be made reactive: ".concat(String(target))); - } - return target; - } // target is already a Proxy, return it. - // exception: calling readonly() on a reactive object - - - if (target["__v_raw" - /* RAW */ - ] && !(isReadonly && target["__v_isReactive" - /* IS_REACTIVE */ - ])) { - return target; - } // target already has corresponding Proxy - - - var proxyMap = isReadonly ? readonlyMap : reactiveMap; - var existingProxy = proxyMap.get(target); - - if (existingProxy) { - return existingProxy; - } // only a whitelist of value types can be observed. - - - var targetType = getTargetType(target); - - if (targetType === 0 - /* INVALID */ - ) { - return target; - } - - var proxy = new Proxy(target, targetType === 2 - /* COLLECTION */ - ? collectionHandlers : baseHandlers); - proxyMap.set(target, proxy); - return proxy; -} - -function isReactive(value) { - if (isReadonly(value)) { - return isReactive(value["__v_raw" - /* RAW */ - ]); - } - - return !!(value && value["__v_isReactive" - /* IS_REACTIVE */ - ]); -} - -function isReadonly(value) { - return !!(value && value["__v_isReadonly" - /* IS_READONLY */ - ]); -} - -function isProxy(value) { - return isReactive(value) || isReadonly(value); -} - -function toRaw(observed) { - return observed && toRaw(observed["__v_raw" - /* RAW */ - ]) || observed; -} - -function markRaw(value) { - def(value, "__v_skip" - /* SKIP */ - , true); - return value; -} - -var convert = function convert(val) { - return isObject(val) ? reactive(val) : val; -}; - -function isRef(r) { - return Boolean(r && r.__v_isRef === true); -} - -function ref(value) { - return createRef(value); -} - -function shallowRef(value) { - return createRef(value, true); -} - -var RefImpl = /*#__PURE__*/function () { - function RefImpl(_rawValue) { - var _shallow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - _classCallCheck(this, RefImpl); - - this._rawValue = _rawValue; - this._shallow = _shallow; - this.__v_isRef = true; - this._value = _shallow ? _rawValue : convert(_rawValue); - } - - _createClass(RefImpl, [{ - key: "value", - get: function get() { - track(toRaw(this), "get" - /* GET */ - , 'value'); - return this._value; - }, - set: function set(newVal) { - if (hasChanged(toRaw(newVal), this._rawValue)) { - this._rawValue = newVal; - this._value = this._shallow ? newVal : convert(newVal); - trigger(toRaw(this), "set" - /* SET */ - , 'value', newVal); - } - } - }]); - - return RefImpl; -}(); - -function createRef(rawValue) { - var shallow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (isRef(rawValue)) { - return rawValue; - } - - return new RefImpl(rawValue, shallow); -} - -function triggerRef(ref) { - trigger(toRaw(ref), "set" - /* SET */ - , 'value', ref.value); -} - -function unref(ref) { - return isRef(ref) ? ref.value : ref; -} - -var shallowUnwrapHandlers = { - get: function get(target, key, receiver) { - return unref(Reflect.get(target, key, receiver)); - }, - set: function set(target, key, value, receiver) { - var oldValue = target[key]; - - if (isRef(oldValue) && !isRef(value)) { - oldValue.value = value; - return true; - } else { - return Reflect.set(target, key, value, receiver); - } - } -}; - -function proxyRefs(objectWithRefs) { - return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); -} - -var CustomRefImpl = /*#__PURE__*/function () { - function CustomRefImpl(factory) { - var _this = this; - - _classCallCheck(this, CustomRefImpl); - - this.__v_isRef = true; - - var _factory = factory(function () { - return track(_this, "get" - /* GET */ - , 'value'); - }, function () { - return trigger(_this, "set" - /* SET */ - , 'value'); - }), - get = _factory.get, - set = _factory.set; - - this._get = get; - this._set = set; - } - - _createClass(CustomRefImpl, [{ - key: "value", - get: function get() { - return this._get(); - }, - set: function set(newVal) { - this._set(newVal); - } - }]); - - return CustomRefImpl; -}(); - -function customRef(factory) { - return new CustomRefImpl(factory); -} - -function toRefs(object) { - if (!isProxy(object)) { - console.warn("toRefs() expects a reactive object but received a plain one."); - } - - var ret = isArray(object) ? new Array(object.length) : {}; - - for (var key in object) { - ret[key] = toRef(object, key); - } - - return ret; -} - -var ObjectRefImpl = /*#__PURE__*/function () { - function ObjectRefImpl(_object, _key) { - _classCallCheck(this, ObjectRefImpl); - - this._object = _object; - this._key = _key; - this.__v_isRef = true; - } - - _createClass(ObjectRefImpl, [{ - key: "value", - get: function get() { - return this._object[this._key]; - }, - set: function set(newVal) { - this._object[this._key] = newVal; - } - }]); - - return ObjectRefImpl; -}(); - -function toRef(object, key) { - return isRef(object[key]) ? object[key] : new ObjectRefImpl(object, key); -} - -var ComputedRefImpl = /*#__PURE__*/function () { - function ComputedRefImpl(getter, _setter, isReadonly) { - var _this2 = this; - - _classCallCheck(this, ComputedRefImpl); - - this._setter = _setter; - this._dirty = true; - this.__v_isRef = true; - this.effect = effect(getter, { - lazy: true, - scheduler: function scheduler() { - if (!_this2._dirty) { - _this2._dirty = true; - trigger(toRaw(_this2), "set" - /* SET */ - , 'value'); - } - } - }); - this["__v_isReadonly" - /* IS_READONLY */ - ] = isReadonly; - } - - _createClass(ComputedRefImpl, [{ - key: "value", - get: function get() { - if (this._dirty) { - this._value = this.effect(); - this._dirty = false; - } - - track(toRaw(this), "get" - /* GET */ - , 'value'); - return this._value; - }, - set: function set(newValue) { - this._setter(newValue); - } - }]); - - return ComputedRefImpl; -}(); - -function computed(getterOrOptions) { - var getter; - var setter; - - if (isFunction(getterOrOptions)) { - getter = getterOrOptions; - - setter = function setter() { - console.warn('Write operation failed: computed value is readonly'); - }; - } else { - getter = getterOrOptions.get; - setter = getterOrOptions.set; - } - - return new ComputedRefImpl(getter, setter, isFunction(getterOrOptions) || !getterOrOptions.set); -} - -var stack = []; - -function pushWarningContext(vnode) { - stack.push(vnode); -} - -function popWarningContext() { - stack.pop(); -} - -function warn(msg) { - // avoid props formatting or warn handler tracking deps that might be mutated - // during patch, leading to infinite recursion. - pauseTracking(); - var instance = stack.length ? stack[stack.length - 1].component : null; - var appWarnHandler = instance && instance.appContext.config.warnHandler; - var trace = getComponentTrace(); - - for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key4 = 1; _key4 < _len3; _key4++) { - args[_key4 - 1] = arguments[_key4]; - } - - if (appWarnHandler) { - callWithErrorHandling(appWarnHandler, instance, 11 - /* APP_WARN_HANDLER */ - , [msg + args.join(''), instance && instance.proxy, trace.map(function (_ref6) { - var vnode = _ref6.vnode; - return "at <".concat(formatComponentName(instance, vnode.type), ">"); - }).join('\n'), trace]); - } else { - var _console; - - var warnArgs = ["[Vue warn]: ".concat(msg)].concat(args); - /* istanbul ignore if */ - - if (trace.length && // avoid spamming console during tests - !false) { - warnArgs.push.apply(warnArgs, ["\n"].concat(_toConsumableArray(formatTrace(trace)))); - } - - (_console = console).warn.apply(_console, _toConsumableArray(warnArgs)); - } - - resetTracking(); -} - -function getComponentTrace() { - var currentVNode = stack[stack.length - 1]; - - if (!currentVNode) { - return []; - } // we can't just use the stack because it will be incomplete during updates - // that did not start from the root. Re-construct the parent chain using - // instance parent pointers. - - - var normalizedStack = []; - - while (currentVNode) { - var last = normalizedStack[0]; - - if (last && last.vnode === currentVNode) { - last.recurseCount++; - } else { - normalizedStack.push({ - vnode: currentVNode, - recurseCount: 0 - }); - } - - var parentInstance = currentVNode.component && currentVNode.component.parent; - currentVNode = parentInstance && parentInstance.vnode; - } - - return normalizedStack; -} -/* istanbul ignore next */ - - -function formatTrace(trace) { - var logs = []; - trace.forEach(function (entry, i) { - logs.push.apply(logs, _toConsumableArray(i === 0 ? [] : ["\n"]).concat(_toConsumableArray(formatTraceEntry(entry)))); - }); - return logs; -} - -function formatTraceEntry(_ref7) { - var vnode = _ref7.vnode, - recurseCount = _ref7.recurseCount; - var postfix = recurseCount > 0 ? "... (".concat(recurseCount, " recursive calls)") : ""; - var isRoot = vnode.component ? vnode.component.parent == null : false; - var open = " at <".concat(formatComponentName(vnode.component, vnode.type, isRoot)); - var close = ">" + postfix; - return vnode.props ? [open].concat(_toConsumableArray(formatProps(vnode.props)), [close]) : [open + close]; -} -/* istanbul ignore next */ - - -function formatProps(props) { - var res = []; - var keys = Object.keys(props); - keys.slice(0, 3).forEach(function (key) { - res.push.apply(res, _toConsumableArray(formatProp(key, props[key]))); - }); - - if (keys.length > 3) { - res.push(" ..."); - } - - return res; -} -/* istanbul ignore next */ - - -function formatProp(key, value, raw) { - if (isString(value)) { - value = JSON.stringify(value); - return raw ? value : ["".concat(key, "=").concat(value)]; - } else if (typeof value === 'number' || typeof value === 'boolean' || value == null) { - return raw ? value : ["".concat(key, "=").concat(value)]; - } else if (isRef(value)) { - value = formatProp(key, toRaw(value.value), true); - return raw ? value : ["".concat(key, "=Ref<"), value, ">"]; - } else if (isFunction(value)) { - return ["".concat(key, "=fn").concat(value.name ? "<".concat(value.name, ">") : "")]; - } else { - value = toRaw(value); - return raw ? value : ["".concat(key, "="), value]; - } -} - -var ErrorTypeStrings = (_ErrorTypeStrings = {}, _defineProperty(_ErrorTypeStrings, "bc" -/* BEFORE_CREATE */ -, 'beforeCreate hook'), _defineProperty(_ErrorTypeStrings, "c" -/* CREATED */ -, 'created hook'), _defineProperty(_ErrorTypeStrings, "bm" -/* BEFORE_MOUNT */ -, 'beforeMount hook'), _defineProperty(_ErrorTypeStrings, "m" -/* MOUNTED */ -, 'mounted hook'), _defineProperty(_ErrorTypeStrings, "bu" -/* BEFORE_UPDATE */ -, 'beforeUpdate hook'), _defineProperty(_ErrorTypeStrings, "u" -/* UPDATED */ -, 'updated'), _defineProperty(_ErrorTypeStrings, "bum" -/* BEFORE_UNMOUNT */ -, 'beforeUnmount hook'), _defineProperty(_ErrorTypeStrings, "um" -/* UNMOUNTED */ -, 'unmounted hook'), _defineProperty(_ErrorTypeStrings, "a" -/* ACTIVATED */ -, 'activated hook'), _defineProperty(_ErrorTypeStrings, "da" -/* DEACTIVATED */ -, 'deactivated hook'), _defineProperty(_ErrorTypeStrings, "ec" -/* ERROR_CAPTURED */ -, 'errorCaptured hook'), _defineProperty(_ErrorTypeStrings, "rtc" -/* RENDER_TRACKED */ -, 'renderTracked hook'), _defineProperty(_ErrorTypeStrings, "rtg" -/* RENDER_TRIGGERED */ -, 'renderTriggered hook'), _defineProperty(_ErrorTypeStrings, 0 -/* SETUP_FUNCTION */ -, 'setup function'), _defineProperty(_ErrorTypeStrings, 1 -/* RENDER_FUNCTION */ -, 'render function'), _defineProperty(_ErrorTypeStrings, 2 -/* WATCH_GETTER */ -, 'watcher getter'), _defineProperty(_ErrorTypeStrings, 3 -/* WATCH_CALLBACK */ -, 'watcher callback'), _defineProperty(_ErrorTypeStrings, 4 -/* WATCH_CLEANUP */ -, 'watcher cleanup function'), _defineProperty(_ErrorTypeStrings, 5 -/* NATIVE_EVENT_HANDLER */ -, 'native event handler'), _defineProperty(_ErrorTypeStrings, 6 -/* COMPONENT_EVENT_HANDLER */ -, 'component event handler'), _defineProperty(_ErrorTypeStrings, 7 -/* VNODE_HOOK */ -, 'vnode hook'), _defineProperty(_ErrorTypeStrings, 8 -/* DIRECTIVE_HOOK */ -, 'directive hook'), _defineProperty(_ErrorTypeStrings, 9 -/* TRANSITION_HOOK */ -, 'transition hook'), _defineProperty(_ErrorTypeStrings, 10 -/* APP_ERROR_HANDLER */ -, 'app errorHandler'), _defineProperty(_ErrorTypeStrings, 11 -/* APP_WARN_HANDLER */ -, 'app warnHandler'), _defineProperty(_ErrorTypeStrings, 12 -/* FUNCTION_REF */ -, 'ref function'), _defineProperty(_ErrorTypeStrings, 13 -/* ASYNC_COMPONENT_LOADER */ -, 'async component loader'), _defineProperty(_ErrorTypeStrings, 14 -/* SCHEDULER */ -, 'scheduler flush. This is likely a Vue internals bug. ' + 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next'), _ErrorTypeStrings); - -function callWithErrorHandling(fn, instance, type, args) { - var res; - - try { - res = args ? fn.apply(void 0, _toConsumableArray(args)) : fn(); - } catch (err) { - handleError(err, instance, type); - } - - return res; -} - -function callWithAsyncErrorHandling(fn, instance, type, args) { - if (isFunction(fn)) { - var res = callWithErrorHandling(fn, instance, type, args); - - if (res && isPromise(res)) { - res.catch(function (err) { - handleError(err, instance, type); - }); - } - - return res; - } - - var values = []; - - for (var i = 0; i < fn.length; i++) { - values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); - } - - return values; -} - -function handleError(err, instance, type) { - var throwInDev = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - var contextVNode = instance ? instance.vnode : null; - - if (instance) { - var cur = instance.parent; // the exposed instance is the render proxy to keep it consistent with 2.x - - var exposedInstance = instance.proxy; // in production the hook receives only the error code - - var errorInfo = ErrorTypeStrings[type]; - - while (cur) { - var errorCapturedHooks = cur.ec; - - if (errorCapturedHooks) { - for (var i = 0; i < errorCapturedHooks.length; i++) { - if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { - return; - } - } - } - - cur = cur.parent; - } // app-level handling - - - var appErrorHandler = instance.appContext.config.errorHandler; - - if (appErrorHandler) { - callWithErrorHandling(appErrorHandler, null, 10 - /* APP_ERROR_HANDLER */ - , [err, exposedInstance, errorInfo]); - return; - } - } - - logError(err, type, contextVNode, throwInDev); -} - -function logError(err, type, contextVNode) { - var throwInDev = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - { - var info = ErrorTypeStrings[type]; - - if (contextVNode) { - pushWarningContext(contextVNode); - } - - warn("Unhandled error".concat(info ? " during execution of ".concat(info) : "")); - - if (contextVNode) { - popWarningContext(); - } // crash in dev by default so it's more noticeable - - - if (throwInDev) { - throw err; - } else { - console.error(err); - } - } -} - -var isFlushing = false; -var isFlushPending = false; -var queue = []; -var flushIndex = 0; -var pendingPreFlushCbs = []; -var activePreFlushCbs = null; -var preFlushIndex = 0; -var pendingPostFlushCbs = []; -var activePostFlushCbs = null; -var postFlushIndex = 0; -var resolvedPromise = Promise.resolve(); -var currentFlushPromise = null; -var currentPreFlushParentJob = null; -var RECURSION_LIMIT = 100; - -function nextTick(fn) { - var p = currentFlushPromise || resolvedPromise; - return fn ? p.then(this ? fn.bind(this) : fn) : p; -} - -function queueJob(job) { - // the dedupe search uses the startIndex argument of Array.includes() - // by default the search index includes the current job that is being run - // so it cannot recursively trigger itself again. - // if the job is a watch() callback, the search will start with a +1 index to - // allow it recursively trigger itself - it is the user's responsibility to - // ensure it doesn't end up in an infinite loop. - if ((!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) && job !== currentPreFlushParentJob) { - queue.push(job); - queueFlush(); - } -} - -function queueFlush() { - if (!isFlushing && !isFlushPending) { - isFlushPending = true; - currentFlushPromise = resolvedPromise.then(flushJobs); - } -} - -function invalidateJob(job) { - var i = queue.indexOf(job); - - if (i > -1) { - queue[i] = null; - } -} - -function queueCb(cb, activeQueue, pendingQueue, index) { - if (!isArray(cb)) { - if (!activeQueue || !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) { - pendingQueue.push(cb); - } - } else { - // if cb is an array, it is a component lifecycle hook which can only be - // triggered by a job, which is already deduped in the main queue, so - // we can skip duplicate check here to improve perf - pendingQueue.push.apply(pendingQueue, _toConsumableArray(cb)); - } - - queueFlush(); -} - -function queuePreFlushCb(cb) { - queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex); -} - -function queuePostFlushCb(cb) { - queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex); -} - -function flushPreFlushCbs(seen) { - var parentJob = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - if (pendingPreFlushCbs.length) { - currentPreFlushParentJob = parentJob; - activePreFlushCbs = _toConsumableArray(new Set(pendingPreFlushCbs)); - pendingPreFlushCbs.length = 0; - { - seen = seen || new Map(); - } - - for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) { - { - checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex]); - } - activePreFlushCbs[preFlushIndex](); - } - - activePreFlushCbs = null; - preFlushIndex = 0; - currentPreFlushParentJob = null; // recursively flush until it drains - - flushPreFlushCbs(seen, parentJob); - } -} - -function flushPostFlushCbs(seen) { - if (pendingPostFlushCbs.length) { - var deduped = _toConsumableArray(new Set(pendingPostFlushCbs)); - - pendingPostFlushCbs.length = 0; // #1947 already has active queue, nested flushPostFlushCbs call - - if (activePostFlushCbs) { - var _activePostFlushCbs; - - (_activePostFlushCbs = activePostFlushCbs).push.apply(_activePostFlushCbs, _toConsumableArray(deduped)); - - return; - } - - activePostFlushCbs = deduped; - { - seen = seen || new Map(); - } - activePostFlushCbs.sort(function (a, b) { - return getId(a) - getId(b); - }); - - for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { - { - checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex]); - } - activePostFlushCbs[postFlushIndex](); - } - - activePostFlushCbs = null; - postFlushIndex = 0; - } -} - -var getId = function getId(job) { - return job.id == null ? Infinity : job.id; -}; - -function flushJobs(seen) { - isFlushPending = false; - isFlushing = true; - { - seen = seen || new Map(); - } - flushPreFlushCbs(seen); // Sort queue before flush. - // This ensures that: - // 1. Components are updated from parent to child. (because parent is always - // created before the child so its render effect will have smaller - // priority number) - // 2. If a component is unmounted during a parent component's update, - // its update can be skipped. - // Jobs can never be null before flush starts, since they are only invalidated - // during execution of another flushed job. - - queue.sort(function (a, b) { - return getId(a) - getId(b); - }); - - try { - for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { - var job = queue[flushIndex]; - - if (job) { - if (true) { - checkRecursiveUpdates(seen, job); - } - - callWithErrorHandling(job, null, 14 - /* SCHEDULER */ - ); - } - } - } finally { - flushIndex = 0; - queue.length = 0; - flushPostFlushCbs(seen); - isFlushing = false; - currentFlushPromise = null; // some postFlushCb queued jobs! - // keep flushing until it drains. - - if (queue.length || pendingPostFlushCbs.length) { - flushJobs(seen); - } - } -} - -function checkRecursiveUpdates(seen, fn) { - if (!seen.has(fn)) { - seen.set(fn, 1); - } else { - var count = seen.get(fn); - - if (count > RECURSION_LIMIT) { - throw new Error("Maximum recursive updates exceeded. " + "This means you have a reactive effect that is mutating its own " + "dependencies and thus recursively triggering itself. Possible sources " + "include component template, render function, updated hook or " + "watcher source function."); - } else { - seen.set(fn, count + 1); - } - } -} -/* eslint-disable no-restricted-globals */ - - -var isHmrUpdating = false; -var hmrDirtyComponents = new Set(); // Expose the HMR runtime on the global object +function shallowReadonly(target){return createReactiveObject(target,true,shallowReadonlyHandlers,readonlyCollectionHandlers);}function createReactiveObject(target,isReadonly,baseHandlers,collectionHandlers){if(!isObject(target)){{console.warn("value cannot be made reactive: ".concat(String(target)));}return target;}// target is already a Proxy, return it. +// exception: calling readonly() on a reactive object +if(target["__v_raw"/* RAW */]&&!(isReadonly&&target["__v_isReactive"/* IS_REACTIVE */])){return target;}// target already has corresponding Proxy +var proxyMap=isReadonly?readonlyMap:reactiveMap;var existingProxy=proxyMap.get(target);if(existingProxy){return existingProxy;}// only a whitelist of value types can be observed. +var targetType=getTargetType(target);if(targetType===0/* INVALID */){return target;}var proxy=new Proxy(target,targetType===2/* COLLECTION */?collectionHandlers:baseHandlers);proxyMap.set(target,proxy);return proxy;}function isReactive(value){if(isReadonly(value)){return isReactive(value["__v_raw"/* RAW */]);}return!!(value&&value["__v_isReactive"/* IS_REACTIVE */]);}function isReadonly(value){return!!(value&&value["__v_isReadonly"/* IS_READONLY */]);}function isProxy(value){return isReactive(value)||isReadonly(value);}function toRaw(observed){return observed&&toRaw(observed["__v_raw"/* RAW */])||observed;}function markRaw(value){def(value,"__v_skip"/* SKIP */,true);return value;}var convert=function convert(val){return isObject(val)?reactive(val):val;};function isRef(r){return Boolean(r&&r.__v_isRef===true);}function ref(value){return createRef(value);}function shallowRef(value){return createRef(value,true);}var RefImpl=/*#__PURE__*/function(){function RefImpl(_rawValue){var _shallow=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;_classCallCheck(this,RefImpl);this._rawValue=_rawValue;this._shallow=_shallow;this.__v_isRef=true;this._value=_shallow?_rawValue:convert(_rawValue);}_createClass(RefImpl,[{key:"value",get:function get(){track(toRaw(this),"get"/* GET */,'value');return this._value;},set:function set(newVal){if(hasChanged(toRaw(newVal),this._rawValue)){this._rawValue=newVal;this._value=this._shallow?newVal:convert(newVal);trigger(toRaw(this),"set"/* SET */,'value',newVal);}}}]);return RefImpl;}();function createRef(rawValue){var shallow=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(isRef(rawValue)){return rawValue;}return new RefImpl(rawValue,shallow);}function triggerRef(ref){trigger(toRaw(ref),"set"/* SET */,'value',ref.value);}function unref(ref){return isRef(ref)?ref.value:ref;}var shallowUnwrapHandlers={get:function get(target,key,receiver){return unref(Reflect.get(target,key,receiver));},set:function set(target,key,value,receiver){var oldValue=target[key];if(isRef(oldValue)&&!isRef(value)){oldValue.value=value;return true;}else{return Reflect.set(target,key,value,receiver);}}};function proxyRefs(objectWithRefs){return isReactive(objectWithRefs)?objectWithRefs:new Proxy(objectWithRefs,shallowUnwrapHandlers);}var CustomRefImpl=/*#__PURE__*/function(){function CustomRefImpl(factory){var _this=this;_classCallCheck(this,CustomRefImpl);this.__v_isRef=true;var _factory=factory(function(){return track(_this,"get"/* GET */,'value');},function(){return trigger(_this,"set"/* SET */,'value');}),get=_factory.get,set=_factory.set;this._get=get;this._set=set;}_createClass(CustomRefImpl,[{key:"value",get:function get(){return this._get();},set:function set(newVal){this._set(newVal);}}]);return CustomRefImpl;}();function customRef(factory){return new CustomRefImpl(factory);}function toRefs(object){if(!isProxy(object)){console.warn("toRefs() expects a reactive object but received a plain one.");}var ret=isArray(object)?new Array(object.length):{};for(var key in object){ret[key]=toRef(object,key);}return ret;}var ObjectRefImpl=/*#__PURE__*/function(){function ObjectRefImpl(_object,_key){_classCallCheck(this,ObjectRefImpl);this._object=_object;this._key=_key;this.__v_isRef=true;}_createClass(ObjectRefImpl,[{key:"value",get:function get(){return this._object[this._key];},set:function set(newVal){this._object[this._key]=newVal;}}]);return ObjectRefImpl;}();function toRef(object,key){return isRef(object[key])?object[key]:new ObjectRefImpl(object,key);}var ComputedRefImpl=/*#__PURE__*/function(){function ComputedRefImpl(getter,_setter,isReadonly){var _this2=this;_classCallCheck(this,ComputedRefImpl);this._setter=_setter;this._dirty=true;this.__v_isRef=true;this.effect=effect(getter,{lazy:true,scheduler:function scheduler(){if(!_this2._dirty){_this2._dirty=true;trigger(toRaw(_this2),"set"/* SET */,'value');}}});this["__v_isReadonly"/* IS_READONLY */]=isReadonly;}_createClass(ComputedRefImpl,[{key:"value",get:function get(){if(this._dirty){this._value=this.effect();this._dirty=false;}track(toRaw(this),"get"/* GET */,'value');return this._value;},set:function set(newValue){this._setter(newValue);}}]);return ComputedRefImpl;}();function computed(getterOrOptions){var getter;var setter;if(isFunction(getterOrOptions)){getter=getterOrOptions;setter=function setter(){console.warn('Write operation failed: computed value is readonly');};}else{getter=getterOrOptions.get;setter=getterOrOptions.set;}return new ComputedRefImpl(getter,setter,isFunction(getterOrOptions)||!getterOrOptions.set);}var stack=[];function pushWarningContext(vnode){stack.push(vnode);}function popWarningContext(){stack.pop();}function warn(msg){// avoid props formatting or warn handler tracking deps that might be mutated +// during patch, leading to infinite recursion. +pauseTracking();var instance=stack.length?stack[stack.length-1].component:null;var appWarnHandler=instance&&instance.appContext.config.warnHandler;var trace=getComponentTrace();for(var _len3=arguments.length,args=new Array(_len3>1?_len3-1:0),_key4=1;_key4<_len3;_key4++){args[_key4-1]=arguments[_key4];}if(appWarnHandler){callWithErrorHandling(appWarnHandler,instance,11/* APP_WARN_HANDLER */,[msg+args.join(''),instance&&instance.proxy,trace.map(function(_ref6){var vnode=_ref6.vnode;return"at <".concat(formatComponentName(instance,vnode.type),">");}).join('\n'),trace]);}else{var _console;var warnArgs=["[Vue warn]: ".concat(msg)].concat(args);/* istanbul ignore if */if(trace.length&&// avoid spamming console during tests +!false){warnArgs.push.apply(warnArgs,["\n"].concat(_toConsumableArray(formatTrace(trace))));}(_console=console).warn.apply(_console,_toConsumableArray(warnArgs));}resetTracking();}function getComponentTrace(){var currentVNode=stack[stack.length-1];if(!currentVNode){return[];}// we can't just use the stack because it will be incomplete during updates +// that did not start from the root. Re-construct the parent chain using +// instance parent pointers. +var normalizedStack=[];while(currentVNode){var last=normalizedStack[0];if(last&&last.vnode===currentVNode){last.recurseCount++;}else{normalizedStack.push({vnode:currentVNode,recurseCount:0});}var parentInstance=currentVNode.component&¤tVNode.component.parent;currentVNode=parentInstance&&parentInstance.vnode;}return normalizedStack;}/* istanbul ignore next */function formatTrace(trace){var logs=[];trace.forEach(function(entry,i){logs.push.apply(logs,_toConsumableArray(i===0?[]:["\n"]).concat(_toConsumableArray(formatTraceEntry(entry))));});return logs;}function formatTraceEntry(_ref7){var vnode=_ref7.vnode,recurseCount=_ref7.recurseCount;var postfix=recurseCount>0?"... (".concat(recurseCount," recursive calls)"):"";var isRoot=vnode.component?vnode.component.parent==null:false;var open=" at <".concat(formatComponentName(vnode.component,vnode.type,isRoot));var close=">"+postfix;return vnode.props?[open].concat(_toConsumableArray(formatProps(vnode.props)),[close]):[open+close];}/* istanbul ignore next */function formatProps(props){var res=[];var keys=Object.keys(props);keys.slice(0,3).forEach(function(key){res.push.apply(res,_toConsumableArray(formatProp(key,props[key])));});if(keys.length>3){res.push(" ...");}return res;}/* istanbul ignore next */function formatProp(key,value,raw){if(isString(value)){value=JSON.stringify(value);return raw?value:["".concat(key,"=").concat(value)];}else if(typeof value==='number'||typeof value==='boolean'||value==null){return raw?value:["".concat(key,"=").concat(value)];}else if(isRef(value)){value=formatProp(key,toRaw(value.value),true);return raw?value:["".concat(key,"=Ref<"),value,">"];}else if(isFunction(value)){return["".concat(key,"=fn").concat(value.name?"<".concat(value.name,">"):"")];}else{value=toRaw(value);return raw?value:["".concat(key,"="),value];}}var ErrorTypeStrings=(_ErrorTypeStrings={},_defineProperty(_ErrorTypeStrings,"bc"/* BEFORE_CREATE */,'beforeCreate hook'),_defineProperty(_ErrorTypeStrings,"c"/* CREATED */,'created hook'),_defineProperty(_ErrorTypeStrings,"bm"/* BEFORE_MOUNT */,'beforeMount hook'),_defineProperty(_ErrorTypeStrings,"m"/* MOUNTED */,'mounted hook'),_defineProperty(_ErrorTypeStrings,"bu"/* BEFORE_UPDATE */,'beforeUpdate hook'),_defineProperty(_ErrorTypeStrings,"u"/* UPDATED */,'updated'),_defineProperty(_ErrorTypeStrings,"bum"/* BEFORE_UNMOUNT */,'beforeUnmount hook'),_defineProperty(_ErrorTypeStrings,"um"/* UNMOUNTED */,'unmounted hook'),_defineProperty(_ErrorTypeStrings,"a"/* ACTIVATED */,'activated hook'),_defineProperty(_ErrorTypeStrings,"da"/* DEACTIVATED */,'deactivated hook'),_defineProperty(_ErrorTypeStrings,"ec"/* ERROR_CAPTURED */,'errorCaptured hook'),_defineProperty(_ErrorTypeStrings,"rtc"/* RENDER_TRACKED */,'renderTracked hook'),_defineProperty(_ErrorTypeStrings,"rtg"/* RENDER_TRIGGERED */,'renderTriggered hook'),_defineProperty(_ErrorTypeStrings,0/* SETUP_FUNCTION */,'setup function'),_defineProperty(_ErrorTypeStrings,1/* RENDER_FUNCTION */,'render function'),_defineProperty(_ErrorTypeStrings,2/* WATCH_GETTER */,'watcher getter'),_defineProperty(_ErrorTypeStrings,3/* WATCH_CALLBACK */,'watcher callback'),_defineProperty(_ErrorTypeStrings,4/* WATCH_CLEANUP */,'watcher cleanup function'),_defineProperty(_ErrorTypeStrings,5/* NATIVE_EVENT_HANDLER */,'native event handler'),_defineProperty(_ErrorTypeStrings,6/* COMPONENT_EVENT_HANDLER */,'component event handler'),_defineProperty(_ErrorTypeStrings,7/* VNODE_HOOK */,'vnode hook'),_defineProperty(_ErrorTypeStrings,8/* DIRECTIVE_HOOK */,'directive hook'),_defineProperty(_ErrorTypeStrings,9/* TRANSITION_HOOK */,'transition hook'),_defineProperty(_ErrorTypeStrings,10/* APP_ERROR_HANDLER */,'app errorHandler'),_defineProperty(_ErrorTypeStrings,11/* APP_WARN_HANDLER */,'app warnHandler'),_defineProperty(_ErrorTypeStrings,12/* FUNCTION_REF */,'ref function'),_defineProperty(_ErrorTypeStrings,13/* ASYNC_COMPONENT_LOADER */,'async component loader'),_defineProperty(_ErrorTypeStrings,14/* SCHEDULER */,'scheduler flush. This is likely a Vue internals bug. '+'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next'),_ErrorTypeStrings);function callWithErrorHandling(fn,instance,type,args){var res;try{res=args?fn.apply(void 0,_toConsumableArray(args)):fn();}catch(err){handleError(err,instance,type);}return res;}function callWithAsyncErrorHandling(fn,instance,type,args){if(isFunction(fn)){var res=callWithErrorHandling(fn,instance,type,args);if(res&&isPromise(res)){res.catch(function(err){handleError(err,instance,type);});}return res;}var values=[];for(var i=0;i3&&arguments[3]!==undefined?arguments[3]:true;var contextVNode=instance?instance.vnode:null;if(instance){var cur=instance.parent;// the exposed instance is the render proxy to keep it consistent with 2.x +var exposedInstance=instance.proxy;// in production the hook receives only the error code +var errorInfo=ErrorTypeStrings[type];while(cur){var errorCapturedHooks=cur.ec;if(errorCapturedHooks){for(var i=0;i3&&arguments[3]!==undefined?arguments[3]:true;{var info=ErrorTypeStrings[type];if(contextVNode){pushWarningContext(contextVNode);}warn("Unhandled error".concat(info?" during execution of ".concat(info):""));if(contextVNode){popWarningContext();}// crash in dev by default so it's more noticeable +if(throwInDev){throw err;}else{console.error(err);}}}var isFlushing=false;var isFlushPending=false;var queue=[];var flushIndex=0;var pendingPreFlushCbs=[];var activePreFlushCbs=null;var preFlushIndex=0;var pendingPostFlushCbs=[];var activePostFlushCbs=null;var postFlushIndex=0;var resolvedPromise=Promise.resolve();var currentFlushPromise=null;var currentPreFlushParentJob=null;var RECURSION_LIMIT=100;function nextTick(fn){var p=currentFlushPromise||resolvedPromise;return fn?p.then(this?fn.bind(this):fn):p;}function queueJob(job){// the dedupe search uses the startIndex argument of Array.includes() +// by default the search index includes the current job that is being run +// so it cannot recursively trigger itself again. +// if the job is a watch() callback, the search will start with a +1 index to +// allow it recursively trigger itself - it is the user's responsibility to +// ensure it doesn't end up in an infinite loop. +if((!queue.length||!queue.includes(job,isFlushing&&job.allowRecurse?flushIndex+1:flushIndex))&&job!==currentPreFlushParentJob){queue.push(job);queueFlush();}}function queueFlush(){if(!isFlushing&&!isFlushPending){isFlushPending=true;currentFlushPromise=resolvedPromise.then(flushJobs);}}function invalidateJob(job){var i=queue.indexOf(job);if(i>-1){queue[i]=null;}}function queueCb(cb,activeQueue,pendingQueue,index){if(!isArray(cb)){if(!activeQueue||!activeQueue.includes(cb,cb.allowRecurse?index+1:index)){pendingQueue.push(cb);}}else{// if cb is an array, it is a component lifecycle hook which can only be +// triggered by a job, which is already deduped in the main queue, so +// we can skip duplicate check here to improve perf +pendingQueue.push.apply(pendingQueue,_toConsumableArray(cb));}queueFlush();}function queuePreFlushCb(cb){queueCb(cb,activePreFlushCbs,pendingPreFlushCbs,preFlushIndex);}function queuePostFlushCb(cb){queueCb(cb,activePostFlushCbs,pendingPostFlushCbs,postFlushIndex);}function flushPreFlushCbs(seen){var parentJob=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(pendingPreFlushCbs.length){currentPreFlushParentJob=parentJob;activePreFlushCbs=_toConsumableArray(new Set(pendingPreFlushCbs));pendingPreFlushCbs.length=0;{seen=seen||new Map();}for(preFlushIndex=0;preFlushIndexRECURSION_LIMIT){throw new Error("Maximum recursive updates exceeded. "+"This means you have a reactive effect that is mutating its own "+"dependencies and thus recursively triggering itself. Possible sources "+"include component template, render function, updated hook or "+"watcher source function.");}else{seen.set(fn,count+1);}}}/* eslint-disable no-restricted-globals */var isHmrUpdating=false;var hmrDirtyComponents=new Set();// Expose the HMR runtime on the global object // This makes it entirely tree-shakable without polluting the exports and makes // it easier to be used in toolings like vue-loader // Note: for a component to be eligible for HMR it also needs the __hmrId option // to be set so that its instances can be registered / removed. - -{ - var globalObject = typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {}; - globalObject.__VUE_HMR_RUNTIME__ = { - createRecord: tryWrap(createRecord), - rerender: tryWrap(rerender), - reload: tryWrap(reload) - }; -} -var map = new Map(); - -function registerHMR(instance) { - var id = instance.type.__hmrId; - var record = map.get(id); - - if (!record) { - createRecord(id); - record = map.get(id); - } - - record.add(instance); -} - -function unregisterHMR(instance) { - map.get(instance.type.__hmrId).delete(instance); -} - -function createRecord(id) { - if (map.has(id)) { - return false; - } - - map.set(id, new Set()); - return true; -} - -function rerender(id, newRender) { - var record = map.get(id); - if (!record) return; // Array.from creates a snapshot which avoids the set being mutated during - // updates - - Array.from(record).forEach(function (instance) { - if (newRender) { - instance.render = newRender; - } - - instance.renderCache = []; // this flag forces child components with slot content to update - - isHmrUpdating = true; - instance.update(); - isHmrUpdating = false; - }); -} - -function reload(id, newComp) { - var record = map.get(id); - if (!record) return; // Array.from creates a snapshot which avoids the set being mutated during - // updates - - Array.from(record).forEach(function (instance) { - var comp = instance.type; - - if (!hmrDirtyComponents.has(comp)) { - // 1. Update existing comp definition to match new one - newComp = isClassComponent(newComp) ? newComp.__vccOpts : newComp; - extend(comp, newComp); - - for (var key in comp) { - if (!(key in newComp)) { - delete comp[key]; - } - } // 2. Mark component dirty. This forces the renderer to replace the component - // on patch. - - - hmrDirtyComponents.add(comp); // 3. Make sure to unmark the component after the reload. - - queuePostFlushCb(function () { - hmrDirtyComponents.delete(comp); - }); - } - - if (instance.parent) { - // 4. Force the parent instance to re-render. This will cause all updated - // components to be unmounted and re-mounted. Queue the update so that we - // don't end up forcing the same parent to re-render multiple times. - queueJob(instance.parent.update); - } else if (instance.appContext.reload) { - // root instance mounted via createApp() has a reload method - instance.appContext.reload(); - } else if (typeof window !== 'undefined') { - // root instance inside tree created via raw render(). Force reload. - window.location.reload(); - } else { - console.warn('[HMR] Root or manually mounted instance modified. Full reload required.'); - } - }); -} - -function tryWrap(fn) { - return function (id, arg) { - try { - return fn(id, arg); - } catch (e) { - console.error(e); - console.warn("[HMR] Something went wrong during Vue component hot-reload. " + "Full reload required."); - } - }; -} - -var devtools; - -function setDevtoolsHook(hook) { - devtools = hook; -} - -function devtoolsInitApp(app, version) { - // TODO queue if devtools is undefined - if (!devtools) return; - devtools.emit("app:init" - /* APP_INIT */ - , app, version, { - Fragment: Fragment, - Text: Text, - Comment: Comment, - Static: Static - }); -} - -function devtoolsUnmountApp(app) { - if (!devtools) return; - devtools.emit("app:unmount" - /* APP_UNMOUNT */ - , app); -} - -var devtoolsComponentAdded = /*#__PURE__*/createDevtoolsComponentHook("component:added" -/* COMPONENT_ADDED */ -); -var devtoolsComponentUpdated = /*#__PURE__*/createDevtoolsComponentHook("component:updated" -/* COMPONENT_UPDATED */ -); -var devtoolsComponentRemoved = /*#__PURE__*/createDevtoolsComponentHook("component:removed" -/* COMPONENT_REMOVED */ -); - -function createDevtoolsComponentHook(hook) { - return function (component) { - if (!devtools) return; - devtools.emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined); - }; -} - -function devtoolsComponentEmit(component, event, params) { - if (!devtools) return; - devtools.emit("component:emit" - /* COMPONENT_EMIT */ - , component.appContext.app, component, event, params); -} - -function emit(instance, event) { - var props = instance.vnode.props || EMPTY_OBJ; - - for (var _len4 = arguments.length, rawArgs = new Array(_len4 > 2 ? _len4 - 2 : 0), _key5 = 2; _key5 < _len4; _key5++) { - rawArgs[_key5 - 2] = arguments[_key5]; - } - - { - var emitsOptions = instance.emitsOptions, - _instance$propsOption = _slicedToArray(instance.propsOptions, 1), - propsOptions = _instance$propsOption[0]; - - if (emitsOptions) { - if (!(event in emitsOptions)) { - if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { - warn("Component emitted event \"".concat(event, "\" but it is neither declared in ") + "the emits option nor as an \"".concat(toHandlerKey(event), "\" prop.")); - } - } else { - var validator = emitsOptions[event]; - - if (isFunction(validator)) { - var isValid = validator.apply(void 0, rawArgs); - - if (!isValid) { - warn("Invalid event arguments: event validation failed for event \"".concat(event, "\".")); - } - } - } - } - } - var args = rawArgs; - var isModelListener = event.startsWith('update:'); // for v-model update:xxx events, apply modifiers on args - - var modelArg = isModelListener && event.slice(7); - - if (modelArg && modelArg in props) { - var modifiersKey = "".concat(modelArg === 'modelValue' ? 'model' : modelArg, "Modifiers"); - - var _ref8 = props[modifiersKey] || EMPTY_OBJ, - number = _ref8.number, - trim = _ref8.trim; - - if (trim) { - args = rawArgs.map(function (a) { - return a.trim(); - }); - } else if (number) { - args = rawArgs.map(toNumber); - } - } - - { - devtoolsComponentEmit(instance, event, args); - } - { - var lowerCaseEvent = event.toLowerCase(); - - if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { - warn("Event \"".concat(lowerCaseEvent, "\" is emitted in component ") + "".concat(formatComponentName(instance, instance.type), " but the handler is registered for \"").concat(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 \"".concat(hyphenate(event), "\" instead of \"").concat(event, "\".")); - } - } // convert handler name to camelCase. See issue #2249 - - var handlerName = toHandlerKey(camelize(event)); - var handler = props[handlerName]; // for v-model update:xxx events, also trigger kebab-case equivalent - // for props passed via kebab-case - - if (!handler && isModelListener) { - handlerName = toHandlerKey(hyphenate(event)); - handler = props[handlerName]; - } - - if (handler) { - callWithAsyncErrorHandling(handler, instance, 6 - /* COMPONENT_EVENT_HANDLER */ - , args); - } - - var onceHandler = props[handlerName + "Once"]; - - if (onceHandler) { - if (!instance.emitted) { - (instance.emitted = {})[handlerName] = true; - } else if (instance.emitted[handlerName]) { - return; - } - - callWithAsyncErrorHandling(onceHandler, instance, 6 - /* COMPONENT_EVENT_HANDLER */ - , args); - } -} - -function normalizeEmitsOptions(comp, appContext) { - var asMixin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (!appContext.deopt && comp.__emits !== undefined) { - return comp.__emits; - } - - var raw = comp.emits; - var normalized = {}; // apply mixin/extends props - - var hasExtends = false; - - if (!isFunction(comp)) { - var extendEmits = function extendEmits(raw) { - hasExtends = true; - extend(normalized, normalizeEmitsOptions(raw, appContext, true)); - }; - - if (!asMixin && appContext.mixins.length) { - appContext.mixins.forEach(extendEmits); - } - - if (comp.extends) { - extendEmits(comp.extends); - } - - if (comp.mixins) { - comp.mixins.forEach(extendEmits); - } - } - - if (!raw && !hasExtends) { - return comp.__emits = null; - } - - if (isArray(raw)) { - raw.forEach(function (key) { - return normalized[key] = null; - }); - } else { - extend(normalized, raw); - } - - return comp.__emits = normalized; -} // Check if an incoming prop key is a declared emit event listener. +{var globalObject=typeof global!=='undefined'?global:typeof self!=='undefined'?self:typeof window!=='undefined'?window:{};globalObject.__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)};}var map=new Map();function registerHMR(instance){var id=instance.type.__hmrId;var record=map.get(id);if(!record){createRecord(id);record=map.get(id);}record.add(instance);}function unregisterHMR(instance){map.get(instance.type.__hmrId).delete(instance);}function createRecord(id){if(map.has(id)){return false;}map.set(id,new Set());return true;}function rerender(id,newRender){var record=map.get(id);if(!record)return;// Array.from creates a snapshot which avoids the set being mutated during +// updates +Array.from(record).forEach(function(instance){if(newRender){instance.render=newRender;}instance.renderCache=[];// this flag forces child components with slot content to update +isHmrUpdating=true;instance.update();isHmrUpdating=false;});}function reload(id,newComp){var record=map.get(id);if(!record)return;// Array.from creates a snapshot which avoids the set being mutated during +// updates +Array.from(record).forEach(function(instance){var comp=instance.type;if(!hmrDirtyComponents.has(comp)){// 1. Update existing comp definition to match new one +newComp=isClassComponent(newComp)?newComp.__vccOpts:newComp;extend(comp,newComp);for(var key in comp){if(!(key in newComp)){delete comp[key];}}// 2. Mark component dirty. This forces the renderer to replace the component +// on patch. +hmrDirtyComponents.add(comp);// 3. Make sure to unmark the component after the reload. +queuePostFlushCb(function(){hmrDirtyComponents.delete(comp);});}if(instance.parent){// 4. Force the parent instance to re-render. This will cause all updated +// components to be unmounted and re-mounted. Queue the update so that we +// don't end up forcing the same parent to re-render multiple times. +queueJob(instance.parent.update);}else if(instance.appContext.reload){// root instance mounted via createApp() has a reload method +instance.appContext.reload();}else if(typeof window!=='undefined'){// root instance inside tree created via raw render(). Force reload. +window.location.reload();}else{console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');}});}function tryWrap(fn){return function(id,arg){try{return fn(id,arg);}catch(e){console.error(e);console.warn("[HMR] Something went wrong during Vue component hot-reload. "+"Full reload required.");}};}var devtools;function setDevtoolsHook(hook){devtools=hook;}function devtoolsInitApp(app,version){// TODO queue if devtools is undefined +if(!devtools)return;devtools.emit("app:init"/* APP_INIT */,app,version,{Fragment:Fragment,Text:Text,Comment:Comment,Static:Static});}function devtoolsUnmountApp(app){if(!devtools)return;devtools.emit("app:unmount"/* APP_UNMOUNT */,app);}var devtoolsComponentAdded=/*#__PURE__*/createDevtoolsComponentHook("component:added"/* COMPONENT_ADDED */);var devtoolsComponentUpdated=/*#__PURE__*/createDevtoolsComponentHook("component:updated"/* COMPONENT_UPDATED */);var devtoolsComponentRemoved=/*#__PURE__*/createDevtoolsComponentHook("component:removed"/* COMPONENT_REMOVED */);function createDevtoolsComponentHook(hook){return function(component){if(!devtools)return;devtools.emit(hook,component.appContext.app,component.uid,component.parent?component.parent.uid:undefined);};}function devtoolsComponentEmit(component,event,params){if(!devtools)return;devtools.emit("component:emit"/* COMPONENT_EMIT */,component.appContext.app,component,event,params);}function emit(instance,event){var props=instance.vnode.props||EMPTY_OBJ;for(var _len4=arguments.length,rawArgs=new Array(_len4>2?_len4-2:0),_key5=2;_key5<_len4;_key5++){rawArgs[_key5-2]=arguments[_key5];}{var emitsOptions=instance.emitsOptions,_instance$propsOption=_slicedToArray(instance.propsOptions,1),propsOptions=_instance$propsOption[0];if(emitsOptions){if(!(event in emitsOptions)){if(!propsOptions||!(toHandlerKey(event)in propsOptions)){warn("Component emitted event \"".concat(event,"\" but it is neither declared in ")+"the emits option nor as an \"".concat(toHandlerKey(event),"\" prop."));}}else{var validator=emitsOptions[event];if(isFunction(validator)){var isValid=validator.apply(void 0,rawArgs);if(!isValid){warn("Invalid event arguments: event validation failed for event \"".concat(event,"\"."));}}}}}var args=rawArgs;var isModelListener=event.startsWith('update:');// for v-model update:xxx events, apply modifiers on args +var modelArg=isModelListener&&event.slice(7);if(modelArg&&modelArg in props){var modifiersKey="".concat(modelArg==='modelValue'?'model':modelArg,"Modifiers");var _ref8=props[modifiersKey]||EMPTY_OBJ,number=_ref8.number,trim=_ref8.trim;if(trim){args=rawArgs.map(function(a){return a.trim();});}else if(number){args=rawArgs.map(toNumber);}}{devtoolsComponentEmit(instance,event,args);}{var lowerCaseEvent=event.toLowerCase();if(lowerCaseEvent!==event&&props[toHandlerKey(lowerCaseEvent)]){warn("Event \"".concat(lowerCaseEvent,"\" is emitted in component ")+"".concat(formatComponentName(instance,instance.type)," but the handler is registered for \"").concat(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 \"".concat(hyphenate(event),"\" instead of \"").concat(event,"\"."));}}// convert handler name to camelCase. See issue #2249 +var handlerName=toHandlerKey(camelize(event));var handler=props[handlerName];// for v-model update:xxx events, also trigger kebab-case equivalent +// for props passed via kebab-case +if(!handler&&isModelListener){handlerName=toHandlerKey(hyphenate(event));handler=props[handlerName];}if(handler){callWithAsyncErrorHandling(handler,instance,6/* COMPONENT_EVENT_HANDLER */,args);}var onceHandler=props[handlerName+"Once"];if(onceHandler){if(!instance.emitted){(instance.emitted={})[handlerName]=true;}else if(instance.emitted[handlerName]){return;}callWithAsyncErrorHandling(onceHandler,instance,6/* COMPONENT_EVENT_HANDLER */,args);}}function normalizeEmitsOptions(comp,appContext){var asMixin=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(!appContext.deopt&&comp.__emits!==undefined){return comp.__emits;}var raw=comp.emits;var normalized={};// apply mixin/extends props +var hasExtends=false;if(!isFunction(comp)){var extendEmits=function extendEmits(raw){hasExtends=true;extend(normalized,normalizeEmitsOptions(raw,appContext,true));};if(!asMixin&&appContext.mixins.length){appContext.mixins.forEach(extendEmits);}if(comp.extends){extendEmits(comp.extends);}if(comp.mixins){comp.mixins.forEach(extendEmits);}}if(!raw&&!hasExtends){return comp.__emits=null;}if(isArray(raw)){raw.forEach(function(key){return normalized[key]=null;});}else{extend(normalized,raw);}return comp.__emits=normalized;}// Check if an incoming prop key is a declared emit event listener. // e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are // both considered matched listeners. - - -function isEmitListener(options, key) { - if (!options || !isOn(key)) { - return false; - } - - key = key.replace(/Once$/, ''); - return hasOwn(options, key[2].toLowerCase() + key.slice(3)) || hasOwn(options, key.slice(2)); -} // mark the current rendering instance for asset resolution (e.g. +function isEmitListener(options,key){if(!options||!isOn(key)){return false;}key=key.replace(/Once$/,'');return hasOwn(options,key[2].toLowerCase()+key.slice(3))||hasOwn(options,key.slice(2));}// mark the current rendering instance for asset resolution (e.g. // resolveComponent, resolveDirective) during render - - -var currentRenderingInstance = null; - -function setCurrentRenderingInstance(instance) { - currentRenderingInstance = instance; -} // dev only flag to track whether $attrs was used during render. +var currentRenderingInstance=null;function setCurrentRenderingInstance(instance){currentRenderingInstance=instance;}// dev only flag to track whether $attrs was used during render. // If $attrs was used during render then the warning for failed attrs // fallthrough can be suppressed. - - -var accessedAttrs = false; - -function markAttrsAccessed() { - accessedAttrs = true; -} - -function renderComponentRoot(instance) { - var Component = instance.type, - vnode = instance.vnode, - proxy = instance.proxy, - withProxy = instance.withProxy, - props = instance.props, - _instance$propsOption2 = _slicedToArray(instance.propsOptions, 1), - propsOptions = _instance$propsOption2[0], - slots = instance.slots, - attrs = instance.attrs, - emit = instance.emit, - render = instance.render, - renderCache = instance.renderCache, - data = instance.data, - setupState = instance.setupState, - ctx = instance.ctx; - - var result; - currentRenderingInstance = instance; - { - accessedAttrs = false; - } - - try { - var fallthroughAttrs; - - if (vnode.shapeFlag & 4 - /* STATEFUL_COMPONENT */ - ) { - // withProxy is a proxy with a different `has` trap only for - // runtime-compiled render functions using `with` block. - var proxyToUse = withProxy || proxy; - result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx)); - fallthroughAttrs = attrs; - } else { - // functional - var _render = Component; // in dev, mark attrs accessed if optional props (attrs === props) - - if (true && attrs === props) { - markAttrsAccessed(); - } - - result = normalizeVNode(_render.length > 1 ? _render(props, true ? { - get attrs() { - markAttrsAccessed(); - return attrs; - }, - - slots: slots, - emit: emit - } : { - attrs: attrs, - slots: slots, - emit: emit - }) : _render(props, null - /* we know it doesn't need it */ - )); - fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); - } // attr merging - // in dev mode, comments are preserved, and it's possible for a template - // to have comments along side the root element which makes it a fragment - - - var root = result; - var setRoot = undefined; - - if (true) { - ; - - var _getChildRoot = getChildRoot(result); - - var _getChildRoot2 = _slicedToArray(_getChildRoot, 2); - - root = _getChildRoot2[0]; - setRoot = _getChildRoot2[1]; - } - - if (Component.inheritAttrs !== false && fallthroughAttrs) { - var keys = Object.keys(fallthroughAttrs); - var _root = root, - shapeFlag = _root.shapeFlag; - - if (keys.length) { - if (shapeFlag & 1 - /* ELEMENT */ - || shapeFlag & 6 - /* COMPONENT */ - ) { - if (propsOptions && keys.some(isModelListener)) { - // If a v-model listener (onUpdate:xxx) has a corresponding declared - // prop, it indicates this component expects to handle v-model and - // it should not fallthrough. - // related: #1543, #1643, #1989 - fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions); - } - - root = cloneVNode(root, fallthroughAttrs); - } else if (true && !accessedAttrs && root.type !== Comment) { - var allAttrs = Object.keys(attrs); - var eventAttrs = []; - var extraAttrs = []; - - for (var i = 0, l = allAttrs.length; i < l; i++) { - var key = allAttrs[i]; - - if (isOn(key)) { - // ignore v-model handlers when they fail to fallthrough - if (!isModelListener(key)) { - // remove `on`, lowercase first letter to reflect event casing - // accurately - eventAttrs.push(key[2].toLowerCase() + key.slice(3)); - } - } else { - extraAttrs.push(key); - } - } - - if (extraAttrs.length) { - warn("Extraneous non-props attributes (" + "".concat(extraAttrs.join(', '), ") ") + "were passed to component but could not be automatically inherited " + "because component renders fragment or text root nodes."); - } - - if (eventAttrs.length) { - warn("Extraneous non-emits event listeners (" + "".concat(eventAttrs.join(', '), ") ") + "were passed to component but could not be automatically inherited " + "because component renders fragment or text root nodes. " + "If the listener is intended to be a component custom event listener only, " + "declare it using the \"emits\" option."); - } - } - } - } // inherit directives - - - if (vnode.dirs) { - if (true && !isElementRoot(root)) { - warn("Runtime directive used on component with non-element root node. " + "The directives will not function as intended."); - } - - root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; - } // inherit transition data - - - if (vnode.transition) { - if (true && !isElementRoot(root)) { - warn("Component inside renders non-element root node " + "that cannot be animated."); - } - - root.transition = vnode.transition; - } - - if (true && setRoot) { - setRoot(root); - } else { - result = root; - } - } catch (err) { - handleError(err, instance, 1 - /* RENDER_FUNCTION */ - ); - result = createVNode(Comment); - } - - currentRenderingInstance = null; - return result; -} -/** +var accessedAttrs=false;function markAttrsAccessed(){accessedAttrs=true;}function renderComponentRoot(instance){var Component=instance.type,vnode=instance.vnode,proxy=instance.proxy,withProxy=instance.withProxy,props=instance.props,_instance$propsOption2=_slicedToArray(instance.propsOptions,1),propsOptions=_instance$propsOption2[0],slots=instance.slots,attrs=instance.attrs,emit=instance.emit,render=instance.render,renderCache=instance.renderCache,data=instance.data,setupState=instance.setupState,ctx=instance.ctx;var result;currentRenderingInstance=instance;{accessedAttrs=false;}try{var fallthroughAttrs;if(vnode.shapeFlag&4/* STATEFUL_COMPONENT */){// withProxy is a proxy with a different `has` trap only for +// runtime-compiled render functions using `with` block. +var proxyToUse=withProxy||proxy;result=normalizeVNode(render.call(proxyToUse,proxyToUse,renderCache,props,setupState,data,ctx));fallthroughAttrs=attrs;}else{// functional +var _render=Component;// in dev, mark attrs accessed if optional props (attrs === props) +if(true&&attrs===props){markAttrsAccessed();}result=normalizeVNode(_render.length>1?_render(props,true?{get attrs(){markAttrsAccessed();return attrs;},slots:slots,emit:emit}:{attrs:attrs,slots:slots,emit:emit}):_render(props,null/* we know it doesn't need it */));fallthroughAttrs=Component.props?attrs:getFunctionalFallthrough(attrs);}// attr merging +// in dev mode, comments are preserved, and it's possible for a template +// to have comments along side the root element which makes it a fragment +var root=result;var setRoot=undefined;if(true){;var _getChildRoot=getChildRoot(result);var _getChildRoot2=_slicedToArray(_getChildRoot,2);root=_getChildRoot2[0];setRoot=_getChildRoot2[1];}if(Component.inheritAttrs!==false&&fallthroughAttrs){var keys=Object.keys(fallthroughAttrs);var _root=root,shapeFlag=_root.shapeFlag;if(keys.length){if(shapeFlag&1/* ELEMENT */||shapeFlag&6/* COMPONENT */){if(propsOptions&&keys.some(isModelListener)){// If a v-model listener (onUpdate:xxx) has a corresponding declared +// prop, it indicates this component expects to handle v-model and +// it should not fallthrough. +// related: #1543, #1643, #1989 +fallthroughAttrs=filterModelListeners(fallthroughAttrs,propsOptions);}root=cloneVNode(root,fallthroughAttrs);}else if(true&&!accessedAttrs&&root.type!==Comment){var allAttrs=Object.keys(attrs);var eventAttrs=[];var extraAttrs=[];for(var i=0,l=allAttrs.length;i renders non-element root node "+"that cannot be animated.");}root.transition=vnode.transition;}if(true&&setRoot){setRoot(root);}else{result=root;}}catch(err){handleError(err,instance,1/* RENDER_FUNCTION */);result=createVNode(Comment);}currentRenderingInstance=null;return result;}/** * dev only * In dev mode, template root level comments are rendered, which turns the * template into a fragment root, but we need to locate the single element * root for attrs and scope id processing. - */ - - -var getChildRoot = function getChildRoot(vnode) { - if (vnode.type !== Fragment) { - return [vnode, undefined]; - } - - var rawChildren = vnode.children; - var dynamicChildren = vnode.dynamicChildren; - var childRoot = filterSingleRoot(rawChildren); - - if (!childRoot) { - return [vnode, undefined]; - } - - var index = rawChildren.indexOf(childRoot); - var dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; - - var setRoot = function setRoot(updatedRoot) { - rawChildren[index] = updatedRoot; - - if (dynamicChildren) { - if (dynamicIndex > -1) { - dynamicChildren[dynamicIndex] = updatedRoot; - } else if (updatedRoot.patchFlag > 0) { - vnode.dynamicChildren = [].concat(_toConsumableArray(dynamicChildren), [updatedRoot]); - } - } - }; - - return [normalizeVNode(childRoot), setRoot]; -}; -/** + */var getChildRoot=function getChildRoot(vnode){if(vnode.type!==Fragment){return[vnode,undefined];}var rawChildren=vnode.children;var dynamicChildren=vnode.dynamicChildren;var childRoot=filterSingleRoot(rawChildren);if(!childRoot){return[vnode,undefined];}var index=rawChildren.indexOf(childRoot);var dynamicIndex=dynamicChildren?dynamicChildren.indexOf(childRoot):-1;var setRoot=function setRoot(updatedRoot){rawChildren[index]=updatedRoot;if(dynamicChildren){if(dynamicIndex>-1){dynamicChildren[dynamicIndex]=updatedRoot;}else if(updatedRoot.patchFlag>0){vnode.dynamicChildren=[].concat(_toConsumableArray(dynamicChildren),[updatedRoot]);}}};return[normalizeVNode(childRoot),setRoot];};/** * dev only - */ - - -function filterSingleRoot(children) { - var filtered = children.filter(function (child) { - return !(isVNode(child) && child.type === Comment && child.children !== 'v-if'); - }); - return filtered.length === 1 && isVNode(filtered[0]) ? filtered[0] : null; -} - -var getFunctionalFallthrough = function getFunctionalFallthrough(attrs) { - var res; - - for (var key in attrs) { - if (key === 'class' || key === 'style' || isOn(key)) { - (res || (res = {}))[key] = attrs[key]; - } - } - - return res; -}; - -var filterModelListeners = function filterModelListeners(attrs, props) { - var res = {}; - - for (var key in attrs) { - if (!isModelListener(key) || !(key.slice(9) in props)) { - res[key] = attrs[key]; - } - } - - return res; -}; - -var isElementRoot = function isElementRoot(vnode) { - return vnode.shapeFlag & 6 - /* COMPONENT */ - || vnode.shapeFlag & 1 - /* ELEMENT */ - || vnode.type === Comment // potential v-if branch switch - ; -}; - -function shouldUpdateComponent(prevVNode, nextVNode, optimized) { - var prevProps = prevVNode.props, - prevChildren = prevVNode.children, - component = prevVNode.component; - var nextProps = nextVNode.props, - nextChildren = nextVNode.children, - patchFlag = nextVNode.patchFlag; - var emits = component.emitsOptions; // Parent component's render function was hot-updated. Since this may have - // caused the child component's slots content to have changed, we need to - // force the child to update as well. - - if ((prevChildren || nextChildren) && isHmrUpdating) { - return true; - } // force child update for runtime directive or transition on component vnode. - - - if (nextVNode.dirs || nextVNode.transition) { - return true; - } - - if (optimized && patchFlag > 0) { - if (patchFlag & 1024 - /* DYNAMIC_SLOTS */ - ) { - // slot content that references values that might have changed, - // e.g. in a v-for - return true; - } - - if (patchFlag & 16 - /* FULL_PROPS */ - ) { - if (!prevProps) { - return !!nextProps; - } // presence of this flag indicates props are always non-null - - - return hasPropsChanged(prevProps, nextProps, emits); - } else if (patchFlag & 8 - /* PROPS */ - ) { - var dynamicProps = nextVNode.dynamicProps; - - for (var i = 0; i < dynamicProps.length; i++) { - var key = dynamicProps[i]; - - if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { - return true; - } - } - } - } else { - // this path is only taken by manually written render functions - // so presence of any children leads to a forced update - if (prevChildren || nextChildren) { - if (!nextChildren || !nextChildren.$stable) { - return true; - } - } - - if (prevProps === nextProps) { - return false; - } - - if (!prevProps) { - return !!nextProps; - } - - if (!nextProps) { - return true; - } - - return hasPropsChanged(prevProps, nextProps, emits); - } - - return false; -} - -function hasPropsChanged(prevProps, nextProps, emitsOptions) { - var nextKeys = Object.keys(nextProps); - - if (nextKeys.length !== Object.keys(prevProps).length) { - return true; - } - - for (var i = 0; i < nextKeys.length; i++) { - var key = nextKeys[i]; - - if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { - return true; - } - } - - return false; -} - -function updateHOCHostEl(_ref9, el // HostNode -) { - var vnode = _ref9.vnode, - parent = _ref9.parent; - - while (parent && parent.subTree === vnode) { - (vnode = parent.vnode).el = el; - parent = parent.parent; - } -} - -var isSuspense = function isSuspense(type) { - return type.__isSuspense; -}; // Suspense exposes a component-like API, and is treated like a component + */function filterSingleRoot(children){var filtered=children.filter(function(child){return!(isVNode(child)&&child.type===Comment&&child.children!=='v-if');});return filtered.length===1&&isVNode(filtered[0])?filtered[0]:null;}var getFunctionalFallthrough=function getFunctionalFallthrough(attrs){var res;for(var key in attrs){if(key==='class'||key==='style'||isOn(key)){(res||(res={}))[key]=attrs[key];}}return res;};var filterModelListeners=function filterModelListeners(attrs,props){var res={};for(var key in attrs){if(!isModelListener(key)||!(key.slice(9)in props)){res[key]=attrs[key];}}return res;};var isElementRoot=function isElementRoot(vnode){return vnode.shapeFlag&6/* COMPONENT */||vnode.shapeFlag&1/* ELEMENT */||vnode.type===Comment// potential v-if branch switch +;};function shouldUpdateComponent(prevVNode,nextVNode,optimized){var prevProps=prevVNode.props,prevChildren=prevVNode.children,component=prevVNode.component;var nextProps=nextVNode.props,nextChildren=nextVNode.children,patchFlag=nextVNode.patchFlag;var emits=component.emitsOptions;// Parent component's render function was hot-updated. Since this may have +// caused the child component's slots content to have changed, we need to +// force the child to update as well. +if((prevChildren||nextChildren)&&isHmrUpdating){return true;}// force child update for runtime directive or transition on component vnode. +if(nextVNode.dirs||nextVNode.transition){return true;}if(optimized&&patchFlag>0){if(patchFlag&1024/* DYNAMIC_SLOTS */){// slot content that references values that might have changed, +// e.g. in a v-for +return true;}if(patchFlag&16/* FULL_PROPS */){if(!prevProps){return!!nextProps;}// presence of this flag indicates props are always non-null +return hasPropsChanged(prevProps,nextProps,emits);}else if(patchFlag&8/* PROPS */){var dynamicProps=nextVNode.dynamicProps;for(var i=0;i 0) { - // has async - // mount the fallback tree - patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context - isSVG); - setActiveBranch(suspense, vnode.ssFallback); - } else { - // Suspense has no async deps. Just resolve. - suspense.resolve(); - } -} - -function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, _ref10) { - var patch = _ref10.p, - unmount = _ref10.um, - createElement = _ref10.o.createElement; - var suspense = n2.suspense = n1.suspense; - suspense.vnode = n2; - n2.el = n1.el; - var newBranch = n2.ssContent; - var newFallback = n2.ssFallback; - var activeBranch = suspense.activeBranch, - pendingBranch = suspense.pendingBranch, - isInFallback = suspense.isInFallback, - isHydrating = suspense.isHydrating; - - if (pendingBranch) { - suspense.pendingBranch = newBranch; - - if (isSameVNodeType(newBranch, pendingBranch)) { - // same root type but content may have changed. - patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG); - - if (suspense.deps <= 0) { - suspense.resolve(); - } else if (isInFallback) { - patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context - isSVG); - setActiveBranch(suspense, newFallback); - } - } else { - // toggled before pending tree is resolved - suspense.pendingId++; - - if (isHydrating) { - // if toggled before hydration is finished, the current DOM tree is - // no longer valid. set it as the active branch so it will be unmounted - // when resolved - suspense.isHydrating = false; - suspense.activeBranch = pendingBranch; - } else { - unmount(pendingBranch, parentComponent, suspense); - } // increment pending ID. this is used to invalidate async callbacks - // reset suspense state - - - suspense.deps = 0; // discard effects from pending branch - - suspense.effects.length = 0; // discard previous container - - suspense.hiddenContainer = createElement('div'); - - if (isInFallback) { - // already in fallback state - patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG); - - if (suspense.deps <= 0) { - suspense.resolve(); - } else { - patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context - isSVG); - setActiveBranch(suspense, newFallback); - } - } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { - // toggled "back" to current active branch - patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG); // force resolve - - suspense.resolve(true); - } else { - // switched to a 3rd branch - patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG); - - if (suspense.deps <= 0) { - suspense.resolve(); - } - } - } - } else { - if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { - // root did not change, just normal patch - patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG); - setActiveBranch(suspense, newBranch); - } else { - // root node toggled - // invoke @pending event - var onPending = n2.props && n2.props.onPending; - - if (isFunction(onPending)) { - onPending(); - } // mount pending branch in off-dom container - - - suspense.pendingBranch = newBranch; - suspense.pendingId++; - patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG); - - if (suspense.deps <= 0) { - // incoming branch has no async deps, resolve now. - suspense.resolve(); - } else { - var timeout = suspense.timeout, - pendingId = suspense.pendingId; - - if (timeout > 0) { - setTimeout(function () { - if (suspense.pendingId === pendingId) { - suspense.fallback(newFallback); - } - }, timeout); - } else if (timeout === 0) { - suspense.fallback(newFallback); - } - } - } - } -} - -var hasWarned = false; - -function createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals) { - var isHydrating = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false; - - /* istanbul ignore if */ - if (!hasWarned) { - hasWarned = true; // @ts-ignore `console.info` cannot be null error - - console[console.info ? 'info' : 'log'](" is an experimental feature and its API will likely change."); - } - - var patch = rendererInternals.p, - _move = rendererInternals.m, - _unmount2 = rendererInternals.um, - _next = rendererInternals.n, - _rendererInternals$o = rendererInternals.o, - parentNode = _rendererInternals$o.parentNode, - remove = _rendererInternals$o.remove; - var timeout = toNumber(vnode.props && vnode.props.timeout); - var suspense = { - vnode: vnode, - parent: parent, - parentComponent: parentComponent, - isSVG: isSVG, - container: container, - hiddenContainer: hiddenContainer, - anchor: anchor, - deps: 0, - pendingId: 0, - timeout: typeof timeout === 'number' ? timeout : -1, - activeBranch: null, - pendingBranch: null, - isInFallback: true, - isHydrating: isHydrating, - isUnmounted: false, - effects: [], - resolve: function resolve() { - var resume = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - { - if (!resume && !suspense.pendingBranch) { - throw new Error("suspense.resolve() is called without a pending branch."); - } - - if (suspense.isUnmounted) { - throw new Error("suspense.resolve() is called on an already unmounted suspense boundary."); - } - } - var vnode = suspense.vnode, - activeBranch = suspense.activeBranch, - pendingBranch = suspense.pendingBranch, - pendingId = suspense.pendingId, - effects = suspense.effects, - parentComponent = suspense.parentComponent, - container = suspense.container; - - if (suspense.isHydrating) { - suspense.isHydrating = false; - } else if (!resume) { - var delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === 'out-in'; - - if (delayEnter) { - activeBranch.transition.afterLeave = function () { - if (pendingId === suspense.pendingId) { - _move(pendingBranch, container, _anchor, 0 - /* ENTER */ - ); - } - }; - } // this is initial anchor on mount - - - var _anchor = suspense.anchor; // unmount current active tree - - if (activeBranch) { - // if the fallback tree was mounted, it may have been moved - // as part of a parent suspense. get the latest anchor for insertion - _anchor = _next(activeBranch); - - _unmount2(activeBranch, parentComponent, suspense, true); - } - - if (!delayEnter) { - // move content from off-dom container to actual container - _move(pendingBranch, container, _anchor, 0 - /* ENTER */ - ); - } - } - - setActiveBranch(suspense, pendingBranch); - suspense.pendingBranch = null; - suspense.isInFallback = false; // flush buffered effects - // check if there is a pending parent suspense - - var parent = suspense.parent; - var hasUnresolvedAncestor = false; - - while (parent) { - if (parent.pendingBranch) { - var _parent$effects; - - // found a pending parent suspense, merge buffered post jobs - // into that parent - (_parent$effects = parent.effects).push.apply(_parent$effects, _toConsumableArray(effects)); - - hasUnresolvedAncestor = true; - break; - } - - parent = parent.parent; - } // no pending parent suspense, flush all jobs - - - if (!hasUnresolvedAncestor) { - queuePostFlushCb(effects); - } - - suspense.effects = []; // invoke @resolve event - - var onResolve = vnode.props && vnode.props.onResolve; - - if (isFunction(onResolve)) { - onResolve(); - } - }, - fallback: function fallback(fallbackVNode) { - if (!suspense.pendingBranch) { - return; - } - - var vnode = suspense.vnode, - activeBranch = suspense.activeBranch, - parentComponent = suspense.parentComponent, - container = suspense.container, - isSVG = suspense.isSVG; // invoke @fallback event - - var onFallback = vnode.props && vnode.props.onFallback; - - if (isFunction(onFallback)) { - onFallback(); - } - - var anchor = _next(activeBranch); - - var mountFallback = function mountFallback() { - if (!suspense.isInFallback) { - return; - } // mount the fallback tree - - - patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context - isSVG); - setActiveBranch(suspense, fallbackVNode); - }; - - var delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in'; - - if (delayEnter) { - activeBranch.transition.afterLeave = mountFallback; - } // unmount current active branch - - - _unmount2(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now - true // shouldRemove - ); - - suspense.isInFallback = true; - - if (!delayEnter) { - mountFallback(); - } - }, - move: function move(container, anchor, type) { - suspense.activeBranch && _move(suspense.activeBranch, container, anchor, type); - suspense.container = container; - }, - next: function next() { - return suspense.activeBranch && _next(suspense.activeBranch); - }, - registerDep: function registerDep(instance, setupRenderEffect) { - if (!suspense.pendingBranch) { - return; - } - - var hydratedEl = instance.vnode.el; - suspense.deps++; - instance.asyncDep.catch(function (err) { - handleError(err, instance, 0 - /* SETUP_FUNCTION */ - ); - }).then(function (asyncSetupResult) { - // retry when the setup() promise resolves. - // component may have been unmounted before resolve. - if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { - return; - } - - suspense.deps--; // retry from this component - - instance.asyncResolved = true; - var vnode = instance.vnode; - { - pushWarningContext(vnode); - } - handleSetupResult(instance, asyncSetupResult); - - if (hydratedEl) { - // vnode may have been replaced if an update happened before the - // async dep is resolved. - vnode.el = hydratedEl; - } - - var placeholder = !hydratedEl && instance.subTree.el; - setupRenderEffect(instance, vnode, // component may have been moved before resolve. - // if this is not a hydration, instance.subTree will be the comment - // placeholder. - parentNode(hydratedEl || instance.subTree.el), // anchor will not be used if this is hydration, so only need to - // consider the comment placeholder case. - hydratedEl ? null : _next(instance.subTree), suspense, isSVG, optimized); - - if (placeholder) { - remove(placeholder); - } - - updateHOCHostEl(instance, vnode.el); - { - popWarningContext(); - } - - if (suspense.deps === 0) { - suspense.resolve(); - } - }); - }, - unmount: function unmount(parentSuspense, doRemove) { - suspense.isUnmounted = true; - - if (suspense.activeBranch) { - _unmount2(suspense.activeBranch, parentComponent, parentSuspense, doRemove); - } - - if (suspense.pendingBranch) { - _unmount2(suspense.pendingBranch, parentComponent, parentSuspense, doRemove); - } - } - }; - return suspense; -} - -function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, optimized, rendererInternals, hydrateNode) { - /* eslint-disable no-restricted-globals */ - var suspense = vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, optimized, rendererInternals, true - /* hydrating */ - ); // there are two possible scenarios for server-rendered suspense: - // - success: ssr content should be fully resolved - // - failure: ssr content should be the fallback branch. - // however, on the client we don't really know if it has failed or not - // attempt to hydrate the DOM assuming it has succeeded, but we still - // need to construct a suspense boundary first - - var result = hydrateNode(node, suspense.pendingBranch = vnode.ssContent, parentComponent, suspense, optimized); - - if (suspense.deps === 0) { - suspense.resolve(); - } - - return result; - /* eslint-enable no-restricted-globals */ -} - -function normalizeSuspenseChildren(vnode) { - var shapeFlag = vnode.shapeFlag, - children = vnode.children; - var content; - var fallback; - - if (shapeFlag & 32 - /* SLOTS_CHILDREN */ - ) { - content = normalizeSuspenseSlot(children.default); - fallback = normalizeSuspenseSlot(children.fallback); - } else { - content = normalizeSuspenseSlot(children); - fallback = normalizeVNode(null); - } - - return { - content: content, - fallback: fallback - }; -} - -function normalizeSuspenseSlot(s) { - if (isFunction(s)) { - s = s(); - } - - if (isArray(s)) { - var singleChild = filterSingleRoot(s); - - if (!singleChild) { - warn(" slots expect a single root node."); - } - - s = singleChild; - } - - return normalizeVNode(s); -} - -function queueEffectWithSuspense(fn, suspense) { - if (suspense && suspense.pendingBranch) { - if (isArray(fn)) { - var _suspense$effects; - - (_suspense$effects = suspense.effects).push.apply(_suspense$effects, _toConsumableArray(fn)); - } else { - suspense.effects.push(fn); - } - } else { - queuePostFlushCb(fn); - } -} - -function setActiveBranch(suspense, branch) { - suspense.activeBranch = branch; - var vnode = suspense.vnode, - parentComponent = suspense.parentComponent; - var el = vnode.el = branch.el; // in case suspense is the root node of a component, - // recursively update the HOC el - - if (parentComponent && parentComponent.subTree === vnode) { - parentComponent.vnode.el = el; - updateHOCHostEl(parentComponent, el); - } -} - -var isRenderingCompiledSlot = 0; - -var setCompiledSlotRendering = function setCompiledSlotRendering(n) { - return isRenderingCompiledSlot += n; -}; -/** +var SuspenseImpl={// In order to make Suspense tree-shakable, we need to avoid importing it +// directly in the renderer. The renderer checks for the __isSuspense flag +// on a vnode's type and calls the `process` method, passing in renderer +// internals. +__isSuspense:true,process:function process(n1,n2,container,anchor,parentComponent,parentSuspense,isSVG,optimized,// platform-specific impl passed from renderer +rendererInternals){if(n1==null){mountSuspense(n2,container,anchor,parentComponent,parentSuspense,isSVG,optimized,rendererInternals);}else{patchSuspense(n1,n2,container,anchor,parentComponent,isSVG,rendererInternals);}},hydrate:hydrateSuspense,create:createSuspenseBoundary};// Force-casted public typing for h and TSX props inference +var Suspense=SuspenseImpl;function mountSuspense(vnode,container,anchor,parentComponent,parentSuspense,isSVG,optimized,rendererInternals){var patch=rendererInternals.p,createElement=rendererInternals.o.createElement;var hiddenContainer=createElement('div');var suspense=vnode.suspense=createSuspenseBoundary(vnode,parentSuspense,parentComponent,container,hiddenContainer,anchor,isSVG,optimized,rendererInternals);// start mounting the content subtree in an off-dom container +patch(null,suspense.pendingBranch=vnode.ssContent,hiddenContainer,null,parentComponent,suspense,isSVG);// now check if we have encountered any async deps +if(suspense.deps>0){// has async +// mount the fallback tree +patch(null,vnode.ssFallback,container,anchor,parentComponent,null,// fallback tree will not have suspense context +isSVG);setActiveBranch(suspense,vnode.ssFallback);}else{// Suspense has no async deps. Just resolve. +suspense.resolve();}}function patchSuspense(n1,n2,container,anchor,parentComponent,isSVG,_ref10){var patch=_ref10.p,unmount=_ref10.um,createElement=_ref10.o.createElement;var suspense=n2.suspense=n1.suspense;suspense.vnode=n2;n2.el=n1.el;var newBranch=n2.ssContent;var newFallback=n2.ssFallback;var activeBranch=suspense.activeBranch,pendingBranch=suspense.pendingBranch,isInFallback=suspense.isInFallback,isHydrating=suspense.isHydrating;if(pendingBranch){suspense.pendingBranch=newBranch;if(isSameVNodeType(newBranch,pendingBranch)){// same root type but content may have changed. +patch(pendingBranch,newBranch,suspense.hiddenContainer,null,parentComponent,suspense,isSVG);if(suspense.deps<=0){suspense.resolve();}else if(isInFallback){patch(activeBranch,newFallback,container,anchor,parentComponent,null,// fallback tree will not have suspense context +isSVG);setActiveBranch(suspense,newFallback);}}else{// toggled before pending tree is resolved +suspense.pendingId++;if(isHydrating){// if toggled before hydration is finished, the current DOM tree is +// no longer valid. set it as the active branch so it will be unmounted +// when resolved +suspense.isHydrating=false;suspense.activeBranch=pendingBranch;}else{unmount(pendingBranch,parentComponent,suspense);}// increment pending ID. this is used to invalidate async callbacks +// reset suspense state +suspense.deps=0;// discard effects from pending branch +suspense.effects.length=0;// discard previous container +suspense.hiddenContainer=createElement('div');if(isInFallback){// already in fallback state +patch(null,newBranch,suspense.hiddenContainer,null,parentComponent,suspense,isSVG);if(suspense.deps<=0){suspense.resolve();}else{patch(activeBranch,newFallback,container,anchor,parentComponent,null,// fallback tree will not have suspense context +isSVG);setActiveBranch(suspense,newFallback);}}else if(activeBranch&&isSameVNodeType(newBranch,activeBranch)){// toggled "back" to current active branch +patch(activeBranch,newBranch,container,anchor,parentComponent,suspense,isSVG);// force resolve +suspense.resolve(true);}else{// switched to a 3rd branch +patch(null,newBranch,suspense.hiddenContainer,null,parentComponent,suspense,isSVG);if(suspense.deps<=0){suspense.resolve();}}}}else{if(activeBranch&&isSameVNodeType(newBranch,activeBranch)){// root did not change, just normal patch +patch(activeBranch,newBranch,container,anchor,parentComponent,suspense,isSVG);setActiveBranch(suspense,newBranch);}else{// root node toggled +// invoke @pending event +var onPending=n2.props&&n2.props.onPending;if(isFunction(onPending)){onPending();}// mount pending branch in off-dom container +suspense.pendingBranch=newBranch;suspense.pendingId++;patch(null,newBranch,suspense.hiddenContainer,null,parentComponent,suspense,isSVG);if(suspense.deps<=0){// incoming branch has no async deps, resolve now. +suspense.resolve();}else{var timeout=suspense.timeout,pendingId=suspense.pendingId;if(timeout>0){setTimeout(function(){if(suspense.pendingId===pendingId){suspense.fallback(newFallback);}},timeout);}else if(timeout===0){suspense.fallback(newFallback);}}}}}var hasWarned=false;function createSuspenseBoundary(vnode,parent,parentComponent,container,hiddenContainer,anchor,isSVG,optimized,rendererInternals){var isHydrating=arguments.length>9&&arguments[9]!==undefined?arguments[9]:false;/* istanbul ignore if */if(!hasWarned){hasWarned=true;// @ts-ignore `console.info` cannot be null error +console[console.info?'info':'log'](" is an experimental feature and its API will likely change.");}var patch=rendererInternals.p,_move=rendererInternals.m,_unmount2=rendererInternals.um,_next=rendererInternals.n,_rendererInternals$o=rendererInternals.o,parentNode=_rendererInternals$o.parentNode,remove=_rendererInternals$o.remove;var timeout=toNumber(vnode.props&&vnode.props.timeout);var suspense={vnode:vnode,parent:parent,parentComponent:parentComponent,isSVG:isSVG,container:container,hiddenContainer:hiddenContainer,anchor:anchor,deps:0,pendingId:0,timeout:typeof timeout==='number'?timeout:-1,activeBranch:null,pendingBranch:null,isInFallback:true,isHydrating:isHydrating,isUnmounted:false,effects:[],resolve:function resolve(){var resume=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;{if(!resume&&!suspense.pendingBranch){throw new Error("suspense.resolve() is called without a pending branch.");}if(suspense.isUnmounted){throw new Error("suspense.resolve() is called on an already unmounted suspense boundary.");}}var vnode=suspense.vnode,activeBranch=suspense.activeBranch,pendingBranch=suspense.pendingBranch,pendingId=suspense.pendingId,effects=suspense.effects,parentComponent=suspense.parentComponent,container=suspense.container;if(suspense.isHydrating){suspense.isHydrating=false;}else if(!resume){var delayEnter=activeBranch&&pendingBranch.transition&&pendingBranch.transition.mode==='out-in';if(delayEnter){activeBranch.transition.afterLeave=function(){if(pendingId===suspense.pendingId){_move(pendingBranch,container,_anchor,0/* ENTER */);}};}// this is initial anchor on mount +var _anchor=suspense.anchor;// unmount current active tree +if(activeBranch){// if the fallback tree was mounted, it may have been moved +// as part of a parent suspense. get the latest anchor for insertion +_anchor=_next(activeBranch);_unmount2(activeBranch,parentComponent,suspense,true);}if(!delayEnter){// move content from off-dom container to actual container +_move(pendingBranch,container,_anchor,0/* ENTER */);}}setActiveBranch(suspense,pendingBranch);suspense.pendingBranch=null;suspense.isInFallback=false;// flush buffered effects +// check if there is a pending parent suspense +var parent=suspense.parent;var hasUnresolvedAncestor=false;while(parent){if(parent.pendingBranch){var _parent$effects;// found a pending parent suspense, merge buffered post jobs +// into that parent +(_parent$effects=parent.effects).push.apply(_parent$effects,_toConsumableArray(effects));hasUnresolvedAncestor=true;break;}parent=parent.parent;}// no pending parent suspense, flush all jobs +if(!hasUnresolvedAncestor){queuePostFlushCb(effects);}suspense.effects=[];// invoke @resolve event +var onResolve=vnode.props&&vnode.props.onResolve;if(isFunction(onResolve)){onResolve();}},fallback:function fallback(fallbackVNode){if(!suspense.pendingBranch){return;}var vnode=suspense.vnode,activeBranch=suspense.activeBranch,parentComponent=suspense.parentComponent,container=suspense.container,isSVG=suspense.isSVG;// invoke @fallback event +var onFallback=vnode.props&&vnode.props.onFallback;if(isFunction(onFallback)){onFallback();}var anchor=_next(activeBranch);var mountFallback=function mountFallback(){if(!suspense.isInFallback){return;}// mount the fallback tree +patch(null,fallbackVNode,container,anchor,parentComponent,null,// fallback tree will not have suspense context +isSVG);setActiveBranch(suspense,fallbackVNode);};var delayEnter=fallbackVNode.transition&&fallbackVNode.transition.mode==='out-in';if(delayEnter){activeBranch.transition.afterLeave=mountFallback;}// unmount current active branch +_unmount2(activeBranch,parentComponent,null,// no suspense so unmount hooks fire now +true// shouldRemove +);suspense.isInFallback=true;if(!delayEnter){mountFallback();}},move:function move(container,anchor,type){suspense.activeBranch&&_move(suspense.activeBranch,container,anchor,type);suspense.container=container;},next:function next(){return suspense.activeBranch&&_next(suspense.activeBranch);},registerDep:function registerDep(instance,setupRenderEffect){if(!suspense.pendingBranch){return;}var hydratedEl=instance.vnode.el;suspense.deps++;instance.asyncDep.catch(function(err){handleError(err,instance,0/* SETUP_FUNCTION */);}).then(function(asyncSetupResult){// retry when the setup() promise resolves. +// component may have been unmounted before resolve. +if(instance.isUnmounted||suspense.isUnmounted||suspense.pendingId!==instance.suspenseId){return;}suspense.deps--;// retry from this component +instance.asyncResolved=true;var vnode=instance.vnode;{pushWarningContext(vnode);}handleSetupResult(instance,asyncSetupResult);if(hydratedEl){// vnode may have been replaced if an update happened before the +// async dep is resolved. +vnode.el=hydratedEl;}var placeholder=!hydratedEl&&instance.subTree.el;setupRenderEffect(instance,vnode,// component may have been moved before resolve. +// if this is not a hydration, instance.subTree will be the comment +// placeholder. +parentNode(hydratedEl||instance.subTree.el),// anchor will not be used if this is hydration, so only need to +// consider the comment placeholder case. +hydratedEl?null:_next(instance.subTree),suspense,isSVG,optimized);if(placeholder){remove(placeholder);}updateHOCHostEl(instance,vnode.el);{popWarningContext();}if(suspense.deps===0){suspense.resolve();}});},unmount:function unmount(parentSuspense,doRemove){suspense.isUnmounted=true;if(suspense.activeBranch){_unmount2(suspense.activeBranch,parentComponent,parentSuspense,doRemove);}if(suspense.pendingBranch){_unmount2(suspense.pendingBranch,parentComponent,parentSuspense,doRemove);}}};return suspense;}function hydrateSuspense(node,vnode,parentComponent,parentSuspense,isSVG,optimized,rendererInternals,hydrateNode){/* eslint-disable no-restricted-globals */var suspense=vnode.suspense=createSuspenseBoundary(vnode,parentSuspense,parentComponent,node.parentNode,document.createElement('div'),null,isSVG,optimized,rendererInternals,true/* hydrating */);// there are two possible scenarios for server-rendered suspense: +// - success: ssr content should be fully resolved +// - failure: ssr content should be the fallback branch. +// however, on the client we don't really know if it has failed or not +// attempt to hydrate the DOM assuming it has succeeded, but we still +// need to construct a suspense boundary first +var result=hydrateNode(node,suspense.pendingBranch=vnode.ssContent,parentComponent,suspense,optimized);if(suspense.deps===0){suspense.resolve();}return result;/* eslint-enable no-restricted-globals */}function normalizeSuspenseChildren(vnode){var shapeFlag=vnode.shapeFlag,children=vnode.children;var content;var fallback;if(shapeFlag&32/* SLOTS_CHILDREN */){content=normalizeSuspenseSlot(children.default);fallback=normalizeSuspenseSlot(children.fallback);}else{content=normalizeSuspenseSlot(children);fallback=normalizeVNode(null);}return{content:content,fallback:fallback};}function normalizeSuspenseSlot(s){if(isFunction(s)){s=s();}if(isArray(s)){var singleChild=filterSingleRoot(s);if(!singleChild){warn(" slots expect a single root node.");}s=singleChild;}return normalizeVNode(s);}function queueEffectWithSuspense(fn,suspense){if(suspense&&suspense.pendingBranch){if(isArray(fn)){var _suspense$effects;(_suspense$effects=suspense.effects).push.apply(_suspense$effects,_toConsumableArray(fn));}else{suspense.effects.push(fn);}}else{queuePostFlushCb(fn);}}function setActiveBranch(suspense,branch){suspense.activeBranch=branch;var vnode=suspense.vnode,parentComponent=suspense.parentComponent;var el=vnode.el=branch.el;// in case suspense is the root node of a component, +// recursively update the HOC el +if(parentComponent&&parentComponent.subTree===vnode){parentComponent.vnode.el=el;updateHOCHostEl(parentComponent,el);}}var isRenderingCompiledSlot=0;var setCompiledSlotRendering=function setCompiledSlotRendering(n){return isRenderingCompiledSlot+=n;};/** * Compiler runtime helper for rendering `` * @private - */ - - -function renderSlot(slots, name) { - var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var // this is not a user-facing function, so the fallback is always generated by - // the compiler and guaranteed to be a function returning an array - fallback = arguments.length > 3 ? arguments[3] : undefined; - var slot = slots[name]; - - if (slot && slot.length > 1) { - warn("SSR-optimized slot function detected in a non-SSR-optimized render " + "function. You need to mark this component with $dynamic-slots in the " + "parent template."); - - slot = function slot() { - return []; - }; - } // a compiled slot disables block tracking by default to avoid manual - // invocation interfering with template-based block tracking, but in - // `renderSlot` we can be sure that it's template-based so we can force - // enable it. - - - isRenderingCompiledSlot++; - var rendered = (openBlock(), createBlock(Fragment, { - key: props.key - }, slot ? slot(props) : fallback ? fallback() : [], slots._ === 1 - /* STABLE */ - ? 64 - /* STABLE_FRAGMENT */ - : -2 - /* BAIL */ - )); - isRenderingCompiledSlot--; - return rendered; -} -/** + */function renderSlot(slots,name){var props=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var// this is not a user-facing function, so the fallback is always generated by +// the compiler and guaranteed to be a function returning an array +fallback=arguments.length>3?arguments[3]:undefined;var slot=slots[name];if(slot&&slot.length>1){warn("SSR-optimized slot function detected in a non-SSR-optimized render "+"function. You need to mark this component with $dynamic-slots in the "+"parent template.");slot=function slot(){return[];};}// a compiled slot disables block tracking by default to avoid manual +// invocation interfering with template-based block tracking, but in +// `renderSlot` we can be sure that it's template-based so we can force +// enable it. +isRenderingCompiledSlot++;var rendered=(openBlock(),createBlock(Fragment,{key:props.key},slot?slot(props):fallback?fallback():[],slots._===1/* STABLE */?64/* STABLE_FRAGMENT */:-2/* BAIL */));isRenderingCompiledSlot--;return rendered;}/** * Wrap a slot function to memoize current rendering instance * @private - */ - - -function withCtx(fn) { - var ctx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : currentRenderingInstance; - if (!ctx) return fn; - - var renderFnWithContext = function renderFnWithContext() { - // If a user calls a compiled slot inside a template expression (#1745), it - // can mess up block tracking, so by default we need to push a null block to - // avoid that. This isn't necessary if rendering a compiled ``. - if (!isRenderingCompiledSlot) { - openBlock(true - /* null block that disables tracking */ - ); - } - - var owner = currentRenderingInstance; - setCurrentRenderingInstance(ctx); - var res = fn.apply(void 0, arguments); - setCurrentRenderingInstance(owner); - - if (!isRenderingCompiledSlot) { - closeBlock(); - } - - return res; - }; - - renderFnWithContext._c = true; - return renderFnWithContext; -} // SFC scoped style ID management. - - -var currentScopeId = null; -var scopeIdStack = []; -/** + */function withCtx(fn){var ctx=arguments.length>1&&arguments[1]!==undefined?arguments[1]:currentRenderingInstance;if(!ctx)return fn;var renderFnWithContext=function renderFnWithContext(){// If a user calls a compiled slot inside a template expression (#1745), it +// can mess up block tracking, so by default we need to push a null block to +// avoid that. This isn't necessary if rendering a compiled ``. +if(!isRenderingCompiledSlot){openBlock(true/* null block that disables tracking */);}var owner=currentRenderingInstance;setCurrentRenderingInstance(ctx);var res=fn.apply(void 0,arguments);setCurrentRenderingInstance(owner);if(!isRenderingCompiledSlot){closeBlock();}return res;};renderFnWithContext._c=true;return renderFnWithContext;}// SFC scoped style ID management. +var currentScopeId=null;var scopeIdStack=[];/** * @private - */ - -function pushScopeId(id) { - scopeIdStack.push(currentScopeId = id); -} -/** + */function pushScopeId(id){scopeIdStack.push(currentScopeId=id);}/** * @private - */ - - -function popScopeId() { - scopeIdStack.pop(); - currentScopeId = scopeIdStack[scopeIdStack.length - 1] || null; -} -/** + */function popScopeId(){scopeIdStack.pop();currentScopeId=scopeIdStack[scopeIdStack.length-1]||null;}/** * @private - */ - - -function withScopeId(id) { - return function (fn) { - return withCtx(function () { - pushScopeId(id); - var res = fn.apply(this, arguments); - popScopeId(); - return res; - }); - }; -} - -function initProps(instance, rawProps, isStateful) { - var isSSR = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var props = {}; - var attrs = {}; - def(attrs, InternalObjectKey, 1); - setFullProps(instance, rawProps, props, attrs); // validation - - { - validateProps(props, instance); - } - - if (isStateful) { - // stateful - instance.props = isSSR ? props : shallowReactive(props); - } else { - if (!instance.type.props) { - // functional w/ optional props, props === attrs - instance.props = attrs; - } else { - // functional w/ declared props - instance.props = props; - } - } - - instance.attrs = attrs; -} - -function updateProps(instance, rawProps, rawPrevProps, optimized) { - var props = instance.props, - attrs = instance.attrs, - patchFlag = instance.vnode.patchFlag; - var rawCurrentProps = toRaw(props); - - var _instance$propsOption3 = _slicedToArray(instance.propsOptions, 1), - options = _instance$propsOption3[0]; - - if ( // always force full diff in dev - // - #1942 if hmr is enabled with sfc component - // - vite#872 non-sfc component used by sfc component - !(instance.type.__hmrId || instance.parent && instance.parent.type.__hmrId) && (optimized || patchFlag > 0) && !(patchFlag & 16 - /* FULL_PROPS */ - )) { - if (patchFlag & 8 - /* PROPS */ - ) { - // Compiler-generated props & no keys change, just set the updated - // the props. - var propsToUpdate = instance.vnode.dynamicProps; - - for (var i = 0; i < propsToUpdate.length; i++) { - var key = propsToUpdate[i]; // PROPS flag guarantees rawProps to be non-null - - var value = rawProps[key]; - - if (options) { - // attr / props separation was done on init and will be consistent - // in this code path, so just check if attrs have it. - if (hasOwn(attrs, key)) { - attrs[key] = value; - } else { - var camelizedKey = camelize(key); - props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance); - } - } else { - attrs[key] = value; - } - } - } - } else { - // full props update. - setFullProps(instance, rawProps, props, attrs); // in case of dynamic props, check if we need to delete keys from - // the props object - - var kebabKey; - - for (var _key6 in rawCurrentProps) { - if (!rawProps || // for camelCase - !hasOwn(rawProps, _key6) && ( // it's possible the original props was passed in as kebab-case - // and converted to camelCase (#955) - (kebabKey = hyphenate(_key6)) === _key6 || !hasOwn(rawProps, kebabKey))) { - if (options) { - if (rawPrevProps && ( // for camelCase - rawPrevProps[_key6] !== undefined || // for kebab-case - rawPrevProps[kebabKey] !== undefined)) { - props[_key6] = resolvePropValue(options, rawProps || EMPTY_OBJ, _key6, undefined, instance); - } - } else { - delete props[_key6]; - } - } - } // in the case of functional component w/o props declaration, props and - // attrs point to the same object so it should already have been updated. - - - if (attrs !== rawCurrentProps) { - for (var _key7 in attrs) { - if (!rawProps || !hasOwn(rawProps, _key7)) { - delete attrs[_key7]; - } - } - } - } // trigger updates for $attrs in case it's used in component slots - - - trigger(instance, "set" - /* SET */ - , '$attrs'); - - if (rawProps) { - validateProps(props, instance); - } -} - -function setFullProps(instance, rawProps, props, attrs) { - var _instance$propsOption4 = _slicedToArray(instance.propsOptions, 2), - options = _instance$propsOption4[0], - needCastKeys = _instance$propsOption4[1]; - - if (rawProps) { - for (var key in rawProps) { - var value = rawProps[key]; // key, ref are reserved and never passed down - - if (isReservedProp(key)) { - continue; - } // prop option names are camelized during normalization, so to support - // kebab -> camel conversion here we need to camelize the key. - - - var camelKey = void 0; - - if (options && hasOwn(options, camelKey = camelize(key))) { - props[camelKey] = value; - } else if (!isEmitListener(instance.emitsOptions, key)) { - // Any non-declared (either as a prop or an emitted event) props are put - // into a separate `attrs` object for spreading. Make sure to preserve - // original key casing - attrs[key] = value; - } - } - } - - if (needCastKeys) { - var rawCurrentProps = toRaw(props); - - for (var i = 0; i < needCastKeys.length; i++) { - var _key8 = needCastKeys[i]; - props[_key8] = resolvePropValue(options, rawCurrentProps, _key8, rawCurrentProps[_key8], instance); - } - } -} - -function resolvePropValue(options, props, key, value, instance) { - var opt = options[key]; - - if (opt != null) { - var hasDefault = hasOwn(opt, 'default'); // default values - - if (hasDefault && value === undefined) { - var defaultValue = opt.default; - - if (opt.type !== Function && isFunction(defaultValue)) { - setCurrentInstance(instance); - value = defaultValue(props); - setCurrentInstance(null); - } else { - value = defaultValue; - } - } // boolean casting - - - if (opt[0 - /* shouldCast */ - ]) { - if (!hasOwn(props, key) && !hasDefault) { - value = false; - } else if (opt[1 - /* shouldCastTrue */ - ] && (value === '' || value === hyphenate(key))) { - value = true; - } - } - } - - return value; -} - -function normalizePropsOptions(comp, appContext) { - var asMixin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (!appContext.deopt && comp.__props) { - return comp.__props; - } - - var raw = comp.props; - var normalized = {}; - var needCastKeys = []; // apply mixin/extends props - - var hasExtends = false; - - if (!isFunction(comp)) { - var extendProps = function extendProps(raw) { - hasExtends = true; - - var _normalizePropsOption = normalizePropsOptions(raw, appContext, true), - _normalizePropsOption2 = _slicedToArray(_normalizePropsOption, 2), - props = _normalizePropsOption2[0], - keys = _normalizePropsOption2[1]; - - extend(normalized, props); - if (keys) needCastKeys.push.apply(needCastKeys, _toConsumableArray(keys)); - }; - - if (!asMixin && appContext.mixins.length) { - appContext.mixins.forEach(extendProps); - } - - if (comp.extends) { - extendProps(comp.extends); - } - - if (comp.mixins) { - comp.mixins.forEach(extendProps); - } - } - - if (!raw && !hasExtends) { - return comp.__props = EMPTY_ARR; - } - - if (isArray(raw)) { - for (var i = 0; i < raw.length; i++) { - if (!isString(raw[i])) { - warn("props must be strings when using array syntax.", raw[i]); - } - - var normalizedKey = camelize(raw[i]); - - if (validatePropName(normalizedKey)) { - normalized[normalizedKey] = EMPTY_OBJ; - } - } - } else if (raw) { - if (!isObject(raw)) { - warn("invalid props options", raw); - } - - for (var key in raw) { - var _normalizedKey = camelize(key); - - if (validatePropName(_normalizedKey)) { - var opt = raw[key]; - var prop = normalized[_normalizedKey] = isArray(opt) || isFunction(opt) ? { - type: opt - } : opt; - - if (prop) { - var booleanIndex = getTypeIndex(Boolean, prop.type); - var stringIndex = getTypeIndex(String, prop.type); - prop[0 - /* shouldCast */ - ] = booleanIndex > -1; - prop[1 - /* shouldCastTrue */ - ] = stringIndex < 0 || booleanIndex < stringIndex; // if the prop needs boolean casting or default value - - if (booleanIndex > -1 || hasOwn(prop, 'default')) { - needCastKeys.push(_normalizedKey); - } - } - } - } - } - - return comp.__props = [normalized, needCastKeys]; -} - -function validatePropName(key) { - if (key[0] !== '$') { - return true; - } else { - warn("Invalid prop name: \"".concat(key, "\" is a reserved property.")); - } - - return false; -} // use function string name to check type constructors + */function withScopeId(id){return function(fn){return withCtx(function(){pushScopeId(id);var res=fn.apply(this,arguments);popScopeId();return res;});};}function initProps(instance,rawProps,isStateful){var isSSR=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var props={};var attrs={};def(attrs,InternalObjectKey,1);setFullProps(instance,rawProps,props,attrs);// validation +{validateProps(props,instance);}if(isStateful){// stateful +instance.props=isSSR?props:shallowReactive(props);}else{if(!instance.type.props){// functional w/ optional props, props === attrs +instance.props=attrs;}else{// functional w/ declared props +instance.props=props;}}instance.attrs=attrs;}function updateProps(instance,rawProps,rawPrevProps,optimized){var props=instance.props,attrs=instance.attrs,patchFlag=instance.vnode.patchFlag;var rawCurrentProps=toRaw(props);var _instance$propsOption3=_slicedToArray(instance.propsOptions,1),options=_instance$propsOption3[0];if(// always force full diff in dev +// - #1942 if hmr is enabled with sfc component +// - vite#872 non-sfc component used by sfc component +!(instance.type.__hmrId||instance.parent&&instance.parent.type.__hmrId)&&(optimized||patchFlag>0)&&!(patchFlag&16/* FULL_PROPS */)){if(patchFlag&8/* PROPS */){// Compiler-generated props & no keys change, just set the updated +// the props. +var propsToUpdate=instance.vnode.dynamicProps;for(var i=0;i camel conversion here we need to camelize the key. +var camelKey=void 0;if(options&&hasOwn(options,camelKey=camelize(key))){props[camelKey]=value;}else if(!isEmitListener(instance.emitsOptions,key)){// Any non-declared (either as a prop or an emitted event) props are put +// into a separate `attrs` object for spreading. Make sure to preserve +// original key casing +attrs[key]=value;}}}if(needCastKeys){var rawCurrentProps=toRaw(props);for(var i=0;i2&&arguments[2]!==undefined?arguments[2]:false;if(!appContext.deopt&&comp.__props){return comp.__props;}var raw=comp.props;var normalized={};var needCastKeys=[];// apply mixin/extends props +var hasExtends=false;if(!isFunction(comp)){var extendProps=function extendProps(raw){hasExtends=true;var _normalizePropsOption=normalizePropsOptions(raw,appContext,true),_normalizePropsOption2=_slicedToArray(_normalizePropsOption,2),props=_normalizePropsOption2[0],keys=_normalizePropsOption2[1];extend(normalized,props);if(keys)needCastKeys.push.apply(needCastKeys,_toConsumableArray(keys));};if(!asMixin&&appContext.mixins.length){appContext.mixins.forEach(extendProps);}if(comp.extends){extendProps(comp.extends);}if(comp.mixins){comp.mixins.forEach(extendProps);}}if(!raw&&!hasExtends){return comp.__props=EMPTY_ARR;}if(isArray(raw)){for(var i=0;i-1;prop[1/* shouldCastTrue */]=stringIndex<0||booleanIndex-1||hasOwn(prop,'default')){needCastKeys.push(_normalizedKey);}}}}}return comp.__props=[normalized,needCastKeys];}function validatePropName(key){if(key[0]!=='$'){return true;}else{warn("Invalid prop name: \"".concat(key,"\" is a reserved property."));}return false;}// use function string name to check type constructors // so that it works across vms / iframes. - - -function getType(ctor) { - var match = ctor && ctor.toString().match(/^\s*function (\w+)/); - return match ? match[1] : ''; -} - -function isSameType(a, b) { - return getType(a) === getType(b); -} - -function getTypeIndex(type, expectedTypes) { - if (isArray(expectedTypes)) { - for (var i = 0, len = expectedTypes.length; i < len; i++) { - if (isSameType(expectedTypes[i], type)) { - return i; - } - } - } else if (isFunction(expectedTypes)) { - return isSameType(expectedTypes, type) ? 0 : -1; - } - - return -1; -} -/** +function getType(ctor){var match=ctor&&ctor.toString().match(/^\s*function (\w+)/);return match?match[1]:'';}function isSameType(a,b){return getType(a)===getType(b);}function getTypeIndex(type,expectedTypes){if(isArray(expectedTypes)){for(var i=0,len=expectedTypes.length;i 2 && arguments[2] !== undefined ? arguments[2] : currentInstance; - var prepend = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - - if (target) { - var hooks = target[type] || (target[type] = []); // cache the error handling wrapper for injected hooks so the same hook - // can be properly deduped by the scheduler. "__weh" stands for "with error - // handling". - - var wrappedHook = hook.__weh || (hook.__weh = function () { - if (target.isUnmounted) { - return; - } // disable tracking inside all lifecycle hooks - // since they can potentially be called inside effects. - - - pauseTracking(); // Set currentInstance during hook invocation. - // This assumes the hook does not synchronously trigger other hooks, which - // can only be false when the user does something really funky. - - setCurrentInstance(target); - - for (var _len6 = arguments.length, args = new Array(_len6), _key10 = 0; _key10 < _len6; _key10++) { - args[_key10] = arguments[_key10]; - } - - var res = callWithAsyncErrorHandling(hook, target, type, args); - setCurrentInstance(null); - resetTracking(); - return res; - }); - - if (prepend) { - hooks.unshift(wrappedHook); - } else { - hooks.push(wrappedHook); - } - - return wrappedHook; - } else { - var apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, '')); - warn("".concat(apiName, " is called when there is no active component instance to be ") + "associated with. " + "Lifecycle injection APIs can only be used during execution of setup()." + (" If you are using async setup(), make sure to register lifecycle " + "hooks before the first await statement.")); - } -} - -var createHook = function createHook(lifecycle) { - return function (hook) { - var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : currentInstance; - return (// post-create lifecycle registrations are noops during SSR - !isInSSRComponentSetup && injectHook(lifecycle, hook, target) - ); - }; -}; - -var onBeforeMount = createHook("bm" -/* BEFORE_MOUNT */ -); -var onMounted = createHook("m" -/* MOUNTED */ -); -var onBeforeUpdate = createHook("bu" -/* BEFORE_UPDATE */ -); -var onUpdated = createHook("u" -/* UPDATED */ -); -var onBeforeUnmount = createHook("bum" -/* BEFORE_UNMOUNT */ -); -var onUnmounted = createHook("um" -/* UNMOUNTED */ -); -var onRenderTriggered = createHook("rtg" -/* RENDER_TRIGGERED */ -); -var onRenderTracked = createHook("rtc" -/* RENDER_TRACKED */ -); + */function isBoolean(){for(var _len5=arguments.length,args=new Array(_len5),_key9=0;_key9<_len5;_key9++){args[_key9]=arguments[_key9];}return args.some(function(elem){return elem.toLowerCase()==='boolean';});}function injectHook(type,hook){var target=arguments.length>2&&arguments[2]!==undefined?arguments[2]:currentInstance;var prepend=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(target){var hooks=target[type]||(target[type]=[]);// cache the error handling wrapper for injected hooks so the same hook +// can be properly deduped by the scheduler. "__weh" stands for "with error +// handling". +var wrappedHook=hook.__weh||(hook.__weh=function(){if(target.isUnmounted){return;}// disable tracking inside all lifecycle hooks +// since they can potentially be called inside effects. +pauseTracking();// Set currentInstance during hook invocation. +// This assumes the hook does not synchronously trigger other hooks, which +// can only be false when the user does something really funky. +setCurrentInstance(target);for(var _len6=arguments.length,args=new Array(_len6),_key10=0;_key10<_len6;_key10++){args[_key10]=arguments[_key10];}var res=callWithAsyncErrorHandling(hook,target,type,args);setCurrentInstance(null);resetTracking();return res;});if(prepend){hooks.unshift(wrappedHook);}else{hooks.push(wrappedHook);}return wrappedHook;}else{var apiName=toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/,''));warn("".concat(apiName," is called when there is no active component instance to be ")+"associated with. "+"Lifecycle injection APIs can only be used during execution of setup()."+(" If you are using async setup(), make sure to register lifecycle "+"hooks before the first await statement."));}}var createHook=function createHook(lifecycle){return function(hook){var target=arguments.length>1&&arguments[1]!==undefined?arguments[1]:currentInstance;return(// post-create lifecycle registrations are noops during SSR +!isInSSRComponentSetup&&injectHook(lifecycle,hook,target));};};var onBeforeMount=createHook("bm"/* BEFORE_MOUNT */);var onMounted=createHook("m"/* MOUNTED */);var onBeforeUpdate=createHook("bu"/* BEFORE_UPDATE */);var onUpdated=createHook("u"/* UPDATED */);var onBeforeUnmount=createHook("bum"/* BEFORE_UNMOUNT */);var onUnmounted=createHook("um"/* UNMOUNTED */);var onRenderTriggered=createHook("rtg"/* RENDER_TRIGGERED */);var onRenderTracked=createHook("rtc"/* RENDER_TRACKED */);var onErrorCaptured=function onErrorCaptured(hook){var target=arguments.length>1&&arguments[1]!==undefined?arguments[1]:currentInstance;injectHook("ec"/* ERROR_CAPTURED */,hook,target);};// Simple effect. +function watchEffect(effect,options){return doWatch(effect,null,options);}// initial value for watchers to trigger on undefined initial values +var INITIAL_WATCHER_VALUE={};// implementation +function watch(source,cb,options){if(!isFunction(cb)){warn("`watch(fn, options?)` signature has been moved to a separate API. "+"Use `watchEffect(fn, options?)` instead. `watch` now only "+"supports `watch(source, cb, options?) signature.");}return doWatch(source,cb,options);}function doWatch(source,cb){var _ref11=arguments.length>2&&arguments[2]!==undefined?arguments[2]:EMPTY_OBJ,immediate=_ref11.immediate,deep=_ref11.deep,flush=_ref11.flush,onTrack=_ref11.onTrack,onTrigger=_ref11.onTrigger;var instance=arguments.length>3&&arguments[3]!==undefined?arguments[3]:currentInstance;if(!cb){if(immediate!==undefined){warn("watch() \"immediate\" option is only respected when using the "+"watch(source, callback, options?) signature.");}if(deep!==undefined){warn("watch() \"deep\" option is only respected when using the "+"watch(source, callback, options?) signature.");}}var warnInvalidSource=function warnInvalidSource(s){warn("Invalid watch source: ",s,"A watch source can only be a getter/effect function, a ref, "+"a reactive object, or an array of these types.");};var getter;var forceTrigger=false;if(isRef(source)){getter=function getter(){return source.value;};forceTrigger=!!source._shallow;}else if(isReactive(source)){getter=function getter(){return source;};deep=true;}else if(isArray(source)){getter=function getter(){return source.map(function(s){if(isRef(s)){return s.value;}else if(isReactive(s)){return traverse(s);}else if(isFunction(s)){return callWithErrorHandling(s,instance,2/* WATCH_GETTER */);}else{warnInvalidSource(s);}});};}else if(isFunction(source)){if(cb){// getter with cb +getter=function getter(){return callWithErrorHandling(source,instance,2/* WATCH_GETTER */);};}else{// no cb -> simple effect +getter=function getter(){if(instance&&instance.isUnmounted){return;}if(cleanup){cleanup();}return callWithErrorHandling(source,instance,3/* WATCH_CALLBACK */,[onInvalidate]);};}}else{getter=NOOP;warnInvalidSource(source);}if(cb&&deep){var baseGetter=getter;getter=function getter(){return traverse(baseGetter());};}var cleanup;var onInvalidate=function onInvalidate(fn){cleanup=runner.options.onStop=function(){callWithErrorHandling(fn,instance,4/* WATCH_CLEANUP */);};};var oldValue=isArray(source)?[]:INITIAL_WATCHER_VALUE;var job=function job(){if(!runner.active){return;}if(cb){// watch(source, cb) +var newValue=runner();if(deep||forceTrigger||hasChanged(newValue,oldValue)){// cleanup before running cb again +if(cleanup){cleanup();}callWithAsyncErrorHandling(cb,instance,3/* WATCH_CALLBACK */,[newValue,// pass undefined as the old value when it's changed for the first time +oldValue===INITIAL_WATCHER_VALUE?undefined:oldValue,onInvalidate]);oldValue=newValue;}}else{// watchEffect +runner();}};// important: mark the job as a watcher callback so that scheduler knows +// it is allowed to self-trigger (#1727) +job.allowRecurse=!!cb;var scheduler;if(flush==='sync'){scheduler=job;}else if(flush==='post'){scheduler=function scheduler(){return queuePostRenderEffect(job,instance&&instance.suspense);};}else{// default: 'pre' +scheduler=function scheduler(){if(!instance||instance.isMounted){queuePreFlushCb(job);}else{// with 'pre' option, the first call must happen before +// the component is mounted so it is called synchronously. +job();}};}var runner=effect(getter,{lazy:true,onTrack:onTrack,onTrigger:onTrigger,scheduler:scheduler});recordInstanceBoundEffect(runner);// initial run +if(cb){if(immediate){job();}else{oldValue=runner();}}else if(flush==='post'){queuePostRenderEffect(runner,instance&&instance.suspense);}else{runner();}return function(){stop(runner);if(instance){remove(instance.effects,runner);}};}// this.$watch +function instanceWatch(source,cb,options){var publicThis=this.proxy;var getter=isString(source)?function(){return publicThis[source];}:source.bind(publicThis);return doWatch(getter,cb.bind(publicThis),options,this);}function traverse(value){var seen=arguments.length>1&&arguments[1]!==undefined?arguments[1]:new Set();if(!isObject(value)||seen.has(value)){return value;}seen.add(value);if(isRef(value)){traverse(value.value,seen);}else if(isArray(value)){for(var i=0;i1){warn(' can only be used on a single element or component. Use '+' for lists.');}// there's no need to track reactivity for these props so use the raw +// props for a bit better perf +var rawProps=toRaw(props);var mode=rawProps.mode;// check mode +if(mode&&!['in-out','out-in','default'].includes(mode)){warn("invalid mode: ".concat(mode));}// at this point children has a guaranteed length of 1. +var child=children[0];if(state.isLeaving){return emptyPlaceholder(child);}// in the case of , we need to +// compare the type of the kept-alive children. +var innerChild=getKeepAliveChild(child);if(!innerChild){return emptyPlaceholder(child);}var enterHooks=resolveTransitionHooks(innerChild,rawProps,state,instance);setTransitionHooks(innerChild,enterHooks);var oldChild=instance.subTree;var oldInnerChild=oldChild&&getKeepAliveChild(oldChild);var transitionKeyChanged=false;var getTransitionKey=innerChild.type.getTransitionKey;if(getTransitionKey){var key=getTransitionKey();if(prevTransitionKey===undefined){prevTransitionKey=key;}else if(key!==prevTransitionKey){prevTransitionKey=key;transitionKeyChanged=true;}}// handle mode +if(oldInnerChild&&oldInnerChild.type!==Comment&&(!isSameVNodeType(innerChild,oldInnerChild)||transitionKeyChanged)){var leavingHooks=resolveTransitionHooks(oldInnerChild,rawProps,state,instance);// update old tree's hooks in case of dynamic transition +setTransitionHooks(oldInnerChild,leavingHooks);// switching between different views +if(mode==='out-in'){state.isLeaving=true;// return placeholder node and queue update when leave finishes +leavingHooks.afterLeave=function(){state.isLeaving=false;instance.update();};return emptyPlaceholder(child);}else if(mode==='in-out'){leavingHooks.delayLeave=function(el,earlyRemove,delayedLeave){var leavingVNodesCache=getLeavingNodesForType(state,oldInnerChild);leavingVNodesCache[String(oldInnerChild.key)]=oldInnerChild;// early removal callback +el._leaveCb=function(){earlyRemove();el._leaveCb=undefined;delete enterHooks.delayedLeave;};enterHooks.delayedLeave=delayedLeave;};}}return child;};}};// export the public type for h/tsx inference +// also to avoid inline import() in generated d.ts files +var BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(state,vnode){var leavingVNodes=state.leavingVNodes;var leavingVNodesCache=leavingVNodes.get(vnode.type);if(!leavingVNodesCache){leavingVNodesCache=Object.create(null);leavingVNodes.set(vnode.type,leavingVNodesCache);}return leavingVNodesCache;}// The transition hooks are attached to the vnode as vnode.transition +// and will be called at appropriate timing in the renderer. +function resolveTransitionHooks(vnode,props,state,instance){var appear=props.appear,mode=props.mode,_props$persisted=props.persisted,persisted=_props$persisted===void 0?false:_props$persisted,onBeforeEnter=props.onBeforeEnter,onEnter=props.onEnter,onAfterEnter=props.onAfterEnter,onEnterCancelled=props.onEnterCancelled,onBeforeLeave=props.onBeforeLeave,onLeave=props.onLeave,onAfterLeave=props.onAfterLeave,onLeaveCancelled=props.onLeaveCancelled,onBeforeAppear=props.onBeforeAppear,onAppear=props.onAppear,onAfterAppear=props.onAfterAppear,onAppearCancelled=props.onAppearCancelled;var key=String(vnode.key);var leavingVNodesCache=getLeavingNodesForType(state,vnode);var callHook=function callHook(hook,args){hook&&callWithAsyncErrorHandling(hook,instance,9/* TRANSITION_HOOK */,args);};var hooks={mode:mode,persisted:persisted,beforeEnter:function beforeEnter(el){var hook=onBeforeEnter;if(!state.isMounted){if(appear){hook=onBeforeAppear||onBeforeEnter;}else{return;}}// for same element (v-show) +if(el._leaveCb){el._leaveCb(true/* cancelled */);}// for toggled element with same key (v-if) +var leavingVNode=leavingVNodesCache[key];if(leavingVNode&&isSameVNodeType(vnode,leavingVNode)&&leavingVNode.el._leaveCb){// force early removal (not cancelled) +leavingVNode.el._leaveCb();}callHook(hook,[el]);},enter:function enter(el){var hook=onEnter;var afterHook=onAfterEnter;var cancelHook=onEnterCancelled;if(!state.isMounted){if(appear){hook=onAppear||onEnter;afterHook=onAfterAppear||onAfterEnter;cancelHook=onAppearCancelled||onEnterCancelled;}else{return;}}var called=false;var done=el._enterCb=function(cancelled){if(called)return;called=true;if(cancelled){callHook(cancelHook,[el]);}else{callHook(afterHook,[el]);}if(hooks.delayedLeave){hooks.delayedLeave();}el._enterCb=undefined;};if(hook){hook(el,done);if(hook.length<=1){done();}}else{done();}},leave:function leave(el,remove){var key=String(vnode.key);if(el._enterCb){el._enterCb(true/* cancelled */);}if(state.isUnmounting){return remove();}callHook(onBeforeLeave,[el]);var called=false;var done=el._leaveCb=function(cancelled){if(called)return;called=true;remove();if(cancelled){callHook(onLeaveCancelled,[el]);}else{callHook(onAfterLeave,[el]);}el._leaveCb=undefined;if(leavingVNodesCache[key]===vnode){delete leavingVNodesCache[key];}};leavingVNodesCache[key]=vnode;if(onLeave){onLeave(el,done);if(onLeave.length<=1){done();}}else{done();}},clone:function clone(vnode){return resolveTransitionHooks(vnode,props,state,instance);}};return hooks;}// the placeholder really only handles one special case: KeepAlive +// in the case of a KeepAlive in a leave phase we need to return a KeepAlive +// placeholder with empty content to avoid the KeepAlive instance from being +// unmounted. +function emptyPlaceholder(vnode){if(isKeepAlive(vnode)){vnode=cloneVNode(vnode);vnode.children=null;return vnode;}}function getKeepAliveChild(vnode){return isKeepAlive(vnode)?vnode.children?vnode.children[0]:undefined:vnode;}function setTransitionHooks(vnode,hooks){if(vnode.shapeFlag&6/* COMPONENT */&&vnode.component){setTransitionHooks(vnode.component.subTree,hooks);}else if(vnode.shapeFlag&128/* SUSPENSE */){vnode.ssContent.transition=hooks.clone(vnode.ssContent);vnode.ssFallback.transition=hooks.clone(vnode.ssFallback);}else{vnode.transition=hooks;}}function getTransitionRawChildren(children){var keepComment=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var ret=[];var keyedFragmentCount=0;for(var i=0;i1){for(var _i2=0;_i21){{warn("KeepAlive should contain exactly one component child.");}current=null;return children;}else if(!isVNode(rawVNode)||!(rawVNode.shapeFlag&4/* STATEFUL_COMPONENT */)&&!(rawVNode.shapeFlag&128/* SUSPENSE */)){current=null;return rawVNode;}var vnode=getInnerChild(rawVNode);var comp=vnode.type;var name=getName(comp);var include=props.include,exclude=props.exclude,max=props.max;if(include&&(!name||!matches(include,name))||exclude&&name&&matches(exclude,name)){current=vnode;return rawVNode;}var key=vnode.key==null?comp:vnode.key;var cachedVNode=cache.get(key);// clone vnode if it's reused because we are going to mutate it +if(vnode.el){vnode=cloneVNode(vnode);if(rawVNode.shapeFlag&128/* SUSPENSE */){rawVNode.ssContent=vnode;}}// #1513 it's possible for the returned vnode to be cloned due to attr +// fallthrough or scopeId, so the vnode here may not be the final vnode +// that is mounted. Instead of caching it directly, we store the pending +// key and cache `instance.subTree` (the normalized vnode) in +// beforeMount/beforeUpdate hooks. +pendingCacheKey=key;if(cachedVNode){// copy over mounted state +vnode.el=cachedVNode.el;vnode.component=cachedVNode.component;if(vnode.transition){// recursively update transition hooks on subTree +setTransitionHooks(vnode,vnode.transition);}// avoid vnode being mounted as fresh +vnode.shapeFlag|=512/* COMPONENT_KEPT_ALIVE */;// make this key the freshest +keys.delete(key);keys.add(key);}else{keys.add(key);// prune oldest entry +if(max&&keys.size>parseInt(max,10)){pruneCacheEntry(keys.values().next().value);}}// avoid vnode being unmounted +vnode.shapeFlag|=256/* COMPONENT_SHOULD_KEEP_ALIVE */;current=vnode;return rawVNode;};}};// export the public type for h/tsx inference +// also to avoid inline import() in generated d.ts files +var KeepAlive=KeepAliveImpl;function getName(comp){return comp.displayName||comp.name;}function matches(pattern,name){if(isArray(pattern)){return pattern.some(function(p){return matches(p,name);});}else if(isString(pattern)){return pattern.split(',').indexOf(name)>-1;}else if(pattern.test){return pattern.test(name);}/* istanbul ignore next */return false;}function onActivated(hook,target){registerKeepAliveHook(hook,"a"/* ACTIVATED */,target);}function onDeactivated(hook,target){registerKeepAliveHook(hook,"da"/* DEACTIVATED */,target);}function registerKeepAliveHook(hook,type){var target=arguments.length>2&&arguments[2]!==undefined?arguments[2]:currentInstance;// cache the deactivate branch check wrapper for injected hooks so the same +// hook can be properly deduped by the scheduler. "__wdc" stands for "with +// deactivation check". +var wrappedHook=hook.__wdc||(hook.__wdc=function(){// only fire the hook if the target instance is NOT in a deactivated branch. +var current=target;while(current){if(current.isDeactivated){return;}current=current.parent;}hook();});injectHook(type,wrappedHook,target);// In addition to registering it on the target instance, we walk up the parent +// chain and register it on all ancestor instances that are keep-alive roots. +// This avoids the need to walk the entire component tree when invoking these +// hooks, and more importantly, avoids the need to track child components in +// arrays. +if(target){var current=target.parent;while(current&¤t.parent){if(isKeepAlive(current.parent.vnode)){injectToKeepAliveRoot(wrappedHook,type,target,current);}current=current.parent;}}}function injectToKeepAliveRoot(hook,type,target,keepAliveRoot){// injectHook wraps the original for error handling, so make sure to remove +// the wrapped version. +var injected=injectHook(type,hook,keepAliveRoot,true/* prepend */);onUnmounted(function(){remove(keepAliveRoot[type],injected);},target);}function resetShapeFlag(vnode){var shapeFlag=vnode.shapeFlag;if(shapeFlag&256/* COMPONENT_SHOULD_KEEP_ALIVE */){shapeFlag-=256/* COMPONENT_SHOULD_KEEP_ALIVE */;}if(shapeFlag&512/* COMPONENT_KEPT_ALIVE */){shapeFlag-=512/* COMPONENT_KEPT_ALIVE */;}vnode.shapeFlag=shapeFlag;}function getInnerChild(vnode){return vnode.shapeFlag&128/* SUSPENSE */?vnode.ssContent:vnode;}var isInternalKey=function isInternalKey(key){return key[0]==='_'||key==='$stable';};var normalizeSlotValue=function normalizeSlotValue(value){return isArray(value)?value.map(normalizeVNode):[normalizeVNode(value)];};var normalizeSlot=function normalizeSlot(key,rawSlot,ctx){return withCtx(function(props){if(currentInstance){warn("Slot \"".concat(key,"\" invoked outside of the render function: ")+"this will not track dependencies used in the slot. "+"Invoke the slot function inside the render function instead.");}return normalizeSlotValue(rawSlot(props));},ctx);};var normalizeObjectSlots=function normalizeObjectSlots(rawSlots,slots){var ctx=rawSlots._ctx;for(var key in rawSlots){if(isInternalKey(key))continue;var value=rawSlots[key];if(isFunction(value)){slots[key]=normalizeSlot(key,value,ctx);}else if(value!=null){(function(){{warn("Non-function value encountered for slot \"".concat(key,"\". ")+"Prefer function slots for better performance.");}var normalized=normalizeSlotValue(value);slots[key]=function(){return normalized;};})();}}};var normalizeVNodeSlots=function normalizeVNodeSlots(instance,children){if(!isKeepAlive(instance.vnode)){warn("Non-function value encountered for default slot. "+"Prefer function slots for better performance.");}var normalized=normalizeSlotValue(children);instance.slots.default=function(){return normalized;};};var initSlots=function initSlots(instance,children){if(instance.vnode.shapeFlag&32/* SLOTS_CHILDREN */){var type=children._;if(type){instance.slots=children;// make compiler marker non-enumerable +def(children,'_',type);}else{normalizeObjectSlots(children,instance.slots={});}}else{instance.slots={};if(children){normalizeVNodeSlots(instance,children);}}def(instance.slots,InternalObjectKey,1);};var updateSlots=function updateSlots(instance,children){var vnode=instance.vnode,slots=instance.slots;var needDeletionCheck=true;var deletionComparisonTarget=EMPTY_OBJ;if(vnode.shapeFlag&32/* SLOTS_CHILDREN */){var type=children._;if(type){// compiled slots. +if(isHmrUpdating){// Parent was HMR updated so slot content may have changed. +// force update slots and mark instance for hmr as well +extend(slots,children);}else if(type===1/* STABLE */){// compiled AND stable. +// no need to update, and skip stale slots removal. +needDeletionCheck=false;}else{// compiled but dynamic (v-if/v-for on slots) - update slots, but skip +// normalization. +extend(slots,children);}}else{needDeletionCheck=!children.$stable;normalizeObjectSlots(children,slots);}deletionComparisonTarget=children;}else if(children){// non slot object children (direct value) passed to a component +normalizeVNodeSlots(instance,children);deletionComparisonTarget={default:1};}// delete stale slots +if(needDeletionCheck){for(var key in slots){if(!isInternalKey(key)&&!(key in deletionComparisonTarget)){delete slots[key];}}}};/** +Runtime helper for applying directives to a vnode. Example usage: -var onErrorCaptured = function onErrorCaptured(hook) { - var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : currentInstance; - injectHook("ec" - /* ERROR_CAPTURED */ - , hook, target); -}; // Simple effect. - - -function watchEffect(effect, options) { - return doWatch(effect, null, options); -} // initial value for watchers to trigger on undefined initial values - - -var INITIAL_WATCHER_VALUE = {}; // implementation - -function watch(source, cb, options) { - if (!isFunction(cb)) { - warn("`watch(fn, options?)` signature has been moved to a separate API. " + "Use `watchEffect(fn, options?)` instead. `watch` now only " + "supports `watch(source, cb, options?) signature."); - } - - return doWatch(source, cb, options); -} - -function doWatch(source, cb) { - var _ref11 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJ, - immediate = _ref11.immediate, - deep = _ref11.deep, - flush = _ref11.flush, - onTrack = _ref11.onTrack, - onTrigger = _ref11.onTrigger; - - var instance = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : currentInstance; - - if (!cb) { - if (immediate !== undefined) { - warn("watch() \"immediate\" option is only respected when using the " + "watch(source, callback, options?) signature."); - } - - if (deep !== undefined) { - warn("watch() \"deep\" option is only respected when using the " + "watch(source, callback, options?) signature."); - } - } - - var warnInvalidSource = function warnInvalidSource(s) { - warn("Invalid watch source: ", s, "A watch source can only be a getter/effect function, a ref, " + "a reactive object, or an array of these types."); - }; - - var getter; - var forceTrigger = false; - - if (isRef(source)) { - getter = function getter() { - return source.value; - }; - - forceTrigger = !!source._shallow; - } else if (isReactive(source)) { - getter = function getter() { - return source; - }; - - deep = true; - } else if (isArray(source)) { - getter = function getter() { - return source.map(function (s) { - if (isRef(s)) { - return s.value; - } else if (isReactive(s)) { - return traverse(s); - } else if (isFunction(s)) { - return callWithErrorHandling(s, instance, 2 - /* WATCH_GETTER */ - ); - } else { - warnInvalidSource(s); - } - }); - }; - } else if (isFunction(source)) { - if (cb) { - // getter with cb - getter = function getter() { - return callWithErrorHandling(source, instance, 2 - /* WATCH_GETTER */ - ); - }; - } else { - // no cb -> simple effect - getter = function getter() { - if (instance && instance.isUnmounted) { - return; - } - - if (cleanup) { - cleanup(); - } - - return callWithErrorHandling(source, instance, 3 - /* WATCH_CALLBACK */ - , [onInvalidate]); - }; - } - } else { - getter = NOOP; - warnInvalidSource(source); - } - - if (cb && deep) { - var baseGetter = getter; - - getter = function getter() { - return traverse(baseGetter()); - }; - } - - var cleanup; - - var onInvalidate = function onInvalidate(fn) { - cleanup = runner.options.onStop = function () { - callWithErrorHandling(fn, instance, 4 - /* WATCH_CLEANUP */ - ); - }; - }; - - var oldValue = isArray(source) ? [] : INITIAL_WATCHER_VALUE; - - var job = function job() { - if (!runner.active) { - return; - } - - if (cb) { - // watch(source, cb) - var newValue = runner(); - - if (deep || forceTrigger || hasChanged(newValue, oldValue)) { - // cleanup before running cb again - if (cleanup) { - cleanup(); - } - - callWithAsyncErrorHandling(cb, instance, 3 - /* WATCH_CALLBACK */ - , [newValue, // pass undefined as the old value when it's changed for the first time - oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue, onInvalidate]); - oldValue = newValue; - } - } else { - // watchEffect - runner(); - } - }; // important: mark the job as a watcher callback so that scheduler knows - // it is allowed to self-trigger (#1727) - - - job.allowRecurse = !!cb; - var scheduler; - - if (flush === 'sync') { - scheduler = job; - } else if (flush === 'post') { - scheduler = function scheduler() { - return queuePostRenderEffect(job, instance && instance.suspense); - }; - } else { - // default: 'pre' - scheduler = function scheduler() { - if (!instance || instance.isMounted) { - queuePreFlushCb(job); - } else { - // with 'pre' option, the first call must happen before - // the component is mounted so it is called synchronously. - job(); - } - }; - } - - var runner = effect(getter, { - lazy: true, - onTrack: onTrack, - onTrigger: onTrigger, - scheduler: scheduler - }); - recordInstanceBoundEffect(runner); // initial run - - if (cb) { - if (immediate) { - job(); - } else { - oldValue = runner(); - } - } else if (flush === 'post') { - queuePostRenderEffect(runner, instance && instance.suspense); - } else { - runner(); - } - - return function () { - stop(runner); - - if (instance) { - remove(instance.effects, runner); - } - }; -} // this.$watch - - -function instanceWatch(source, cb, options) { - var publicThis = this.proxy; - var getter = isString(source) ? function () { - return publicThis[source]; - } : source.bind(publicThis); - return doWatch(getter, cb.bind(publicThis), options, this); -} - -function traverse(value) { - var seen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set(); - - if (!isObject(value) || seen.has(value)) { - return value; - } - - seen.add(value); - - if (isRef(value)) { - traverse(value.value, seen); - } else if (isArray(value)) { - for (var i = 0; i < value.length; i++) { - traverse(value[i], seen); - } - } else if (isSet(value) || isMap(value)) { - value.forEach(function (v) { - traverse(v, seen); - }); - } else { - for (var key in value) { - traverse(value[key], seen); - } - } - - return value; -} - -function useTransitionState() { - var state = { - isMounted: false, - isLeaving: false, - isUnmounting: false, - leavingVNodes: new Map() - }; - onMounted(function () { - state.isMounted = true; - }); - onBeforeUnmount(function () { - state.isUnmounting = true; - }); - return state; -} - -var TransitionHookValidator = [Function, Array]; -var BaseTransitionImpl = { - name: "BaseTransition", - props: { - mode: String, - appear: Boolean, - persisted: Boolean, - // enter - onBeforeEnter: TransitionHookValidator, - onEnter: TransitionHookValidator, - onAfterEnter: TransitionHookValidator, - onEnterCancelled: TransitionHookValidator, - // leave - onBeforeLeave: TransitionHookValidator, - onLeave: TransitionHookValidator, - onAfterLeave: TransitionHookValidator, - onLeaveCancelled: TransitionHookValidator, - // appear - onBeforeAppear: TransitionHookValidator, - onAppear: TransitionHookValidator, - onAfterAppear: TransitionHookValidator, - onAppearCancelled: TransitionHookValidator - }, - setup: function setup(props, _ref12) { - var slots = _ref12.slots; - var instance = getCurrentInstance(); - var state = useTransitionState(); - var prevTransitionKey; - return function () { - var children = slots.default && getTransitionRawChildren(slots.default(), true); - - if (!children || !children.length) { - return; - } // warn multiple elements - - - if (children.length > 1) { - warn(' can only be used on a single element or component. Use ' + ' for lists.'); - } // there's no need to track reactivity for these props so use the raw - // props for a bit better perf - - - var rawProps = toRaw(props); - var mode = rawProps.mode; // check mode - - if (mode && !['in-out', 'out-in', 'default'].includes(mode)) { - warn("invalid mode: ".concat(mode)); - } // at this point children has a guaranteed length of 1. - - - var child = children[0]; - - if (state.isLeaving) { - return emptyPlaceholder(child); - } // in the case of , we need to - // compare the type of the kept-alive children. - - - var innerChild = getKeepAliveChild(child); - - if (!innerChild) { - return emptyPlaceholder(child); - } - - var enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance); - setTransitionHooks(innerChild, enterHooks); - var oldChild = instance.subTree; - var oldInnerChild = oldChild && getKeepAliveChild(oldChild); - var transitionKeyChanged = false; - var getTransitionKey = innerChild.type.getTransitionKey; - - if (getTransitionKey) { - var key = getTransitionKey(); - - if (prevTransitionKey === undefined) { - prevTransitionKey = key; - } else if (key !== prevTransitionKey) { - prevTransitionKey = key; - transitionKeyChanged = true; - } - } // handle mode - - - if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { - var leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance); // update old tree's hooks in case of dynamic transition - - setTransitionHooks(oldInnerChild, leavingHooks); // switching between different views - - if (mode === 'out-in') { - state.isLeaving = true; // return placeholder node and queue update when leave finishes - - leavingHooks.afterLeave = function () { - state.isLeaving = false; - instance.update(); - }; - - return emptyPlaceholder(child); - } else if (mode === 'in-out') { - leavingHooks.delayLeave = function (el, earlyRemove, delayedLeave) { - var leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild); - leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; // early removal callback - - el._leaveCb = function () { - earlyRemove(); - el._leaveCb = undefined; - delete enterHooks.delayedLeave; - }; - - enterHooks.delayedLeave = delayedLeave; - }; - } - } - - return child; - }; - } -}; // export the public type for h/tsx inference -// also to avoid inline import() in generated d.ts files - -var BaseTransition = BaseTransitionImpl; - -function getLeavingNodesForType(state, vnode) { - var leavingVNodes = state.leavingVNodes; - var leavingVNodesCache = leavingVNodes.get(vnode.type); - - if (!leavingVNodesCache) { - leavingVNodesCache = Object.create(null); - leavingVNodes.set(vnode.type, leavingVNodesCache); - } - - return leavingVNodesCache; -} // The transition hooks are attached to the vnode as vnode.transition -// and will be called at appropriate timing in the renderer. - - -function resolveTransitionHooks(vnode, props, state, instance) { - var appear = props.appear, - mode = props.mode, - _props$persisted = props.persisted, - persisted = _props$persisted === void 0 ? false : _props$persisted, - onBeforeEnter = props.onBeforeEnter, - onEnter = props.onEnter, - onAfterEnter = props.onAfterEnter, - onEnterCancelled = props.onEnterCancelled, - onBeforeLeave = props.onBeforeLeave, - onLeave = props.onLeave, - onAfterLeave = props.onAfterLeave, - onLeaveCancelled = props.onLeaveCancelled, - onBeforeAppear = props.onBeforeAppear, - onAppear = props.onAppear, - onAfterAppear = props.onAfterAppear, - onAppearCancelled = props.onAppearCancelled; - var key = String(vnode.key); - var leavingVNodesCache = getLeavingNodesForType(state, vnode); - - var callHook = function callHook(hook, args) { - hook && callWithAsyncErrorHandling(hook, instance, 9 - /* TRANSITION_HOOK */ - , args); - }; - - var hooks = { - mode: mode, - persisted: persisted, - beforeEnter: function beforeEnter(el) { - var hook = onBeforeEnter; - - if (!state.isMounted) { - if (appear) { - hook = onBeforeAppear || onBeforeEnter; - } else { - return; - } - } // for same element (v-show) - - - if (el._leaveCb) { - el._leaveCb(true - /* cancelled */ - ); - } // for toggled element with same key (v-if) - - - var leavingVNode = leavingVNodesCache[key]; - - if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) { - // force early removal (not cancelled) - leavingVNode.el._leaveCb(); - } - - callHook(hook, [el]); - }, - enter: function enter(el) { - var hook = onEnter; - var afterHook = onAfterEnter; - var cancelHook = onEnterCancelled; - - if (!state.isMounted) { - if (appear) { - hook = onAppear || onEnter; - afterHook = onAfterAppear || onAfterEnter; - cancelHook = onAppearCancelled || onEnterCancelled; - } else { - return; - } - } - - var called = false; - - var done = el._enterCb = function (cancelled) { - if (called) return; - called = true; - - if (cancelled) { - callHook(cancelHook, [el]); - } else { - callHook(afterHook, [el]); - } - - if (hooks.delayedLeave) { - hooks.delayedLeave(); - } - - el._enterCb = undefined; - }; - - if (hook) { - hook(el, done); - - if (hook.length <= 1) { - done(); - } - } else { - done(); - } - }, - leave: function leave(el, remove) { - var key = String(vnode.key); - - if (el._enterCb) { - el._enterCb(true - /* cancelled */ - ); - } - - if (state.isUnmounting) { - return remove(); - } - - callHook(onBeforeLeave, [el]); - var called = false; - - var done = el._leaveCb = function (cancelled) { - if (called) return; - called = true; - remove(); - - if (cancelled) { - callHook(onLeaveCancelled, [el]); - } else { - callHook(onAfterLeave, [el]); - } - - el._leaveCb = undefined; - - if (leavingVNodesCache[key] === vnode) { - delete leavingVNodesCache[key]; - } - }; - - leavingVNodesCache[key] = vnode; - - if (onLeave) { - onLeave(el, done); - - if (onLeave.length <= 1) { - done(); - } - } else { - done(); - } - }, - clone: function clone(vnode) { - return resolveTransitionHooks(vnode, props, state, instance); - } - }; - return hooks; -} // the placeholder really only handles one special case: KeepAlive -// in the case of a KeepAlive in a leave phase we need to return a KeepAlive -// placeholder with empty content to avoid the KeepAlive instance from being -// unmounted. - - -function emptyPlaceholder(vnode) { - if (isKeepAlive(vnode)) { - vnode = cloneVNode(vnode); - vnode.children = null; - return vnode; - } -} - -function getKeepAliveChild(vnode) { - return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : undefined : vnode; -} - -function setTransitionHooks(vnode, hooks) { - if (vnode.shapeFlag & 6 - /* COMPONENT */ - && vnode.component) { - setTransitionHooks(vnode.component.subTree, hooks); - } else if (vnode.shapeFlag & 128 - /* SUSPENSE */ - ) { - vnode.ssContent.transition = hooks.clone(vnode.ssContent); - vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); - } else { - vnode.transition = hooks; - } -} - -function getTransitionRawChildren(children) { - var keepComment = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var ret = []; - var keyedFragmentCount = 0; - - for (var i = 0; i < children.length; i++) { - var child = children[i]; // handle fragment children case, e.g. v-for - - if (child.type === Fragment) { - if (child.patchFlag & 128 - /* KEYED_FRAGMENT */ - ) keyedFragmentCount++; - ret = ret.concat(getTransitionRawChildren(child.children, keepComment)); - } // comment placeholders should be skipped, e.g. v-if - else if (keepComment || child.type !== Comment) { - ret.push(child); - } - } // #1126 if a transition children list contains multiple sub fragments, these - // fragments will be merged into a flat children array. Since each v-for - // fragment may contain different static bindings inside, we need to de-top - // these children to force full diffs to ensure correct behavior. - - - if (keyedFragmentCount > 1) { - for (var _i2 = 0; _i2 < ret.length; _i2++) { - ret[_i2].patchFlag = -2 - /* BAIL */ - ; - } - } - - return ret; -} - -var isKeepAlive = function isKeepAlive(vnode) { - return vnode.type.__isKeepAlive; -}; - -var KeepAliveImpl = { - name: "KeepAlive", - // Marker for special handling inside the renderer. We are not using a === - // check directly on KeepAlive in the renderer, because importing it directly - // would prevent it from being tree-shaken. - __isKeepAlive: true, - inheritRef: true, - props: { - include: [String, RegExp, Array], - exclude: [String, RegExp, Array], - max: [String, Number] - }, - setup: function setup(props, _ref13) { - var slots = _ref13.slots; - var cache = new Map(); - var keys = new Set(); - var current = null; - var instance = getCurrentInstance(); - var parentSuspense = instance.suspense; // KeepAlive communicates with the instantiated renderer via the - // ctx where the renderer passes in its internals, - // and the KeepAlive instance exposes activate/deactivate implementations. - // The whole point of this is to avoid importing KeepAlive directly in the - // renderer to facilitate tree-shaking. - - var sharedContext = instance.ctx; - var _sharedContext$render = sharedContext.renderer, - patch = _sharedContext$render.p, - move = _sharedContext$render.m, - _unmount = _sharedContext$render.um, - createElement = _sharedContext$render.o.createElement; - var storageContainer = createElement('div'); - - sharedContext.activate = function (vnode, container, anchor, isSVG, optimized) { - var instance = vnode.component; - move(vnode, container, anchor, 0 - /* ENTER */ - , parentSuspense); // in case props have changed - - patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, optimized); - queuePostRenderEffect(function () { - instance.isDeactivated = false; - - if (instance.a) { - invokeArrayFns(instance.a); - } - - var vnodeHook = vnode.props && vnode.props.onVnodeMounted; - - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance.parent, vnode); - } - }, parentSuspense); - }; - - sharedContext.deactivate = function (vnode) { - var instance = vnode.component; - move(vnode, storageContainer, null, 1 - /* LEAVE */ - , parentSuspense); - queuePostRenderEffect(function () { - if (instance.da) { - invokeArrayFns(instance.da); - } - - var vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; - - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance.parent, vnode); - } - - instance.isDeactivated = true; - }, parentSuspense); - }; - - function unmount(vnode) { - // reset the shapeFlag so it can be properly unmounted - resetShapeFlag(vnode); - - _unmount(vnode, instance, parentSuspense); - } - - function pruneCache(filter) { - cache.forEach(function (vnode, key) { - var name = getName(vnode.type); - - if (name && (!filter || !filter(name))) { - pruneCacheEntry(key); - } - }); - } - - function pruneCacheEntry(key) { - var cached = cache.get(key); - - if (!current || cached.type !== current.type) { - unmount(cached); - } else if (current) { - // current active instance should no longer be kept-alive. - // we can't unmount it now but it might be later, so reset its flag now. - resetShapeFlag(current); - } - - cache.delete(key); - keys.delete(key); - } // prune cache on include/exclude prop change - - - watch(function () { - return [props.include, props.exclude]; - }, function (_ref14) { - var _ref15 = _slicedToArray(_ref14, 2), - include = _ref15[0], - exclude = _ref15[1]; - - include && pruneCache(function (name) { - return matches(include, name); - }); - exclude && pruneCache(function (name) { - return !matches(exclude, name); - }); - }, // prune post-render after `current` has been updated - { - flush: 'post' - }); // cache sub tree after render - - var pendingCacheKey = null; - - var cacheSubtree = function cacheSubtree() { - // fix #1621, the pendingCacheKey could be 0 - if (pendingCacheKey != null) { - cache.set(pendingCacheKey, getInnerChild(instance.subTree)); - } - }; - - onMounted(cacheSubtree); - onUpdated(cacheSubtree); - onBeforeUnmount(function () { - cache.forEach(function (cached) { - var subTree = instance.subTree, - suspense = instance.suspense; - var vnode = getInnerChild(subTree); - - if (cached.type === vnode.type) { - // current instance will be unmounted as part of keep-alive's unmount - resetShapeFlag(vnode); // but invoke its deactivated hook here - - var da = vnode.component.da; - da && queuePostRenderEffect(da, suspense); - return; - } - - unmount(cached); - }); - }); - return function () { - pendingCacheKey = null; - - if (!slots.default) { - return null; - } - - var children = slots.default(); - var rawVNode = children[0]; - - if (children.length > 1) { - { - warn("KeepAlive should contain exactly one component child."); - } - current = null; - return children; - } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4 - /* STATEFUL_COMPONENT */ - ) && !(rawVNode.shapeFlag & 128 - /* SUSPENSE */ - )) { - current = null; - return rawVNode; - } - - var vnode = getInnerChild(rawVNode); - var comp = vnode.type; - var name = getName(comp); - var include = props.include, - exclude = props.exclude, - max = props.max; - - if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { - current = vnode; - return rawVNode; - } - - var key = vnode.key == null ? comp : vnode.key; - var cachedVNode = cache.get(key); // clone vnode if it's reused because we are going to mutate it - - if (vnode.el) { - vnode = cloneVNode(vnode); - - if (rawVNode.shapeFlag & 128 - /* SUSPENSE */ - ) { - rawVNode.ssContent = vnode; - } - } // #1513 it's possible for the returned vnode to be cloned due to attr - // fallthrough or scopeId, so the vnode here may not be the final vnode - // that is mounted. Instead of caching it directly, we store the pending - // key and cache `instance.subTree` (the normalized vnode) in - // beforeMount/beforeUpdate hooks. - - - pendingCacheKey = key; - - if (cachedVNode) { - // copy over mounted state - vnode.el = cachedVNode.el; - vnode.component = cachedVNode.component; - - if (vnode.transition) { - // recursively update transition hooks on subTree - setTransitionHooks(vnode, vnode.transition); - } // avoid vnode being mounted as fresh - - - vnode.shapeFlag |= 512 - /* COMPONENT_KEPT_ALIVE */ - ; // make this key the freshest - - keys.delete(key); - keys.add(key); - } else { - keys.add(key); // prune oldest entry - - if (max && keys.size > parseInt(max, 10)) { - pruneCacheEntry(keys.values().next().value); - } - } // avoid vnode being unmounted - - - vnode.shapeFlag |= 256 - /* COMPONENT_SHOULD_KEEP_ALIVE */ - ; - current = vnode; - return rawVNode; - }; - } -}; // export the public type for h/tsx inference -// also to avoid inline import() in generated d.ts files - -var KeepAlive = KeepAliveImpl; - -function getName(comp) { - return comp.displayName || comp.name; -} - -function matches(pattern, name) { - if (isArray(pattern)) { - return pattern.some(function (p) { - return matches(p, name); - }); - } else if (isString(pattern)) { - return pattern.split(',').indexOf(name) > -1; - } else if (pattern.test) { - return pattern.test(name); - } - /* istanbul ignore next */ - - - return false; -} - -function onActivated(hook, target) { - registerKeepAliveHook(hook, "a" - /* ACTIVATED */ - , target); -} - -function onDeactivated(hook, target) { - registerKeepAliveHook(hook, "da" - /* DEACTIVATED */ - , target); -} - -function registerKeepAliveHook(hook, type) { - var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : currentInstance; - - // cache the deactivate branch check wrapper for injected hooks so the same - // hook can be properly deduped by the scheduler. "__wdc" stands for "with - // deactivation check". - var wrappedHook = hook.__wdc || (hook.__wdc = function () { - // only fire the hook if the target instance is NOT in a deactivated branch. - var current = target; - - while (current) { - if (current.isDeactivated) { - return; - } - - current = current.parent; - } - - hook(); - }); - - injectHook(type, wrappedHook, target); // In addition to registering it on the target instance, we walk up the parent - // chain and register it on all ancestor instances that are keep-alive roots. - // This avoids the need to walk the entire component tree when invoking these - // hooks, and more importantly, avoids the need to track child components in - // arrays. - - if (target) { - var current = target.parent; - - while (current && current.parent) { - if (isKeepAlive(current.parent.vnode)) { - injectToKeepAliveRoot(wrappedHook, type, target, current); - } - - current = current.parent; - } - } -} - -function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { - // injectHook wraps the original for error handling, so make sure to remove - // the wrapped version. - var injected = injectHook(type, hook, keepAliveRoot, true - /* prepend */ - ); - onUnmounted(function () { - remove(keepAliveRoot[type], injected); - }, target); -} - -function resetShapeFlag(vnode) { - var shapeFlag = vnode.shapeFlag; - - if (shapeFlag & 256 - /* COMPONENT_SHOULD_KEEP_ALIVE */ - ) { - shapeFlag -= 256 - /* COMPONENT_SHOULD_KEEP_ALIVE */ - ; - } - - if (shapeFlag & 512 - /* COMPONENT_KEPT_ALIVE */ - ) { - shapeFlag -= 512 - /* COMPONENT_KEPT_ALIVE */ - ; - } - - vnode.shapeFlag = shapeFlag; -} - -function getInnerChild(vnode) { - return vnode.shapeFlag & 128 - /* SUSPENSE */ - ? vnode.ssContent : vnode; -} - -var isInternalKey = function isInternalKey(key) { - return key[0] === '_' || key === '$stable'; -}; - -var normalizeSlotValue = function normalizeSlotValue(value) { - return isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; -}; - -var normalizeSlot = function normalizeSlot(key, rawSlot, ctx) { - return withCtx(function (props) { - if (currentInstance) { - warn("Slot \"".concat(key, "\" invoked outside of the render function: ") + "this will not track dependencies used in the slot. " + "Invoke the slot function inside the render function instead."); - } - - return normalizeSlotValue(rawSlot(props)); - }, ctx); -}; - -var normalizeObjectSlots = function normalizeObjectSlots(rawSlots, slots) { - var ctx = rawSlots._ctx; - - for (var key in rawSlots) { - if (isInternalKey(key)) continue; - var value = rawSlots[key]; - - if (isFunction(value)) { - slots[key] = normalizeSlot(key, value, ctx); - } else if (value != null) { - (function () { - { - warn("Non-function value encountered for slot \"".concat(key, "\". ") + "Prefer function slots for better performance."); - } - var normalized = normalizeSlotValue(value); - - slots[key] = function () { - return normalized; - }; - })(); - } - } -}; - -var normalizeVNodeSlots = function normalizeVNodeSlots(instance, children) { - if (!isKeepAlive(instance.vnode)) { - warn("Non-function value encountered for default slot. " + "Prefer function slots for better performance."); - } - - var normalized = normalizeSlotValue(children); - - instance.slots.default = function () { - return normalized; - }; -}; - -var initSlots = function initSlots(instance, children) { - if (instance.vnode.shapeFlag & 32 - /* SLOTS_CHILDREN */ - ) { - var type = children._; - - if (type) { - instance.slots = children; // make compiler marker non-enumerable - - def(children, '_', type); - } else { - normalizeObjectSlots(children, instance.slots = {}); - } - } else { - instance.slots = {}; - - if (children) { - normalizeVNodeSlots(instance, children); - } - } - - def(instance.slots, InternalObjectKey, 1); -}; - -var updateSlots = function updateSlots(instance, children) { - var vnode = instance.vnode, - slots = instance.slots; - var needDeletionCheck = true; - var deletionComparisonTarget = EMPTY_OBJ; - - if (vnode.shapeFlag & 32 - /* SLOTS_CHILDREN */ - ) { - var type = children._; - - if (type) { - // compiled slots. - if (isHmrUpdating) { - // Parent was HMR updated so slot content may have changed. - // force update slots and mark instance for hmr as well - extend(slots, children); - } else if (type === 1 - /* STABLE */ - ) { - // compiled AND stable. - // no need to update, and skip stale slots removal. - needDeletionCheck = false; - } else { - // compiled but dynamic (v-if/v-for on slots) - update slots, but skip - // normalization. - extend(slots, children); - } - } else { - needDeletionCheck = !children.$stable; - normalizeObjectSlots(children, slots); - } - - deletionComparisonTarget = children; - } else if (children) { - // non slot object children (direct value) passed to a component - normalizeVNodeSlots(instance, children); - deletionComparisonTarget = { - default: 1 - }; - } // delete stale slots - - - if (needDeletionCheck) { - for (var key in slots) { - if (!isInternalKey(key) && !(key in deletionComparisonTarget)) { - delete slots[key]; - } - } - } -}; -/** -Runtime helper for applying directives to a vnode. Example usage: - -const comp = resolveComponent('comp') -const foo = resolveDirective('foo') -const bar = resolveDirective('bar') +const comp = resolveComponent('comp') +const foo = resolveDirective('foo') +const bar = resolveDirective('bar') return withDirectives(h(comp), [ [foo, this.x], [bar, this.y] ]) -*/ - - -var isBuiltInDirective = /*#__PURE__*/makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text'); - -function validateDirectiveName(name) { - if (isBuiltInDirective(name)) { - warn('Do not use built-in directive ids as custom directive id: ' + name); - } -} -/** +*/var isBuiltInDirective=/*#__PURE__*/makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text');function validateDirectiveName(name){if(isBuiltInDirective(name)){warn('Do not use built-in directive ids as custom directive id: '+name);}}/** * Adds directives to a VNode. - */ - - -function withDirectives(vnode, directives) { - var internalInstance = currentRenderingInstance; - - if (internalInstance === null) { - warn("withDirectives can only be used inside render functions."); - return vnode; - } - - var instance = internalInstance.proxy; - var bindings = vnode.dirs || (vnode.dirs = []); - - for (var i = 0; i < directives.length; i++) { - var _directives$i = _slicedToArray(directives[i], 4), - dir = _directives$i[0], - value = _directives$i[1], - arg = _directives$i[2], - _directives$i$ = _directives$i[3], - modifiers = _directives$i$ === void 0 ? EMPTY_OBJ : _directives$i$; - - if (isFunction(dir)) { - dir = { - mounted: dir, - updated: dir - }; - } - - bindings.push({ - dir: dir, - instance: instance, - value: value, - oldValue: void 0, - arg: arg, - modifiers: modifiers - }); - } - - return vnode; -} - -function invokeDirectiveHook(vnode, prevVNode, instance, name) { - var bindings = vnode.dirs; - var oldBindings = prevVNode && prevVNode.dirs; - - for (var i = 0; i < bindings.length; i++) { - var binding = bindings[i]; - - if (oldBindings) { - binding.oldValue = oldBindings[i].value; - } - - var hook = binding.dir[name]; - - if (hook) { - callWithAsyncErrorHandling(hook, instance, 8 - /* DIRECTIVE_HOOK */ - , [vnode.el, binding, vnode, prevVNode]); - } - } -} - -function createAppContext() { - return { - app: null, - config: { - isNativeTag: NO, - performance: false, - globalProperties: {}, - optionMergeStrategies: {}, - isCustomElement: NO, - errorHandler: undefined, - warnHandler: undefined - }, - mixins: [], - components: {}, - directives: {}, - provides: Object.create(null) - }; -} - -var uid$1 = 0; - -function createAppAPI(render, hydrate) { - return function createApp(rootComponent) { - var rootProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - if (rootProps != null && !isObject(rootProps)) { - warn("root props passed to app.mount() must be an object."); - rootProps = null; - } - - var context = createAppContext(); - var installedPlugins = new Set(); - var isMounted = false; - var app = context.app = { - _uid: uid$1++, - _component: rootComponent, - _props: rootProps, - _container: null, - _context: context, - version: version, - - get config() { - return context.config; - }, - - set config(v) { - { - warn("app.config cannot be replaced. Modify individual options instead."); - } - }, - - use: function use(plugin) { - for (var _len7 = arguments.length, options = new Array(_len7 > 1 ? _len7 - 1 : 0), _key11 = 1; _key11 < _len7; _key11++) { - options[_key11 - 1] = arguments[_key11]; - } - - if (installedPlugins.has(plugin)) { - warn("Plugin has already been applied to target app."); - } else if (plugin && isFunction(plugin.install)) { - installedPlugins.add(plugin); - plugin.install.apply(plugin, [app].concat(options)); - } else if (isFunction(plugin)) { - installedPlugins.add(plugin); - plugin.apply(void 0, [app].concat(options)); - } else { - warn("A plugin must either be a function or an object with an \"install\" " + "function."); - } - - return app; - }, - mixin: function mixin(_mixin) { - { - if (!context.mixins.includes(_mixin)) { - context.mixins.push(_mixin); // global mixin with props/emits de-optimizes props/emits - // normalization caching. - - if (_mixin.props || _mixin.emits) { - context.deopt = true; - } - } else { - warn('Mixin has already been applied to target app' + (_mixin.name ? ": ".concat(_mixin.name) : '')); - } - } - return app; - }, - component: function component(name, _component) { - { - validateComponentName(name, context.config); - } - - if (!_component) { - return context.components[name]; - } - - if (context.components[name]) { - warn("Component \"".concat(name, "\" has already been registered in target app.")); - } - - context.components[name] = _component; - return app; - }, - directive: function directive(name, _directive) { - { - validateDirectiveName(name); - } - - if (!_directive) { - return context.directives[name]; - } - - if (context.directives[name]) { - warn("Directive \"".concat(name, "\" has already been registered in target app.")); - } - - context.directives[name] = _directive; - return app; - }, - mount: function mount(rootContainer, isHydrate) { - if (!isMounted) { - var vnode = createVNode(rootComponent, rootProps); // store app context on the root VNode. - // this will be set on the root instance on initial mount. - - vnode.appContext = context; // HMR root reload - - { - context.reload = function () { - render(cloneVNode(vnode), rootContainer); - }; - } - - if (isHydrate && hydrate) { - hydrate(vnode, rootContainer); - } else { - render(vnode, rootContainer); - } - - isMounted = true; - app._container = rootContainer; - rootContainer.__vue_app__ = app; - { - devtoolsInitApp(app, version); - } - return vnode.component.proxy; - } else { - warn("App has already been mounted.\n" + "If you want to remount the same app, move your app creation logic " + "into a factory function and create fresh app instances for each " + "mount - e.g. `const createMyApp = () => createApp(App)`"); - } - }, - unmount: function unmount() { - if (isMounted) { - render(null, app._container); - { - devtoolsUnmountApp(app); - } - } else { - warn("Cannot unmount an app that is not mounted."); - } - }, - provide: function provide(key, value) { - if (key in context.provides) { - warn("App already provides property with key \"".concat(String(key), "\". ") + "It will be overwritten with the new value."); - } // TypeScript doesn't allow symbols as index type - // https://github.com/Microsoft/TypeScript/issues/24587 - - - context.provides[key] = value; - return app; - } - }; - return app; - }; -} - -var hasMismatch = false; - -var isSVGContainer = function isSVGContainer(container) { - return /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject'; -}; - -var isComment = function isComment(node) { - return node.nodeType === 8; -} -/* COMMENT */ -; // Note: hydration is DOM-specific + */function withDirectives(vnode,directives){var internalInstance=currentRenderingInstance;if(internalInstance===null){warn("withDirectives can only be used inside render functions.");return vnode;}var instance=internalInstance.proxy;var bindings=vnode.dirs||(vnode.dirs=[]);for(var i=0;i1&&arguments[1]!==undefined?arguments[1]:null;if(rootProps!=null&&!isObject(rootProps)){warn("root props passed to app.mount() must be an object.");rootProps=null;}var context=createAppContext();var installedPlugins=new Set();var isMounted=false;var app=context.app={_uid:uid$1++,_component:rootComponent,_props:rootProps,_container:null,_context:context,version:version,get config(){return context.config;},set config(v){{warn("app.config cannot be replaced. Modify individual options instead.");}},use:function use(plugin){for(var _len7=arguments.length,options=new Array(_len7>1?_len7-1:0),_key11=1;_key11<_len7;_key11++){options[_key11-1]=arguments[_key11];}if(installedPlugins.has(plugin)){warn("Plugin has already been applied to target app.");}else if(plugin&&isFunction(plugin.install)){installedPlugins.add(plugin);plugin.install.apply(plugin,[app].concat(options));}else if(isFunction(plugin)){installedPlugins.add(plugin);plugin.apply(void 0,[app].concat(options));}else{warn("A plugin must either be a function or an object with an \"install\" "+"function.");}return app;},mixin:function mixin(_mixin){{if(!context.mixins.includes(_mixin)){context.mixins.push(_mixin);// global mixin with props/emits de-optimizes props/emits +// normalization caching. +if(_mixin.props||_mixin.emits){context.deopt=true;}}else{warn('Mixin has already been applied to target app'+(_mixin.name?": ".concat(_mixin.name):''));}}return app;},component:function component(name,_component){{validateComponentName(name,context.config);}if(!_component){return context.components[name];}if(context.components[name]){warn("Component \"".concat(name,"\" has already been registered in target app."));}context.components[name]=_component;return app;},directive:function directive(name,_directive){{validateDirectiveName(name);}if(!_directive){return context.directives[name];}if(context.directives[name]){warn("Directive \"".concat(name,"\" has already been registered in target app."));}context.directives[name]=_directive;return app;},mount:function mount(rootContainer,isHydrate){if(!isMounted){var vnode=createVNode(rootComponent,rootProps);// store app context on the root VNode. +// this will be set on the root instance on initial mount. +vnode.appContext=context;// HMR root reload +{context.reload=function(){render(cloneVNode(vnode),rootContainer);};}if(isHydrate&&hydrate){hydrate(vnode,rootContainer);}else{render(vnode,rootContainer);}isMounted=true;app._container=rootContainer;rootContainer.__vue_app__=app;{devtoolsInitApp(app,version);}return vnode.component.proxy;}else{warn("App has already been mounted.\n"+"If you want to remount the same app, move your app creation logic "+"into a factory function and create fresh app instances for each "+"mount - e.g. `const createMyApp = () => createApp(App)`");}},unmount:function unmount(){if(isMounted){render(null,app._container);{devtoolsUnmountApp(app);}}else{warn("Cannot unmount an app that is not mounted.");}},provide:function provide(key,value){if(key in context.provides){warn("App already provides property with key \"".concat(String(key),"\". ")+"It will be overwritten with the new value.");}// TypeScript doesn't allow symbols as index type +// https://github.com/Microsoft/TypeScript/issues/24587 +context.provides[key]=value;return app;}};return app;};}var hasMismatch=false;var isSVGContainer=function isSVGContainer(container){return /svg/.test(container.namespaceURI)&&container.tagName!=='foreignObject';};var isComment=function isComment(node){return node.nodeType===8;}/* COMMENT */;// Note: hydration is DOM-specific // But we have to place it in core due to tight coupling with core - splitting // it out creates a ton of unnecessary complexity. // Hydration also depends on some renderer internal logic which needs to be // passed in via arguments. - - -function createHydrationFunctions(rendererInternals) { - var mountComponent = rendererInternals.mt, - patch = rendererInternals.p, - _rendererInternals$o2 = rendererInternals.o, - patchProp = _rendererInternals$o2.patchProp, - nextSibling = _rendererInternals$o2.nextSibling, - parentNode = _rendererInternals$o2.parentNode, - remove = _rendererInternals$o2.remove, - insert = _rendererInternals$o2.insert, - createComment = _rendererInternals$o2.createComment; - - var hydrate = function hydrate(vnode, container) { - if (!container.hasChildNodes()) { - warn("Attempting to hydrate existing markup but container is empty. " + "Performing full mount instead."); - patch(null, vnode, container); - return; - } - - hasMismatch = false; - hydrateNode(container.firstChild, vnode, null, null); - flushPostFlushCbs(); - - if (hasMismatch && !false) { - // this error should show up in production - console.error("Hydration completed but contains mismatches."); - } - }; - - var hydrateNode = function hydrateNode(node, vnode, parentComponent, parentSuspense) { - var optimized = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - var isFragmentStart = isComment(node) && node.data === '['; - - var onMismatch = function onMismatch() { - return handleMismatch(node, vnode, parentComponent, parentSuspense, isFragmentStart); - }; - - var type = vnode.type, - ref = vnode.ref, - shapeFlag = vnode.shapeFlag; - var domType = node.nodeType; - vnode.el = node; - var nextNode = null; - - switch (type) { - case Text: - if (domType !== 3 - /* TEXT */ - ) { - nextNode = onMismatch(); - } else { - if (node.data !== vnode.children) { - hasMismatch = true; - warn("Hydration text mismatch:" + "\n- Client: ".concat(JSON.stringify(node.data)) + "\n- Server: ".concat(JSON.stringify(vnode.children))); - node.data = vnode.children; - } - - nextNode = nextSibling(node); - } - - break; - - case Comment: - if (domType !== 8 - /* COMMENT */ - || isFragmentStart) { - nextNode = onMismatch(); - } else { - nextNode = nextSibling(node); - } - - break; - - case Static: - if (domType !== 1 - /* ELEMENT */ - ) { - nextNode = onMismatch(); - } else { - // determine anchor, adopt content - nextNode = node; // if the static vnode has its content stripped during build, - // adopt it from the server-rendered HTML. - - var needToAdoptContent = !vnode.children.length; - - for (var i = 0; i < vnode.staticCount; i++) { - if (needToAdoptContent) vnode.children += nextNode.outerHTML; - - if (i === vnode.staticCount - 1) { - vnode.anchor = nextNode; - } - - nextNode = nextSibling(nextNode); - } - - return nextNode; - } - - break; - - case Fragment: - if (!isFragmentStart) { - nextNode = onMismatch(); - } else { - nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, optimized); - } - - break; - - default: - if (shapeFlag & 1 - /* ELEMENT */ - ) { - if (domType !== 1 - /* ELEMENT */ - || vnode.type !== node.tagName.toLowerCase()) { - nextNode = onMismatch(); - } else { - nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, optimized); - } - } else if (shapeFlag & 6 - /* COMPONENT */ - ) { - // when setting up the render effect, if the initial vnode already - // has .el set, the component will perform hydration instead of mount - // on its sub-tree. - var container = parentNode(node); - - var hydrateComponent = function hydrateComponent() { - mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized); - }; // async component - - - var loadAsync = vnode.type.__asyncLoader; - - if (loadAsync) { - loadAsync().then(hydrateComponent); - } else { - hydrateComponent(); - } // component may be async, so in the case of fragments we cannot rely - // on component's rendered output to determine the end of the fragment - // instead, we do a lookahead to find the end anchor node. - - - nextNode = isFragmentStart ? locateClosingAsyncAnchor(node) : nextSibling(node); - } else if (shapeFlag & 64 - /* TELEPORT */ - ) { - if (domType !== 8 - /* COMMENT */ - ) { - nextNode = onMismatch(); - } else { - nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, optimized, rendererInternals, hydrateChildren); - } - } else if (shapeFlag & 128 - /* SUSPENSE */ - ) { - nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), optimized, rendererInternals, hydrateNode); - } else { - warn('Invalid HostVNode type:', type, "(".concat(_typeof(type), ")")); - } - - } - - if (ref != null && parentComponent) { - setRef(ref, null, parentComponent, parentSuspense, vnode); - } - - return nextNode; - }; - - var hydrateElement = function hydrateElement(el, vnode, parentComponent, parentSuspense, optimized) { - optimized = optimized || !!vnode.dynamicChildren; - var props = vnode.props, - patchFlag = vnode.patchFlag, - shapeFlag = vnode.shapeFlag, - dirs = vnode.dirs; // skip props & children if this is hoisted static nodes - - if (patchFlag !== -1 - /* HOISTED */ - ) { - if (dirs) { - invokeDirectiveHook(vnode, null, parentComponent, 'created'); - } // props - - - if (props) { - if (!optimized || patchFlag & 16 - /* FULL_PROPS */ - || patchFlag & 32 - /* HYDRATE_EVENTS */ - ) { - for (var key in props) { - if (!isReservedProp(key) && isOn(key)) { - patchProp(el, key, null, props[key]); - } - } - } else if (props.onClick) { - // Fast path for click listeners (which is most often) to avoid - // iterating through props. - patchProp(el, 'onClick', null, props.onClick); - } - } // vnode / directive hooks - - - var vnodeHooks; - - if (vnodeHooks = props && props.onVnodeBeforeMount) { - invokeVNodeHook(vnodeHooks, parentComponent, vnode); - } - - if (dirs) { - invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount'); - } - - if ((vnodeHooks = props && props.onVnodeMounted) || dirs) { - queueEffectWithSuspense(function () { - vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); - dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted'); - }, parentSuspense); - } // children - - - if (shapeFlag & 16 - /* ARRAY_CHILDREN */ - && // skip if element has innerHTML / textContent - !(props && (props.innerHTML || props.textContent))) { - var next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, optimized); - var _hasWarned = false; - - while (next) { - hasMismatch = true; - - if (!_hasWarned) { - warn("Hydration children mismatch in <".concat(vnode.type, ">: ") + "server rendered element contains more child nodes than client vdom."); - _hasWarned = true; - } // The SSRed DOM contains more nodes than it should. Remove them. - - - var cur = next; - next = next.nextSibling; - remove(cur); - } - } else if (shapeFlag & 8 - /* TEXT_CHILDREN */ - ) { - if (el.textContent !== vnode.children) { - hasMismatch = true; - warn("Hydration text content mismatch in <".concat(vnode.type, ">:\n") + "- Client: ".concat(el.textContent, "\n") + "- Server: ".concat(vnode.children)); - el.textContent = vnode.children; - } - } - } - - return el.nextSibling; - }; - - var hydrateChildren = function hydrateChildren(node, parentVNode, container, parentComponent, parentSuspense, optimized) { - optimized = optimized || !!parentVNode.dynamicChildren; - var children = parentVNode.children; - var l = children.length; - var hasWarned = false; - - for (var i = 0; i < l; i++) { - var vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); - - if (node) { - node = hydrateNode(node, vnode, parentComponent, parentSuspense, optimized); - } else { - hasMismatch = true; - - if (!hasWarned) { - warn("Hydration children mismatch in <".concat(container.tagName.toLowerCase(), ">: ") + "server rendered element contains fewer child nodes than client vdom."); - hasWarned = true; - } // the SSRed DOM didn't contain enough nodes. Mount the missing ones. - - - patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container)); - } - } - - return node; - }; - - var hydrateFragment = function hydrateFragment(node, vnode, parentComponent, parentSuspense, optimized) { - var container = parentNode(node); - var next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, optimized); - - if (next && isComment(next) && next.data === ']') { - return nextSibling(vnode.anchor = next); - } else { - // fragment didn't hydrate successfully, since we didn't get a end anchor - // back. This should have led to node/children mismatch warnings. - hasMismatch = true; // since the anchor is missing, we need to create one and insert it - - insert(vnode.anchor = createComment("]"), container, next); - return next; - } - }; - - var handleMismatch = function handleMismatch(node, vnode, parentComponent, parentSuspense, isFragment) { - hasMismatch = true; - warn("Hydration node mismatch:\n- Client vnode:", vnode.type, "\n- Server rendered DOM:", node, node.nodeType === 3 - /* TEXT */ - ? "(text)" : isComment(node) && node.data === '[' ? "(start of fragment)" : ""); - vnode.el = null; - - if (isFragment) { - // remove excessive fragment nodes - var end = locateClosingAsyncAnchor(node); - - while (true) { - var _next2 = nextSibling(node); - - if (_next2 && _next2 !== end) { - remove(_next2); - } else { - break; - } - } - } - - var next = nextSibling(node); - var container = parentNode(node); - remove(node); - patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container)); - return next; - }; - - var locateClosingAsyncAnchor = function locateClosingAsyncAnchor(node) { - var match = 0; - - while (node) { - node = nextSibling(node); - - if (node && isComment(node)) { - if (node.data === '[') match++; - - if (node.data === ']') { - if (match === 0) { - return nextSibling(node); - } else { - match--; - } - } - } - } - - return node; - }; - - return [hydrate, hydrateNode]; -} - -var supported; -var perf; - -function startMeasure(instance, type) { - if (instance.appContext.config.performance && isSupported()) { - perf.mark("vue-".concat(type, "-").concat(instance.uid)); - } -} - -function endMeasure(instance, type) { - if (instance.appContext.config.performance && isSupported()) { - var startTag = "vue-".concat(type, "-").concat(instance.uid); - var endTag = startTag + ":end"; - perf.mark(endTag); - perf.measure("<".concat(formatComponentName(instance, instance.type), "> ").concat(type), startTag, endTag); - perf.clearMarks(startTag); - perf.clearMarks(endTag); - } -} - -function isSupported() { - if (supported !== undefined) { - return supported; - } - /* eslint-disable no-restricted-globals */ - - - if (typeof window !== 'undefined' && window.performance) { - supported = true; - perf = window.performance; - } else { - supported = false; - } - /* eslint-enable no-restricted-globals */ - - - return supported; -} - -function createDevEffectOptions(instance) { - return { - scheduler: queueJob, - allowRecurse: true, - onTrack: instance.rtc ? function (e) { - return invokeArrayFns(instance.rtc, e); - } : void 0, - onTrigger: instance.rtg ? function (e) { - return invokeArrayFns(instance.rtg, e); - } : void 0 - }; -} - -var queuePostRenderEffect = queueEffectWithSuspense; - -var setRef = function setRef(rawRef, oldRawRef, parentComponent, parentSuspense, vnode) { - if (isArray(rawRef)) { - rawRef.forEach(function (r, i) { - return setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentComponent, parentSuspense, vnode); - }); - return; - } - - var value; - - if (!vnode) { - value = null; - } else { - if (vnode.shapeFlag & 4 - /* STATEFUL_COMPONENT */ - ) { - value = vnode.component.proxy; - } else { - value = vnode.el; - } - } - - var owner = rawRef.i, - ref = rawRef.r; - - if (!owner) { - warn("Missing ref owner context. ref cannot be used on hoisted vnodes. " + "A vnode with ref must be created inside the render function."); - return; - } - - var oldRef = oldRawRef && oldRawRef.r; - var refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; - var setupState = owner.setupState; // unset old ref - - if (oldRef != null && oldRef !== ref) { - if (isString(oldRef)) { - refs[oldRef] = null; - - if (hasOwn(setupState, oldRef)) { - setupState[oldRef] = null; - } - } else if (isRef(oldRef)) { - oldRef.value = null; - } - } - - if (isString(ref)) { - var doSet = function doSet() { - refs[ref] = value; - - if (hasOwn(setupState, ref)) { - setupState[ref] = value; - } - }; // #1789: for non-null values, set them after render - // null values means this is unmount and it should not overwrite another - // ref with the same key - - - if (value) { - doSet.id = -1; - queuePostRenderEffect(doSet, parentSuspense); - } else { - doSet(); - } - } else if (isRef(ref)) { - var _doSet = function _doSet() { - ref.value = value; - }; - - if (value) { - _doSet.id = -1; - queuePostRenderEffect(_doSet, parentSuspense); - } else { - _doSet(); - } - } else if (isFunction(ref)) { - callWithErrorHandling(ref, parentComponent, 12 - /* FUNCTION_REF */ - , [value, refs]); - } else { - warn('Invalid template ref type:', value, "(".concat(_typeof(value), ")")); - } -}; -/** +function createHydrationFunctions(rendererInternals){var mountComponent=rendererInternals.mt,patch=rendererInternals.p,_rendererInternals$o2=rendererInternals.o,patchProp=_rendererInternals$o2.patchProp,nextSibling=_rendererInternals$o2.nextSibling,parentNode=_rendererInternals$o2.parentNode,remove=_rendererInternals$o2.remove,insert=_rendererInternals$o2.insert,createComment=_rendererInternals$o2.createComment;var hydrate=function hydrate(vnode,container){if(!container.hasChildNodes()){warn("Attempting to hydrate existing markup but container is empty. "+"Performing full mount instead.");patch(null,vnode,container);return;}hasMismatch=false;hydrateNode(container.firstChild,vnode,null,null);flushPostFlushCbs();if(hasMismatch&&!false){// this error should show up in production +console.error("Hydration completed but contains mismatches.");}};var hydrateNode=function hydrateNode(node,vnode,parentComponent,parentSuspense){var optimized=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;var isFragmentStart=isComment(node)&&node.data==='[';var onMismatch=function onMismatch(){return handleMismatch(node,vnode,parentComponent,parentSuspense,isFragmentStart);};var type=vnode.type,ref=vnode.ref,shapeFlag=vnode.shapeFlag;var domType=node.nodeType;vnode.el=node;var nextNode=null;switch(type){case Text:if(domType!==3/* TEXT */){nextNode=onMismatch();}else{if(node.data!==vnode.children){hasMismatch=true;warn("Hydration text mismatch:"+"\n- Client: ".concat(JSON.stringify(node.data))+"\n- Server: ".concat(JSON.stringify(vnode.children)));node.data=vnode.children;}nextNode=nextSibling(node);}break;case Comment:if(domType!==8/* COMMENT */||isFragmentStart){nextNode=onMismatch();}else{nextNode=nextSibling(node);}break;case Static:if(domType!==1/* ELEMENT */){nextNode=onMismatch();}else{// determine anchor, adopt content +nextNode=node;// if the static vnode has its content stripped during build, +// adopt it from the server-rendered HTML. +var needToAdoptContent=!vnode.children.length;for(var i=0;i: ")+"server rendered element contains more child nodes than client vdom.");_hasWarned=true;}// The SSRed DOM contains more nodes than it should. Remove them. +var cur=next;next=next.nextSibling;remove(cur);}}else if(shapeFlag&8/* TEXT_CHILDREN */){if(el.textContent!==vnode.children){hasMismatch=true;warn("Hydration text content mismatch in <".concat(vnode.type,">:\n")+"- Client: ".concat(el.textContent,"\n")+"- Server: ".concat(vnode.children));el.textContent=vnode.children;}}}return el.nextSibling;};var hydrateChildren=function hydrateChildren(node,parentVNode,container,parentComponent,parentSuspense,optimized){optimized=optimized||!!parentVNode.dynamicChildren;var children=parentVNode.children;var l=children.length;var hasWarned=false;for(var i=0;i: ")+"server rendered element contains fewer child nodes than client vdom.");hasWarned=true;}// the SSRed DOM didn't contain enough nodes. Mount the missing ones. +patch(null,vnode,container,null,parentComponent,parentSuspense,isSVGContainer(container));}}return node;};var hydrateFragment=function hydrateFragment(node,vnode,parentComponent,parentSuspense,optimized){var container=parentNode(node);var next=hydrateChildren(nextSibling(node),vnode,container,parentComponent,parentSuspense,optimized);if(next&&isComment(next)&&next.data===']'){return nextSibling(vnode.anchor=next);}else{// fragment didn't hydrate successfully, since we didn't get a end anchor +// back. This should have led to node/children mismatch warnings. +hasMismatch=true;// since the anchor is missing, we need to create one and insert it +insert(vnode.anchor=createComment("]"),container,next);return next;}};var handleMismatch=function handleMismatch(node,vnode,parentComponent,parentSuspense,isFragment){hasMismatch=true;warn("Hydration node mismatch:\n- Client vnode:",vnode.type,"\n- Server rendered DOM:",node,node.nodeType===3/* TEXT */?"(text)":isComment(node)&&node.data==='['?"(start of fragment)":"");vnode.el=null;if(isFragment){// remove excessive fragment nodes +var end=locateClosingAsyncAnchor(node);while(true){var _next2=nextSibling(node);if(_next2&&_next2!==end){remove(_next2);}else{break;}}}var next=nextSibling(node);var container=parentNode(node);remove(node);patch(null,vnode,container,next,parentComponent,parentSuspense,isSVGContainer(container));return next;};var locateClosingAsyncAnchor=function locateClosingAsyncAnchor(node){var match=0;while(node){node=nextSibling(node);if(node&&isComment(node)){if(node.data==='[')match++;if(node.data===']'){if(match===0){return nextSibling(node);}else{match--;}}}}return node;};return[hydrate,hydrateNode];}var supported;var perf;function startMeasure(instance,type){if(instance.appContext.config.performance&&isSupported()){perf.mark("vue-".concat(type,"-").concat(instance.uid));}}function endMeasure(instance,type){if(instance.appContext.config.performance&&isSupported()){var startTag="vue-".concat(type,"-").concat(instance.uid);var endTag=startTag+":end";perf.mark(endTag);perf.measure("<".concat(formatComponentName(instance,instance.type),"> ").concat(type),startTag,endTag);perf.clearMarks(startTag);perf.clearMarks(endTag);}}function isSupported(){if(supported!==undefined){return supported;}/* eslint-disable no-restricted-globals */if(typeof window!=='undefined'&&window.performance){supported=true;perf=window.performance;}else{supported=false;}/* eslint-enable no-restricted-globals */return supported;}function createDevEffectOptions(instance){return{scheduler:queueJob,allowRecurse:true,onTrack:instance.rtc?function(e){return invokeArrayFns(instance.rtc,e);}:void 0,onTrigger:instance.rtg?function(e){return invokeArrayFns(instance.rtg,e);}:void 0};}var queuePostRenderEffect=queueEffectWithSuspense;var setRef=function setRef(rawRef,oldRawRef,parentComponent,parentSuspense,vnode){if(isArray(rawRef)){rawRef.forEach(function(r,i){return setRef(r,oldRawRef&&(isArray(oldRawRef)?oldRawRef[i]:oldRawRef),parentComponent,parentSuspense,vnode);});return;}var value;if(!vnode){value=null;}else{if(vnode.shapeFlag&4/* STATEFUL_COMPONENT */){value=vnode.component.proxy;}else{value=vnode.el;}}var owner=rawRef.i,ref=rawRef.r;if(!owner){warn("Missing ref owner context. ref cannot be used on hoisted vnodes. "+"A vnode with ref must be created inside the render function.");return;}var oldRef=oldRawRef&&oldRawRef.r;var refs=owner.refs===EMPTY_OBJ?owner.refs={}:owner.refs;var setupState=owner.setupState;// unset old ref +if(oldRef!=null&&oldRef!==ref){if(isString(oldRef)){refs[oldRef]=null;if(hasOwn(setupState,oldRef)){setupState[oldRef]=null;}}else if(isRef(oldRef)){oldRef.value=null;}}if(isString(ref)){var doSet=function doSet(){refs[ref]=value;if(hasOwn(setupState,ref)){setupState[ref]=value;}};// #1789: for non-null values, set them after render +// null values means this is unmount and it should not overwrite another +// ref with the same key +if(value){doSet.id=-1;queuePostRenderEffect(doSet,parentSuspense);}else{doSet();}}else if(isRef(ref)){var _doSet=function _doSet(){ref.value=value;};if(value){_doSet.id=-1;queuePostRenderEffect(_doSet,parentSuspense);}else{_doSet();}}else if(isFunction(ref)){callWithErrorHandling(ref,parentComponent,12/* FUNCTION_REF */,[value,refs]);}else{warn('Invalid template ref type:',value,"(".concat(_typeof(value),")"));}};/** * The createRenderer function accepts two generic arguments: * HostNode and HostElement, corresponding to Node and Element types in the * host environment. For example, for runtime-dom, HostNode would be the DOM @@ -5788,1436 +497,193 @@ var setRef = function setRef(rawRef, oldRawRef, parentComponent, parentSuspense, * ...nodeOps * }) * ``` - */ - - -function createRenderer(options) { - return baseCreateRenderer(options); -} // Separate API for creating hydration-enabled renderer. + */function createRenderer(options){return baseCreateRenderer(options);}// Separate API for creating hydration-enabled renderer. // Hydration logic is only used when calling this function, making it // tree-shakable. - - -function createHydrationRenderer(options) { - return baseCreateRenderer(options, createHydrationFunctions); -} // implementation - - -function baseCreateRenderer(options, createHydrationFns) { - var hostInsert = options.insert, - hostRemove = options.remove, - hostPatchProp = options.patchProp, - hostForcePatchProp = options.forcePatchProp, - hostCreateElement = options.createElement, - hostCreateText = options.createText, - hostCreateComment = options.createComment, - hostSetText = options.setText, - hostSetElementText = options.setElementText, - hostParentNode = options.parentNode, - hostNextSibling = options.nextSibling, - _options$setScopeId = options.setScopeId, - hostSetScopeId = _options$setScopeId === void 0 ? NOOP : _options$setScopeId, - hostCloneNode = options.cloneNode, - hostInsertStaticContent = options.insertStaticContent; // Note: functions inside this closure should use `const xxx = () => {}` - // style in order to prevent being inlined by minifiers. - - var patch = function patch(n1, n2, container) { - var anchor = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - var parentComponent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; - var parentSuspense = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null; - var isSVG = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false; - var optimized = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false; - - // patching & not same type, unmount old tree - if (n1 && !isSameVNodeType(n1, n2)) { - anchor = getNextHostNode(n1); - unmount(n1, parentComponent, parentSuspense, true); - n1 = null; - } - - if (n2.patchFlag === -2 - /* BAIL */ - ) { - optimized = false; - n2.dynamicChildren = null; - } - - var type = n2.type, - ref = n2.ref, - shapeFlag = n2.shapeFlag; - - switch (type) { - case Text: - processText(n1, n2, container, anchor); - break; - - case Comment: - processCommentNode(n1, n2, container, anchor); - break; - - case Static: - if (n1 == null) { - mountStaticNode(n2, container, anchor, isSVG); - } else { - patchStaticNode(n1, n2, container, isSVG); - } - - break; - - case Fragment: - processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized); - break; - - default: - if (shapeFlag & 1 - /* ELEMENT */ - ) { - processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized); - } else if (shapeFlag & 6 - /* COMPONENT */ - ) { - processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized); - } else if (shapeFlag & 64 - /* TELEPORT */ - ) { - type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals); - } else if (shapeFlag & 128 - /* SUSPENSE */ - ) { - type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals); - } else { - warn('Invalid VNode type:', type, "(".concat(_typeof(type), ")")); - } - - } // set ref - - - if (ref != null && parentComponent) { - setRef(ref, n1 && n1.ref, parentComponent, parentSuspense, n2); - } - }; - - var processText = function processText(n1, n2, container, anchor) { - if (n1 == null) { - hostInsert(n2.el = hostCreateText(n2.children), container, anchor); - } else { - var el = n2.el = n1.el; - - if (n2.children !== n1.children) { - hostSetText(el, n2.children); - } - } - }; - - var processCommentNode = function processCommentNode(n1, n2, container, anchor) { - if (n1 == null) { - hostInsert(n2.el = hostCreateComment(n2.children || ''), container, anchor); - } else { - // there's no support for dynamic comments - n2.el = n1.el; - } - }; - - var mountStaticNode = function mountStaticNode(n2, container, anchor, isSVG) { - var _hostInsertStaticCont = hostInsertStaticContent(n2.children, container, anchor, isSVG); - - var _hostInsertStaticCont2 = _slicedToArray(_hostInsertStaticCont, 2); - - n2.el = _hostInsertStaticCont2[0]; - n2.anchor = _hostInsertStaticCont2[1]; - }; - /** - * Dev / HMR only - */ - - - var patchStaticNode = function patchStaticNode(n1, n2, container, isSVG) { - // static nodes are only patched during dev for HMR - if (n2.children !== n1.children) { - var anchor = hostNextSibling(n1.anchor); // remove existing - - removeStaticNode(n1); - - var _hostInsertStaticCont3 = hostInsertStaticContent(n2.children, container, anchor, isSVG); - - var _hostInsertStaticCont4 = _slicedToArray(_hostInsertStaticCont3, 2); - - n2.el = _hostInsertStaticCont4[0]; - n2.anchor = _hostInsertStaticCont4[1]; - } else { - n2.el = n1.el; - n2.anchor = n1.anchor; - } - }; - /** - * Dev / HMR only - */ - - - var moveStaticNode = function moveStaticNode(vnode, container, anchor) { - var cur = vnode.el; - var end = vnode.anchor; - - while (cur && cur !== end) { - var next = hostNextSibling(cur); - hostInsert(cur, container, anchor); - cur = next; - } - - hostInsert(end, container, anchor); - }; - /** - * Dev / HMR only - */ - - - var removeStaticNode = function removeStaticNode(vnode) { - var cur = vnode.el; - - while (cur && cur !== vnode.anchor) { - var next = hostNextSibling(cur); - hostRemove(cur); - cur = next; - } - - hostRemove(vnode.anchor); - }; - - var processElement = function processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized) { - isSVG = isSVG || n2.type === 'svg'; - - if (n1 == null) { - mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized); - } else { - patchElement(n1, n2, parentComponent, parentSuspense, isSVG, optimized); - } - }; - - var mountElement = function mountElement(vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) { - var el; - var vnodeHook; - var type = vnode.type, - props = vnode.props, - shapeFlag = vnode.shapeFlag, - transition = vnode.transition, - scopeId = vnode.scopeId, - patchFlag = vnode.patchFlag, - dirs = vnode.dirs; - { - el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is); // mount children first, since some props may rely on child content - // being already rendered, e.g. `