@vue/compat 3.5.11 → 3.5.13

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.11
2
+ * @vue/compat v3.5.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -141,10 +141,9 @@ function parseStringStyle(cssText) {
141
141
  return ret;
142
142
  }
143
143
  function stringifyStyle(styles) {
144
+ if (!styles) return "";
145
+ if (isString(styles)) return styles;
144
146
  let ret = "";
145
- if (!styles || isString(styles)) {
146
- return ret;
147
- }
148
147
  for (const key in styles) {
149
148
  const value = styles[key];
150
149
  if (isString(value) || typeof value === "number") {
@@ -405,17 +404,21 @@ class EffectScope {
405
404
  }
406
405
  stop(fromParent) {
407
406
  if (this._active) {
407
+ this._active = false;
408
408
  let i, l;
409
409
  for (i = 0, l = this.effects.length; i < l; i++) {
410
410
  this.effects[i].stop();
411
411
  }
412
+ this.effects.length = 0;
412
413
  for (i = 0, l = this.cleanups.length; i < l; i++) {
413
414
  this.cleanups[i]();
414
415
  }
416
+ this.cleanups.length = 0;
415
417
  if (this.scopes) {
416
418
  for (i = 0, l = this.scopes.length; i < l; i++) {
417
419
  this.scopes[i].stop(true);
418
420
  }
421
+ this.scopes.length = 0;
419
422
  }
420
423
  if (!this.detached && this.parent && !fromParent) {
421
424
  const last = this.parent.scopes.pop();
@@ -425,7 +428,6 @@ class EffectScope {
425
428
  }
426
429
  }
427
430
  this.parent = void 0;
428
- this._active = false;
429
431
  }
430
432
  }
431
433
  }
@@ -690,16 +692,16 @@ function removeSub(link, soft = false) {
690
692
  nextSub.prevSub = prevSub;
691
693
  link.nextSub = void 0;
692
694
  }
693
- if (dep.subs === link) {
694
- dep.subs = prevSub;
695
- }
696
695
  if (!!(process.env.NODE_ENV !== "production") && dep.subsHead === link) {
697
696
  dep.subsHead = nextSub;
698
697
  }
699
- if (!dep.subs && dep.computed) {
700
- dep.computed.flags &= ~4;
701
- for (let l = dep.computed.deps; l; l = l.nextDep) {
702
- removeSub(l, true);
698
+ if (dep.subs === link) {
699
+ dep.subs = prevSub;
700
+ if (!prevSub && dep.computed) {
701
+ dep.computed.flags &= ~4;
702
+ for (let l = dep.computed.deps; l; l = l.nextDep) {
703
+ removeSub(l, true);
704
+ }
703
705
  }
704
706
  }
705
707
  if (!soft && !--dep.sc && dep.map) {
@@ -963,7 +965,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
963
965
  }
964
966
  });
965
967
  } else {
966
- if (key !== void 0) {
968
+ if (key !== void 0 || depsMap.has(void 0)) {
967
969
  run(depsMap.get(key));
968
970
  }
969
971
  if (isArrayIndex) {
@@ -1195,6 +1197,7 @@ class BaseReactiveHandler {
1195
1197
  this._isShallow = _isShallow;
1196
1198
  }
1197
1199
  get(target, key, receiver) {
1200
+ if (key === "__v_skip") return target["__v_skip"];
1198
1201
  const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
1199
1202
  if (key === "__v_isReactive") {
1200
1203
  return !isReadonly2;
@@ -1338,117 +1341,6 @@ const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true
1338
1341
 
1339
1342
  const toShallow = (value) => value;
1340
1343
  const getProto = (v) => Reflect.getPrototypeOf(v);
1341
- function get(target, key, isReadonly2 = false, isShallow2 = false) {
1342
- target = target["__v_raw"];
1343
- const rawTarget = toRaw(target);
1344
- const rawKey = toRaw(key);
1345
- if (!isReadonly2) {
1346
- if (hasChanged(key, rawKey)) {
1347
- track(rawTarget, "get", key);
1348
- }
1349
- track(rawTarget, "get", rawKey);
1350
- }
1351
- const { has: has2 } = getProto(rawTarget);
1352
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1353
- if (has2.call(rawTarget, key)) {
1354
- return wrap(target.get(key));
1355
- } else if (has2.call(rawTarget, rawKey)) {
1356
- return wrap(target.get(rawKey));
1357
- } else if (target !== rawTarget) {
1358
- target.get(key);
1359
- }
1360
- }
1361
- function has(key, isReadonly2 = false) {
1362
- const target = this["__v_raw"];
1363
- const rawTarget = toRaw(target);
1364
- const rawKey = toRaw(key);
1365
- if (!isReadonly2) {
1366
- if (hasChanged(key, rawKey)) {
1367
- track(rawTarget, "has", key);
1368
- }
1369
- track(rawTarget, "has", rawKey);
1370
- }
1371
- return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1372
- }
1373
- function size(target, isReadonly2 = false) {
1374
- target = target["__v_raw"];
1375
- !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
1376
- return Reflect.get(target, "size", target);
1377
- }
1378
- function add(value, _isShallow = false) {
1379
- if (!_isShallow && !isShallow(value) && !isReadonly(value)) {
1380
- value = toRaw(value);
1381
- }
1382
- const target = toRaw(this);
1383
- const proto = getProto(target);
1384
- const hadKey = proto.has.call(target, value);
1385
- if (!hadKey) {
1386
- target.add(value);
1387
- trigger(target, "add", value, value);
1388
- }
1389
- return this;
1390
- }
1391
- function set(key, value, _isShallow = false) {
1392
- if (!_isShallow && !isShallow(value) && !isReadonly(value)) {
1393
- value = toRaw(value);
1394
- }
1395
- const target = toRaw(this);
1396
- const { has: has2, get: get2 } = getProto(target);
1397
- let hadKey = has2.call(target, key);
1398
- if (!hadKey) {
1399
- key = toRaw(key);
1400
- hadKey = has2.call(target, key);
1401
- } else if (!!(process.env.NODE_ENV !== "production")) {
1402
- checkIdentityKeys(target, has2, key);
1403
- }
1404
- const oldValue = get2.call(target, key);
1405
- target.set(key, value);
1406
- if (!hadKey) {
1407
- trigger(target, "add", key, value);
1408
- } else if (hasChanged(value, oldValue)) {
1409
- trigger(target, "set", key, value, oldValue);
1410
- }
1411
- return this;
1412
- }
1413
- function deleteEntry(key) {
1414
- const target = toRaw(this);
1415
- const { has: has2, get: get2 } = getProto(target);
1416
- let hadKey = has2.call(target, key);
1417
- if (!hadKey) {
1418
- key = toRaw(key);
1419
- hadKey = has2.call(target, key);
1420
- } else if (!!(process.env.NODE_ENV !== "production")) {
1421
- checkIdentityKeys(target, has2, key);
1422
- }
1423
- const oldValue = get2 ? get2.call(target, key) : void 0;
1424
- const result = target.delete(key);
1425
- if (hadKey) {
1426
- trigger(target, "delete", key, void 0, oldValue);
1427
- }
1428
- return result;
1429
- }
1430
- function clear() {
1431
- const target = toRaw(this);
1432
- const hadItems = target.size !== 0;
1433
- const oldTarget = !!(process.env.NODE_ENV !== "production") ? isMap(target) ? new Map(target) : new Set(target) : void 0;
1434
- const result = target.clear();
1435
- if (hadItems) {
1436
- trigger(target, "clear", void 0, void 0, oldTarget);
1437
- }
1438
- return result;
1439
- }
1440
- function createForEach(isReadonly2, isShallow2) {
1441
- return function forEach(callback, thisArg) {
1442
- const observed = this;
1443
- const target = observed["__v_raw"];
1444
- const rawTarget = toRaw(target);
1445
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1446
- !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY);
1447
- return target.forEach((value, key) => {
1448
- return callback.call(thisArg, wrap(value), wrap(key), observed);
1449
- });
1450
- };
1451
- }
1452
1344
  function createIterableMethod(method, isReadonly2, isShallow2) {
1453
1345
  return function(...args) {
1454
1346
  const target = this["__v_raw"];
@@ -1491,71 +1383,134 @@ function createReadonlyMethod(type) {
1491
1383
  return type === "delete" ? false : type === "clear" ? void 0 : this;
1492
1384
  };
1493
1385
  }
1494
- function createInstrumentations() {
1495
- const mutableInstrumentations2 = {
1386
+ function createInstrumentations(readonly, shallow) {
1387
+ const instrumentations = {
1496
1388
  get(key) {
1497
- return get(this, key);
1498
- },
1499
- get size() {
1500
- return size(this);
1501
- },
1502
- has,
1503
- add,
1504
- set,
1505
- delete: deleteEntry,
1506
- clear,
1507
- forEach: createForEach(false, false)
1508
- };
1509
- const shallowInstrumentations2 = {
1510
- get(key) {
1511
- return get(this, key, false, true);
1512
- },
1513
- get size() {
1514
- return size(this);
1515
- },
1516
- has,
1517
- add(value) {
1518
- return add.call(this, value, true);
1519
- },
1520
- set(key, value) {
1521
- return set.call(this, key, value, true);
1522
- },
1523
- delete: deleteEntry,
1524
- clear,
1525
- forEach: createForEach(false, true)
1526
- };
1527
- const readonlyInstrumentations2 = {
1528
- get(key) {
1529
- return get(this, key, true);
1530
- },
1531
- get size() {
1532
- return size(this, true);
1533
- },
1534
- has(key) {
1535
- return has.call(this, key, true);
1536
- },
1537
- add: createReadonlyMethod("add"),
1538
- set: createReadonlyMethod("set"),
1539
- delete: createReadonlyMethod("delete"),
1540
- clear: createReadonlyMethod("clear"),
1541
- forEach: createForEach(true, false)
1542
- };
1543
- const shallowReadonlyInstrumentations2 = {
1544
- get(key) {
1545
- return get(this, key, true, true);
1389
+ const target = this["__v_raw"];
1390
+ const rawTarget = toRaw(target);
1391
+ const rawKey = toRaw(key);
1392
+ if (!readonly) {
1393
+ if (hasChanged(key, rawKey)) {
1394
+ track(rawTarget, "get", key);
1395
+ }
1396
+ track(rawTarget, "get", rawKey);
1397
+ }
1398
+ const { has } = getProto(rawTarget);
1399
+ const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1400
+ if (has.call(rawTarget, key)) {
1401
+ return wrap(target.get(key));
1402
+ } else if (has.call(rawTarget, rawKey)) {
1403
+ return wrap(target.get(rawKey));
1404
+ } else if (target !== rawTarget) {
1405
+ target.get(key);
1406
+ }
1546
1407
  },
1547
1408
  get size() {
1548
- return size(this, true);
1409
+ const target = this["__v_raw"];
1410
+ !readonly && track(toRaw(target), "iterate", ITERATE_KEY);
1411
+ return Reflect.get(target, "size", target);
1549
1412
  },
1550
1413
  has(key) {
1551
- return has.call(this, key, true);
1414
+ const target = this["__v_raw"];
1415
+ const rawTarget = toRaw(target);
1416
+ const rawKey = toRaw(key);
1417
+ if (!readonly) {
1418
+ if (hasChanged(key, rawKey)) {
1419
+ track(rawTarget, "has", key);
1420
+ }
1421
+ track(rawTarget, "has", rawKey);
1422
+ }
1423
+ return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1552
1424
  },
1553
- add: createReadonlyMethod("add"),
1554
- set: createReadonlyMethod("set"),
1555
- delete: createReadonlyMethod("delete"),
1556
- clear: createReadonlyMethod("clear"),
1557
- forEach: createForEach(true, true)
1425
+ forEach(callback, thisArg) {
1426
+ const observed = this;
1427
+ const target = observed["__v_raw"];
1428
+ const rawTarget = toRaw(target);
1429
+ const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1430
+ !readonly && track(rawTarget, "iterate", ITERATE_KEY);
1431
+ return target.forEach((value, key) => {
1432
+ return callback.call(thisArg, wrap(value), wrap(key), observed);
1433
+ });
1434
+ }
1558
1435
  };
1436
+ extend(
1437
+ instrumentations,
1438
+ readonly ? {
1439
+ add: createReadonlyMethod("add"),
1440
+ set: createReadonlyMethod("set"),
1441
+ delete: createReadonlyMethod("delete"),
1442
+ clear: createReadonlyMethod("clear")
1443
+ } : {
1444
+ add(value) {
1445
+ if (!shallow && !isShallow(value) && !isReadonly(value)) {
1446
+ value = toRaw(value);
1447
+ }
1448
+ const target = toRaw(this);
1449
+ const proto = getProto(target);
1450
+ const hadKey = proto.has.call(target, value);
1451
+ if (!hadKey) {
1452
+ target.add(value);
1453
+ trigger(target, "add", value, value);
1454
+ }
1455
+ return this;
1456
+ },
1457
+ set(key, value) {
1458
+ if (!shallow && !isShallow(value) && !isReadonly(value)) {
1459
+ value = toRaw(value);
1460
+ }
1461
+ const target = toRaw(this);
1462
+ const { has, get } = getProto(target);
1463
+ let hadKey = has.call(target, key);
1464
+ if (!hadKey) {
1465
+ key = toRaw(key);
1466
+ hadKey = has.call(target, key);
1467
+ } else if (!!(process.env.NODE_ENV !== "production")) {
1468
+ checkIdentityKeys(target, has, key);
1469
+ }
1470
+ const oldValue = get.call(target, key);
1471
+ target.set(key, value);
1472
+ if (!hadKey) {
1473
+ trigger(target, "add", key, value);
1474
+ } else if (hasChanged(value, oldValue)) {
1475
+ trigger(target, "set", key, value, oldValue);
1476
+ }
1477
+ return this;
1478
+ },
1479
+ delete(key) {
1480
+ const target = toRaw(this);
1481
+ const { has, get } = getProto(target);
1482
+ let hadKey = has.call(target, key);
1483
+ if (!hadKey) {
1484
+ key = toRaw(key);
1485
+ hadKey = has.call(target, key);
1486
+ } else if (!!(process.env.NODE_ENV !== "production")) {
1487
+ checkIdentityKeys(target, has, key);
1488
+ }
1489
+ const oldValue = get ? get.call(target, key) : void 0;
1490
+ const result = target.delete(key);
1491
+ if (hadKey) {
1492
+ trigger(target, "delete", key, void 0, oldValue);
1493
+ }
1494
+ return result;
1495
+ },
1496
+ clear() {
1497
+ const target = toRaw(this);
1498
+ const hadItems = target.size !== 0;
1499
+ const oldTarget = !!(process.env.NODE_ENV !== "production") ? isMap(target) ? new Map(target) : new Set(target) : void 0;
1500
+ const result = target.clear();
1501
+ if (hadItems) {
1502
+ trigger(
1503
+ target,
1504
+ "clear",
1505
+ void 0,
1506
+ void 0,
1507
+ oldTarget
1508
+ );
1509
+ }
1510
+ return result;
1511
+ }
1512
+ }
1513
+ );
1559
1514
  const iteratorMethods = [
1560
1515
  "keys",
1561
1516
  "values",
@@ -1563,30 +1518,12 @@ function createInstrumentations() {
1563
1518
  Symbol.iterator
1564
1519
  ];
1565
1520
  iteratorMethods.forEach((method) => {
1566
- mutableInstrumentations2[method] = createIterableMethod(method, false, false);
1567
- readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
1568
- shallowInstrumentations2[method] = createIterableMethod(method, false, true);
1569
- shallowReadonlyInstrumentations2[method] = createIterableMethod(
1570
- method,
1571
- true,
1572
- true
1573
- );
1521
+ instrumentations[method] = createIterableMethod(method, readonly, shallow);
1574
1522
  });
1575
- return [
1576
- mutableInstrumentations2,
1577
- readonlyInstrumentations2,
1578
- shallowInstrumentations2,
1579
- shallowReadonlyInstrumentations2
1580
- ];
1523
+ return instrumentations;
1581
1524
  }
1582
- const [
1583
- mutableInstrumentations,
1584
- readonlyInstrumentations,
1585
- shallowInstrumentations,
1586
- shallowReadonlyInstrumentations
1587
- ] = /* @__PURE__ */ createInstrumentations();
1588
1525
  function createInstrumentationGetter(isReadonly2, shallow) {
1589
- const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
1526
+ const instrumentations = createInstrumentations(isReadonly2, shallow);
1590
1527
  return (target, key, receiver) => {
1591
1528
  if (key === "__v_isReactive") {
1592
1529
  return !isReadonly2;
@@ -1614,9 +1551,9 @@ const readonlyCollectionHandlers = {
1614
1551
  const shallowReadonlyCollectionHandlers = {
1615
1552
  get: /* @__PURE__ */ createInstrumentationGetter(true, true)
1616
1553
  };
1617
- function checkIdentityKeys(target, has2, key) {
1554
+ function checkIdentityKeys(target, has, key) {
1618
1555
  const rawKey = toRaw(key);
1619
- if (rawKey !== key && has2.call(target, rawKey)) {
1556
+ if (rawKey !== key && has.call(target, rawKey)) {
1620
1557
  const type = toRawType(target);
1621
1558
  warn$2(
1622
1559
  `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`
@@ -2103,7 +2040,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2103
2040
  const scope = getCurrentScope();
2104
2041
  const watchHandle = () => {
2105
2042
  effect.stop();
2106
- if (scope) {
2043
+ if (scope && scope.active) {
2107
2044
  remove(scope.effects, effect);
2108
2045
  }
2109
2046
  };
@@ -3584,7 +3521,7 @@ const TeleportImpl = {
3584
3521
  }
3585
3522
  if (!disabled) {
3586
3523
  mount(target, targetAnchor);
3587
- updateCssVars(n2);
3524
+ updateCssVars(n2, false);
3588
3525
  }
3589
3526
  } else if (!!(process.env.NODE_ENV !== "production") && !disabled) {
3590
3527
  warn$1(
@@ -3596,14 +3533,35 @@ const TeleportImpl = {
3596
3533
  };
3597
3534
  if (disabled) {
3598
3535
  mount(container, mainAnchor);
3599
- updateCssVars(n2);
3536
+ updateCssVars(n2, true);
3600
3537
  }
3601
3538
  if (isTeleportDeferred(n2.props)) {
3602
- queuePostRenderEffect(mountToTarget, parentSuspense);
3539
+ queuePostRenderEffect(() => {
3540
+ mountToTarget();
3541
+ n2.el.__isMounted = true;
3542
+ }, parentSuspense);
3603
3543
  } else {
3604
3544
  mountToTarget();
3605
3545
  }
3606
3546
  } else {
3547
+ if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3548
+ queuePostRenderEffect(() => {
3549
+ TeleportImpl.process(
3550
+ n1,
3551
+ n2,
3552
+ container,
3553
+ anchor,
3554
+ parentComponent,
3555
+ parentSuspense,
3556
+ namespace,
3557
+ slotScopeIds,
3558
+ optimized,
3559
+ internals
3560
+ );
3561
+ delete n1.el.__isMounted;
3562
+ }, parentSuspense);
3563
+ return;
3564
+ }
3607
3565
  n2.el = n1.el;
3608
3566
  n2.targetStart = n1.targetStart;
3609
3567
  const mainAnchor = n2.anchor = n1.anchor;
@@ -3686,7 +3644,7 @@ const TeleportImpl = {
3686
3644
  );
3687
3645
  }
3688
3646
  }
3689
- updateCssVars(n2);
3647
+ updateCssVars(n2, disabled);
3690
3648
  }
3691
3649
  },
3692
3650
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
@@ -3754,9 +3712,10 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3754
3712
  querySelector
3755
3713
  );
3756
3714
  if (target) {
3715
+ const disabled = isTeleportDisabled(vnode.props);
3757
3716
  const targetNode = target._lpa || target.firstChild;
3758
3717
  if (vnode.shapeFlag & 16) {
3759
- if (isTeleportDisabled(vnode.props)) {
3718
+ if (disabled) {
3760
3719
  vnode.anchor = hydrateChildren(
3761
3720
  nextSibling(node),
3762
3721
  vnode,
@@ -3797,16 +3756,23 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3797
3756
  );
3798
3757
  }
3799
3758
  }
3800
- updateCssVars(vnode);
3759
+ updateCssVars(vnode, disabled);
3801
3760
  }
3802
3761
  return vnode.anchor && nextSibling(vnode.anchor);
3803
3762
  }
3804
3763
  const Teleport = TeleportImpl;
3805
- function updateCssVars(vnode) {
3764
+ function updateCssVars(vnode, isDisabled) {
3806
3765
  const ctx = vnode.ctx;
3807
3766
  if (ctx && ctx.ut) {
3808
- let node = vnode.targetStart;
3809
- while (node && node !== vnode.targetAnchor) {
3767
+ let node, anchor;
3768
+ if (isDisabled) {
3769
+ node = vnode.el;
3770
+ anchor = vnode.anchor;
3771
+ } else {
3772
+ node = vnode.targetStart;
3773
+ anchor = vnode.targetAnchor;
3774
+ }
3775
+ while (node && node !== anchor) {
3810
3776
  if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid);
3811
3777
  node = node.nextSibling;
3812
3778
  }
@@ -3901,10 +3867,9 @@ const BaseTransitionImpl = {
3901
3867
  if (innerChild.type !== Comment) {
3902
3868
  setTransitionHooks(innerChild, enterHooks);
3903
3869
  }
3904
- const oldChild = instance.subTree;
3905
- const oldInnerChild = oldChild && getInnerChild$1(oldChild);
3870
+ let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3906
3871
  if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
3907
- const leavingHooks = resolveTransitionHooks(
3872
+ let leavingHooks = resolveTransitionHooks(
3908
3873
  oldInnerChild,
3909
3874
  rawProps,
3910
3875
  state,
@@ -3919,6 +3884,7 @@ const BaseTransitionImpl = {
3919
3884
  instance.update();
3920
3885
  }
3921
3886
  delete leavingHooks.afterLeave;
3887
+ oldInnerChild = void 0;
3922
3888
  };
3923
3889
  return emptyPlaceholder(child);
3924
3890
  } else if (mode === "in-out" && innerChild.type !== Comment) {
@@ -3932,10 +3898,19 @@ const BaseTransitionImpl = {
3932
3898
  earlyRemove();
3933
3899
  el[leaveCbKey] = void 0;
3934
3900
  delete enterHooks.delayedLeave;
3901
+ oldInnerChild = void 0;
3902
+ };
3903
+ enterHooks.delayedLeave = () => {
3904
+ delayedLeave();
3905
+ delete enterHooks.delayedLeave;
3906
+ oldInnerChild = void 0;
3935
3907
  };
3936
- enterHooks.delayedLeave = delayedLeave;
3937
3908
  };
3909
+ } else {
3910
+ oldInnerChild = void 0;
3938
3911
  }
3912
+ } else if (oldInnerChild) {
3913
+ oldInnerChild = void 0;
3939
3914
  }
3940
3915
  return child;
3941
3916
  };
@@ -4244,6 +4219,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4244
4219
  return;
4245
4220
  }
4246
4221
  if (isAsyncWrapper(vnode) && !isUnmount) {
4222
+ if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {
4223
+ setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);
4224
+ }
4247
4225
  return;
4248
4226
  }
4249
4227
  const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;
@@ -4260,8 +4238,15 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4260
4238
  const setupState = owner.setupState;
4261
4239
  const rawSetupState = toRaw(setupState);
4262
4240
  const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
4263
- if (!!(process.env.NODE_ENV !== "production") && knownTemplateRefs.has(rawSetupState[key])) {
4264
- return false;
4241
+ if (!!(process.env.NODE_ENV !== "production")) {
4242
+ if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {
4243
+ warn$1(
4244
+ `Template ref "${key}" used on a non-ref value. It will not work in the production build.`
4245
+ );
4246
+ }
4247
+ if (knownTemplateRefs.has(rawSetupState[key])) {
4248
+ return false;
4249
+ }
4265
4250
  }
4266
4251
  return hasOwn(rawSetupState, key);
4267
4252
  };
@@ -4501,7 +4486,7 @@ function createHydrationFunctions(rendererInternals) {
4501
4486
  getContainerType(container),
4502
4487
  optimized
4503
4488
  );
4504
- if (isAsyncWrapper(vnode)) {
4489
+ if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
4505
4490
  let subTree;
4506
4491
  if (isFragmentStart) {
4507
4492
  subTree = createVNode(Fragment);
@@ -4558,7 +4543,11 @@ function createHydrationFunctions(rendererInternals) {
4558
4543
  }
4559
4544
  let needCallTransitionHooks = false;
4560
4545
  if (isTemplateNode(el)) {
4561
- needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4546
+ needCallTransitionHooks = needTransition(
4547
+ null,
4548
+ // no need check parentSuspense in hydration
4549
+ transition
4550
+ ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4562
4551
  const content = el.content.firstChild;
4563
4552
  if (needCallTransitionHooks) {
4564
4553
  transition.beforeEnter(content);
@@ -4777,6 +4766,10 @@ Server rendered element contains fewer child nodes than client vdom.`
4777
4766
  getContainerType(container),
4778
4767
  slotScopeIds
4779
4768
  );
4769
+ if (parentComponent) {
4770
+ parentComponent.vnode.el = vnode.el;
4771
+ updateHOCHostEl(parentComponent, vnode.el);
4772
+ }
4780
4773
  return next;
4781
4774
  };
4782
4775
  const locateClosingAnchor = (node, open = "[", close = "]") => {
@@ -4962,6 +4955,8 @@ function isMismatchAllowed(el, allowedType) {
4962
4955
  }
4963
4956
  }
4964
4957
 
4958
+ const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));
4959
+ const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));
4965
4960
  const hydrateOnIdle = (timeout = 1e4) => (hydrate) => {
4966
4961
  const id = requestIdleCallback(hydrate, { timeout });
4967
4962
  return () => cancelIdleCallback(id);
@@ -5955,12 +5950,13 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5955
5950
  }
5956
5951
  openBlock();
5957
5952
  const validSlotContent = slot && ensureValidVNode(slot(props));
5953
+ const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
5954
+ // key attached in the `createSlots` helper, respect that
5955
+ validSlotContent && validSlotContent.key;
5958
5956
  const rendered = createBlock(
5959
5957
  Fragment,
5960
5958
  {
5961
- key: (props.key || // slot content array of a dynamic conditional slot may have a branch
5962
- // key attached in the `createSlots` helper, respect that
5963
- validSlotContent && validSlotContent.key || `_${name}`) + // #7256 force differentiate fallback content from actual content
5959
+ key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
5964
5960
  (!validSlotContent && fallback ? "_fb" : "")
5965
5961
  },
5966
5962
  validSlotContent || (fallback ? fallback() : []),
@@ -7131,7 +7127,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7131
7127
  return vm;
7132
7128
  }
7133
7129
  }
7134
- Vue.version = `2.6.14-compat:${"3.5.11"}`;
7130
+ Vue.version = `2.6.14-compat:${"3.5.13"}`;
7135
7131
  Vue.config = singletonApp.config;
7136
7132
  Vue.use = (plugin, ...options) => {
7137
7133
  if (plugin && isFunction(plugin.install)) {
@@ -8121,6 +8117,7 @@ function getType(ctor) {
8121
8117
  function validateProps(rawProps, props, instance) {
8122
8118
  const resolvedValues = toRaw(props);
8123
8119
  const options = instance.propsOptions[0];
8120
+ const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));
8124
8121
  for (const key in options) {
8125
8122
  let opt = options[key];
8126
8123
  if (opt == null) continue;
@@ -8129,7 +8126,7 @@ function validateProps(rawProps, props, instance) {
8129
8126
  resolvedValues[key],
8130
8127
  opt,
8131
8128
  !!(process.env.NODE_ENV !== "production") ? shallowReadonly(resolvedValues) : resolvedValues,
8132
- !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))
8129
+ !camelizePropsKey.includes(key)
8133
8130
  );
8134
8131
  }
8135
8132
  }
@@ -9981,14 +9978,13 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
9981
9978
  }
9982
9979
  const baseWatchOptions = extend({}, options);
9983
9980
  if (!!(process.env.NODE_ENV !== "production")) baseWatchOptions.onWarn = warn$1;
9981
+ const runsImmediately = cb && immediate || !cb && flush !== "post";
9984
9982
  let ssrCleanup;
9985
9983
  if (isInSSRComponentSetup) {
9986
9984
  if (flush === "sync") {
9987
9985
  const ctx = useSSRContext();
9988
9986
  ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
9989
- } else if (!cb || immediate) {
9990
- baseWatchOptions.once = true;
9991
- } else {
9987
+ } else if (!runsImmediately) {
9992
9988
  const watchStopHandle = () => {
9993
9989
  };
9994
9990
  watchStopHandle.stop = NOOP;
@@ -10027,7 +10023,13 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
10027
10023
  }
10028
10024
  };
10029
10025
  const watchHandle = watch$1(source, cb, baseWatchOptions);
10030
- if (ssrCleanup) ssrCleanup.push(watchHandle);
10026
+ if (isInSSRComponentSetup) {
10027
+ if (ssrCleanup) {
10028
+ ssrCleanup.push(watchHandle);
10029
+ } else if (runsImmediately) {
10030
+ watchHandle();
10031
+ }
10032
+ }
10031
10033
  return watchHandle;
10032
10034
  }
10033
10035
  function instanceWatch(source, value, options) {
@@ -10062,19 +10064,19 @@ function useModel(props, name, options = EMPTY_OBJ) {
10062
10064
  warn$1(`useModel() called without active instance.`);
10063
10065
  return ref();
10064
10066
  }
10065
- if (!!(process.env.NODE_ENV !== "production") && !i.propsOptions[0][name]) {
10067
+ const camelizedName = camelize(name);
10068
+ if (!!(process.env.NODE_ENV !== "production") && !i.propsOptions[0][camelizedName]) {
10066
10069
  warn$1(`useModel() called with prop "${name}" which is not declared.`);
10067
10070
  return ref();
10068
10071
  }
10069
- const camelizedName = camelize(name);
10070
10072
  const hyphenatedName = hyphenate(name);
10071
- const modifiers = getModelModifiers(props, name);
10073
+ const modifiers = getModelModifiers(props, camelizedName);
10072
10074
  const res = customRef((track, trigger) => {
10073
10075
  let localValue;
10074
10076
  let prevSetValue = EMPTY_OBJ;
10075
10077
  let prevEmittedValue;
10076
10078
  watchSyncEffect(() => {
10077
- const propValue = props[name];
10079
+ const propValue = props[camelizedName];
10078
10080
  if (hasChanged(localValue, propValue)) {
10079
10081
  localValue = propValue;
10080
10082
  trigger();
@@ -10380,7 +10382,7 @@ function renderComponentRoot(instance) {
10380
10382
  }
10381
10383
  if (extraAttrs.length) {
10382
10384
  warn$1(
10383
- `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
10385
+ `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`
10384
10386
  );
10385
10387
  }
10386
10388
  if (eventAttrs.length) {
@@ -11241,9 +11243,9 @@ function closeBlock() {
11241
11243
  currentBlock = blockStack[blockStack.length - 1] || null;
11242
11244
  }
11243
11245
  let isBlockTreeEnabled = 1;
11244
- function setBlockTracking(value) {
11246
+ function setBlockTracking(value, inVOnce = false) {
11245
11247
  isBlockTreeEnabled += value;
11246
- if (value < 0 && currentBlock) {
11248
+ if (value < 0 && currentBlock && inVOnce) {
11247
11249
  currentBlock.hasOnce = true;
11248
11250
  }
11249
11251
  }
@@ -11798,9 +11800,9 @@ function setupStatefulComponent(instance, isSSR) {
11798
11800
  }
11799
11801
  const { setup } = Component;
11800
11802
  if (setup) {
11803
+ pauseTracking();
11801
11804
  const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
11802
11805
  const reset = setCurrentInstance(instance);
11803
- pauseTracking();
11804
11806
  const setupResult = callWithErrorHandling(
11805
11807
  setup,
11806
11808
  instance,
@@ -11810,10 +11812,13 @@ function setupStatefulComponent(instance, isSSR) {
11810
11812
  setupContext
11811
11813
  ]
11812
11814
  );
11815
+ const isAsyncSetup = isPromise(setupResult);
11813
11816
  resetTracking();
11814
11817
  reset();
11815
- if (isPromise(setupResult)) {
11816
- if (!isAsyncWrapper(instance)) markAsyncBoundary(instance);
11818
+ if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {
11819
+ markAsyncBoundary(instance);
11820
+ }
11821
+ if (isAsyncSetup) {
11817
11822
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
11818
11823
  if (isSSR) {
11819
11824
  return setupResult.then((resolvedResult) => {
@@ -11885,7 +11890,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
11885
11890
  }
11886
11891
  if (!instance.render) {
11887
11892
  if (!isSSR && compile && !Component.render) {
11888
- const template = instance.vnode.props && instance.vnode.props["inline-template"] || Component.template || resolveMergedOptions(instance).template;
11893
+ const template = instance.vnode.props && instance.vnode.props["inline-template"] || Component.template || __VUE_OPTIONS_API__ && resolveMergedOptions(instance).template;
11889
11894
  if (template) {
11890
11895
  if (!!(process.env.NODE_ENV !== "production")) {
11891
11896
  startMeasure(instance, `compile`);
@@ -12300,7 +12305,7 @@ function isMemoSame(cached, memo) {
12300
12305
  return true;
12301
12306
  }
12302
12307
 
12303
- const version = "3.5.11";
12308
+ const version = "3.5.13";
12304
12309
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12305
12310
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12306
12311
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -12510,7 +12515,8 @@ function resolveTransitionProps(rawProps) {
12510
12515
  onAppear = onEnter,
12511
12516
  onAppearCancelled = onEnterCancelled
12512
12517
  } = baseProps;
12513
- const finishEnter = (el, isAppear, done) => {
12518
+ const finishEnter = (el, isAppear, done, isCancelled) => {
12519
+ el._enterCancelled = isCancelled;
12514
12520
  removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
12515
12521
  removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
12516
12522
  done && done();
@@ -12568,8 +12574,13 @@ function resolveTransitionProps(rawProps) {
12568
12574
  if (legacyClassEnabled && legacyLeaveFromClass) {
12569
12575
  addTransitionClass(el, legacyLeaveFromClass);
12570
12576
  }
12571
- addTransitionClass(el, leaveActiveClass);
12572
- forceReflow();
12577
+ if (!el._enterCancelled) {
12578
+ forceReflow();
12579
+ addTransitionClass(el, leaveActiveClass);
12580
+ } else {
12581
+ addTransitionClass(el, leaveActiveClass);
12582
+ forceReflow();
12583
+ }
12573
12584
  nextFrame(() => {
12574
12585
  if (!el._isLeaving) {
12575
12586
  return;
@@ -12586,11 +12597,11 @@ function resolveTransitionProps(rawProps) {
12586
12597
  callHook(onLeave, [el, resolve]);
12587
12598
  },
12588
12599
  onEnterCancelled(el) {
12589
- finishEnter(el, false);
12600
+ finishEnter(el, false, void 0, true);
12590
12601
  callHook(onEnterCancelled, [el]);
12591
12602
  },
12592
12603
  onAppearCancelled(el) {
12593
- finishEnter(el, true);
12604
+ finishEnter(el, true, void 0, true);
12594
12605
  callHook(onAppearCancelled, [el]);
12595
12606
  },
12596
12607
  onLeaveCancelled(el) {
@@ -12810,10 +12821,11 @@ function useCssVars(getter) {
12810
12821
  }
12811
12822
  updateTeleports(vars);
12812
12823
  };
12813
- onBeforeMount(() => {
12814
- watchPostEffect(setVars);
12824
+ onBeforeUpdate(() => {
12825
+ queuePostFlushCb(setVars);
12815
12826
  });
12816
12827
  onMounted(() => {
12828
+ watch(setVars, NOOP, { flush: "post" });
12817
12829
  const ob = new MutationObserver(setVars);
12818
12830
  ob.observe(instance.subTree.el.parentNode, { childList: true });
12819
12831
  onUnmounted(() => ob.disconnect());
@@ -13005,7 +13017,7 @@ function compatCoerceAttr(el, key, value, instance = null) {
13005
13017
  return false;
13006
13018
  }
13007
13019
 
13008
- function patchDOMProp(el, key, value, parentComponent) {
13020
+ function patchDOMProp(el, key, value, parentComponent, attrName) {
13009
13021
  if (key === "innerHTML" || key === "textContent") {
13010
13022
  if (value != null) {
13011
13023
  el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
@@ -13069,7 +13081,7 @@ function patchDOMProp(el, key, value, parentComponent) {
13069
13081
  );
13070
13082
  }
13071
13083
  }
13072
- needRemove && el.removeAttribute(key);
13084
+ needRemove && el.removeAttribute(attrName || key);
13073
13085
  }
13074
13086
 
13075
13087
  function addEventListener(el, event, handler, options) {
@@ -13179,7 +13191,7 @@ const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) =>
13179
13191
  // #11081 force set props for possible async custom element
13180
13192
  el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))
13181
13193
  ) {
13182
- patchDOMProp(el, camelize(key), nextValue, parentComponent);
13194
+ patchDOMProp(el, camelize(key), nextValue, parentComponent, key);
13183
13195
  } else {
13184
13196
  if (key === "true-value") {
13185
13197
  el._trueValue = nextValue;
@@ -13464,6 +13476,8 @@ class VueElement extends BaseClass {
13464
13476
  this._update();
13465
13477
  }
13466
13478
  if (shouldReflect) {
13479
+ const ob = this._ob;
13480
+ ob && ob.disconnect();
13467
13481
  if (val === true) {
13468
13482
  this.setAttribute(hyphenate(key), "");
13469
13483
  } else if (typeof val === "string" || typeof val === "number") {
@@ -13471,6 +13485,7 @@ class VueElement extends BaseClass {
13471
13485
  } else if (!val) {
13472
13486
  this.removeAttribute(hyphenate(key));
13473
13487
  }
13488
+ ob && ob.observe(this, { attributes: true });
13474
13489
  }
13475
13490
  }
13476
13491
  }
@@ -13906,7 +13921,7 @@ const vModelCheckbox = {
13906
13921
  setChecked(el, binding, vnode);
13907
13922
  }
13908
13923
  };
13909
- function setChecked(el, { value }, vnode) {
13924
+ function setChecked(el, { value, oldValue }, vnode) {
13910
13925
  el._modelValue = value;
13911
13926
  let checked;
13912
13927
  if (isArray(value)) {
@@ -13914,6 +13929,7 @@ function setChecked(el, { value }, vnode) {
13914
13929
  } else if (isSet(value)) {
13915
13930
  checked = value.has(vnode.props.value);
13916
13931
  } else {
13932
+ if (value === oldValue) return;
13917
13933
  checked = looseEqual(value, getCheckboxValue(el, true));
13918
13934
  }
13919
13935
  if (el.checked !== checked) {