@vue/runtime-dom 3.2.37 → 3.2.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -641,7 +641,7 @@ var VueRuntimeDOM = (function (exports) {
641
641
  return;
642
642
  }
643
643
  let deps = [];
644
- if (type === "clear" /* CLEAR */) {
644
+ if (type === "clear" /* TriggerOpTypes.CLEAR */) {
645
645
  // collection being cleared
646
646
  // trigger all effects for target
647
647
  deps = [...depsMap.values()];
@@ -660,7 +660,7 @@ var VueRuntimeDOM = (function (exports) {
660
660
  }
661
661
  // also run for iteration key on ADD | DELETE | Map.SET
662
662
  switch (type) {
663
- case "add" /* ADD */:
663
+ case "add" /* TriggerOpTypes.ADD */:
664
664
  if (!isArray(target)) {
665
665
  deps.push(depsMap.get(ITERATE_KEY));
666
666
  if (isMap(target)) {
@@ -672,7 +672,7 @@ var VueRuntimeDOM = (function (exports) {
672
672
  deps.push(depsMap.get('length'));
673
673
  }
674
674
  break;
675
- case "delete" /* DELETE */:
675
+ case "delete" /* TriggerOpTypes.DELETE */:
676
676
  if (!isArray(target)) {
677
677
  deps.push(depsMap.get(ITERATE_KEY));
678
678
  if (isMap(target)) {
@@ -680,7 +680,7 @@ var VueRuntimeDOM = (function (exports) {
680
680
  }
681
681
  }
682
682
  break;
683
- case "set" /* SET */:
683
+ case "set" /* TriggerOpTypes.SET */:
684
684
  if (isMap(target)) {
685
685
  deps.push(depsMap.get(ITERATE_KEY));
686
686
  }
@@ -757,7 +757,7 @@ var VueRuntimeDOM = (function (exports) {
757
757
  instrumentations[key] = function (...args) {
758
758
  const arr = toRaw(this);
759
759
  for (let i = 0, l = this.length; i < l; i++) {
760
- track(arr, "get" /* GET */, i + '');
760
+ track(arr, "get" /* TrackOpTypes.GET */, i + '');
761
761
  }
762
762
  // we run the method using the original args first (which may be reactive)
763
763
  const res = arr[key](...args);
@@ -782,16 +782,16 @@ var VueRuntimeDOM = (function (exports) {
782
782
  }
783
783
  function createGetter(isReadonly = false, shallow = false) {
784
784
  return function get(target, key, receiver) {
785
- if (key === "__v_isReactive" /* IS_REACTIVE */) {
785
+ if (key === "__v_isReactive" /* ReactiveFlags.IS_REACTIVE */) {
786
786
  return !isReadonly;
787
787
  }
788
- else if (key === "__v_isReadonly" /* IS_READONLY */) {
788
+ else if (key === "__v_isReadonly" /* ReactiveFlags.IS_READONLY */) {
789
789
  return isReadonly;
790
790
  }
791
- else if (key === "__v_isShallow" /* IS_SHALLOW */) {
791
+ else if (key === "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */) {
792
792
  return shallow;
793
793
  }
794
- else if (key === "__v_raw" /* RAW */ &&
794
+ else if (key === "__v_raw" /* ReactiveFlags.RAW */ &&
795
795
  receiver ===
796
796
  (isReadonly
797
797
  ? shallow
@@ -811,7 +811,7 @@ var VueRuntimeDOM = (function (exports) {
811
811
  return res;
812
812
  }
813
813
  if (!isReadonly) {
814
- track(target, "get" /* GET */, key);
814
+ track(target, "get" /* TrackOpTypes.GET */, key);
815
815
  }
816
816
  if (shallow) {
817
817
  return res;
@@ -837,10 +837,10 @@ var VueRuntimeDOM = (function (exports) {
837
837
  if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
838
838
  return false;
839
839
  }
840
- if (!shallow && !isReadonly(value)) {
841
- if (!isShallow(value)) {
842
- value = toRaw(value);
840
+ if (!shallow) {
841
+ if (!isShallow(value) && !isReadonly(value)) {
843
842
  oldValue = toRaw(oldValue);
843
+ value = toRaw(value);
844
844
  }
845
845
  if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
846
846
  oldValue.value = value;
@@ -854,10 +854,10 @@ var VueRuntimeDOM = (function (exports) {
854
854
  // don't trigger if target is something up in the prototype chain of original
855
855
  if (target === toRaw(receiver)) {
856
856
  if (!hadKey) {
857
- trigger(target, "add" /* ADD */, key, value);
857
+ trigger(target, "add" /* TriggerOpTypes.ADD */, key, value);
858
858
  }
859
859
  else if (hasChanged(value, oldValue)) {
860
- trigger(target, "set" /* SET */, key, value, oldValue);
860
+ trigger(target, "set" /* TriggerOpTypes.SET */, key, value, oldValue);
861
861
  }
862
862
  }
863
863
  return result;
@@ -868,19 +868,19 @@ var VueRuntimeDOM = (function (exports) {
868
868
  const oldValue = target[key];
869
869
  const result = Reflect.deleteProperty(target, key);
870
870
  if (result && hadKey) {
871
- trigger(target, "delete" /* DELETE */, key, undefined, oldValue);
871
+ trigger(target, "delete" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);
872
872
  }
873
873
  return result;
874
874
  }
875
875
  function has(target, key) {
876
876
  const result = Reflect.has(target, key);
877
877
  if (!isSymbol(key) || !builtInSymbols.has(key)) {
878
- track(target, "has" /* HAS */, key);
878
+ track(target, "has" /* TrackOpTypes.HAS */, key);
879
879
  }
880
880
  return result;
881
881
  }
882
882
  function ownKeys(target) {
883
- track(target, "iterate" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);
883
+ track(target, "iterate" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);
884
884
  return Reflect.ownKeys(target);
885
885
  }
886
886
  const mutableHandlers = {
@@ -921,14 +921,14 @@ var VueRuntimeDOM = (function (exports) {
921
921
  function get$1(target, key, isReadonly = false, isShallow = false) {
922
922
  // #1772: readonly(reactive(Map)) should return readonly + reactive version
923
923
  // of the value
924
- target = target["__v_raw" /* RAW */];
924
+ target = target["__v_raw" /* ReactiveFlags.RAW */];
925
925
  const rawTarget = toRaw(target);
926
926
  const rawKey = toRaw(key);
927
927
  if (!isReadonly) {
928
928
  if (key !== rawKey) {
929
- track(rawTarget, "get" /* GET */, key);
929
+ track(rawTarget, "get" /* TrackOpTypes.GET */, key);
930
930
  }
931
- track(rawTarget, "get" /* GET */, rawKey);
931
+ track(rawTarget, "get" /* TrackOpTypes.GET */, rawKey);
932
932
  }
933
933
  const { has } = getProto(rawTarget);
934
934
  const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
@@ -945,22 +945,22 @@ var VueRuntimeDOM = (function (exports) {
945
945
  }
946
946
  }
947
947
  function has$1(key, isReadonly = false) {
948
- const target = this["__v_raw" /* RAW */];
948
+ const target = this["__v_raw" /* ReactiveFlags.RAW */];
949
949
  const rawTarget = toRaw(target);
950
950
  const rawKey = toRaw(key);
951
951
  if (!isReadonly) {
952
952
  if (key !== rawKey) {
953
- track(rawTarget, "has" /* HAS */, key);
953
+ track(rawTarget, "has" /* TrackOpTypes.HAS */, key);
954
954
  }
955
- track(rawTarget, "has" /* HAS */, rawKey);
955
+ track(rawTarget, "has" /* TrackOpTypes.HAS */, rawKey);
956
956
  }
957
957
  return key === rawKey
958
958
  ? target.has(key)
959
959
  : target.has(key) || target.has(rawKey);
960
960
  }
961
961
  function size(target, isReadonly = false) {
962
- target = target["__v_raw" /* RAW */];
963
- !isReadonly && track(toRaw(target), "iterate" /* ITERATE */, ITERATE_KEY);
962
+ target = target["__v_raw" /* ReactiveFlags.RAW */];
963
+ !isReadonly && track(toRaw(target), "iterate" /* TrackOpTypes.ITERATE */, ITERATE_KEY);
964
964
  return Reflect.get(target, 'size', target);
965
965
  }
966
966
  function add(value) {
@@ -970,7 +970,7 @@ var VueRuntimeDOM = (function (exports) {
970
970
  const hadKey = proto.has.call(target, value);
971
971
  if (!hadKey) {
972
972
  target.add(value);
973
- trigger(target, "add" /* ADD */, value, value);
973
+ trigger(target, "add" /* TriggerOpTypes.ADD */, value, value);
974
974
  }
975
975
  return this;
976
976
  }
@@ -989,10 +989,10 @@ var VueRuntimeDOM = (function (exports) {
989
989
  const oldValue = get.call(target, key);
990
990
  target.set(key, value);
991
991
  if (!hadKey) {
992
- trigger(target, "add" /* ADD */, key, value);
992
+ trigger(target, "add" /* TriggerOpTypes.ADD */, key, value);
993
993
  }
994
994
  else if (hasChanged(value, oldValue)) {
995
- trigger(target, "set" /* SET */, key, value, oldValue);
995
+ trigger(target, "set" /* TriggerOpTypes.SET */, key, value, oldValue);
996
996
  }
997
997
  return this;
998
998
  }
@@ -1011,7 +1011,7 @@ var VueRuntimeDOM = (function (exports) {
1011
1011
  // forward the operation before queueing reactions
1012
1012
  const result = target.delete(key);
1013
1013
  if (hadKey) {
1014
- trigger(target, "delete" /* DELETE */, key, undefined, oldValue);
1014
+ trigger(target, "delete" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);
1015
1015
  }
1016
1016
  return result;
1017
1017
  }
@@ -1025,17 +1025,17 @@ var VueRuntimeDOM = (function (exports) {
1025
1025
  // forward the operation before queueing reactions
1026
1026
  const result = target.clear();
1027
1027
  if (hadItems) {
1028
- trigger(target, "clear" /* CLEAR */, undefined, undefined, oldTarget);
1028
+ trigger(target, "clear" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);
1029
1029
  }
1030
1030
  return result;
1031
1031
  }
1032
1032
  function createForEach(isReadonly, isShallow) {
1033
1033
  return function forEach(callback, thisArg) {
1034
1034
  const observed = this;
1035
- const target = observed["__v_raw" /* RAW */];
1035
+ const target = observed["__v_raw" /* ReactiveFlags.RAW */];
1036
1036
  const rawTarget = toRaw(target);
1037
1037
  const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
1038
- !isReadonly && track(rawTarget, "iterate" /* ITERATE */, ITERATE_KEY);
1038
+ !isReadonly && track(rawTarget, "iterate" /* TrackOpTypes.ITERATE */, ITERATE_KEY);
1039
1039
  return target.forEach((value, key) => {
1040
1040
  // important: make sure the callback is
1041
1041
  // 1. invoked with the reactive map as `this` and 3rd arg
@@ -1046,7 +1046,7 @@ var VueRuntimeDOM = (function (exports) {
1046
1046
  }
1047
1047
  function createIterableMethod(method, isReadonly, isShallow) {
1048
1048
  return function (...args) {
1049
- const target = this["__v_raw" /* RAW */];
1049
+ const target = this["__v_raw" /* ReactiveFlags.RAW */];
1050
1050
  const rawTarget = toRaw(target);
1051
1051
  const targetIsMap = isMap(rawTarget);
1052
1052
  const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);
@@ -1054,7 +1054,7 @@ var VueRuntimeDOM = (function (exports) {
1054
1054
  const innerIterator = target[method](...args);
1055
1055
  const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
1056
1056
  !isReadonly &&
1057
- track(rawTarget, "iterate" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
1057
+ track(rawTarget, "iterate" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
1058
1058
  // return a wrapped iterator which returns observed versions of the
1059
1059
  // values emitted from the real iterator
1060
1060
  return {
@@ -1081,7 +1081,7 @@ var VueRuntimeDOM = (function (exports) {
1081
1081
  const key = args[0] ? `on key "${args[0]}" ` : ``;
1082
1082
  console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));
1083
1083
  }
1084
- return type === "delete" /* DELETE */ ? false : this;
1084
+ return type === "delete" /* TriggerOpTypes.DELETE */ ? false : this;
1085
1085
  };
1086
1086
  }
1087
1087
  function createInstrumentations() {
@@ -1123,10 +1123,10 @@ var VueRuntimeDOM = (function (exports) {
1123
1123
  has(key) {
1124
1124
  return has$1.call(this, key, true);
1125
1125
  },
1126
- add: createReadonlyMethod("add" /* ADD */),
1127
- set: createReadonlyMethod("set" /* SET */),
1128
- delete: createReadonlyMethod("delete" /* DELETE */),
1129
- clear: createReadonlyMethod("clear" /* CLEAR */),
1126
+ add: createReadonlyMethod("add" /* TriggerOpTypes.ADD */),
1127
+ set: createReadonlyMethod("set" /* TriggerOpTypes.SET */),
1128
+ delete: createReadonlyMethod("delete" /* TriggerOpTypes.DELETE */),
1129
+ clear: createReadonlyMethod("clear" /* TriggerOpTypes.CLEAR */),
1130
1130
  forEach: createForEach(true, false)
1131
1131
  };
1132
1132
  const shallowReadonlyInstrumentations = {
@@ -1139,10 +1139,10 @@ var VueRuntimeDOM = (function (exports) {
1139
1139
  has(key) {
1140
1140
  return has$1.call(this, key, true);
1141
1141
  },
1142
- add: createReadonlyMethod("add" /* ADD */),
1143
- set: createReadonlyMethod("set" /* SET */),
1144
- delete: createReadonlyMethod("delete" /* DELETE */),
1145
- clear: createReadonlyMethod("clear" /* CLEAR */),
1142
+ add: createReadonlyMethod("add" /* TriggerOpTypes.ADD */),
1143
+ set: createReadonlyMethod("set" /* TriggerOpTypes.SET */),
1144
+ delete: createReadonlyMethod("delete" /* TriggerOpTypes.DELETE */),
1145
+ clear: createReadonlyMethod("clear" /* TriggerOpTypes.CLEAR */),
1146
1146
  forEach: createForEach(true, true)
1147
1147
  };
1148
1148
  const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];
@@ -1169,13 +1169,13 @@ var VueRuntimeDOM = (function (exports) {
1169
1169
  ? readonlyInstrumentations
1170
1170
  : mutableInstrumentations;
1171
1171
  return (target, key, receiver) => {
1172
- if (key === "__v_isReactive" /* IS_REACTIVE */) {
1172
+ if (key === "__v_isReactive" /* ReactiveFlags.IS_REACTIVE */) {
1173
1173
  return !isReadonly;
1174
1174
  }
1175
- else if (key === "__v_isReadonly" /* IS_READONLY */) {
1175
+ else if (key === "__v_isReadonly" /* ReactiveFlags.IS_READONLY */) {
1176
1176
  return isReadonly;
1177
1177
  }
1178
- else if (key === "__v_raw" /* RAW */) {
1178
+ else if (key === "__v_raw" /* ReactiveFlags.RAW */) {
1179
1179
  return target;
1180
1180
  }
1181
1181
  return Reflect.get(hasOwn(instrumentations, key) && key in target
@@ -1215,19 +1215,19 @@ var VueRuntimeDOM = (function (exports) {
1215
1215
  switch (rawType) {
1216
1216
  case 'Object':
1217
1217
  case 'Array':
1218
- return 1 /* COMMON */;
1218
+ return 1 /* TargetType.COMMON */;
1219
1219
  case 'Map':
1220
1220
  case 'Set':
1221
1221
  case 'WeakMap':
1222
1222
  case 'WeakSet':
1223
- return 2 /* COLLECTION */;
1223
+ return 2 /* TargetType.COLLECTION */;
1224
1224
  default:
1225
- return 0 /* INVALID */;
1225
+ return 0 /* TargetType.INVALID */;
1226
1226
  }
1227
1227
  }
1228
1228
  function getTargetType(value) {
1229
- return value["__v_skip" /* SKIP */] || !Object.isExtensible(value)
1230
- ? 0 /* INVALID */
1229
+ return value["__v_skip" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)
1230
+ ? 0 /* TargetType.INVALID */
1231
1231
  : targetTypeMap(toRawType(value));
1232
1232
  }
1233
1233
  function reactive(target) {
@@ -1270,8 +1270,8 @@ var VueRuntimeDOM = (function (exports) {
1270
1270
  }
1271
1271
  // target is already a Proxy, return it.
1272
1272
  // exception: calling readonly() on a reactive object
1273
- if (target["__v_raw" /* RAW */] &&
1274
- !(isReadonly && target["__v_isReactive" /* IS_REACTIVE */])) {
1273
+ if (target["__v_raw" /* ReactiveFlags.RAW */] &&
1274
+ !(isReadonly && target["__v_isReactive" /* ReactiveFlags.IS_REACTIVE */])) {
1275
1275
  return target;
1276
1276
  }
1277
1277
  // target already has corresponding Proxy
@@ -1281,34 +1281,34 @@ var VueRuntimeDOM = (function (exports) {
1281
1281
  }
1282
1282
  // only specific value types can be observed.
1283
1283
  const targetType = getTargetType(target);
1284
- if (targetType === 0 /* INVALID */) {
1284
+ if (targetType === 0 /* TargetType.INVALID */) {
1285
1285
  return target;
1286
1286
  }
1287
- const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);
1287
+ const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);
1288
1288
  proxyMap.set(target, proxy);
1289
1289
  return proxy;
1290
1290
  }
1291
1291
  function isReactive(value) {
1292
1292
  if (isReadonly(value)) {
1293
- return isReactive(value["__v_raw" /* RAW */]);
1293
+ return isReactive(value["__v_raw" /* ReactiveFlags.RAW */]);
1294
1294
  }
1295
- return !!(value && value["__v_isReactive" /* IS_REACTIVE */]);
1295
+ return !!(value && value["__v_isReactive" /* ReactiveFlags.IS_REACTIVE */]);
1296
1296
  }
1297
1297
  function isReadonly(value) {
1298
- return !!(value && value["__v_isReadonly" /* IS_READONLY */]);
1298
+ return !!(value && value["__v_isReadonly" /* ReactiveFlags.IS_READONLY */]);
1299
1299
  }
1300
1300
  function isShallow(value) {
1301
- return !!(value && value["__v_isShallow" /* IS_SHALLOW */]);
1301
+ return !!(value && value["__v_isShallow" /* ReactiveFlags.IS_SHALLOW */]);
1302
1302
  }
1303
1303
  function isProxy(value) {
1304
1304
  return isReactive(value) || isReadonly(value);
1305
1305
  }
1306
1306
  function toRaw(observed) {
1307
- const raw = observed && observed["__v_raw" /* RAW */];
1307
+ const raw = observed && observed["__v_raw" /* ReactiveFlags.RAW */];
1308
1308
  return raw ? toRaw(raw) : observed;
1309
1309
  }
1310
1310
  function markRaw(value) {
1311
- def(value, "__v_skip" /* SKIP */, true);
1311
+ def(value, "__v_skip" /* ReactiveFlags.SKIP */, true);
1312
1312
  return value;
1313
1313
  }
1314
1314
  const toReactive = (value) => isObject(value) ? reactive(value) : value;
@@ -1320,7 +1320,7 @@ var VueRuntimeDOM = (function (exports) {
1320
1320
  {
1321
1321
  trackEffects(ref.dep || (ref.dep = createDep()), {
1322
1322
  target: ref,
1323
- type: "get" /* GET */,
1323
+ type: "get" /* TrackOpTypes.GET */,
1324
1324
  key: 'value'
1325
1325
  });
1326
1326
  }
@@ -1332,7 +1332,7 @@ var VueRuntimeDOM = (function (exports) {
1332
1332
  {
1333
1333
  triggerEffects(ref.dep, {
1334
1334
  target: ref,
1335
- type: "set" /* SET */,
1335
+ type: "set" /* TriggerOpTypes.SET */,
1336
1336
  key: 'value',
1337
1337
  newValue: newVal
1338
1338
  });
@@ -1367,10 +1367,11 @@ var VueRuntimeDOM = (function (exports) {
1367
1367
  return this._value;
1368
1368
  }
1369
1369
  set value(newVal) {
1370
- newVal = this.__v_isShallow ? newVal : toRaw(newVal);
1370
+ const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);
1371
+ newVal = useDirectValue ? newVal : toRaw(newVal);
1371
1372
  if (hasChanged(newVal, this._rawValue)) {
1372
1373
  this._rawValue = newVal;
1373
- this._value = this.__v_isShallow ? newVal : toReactive(newVal);
1374
+ this._value = useDirectValue ? newVal : toReactive(newVal);
1374
1375
  triggerRefValue(this, newVal);
1375
1376
  }
1376
1377
  }
@@ -1449,11 +1450,13 @@ var VueRuntimeDOM = (function (exports) {
1449
1450
  : new ObjectRefImpl(object, key, defaultValue);
1450
1451
  }
1451
1452
 
1453
+ var _a;
1452
1454
  class ComputedRefImpl {
1453
1455
  constructor(getter, _setter, isReadonly, isSSR) {
1454
1456
  this._setter = _setter;
1455
1457
  this.dep = undefined;
1456
1458
  this.__v_isRef = true;
1459
+ this[_a] = false;
1457
1460
  this._dirty = true;
1458
1461
  this.effect = new ReactiveEffect(getter, () => {
1459
1462
  if (!this._dirty) {
@@ -1463,7 +1466,7 @@ var VueRuntimeDOM = (function (exports) {
1463
1466
  });
1464
1467
  this.effect.computed = this;
1465
1468
  this.effect.active = this._cacheable = !isSSR;
1466
- this["__v_isReadonly" /* IS_READONLY */] = isReadonly;
1469
+ this["__v_isReadonly" /* ReactiveFlags.IS_READONLY */] = isReadonly;
1467
1470
  }
1468
1471
  get value() {
1469
1472
  // the computed ref may get wrapped by other proxies e.g. readonly() #3376
@@ -1479,6 +1482,7 @@ var VueRuntimeDOM = (function (exports) {
1479
1482
  this._setter(newValue);
1480
1483
  }
1481
1484
  }
1485
+ _a = "__v_isReadonly" /* ReactiveFlags.IS_READONLY */;
1482
1486
  function computed(getterOrOptions, debugOptions, isSSR = false) {
1483
1487
  let getter;
1484
1488
  let setter;
@@ -1517,7 +1521,7 @@ var VueRuntimeDOM = (function (exports) {
1517
1521
  const appWarnHandler = instance && instance.appContext.config.warnHandler;
1518
1522
  const trace = getComponentTrace();
1519
1523
  if (appWarnHandler) {
1520
- callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [
1524
+ callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [
1521
1525
  msg + args.join(''),
1522
1526
  instance && instance.proxy,
1523
1527
  trace
@@ -1617,35 +1621,35 @@ var VueRuntimeDOM = (function (exports) {
1617
1621
  }
1618
1622
 
1619
1623
  const ErrorTypeStrings = {
1620
- ["sp" /* SERVER_PREFETCH */]: 'serverPrefetch hook',
1621
- ["bc" /* BEFORE_CREATE */]: 'beforeCreate hook',
1622
- ["c" /* CREATED */]: 'created hook',
1623
- ["bm" /* BEFORE_MOUNT */]: 'beforeMount hook',
1624
- ["m" /* MOUNTED */]: 'mounted hook',
1625
- ["bu" /* BEFORE_UPDATE */]: 'beforeUpdate hook',
1626
- ["u" /* UPDATED */]: 'updated',
1627
- ["bum" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',
1628
- ["um" /* UNMOUNTED */]: 'unmounted hook',
1629
- ["a" /* ACTIVATED */]: 'activated hook',
1630
- ["da" /* DEACTIVATED */]: 'deactivated hook',
1631
- ["ec" /* ERROR_CAPTURED */]: 'errorCaptured hook',
1632
- ["rtc" /* RENDER_TRACKED */]: 'renderTracked hook',
1633
- ["rtg" /* RENDER_TRIGGERED */]: 'renderTriggered hook',
1634
- [0 /* SETUP_FUNCTION */]: 'setup function',
1635
- [1 /* RENDER_FUNCTION */]: 'render function',
1636
- [2 /* WATCH_GETTER */]: 'watcher getter',
1637
- [3 /* WATCH_CALLBACK */]: 'watcher callback',
1638
- [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',
1639
- [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',
1640
- [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',
1641
- [7 /* VNODE_HOOK */]: 'vnode hook',
1642
- [8 /* DIRECTIVE_HOOK */]: 'directive hook',
1643
- [9 /* TRANSITION_HOOK */]: 'transition hook',
1644
- [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',
1645
- [11 /* APP_WARN_HANDLER */]: 'app warnHandler',
1646
- [12 /* FUNCTION_REF */]: 'ref function',
1647
- [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',
1648
- [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +
1624
+ ["sp" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',
1625
+ ["bc" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',
1626
+ ["c" /* LifecycleHooks.CREATED */]: 'created hook',
1627
+ ["bm" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',
1628
+ ["m" /* LifecycleHooks.MOUNTED */]: 'mounted hook',
1629
+ ["bu" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',
1630
+ ["u" /* LifecycleHooks.UPDATED */]: 'updated',
1631
+ ["bum" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',
1632
+ ["um" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',
1633
+ ["a" /* LifecycleHooks.ACTIVATED */]: 'activated hook',
1634
+ ["da" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',
1635
+ ["ec" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',
1636
+ ["rtc" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',
1637
+ ["rtg" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',
1638
+ [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',
1639
+ [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',
1640
+ [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',
1641
+ [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',
1642
+ [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',
1643
+ [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',
1644
+ [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',
1645
+ [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',
1646
+ [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',
1647
+ [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',
1648
+ [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',
1649
+ [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',
1650
+ [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',
1651
+ [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',
1652
+ [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +
1649
1653
  'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'
1650
1654
  };
1651
1655
  function callWithErrorHandling(fn, instance, type, args) {
@@ -1696,7 +1700,7 @@ var VueRuntimeDOM = (function (exports) {
1696
1700
  // app-level handling
1697
1701
  const appErrorHandler = instance.appContext.config.errorHandler;
1698
1702
  if (appErrorHandler) {
1699
- callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);
1703
+ callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);
1700
1704
  return;
1701
1705
  }
1702
1706
  }
@@ -1726,15 +1730,11 @@ var VueRuntimeDOM = (function (exports) {
1726
1730
  let isFlushPending = false;
1727
1731
  const queue = [];
1728
1732
  let flushIndex = 0;
1729
- const pendingPreFlushCbs = [];
1730
- let activePreFlushCbs = null;
1731
- let preFlushIndex = 0;
1732
1733
  const pendingPostFlushCbs = [];
1733
1734
  let activePostFlushCbs = null;
1734
1735
  let postFlushIndex = 0;
1735
1736
  const resolvedPromise = /*#__PURE__*/ Promise.resolve();
1736
1737
  let currentFlushPromise = null;
1737
- let currentPreFlushParentJob = null;
1738
1738
  const RECURSION_LIMIT = 100;
1739
1739
  function nextTick(fn) {
1740
1740
  const p = currentFlushPromise || resolvedPromise;
@@ -1762,9 +1762,8 @@ var VueRuntimeDOM = (function (exports) {
1762
1762
  // if the job is a watch() callback, the search will start with a +1 index to
1763
1763
  // allow it recursively trigger itself - it is the user's responsibility to
1764
1764
  // ensure it doesn't end up in an infinite loop.
1765
- if ((!queue.length ||
1766
- !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&
1767
- job !== currentPreFlushParentJob) {
1765
+ if (!queue.length ||
1766
+ !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {
1768
1767
  if (job.id == null) {
1769
1768
  queue.push(job);
1770
1769
  }
@@ -1786,51 +1785,38 @@ var VueRuntimeDOM = (function (exports) {
1786
1785
  queue.splice(i, 1);
1787
1786
  }
1788
1787
  }
1789
- function queueCb(cb, activeQueue, pendingQueue, index) {
1788
+ function queuePostFlushCb(cb) {
1790
1789
  if (!isArray(cb)) {
1791
- if (!activeQueue ||
1792
- !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {
1793
- pendingQueue.push(cb);
1790
+ if (!activePostFlushCbs ||
1791
+ !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {
1792
+ pendingPostFlushCbs.push(cb);
1794
1793
  }
1795
1794
  }
1796
1795
  else {
1797
1796
  // if cb is an array, it is a component lifecycle hook which can only be
1798
1797
  // triggered by a job, which is already deduped in the main queue, so
1799
1798
  // we can skip duplicate check here to improve perf
1800
- pendingQueue.push(...cb);
1799
+ pendingPostFlushCbs.push(...cb);
1801
1800
  }
1802
1801
  queueFlush();
1803
1802
  }
1804
- function queuePreFlushCb(cb) {
1805
- queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);
1806
- }
1807
- function queuePostFlushCb(cb) {
1808
- queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);
1809
- }
1810
- function flushPreFlushCbs(seen, parentJob = null) {
1811
- if (pendingPreFlushCbs.length) {
1812
- currentPreFlushParentJob = parentJob;
1813
- activePreFlushCbs = [...new Set(pendingPreFlushCbs)];
1814
- pendingPreFlushCbs.length = 0;
1815
- {
1816
- seen = seen || new Map();
1817
- }
1818
- for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {
1819
- if (checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex])) {
1803
+ function flushPreFlushCbs(seen, i = flushIndex) {
1804
+ {
1805
+ seen = seen || new Map();
1806
+ }
1807
+ for (; i < queue.length; i++) {
1808
+ const cb = queue[i];
1809
+ if (cb && cb.pre) {
1810
+ if (checkRecursiveUpdates(seen, cb)) {
1820
1811
  continue;
1821
1812
  }
1822
- activePreFlushCbs[preFlushIndex]();
1813
+ queue.splice(i, 1);
1814
+ i--;
1815
+ cb();
1823
1816
  }
1824
- activePreFlushCbs = null;
1825
- preFlushIndex = 0;
1826
- currentPreFlushParentJob = null;
1827
- // recursively flush until it drains
1828
- flushPreFlushCbs(seen, parentJob);
1829
1817
  }
1830
1818
  }
1831
1819
  function flushPostFlushCbs(seen) {
1832
- // flush any pre cbs queued during the flush (e.g. pre watchers)
1833
- flushPreFlushCbs();
1834
1820
  if (pendingPostFlushCbs.length) {
1835
1821
  const deduped = [...new Set(pendingPostFlushCbs)];
1836
1822
  pendingPostFlushCbs.length = 0;
@@ -1855,13 +1841,22 @@ var VueRuntimeDOM = (function (exports) {
1855
1841
  }
1856
1842
  }
1857
1843
  const getId = (job) => job.id == null ? Infinity : job.id;
1844
+ const comparator = (a, b) => {
1845
+ const diff = getId(a) - getId(b);
1846
+ if (diff === 0) {
1847
+ if (a.pre && !b.pre)
1848
+ return -1;
1849
+ if (b.pre && !a.pre)
1850
+ return 1;
1851
+ }
1852
+ return diff;
1853
+ };
1858
1854
  function flushJobs(seen) {
1859
1855
  isFlushPending = false;
1860
1856
  isFlushing = true;
1861
1857
  {
1862
1858
  seen = seen || new Map();
1863
1859
  }
1864
- flushPreFlushCbs(seen);
1865
1860
  // Sort queue before flush.
1866
1861
  // This ensures that:
1867
1862
  // 1. Components are updated from parent to child. (because parent is always
@@ -1869,7 +1864,7 @@ var VueRuntimeDOM = (function (exports) {
1869
1864
  // priority number)
1870
1865
  // 2. If a component is unmounted during a parent component's update,
1871
1866
  // its update can be skipped.
1872
- queue.sort((a, b) => getId(a) - getId(b));
1867
+ queue.sort(comparator);
1873
1868
  // conditional usage of checkRecursiveUpdate must be determined out of
1874
1869
  // try ... catch block since Rollup by default de-optimizes treeshaking
1875
1870
  // inside try-catch. This can leave all warning code unshaked. Although
@@ -1885,7 +1880,7 @@ var VueRuntimeDOM = (function (exports) {
1885
1880
  continue;
1886
1881
  }
1887
1882
  // console.log(`running:`, job.id)
1888
- callWithErrorHandling(job, null, 14 /* SCHEDULER */);
1883
+ callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);
1889
1884
  }
1890
1885
  }
1891
1886
  }
@@ -1897,9 +1892,7 @@ var VueRuntimeDOM = (function (exports) {
1897
1892
  currentFlushPromise = null;
1898
1893
  // some postFlushCb queued jobs!
1899
1894
  // keep flushing until it drains.
1900
- if (queue.length ||
1901
- pendingPreFlushCbs.length ||
1902
- pendingPostFlushCbs.length) {
1895
+ if (queue.length || pendingPostFlushCbs.length) {
1903
1896
  flushJobs(seen);
1904
1897
  }
1905
1898
  }
@@ -2116,7 +2109,7 @@ var VueRuntimeDOM = (function (exports) {
2116
2109
  }
2117
2110
  }
2118
2111
  function devtoolsInitApp(app, version) {
2119
- emit("app:init" /* APP_INIT */, app, version, {
2112
+ emit("app:init" /* DevtoolsHooks.APP_INIT */, app, version, {
2120
2113
  Fragment,
2121
2114
  Text,
2122
2115
  Comment,
@@ -2124,27 +2117,27 @@ var VueRuntimeDOM = (function (exports) {
2124
2117
  });
2125
2118
  }
2126
2119
  function devtoolsUnmountApp(app) {
2127
- emit("app:unmount" /* APP_UNMOUNT */, app);
2120
+ emit("app:unmount" /* DevtoolsHooks.APP_UNMOUNT */, app);
2128
2121
  }
2129
- const devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */);
2122
+ const devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook("component:added" /* DevtoolsHooks.COMPONENT_ADDED */);
2130
2123
  const devtoolsComponentUpdated =
2131
- /*#__PURE__*/ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */);
2124
+ /*#__PURE__*/ createDevtoolsComponentHook("component:updated" /* DevtoolsHooks.COMPONENT_UPDATED */);
2132
2125
  const devtoolsComponentRemoved =
2133
- /*#__PURE__*/ createDevtoolsComponentHook("component:removed" /* COMPONENT_REMOVED */);
2126
+ /*#__PURE__*/ createDevtoolsComponentHook("component:removed" /* DevtoolsHooks.COMPONENT_REMOVED */);
2134
2127
  function createDevtoolsComponentHook(hook) {
2135
2128
  return (component) => {
2136
2129
  emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);
2137
2130
  };
2138
2131
  }
2139
- const devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */);
2140
- const devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */);
2132
+ const devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook("perf:start" /* DevtoolsHooks.PERFORMANCE_START */);
2133
+ const devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook("perf:end" /* DevtoolsHooks.PERFORMANCE_END */);
2141
2134
  function createDevtoolsPerformanceHook(hook) {
2142
2135
  return (component, type, time) => {
2143
2136
  emit(hook, component.appContext.app, component.uid, component, type, time);
2144
2137
  };
2145
2138
  }
2146
2139
  function devtoolsComponentEmit(component, event, params) {
2147
- emit("component:emit" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);
2140
+ emit("component:emit" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);
2148
2141
  }
2149
2142
 
2150
2143
  function emit$1(instance, event, ...rawArgs) {
@@ -2209,7 +2202,7 @@ var VueRuntimeDOM = (function (exports) {
2209
2202
  handler = props[(handlerName = toHandlerKey(hyphenate(event)))];
2210
2203
  }
2211
2204
  if (handler) {
2212
- callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);
2205
+ callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);
2213
2206
  }
2214
2207
  const onceHandler = props[handlerName + `Once`];
2215
2208
  if (onceHandler) {
@@ -2220,7 +2213,7 @@ var VueRuntimeDOM = (function (exports) {
2220
2213
  return;
2221
2214
  }
2222
2215
  instance.emitted[handlerName] = true;
2223
- callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);
2216
+ callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);
2224
2217
  }
2225
2218
  }
2226
2219
  function normalizeEmitsOptions(comp, appContext, asMixin = false) {
@@ -2252,7 +2245,9 @@ var VueRuntimeDOM = (function (exports) {
2252
2245
  }
2253
2246
  }
2254
2247
  if (!raw && !hasExtends) {
2255
- cache.set(comp, null);
2248
+ if (isObject(comp)) {
2249
+ cache.set(comp, null);
2250
+ }
2256
2251
  return null;
2257
2252
  }
2258
2253
  if (isArray(raw)) {
@@ -2261,7 +2256,9 @@ var VueRuntimeDOM = (function (exports) {
2261
2256
  else {
2262
2257
  extend(normalized, raw);
2263
2258
  }
2264
- cache.set(comp, normalized);
2259
+ if (isObject(comp)) {
2260
+ cache.set(comp, normalized);
2261
+ }
2265
2262
  return normalized;
2266
2263
  }
2267
2264
  // Check if an incoming prop key is a declared emit event listener.
@@ -2380,7 +2377,7 @@ var VueRuntimeDOM = (function (exports) {
2380
2377
  accessedAttrs = false;
2381
2378
  }
2382
2379
  try {
2383
- if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {
2380
+ if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {
2384
2381
  // withProxy is a proxy with a different `has` trap only for
2385
2382
  // runtime-compiled render functions using `with` block.
2386
2383
  const proxyToUse = withProxy || proxy;
@@ -2413,7 +2410,7 @@ var VueRuntimeDOM = (function (exports) {
2413
2410
  }
2414
2411
  catch (err) {
2415
2412
  blockStack.length = 0;
2416
- handleError(err, instance, 1 /* RENDER_FUNCTION */);
2413
+ handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);
2417
2414
  result = createVNode(Comment);
2418
2415
  }
2419
2416
  // attr merging
@@ -2422,14 +2419,14 @@ var VueRuntimeDOM = (function (exports) {
2422
2419
  let root = result;
2423
2420
  let setRoot = undefined;
2424
2421
  if (result.patchFlag > 0 &&
2425
- result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {
2422
+ result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {
2426
2423
  [root, setRoot] = getChildRoot(result);
2427
2424
  }
2428
2425
  if (fallthroughAttrs && inheritAttrs !== false) {
2429
2426
  const keys = Object.keys(fallthroughAttrs);
2430
2427
  const { shapeFlag } = root;
2431
2428
  if (keys.length) {
2432
- if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {
2429
+ if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {
2433
2430
  if (propsOptions && keys.some(isModelListener)) {
2434
2431
  // If a v-model listener (onUpdate:xxx) has a corresponding declared
2435
2432
  // prop, it indicates this component expects to handle v-model and
@@ -2570,7 +2567,7 @@ var VueRuntimeDOM = (function (exports) {
2570
2567
  return res;
2571
2568
  };
2572
2569
  const isElementRoot = (vnode) => {
2573
- return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||
2570
+ return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||
2574
2571
  vnode.type === Comment // potential v-if branch switch
2575
2572
  );
2576
2573
  };
@@ -2589,19 +2586,19 @@ var VueRuntimeDOM = (function (exports) {
2589
2586
  return true;
2590
2587
  }
2591
2588
  if (optimized && patchFlag >= 0) {
2592
- if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {
2589
+ if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {
2593
2590
  // slot content that references values that might have changed,
2594
2591
  // e.g. in a v-for
2595
2592
  return true;
2596
2593
  }
2597
- if (patchFlag & 16 /* FULL_PROPS */) {
2594
+ if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {
2598
2595
  if (!prevProps) {
2599
2596
  return !!nextProps;
2600
2597
  }
2601
2598
  // presence of this flag indicates props are always non-null
2602
2599
  return hasPropsChanged(prevProps, nextProps, emits);
2603
2600
  }
2604
- else if (patchFlag & 8 /* PROPS */) {
2601
+ else if (patchFlag & 8 /* PatchFlags.PROPS */) {
2605
2602
  const dynamicProps = nextVNode.dynamicProps;
2606
2603
  for (let i = 0; i < dynamicProps.length; i++) {
2607
2604
  const key = dynamicProps[i];
@@ -2859,7 +2856,7 @@ var VueRuntimeDOM = (function (exports) {
2859
2856
  if (delayEnter) {
2860
2857
  activeBranch.transition.afterLeave = () => {
2861
2858
  if (pendingId === suspense.pendingId) {
2862
- move(pendingBranch, container, anchor, 0 /* ENTER */);
2859
+ move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);
2863
2860
  }
2864
2861
  };
2865
2862
  }
@@ -2874,7 +2871,7 @@ var VueRuntimeDOM = (function (exports) {
2874
2871
  }
2875
2872
  if (!delayEnter) {
2876
2873
  // move content from off-dom container to actual container
2877
- move(pendingBranch, container, anchor, 0 /* ENTER */);
2874
+ move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);
2878
2875
  }
2879
2876
  }
2880
2877
  setActiveBranch(suspense, pendingBranch);
@@ -2948,7 +2945,7 @@ var VueRuntimeDOM = (function (exports) {
2948
2945
  const hydratedEl = instance.vnode.el;
2949
2946
  instance
2950
2947
  .asyncDep.catch(err => {
2951
- handleError(err, instance, 0 /* SETUP_FUNCTION */);
2948
+ handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);
2952
2949
  })
2953
2950
  .then(asyncSetupResult => {
2954
2951
  // retry when the setup() promise resolves.
@@ -3022,7 +3019,7 @@ var VueRuntimeDOM = (function (exports) {
3022
3019
  }
3023
3020
  function normalizeSuspenseChildren(vnode) {
3024
3021
  const { shapeFlag, children } = vnode;
3025
- const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;
3022
+ const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;
3026
3023
  vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);
3027
3024
  vnode.ssFallback = isSlotChildren
3028
3025
  ? normalizeSuspenseSlot(children.fallback)
@@ -3193,7 +3190,7 @@ var VueRuntimeDOM = (function (exports) {
3193
3190
  return traverse(s);
3194
3191
  }
3195
3192
  else if (isFunction(s)) {
3196
- return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);
3193
+ return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);
3197
3194
  }
3198
3195
  else {
3199
3196
  warnInvalidSource(s);
@@ -3203,7 +3200,7 @@ var VueRuntimeDOM = (function (exports) {
3203
3200
  else if (isFunction(source)) {
3204
3201
  if (cb) {
3205
3202
  // getter with cb
3206
- getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);
3203
+ getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);
3207
3204
  }
3208
3205
  else {
3209
3206
  // no cb -> simple effect
@@ -3214,7 +3211,7 @@ var VueRuntimeDOM = (function (exports) {
3214
3211
  if (cleanup) {
3215
3212
  cleanup();
3216
3213
  }
3217
- return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);
3214
+ return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);
3218
3215
  };
3219
3216
  }
3220
3217
  }
@@ -3229,7 +3226,7 @@ var VueRuntimeDOM = (function (exports) {
3229
3226
  let cleanup;
3230
3227
  let onCleanup = (fn) => {
3231
3228
  cleanup = effect.onStop = () => {
3232
- callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);
3229
+ callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);
3233
3230
  };
3234
3231
  };
3235
3232
  let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;
@@ -3250,7 +3247,7 @@ var VueRuntimeDOM = (function (exports) {
3250
3247
  if (cleanup) {
3251
3248
  cleanup();
3252
3249
  }
3253
- callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [
3250
+ callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [
3254
3251
  newValue,
3255
3252
  // pass undefined as the old value when it's changed for the first time
3256
3253
  oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,
@@ -3276,7 +3273,10 @@ var VueRuntimeDOM = (function (exports) {
3276
3273
  }
3277
3274
  else {
3278
3275
  // default: 'pre'
3279
- scheduler = () => queuePreFlushCb(job);
3276
+ job.pre = true;
3277
+ if (instance)
3278
+ job.id = instance.uid;
3279
+ scheduler = () => queueJob(job);
3280
3280
  }
3281
3281
  const effect = new ReactiveEffect(getter, scheduler);
3282
3282
  {
@@ -3343,7 +3343,7 @@ var VueRuntimeDOM = (function (exports) {
3343
3343
  };
3344
3344
  }
3345
3345
  function traverse(value, seen) {
3346
- if (!isObject(value) || value["__v_skip" /* SKIP */]) {
3346
+ if (!isObject(value) || value["__v_skip" /* ReactiveFlags.SKIP */]) {
3347
3347
  return value;
3348
3348
  }
3349
3349
  seen = seen || new Set();
@@ -3527,7 +3527,7 @@ var VueRuntimeDOM = (function (exports) {
3527
3527
  const leavingVNodesCache = getLeavingNodesForType(state, vnode);
3528
3528
  const callHook = (hook, args) => {
3529
3529
  hook &&
3530
- callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);
3530
+ callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);
3531
3531
  };
3532
3532
  const callAsyncHook = (hook, args) => {
3533
3533
  const done = args[1];
@@ -3663,10 +3663,10 @@ var VueRuntimeDOM = (function (exports) {
3663
3663
  : vnode;
3664
3664
  }
3665
3665
  function setTransitionHooks(vnode, hooks) {
3666
- if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {
3666
+ if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {
3667
3667
  setTransitionHooks(vnode.component.subTree, hooks);
3668
3668
  }
3669
- else if (vnode.shapeFlag & 128 /* SUSPENSE */) {
3669
+ else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
3670
3670
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3671
3671
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3672
3672
  }
@@ -3685,7 +3685,7 @@ var VueRuntimeDOM = (function (exports) {
3685
3685
  : String(parentKey) + String(child.key != null ? child.key : i);
3686
3686
  // handle fragment children case, e.g. v-for
3687
3687
  if (child.type === Fragment) {
3688
- if (child.patchFlag & 128 /* KEYED_FRAGMENT */)
3688
+ if (child.patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */)
3689
3689
  keyedFragmentCount++;
3690
3690
  ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));
3691
3691
  }
@@ -3700,7 +3700,7 @@ var VueRuntimeDOM = (function (exports) {
3700
3700
  // these children to force full diffs to ensure correct behavior.
3701
3701
  if (keyedFragmentCount > 1) {
3702
3702
  for (let i = 0; i < ret.length; i++) {
3703
- ret[i].patchFlag = -2 /* BAIL */;
3703
+ ret[i].patchFlag = -2 /* PatchFlags.BAIL */;
3704
3704
  }
3705
3705
  }
3706
3706
  return ret;
@@ -3778,7 +3778,7 @@ var VueRuntimeDOM = (function (exports) {
3778
3778
  }
3779
3779
  const onError = (err) => {
3780
3780
  pendingRequest = null;
3781
- handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);
3781
+ handleError(err, instance, 13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);
3782
3782
  };
3783
3783
  // suspense-controlled or SSR.
3784
3784
  if ((suspensible && instance.suspense) ||
@@ -3880,7 +3880,7 @@ var VueRuntimeDOM = (function (exports) {
3880
3880
  const storageContainer = createElement('div');
3881
3881
  sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {
3882
3882
  const instance = vnode.component;
3883
- move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);
3883
+ move(vnode, container, anchor, 0 /* MoveType.ENTER */, parentSuspense);
3884
3884
  // in case props have changed
3885
3885
  patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);
3886
3886
  queuePostRenderEffect(() => {
@@ -3900,7 +3900,7 @@ var VueRuntimeDOM = (function (exports) {
3900
3900
  };
3901
3901
  sharedContext.deactivate = (vnode) => {
3902
3902
  const instance = vnode.component;
3903
- move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);
3903
+ move(vnode, storageContainer, null, 1 /* MoveType.LEAVE */, parentSuspense);
3904
3904
  queuePostRenderEffect(() => {
3905
3905
  if (instance.da) {
3906
3906
  invokeArrayFns(instance.da);
@@ -3989,8 +3989,8 @@ var VueRuntimeDOM = (function (exports) {
3989
3989
  return children;
3990
3990
  }
3991
3991
  else if (!isVNode(rawVNode) ||
3992
- (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&
3993
- !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {
3992
+ (!(rawVNode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) &&
3993
+ !(rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */))) {
3994
3994
  current = null;
3995
3995
  return rawVNode;
3996
3996
  }
@@ -4012,7 +4012,7 @@ var VueRuntimeDOM = (function (exports) {
4012
4012
  // clone vnode if it's reused because we are going to mutate it
4013
4013
  if (vnode.el) {
4014
4014
  vnode = cloneVNode(vnode);
4015
- if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {
4015
+ if (rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
4016
4016
  rawVNode.ssContent = vnode;
4017
4017
  }
4018
4018
  }
@@ -4031,7 +4031,7 @@ var VueRuntimeDOM = (function (exports) {
4031
4031
  setTransitionHooks(vnode, vnode.transition);
4032
4032
  }
4033
4033
  // avoid vnode being mounted as fresh
4034
- vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;
4034
+ vnode.shapeFlag |= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;
4035
4035
  // make this key the freshest
4036
4036
  keys.delete(key);
4037
4037
  keys.add(key);
@@ -4044,7 +4044,7 @@ var VueRuntimeDOM = (function (exports) {
4044
4044
  }
4045
4045
  }
4046
4046
  // avoid vnode being unmounted
4047
- vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;
4047
+ vnode.shapeFlag |= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;
4048
4048
  current = vnode;
4049
4049
  return isSuspense(rawVNode.type) ? rawVNode : vnode;
4050
4050
  };
@@ -4067,10 +4067,10 @@ var VueRuntimeDOM = (function (exports) {
4067
4067
  return false;
4068
4068
  }
4069
4069
  function onActivated(hook, target) {
4070
- registerKeepAliveHook(hook, "a" /* ACTIVATED */, target);
4070
+ registerKeepAliveHook(hook, "a" /* LifecycleHooks.ACTIVATED */, target);
4071
4071
  }
4072
4072
  function onDeactivated(hook, target) {
4073
- registerKeepAliveHook(hook, "da" /* DEACTIVATED */, target);
4073
+ registerKeepAliveHook(hook, "da" /* LifecycleHooks.DEACTIVATED */, target);
4074
4074
  }
4075
4075
  function registerKeepAliveHook(hook, type, target = currentInstance) {
4076
4076
  // cache the deactivate branch check wrapper for injected hooks so the same
@@ -4114,16 +4114,16 @@ var VueRuntimeDOM = (function (exports) {
4114
4114
  }
4115
4115
  function resetShapeFlag(vnode) {
4116
4116
  let shapeFlag = vnode.shapeFlag;
4117
- if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {
4118
- shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;
4117
+ if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {
4118
+ shapeFlag -= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;
4119
4119
  }
4120
- if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {
4121
- shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;
4120
+ if (shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {
4121
+ shapeFlag -= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;
4122
4122
  }
4123
4123
  vnode.shapeFlag = shapeFlag;
4124
4124
  }
4125
4125
  function getInnerChild(vnode) {
4126
- return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;
4126
+ return vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */ ? vnode.ssContent : vnode;
4127
4127
  }
4128
4128
 
4129
4129
  function injectHook(type, hook, target = currentInstance, prepend = false) {
@@ -4169,19 +4169,19 @@ var VueRuntimeDOM = (function (exports) {
4169
4169
  }
4170
4170
  const createHook = (lifecycle) => (hook, target = currentInstance) =>
4171
4171
  // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)
4172
- (!isInSSRComponentSetup || lifecycle === "sp" /* SERVER_PREFETCH */) &&
4172
+ (!isInSSRComponentSetup || lifecycle === "sp" /* LifecycleHooks.SERVER_PREFETCH */) &&
4173
4173
  injectHook(lifecycle, hook, target);
4174
- const onBeforeMount = createHook("bm" /* BEFORE_MOUNT */);
4175
- const onMounted = createHook("m" /* MOUNTED */);
4176
- const onBeforeUpdate = createHook("bu" /* BEFORE_UPDATE */);
4177
- const onUpdated = createHook("u" /* UPDATED */);
4178
- const onBeforeUnmount = createHook("bum" /* BEFORE_UNMOUNT */);
4179
- const onUnmounted = createHook("um" /* UNMOUNTED */);
4180
- const onServerPrefetch = createHook("sp" /* SERVER_PREFETCH */);
4181
- const onRenderTriggered = createHook("rtg" /* RENDER_TRIGGERED */);
4182
- const onRenderTracked = createHook("rtc" /* RENDER_TRACKED */);
4174
+ const onBeforeMount = createHook("bm" /* LifecycleHooks.BEFORE_MOUNT */);
4175
+ const onMounted = createHook("m" /* LifecycleHooks.MOUNTED */);
4176
+ const onBeforeUpdate = createHook("bu" /* LifecycleHooks.BEFORE_UPDATE */);
4177
+ const onUpdated = createHook("u" /* LifecycleHooks.UPDATED */);
4178
+ const onBeforeUnmount = createHook("bum" /* LifecycleHooks.BEFORE_UNMOUNT */);
4179
+ const onUnmounted = createHook("um" /* LifecycleHooks.UNMOUNTED */);
4180
+ const onServerPrefetch = createHook("sp" /* LifecycleHooks.SERVER_PREFETCH */);
4181
+ const onRenderTriggered = createHook("rtg" /* LifecycleHooks.RENDER_TRIGGERED */);
4182
+ const onRenderTracked = createHook("rtc" /* LifecycleHooks.RENDER_TRACKED */);
4183
4183
  function onErrorCaptured(hook, target = currentInstance) {
4184
- injectHook("ec" /* ERROR_CAPTURED */, hook, target);
4184
+ injectHook("ec" /* LifecycleHooks.ERROR_CAPTURED */, hook, target);
4185
4185
  }
4186
4186
 
4187
4187
  /**
@@ -4248,7 +4248,7 @@ var VueRuntimeDOM = (function (exports) {
4248
4248
  // disable tracking inside all lifecycle hooks
4249
4249
  // since they can potentially be called inside effects.
4250
4250
  pauseTracking();
4251
- callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [
4251
+ callWithAsyncErrorHandling(hook, instance, 8 /* ErrorCodes.DIRECTIVE_HOOK */, [
4252
4252
  vnode.el,
4253
4253
  binding,
4254
4254
  vnode,
@@ -4390,7 +4390,13 @@ var VueRuntimeDOM = (function (exports) {
4390
4390
  }
4391
4391
  else if (slot) {
4392
4392
  // conditional single slot generated by <template v-if="..." #foo>
4393
- slots[slot.name] = slot.fn;
4393
+ slots[slot.name] = slot.key
4394
+ ? (...args) => {
4395
+ const res = slot.fn(...args);
4396
+ res.key = slot.key;
4397
+ return res;
4398
+ }
4399
+ : slot.fn;
4394
4400
  }
4395
4401
  }
4396
4402
  return slots;
@@ -4426,9 +4432,15 @@ var VueRuntimeDOM = (function (exports) {
4426
4432
  }
4427
4433
  openBlock();
4428
4434
  const validSlotContent = slot && ensureValidVNode(slot(props));
4429
- const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* STABLE */
4430
- ? 64 /* STABLE_FRAGMENT */
4431
- : -2 /* BAIL */);
4435
+ const rendered = createBlock(Fragment, {
4436
+ key: props.key ||
4437
+ // slot content array of a dynamic conditional slot may have a branch
4438
+ // key attached in the `createSlots` helper, respect that
4439
+ (validSlotContent && validSlotContent.key) ||
4440
+ `_${name}`
4441
+ }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* SlotFlags.STABLE */
4442
+ ? 64 /* PatchFlags.STABLE_FRAGMENT */
4443
+ : -2 /* PatchFlags.BAIL */);
4432
4444
  if (!noSlotted && rendered.scopeId) {
4433
4445
  rendered.slotScopeIds = [rendered.scopeId + '-s'];
4434
4446
  }
@@ -4456,14 +4468,16 @@ var VueRuntimeDOM = (function (exports) {
4456
4468
  * For prefixing keys in v-on="obj" with "on"
4457
4469
  * @private
4458
4470
  */
4459
- function toHandlers(obj) {
4471
+ function toHandlers(obj, preserveCaseIfNecessary) {
4460
4472
  const ret = {};
4461
4473
  if (!isObject(obj)) {
4462
4474
  warn$1(`v-on with no argument expects an object value.`);
4463
4475
  return ret;
4464
4476
  }
4465
4477
  for (const key in obj) {
4466
- ret[toHandlerKey(key)] = obj[key];
4478
+ ret[preserveCaseIfNecessary && /[A-Z]/.test(key)
4479
+ ? `on:${key}`
4480
+ : toHandlerKey(key)] = obj[key];
4467
4481
  }
4468
4482
  return ret;
4469
4483
  }
@@ -4527,23 +4541,23 @@ var VueRuntimeDOM = (function (exports) {
4527
4541
  const n = accessCache[key];
4528
4542
  if (n !== undefined) {
4529
4543
  switch (n) {
4530
- case 1 /* SETUP */:
4544
+ case 1 /* AccessTypes.SETUP */:
4531
4545
  return setupState[key];
4532
- case 2 /* DATA */:
4546
+ case 2 /* AccessTypes.DATA */:
4533
4547
  return data[key];
4534
- case 4 /* CONTEXT */:
4548
+ case 4 /* AccessTypes.CONTEXT */:
4535
4549
  return ctx[key];
4536
- case 3 /* PROPS */:
4550
+ case 3 /* AccessTypes.PROPS */:
4537
4551
  return props[key];
4538
4552
  // default: just fallthrough
4539
4553
  }
4540
4554
  }
4541
4555
  else if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {
4542
- accessCache[key] = 1 /* SETUP */;
4556
+ accessCache[key] = 1 /* AccessTypes.SETUP */;
4543
4557
  return setupState[key];
4544
4558
  }
4545
4559
  else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
4546
- accessCache[key] = 2 /* DATA */;
4560
+ accessCache[key] = 2 /* AccessTypes.DATA */;
4547
4561
  return data[key];
4548
4562
  }
4549
4563
  else if (
@@ -4551,15 +4565,15 @@ var VueRuntimeDOM = (function (exports) {
4551
4565
  // props
4552
4566
  (normalizedProps = instance.propsOptions[0]) &&
4553
4567
  hasOwn(normalizedProps, key)) {
4554
- accessCache[key] = 3 /* PROPS */;
4568
+ accessCache[key] = 3 /* AccessTypes.PROPS */;
4555
4569
  return props[key];
4556
4570
  }
4557
4571
  else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
4558
- accessCache[key] = 4 /* CONTEXT */;
4572
+ accessCache[key] = 4 /* AccessTypes.CONTEXT */;
4559
4573
  return ctx[key];
4560
4574
  }
4561
4575
  else if (shouldCacheAccess) {
4562
- accessCache[key] = 0 /* OTHER */;
4576
+ accessCache[key] = 0 /* AccessTypes.OTHER */;
4563
4577
  }
4564
4578
  }
4565
4579
  const publicGetter = publicPropertiesMap[key];
@@ -4567,7 +4581,7 @@ var VueRuntimeDOM = (function (exports) {
4567
4581
  // public $xxx properties
4568
4582
  if (publicGetter) {
4569
4583
  if (key === '$attrs') {
4570
- track(instance, "get" /* GET */, key);
4584
+ track(instance, "get" /* TrackOpTypes.GET */, key);
4571
4585
  markAttrsAccessed();
4572
4586
  }
4573
4587
  return publicGetter(instance);
@@ -4580,7 +4594,7 @@ var VueRuntimeDOM = (function (exports) {
4580
4594
  }
4581
4595
  else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
4582
4596
  // user may set custom properties to `this` that start with `$`
4583
- accessCache[key] = 4 /* CONTEXT */;
4597
+ accessCache[key] = 4 /* AccessTypes.CONTEXT */;
4584
4598
  return ctx[key];
4585
4599
  }
4586
4600
  else if (
@@ -4763,7 +4777,7 @@ var VueRuntimeDOM = (function (exports) {
4763
4777
  // call beforeCreate first before accessing other options since
4764
4778
  // the hook may mutate resolved options (#2791)
4765
4779
  if (options.beforeCreate) {
4766
- callHook(options.beforeCreate, instance, "bc" /* BEFORE_CREATE */);
4780
+ callHook(options.beforeCreate, instance, "bc" /* LifecycleHooks.BEFORE_CREATE */);
4767
4781
  }
4768
4782
  const {
4769
4783
  // state
@@ -4779,7 +4793,7 @@ var VueRuntimeDOM = (function (exports) {
4779
4793
  const [propsOptions] = instance.propsOptions;
4780
4794
  if (propsOptions) {
4781
4795
  for (const key in propsOptions) {
4782
- checkDuplicateProperties("Props" /* PROPS */, key);
4796
+ checkDuplicateProperties("Props" /* OptionTypes.PROPS */, key);
4783
4797
  }
4784
4798
  }
4785
4799
  }
@@ -4809,7 +4823,7 @@ var VueRuntimeDOM = (function (exports) {
4809
4823
  });
4810
4824
  }
4811
4825
  {
4812
- checkDuplicateProperties("Methods" /* METHODS */, key);
4826
+ checkDuplicateProperties("Methods" /* OptionTypes.METHODS */, key);
4813
4827
  }
4814
4828
  }
4815
4829
  else {
@@ -4836,7 +4850,7 @@ var VueRuntimeDOM = (function (exports) {
4836
4850
  instance.data = reactive(data);
4837
4851
  {
4838
4852
  for (const key in data) {
4839
- checkDuplicateProperties("Data" /* DATA */, key);
4853
+ checkDuplicateProperties("Data" /* OptionTypes.DATA */, key);
4840
4854
  // expose data on ctx during dev
4841
4855
  if (!isReservedPrefix(key[0])) {
4842
4856
  Object.defineProperty(ctx, key, {
@@ -4880,7 +4894,7 @@ var VueRuntimeDOM = (function (exports) {
4880
4894
  set: v => (c.value = v)
4881
4895
  });
4882
4896
  {
4883
- checkDuplicateProperties("Computed" /* COMPUTED */, key);
4897
+ checkDuplicateProperties("Computed" /* OptionTypes.COMPUTED */, key);
4884
4898
  }
4885
4899
  }
4886
4900
  }
@@ -4898,7 +4912,7 @@ var VueRuntimeDOM = (function (exports) {
4898
4912
  });
4899
4913
  }
4900
4914
  if (created) {
4901
- callHook(created, instance, "c" /* CREATED */);
4915
+ callHook(created, instance, "c" /* LifecycleHooks.CREATED */);
4902
4916
  }
4903
4917
  function registerLifecycleHook(register, hook) {
4904
4918
  if (isArray(hook)) {
@@ -4991,7 +5005,7 @@ var VueRuntimeDOM = (function (exports) {
4991
5005
  ctx[key] = injected;
4992
5006
  }
4993
5007
  {
4994
- checkDuplicateProperties("Inject" /* INJECT */, key);
5008
+ checkDuplicateProperties("Inject" /* OptionTypes.INJECT */, key);
4995
5009
  }
4996
5010
  }
4997
5011
  }
@@ -5062,7 +5076,9 @@ var VueRuntimeDOM = (function (exports) {
5062
5076
  }
5063
5077
  mergeOptions(resolved, base, optionMergeStrategies);
5064
5078
  }
5065
- cache.set(base, resolved);
5079
+ if (isObject(base)) {
5080
+ cache.set(base, resolved);
5081
+ }
5066
5082
  return resolved;
5067
5083
  }
5068
5084
  function mergeOptions(to, from, strats, asMixin = false) {
@@ -5191,6 +5207,13 @@ var VueRuntimeDOM = (function (exports) {
5191
5207
  }
5192
5208
  instance.attrs = attrs;
5193
5209
  }
5210
+ function isInHmrContext(instance) {
5211
+ while (instance) {
5212
+ if (instance.type.__hmrId)
5213
+ return true;
5214
+ instance = instance.parent;
5215
+ }
5216
+ }
5194
5217
  function updateProps(instance, rawProps, rawPrevProps, optimized) {
5195
5218
  const { props, attrs, vnode: { patchFlag } } = instance;
5196
5219
  const rawCurrentProps = toRaw(props);
@@ -5200,11 +5223,10 @@ var VueRuntimeDOM = (function (exports) {
5200
5223
  // always force full diff in dev
5201
5224
  // - #1942 if hmr is enabled with sfc component
5202
5225
  // - vite#872 non-sfc component used by sfc component
5203
- !((instance.type.__hmrId ||
5204
- (instance.parent && instance.parent.type.__hmrId))) &&
5226
+ !(isInHmrContext(instance)) &&
5205
5227
  (optimized || patchFlag > 0) &&
5206
- !(patchFlag & 16 /* FULL_PROPS */)) {
5207
- if (patchFlag & 8 /* PROPS */) {
5228
+ !(patchFlag & 16 /* PatchFlags.FULL_PROPS */)) {
5229
+ if (patchFlag & 8 /* PatchFlags.PROPS */) {
5208
5230
  // Compiler-generated props & no keys change, just set the updated
5209
5231
  // the props.
5210
5232
  const propsToUpdate = instance.vnode.dynamicProps;
@@ -5283,7 +5305,7 @@ var VueRuntimeDOM = (function (exports) {
5283
5305
  }
5284
5306
  // trigger updates for $attrs in case it's used in component slots
5285
5307
  if (hasAttrsChanged) {
5286
- trigger(instance, "set" /* SET */, '$attrs');
5308
+ trigger(instance, "set" /* TriggerOpTypes.SET */, '$attrs');
5287
5309
  }
5288
5310
  {
5289
5311
  validateProps(rawProps || {}, props, instance);
@@ -5352,11 +5374,11 @@ var VueRuntimeDOM = (function (exports) {
5352
5374
  }
5353
5375
  }
5354
5376
  // boolean casting
5355
- if (opt[0 /* shouldCast */]) {
5377
+ if (opt[0 /* BooleanFlags.shouldCast */]) {
5356
5378
  if (isAbsent && !hasDefault) {
5357
5379
  value = false;
5358
5380
  }
5359
- else if (opt[1 /* shouldCastTrue */] &&
5381
+ else if (opt[1 /* BooleanFlags.shouldCastTrue */] &&
5360
5382
  (value === '' || value === hyphenate(key))) {
5361
5383
  value = true;
5362
5384
  }
@@ -5394,7 +5416,9 @@ var VueRuntimeDOM = (function (exports) {
5394
5416
  }
5395
5417
  }
5396
5418
  if (!raw && !hasExtends) {
5397
- cache.set(comp, EMPTY_ARR);
5419
+ if (isObject(comp)) {
5420
+ cache.set(comp, EMPTY_ARR);
5421
+ }
5398
5422
  return EMPTY_ARR;
5399
5423
  }
5400
5424
  if (isArray(raw)) {
@@ -5421,8 +5445,8 @@ var VueRuntimeDOM = (function (exports) {
5421
5445
  if (prop) {
5422
5446
  const booleanIndex = getTypeIndex(Boolean, prop.type);
5423
5447
  const stringIndex = getTypeIndex(String, prop.type);
5424
- prop[0 /* shouldCast */] = booleanIndex > -1;
5425
- prop[1 /* shouldCastTrue */] =
5448
+ prop[0 /* BooleanFlags.shouldCast */] = booleanIndex > -1;
5449
+ prop[1 /* BooleanFlags.shouldCastTrue */] =
5426
5450
  stringIndex < 0 || booleanIndex < stringIndex;
5427
5451
  // if the prop needs boolean casting or default value
5428
5452
  if (booleanIndex > -1 || hasOwn(prop, 'default')) {
@@ -5433,7 +5457,9 @@ var VueRuntimeDOM = (function (exports) {
5433
5457
  }
5434
5458
  }
5435
5459
  const res = [normalized, needCastKeys];
5436
- cache.set(comp, res);
5460
+ if (isObject(comp)) {
5461
+ cache.set(comp, res);
5462
+ }
5437
5463
  return res;
5438
5464
  }
5439
5465
  function validatePropName(key) {
@@ -5643,7 +5669,7 @@ var VueRuntimeDOM = (function (exports) {
5643
5669
  instance.slots.default = () => normalized;
5644
5670
  };
5645
5671
  const initSlots = (instance, children) => {
5646
- if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {
5672
+ if (instance.vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {
5647
5673
  const type = children._;
5648
5674
  if (type) {
5649
5675
  // users can get the shallow readonly version of the slots object through `this.$slots`,
@@ -5668,7 +5694,7 @@ var VueRuntimeDOM = (function (exports) {
5668
5694
  const { vnode, slots } = instance;
5669
5695
  let needDeletionCheck = true;
5670
5696
  let deletionComparisonTarget = EMPTY_OBJ;
5671
- if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {
5697
+ if (vnode.shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */) {
5672
5698
  const type = children._;
5673
5699
  if (type) {
5674
5700
  // compiled slots.
@@ -5677,7 +5703,7 @@ var VueRuntimeDOM = (function (exports) {
5677
5703
  // force update slots and mark instance for hmr as well
5678
5704
  extend(slots, children);
5679
5705
  }
5680
- else if (optimized && type === 1 /* STABLE */) {
5706
+ else if (optimized && type === 1 /* SlotFlags.STABLE */) {
5681
5707
  // compiled AND stable.
5682
5708
  // no need to update, and skip stale slots removal.
5683
5709
  needDeletionCheck = false;
@@ -5690,7 +5716,7 @@ var VueRuntimeDOM = (function (exports) {
5690
5716
  // when rendering the optimized slots by manually written render function,
5691
5717
  // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,
5692
5718
  // i.e. let the `renderSlot` create the bailed Fragment
5693
- if (!optimized && type === 1 /* STABLE */) {
5719
+ if (!optimized && type === 1 /* SlotFlags.STABLE */) {
5694
5720
  delete slots._;
5695
5721
  }
5696
5722
  }
@@ -5901,7 +5927,7 @@ var VueRuntimeDOM = (function (exports) {
5901
5927
  // because the template ref is forwarded to inner component
5902
5928
  return;
5903
5929
  }
5904
- const refValue = vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */
5930
+ const refValue = vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */
5905
5931
  ? getExposeProxy(vnode.component) || vnode.component.proxy
5906
5932
  : vnode.el;
5907
5933
  const value = isUnmount ? null : refValue;
@@ -5927,7 +5953,7 @@ var VueRuntimeDOM = (function (exports) {
5927
5953
  }
5928
5954
  }
5929
5955
  if (isFunction(ref)) {
5930
- callWithErrorHandling(ref, owner, 12 /* FUNCTION_REF */, [value, refs]);
5956
+ callWithErrorHandling(ref, owner, 12 /* ErrorCodes.FUNCTION_REF */, [value, refs]);
5931
5957
  }
5932
5958
  else {
5933
5959
  const _isString = isString(ref);
@@ -5989,7 +6015,7 @@ var VueRuntimeDOM = (function (exports) {
5989
6015
 
5990
6016
  let hasMismatch = false;
5991
6017
  const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';
5992
- const isComment = (node) => node.nodeType === 8 /* COMMENT */;
6018
+ const isComment = (node) => node.nodeType === 8 /* DOMNodeTypes.COMMENT */;
5993
6019
  // Note: hydration is DOM-specific
5994
6020
  // But we have to place it in core due to tight coupling with core - splitting
5995
6021
  // it out creates a ton of unnecessary complexity.
@@ -6021,14 +6047,14 @@ var VueRuntimeDOM = (function (exports) {
6021
6047
  const { type, ref, shapeFlag, patchFlag } = vnode;
6022
6048
  const domType = node.nodeType;
6023
6049
  vnode.el = node;
6024
- if (patchFlag === -2 /* BAIL */) {
6050
+ if (patchFlag === -2 /* PatchFlags.BAIL */) {
6025
6051
  optimized = false;
6026
6052
  vnode.dynamicChildren = null;
6027
6053
  }
6028
6054
  let nextNode = null;
6029
6055
  switch (type) {
6030
6056
  case Text:
6031
- if (domType !== 3 /* TEXT */) {
6057
+ if (domType !== 3 /* DOMNodeTypes.TEXT */) {
6032
6058
  // #5728 empty text node inside a slot can cause hydration failure
6033
6059
  // because the server rendered HTML won't contain a text node
6034
6060
  if (vnode.children === '') {
@@ -6051,7 +6077,7 @@ var VueRuntimeDOM = (function (exports) {
6051
6077
  }
6052
6078
  break;
6053
6079
  case Comment:
6054
- if (domType !== 8 /* COMMENT */ || isFragmentStart) {
6080
+ if (domType !== 8 /* DOMNodeTypes.COMMENT */ || isFragmentStart) {
6055
6081
  nextNode = onMismatch();
6056
6082
  }
6057
6083
  else {
@@ -6059,7 +6085,7 @@ var VueRuntimeDOM = (function (exports) {
6059
6085
  }
6060
6086
  break;
6061
6087
  case Static:
6062
- if (domType !== 1 /* ELEMENT */ && domType !== 3 /* TEXT */) {
6088
+ if (domType !== 1 /* DOMNodeTypes.ELEMENT */ && domType !== 3 /* DOMNodeTypes.TEXT */) {
6063
6089
  nextNode = onMismatch();
6064
6090
  }
6065
6091
  else {
@@ -6071,7 +6097,7 @@ var VueRuntimeDOM = (function (exports) {
6071
6097
  for (let i = 0; i < vnode.staticCount; i++) {
6072
6098
  if (needToAdoptContent)
6073
6099
  vnode.children +=
6074
- nextNode.nodeType === 1 /* ELEMENT */
6100
+ nextNode.nodeType === 1 /* DOMNodeTypes.ELEMENT */
6075
6101
  ? nextNode.outerHTML
6076
6102
  : nextNode.data;
6077
6103
  if (i === vnode.staticCount - 1) {
@@ -6091,8 +6117,8 @@ var VueRuntimeDOM = (function (exports) {
6091
6117
  }
6092
6118
  break;
6093
6119
  default:
6094
- if (shapeFlag & 1 /* ELEMENT */) {
6095
- if (domType !== 1 /* ELEMENT */ ||
6120
+ if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {
6121
+ if (domType !== 1 /* DOMNodeTypes.ELEMENT */ ||
6096
6122
  vnode.type.toLowerCase() !==
6097
6123
  node.tagName.toLowerCase()) {
6098
6124
  nextNode = onMismatch();
@@ -6101,7 +6127,7 @@ var VueRuntimeDOM = (function (exports) {
6101
6127
  nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
6102
6128
  }
6103
6129
  }
6104
- else if (shapeFlag & 6 /* COMPONENT */) {
6130
+ else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
6105
6131
  // when setting up the render effect, if the initial vnode already
6106
6132
  // has .el set, the component will perform hydration instead of mount
6107
6133
  // on its sub-tree.
@@ -6140,15 +6166,15 @@ var VueRuntimeDOM = (function (exports) {
6140
6166
  vnode.component.subTree = subTree;
6141
6167
  }
6142
6168
  }
6143
- else if (shapeFlag & 64 /* TELEPORT */) {
6144
- if (domType !== 8 /* COMMENT */) {
6169
+ else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {
6170
+ if (domType !== 8 /* DOMNodeTypes.COMMENT */) {
6145
6171
  nextNode = onMismatch();
6146
6172
  }
6147
6173
  else {
6148
6174
  nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
6149
6175
  }
6150
6176
  }
6151
- else if (shapeFlag & 128 /* SUSPENSE */) {
6177
+ else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
6152
6178
  nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
6153
6179
  }
6154
6180
  else {
@@ -6176,7 +6202,7 @@ var VueRuntimeDOM = (function (exports) {
6176
6202
  if (props) {
6177
6203
  if (forcePatchValue ||
6178
6204
  !optimized ||
6179
- patchFlag & (16 /* FULL_PROPS */ | 32 /* HYDRATE_EVENTS */)) {
6205
+ patchFlag & (16 /* PatchFlags.FULL_PROPS */ | 32 /* PatchFlags.HYDRATE_EVENTS */)) {
6180
6206
  for (const key in props) {
6181
6207
  if ((forcePatchValue && key.endsWith('value')) ||
6182
6208
  (isOn(key) && !isReservedProp(key))) {
@@ -6205,7 +6231,7 @@ var VueRuntimeDOM = (function (exports) {
6205
6231
  }, parentSuspense);
6206
6232
  }
6207
6233
  // children
6208
- if (shapeFlag & 16 /* ARRAY_CHILDREN */ &&
6234
+ if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */ &&
6209
6235
  // skip if element has innerHTML / textContent
6210
6236
  !(props && (props.innerHTML || props.textContent))) {
6211
6237
  let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
@@ -6223,7 +6249,7 @@ var VueRuntimeDOM = (function (exports) {
6223
6249
  remove(cur);
6224
6250
  }
6225
6251
  }
6226
- else if (shapeFlag & 8 /* TEXT_CHILDREN */) {
6252
+ else if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {
6227
6253
  if (el.textContent !== vnode.children) {
6228
6254
  hasMismatch = true;
6229
6255
  warn$1(`Hydration text content mismatch in <${vnode.type}>:\n` +
@@ -6286,7 +6312,7 @@ var VueRuntimeDOM = (function (exports) {
6286
6312
  };
6287
6313
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
6288
6314
  hasMismatch = true;
6289
- warn$1(`Hydration node mismatch:\n- Client vnode:`, vnode.type, `\n- Server rendered DOM:`, node, node.nodeType === 3 /* TEXT */
6315
+ warn$1(`Hydration node mismatch:\n- Client vnode:`, vnode.type, `\n- Server rendered DOM:`, node, node.nodeType === 3 /* DOMNodeTypes.TEXT */
6290
6316
  ? `(text)`
6291
6317
  : isComment(node) && node.data === '['
6292
6318
  ? `(start of fragment)`
@@ -6417,7 +6443,7 @@ var VueRuntimeDOM = (function (exports) {
6417
6443
  unmount(n1, parentComponent, parentSuspense, true);
6418
6444
  n1 = null;
6419
6445
  }
6420
- if (n2.patchFlag === -2 /* BAIL */) {
6446
+ if (n2.patchFlag === -2 /* PatchFlags.BAIL */) {
6421
6447
  optimized = false;
6422
6448
  n2.dynamicChildren = null;
6423
6449
  }
@@ -6441,16 +6467,16 @@ var VueRuntimeDOM = (function (exports) {
6441
6467
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
6442
6468
  break;
6443
6469
  default:
6444
- if (shapeFlag & 1 /* ELEMENT */) {
6470
+ if (shapeFlag & 1 /* ShapeFlags.ELEMENT */) {
6445
6471
  processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
6446
6472
  }
6447
- else if (shapeFlag & 6 /* COMPONENT */) {
6473
+ else if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
6448
6474
  processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
6449
6475
  }
6450
- else if (shapeFlag & 64 /* TELEPORT */) {
6476
+ else if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {
6451
6477
  type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);
6452
6478
  }
6453
- else if (shapeFlag & 128 /* SUSPENSE */) {
6479
+ else if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
6454
6480
  type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);
6455
6481
  }
6456
6482
  else {
@@ -6536,10 +6562,10 @@ var VueRuntimeDOM = (function (exports) {
6536
6562
  el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);
6537
6563
  // mount children first, since some props may rely on child content
6538
6564
  // being already rendered, e.g. `<select value>`
6539
- if (shapeFlag & 8 /* TEXT_CHILDREN */) {
6565
+ if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {
6540
6566
  hostSetElementText(el, vnode.children);
6541
6567
  }
6542
- else if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
6568
+ else if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
6543
6569
  mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== 'foreignObject', slotScopeIds, optimized);
6544
6570
  }
6545
6571
  if (dirs) {
@@ -6615,7 +6641,7 @@ var VueRuntimeDOM = (function (exports) {
6615
6641
  if (parentComponent) {
6616
6642
  let subTree = parentComponent.subTree;
6617
6643
  if (subTree.patchFlag > 0 &&
6618
- subTree.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {
6644
+ subTree.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {
6619
6645
  subTree =
6620
6646
  filterSingleRoot(subTree.children) || subTree;
6621
6647
  }
@@ -6638,7 +6664,7 @@ var VueRuntimeDOM = (function (exports) {
6638
6664
  let { patchFlag, dynamicChildren, dirs } = n2;
6639
6665
  // #1426 take the old vnode's patch flag into account since user may clone a
6640
6666
  // compiler-generated vnode, which de-opts to FULL_PROPS
6641
- patchFlag |= n1.patchFlag & 16 /* FULL_PROPS */;
6667
+ patchFlag |= n1.patchFlag & 16 /* PatchFlags.FULL_PROPS */;
6642
6668
  const oldProps = n1.props || EMPTY_OBJ;
6643
6669
  const newProps = n2.props || EMPTY_OBJ;
6644
6670
  let vnodeHook;
@@ -6673,21 +6699,21 @@ var VueRuntimeDOM = (function (exports) {
6673
6699
  // generated by the compiler and can take the fast path.
6674
6700
  // in this path old node and new node are guaranteed to have the same shape
6675
6701
  // (i.e. at the exact same position in the source template)
6676
- if (patchFlag & 16 /* FULL_PROPS */) {
6702
+ if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {
6677
6703
  // element props contain dynamic keys, full diff needed
6678
6704
  patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);
6679
6705
  }
6680
6706
  else {
6681
6707
  // class
6682
6708
  // this flag is matched when the element has dynamic class bindings.
6683
- if (patchFlag & 2 /* CLASS */) {
6709
+ if (patchFlag & 2 /* PatchFlags.CLASS */) {
6684
6710
  if (oldProps.class !== newProps.class) {
6685
6711
  hostPatchProp(el, 'class', null, newProps.class, isSVG);
6686
6712
  }
6687
6713
  }
6688
6714
  // style
6689
6715
  // this flag is matched when the element has dynamic style bindings
6690
- if (patchFlag & 4 /* STYLE */) {
6716
+ if (patchFlag & 4 /* PatchFlags.STYLE */) {
6691
6717
  hostPatchProp(el, 'style', oldProps.style, newProps.style, isSVG);
6692
6718
  }
6693
6719
  // props
@@ -6696,7 +6722,7 @@ var VueRuntimeDOM = (function (exports) {
6696
6722
  // faster iteration.
6697
6723
  // Note dynamic keys like :[foo]="bar" will cause this optimization to
6698
6724
  // bail out and go through a full diff because we need to unset the old key
6699
- if (patchFlag & 8 /* PROPS */) {
6725
+ if (patchFlag & 8 /* PatchFlags.PROPS */) {
6700
6726
  // if the flag is present then dynamicProps must be non-null
6701
6727
  const propsToUpdate = n2.dynamicProps;
6702
6728
  for (let i = 0; i < propsToUpdate.length; i++) {
@@ -6712,7 +6738,7 @@ var VueRuntimeDOM = (function (exports) {
6712
6738
  }
6713
6739
  // text
6714
6740
  // This flag is matched when the element has only dynamic text children.
6715
- if (patchFlag & 1 /* TEXT */) {
6741
+ if (patchFlag & 1 /* PatchFlags.TEXT */) {
6716
6742
  if (n1.children !== n2.children) {
6717
6743
  hostSetElementText(el, n2.children);
6718
6744
  }
@@ -6746,7 +6772,7 @@ var VueRuntimeDOM = (function (exports) {
6746
6772
  // which also requires the correct parent container
6747
6773
  !isSameVNodeType(oldVNode, newVNode) ||
6748
6774
  // - In the case of a component, it could contain anything.
6749
- oldVNode.shapeFlag & (6 /* COMPONENT */ | 64 /* TELEPORT */))
6775
+ oldVNode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 64 /* ShapeFlags.TELEPORT */))
6750
6776
  ? hostParentNode(oldVNode.el)
6751
6777
  : // In other cases, the parent container is not actually used so we
6752
6778
  // just pass the block element here to avoid a DOM parentNode call.
@@ -6784,7 +6810,7 @@ var VueRuntimeDOM = (function (exports) {
6784
6810
  const fragmentEndAnchor = (n2.anchor = n1 ? n1.anchor : hostCreateText(''));
6785
6811
  let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
6786
6812
  if (// #5523 dev root fragment may inherit directives
6787
- (isHmrUpdating || patchFlag & 2048 /* DEV_ROOT_FRAGMENT */)) {
6813
+ (isHmrUpdating || patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */)) {
6788
6814
  // HMR updated / Dev root fragment (w/ comments), force full diff
6789
6815
  patchFlag = 0;
6790
6816
  optimized = false;
@@ -6806,7 +6832,7 @@ var VueRuntimeDOM = (function (exports) {
6806
6832
  }
6807
6833
  else {
6808
6834
  if (patchFlag > 0 &&
6809
- patchFlag & 64 /* STABLE_FRAGMENT */ &&
6835
+ patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */ &&
6810
6836
  dynamicChildren &&
6811
6837
  // #2715 the previous fragment could've been a BAILed one as a result
6812
6838
  // of renderSlot() with no valid children
@@ -6839,7 +6865,7 @@ var VueRuntimeDOM = (function (exports) {
6839
6865
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
6840
6866
  n2.slotScopeIds = slotScopeIds;
6841
6867
  if (n1 == null) {
6842
- if (n2.shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {
6868
+ if (n2.shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {
6843
6869
  parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);
6844
6870
  }
6845
6871
  else {
@@ -7001,10 +7027,10 @@ var VueRuntimeDOM = (function (exports) {
7001
7027
  // activated hook for keep-alive roots.
7002
7028
  // #1742 activated hook must be accessed after first render
7003
7029
  // since the hook may be injected by a child keep-alive
7004
- if (initialVNode.shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */ ||
7030
+ if (initialVNode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */ ||
7005
7031
  (parent &&
7006
7032
  isAsyncWrapper(parent.vnode) &&
7007
- parent.vnode.shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */)) {
7033
+ parent.vnode.shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */)) {
7008
7034
  instance.a && queuePostRenderEffect(instance.a, parentSuspense);
7009
7035
  }
7010
7036
  instance.isMounted = true;
@@ -7115,7 +7141,7 @@ var VueRuntimeDOM = (function (exports) {
7115
7141
  pauseTracking();
7116
7142
  // props update may have triggered pre-flush watchers.
7117
7143
  // flush them before the render update.
7118
- flushPreFlushCbs(undefined, instance.update);
7144
+ flushPreFlushCbs();
7119
7145
  resetTracking();
7120
7146
  };
7121
7147
  const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {
@@ -7125,22 +7151,22 @@ var VueRuntimeDOM = (function (exports) {
7125
7151
  const { patchFlag, shapeFlag } = n2;
7126
7152
  // fast path
7127
7153
  if (patchFlag > 0) {
7128
- if (patchFlag & 128 /* KEYED_FRAGMENT */) {
7154
+ if (patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */) {
7129
7155
  // this could be either fully-keyed or mixed (some keyed some not)
7130
7156
  // presence of patchFlag means children are guaranteed to be arrays
7131
7157
  patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
7132
7158
  return;
7133
7159
  }
7134
- else if (patchFlag & 256 /* UNKEYED_FRAGMENT */) {
7160
+ else if (patchFlag & 256 /* PatchFlags.UNKEYED_FRAGMENT */) {
7135
7161
  // unkeyed
7136
7162
  patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
7137
7163
  return;
7138
7164
  }
7139
7165
  }
7140
7166
  // children has 3 possibilities: text, array or no children.
7141
- if (shapeFlag & 8 /* TEXT_CHILDREN */) {
7167
+ if (shapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {
7142
7168
  // text children fast path
7143
- if (prevShapeFlag & 16 /* ARRAY_CHILDREN */) {
7169
+ if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
7144
7170
  unmountChildren(c1, parentComponent, parentSuspense);
7145
7171
  }
7146
7172
  if (c2 !== c1) {
@@ -7148,9 +7174,9 @@ var VueRuntimeDOM = (function (exports) {
7148
7174
  }
7149
7175
  }
7150
7176
  else {
7151
- if (prevShapeFlag & 16 /* ARRAY_CHILDREN */) {
7177
+ if (prevShapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
7152
7178
  // prev children was array
7153
- if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
7179
+ if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
7154
7180
  // two arrays, cannot assume anything, do full diff
7155
7181
  patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
7156
7182
  }
@@ -7162,11 +7188,11 @@ var VueRuntimeDOM = (function (exports) {
7162
7188
  else {
7163
7189
  // prev children was text OR null
7164
7190
  // new children is array OR null
7165
- if (prevShapeFlag & 8 /* TEXT_CHILDREN */) {
7191
+ if (prevShapeFlag & 8 /* ShapeFlags.TEXT_CHILDREN */) {
7166
7192
  hostSetElementText(container, '');
7167
7193
  }
7168
7194
  // mount new if array
7169
- if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
7195
+ if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
7170
7196
  mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
7171
7197
  }
7172
7198
  }
@@ -7357,7 +7383,7 @@ var VueRuntimeDOM = (function (exports) {
7357
7383
  // There is no stable subsequence (e.g. a reverse)
7358
7384
  // OR current node is not among the stable sequence
7359
7385
  if (j < 0 || i !== increasingNewIndexSequence[j]) {
7360
- move(nextChild, container, anchor, 2 /* REORDER */);
7386
+ move(nextChild, container, anchor, 2 /* MoveType.REORDER */);
7361
7387
  }
7362
7388
  else {
7363
7389
  j--;
@@ -7368,15 +7394,15 @@ var VueRuntimeDOM = (function (exports) {
7368
7394
  };
7369
7395
  const move = (vnode, container, anchor, moveType, parentSuspense = null) => {
7370
7396
  const { el, type, transition, children, shapeFlag } = vnode;
7371
- if (shapeFlag & 6 /* COMPONENT */) {
7397
+ if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
7372
7398
  move(vnode.component.subTree, container, anchor, moveType);
7373
7399
  return;
7374
7400
  }
7375
- if (shapeFlag & 128 /* SUSPENSE */) {
7401
+ if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
7376
7402
  vnode.suspense.move(container, anchor, moveType);
7377
7403
  return;
7378
7404
  }
7379
- if (shapeFlag & 64 /* TELEPORT */) {
7405
+ if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {
7380
7406
  type.move(vnode, container, anchor, internals);
7381
7407
  return;
7382
7408
  }
@@ -7393,11 +7419,11 @@ var VueRuntimeDOM = (function (exports) {
7393
7419
  return;
7394
7420
  }
7395
7421
  // single nodes
7396
- const needTransition = moveType !== 2 /* REORDER */ &&
7397
- shapeFlag & 1 /* ELEMENT */ &&
7422
+ const needTransition = moveType !== 2 /* MoveType.REORDER */ &&
7423
+ shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&
7398
7424
  transition;
7399
7425
  if (needTransition) {
7400
- if (moveType === 0 /* ENTER */) {
7426
+ if (moveType === 0 /* MoveType.ENTER */) {
7401
7427
  transition.beforeEnter(el);
7402
7428
  hostInsert(el, container, anchor);
7403
7429
  queuePostRenderEffect(() => transition.enter(el), parentSuspense);
@@ -7429,42 +7455,42 @@ var VueRuntimeDOM = (function (exports) {
7429
7455
  if (ref != null) {
7430
7456
  setRef(ref, null, parentSuspense, vnode, true);
7431
7457
  }
7432
- if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {
7458
+ if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {
7433
7459
  parentComponent.ctx.deactivate(vnode);
7434
7460
  return;
7435
7461
  }
7436
- const shouldInvokeDirs = shapeFlag & 1 /* ELEMENT */ && dirs;
7462
+ const shouldInvokeDirs = shapeFlag & 1 /* ShapeFlags.ELEMENT */ && dirs;
7437
7463
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
7438
7464
  let vnodeHook;
7439
7465
  if (shouldInvokeVnodeHook &&
7440
7466
  (vnodeHook = props && props.onVnodeBeforeUnmount)) {
7441
7467
  invokeVNodeHook(vnodeHook, parentComponent, vnode);
7442
7468
  }
7443
- if (shapeFlag & 6 /* COMPONENT */) {
7469
+ if (shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
7444
7470
  unmountComponent(vnode.component, parentSuspense, doRemove);
7445
7471
  }
7446
7472
  else {
7447
- if (shapeFlag & 128 /* SUSPENSE */) {
7473
+ if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
7448
7474
  vnode.suspense.unmount(parentSuspense, doRemove);
7449
7475
  return;
7450
7476
  }
7451
7477
  if (shouldInvokeDirs) {
7452
7478
  invokeDirectiveHook(vnode, null, parentComponent, 'beforeUnmount');
7453
7479
  }
7454
- if (shapeFlag & 64 /* TELEPORT */) {
7480
+ if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {
7455
7481
  vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);
7456
7482
  }
7457
7483
  else if (dynamicChildren &&
7458
7484
  // #1153: fast path should not be taken for non-stable (v-for) fragments
7459
7485
  (type !== Fragment ||
7460
- (patchFlag > 0 && patchFlag & 64 /* STABLE_FRAGMENT */))) {
7486
+ (patchFlag > 0 && patchFlag & 64 /* PatchFlags.STABLE_FRAGMENT */))) {
7461
7487
  // fast path for block nodes: only need to unmount dynamic children.
7462
7488
  unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
7463
7489
  }
7464
7490
  else if ((type === Fragment &&
7465
7491
  patchFlag &
7466
- (128 /* KEYED_FRAGMENT */ | 256 /* UNKEYED_FRAGMENT */)) ||
7467
- (!optimized && shapeFlag & 16 /* ARRAY_CHILDREN */)) {
7492
+ (128 /* PatchFlags.KEYED_FRAGMENT */ | 256 /* PatchFlags.UNKEYED_FRAGMENT */)) ||
7493
+ (!optimized && shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */)) {
7468
7494
  unmountChildren(children, parentComponent, parentSuspense);
7469
7495
  }
7470
7496
  if (doRemove) {
@@ -7485,7 +7511,7 @@ var VueRuntimeDOM = (function (exports) {
7485
7511
  const { type, el, anchor, transition } = vnode;
7486
7512
  if (type === Fragment) {
7487
7513
  if (vnode.patchFlag > 0 &&
7488
- vnode.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */ &&
7514
+ vnode.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */ &&
7489
7515
  transition &&
7490
7516
  !transition.persisted) {
7491
7517
  vnode.children.forEach(child => {
@@ -7512,7 +7538,7 @@ var VueRuntimeDOM = (function (exports) {
7512
7538
  transition.afterLeave();
7513
7539
  }
7514
7540
  };
7515
- if (vnode.shapeFlag & 1 /* ELEMENT */ &&
7541
+ if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */ &&
7516
7542
  transition &&
7517
7543
  !transition.persisted) {
7518
7544
  const { leave, delayLeave } = transition;
@@ -7588,10 +7614,10 @@ var VueRuntimeDOM = (function (exports) {
7588
7614
  }
7589
7615
  };
7590
7616
  const getNextHostNode = vnode => {
7591
- if (vnode.shapeFlag & 6 /* COMPONENT */) {
7617
+ if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
7592
7618
  return getNextHostNode(vnode.component.subTree);
7593
7619
  }
7594
- if (vnode.shapeFlag & 128 /* SUSPENSE */) {
7620
+ if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
7595
7621
  return vnode.suspense.next();
7596
7622
  }
7597
7623
  return hostNextSibling((vnode.anchor || vnode.el));
@@ -7605,6 +7631,7 @@ var VueRuntimeDOM = (function (exports) {
7605
7631
  else {
7606
7632
  patch(container._vnode || null, vnode, container, null, null, null, isSVG);
7607
7633
  }
7634
+ flushPreFlushCbs();
7608
7635
  flushPostFlushCbs();
7609
7636
  container._vnode = vnode;
7610
7637
  };
@@ -7654,8 +7681,8 @@ var VueRuntimeDOM = (function (exports) {
7654
7681
  // guaranteed to be vnodes
7655
7682
  const c1 = ch1[i];
7656
7683
  let c2 = ch2[i];
7657
- if (c2.shapeFlag & 1 /* ELEMENT */ && !c2.dynamicChildren) {
7658
- if (c2.patchFlag <= 0 || c2.patchFlag === 32 /* HYDRATE_EVENTS */) {
7684
+ if (c2.shapeFlag & 1 /* ShapeFlags.ELEMENT */ && !c2.dynamicChildren) {
7685
+ if (c2.patchFlag <= 0 || c2.patchFlag === 32 /* PatchFlags.HYDRATE_EVENTS */) {
7659
7686
  c2 = ch2[i] = cloneIfMounted(ch2[i]);
7660
7687
  c2.el = c1.el;
7661
7688
  }
@@ -7775,7 +7802,7 @@ var VueRuntimeDOM = (function (exports) {
7775
7802
  const mount = (container, anchor) => {
7776
7803
  // Teleport *always* has Array children. This is enforced in both the
7777
7804
  // compiler and vnode children normalization.
7778
- if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
7805
+ if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
7779
7806
  mountChildren(children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
7780
7807
  }
7781
7808
  };
@@ -7811,7 +7838,7 @@ var VueRuntimeDOM = (function (exports) {
7811
7838
  if (!wasDisabled) {
7812
7839
  // enabled -> disabled
7813
7840
  // move into main container
7814
- moveTeleport(n2, container, mainAnchor, internals, 1 /* TOGGLE */);
7841
+ moveTeleport(n2, container, mainAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);
7815
7842
  }
7816
7843
  }
7817
7844
  else {
@@ -7819,7 +7846,7 @@ var VueRuntimeDOM = (function (exports) {
7819
7846
  if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
7820
7847
  const nextTarget = (n2.target = resolveTarget(n2.props, querySelector));
7821
7848
  if (nextTarget) {
7822
- moveTeleport(n2, nextTarget, null, internals, 0 /* TARGET_CHANGE */);
7849
+ moveTeleport(n2, nextTarget, null, internals, 0 /* TeleportMoveTypes.TARGET_CHANGE */);
7823
7850
  }
7824
7851
  else {
7825
7852
  warn$1('Invalid Teleport target on update:', target, `(${typeof target})`);
@@ -7828,7 +7855,7 @@ var VueRuntimeDOM = (function (exports) {
7828
7855
  else if (wasDisabled) {
7829
7856
  // disabled -> enabled
7830
7857
  // move into teleport target
7831
- moveTeleport(n2, target, targetAnchor, internals, 1 /* TOGGLE */);
7858
+ moveTeleport(n2, target, targetAnchor, internals, 1 /* TeleportMoveTypes.TOGGLE */);
7832
7859
  }
7833
7860
  }
7834
7861
  }
@@ -7841,7 +7868,7 @@ var VueRuntimeDOM = (function (exports) {
7841
7868
  // an unmounted teleport should always remove its children if not disabled
7842
7869
  if (doRemove || !isTeleportDisabled(props)) {
7843
7870
  hostRemove(anchor);
7844
- if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
7871
+ if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
7845
7872
  for (let i = 0; i < children.length; i++) {
7846
7873
  const child = children[i];
7847
7874
  unmount(child, parentComponent, parentSuspense, true, !!child.dynamicChildren);
@@ -7852,13 +7879,13 @@ var VueRuntimeDOM = (function (exports) {
7852
7879
  move: moveTeleport,
7853
7880
  hydrate: hydrateTeleport
7854
7881
  };
7855
- function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2 /* REORDER */) {
7882
+ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2 /* TeleportMoveTypes.REORDER */) {
7856
7883
  // move target anchor if this is a target change.
7857
- if (moveType === 0 /* TARGET_CHANGE */) {
7884
+ if (moveType === 0 /* TeleportMoveTypes.TARGET_CHANGE */) {
7858
7885
  insert(vnode.targetAnchor, container, parentAnchor);
7859
7886
  }
7860
7887
  const { el, anchor, shapeFlag, children, props } = vnode;
7861
- const isReorder = moveType === 2 /* REORDER */;
7888
+ const isReorder = moveType === 2 /* TeleportMoveTypes.REORDER */;
7862
7889
  // move main view anchor if this is a re-order.
7863
7890
  if (isReorder) {
7864
7891
  insert(el, container, parentAnchor);
@@ -7868,9 +7895,9 @@ var VueRuntimeDOM = (function (exports) {
7868
7895
  // is not a reorder, or the teleport is disabled
7869
7896
  if (!isReorder || isTeleportDisabled(props)) {
7870
7897
  // Teleport has either Array children or no children.
7871
- if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
7898
+ if (shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
7872
7899
  for (let i = 0; i < children.length; i++) {
7873
- move(children[i], container, parentAnchor, 2 /* REORDER */);
7900
+ move(children[i], container, parentAnchor, 2 /* MoveType.REORDER */);
7874
7901
  }
7875
7902
  }
7876
7903
  }
@@ -7885,7 +7912,7 @@ var VueRuntimeDOM = (function (exports) {
7885
7912
  // if multiple teleports rendered to the same target element, we need to
7886
7913
  // pick up from where the last teleport finished instead of the first node
7887
7914
  const targetNode = target._lpa || target.firstChild;
7888
- if (vnode.shapeFlag & 16 /* ARRAY_CHILDREN */) {
7915
+ if (vnode.shapeFlag & 16 /* ShapeFlags.ARRAY_CHILDREN */) {
7889
7916
  if (isTeleportDisabled(vnode.props)) {
7890
7917
  vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);
7891
7918
  vnode.targetAnchor = targetNode;
@@ -8007,7 +8034,7 @@ var VueRuntimeDOM = (function (exports) {
8007
8034
  return value ? value.__v_isVNode === true : false;
8008
8035
  }
8009
8036
  function isSameVNodeType(n1, n2) {
8010
- if (n2.shapeFlag & 6 /* COMPONENT */ &&
8037
+ if (n2.shapeFlag & 6 /* ShapeFlags.COMPONENT */ &&
8011
8038
  hmrDirtyComponents.has(n2.type)) {
8012
8039
  // HMR only: if the component has been hot-updated, force a reload.
8013
8040
  return false;
@@ -8038,7 +8065,7 @@ var VueRuntimeDOM = (function (exports) {
8038
8065
  : ref
8039
8066
  : null);
8040
8067
  };
8041
- function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1 /* ELEMENT */, isBlockNode = false, needFullChildrenNormalization = false) {
8068
+ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1 /* ShapeFlags.ELEMENT */, isBlockNode = false, needFullChildrenNormalization = false) {
8042
8069
  const vnode = {
8043
8070
  __v_isVNode: true,
8044
8071
  __v_skip: true,
@@ -8069,7 +8096,7 @@ var VueRuntimeDOM = (function (exports) {
8069
8096
  if (needFullChildrenNormalization) {
8070
8097
  normalizeChildren(vnode, children);
8071
8098
  // normalize suspense children
8072
- if (shapeFlag & 128 /* SUSPENSE */) {
8099
+ if (shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
8073
8100
  type.normalize(vnode);
8074
8101
  }
8075
8102
  }
@@ -8077,8 +8104,8 @@ var VueRuntimeDOM = (function (exports) {
8077
8104
  // compiled element vnode - if children is passed, only possible types are
8078
8105
  // string or Array.
8079
8106
  vnode.shapeFlag |= isString(children)
8080
- ? 8 /* TEXT_CHILDREN */
8081
- : 16 /* ARRAY_CHILDREN */;
8107
+ ? 8 /* ShapeFlags.TEXT_CHILDREN */
8108
+ : 16 /* ShapeFlags.ARRAY_CHILDREN */;
8082
8109
  }
8083
8110
  // validate key
8084
8111
  if (vnode.key !== vnode.key) {
@@ -8094,10 +8121,10 @@ var VueRuntimeDOM = (function (exports) {
8094
8121
  // component nodes also should always be patched, because even if the
8095
8122
  // component doesn't need to update, it needs to persist the instance on to
8096
8123
  // the next vnode so that it can be properly unmounted later.
8097
- (vnode.patchFlag > 0 || shapeFlag & 6 /* COMPONENT */) &&
8124
+ (vnode.patchFlag > 0 || shapeFlag & 6 /* ShapeFlags.COMPONENT */) &&
8098
8125
  // the EVENTS flag is only for hydration and if it is the only flag, the
8099
8126
  // vnode should not be considered dynamic due to handler caching.
8100
- vnode.patchFlag !== 32 /* HYDRATE_EVENTS */) {
8127
+ vnode.patchFlag !== 32 /* PatchFlags.HYDRATE_EVENTS */) {
8101
8128
  currentBlock.push(vnode);
8102
8129
  }
8103
8130
  return vnode;
@@ -8119,14 +8146,14 @@ var VueRuntimeDOM = (function (exports) {
8119
8146
  normalizeChildren(cloned, children);
8120
8147
  }
8121
8148
  if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
8122
- if (cloned.shapeFlag & 6 /* COMPONENT */) {
8149
+ if (cloned.shapeFlag & 6 /* ShapeFlags.COMPONENT */) {
8123
8150
  currentBlock[currentBlock.indexOf(type)] = cloned;
8124
8151
  }
8125
8152
  else {
8126
8153
  currentBlock.push(cloned);
8127
8154
  }
8128
8155
  }
8129
- cloned.patchFlag |= -2 /* BAIL */;
8156
+ cloned.patchFlag |= -2 /* PatchFlags.BAIL */;
8130
8157
  return cloned;
8131
8158
  }
8132
8159
  // class component normalization.
@@ -8152,17 +8179,17 @@ var VueRuntimeDOM = (function (exports) {
8152
8179
  }
8153
8180
  // encode the vnode type information into a bitmap
8154
8181
  const shapeFlag = isString(type)
8155
- ? 1 /* ELEMENT */
8182
+ ? 1 /* ShapeFlags.ELEMENT */
8156
8183
  : isSuspense(type)
8157
- ? 128 /* SUSPENSE */
8184
+ ? 128 /* ShapeFlags.SUSPENSE */
8158
8185
  : isTeleport(type)
8159
- ? 64 /* TELEPORT */
8186
+ ? 64 /* ShapeFlags.TELEPORT */
8160
8187
  : isObject(type)
8161
- ? 4 /* STATEFUL_COMPONENT */
8188
+ ? 4 /* ShapeFlags.STATEFUL_COMPONENT */
8162
8189
  : isFunction(type)
8163
- ? 2 /* FUNCTIONAL_COMPONENT */
8190
+ ? 2 /* ShapeFlags.FUNCTIONAL_COMPONENT */
8164
8191
  : 0;
8165
- if (shapeFlag & 4 /* STATEFUL_COMPONENT */ && isProxy(type)) {
8192
+ if (shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */ && isProxy(type)) {
8166
8193
  type = toRaw(type);
8167
8194
  warn$1(`Vue received a Component which was made a reactive object. This can ` +
8168
8195
  `lead to unnecessary performance overhead, and should be avoided by ` +
@@ -8201,7 +8228,7 @@ var VueRuntimeDOM = (function (exports) {
8201
8228
  : ref,
8202
8229
  scopeId: vnode.scopeId,
8203
8230
  slotScopeIds: vnode.slotScopeIds,
8204
- children: patchFlag === -1 /* HOISTED */ && isArray(children)
8231
+ children: patchFlag === -1 /* PatchFlags.HOISTED */ && isArray(children)
8205
8232
  ? children.map(deepCloneVNode)
8206
8233
  : children,
8207
8234
  target: vnode.target,
@@ -8214,8 +8241,8 @@ var VueRuntimeDOM = (function (exports) {
8214
8241
  // fast paths only.
8215
8242
  patchFlag: extraProps && vnode.type !== Fragment
8216
8243
  ? patchFlag === -1 // hoisted node
8217
- ? 16 /* FULL_PROPS */
8218
- : patchFlag | 16 /* FULL_PROPS */
8244
+ ? 16 /* PatchFlags.FULL_PROPS */
8245
+ : patchFlag | 16 /* PatchFlags.FULL_PROPS */
8219
8246
  : patchFlag,
8220
8247
  dynamicProps: vnode.dynamicProps,
8221
8248
  dynamicChildren: vnode.dynamicChildren,
@@ -8305,10 +8332,10 @@ var VueRuntimeDOM = (function (exports) {
8305
8332
  children = null;
8306
8333
  }
8307
8334
  else if (isArray(children)) {
8308
- type = 16 /* ARRAY_CHILDREN */;
8335
+ type = 16 /* ShapeFlags.ARRAY_CHILDREN */;
8309
8336
  }
8310
8337
  else if (typeof children === 'object') {
8311
- if (shapeFlag & (1 /* ELEMENT */ | 64 /* TELEPORT */)) {
8338
+ if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 64 /* ShapeFlags.TELEPORT */)) {
8312
8339
  // Normalize slot to plain children for plain element and Teleport
8313
8340
  const slot = children.default;
8314
8341
  if (slot) {
@@ -8320,37 +8347,37 @@ var VueRuntimeDOM = (function (exports) {
8320
8347
  return;
8321
8348
  }
8322
8349
  else {
8323
- type = 32 /* SLOTS_CHILDREN */;
8350
+ type = 32 /* ShapeFlags.SLOTS_CHILDREN */;
8324
8351
  const slotFlag = children._;
8325
8352
  if (!slotFlag && !(InternalObjectKey in children)) {
8326
8353
  children._ctx = currentRenderingInstance;
8327
8354
  }
8328
- else if (slotFlag === 3 /* FORWARDED */ && currentRenderingInstance) {
8355
+ else if (slotFlag === 3 /* SlotFlags.FORWARDED */ && currentRenderingInstance) {
8329
8356
  // a child component receives forwarded slots from the parent.
8330
8357
  // its slot type is determined by its parent's slot type.
8331
- if (currentRenderingInstance.slots._ === 1 /* STABLE */) {
8332
- children._ = 1 /* STABLE */;
8358
+ if (currentRenderingInstance.slots._ === 1 /* SlotFlags.STABLE */) {
8359
+ children._ = 1 /* SlotFlags.STABLE */;
8333
8360
  }
8334
8361
  else {
8335
- children._ = 2 /* DYNAMIC */;
8336
- vnode.patchFlag |= 1024 /* DYNAMIC_SLOTS */;
8362
+ children._ = 2 /* SlotFlags.DYNAMIC */;
8363
+ vnode.patchFlag |= 1024 /* PatchFlags.DYNAMIC_SLOTS */;
8337
8364
  }
8338
8365
  }
8339
8366
  }
8340
8367
  }
8341
8368
  else if (isFunction(children)) {
8342
8369
  children = { default: children, _ctx: currentRenderingInstance };
8343
- type = 32 /* SLOTS_CHILDREN */;
8370
+ type = 32 /* ShapeFlags.SLOTS_CHILDREN */;
8344
8371
  }
8345
8372
  else {
8346
8373
  children = String(children);
8347
8374
  // force teleport children to array so it can be moved around
8348
- if (shapeFlag & 64 /* TELEPORT */) {
8349
- type = 16 /* ARRAY_CHILDREN */;
8375
+ if (shapeFlag & 64 /* ShapeFlags.TELEPORT */) {
8376
+ type = 16 /* ShapeFlags.ARRAY_CHILDREN */;
8350
8377
  children = [createTextVNode(children)];
8351
8378
  }
8352
8379
  else {
8353
- type = 8 /* TEXT_CHILDREN */;
8380
+ type = 8 /* ShapeFlags.TEXT_CHILDREN */;
8354
8381
  }
8355
8382
  }
8356
8383
  vnode.children = children;
@@ -8388,7 +8415,7 @@ var VueRuntimeDOM = (function (exports) {
8388
8415
  return ret;
8389
8416
  }
8390
8417
  function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
8391
- callWithAsyncErrorHandling(hook, instance, 7 /* VNODE_HOOK */, [
8418
+ callWithAsyncErrorHandling(hook, instance, 7 /* ErrorCodes.VNODE_HOOK */, [
8392
8419
  vnode,
8393
8420
  prevVNode
8394
8421
  ]);
@@ -8496,7 +8523,7 @@ var VueRuntimeDOM = (function (exports) {
8496
8523
  }
8497
8524
  }
8498
8525
  function isStatefulComponent(instance) {
8499
- return instance.vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */;
8526
+ return instance.vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */;
8500
8527
  }
8501
8528
  let isInSSRComponentSetup = false;
8502
8529
  function setupComponent(instance, isSSR = false) {
@@ -8551,7 +8578,7 @@ var VueRuntimeDOM = (function (exports) {
8551
8578
  setup.length > 1 ? createSetupContext(instance) : null);
8552
8579
  setCurrentInstance(instance);
8553
8580
  pauseTracking();
8554
- const setupResult = callWithErrorHandling(setup, instance, 0 /* SETUP_FUNCTION */, [shallowReadonly(instance.props) , setupContext]);
8581
+ const setupResult = callWithErrorHandling(setup, instance, 0 /* ErrorCodes.SETUP_FUNCTION */, [shallowReadonly(instance.props) , setupContext]);
8555
8582
  resetTracking();
8556
8583
  unsetCurrentInstance();
8557
8584
  if (isPromise(setupResult)) {
@@ -8563,7 +8590,7 @@ var VueRuntimeDOM = (function (exports) {
8563
8590
  handleSetupResult(instance, resolvedResult, isSSR);
8564
8591
  })
8565
8592
  .catch(e => {
8566
- handleError(e, instance, 0 /* SETUP_FUNCTION */);
8593
+ handleError(e, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);
8567
8594
  });
8568
8595
  }
8569
8596
  else {
@@ -8690,7 +8717,7 @@ var VueRuntimeDOM = (function (exports) {
8690
8717
  return new Proxy(instance.attrs, {
8691
8718
  get(target, key) {
8692
8719
  markAttrsAccessed();
8693
- track(instance, "get" /* GET */, '$attrs');
8720
+ track(instance, "get" /* TrackOpTypes.GET */, '$attrs');
8694
8721
  return target[key];
8695
8722
  },
8696
8723
  set() {
@@ -9188,7 +9215,7 @@ var VueRuntimeDOM = (function (exports) {
9188
9215
  }
9189
9216
 
9190
9217
  // Core API ------------------------------------------------------------------
9191
- const version = "3.2.37";
9218
+ const version = "3.2.38";
9192
9219
  /**
9193
9220
  * SSR utils for \@vue/server-renderer. Only exposed in ssr-possible builds.
9194
9221
  * @internal
@@ -9555,7 +9582,8 @@ var VueRuntimeDOM = (function (exports) {
9555
9582
  options[m[0].toLowerCase()] = true;
9556
9583
  }
9557
9584
  }
9558
- return [hyphenate(name.slice(2)), options];
9585
+ const event = name[2] === ':' ? name.slice(3) : hyphenate(name.slice(2));
9586
+ return [event, options];
9559
9587
  }
9560
9588
  function createInvoker(initialValue, instance) {
9561
9589
  const invoker = (e) => {
@@ -9567,7 +9595,7 @@ var VueRuntimeDOM = (function (exports) {
9567
9595
  // AFTER it was attached.
9568
9596
  const timeStamp = e.timeStamp || _getNow();
9569
9597
  if (skipTimestampCheck || timeStamp >= invoker.attached - 1) {
9570
- callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5 /* NATIVE_EVENT_HANDLER */, [e]);
9598
+ callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5 /* ErrorCodes.NATIVE_EVENT_HANDLER */, [e]);
9571
9599
  }
9572
9600
  };
9573
9601
  invoker.value = initialValue;
@@ -9910,7 +9938,7 @@ var VueRuntimeDOM = (function (exports) {
9910
9938
  });
9911
9939
  }
9912
9940
  function setVarsOnVNode(vnode, vars) {
9913
- if (vnode.shapeFlag & 128 /* SUSPENSE */) {
9941
+ if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {
9914
9942
  const suspense = vnode.suspense;
9915
9943
  vnode = suspense.activeBranch;
9916
9944
  if (suspense.pendingBranch && !suspense.isHydrating) {
@@ -9923,7 +9951,7 @@ var VueRuntimeDOM = (function (exports) {
9923
9951
  while (vnode.component) {
9924
9952
  vnode = vnode.component.subTree;
9925
9953
  }
9926
- if (vnode.shapeFlag & 1 /* ELEMENT */ && vnode.el) {
9954
+ if (vnode.shapeFlag & 1 /* ShapeFlags.ELEMENT */ && vnode.el) {
9927
9955
  setVarsOnNode(vnode.el, vars);
9928
9956
  }
9929
9957
  else if (vnode.type === Fragment) {