| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345 | var VueReactivity = (function (exports) {  'use strict';  /**   * Make a map and return a function for checking if a key   * is in that map.   * IMPORTANT: all calls of this function must be prefixed with   * \/\*#\_\_PURE\_\_\*\/   * So that rollup can tree-shake them if necessary.   */  function makeMap(str, expectsLowerCase) {      const map = Object.create(null);      const list = str.split(',');      for (let i = 0; i < list.length; i++) {          map[list[i]] = true;      }      return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];  }  Object.freeze({})      ;  Object.freeze([]) ;  const extend = Object.assign;  const hasOwnProperty = Object.prototype.hasOwnProperty;  const hasOwn = (val, key) => hasOwnProperty.call(val, key);  const isArray = Array.isArray;  const isMap = (val) => toTypeString(val) === '[object Map]';  const isFunction = (val) => typeof val === 'function';  const isString = (val) => typeof val === 'string';  const isSymbol = (val) => typeof val === 'symbol';  const isObject = (val) => val !== null && typeof val === 'object';  const objectToString = Object.prototype.toString;  const toTypeString = (value) => objectToString.call(value);  const toRawType = (value) => {      // extract "RawType" from strings like "[object RawType]"      return toTypeString(value).slice(8, -1);  };  const isIntegerKey = (key) => isString(key) &&      key !== 'NaN' &&      key[0] !== '-' &&      '' + parseInt(key, 10) === key;  const cacheStringFunction = (fn) => {      const cache = Object.create(null);      return ((str) => {          const hit = cache[str];          return hit || (cache[str] = fn(str));      });  };  /**   * @private   */  const capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));  // compare whether a value has changed, accounting for NaN.  const hasChanged = (value, oldValue) => !Object.is(value, oldValue);  const def = (obj, key, value) => {      Object.defineProperty(obj, key, {          configurable: true,          enumerable: false,          value      });  };  const toNumber = (val) => {      const n = parseFloat(val);      return isNaN(n) ? val : n;  };  function warn(msg, ...args) {      console.warn(`[Vue warn] ${msg}`, ...args);  }  let activeEffectScope;  class EffectScope {      constructor(detached = false) {          this.detached = detached;          /**           * @internal           */          this.active = true;          /**           * @internal           */          this.effects = [];          /**           * @internal           */          this.cleanups = [];          this.parent = activeEffectScope;          if (!detached && activeEffectScope) {              this.index =                  (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;          }      }      run(fn) {          if (this.active) {              const currentEffectScope = activeEffectScope;              try {                  activeEffectScope = this;                  return fn();              }              finally {                  activeEffectScope = currentEffectScope;              }          }          else {              warn(`cannot run an inactive effect scope.`);          }      }      /**       * This should only be called on non-detached scopes       * @internal       */      on() {          activeEffectScope = this;      }      /**       * This should only be called on non-detached scopes       * @internal       */      off() {          activeEffectScope = this.parent;      }      stop(fromParent) {          if (this.active) {              let i, l;              for (i = 0, l = this.effects.length; i < l; i++) {                  this.effects[i].stop();              }              for (i = 0, l = this.cleanups.length; i < l; i++) {                  this.cleanups[i]();              }              if (this.scopes) {                  for (i = 0, l = this.scopes.length; i < l; i++) {                      this.scopes[i].stop(true);                  }              }              // nested scope, dereference from parent to avoid memory leaks              if (!this.detached && this.parent && !fromParent) {                  // optimized O(1) removal                  const last = this.parent.scopes.pop();                  if (last && last !== this) {                      this.parent.scopes[this.index] = last;                      last.index = this.index;                  }              }              this.parent = undefined;              this.active = false;          }      }  }  function effectScope(detached) {      return new EffectScope(detached);  }  function recordEffectScope(effect, scope = activeEffectScope) {      if (scope && scope.active) {          scope.effects.push(effect);      }  }  function getCurrentScope() {      return activeEffectScope;  }  function onScopeDispose(fn) {      if (activeEffectScope) {          activeEffectScope.cleanups.push(fn);      }      else {          warn(`onScopeDispose() is called when there is no active effect scope` +              ` to be associated with.`);      }  }  const createDep = (effects) => {      const dep = new Set(effects);      dep.w = 0;      dep.n = 0;      return dep;  };  const wasTracked = (dep) => (dep.w & trackOpBit) > 0;  const newTracked = (dep) => (dep.n & trackOpBit) > 0;  const initDepMarkers = ({ deps }) => {      if (deps.length) {          for (let i = 0; i < deps.length; i++) {              deps[i].w |= trackOpBit; // set was tracked          }      }  };  const finalizeDepMarkers = (effect) => {      const { deps } = effect;      if (deps.length) {          let ptr = 0;          for (let i = 0; i < deps.length; i++) {              const dep = deps[i];              if (wasTracked(dep) && !newTracked(dep)) {                  dep.delete(effect);              }              else {                  deps[ptr++] = dep;              }              // clear bits              dep.w &= ~trackOpBit;              dep.n &= ~trackOpBit;          }          deps.length = ptr;      }  };  const targetMap = new WeakMap();  // The number of effects currently being tracked recursively.  let effectTrackDepth = 0;  let trackOpBit = 1;  /**   * The bitwise track markers support at most 30 levels of recursion.   * This value is chosen to enable modern JS engines to use a SMI on all platforms.   * When recursion depth is greater, fall back to using a full cleanup.   */  const maxMarkerBits = 30;  let activeEffect;  const ITERATE_KEY = Symbol('iterate' );  const MAP_KEY_ITERATE_KEY = Symbol('Map key iterate' );  class ReactiveEffect {      constructor(fn, scheduler = null, scope) {          this.fn = fn;          this.scheduler = scheduler;          this.active = true;          this.deps = [];          this.parent = undefined;          recordEffectScope(this, scope);      }      run() {          if (!this.active) {              return this.fn();          }          let parent = activeEffect;          let lastShouldTrack = shouldTrack;          while (parent) {              if (parent === this) {                  return;              }              parent = parent.parent;          }          try {              this.parent = activeEffect;              activeEffect = this;              shouldTrack = true;              trackOpBit = 1 << ++effectTrackDepth;              if (effectTrackDepth <= maxMarkerBits) {                  initDepMarkers(this);              }              else {                  cleanupEffect(this);              }              return this.fn();          }          finally {              if (effectTrackDepth <= maxMarkerBits) {                  finalizeDepMarkers(this);              }              trackOpBit = 1 << --effectTrackDepth;              activeEffect = this.parent;              shouldTrack = lastShouldTrack;              this.parent = undefined;              if (this.deferStop) {                  this.stop();              }          }      }      stop() {          // stopped while running itself - defer the cleanup          if (activeEffect === this) {              this.deferStop = true;          }          else if (this.active) {              cleanupEffect(this);              if (this.onStop) {                  this.onStop();              }              this.active = false;          }      }  }  function cleanupEffect(effect) {      const { deps } = effect;      if (deps.length) {          for (let i = 0; i < deps.length; i++) {              deps[i].delete(effect);          }          deps.length = 0;      }  }  function effect(fn, options) {      if (fn.effect) {          fn = fn.effect.fn;      }      const _effect = new ReactiveEffect(fn);      if (options) {          extend(_effect, options);          if (options.scope)              recordEffectScope(_effect, options.scope);      }      if (!options || !options.lazy) {          _effect.run();      }      const runner = _effect.run.bind(_effect);      runner.effect = _effect;      return runner;  }  function stop(runner) {      runner.effect.stop();  }  let shouldTrack = true;  const trackStack = [];  function pauseTracking() {      trackStack.push(shouldTrack);      shouldTrack = false;  }  function enableTracking() {      trackStack.push(shouldTrack);      shouldTrack = true;  }  function resetTracking() {      const last = trackStack.pop();      shouldTrack = last === undefined ? true : last;  }  function track(target, type, key) {      if (shouldTrack && activeEffect) {          let depsMap = targetMap.get(target);          if (!depsMap) {              targetMap.set(target, (depsMap = new Map()));          }          let dep = depsMap.get(key);          if (!dep) {              depsMap.set(key, (dep = createDep()));          }          const eventInfo = { effect: activeEffect, target, type, key }              ;          trackEffects(dep, eventInfo);      }  }  function trackEffects(dep, debuggerEventExtraInfo) {      let shouldTrack = false;      if (effectTrackDepth <= maxMarkerBits) {          if (!newTracked(dep)) {              dep.n |= trackOpBit; // set newly tracked              shouldTrack = !wasTracked(dep);          }      }      else {          // Full cleanup mode.          shouldTrack = !dep.has(activeEffect);      }      if (shouldTrack) {          dep.add(activeEffect);          activeEffect.deps.push(dep);          if (activeEffect.onTrack) {              activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));          }      }  }  function trigger(target, type, key, newValue, oldValue, oldTarget) {      const depsMap = targetMap.get(target);      if (!depsMap) {          // never been tracked          return;      }      let deps = [];      if (type === "clear" /* TriggerOpTypes.CLEAR */) {          // collection being cleared          // trigger all effects for target          deps = [...depsMap.values()];      }      else if (key === 'length' && isArray(target)) {          const newLength = toNumber(newValue);          depsMap.forEach((dep, key) => {              if (key === 'length' || key >= newLength) {                  deps.push(dep);              }          });      }      else {          // schedule runs for SET | ADD | DELETE          if (key !== void 0) {              deps.push(depsMap.get(key));          }          // also run for iteration key on ADD | DELETE | Map.SET          switch (type) {              case "add" /* TriggerOpTypes.ADD */:                  if (!isArray(target)) {                      deps.push(depsMap.get(ITERATE_KEY));                      if (isMap(target)) {                          deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));                      }                  }                  else if (isIntegerKey(key)) {                      // new index added to array -> length changes                      deps.push(depsMap.get('length'));                  }                  break;              case "delete" /* TriggerOpTypes.DELETE */:                  if (!isArray(target)) {                      deps.push(depsMap.get(ITERATE_KEY));                      if (isMap(target)) {                          deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));                      }                  }                  break;              case "set" /* TriggerOpTypes.SET */:                  if (isMap(target)) {                      deps.push(depsMap.get(ITERATE_KEY));                  }                  break;          }      }      const eventInfo = { target, type, key, newValue, oldValue, oldTarget }          ;      if (deps.length === 1) {          if (deps[0]) {              {                  triggerEffects(deps[0], eventInfo);              }          }      }      else {          const effects = [];          for (const dep of deps) {              if (dep) {                  effects.push(...dep);              }          }          {              triggerEffects(createDep(effects), eventInfo);          }      }  }  function triggerEffects(dep, debuggerEventExtraInfo) {      // spread into array for stabilization      const effects = isArray(dep) ? dep : [...dep];      for (const effect of effects) {          if (effect.computed) {              triggerEffect(effect, debuggerEventExtraInfo);          }      }      for (const effect of effects) {          if (!effect.computed) {              triggerEffect(effect, debuggerEventExtraInfo);          }      }  }  function triggerEffect(effect, debuggerEventExtraInfo) {      if (effect !== activeEffect || effect.allowRecurse) {          if (effect.onTrigger) {              effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));          }          if (effect.scheduler) {              effect.scheduler();          }          else {              effect.run();          }      }  }  const isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);  const builtInSymbols = new Set(  /*#__PURE__*/  Object.getOwnPropertyNames(Symbol)      // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'      // but accessing them on Symbol leads to TypeError because Symbol is a strict mode      // function      .filter(key => key !== 'arguments' && key !== 'caller')      .map(key => Symbol[key])      .filter(isSymbol));  const get = /*#__PURE__*/ createGetter();  const shallowGet = /*#__PURE__*/ createGetter(false, true);  const readonlyGet = /*#__PURE__*/ createGetter(true);  const shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);  const arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();  function createArrayInstrumentations() {      const instrumentations = {};      ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {          instrumentations[key] = function (...args) {              const arr = toRaw(this);              for (let i = 0, l = this.length; i < l; i++) {                  track(arr, "get" /* TrackOpTypes.GET */, i + '');              }              // we run the method using the original args first (which may be reactive)              const res = arr[key](...args);              if (res === -1 || res === false) {                  // if that didn't work, run it again using raw values.                  return arr[key](...args.map(toRaw));              }              else {                  return res;              }          };      });      ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {          instrumentations[key] = function (...args) {              pauseTracking();              const res = toRaw(this)[key].apply(this, args);              resetTracking();              return res;          };      });      return instrumentations;  }  function createGetter(isReadonly = false, shallow = false) {      return function get(target, key, receiver) {          if (key === "__v_isReactive" /* ReactiveFlags.IS_REACTIVE */) {              return !isReadonly;          }          else if (key === "__v_isReadonly" /* ReactiveFlags.IS_READONLY */) {              return isReadonly;          }          else if (key === "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */) {              return shallow;          }          else if (key === "__v_raw" /* ReactiveFlags.RAW */ &&              receiver ===                  (isReadonly                      ? shallow                          ? shallowReadonlyMap                          : readonlyMap                      : shallow                          ? shallowReactiveMap                          : reactiveMap).get(target)) {              return target;          }          const targetIsArray = isArray(target);          if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {              return Reflect.get(arrayInstrumentations, key, receiver);          }          const res = Reflect.get(target, key, receiver);          if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {              return res;          }          if (!isReadonly) {              track(target, "get" /* TrackOpTypes.GET */, key);          }          if (shallow) {              return res;          }          if (isRef(res)) {              // ref unwrapping - skip unwrap for Array + integer key.              return targetIsArray && isIntegerKey(key) ? res : res.value;          }          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;      };  }  const set = /*#__PURE__*/ createSetter();  const shallowSet = /*#__PURE__*/ createSetter(true);  function createSetter(shallow = false) {      return function set(target, key, value, receiver) {          let oldValue = target[key];          if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {              return false;          }          if (!shallow) {              if (!isShallow(value) && !isReadonly(value)) {                  oldValue = toRaw(oldValue);                  value = toRaw(value);              }              if (!isArray(target) && isRef(oldValue) && !isRef(value)) {                  oldValue.value = value;                  return true;              }          }          const hadKey = isArray(target) && isIntegerKey(key)              ? Number(key) < target.length              : hasOwn(target, key);          const 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" /* TriggerOpTypes.ADD */, key, value);              }              else if (hasChanged(value, oldValue)) {                  trigger(target, "set" /* TriggerOpTypes.SET */, key, value, oldValue);              }          }          return result;      };  }  function deleteProperty(target, key) {      const hadKey = hasOwn(target, key);      const oldValue = target[key];      const result = Reflect.deleteProperty(target, key);      if (result && hadKey) {          trigger(target, "delete" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);      }      return result;  }  function has(target, key) {      const result = Reflect.has(target, key);      if (!isSymbol(key) || !builtInSymbols.has(key)) {          track(target, "has" /* TrackOpTypes.HAS */, key);      }      return result;  }  function ownKeys(target) {      track(target, "iterate" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);      return Reflect.ownKeys(target);  }  const mutableHandlers = {      get,      set,      deleteProperty,      has,      ownKeys  };  const readonlyHandlers = {      get: readonlyGet,      set(target, key) {          {              warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target);          }          return true;      },      deleteProperty(target, key) {          {              warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target);          }          return true;      }  };  const shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {      get: shallowGet,      set: shallowSet  });  // Props handlers are special in the sense that it should not unwrap top-level  // refs (in order to allow refs to be explicitly passed down), but should  // retain the reactivity of the normal readonly object.  const shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {      get: shallowReadonlyGet  });  const toShallow = (value) => value;  const getProto = (v) => Reflect.getPrototypeOf(v);  function get$1(target, key, isReadonly = false, isShallow = false) {      // #1772: readonly(reactive(Map)) should return readonly + reactive version      // of the value      target = target["__v_raw" /* ReactiveFlags.RAW */];      const rawTarget = toRaw(target);      const rawKey = toRaw(key);      if (!isReadonly) {          if (key !== rawKey) {              track(rawTarget, "get" /* TrackOpTypes.GET */, key);          }          track(rawTarget, "get" /* TrackOpTypes.GET */, rawKey);      }      const { has } = getProto(rawTarget);      const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;      if (has.call(rawTarget, key)) {          return wrap(target.get(key));      }      else if (has.call(rawTarget, rawKey)) {          return wrap(target.get(rawKey));      }      else if (target !== rawTarget) {          // #3602 readonly(reactive(Map))          // ensure that the nested reactive `Map` can do tracking for itself          target.get(key);      }  }  function has$1(key, isReadonly = false) {      const target = this["__v_raw" /* ReactiveFlags.RAW */];      const rawTarget = toRaw(target);      const rawKey = toRaw(key);      if (!isReadonly) {          if (key !== rawKey) {              track(rawTarget, "has" /* TrackOpTypes.HAS */, key);          }          track(rawTarget, "has" /* TrackOpTypes.HAS */, rawKey);      }      return key === rawKey          ? target.has(key)          : target.has(key) || target.has(rawKey);  }  function size(target, isReadonly = false) {      target = target["__v_raw" /* ReactiveFlags.RAW */];      !isReadonly && track(toRaw(target), "iterate" /* TrackOpTypes.ITERATE */, ITERATE_KEY);      return Reflect.get(target, 'size', target);  }  function add(value) {      value = toRaw(value);      const target = toRaw(this);      const proto = getProto(target);      const hadKey = proto.has.call(target, value);      if (!hadKey) {          target.add(value);          trigger(target, "add" /* TriggerOpTypes.ADD */, value, value);      }      return this;  }  function set$1(key, value) {      value = toRaw(value);      const target = toRaw(this);      const { has, get } = getProto(target);      let hadKey = has.call(target, key);      if (!hadKey) {          key = toRaw(key);          hadKey = has.call(target, key);      }      else {          checkIdentityKeys(target, has, key);      }      const oldValue = get.call(target, key);      target.set(key, value);      if (!hadKey) {          trigger(target, "add" /* TriggerOpTypes.ADD */, key, value);      }      else if (hasChanged(value, oldValue)) {          trigger(target, "set" /* TriggerOpTypes.SET */, key, value, oldValue);      }      return this;  }  function deleteEntry(key) {      const target = toRaw(this);      const { has, get } = getProto(target);      let hadKey = has.call(target, key);      if (!hadKey) {          key = toRaw(key);          hadKey = has.call(target, key);      }      else {          checkIdentityKeys(target, has, key);      }      const oldValue = get ? get.call(target, key) : undefined;      // forward the operation before queueing reactions      const result = target.delete(key);      if (hadKey) {          trigger(target, "delete" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);      }      return result;  }  function clear() {      const target = toRaw(this);      const hadItems = target.size !== 0;      const oldTarget = isMap(target)              ? new Map(target)              : new Set(target)          ;      // forward the operation before queueing reactions      const result = target.clear();      if (hadItems) {          trigger(target, "clear" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);      }      return result;  }  function createForEach(isReadonly, isShallow) {      return function forEach(callback, thisArg) {          const observed = this;          const target = observed["__v_raw" /* ReactiveFlags.RAW */];          const rawTarget = toRaw(target);          const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;          !isReadonly && track(rawTarget, "iterate" /* TrackOpTypes.ITERATE */, ITERATE_KEY);          return target.forEach((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 (...args) {          const target = this["__v_raw" /* ReactiveFlags.RAW */];          const rawTarget = toRaw(target);          const targetIsMap = isMap(rawTarget);          const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);          const isKeyOnly = method === 'keys' && targetIsMap;          const innerIterator = target[method](...args);          const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;          !isReadonly &&              track(rawTarget, "iterate" /* TrackOpTypes.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 {              // iterator protocol              next() {                  const { value, done } = innerIterator.next();                  return done                      ? { value, done }                      : {                          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),                          done                      };              },              // iterable protocol              [Symbol.iterator]() {                  return this;              }          };      };  }  function createReadonlyMethod(type) {      return function (...args) {          {              const key = args[0] ? `on key "${args[0]}" ` : ``;              console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));          }          return type === "delete" /* TriggerOpTypes.DELETE */ ? false : this;      };  }  function createInstrumentations() {      const mutableInstrumentations = {          get(key) {              return get$1(this, key);          },          get size() {              return size(this);          },          has: has$1,          add,          set: set$1,          delete: deleteEntry,          clear,          forEach: createForEach(false, false)      };      const shallowInstrumentations = {          get(key) {              return get$1(this, key, false, true);          },          get size() {              return size(this);          },          has: has$1,          add,          set: set$1,          delete: deleteEntry,          clear,          forEach: createForEach(false, true)      };      const readonlyInstrumentations = {          get(key) {              return get$1(this, key, true);          },          get size() {              return size(this, true);          },          has(key) {              return has$1.call(this, key, true);          },          add: createReadonlyMethod("add" /* TriggerOpTypes.ADD */),          set: createReadonlyMethod("set" /* TriggerOpTypes.SET */),          delete: createReadonlyMethod("delete" /* TriggerOpTypes.DELETE */),          clear: createReadonlyMethod("clear" /* TriggerOpTypes.CLEAR */),          forEach: createForEach(true, false)      };      const shallowReadonlyInstrumentations = {          get(key) {              return get$1(this, key, true, true);          },          get size() {              return size(this, true);          },          has(key) {              return has$1.call(this, key, true);          },          add: createReadonlyMethod("add" /* TriggerOpTypes.ADD */),          set: createReadonlyMethod("set" /* TriggerOpTypes.SET */),          delete: createReadonlyMethod("delete" /* TriggerOpTypes.DELETE */),          clear: createReadonlyMethod("clear" /* TriggerOpTypes.CLEAR */),          forEach: createForEach(true, true)      };      const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];      iteratorMethods.forEach(method => {          mutableInstrumentations[method] = createIterableMethod(method, false, false);          readonlyInstrumentations[method] = createIterableMethod(method, true, false);          shallowInstrumentations[method] = createIterableMethod(method, false, true);          shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);      });      return [          mutableInstrumentations,          readonlyInstrumentations,          shallowInstrumentations,          shallowReadonlyInstrumentations      ];  }  const [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();  function createInstrumentationGetter(isReadonly, shallow) {      const instrumentations = shallow          ? isReadonly              ? shallowReadonlyInstrumentations              : shallowInstrumentations          : isReadonly              ? readonlyInstrumentations              : mutableInstrumentations;      return (target, key, receiver) => {          if (key === "__v_isReactive" /* ReactiveFlags.IS_REACTIVE */) {              return !isReadonly;          }          else if (key === "__v_isReadonly" /* ReactiveFlags.IS_READONLY */) {              return isReadonly;          }          else if (key === "__v_raw" /* ReactiveFlags.RAW */) {              return target;          }          return Reflect.get(hasOwn(instrumentations, key) && key in target              ? instrumentations              : target, key, receiver);      };  }  const mutableCollectionHandlers = {      get: /*#__PURE__*/ createInstrumentationGetter(false, false)  };  const shallowCollectionHandlers = {      get: /*#__PURE__*/ createInstrumentationGetter(false, true)  };  const readonlyCollectionHandlers = {      get: /*#__PURE__*/ createInstrumentationGetter(true, false)  };  const shallowReadonlyCollectionHandlers = {      get: /*#__PURE__*/ createInstrumentationGetter(true, true)  };  function checkIdentityKeys(target, has, key) {      const rawKey = toRaw(key);      if (rawKey !== key && has.call(target, rawKey)) {          const type = toRawType(target);          console.warn(`Reactive ${type} contains both the raw and reactive ` +              `versions of the same object${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.`);      }  }  const reactiveMap = new WeakMap();  const shallowReactiveMap = new WeakMap();  const readonlyMap = new WeakMap();  const shallowReadonlyMap = new WeakMap();  function targetTypeMap(rawType) {      switch (rawType) {          case 'Object':          case 'Array':              return 1 /* TargetType.COMMON */;          case 'Map':          case 'Set':          case 'WeakMap':          case 'WeakSet':              return 2 /* TargetType.COLLECTION */;          default:              return 0 /* TargetType.INVALID */;      }  }  function getTargetType(value) {      return value["__v_skip" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)          ? 0 /* TargetType.INVALID */          : targetTypeMap(toRawType(value));  }  function reactive(target) {      // if trying to observe a readonly proxy, return the readonly version.      if (isReadonly(target)) {          return target;      }      return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);  }  /**   * Return a shallowly-reactive copy of the original object, where only the root   * level properties are reactive. It also does not auto-unwrap refs (even at the   * root level).   */  function shallowReactive(target) {      return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);  }  /**   * Creates a readonly copy of the original object. Note the returned copy is not   * made reactive, but `readonly` can be called on an already reactive object.   */  function readonly(target) {      return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);  }  /**   * Returns 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, shallowReadonlyCollectionHandlers, shallowReadonlyMap);  }  function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {      if (!isObject(target)) {          {              console.warn(`value cannot be made reactive: ${String(target)}`);          }          return target;      }      // target is already a Proxy, return it.      // exception: calling readonly() on a reactive object      if (target["__v_raw" /* ReactiveFlags.RAW */] &&          !(isReadonly && target["__v_isReactive" /* ReactiveFlags.IS_REACTIVE */])) {          return target;      }      // target already has corresponding Proxy      const existingProxy = proxyMap.get(target);      if (existingProxy) {          return existingProxy;      }      // only specific value types can be observed.      const targetType = getTargetType(target);      if (targetType === 0 /* TargetType.INVALID */) {          return target;      }      const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);      proxyMap.set(target, proxy);      return proxy;  }  function isReactive(value) {      if (isReadonly(value)) {          return isReactive(value["__v_raw" /* ReactiveFlags.RAW */]);      }      return !!(value && value["__v_isReactive" /* ReactiveFlags.IS_REACTIVE */]);  }  function isReadonly(value) {      return !!(value && value["__v_isReadonly" /* ReactiveFlags.IS_READONLY */]);  }  function isShallow(value) {      return !!(value && value["__v_isShallow" /* ReactiveFlags.IS_SHALLOW */]);  }  function isProxy(value) {      return isReactive(value) || isReadonly(value);  }  function toRaw(observed) {      const raw = observed && observed["__v_raw" /* ReactiveFlags.RAW */];      return raw ? toRaw(raw) : observed;  }  function markRaw(value) {      def(value, "__v_skip" /* ReactiveFlags.SKIP */, true);      return value;  }  const toReactive = (value) => isObject(value) ? reactive(value) : value;  const toReadonly = (value) => isObject(value) ? readonly(value) : value;  function trackRefValue(ref) {      if (shouldTrack && activeEffect) {          ref = toRaw(ref);          {              trackEffects(ref.dep || (ref.dep = createDep()), {                  target: ref,                  type: "get" /* TrackOpTypes.GET */,                  key: 'value'              });          }      }  }  function triggerRefValue(ref, newVal) {      ref = toRaw(ref);      if (ref.dep) {          {              triggerEffects(ref.dep, {                  target: ref,                  type: "set" /* TriggerOpTypes.SET */,                  key: 'value',                  newValue: newVal              });          }      }  }  function isRef(r) {      return !!(r && r.__v_isRef === true);  }  function ref(value) {      return createRef(value, false);  }  function shallowRef(value) {      return createRef(value, true);  }  function createRef(rawValue, shallow) {      if (isRef(rawValue)) {          return rawValue;      }      return new RefImpl(rawValue, shallow);  }  class RefImpl {      constructor(value, __v_isShallow) {          this.__v_isShallow = __v_isShallow;          this.dep = undefined;          this.__v_isRef = true;          this._rawValue = __v_isShallow ? value : toRaw(value);          this._value = __v_isShallow ? value : toReactive(value);      }      get value() {          trackRefValue(this);          return this._value;      }      set value(newVal) {          const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);          newVal = useDirectValue ? newVal : toRaw(newVal);          if (hasChanged(newVal, this._rawValue)) {              this._rawValue = newVal;              this._value = useDirectValue ? newVal : toReactive(newVal);              triggerRefValue(this, newVal);          }      }  }  function triggerRef(ref) {      triggerRefValue(ref, ref.value );  }  function unref(ref) {      return isRef(ref) ? ref.value : ref;  }  const shallowUnwrapHandlers = {      get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),      set: (target, key, value, receiver) => {          const 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);  }  class CustomRefImpl {      constructor(factory) {          this.dep = undefined;          this.__v_isRef = true;          const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));          this._get = get;          this._set = set;      }      get value() {          return this._get();      }      set value(newVal) {          this._set(newVal);      }  }  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.`);      }      const ret = isArray(object) ? new Array(object.length) : {};      for (const key in object) {          ret[key] = toRef(object, key);      }      return ret;  }  class ObjectRefImpl {      constructor(_object, _key, _defaultValue) {          this._object = _object;          this._key = _key;          this._defaultValue = _defaultValue;          this.__v_isRef = true;      }      get value() {          const val = this._object[this._key];          return val === undefined ? this._defaultValue : val;      }      set value(newVal) {          this._object[this._key] = newVal;      }  }  function toRef(object, key, defaultValue) {      const val = object[key];      return isRef(val)          ? val          : new ObjectRefImpl(object, key, defaultValue);  }  var _a;  class ComputedRefImpl {      constructor(getter, _setter, isReadonly, isSSR) {          this._setter = _setter;          this.dep = undefined;          this.__v_isRef = true;          this[_a] = false;          this._dirty = true;          this.effect = new ReactiveEffect(getter, () => {              if (!this._dirty) {                  this._dirty = true;                  triggerRefValue(this);              }          });          this.effect.computed = this;          this.effect.active = this._cacheable = !isSSR;          this["__v_isReadonly" /* ReactiveFlags.IS_READONLY */] = isReadonly;      }      get value() {          // the computed ref may get wrapped by other proxies e.g. readonly() #3376          const self = toRaw(this);          trackRefValue(self);          if (self._dirty || !self._cacheable) {              self._dirty = false;              self._value = self.effect.run();          }          return self._value;      }      set value(newValue) {          this._setter(newValue);      }  }  _a = "__v_isReadonly" /* ReactiveFlags.IS_READONLY */;  function computed(getterOrOptions, debugOptions, isSSR = false) {      let getter;      let setter;      const onlyGetter = isFunction(getterOrOptions);      if (onlyGetter) {          getter = getterOrOptions;          setter = () => {                  console.warn('Write operation failed: computed value is readonly');              }              ;      }      else {          getter = getterOrOptions.get;          setter = getterOrOptions.set;      }      const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);      if (debugOptions && !isSSR) {          cRef.effect.onTrack = debugOptions.onTrack;          cRef.effect.onTrigger = debugOptions.onTrigger;      }      return cRef;  }  var _a$1;  const tick = /*#__PURE__*/ Promise.resolve();  const queue = [];  let queued = false;  const scheduler = (fn) => {      queue.push(fn);      if (!queued) {          queued = true;          tick.then(flush);      }  };  const flush = () => {      for (let i = 0; i < queue.length; i++) {          queue[i]();      }      queue.length = 0;      queued = false;  };  class DeferredComputedRefImpl {      constructor(getter) {          this.dep = undefined;          this._dirty = true;          this.__v_isRef = true;          this[_a$1] = true;          let compareTarget;          let hasCompareTarget = false;          let scheduled = false;          this.effect = new ReactiveEffect(getter, (computedTrigger) => {              if (this.dep) {                  if (computedTrigger) {                      compareTarget = this._value;                      hasCompareTarget = true;                  }                  else if (!scheduled) {                      const valueToCompare = hasCompareTarget ? compareTarget : this._value;                      scheduled = true;                      hasCompareTarget = false;                      scheduler(() => {                          if (this.effect.active && this._get() !== valueToCompare) {                              triggerRefValue(this);                          }                          scheduled = false;                      });                  }                  // chained upstream computeds are notified synchronously to ensure                  // value invalidation in case of sync access; normal effects are                  // deferred to be triggered in scheduler.                  for (const e of this.dep) {                      if (e.computed instanceof DeferredComputedRefImpl) {                          e.scheduler(true /* computedTrigger */);                      }                  }              }              this._dirty = true;          });          this.effect.computed = this;      }      _get() {          if (this._dirty) {              this._dirty = false;              return (this._value = this.effect.run());          }          return this._value;      }      get value() {          trackRefValue(this);          // the computed ref may get wrapped by other proxies e.g. readonly() #3376          return toRaw(this)._get();      }  }  _a$1 = "__v_isReadonly" /* ReactiveFlags.IS_READONLY */;  function deferredComputed(getter) {      return new DeferredComputedRefImpl(getter);  }  exports.EffectScope = EffectScope;  exports.ITERATE_KEY = ITERATE_KEY;  exports.ReactiveEffect = ReactiveEffect;  exports.computed = computed;  exports.customRef = customRef;  exports.deferredComputed = deferredComputed;  exports.effect = effect;  exports.effectScope = effectScope;  exports.enableTracking = enableTracking;  exports.getCurrentScope = getCurrentScope;  exports.isProxy = isProxy;  exports.isReactive = isReactive;  exports.isReadonly = isReadonly;  exports.isRef = isRef;  exports.isShallow = isShallow;  exports.markRaw = markRaw;  exports.onScopeDispose = onScopeDispose;  exports.pauseTracking = pauseTracking;  exports.proxyRefs = proxyRefs;  exports.reactive = reactive;  exports.readonly = readonly;  exports.ref = ref;  exports.resetTracking = resetTracking;  exports.shallowReactive = shallowReactive;  exports.shallowReadonly = shallowReadonly;  exports.shallowRef = shallowRef;  exports.stop = stop;  exports.toRaw = toRaw;  exports.toRef = toRef;  exports.toRefs = toRefs;  exports.track = track;  exports.trigger = trigger;  exports.triggerRef = triggerRef;  exports.unref = unref;  Object.defineProperty(exports, '__esModule', { value: true });  return exports;}({}));
 |