| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280 | /*** @vue/reactivity v3.4.23* (c) 2018-present Yuxi (Evan) You and Vue contributors* @license MIT**//*! #__NO_SIDE_EFFECTS__ */// @__NO_SIDE_EFFECTS__function makeMap(str, expectsLowerCase) {  const set = new Set(str.split(","));  return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);}const NOOP = () => {};const extend = Object.assign;const hasOwnProperty$1 = Object.prototype.hasOwnProperty;const hasOwn = (val, key) => hasOwnProperty$1.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) => {  return toTypeString(value).slice(8, -1);};const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;const cacheStringFunction = (fn) => {  const cache = /* @__PURE__ */ Object.create(null);  return (str) => {    const hit = cache[str];    return hit || (cache[str] = fn(str));  };};const capitalize = cacheStringFunction((str) => {  return str.charAt(0).toUpperCase() + str.slice(1);});const hasChanged = (value, oldValue) => !Object.is(value, oldValue);const def = (obj, key, value) => {  Object.defineProperty(obj, key, {    configurable: true,    enumerable: false,    value  });};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;    }  }  get active() {    return this._active;  }  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);        }      }      if (!this.detached && this.parent && !fromParent) {        const last = this.parent.scopes.pop();        if (last && last !== this) {          this.parent.scopes[this.index] = last;          last.index = this.index;        }      }      this.parent = void 0;      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.`    );  }}let activeEffect;class ReactiveEffect {  constructor(fn, trigger, scheduler, scope) {    this.fn = fn;    this.trigger = trigger;    this.scheduler = scheduler;    this.active = true;    this.deps = [];    /**     * @internal     */    this._dirtyLevel = 4;    /**     * @internal     */    this._trackId = 0;    /**     * @internal     */    this._runnings = 0;    /**     * @internal     */    this._shouldSchedule = false;    /**     * @internal     */    this._depsLength = 0;    recordEffectScope(this, scope);  }  get dirty() {    if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {      this._dirtyLevel = 1;      pauseTracking();      for (let i = 0; i < this._depsLength; i++) {        const dep = this.deps[i];        if (dep.computed) {          triggerComputed(dep.computed);          if (this._dirtyLevel >= 4) {            break;          }        }      }      if (this._dirtyLevel === 1) {        this._dirtyLevel = 0;      }      resetTracking();    }    return this._dirtyLevel >= 4;  }  set dirty(v) {    this._dirtyLevel = v ? 4 : 0;  }  run() {    this._dirtyLevel = 0;    if (!this.active) {      return this.fn();    }    let lastShouldTrack = shouldTrack;    let lastEffect = activeEffect;    try {      shouldTrack = true;      activeEffect = this;      this._runnings++;      preCleanupEffect(this);      return this.fn();    } finally {      postCleanupEffect(this);      this._runnings--;      activeEffect = lastEffect;      shouldTrack = lastShouldTrack;    }  }  stop() {    var _a;    if (this.active) {      preCleanupEffect(this);      postCleanupEffect(this);      (_a = this.onStop) == null ? void 0 : _a.call(this);      this.active = false;    }  }}function triggerComputed(computed) {  return computed.value;}function preCleanupEffect(effect2) {  effect2._trackId++;  effect2._depsLength = 0;}function postCleanupEffect(effect2) {  if (effect2.deps.length > effect2._depsLength) {    for (let i = effect2._depsLength; i < effect2.deps.length; i++) {      cleanupDepEffect(effect2.deps[i], effect2);    }    effect2.deps.length = effect2._depsLength;  }}function cleanupDepEffect(dep, effect2) {  const trackId = dep.get(effect2);  if (trackId !== void 0 && effect2._trackId !== trackId) {    dep.delete(effect2);    if (dep.size === 0) {      dep.cleanup();    }  }}function effect(fn, options) {  if (fn.effect instanceof ReactiveEffect) {    fn = fn.effect.fn;  }  const _effect = new ReactiveEffect(fn, NOOP, () => {    if (_effect.dirty) {      _effect.run();    }  });  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;let pauseScheduleStack = 0;const trackStack = [];function pauseTracking() {  trackStack.push(shouldTrack);  shouldTrack = false;}function enableTracking() {  trackStack.push(shouldTrack);  shouldTrack = true;}function resetTracking() {  const last = trackStack.pop();  shouldTrack = last === void 0 ? true : last;}function pauseScheduling() {  pauseScheduleStack++;}function resetScheduling() {  pauseScheduleStack--;  while (!pauseScheduleStack && queueEffectSchedulers.length) {    queueEffectSchedulers.shift()();  }}function trackEffect(effect2, dep, debuggerEventExtraInfo) {  var _a;  if (dep.get(effect2) !== effect2._trackId) {    dep.set(effect2, effect2._trackId);    const oldDep = effect2.deps[effect2._depsLength];    if (oldDep !== dep) {      if (oldDep) {        cleanupDepEffect(oldDep, effect2);      }      effect2.deps[effect2._depsLength++] = dep;    } else {      effect2._depsLength++;    }    {      (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));    }  }}const queueEffectSchedulers = [];function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {  var _a;  pauseScheduling();  for (const effect2 of dep.keys()) {    let tracking;    if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {      effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);      effect2._dirtyLevel = dirtyLevel;    }    if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {      {        (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));      }      effect2.trigger();      if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {        effect2._shouldSchedule = false;        if (effect2.scheduler) {          queueEffectSchedulers.push(effect2.scheduler);        }      }    }  }  resetScheduling();}const createDep = (cleanup, computed) => {  const dep = /* @__PURE__ */ new Map();  dep.cleanup = cleanup;  dep.computed = computed;  return dep;};const targetMap = /* @__PURE__ */ new WeakMap();const ITERATE_KEY = Symbol("iterate" );const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate" );function track(target, type, key) {  if (shouldTrack && activeEffect) {    let depsMap = targetMap.get(target);    if (!depsMap) {      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());    }    let dep = depsMap.get(key);    if (!dep) {      depsMap.set(key, dep = createDep(() => depsMap.delete(key)));    }    trackEffect(      activeEffect,      dep,      {        target,        type,        key      }     );  }}function trigger(target, type, key, newValue, oldValue, oldTarget) {  const depsMap = targetMap.get(target);  if (!depsMap) {    return;  }  let deps = [];  if (type === "clear") {    deps = [...depsMap.values()];  } else if (key === "length" && isArray(target)) {    const newLength = Number(newValue);    depsMap.forEach((dep, key2) => {      if (key2 === "length" || !isSymbol(key2) && key2 >= newLength) {        deps.push(dep);      }    });  } else {    if (key !== void 0) {      deps.push(depsMap.get(key));    }    switch (type) {      case "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)) {          deps.push(depsMap.get("length"));        }        break;      case "delete":        if (!isArray(target)) {          deps.push(depsMap.get(ITERATE_KEY));          if (isMap(target)) {            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));          }        }        break;      case "set":        if (isMap(target)) {          deps.push(depsMap.get(ITERATE_KEY));        }        break;    }  }  pauseScheduling();  for (const dep of deps) {    if (dep) {      triggerEffects(        dep,        4,        {          target,          type,          key,          newValue,          oldValue,          oldTarget        }       );    }  }  resetScheduling();}function getDepFromReactive(object, key) {  var _a;  return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);}const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);const builtInSymbols = new Set(  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));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", i + "");      }      const res = arr[key](...args);      if (res === -1 || res === false) {        return arr[key](...args.map(toRaw));      } else {        return res;      }    };  });  ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {    instrumentations[key] = function(...args) {      pauseTracking();      pauseScheduling();      const res = toRaw(this)[key].apply(this, args);      resetScheduling();      resetTracking();      return res;    };  });  return instrumentations;}function hasOwnProperty(key) {  if (!isSymbol(key))    key = String(key);  const obj = toRaw(this);  track(obj, "has", key);  return obj.hasOwnProperty(key);}class BaseReactiveHandler {  constructor(_isReadonly = false, _isShallow = false) {    this._isReadonly = _isReadonly;    this._isShallow = _isShallow;  }  get(target, key, receiver) {    const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;    if (key === "__v_isReactive") {      return !isReadonly2;    } else if (key === "__v_isReadonly") {      return isReadonly2;    } else if (key === "__v_isShallow") {      return isShallow2;    } else if (key === "__v_raw") {      if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype      // this means the reciever is a user proxy of the reactive proxy      Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {        return target;      }      return;    }    const targetIsArray = isArray(target);    if (!isReadonly2) {      if (targetIsArray && hasOwn(arrayInstrumentations, key)) {        return Reflect.get(arrayInstrumentations, key, receiver);      }      if (key === "hasOwnProperty") {        return hasOwnProperty;      }    }    const res = Reflect.get(target, key, receiver);    if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {      return res;    }    if (!isReadonly2) {      track(target, "get", key);    }    if (isShallow2) {      return res;    }    if (isRef(res)) {      return targetIsArray && isIntegerKey(key) ? res : res.value;    }    if (isObject(res)) {      return isReadonly2 ? readonly(res) : reactive(res);    }    return res;  }}class MutableReactiveHandler extends BaseReactiveHandler {  constructor(isShallow2 = false) {    super(false, isShallow2);  }  set(target, key, value, receiver) {    let oldValue = target[key];    if (!this._isShallow) {      const isOldValueReadonly = isReadonly(oldValue);      if (!isShallow(value) && !isReadonly(value)) {        oldValue = toRaw(oldValue);        value = toRaw(value);      }      if (!isArray(target) && isRef(oldValue) && !isRef(value)) {        if (isOldValueReadonly) {          return false;        } else {          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);    if (target === toRaw(receiver)) {      if (!hadKey) {        trigger(target, "add", key, value);      } else if (hasChanged(value, oldValue)) {        trigger(target, "set", key, value, oldValue);      }    }    return result;  }  deleteProperty(target, key) {    const hadKey = hasOwn(target, key);    const oldValue = target[key];    const result = Reflect.deleteProperty(target, key);    if (result && hadKey) {      trigger(target, "delete", key, void 0, oldValue);    }    return result;  }  has(target, key) {    const result = Reflect.has(target, key);    if (!isSymbol(key) || !builtInSymbols.has(key)) {      track(target, "has", key);    }    return result;  }  ownKeys(target) {    track(      target,      "iterate",      isArray(target) ? "length" : ITERATE_KEY    );    return Reflect.ownKeys(target);  }}class ReadonlyReactiveHandler extends BaseReactiveHandler {  constructor(isShallow2 = false) {    super(true, isShallow2);  }  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 mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(  true);const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);const toShallow = (value) => value;const getProto = (v) => Reflect.getPrototypeOf(v);function get(target, key, isReadonly = false, isShallow = false) {  target = target["__v_raw"];  const rawTarget = toRaw(target);  const rawKey = toRaw(key);  if (!isReadonly) {    if (hasChanged(key, rawKey)) {      track(rawTarget, "get", key);    }    track(rawTarget, "get", rawKey);  }  const { has: has2 } = getProto(rawTarget);  const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;  if (has2.call(rawTarget, key)) {    return wrap(target.get(key));  } else if (has2.call(rawTarget, rawKey)) {    return wrap(target.get(rawKey));  } else if (target !== rawTarget) {    target.get(key);  }}function has(key, isReadonly = false) {  const target = this["__v_raw"];  const rawTarget = toRaw(target);  const rawKey = toRaw(key);  if (!isReadonly) {    if (hasChanged(key, rawKey)) {      track(rawTarget, "has", key);    }    track(rawTarget, "has", rawKey);  }  return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);}function size(target, isReadonly = false) {  target = target["__v_raw"];  !isReadonly && track(toRaw(target), "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", value, value);  }  return this;}function set(key, value) {  value = toRaw(value);  const target = toRaw(this);  const { has: has2, get: get2 } = getProto(target);  let hadKey = has2.call(target, key);  if (!hadKey) {    key = toRaw(key);    hadKey = has2.call(target, key);  } else {    checkIdentityKeys(target, has2, key);  }  const oldValue = get2.call(target, key);  target.set(key, value);  if (!hadKey) {    trigger(target, "add", key, value);  } else if (hasChanged(value, oldValue)) {    trigger(target, "set", key, value, oldValue);  }  return this;}function deleteEntry(key) {  const target = toRaw(this);  const { has: has2, get: get2 } = getProto(target);  let hadKey = has2.call(target, key);  if (!hadKey) {    key = toRaw(key);    hadKey = has2.call(target, key);  } else {    checkIdentityKeys(target, has2, key);  }  const oldValue = get2 ? get2.call(target, key) : void 0;  const result = target.delete(key);  if (hadKey) {    trigger(target, "delete", key, void 0, oldValue);  }  return result;}function clear() {  const target = toRaw(this);  const hadItems = target.size !== 0;  const oldTarget = isMap(target) ? new Map(target) : new Set(target) ;  const result = target.clear();  if (hadItems) {    trigger(target, "clear", void 0, void 0, oldTarget);  }  return result;}function createForEach(isReadonly, isShallow) {  return function forEach(callback, thisArg) {    const observed = this;    const target = observed["__v_raw"];    const rawTarget = toRaw(target);    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;    !isReadonly && track(rawTarget, "iterate", ITERATE_KEY);    return target.forEach((value, key) => {      return callback.call(thisArg, wrap(value), wrap(key), observed);    });  };}function createIterableMethod(method, isReadonly, isShallow) {  return function(...args) {    const target = this["__v_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",      isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY    );    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]}" ` : ``;      warn(        `${capitalize(type)} operation ${key}failed: target is readonly.`,        toRaw(this)      );    }    return type === "delete" ? false : type === "clear" ? void 0 : this;  };}function createInstrumentations() {  const mutableInstrumentations2 = {    get(key) {      return get(this, key);    },    get size() {      return size(this);    },    has,    add,    set,    delete: deleteEntry,    clear,    forEach: createForEach(false, false)  };  const shallowInstrumentations2 = {    get(key) {      return get(this, key, false, true);    },    get size() {      return size(this);    },    has,    add,    set,    delete: deleteEntry,    clear,    forEach: createForEach(false, true)  };  const readonlyInstrumentations2 = {    get(key) {      return get(this, key, true);    },    get size() {      return size(this, true);    },    has(key) {      return has.call(this, key, true);    },    add: createReadonlyMethod("add"),    set: createReadonlyMethod("set"),    delete: createReadonlyMethod("delete"),    clear: createReadonlyMethod("clear"),    forEach: createForEach(true, false)  };  const shallowReadonlyInstrumentations2 = {    get(key) {      return get(this, key, true, true);    },    get size() {      return size(this, true);    },    has(key) {      return has.call(this, key, true);    },    add: createReadonlyMethod("add"),    set: createReadonlyMethod("set"),    delete: createReadonlyMethod("delete"),    clear: createReadonlyMethod("clear"),    forEach: createForEach(true, true)  };  const iteratorMethods = [    "keys",    "values",    "entries",    Symbol.iterator  ];  iteratorMethods.forEach((method) => {    mutableInstrumentations2[method] = createIterableMethod(method, false, false);    readonlyInstrumentations2[method] = createIterableMethod(method, true, false);    shallowInstrumentations2[method] = createIterableMethod(method, false, true);    shallowReadonlyInstrumentations2[method] = createIterableMethod(      method,      true,      true    );  });  return [    mutableInstrumentations2,    readonlyInstrumentations2,    shallowInstrumentations2,    shallowReadonlyInstrumentations2  ];}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") {      return !isReadonly;    } else if (key === "__v_isReadonly") {      return isReadonly;    } else if (key === "__v_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, has2, key) {  const rawKey = toRaw(key);  if (rawKey !== key && has2.call(target, rawKey)) {    const type = toRawType(target);    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 = /* @__PURE__ */ new WeakMap();const shallowReactiveMap = /* @__PURE__ */ new WeakMap();const readonlyMap = /* @__PURE__ */ new WeakMap();const shallowReadonlyMap = /* @__PURE__ */ 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"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));}function reactive(target) {  if (isReadonly(target)) {    return target;  }  return createReactiveObject(    target,    false,    mutableHandlers,    mutableCollectionHandlers,    reactiveMap  );}function shallowReactive(target) {  return createReactiveObject(    target,    false,    shallowReactiveHandlers,    shallowCollectionHandlers,    shallowReactiveMap  );}function readonly(target) {  return createReactiveObject(    target,    true,    readonlyHandlers,    readonlyCollectionHandlers,    readonlyMap  );}function shallowReadonly(target) {  return createReactiveObject(    target,    true,    shallowReadonlyHandlers,    shallowReadonlyCollectionHandlers,    shallowReadonlyMap  );}function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {  if (!isObject(target)) {    {      warn(`value cannot be made reactive: ${String(target)}`);    }    return target;  }  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {    return target;  }  const existingProxy = proxyMap.get(target);  if (existingProxy) {    return existingProxy;  }  const targetType = getTargetType(target);  if (targetType === 0 /* INVALID */) {    return target;  }  const 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"]);  }  return !!(value && value["__v_isReactive"]);}function isReadonly(value) {  return !!(value && value["__v_isReadonly"]);}function isShallow(value) {  return !!(value && value["__v_isShallow"]);}function isProxy(value) {  return value ? !!value["__v_raw"] : false;}function toRaw(observed) {  const raw = observed && observed["__v_raw"];  return raw ? toRaw(raw) : observed;}function markRaw(value) {  if (Object.isExtensible(value)) {    def(value, "__v_skip", true);  }  return value;}const toReactive = (value) => isObject(value) ? reactive(value) : value;const toReadonly = (value) => isObject(value) ? readonly(value) : value;const COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided.  Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;class ComputedRefImpl {  constructor(getter, _setter, isReadonly, isSSR) {    this.getter = getter;    this._setter = _setter;    this.dep = void 0;    this.__v_isRef = true;    this["__v_isReadonly"] = false;    this.effect = new ReactiveEffect(      () => getter(this._value),      () => triggerRefValue(        this,        this.effect._dirtyLevel === 2 ? 2 : 3      )    );    this.effect.computed = this;    this.effect.active = this._cacheable = !isSSR;    this["__v_isReadonly"] = isReadonly;  }  get value() {    const self = toRaw(this);    if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {      triggerRefValue(self, 4);    }    trackRefValue(self);    if (self.effect._dirtyLevel >= 2) {      if (this._warnRecursive) {        warn(COMPUTED_SIDE_EFFECT_WARN, `getter: `, this.getter);      }      triggerRefValue(self, 2);    }    return self._value;  }  set value(newValue) {    this._setter(newValue);  }  // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x  get _dirty() {    return this.effect.dirty;  }  set _dirty(v) {    this.effect.dirty = v;  }  // #endregion}function computed(getterOrOptions, debugOptions, isSSR = false) {  let getter;  let setter;  const onlyGetter = isFunction(getterOrOptions);  if (onlyGetter) {    getter = getterOrOptions;    setter = () => {      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;}function trackRefValue(ref2) {  var _a;  if (shouldTrack && activeEffect) {    ref2 = toRaw(ref2);    trackEffect(      activeEffect,      (_a = ref2.dep) != null ? _a : ref2.dep = createDep(        () => ref2.dep = void 0,        ref2 instanceof ComputedRefImpl ? ref2 : void 0      ),      {        target: ref2,        type: "get",        key: "value"      }     );  }}function triggerRefValue(ref2, dirtyLevel = 4, newVal) {  ref2 = toRaw(ref2);  const dep = ref2.dep;  if (dep) {    triggerEffects(      dep,      dirtyLevel,      {        target: ref2,        type: "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 = void 0;    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, 4, newVal);    }  }}function triggerRef(ref2) {  triggerRefValue(ref2, 4, ref2.value );}function unref(ref2) {  return isRef(ref2) ? ref2.value : ref2;}function toValue(source) {  return isFunction(source) ? source() : unref(source);}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 = void 0;    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)) {    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] = propertyToRef(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 === void 0 ? this._defaultValue : val;  }  set value(newVal) {    this._object[this._key] = newVal;  }  get dep() {    return getDepFromReactive(toRaw(this._object), this._key);  }}class GetterRefImpl {  constructor(_getter) {    this._getter = _getter;    this.__v_isRef = true;    this.__v_isReadonly = true;  }  get value() {    return this._getter();  }}function toRef(source, key, defaultValue) {  if (isRef(source)) {    return source;  } else if (isFunction(source)) {    return new GetterRefImpl(source);  } else if (isObject(source) && arguments.length > 1) {    return propertyToRef(source, key, defaultValue);  } else {    return ref(source);  }}function propertyToRef(source, key, defaultValue) {  const val = source[key];  return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);}const deferredComputed = computed;const TrackOpTypes = {  "GET": "get",  "HAS": "has",  "ITERATE": "iterate"};const TriggerOpTypes = {  "SET": "set",  "ADD": "add",  "DELETE": "delete",  "CLEAR": "clear"};const ReactiveFlags = {  "SKIP": "__v_skip",  "IS_REACTIVE": "__v_isReactive",  "IS_READONLY": "__v_isReadonly",  "IS_SHALLOW": "__v_isShallow",  "RAW": "__v_raw"};export { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };
 |