@vue/compat 3.5.10 → 3.5.12

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.10
2
+ * @vue/compat v3.5.12
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -630,8 +630,14 @@ class ReactiveEffect {
630
630
  }
631
631
  let batchDepth = 0;
632
632
  let batchedSub;
633
- function batch(sub) {
633
+ let batchedComputed;
634
+ function batch(sub, isComputed = false) {
634
635
  sub.flags |= 8;
636
+ if (isComputed) {
637
+ sub.next = batchedComputed;
638
+ batchedComputed = sub;
639
+ return;
640
+ }
635
641
  sub.next = batchedSub;
636
642
  batchedSub = sub;
637
643
  }
@@ -642,20 +648,22 @@ function endBatch() {
642
648
  if (--batchDepth > 0) {
643
649
  return;
644
650
  }
651
+ if (batchedComputed) {
652
+ let e = batchedComputed;
653
+ batchedComputed = void 0;
654
+ while (e) {
655
+ const next = e.next;
656
+ e.next = void 0;
657
+ e.flags &= ~8;
658
+ e = next;
659
+ }
660
+ }
645
661
  let error;
646
662
  while (batchedSub) {
647
663
  let e = batchedSub;
648
- let next;
649
- while (e) {
650
- if (!(e.flags & 1)) {
651
- e.flags &= ~8;
652
- }
653
- e = e.next;
654
- }
655
- e = batchedSub;
656
664
  batchedSub = void 0;
657
665
  while (e) {
658
- next = e.next;
666
+ const next = e.next;
659
667
  e.next = void 0;
660
668
  e.flags &= ~8;
661
669
  if (e.flags & 1) {
@@ -755,16 +763,16 @@ function removeSub(link, soft = false) {
755
763
  nextSub.prevSub = prevSub;
756
764
  link.nextSub = void 0;
757
765
  }
758
- if (dep.subs === link) {
759
- dep.subs = prevSub;
760
- }
761
766
  if (!!(process.env.NODE_ENV !== "production") && dep.subsHead === link) {
762
767
  dep.subsHead = nextSub;
763
768
  }
764
- if (!dep.subs && dep.computed) {
765
- dep.computed.flags &= ~4;
766
- for (let l = dep.computed.deps; l; l = l.nextDep) {
767
- removeSub(l, true);
769
+ if (dep.subs === link) {
770
+ dep.subs = prevSub;
771
+ if (!prevSub && dep.computed) {
772
+ dep.computed.flags &= ~4;
773
+ for (let l = dep.computed.deps; l; l = l.nextDep) {
774
+ removeSub(l, true);
775
+ }
768
776
  }
769
777
  }
770
778
  if (!soft && !--dep.sc && dep.map) {
@@ -851,7 +859,6 @@ class Dep {
851
859
  /**
852
860
  * For object property deps cleanup
853
861
  */
854
- this.target = void 0;
855
862
  this.map = void 0;
856
863
  this.key = void 0;
857
864
  /**
@@ -979,7 +986,6 @@ function track(target, type, key) {
979
986
  let dep = depsMap.get(key);
980
987
  if (!dep) {
981
988
  depsMap.set(key, dep = new Dep());
982
- dep.target = target;
983
989
  dep.map = depsMap;
984
990
  dep.key = key;
985
991
  }
@@ -1030,7 +1036,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
1030
1036
  }
1031
1037
  });
1032
1038
  } else {
1033
- if (key !== void 0) {
1039
+ if (key !== void 0 || depsMap.has(void 0)) {
1034
1040
  run(depsMap.get(key));
1035
1041
  }
1036
1042
  if (isArrayIndex) {
@@ -1405,117 +1411,6 @@ const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true
1405
1411
 
1406
1412
  const toShallow = (value) => value;
1407
1413
  const getProto = (v) => Reflect.getPrototypeOf(v);
1408
- function get(target, key, isReadonly2 = false, isShallow2 = false) {
1409
- target = target["__v_raw"];
1410
- const rawTarget = toRaw(target);
1411
- const rawKey = toRaw(key);
1412
- if (!isReadonly2) {
1413
- if (hasChanged(key, rawKey)) {
1414
- track(rawTarget, "get", key);
1415
- }
1416
- track(rawTarget, "get", rawKey);
1417
- }
1418
- const { has: has2 } = getProto(rawTarget);
1419
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1420
- if (has2.call(rawTarget, key)) {
1421
- return wrap(target.get(key));
1422
- } else if (has2.call(rawTarget, rawKey)) {
1423
- return wrap(target.get(rawKey));
1424
- } else if (target !== rawTarget) {
1425
- target.get(key);
1426
- }
1427
- }
1428
- function has(key, isReadonly2 = false) {
1429
- const target = this["__v_raw"];
1430
- const rawTarget = toRaw(target);
1431
- const rawKey = toRaw(key);
1432
- if (!isReadonly2) {
1433
- if (hasChanged(key, rawKey)) {
1434
- track(rawTarget, "has", key);
1435
- }
1436
- track(rawTarget, "has", rawKey);
1437
- }
1438
- return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1439
- }
1440
- function size(target, isReadonly2 = false) {
1441
- target = target["__v_raw"];
1442
- !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
1443
- return Reflect.get(target, "size", target);
1444
- }
1445
- function add(value, _isShallow = false) {
1446
- if (!_isShallow && !isShallow(value) && !isReadonly(value)) {
1447
- value = toRaw(value);
1448
- }
1449
- const target = toRaw(this);
1450
- const proto = getProto(target);
1451
- const hadKey = proto.has.call(target, value);
1452
- if (!hadKey) {
1453
- target.add(value);
1454
- trigger(target, "add", value, value);
1455
- }
1456
- return this;
1457
- }
1458
- function set(key, value, _isShallow = false) {
1459
- if (!_isShallow && !isShallow(value) && !isReadonly(value)) {
1460
- value = toRaw(value);
1461
- }
1462
- const target = toRaw(this);
1463
- const { has: has2, get: get2 } = getProto(target);
1464
- let hadKey = has2.call(target, key);
1465
- if (!hadKey) {
1466
- key = toRaw(key);
1467
- hadKey = has2.call(target, key);
1468
- } else if (!!(process.env.NODE_ENV !== "production")) {
1469
- checkIdentityKeys(target, has2, key);
1470
- }
1471
- const oldValue = get2.call(target, key);
1472
- target.set(key, value);
1473
- if (!hadKey) {
1474
- trigger(target, "add", key, value);
1475
- } else if (hasChanged(value, oldValue)) {
1476
- trigger(target, "set", key, value, oldValue);
1477
- }
1478
- return this;
1479
- }
1480
- function deleteEntry(key) {
1481
- const target = toRaw(this);
1482
- const { has: has2, get: get2 } = getProto(target);
1483
- let hadKey = has2.call(target, key);
1484
- if (!hadKey) {
1485
- key = toRaw(key);
1486
- hadKey = has2.call(target, key);
1487
- } else if (!!(process.env.NODE_ENV !== "production")) {
1488
- checkIdentityKeys(target, has2, key);
1489
- }
1490
- const oldValue = get2 ? get2.call(target, key) : void 0;
1491
- const result = target.delete(key);
1492
- if (hadKey) {
1493
- trigger(target, "delete", key, void 0, oldValue);
1494
- }
1495
- return result;
1496
- }
1497
- function clear() {
1498
- const target = toRaw(this);
1499
- const hadItems = target.size !== 0;
1500
- const oldTarget = !!(process.env.NODE_ENV !== "production") ? isMap(target) ? new Map(target) : new Set(target) : void 0;
1501
- const result = target.clear();
1502
- if (hadItems) {
1503
- trigger(target, "clear", void 0, void 0, oldTarget);
1504
- }
1505
- return result;
1506
- }
1507
- function createForEach(isReadonly2, isShallow2) {
1508
- return function forEach(callback, thisArg) {
1509
- const observed = this;
1510
- const target = observed["__v_raw"];
1511
- const rawTarget = toRaw(target);
1512
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1513
- !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY);
1514
- return target.forEach((value, key) => {
1515
- return callback.call(thisArg, wrap(value), wrap(key), observed);
1516
- });
1517
- };
1518
- }
1519
1414
  function createIterableMethod(method, isReadonly2, isShallow2) {
1520
1415
  return function(...args) {
1521
1416
  const target = this["__v_raw"];
@@ -1558,71 +1453,134 @@ function createReadonlyMethod(type) {
1558
1453
  return type === "delete" ? false : type === "clear" ? void 0 : this;
1559
1454
  };
1560
1455
  }
1561
- function createInstrumentations() {
1562
- const mutableInstrumentations2 = {
1563
- get(key) {
1564
- return get(this, key);
1565
- },
1566
- get size() {
1567
- return size(this);
1568
- },
1569
- has,
1570
- add,
1571
- set,
1572
- delete: deleteEntry,
1573
- clear,
1574
- forEach: createForEach(false, false)
1575
- };
1576
- const shallowInstrumentations2 = {
1456
+ function createInstrumentations(readonly, shallow) {
1457
+ const instrumentations = {
1577
1458
  get(key) {
1578
- return get(this, key, false, true);
1579
- },
1580
- get size() {
1581
- return size(this);
1582
- },
1583
- has,
1584
- add(value) {
1585
- return add.call(this, value, true);
1586
- },
1587
- set(key, value) {
1588
- return set.call(this, key, value, true);
1589
- },
1590
- delete: deleteEntry,
1591
- clear,
1592
- forEach: createForEach(false, true)
1593
- };
1594
- const readonlyInstrumentations2 = {
1595
- get(key) {
1596
- return get(this, key, true);
1597
- },
1598
- get size() {
1599
- return size(this, true);
1600
- },
1601
- has(key) {
1602
- return has.call(this, key, true);
1603
- },
1604
- add: createReadonlyMethod("add"),
1605
- set: createReadonlyMethod("set"),
1606
- delete: createReadonlyMethod("delete"),
1607
- clear: createReadonlyMethod("clear"),
1608
- forEach: createForEach(true, false)
1609
- };
1610
- const shallowReadonlyInstrumentations2 = {
1611
- get(key) {
1612
- return get(this, key, true, true);
1459
+ const target = this["__v_raw"];
1460
+ const rawTarget = toRaw(target);
1461
+ const rawKey = toRaw(key);
1462
+ if (!readonly) {
1463
+ if (hasChanged(key, rawKey)) {
1464
+ track(rawTarget, "get", key);
1465
+ }
1466
+ track(rawTarget, "get", rawKey);
1467
+ }
1468
+ const { has } = getProto(rawTarget);
1469
+ const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1470
+ if (has.call(rawTarget, key)) {
1471
+ return wrap(target.get(key));
1472
+ } else if (has.call(rawTarget, rawKey)) {
1473
+ return wrap(target.get(rawKey));
1474
+ } else if (target !== rawTarget) {
1475
+ target.get(key);
1476
+ }
1613
1477
  },
1614
1478
  get size() {
1615
- return size(this, true);
1479
+ const target = this["__v_raw"];
1480
+ !readonly && track(toRaw(target), "iterate", ITERATE_KEY);
1481
+ return Reflect.get(target, "size", target);
1616
1482
  },
1617
1483
  has(key) {
1618
- return has.call(this, key, true);
1484
+ const target = this["__v_raw"];
1485
+ const rawTarget = toRaw(target);
1486
+ const rawKey = toRaw(key);
1487
+ if (!readonly) {
1488
+ if (hasChanged(key, rawKey)) {
1489
+ track(rawTarget, "has", key);
1490
+ }
1491
+ track(rawTarget, "has", rawKey);
1492
+ }
1493
+ return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1619
1494
  },
1620
- add: createReadonlyMethod("add"),
1621
- set: createReadonlyMethod("set"),
1622
- delete: createReadonlyMethod("delete"),
1623
- clear: createReadonlyMethod("clear"),
1624
- forEach: createForEach(true, true)
1495
+ forEach(callback, thisArg) {
1496
+ const observed = this;
1497
+ const target = observed["__v_raw"];
1498
+ const rawTarget = toRaw(target);
1499
+ const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1500
+ !readonly && track(rawTarget, "iterate", ITERATE_KEY);
1501
+ return target.forEach((value, key) => {
1502
+ return callback.call(thisArg, wrap(value), wrap(key), observed);
1503
+ });
1504
+ }
1625
1505
  };
1506
+ extend(
1507
+ instrumentations,
1508
+ readonly ? {
1509
+ add: createReadonlyMethod("add"),
1510
+ set: createReadonlyMethod("set"),
1511
+ delete: createReadonlyMethod("delete"),
1512
+ clear: createReadonlyMethod("clear")
1513
+ } : {
1514
+ add(value) {
1515
+ if (!shallow && !isShallow(value) && !isReadonly(value)) {
1516
+ value = toRaw(value);
1517
+ }
1518
+ const target = toRaw(this);
1519
+ const proto = getProto(target);
1520
+ const hadKey = proto.has.call(target, value);
1521
+ if (!hadKey) {
1522
+ target.add(value);
1523
+ trigger(target, "add", value, value);
1524
+ }
1525
+ return this;
1526
+ },
1527
+ set(key, value) {
1528
+ if (!shallow && !isShallow(value) && !isReadonly(value)) {
1529
+ value = toRaw(value);
1530
+ }
1531
+ const target = toRaw(this);
1532
+ const { has, get } = getProto(target);
1533
+ let hadKey = has.call(target, key);
1534
+ if (!hadKey) {
1535
+ key = toRaw(key);
1536
+ hadKey = has.call(target, key);
1537
+ } else if (!!(process.env.NODE_ENV !== "production")) {
1538
+ checkIdentityKeys(target, has, key);
1539
+ }
1540
+ const oldValue = get.call(target, key);
1541
+ target.set(key, value);
1542
+ if (!hadKey) {
1543
+ trigger(target, "add", key, value);
1544
+ } else if (hasChanged(value, oldValue)) {
1545
+ trigger(target, "set", key, value, oldValue);
1546
+ }
1547
+ return this;
1548
+ },
1549
+ delete(key) {
1550
+ const target = toRaw(this);
1551
+ const { has, get } = getProto(target);
1552
+ let hadKey = has.call(target, key);
1553
+ if (!hadKey) {
1554
+ key = toRaw(key);
1555
+ hadKey = has.call(target, key);
1556
+ } else if (!!(process.env.NODE_ENV !== "production")) {
1557
+ checkIdentityKeys(target, has, key);
1558
+ }
1559
+ const oldValue = get ? get.call(target, key) : void 0;
1560
+ const result = target.delete(key);
1561
+ if (hadKey) {
1562
+ trigger(target, "delete", key, void 0, oldValue);
1563
+ }
1564
+ return result;
1565
+ },
1566
+ clear() {
1567
+ const target = toRaw(this);
1568
+ const hadItems = target.size !== 0;
1569
+ const oldTarget = !!(process.env.NODE_ENV !== "production") ? isMap(target) ? new Map(target) : new Set(target) : void 0;
1570
+ const result = target.clear();
1571
+ if (hadItems) {
1572
+ trigger(
1573
+ target,
1574
+ "clear",
1575
+ void 0,
1576
+ void 0,
1577
+ oldTarget
1578
+ );
1579
+ }
1580
+ return result;
1581
+ }
1582
+ }
1583
+ );
1626
1584
  const iteratorMethods = [
1627
1585
  "keys",
1628
1586
  "values",
@@ -1630,30 +1588,12 @@ function createInstrumentations() {
1630
1588
  Symbol.iterator
1631
1589
  ];
1632
1590
  iteratorMethods.forEach((method) => {
1633
- mutableInstrumentations2[method] = createIterableMethod(method, false, false);
1634
- readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
1635
- shallowInstrumentations2[method] = createIterableMethod(method, false, true);
1636
- shallowReadonlyInstrumentations2[method] = createIterableMethod(
1637
- method,
1638
- true,
1639
- true
1640
- );
1591
+ instrumentations[method] = createIterableMethod(method, readonly, shallow);
1641
1592
  });
1642
- return [
1643
- mutableInstrumentations2,
1644
- readonlyInstrumentations2,
1645
- shallowInstrumentations2,
1646
- shallowReadonlyInstrumentations2
1647
- ];
1593
+ return instrumentations;
1648
1594
  }
1649
- const [
1650
- mutableInstrumentations,
1651
- readonlyInstrumentations,
1652
- shallowInstrumentations,
1653
- shallowReadonlyInstrumentations
1654
- ] = /* @__PURE__ */ createInstrumentations();
1655
1595
  function createInstrumentationGetter(isReadonly2, shallow) {
1656
- const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
1596
+ const instrumentations = createInstrumentations(isReadonly2, shallow);
1657
1597
  return (target, key, receiver) => {
1658
1598
  if (key === "__v_isReactive") {
1659
1599
  return !isReadonly2;
@@ -1681,9 +1621,9 @@ const readonlyCollectionHandlers = {
1681
1621
  const shallowReadonlyCollectionHandlers = {
1682
1622
  get: /* @__PURE__ */ createInstrumentationGetter(true, true)
1683
1623
  };
1684
- function checkIdentityKeys(target, has2, key) {
1624
+ function checkIdentityKeys(target, has, key) {
1685
1625
  const rawKey = toRaw(key);
1686
- if (rawKey !== key && has2.call(target, rawKey)) {
1626
+ if (rawKey !== key && has.call(target, rawKey)) {
1687
1627
  const type = toRawType(target);
1688
1628
  warn$2(
1689
1629
  `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.`
@@ -2025,7 +1965,7 @@ class ComputedRefImpl {
2025
1965
  this.flags |= 16;
2026
1966
  if (!(this.flags & 8) && // avoid infinite self recursion
2027
1967
  activeSub !== this) {
2028
- batch(this);
1968
+ batch(this, true);
2029
1969
  return true;
2030
1970
  } else if (!!(process.env.NODE_ENV !== "production")) ;
2031
1971
  }
@@ -2552,10 +2492,8 @@ function logError(err, type, contextVNode, throwInDev = true, throwInProd = fals
2552
2492
  }
2553
2493
  }
2554
2494
 
2555
- let isFlushing = false;
2556
- let isFlushPending = false;
2557
2495
  const queue = [];
2558
- let flushIndex = 0;
2496
+ let flushIndex = -1;
2559
2497
  const pendingPostFlushCbs = [];
2560
2498
  let activePostFlushCbs = null;
2561
2499
  let postFlushIndex = 0;
@@ -2567,7 +2505,7 @@ function nextTick(fn) {
2567
2505
  return fn ? p.then(this ? fn.bind(this) : fn) : p;
2568
2506
  }
2569
2507
  function findInsertionIndex(id) {
2570
- let start = isFlushing ? flushIndex + 1 : 0;
2508
+ let start = flushIndex + 1;
2571
2509
  let end = queue.length;
2572
2510
  while (start < end) {
2573
2511
  const middle = start + end >>> 1;
@@ -2596,8 +2534,7 @@ function queueJob(job) {
2596
2534
  }
2597
2535
  }
2598
2536
  function queueFlush() {
2599
- if (!isFlushing && !isFlushPending) {
2600
- isFlushPending = true;
2537
+ if (!currentFlushPromise) {
2601
2538
  currentFlushPromise = resolvedPromise.then(flushJobs);
2602
2539
  }
2603
2540
  }
@@ -2614,7 +2551,7 @@ function queuePostFlushCb(cb) {
2614
2551
  }
2615
2552
  queueFlush();
2616
2553
  }
2617
- function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
2554
+ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2618
2555
  if (!!(process.env.NODE_ENV !== "production")) {
2619
2556
  seen = seen || /* @__PURE__ */ new Map();
2620
2557
  }
@@ -2670,8 +2607,6 @@ function flushPostFlushCbs(seen) {
2670
2607
  }
2671
2608
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2672
2609
  function flushJobs(seen) {
2673
- isFlushPending = false;
2674
- isFlushing = true;
2675
2610
  if (!!(process.env.NODE_ENV !== "production")) {
2676
2611
  seen = seen || /* @__PURE__ */ new Map();
2677
2612
  }
@@ -2703,10 +2638,9 @@ function flushJobs(seen) {
2703
2638
  job.flags &= ~1;
2704
2639
  }
2705
2640
  }
2706
- flushIndex = 0;
2641
+ flushIndex = -1;
2707
2642
  queue.length = 0;
2708
2643
  flushPostFlushCbs(seen);
2709
- isFlushing = false;
2710
2644
  currentFlushPromise = null;
2711
2645
  if (queue.length || pendingPostFlushCbs.length) {
2712
2646
  flushJobs(seen);
@@ -3657,7 +3591,7 @@ const TeleportImpl = {
3657
3591
  }
3658
3592
  if (!disabled) {
3659
3593
  mount(target, targetAnchor);
3660
- updateCssVars(n2);
3594
+ updateCssVars(n2, false);
3661
3595
  }
3662
3596
  } else if (!!(process.env.NODE_ENV !== "production") && !disabled) {
3663
3597
  warn$1(
@@ -3669,7 +3603,7 @@ const TeleportImpl = {
3669
3603
  };
3670
3604
  if (disabled) {
3671
3605
  mount(container, mainAnchor);
3672
- updateCssVars(n2);
3606
+ updateCssVars(n2, true);
3673
3607
  }
3674
3608
  if (isTeleportDeferred(n2.props)) {
3675
3609
  queuePostRenderEffect(mountToTarget, parentSuspense);
@@ -3759,7 +3693,7 @@ const TeleportImpl = {
3759
3693
  );
3760
3694
  }
3761
3695
  }
3762
- updateCssVars(n2);
3696
+ updateCssVars(n2, disabled);
3763
3697
  }
3764
3698
  },
3765
3699
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
@@ -3827,9 +3761,10 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3827
3761
  querySelector
3828
3762
  );
3829
3763
  if (target) {
3764
+ const disabled = isTeleportDisabled(vnode.props);
3830
3765
  const targetNode = target._lpa || target.firstChild;
3831
3766
  if (vnode.shapeFlag & 16) {
3832
- if (isTeleportDisabled(vnode.props)) {
3767
+ if (disabled) {
3833
3768
  vnode.anchor = hydrateChildren(
3834
3769
  nextSibling(node),
3835
3770
  vnode,
@@ -3870,16 +3805,23 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3870
3805
  );
3871
3806
  }
3872
3807
  }
3873
- updateCssVars(vnode);
3808
+ updateCssVars(vnode, disabled);
3874
3809
  }
3875
3810
  return vnode.anchor && nextSibling(vnode.anchor);
3876
3811
  }
3877
3812
  const Teleport = TeleportImpl;
3878
- function updateCssVars(vnode) {
3813
+ function updateCssVars(vnode, isDisabled) {
3879
3814
  const ctx = vnode.ctx;
3880
3815
  if (ctx && ctx.ut) {
3881
- let node = vnode.targetStart;
3882
- while (node && node !== vnode.targetAnchor) {
3816
+ let node, anchor;
3817
+ if (isDisabled) {
3818
+ node = vnode.el;
3819
+ anchor = vnode.anchor;
3820
+ } else {
3821
+ node = vnode.targetStart;
3822
+ anchor = vnode.targetAnchor;
3823
+ }
3824
+ while (node && node !== anchor) {
3883
3825
  if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid);
3884
3826
  node = node.nextSibling;
3885
3827
  }
@@ -4333,8 +4275,15 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4333
4275
  const setupState = owner.setupState;
4334
4276
  const rawSetupState = toRaw(setupState);
4335
4277
  const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
4336
- if (!!(process.env.NODE_ENV !== "production") && knownTemplateRefs.has(rawSetupState[key])) {
4337
- return false;
4278
+ if (!!(process.env.NODE_ENV !== "production")) {
4279
+ if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {
4280
+ warn$1(
4281
+ `Template ref "${key}" used on a non-ref value. It will not work in the production build.`
4282
+ );
4283
+ }
4284
+ if (knownTemplateRefs.has(rawSetupState[key])) {
4285
+ return false;
4286
+ }
4338
4287
  }
4339
4288
  return hasOwn(rawSetupState, key);
4340
4289
  };
@@ -4631,7 +4580,11 @@ function createHydrationFunctions(rendererInternals) {
4631
4580
  }
4632
4581
  let needCallTransitionHooks = false;
4633
4582
  if (isTemplateNode(el)) {
4634
- needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4583
+ needCallTransitionHooks = needTransition(
4584
+ null,
4585
+ // no need check parentSuspense in hydration
4586
+ transition
4587
+ ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4635
4588
  const content = el.content.firstChild;
4636
4589
  if (needCallTransitionHooks) {
4637
4590
  transition.beforeEnter(content);
@@ -5035,6 +4988,8 @@ function isMismatchAllowed(el, allowedType) {
5035
4988
  }
5036
4989
  }
5037
4990
 
4991
+ const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));
4992
+ const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));
5038
4993
  const hydrateOnIdle = (timeout = 1e4) => (hydrate) => {
5039
4994
  const id = requestIdleCallback(hydrate, { timeout });
5040
4995
  return () => cancelIdleCallback(id);
@@ -6028,12 +5983,13 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
6028
5983
  }
6029
5984
  openBlock();
6030
5985
  const validSlotContent = slot && ensureValidVNode(slot(props));
5986
+ const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
5987
+ // key attached in the `createSlots` helper, respect that
5988
+ validSlotContent && validSlotContent.key;
6031
5989
  const rendered = createBlock(
6032
5990
  Fragment,
6033
5991
  {
6034
- key: (props.key || // slot content array of a dynamic conditional slot may have a branch
6035
- // key attached in the `createSlots` helper, respect that
6036
- validSlotContent && validSlotContent.key || `_${name}`) + // #7256 force differentiate fallback content from actual content
5992
+ key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
6037
5993
  (!validSlotContent && fallback ? "_fb" : "")
6038
5994
  },
6039
5995
  validSlotContent || (fallback ? fallback() : []),
@@ -7204,7 +7160,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7204
7160
  return vm;
7205
7161
  }
7206
7162
  }
7207
- Vue.version = `2.6.14-compat:${"3.5.10"}`;
7163
+ Vue.version = `2.6.14-compat:${"3.5.12"}`;
7208
7164
  Vue.config = singletonApp.config;
7209
7165
  Vue.use = (plugin, ...options) => {
7210
7166
  if (plugin && isFunction(plugin.install)) {
@@ -8194,6 +8150,7 @@ function getType(ctor) {
8194
8150
  function validateProps(rawProps, props, instance) {
8195
8151
  const resolvedValues = toRaw(props);
8196
8152
  const options = instance.propsOptions[0];
8153
+ const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));
8197
8154
  for (const key in options) {
8198
8155
  let opt = options[key];
8199
8156
  if (opt == null) continue;
@@ -8202,7 +8159,7 @@ function validateProps(rawProps, props, instance) {
8202
8159
  resolvedValues[key],
8203
8160
  opt,
8204
8161
  !!(process.env.NODE_ENV !== "production") ? shallowReadonly(resolvedValues) : resolvedValues,
8205
- !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))
8162
+ !camelizePropsKey.includes(key)
8206
8163
  );
8207
8164
  }
8208
8165
  }
@@ -10054,14 +10011,13 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
10054
10011
  }
10055
10012
  const baseWatchOptions = extend({}, options);
10056
10013
  if (!!(process.env.NODE_ENV !== "production")) baseWatchOptions.onWarn = warn$1;
10014
+ const runsImmediately = cb && immediate || !cb && flush !== "post";
10057
10015
  let ssrCleanup;
10058
10016
  if (isInSSRComponentSetup) {
10059
10017
  if (flush === "sync") {
10060
10018
  const ctx = useSSRContext();
10061
10019
  ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
10062
- } else if (!cb || immediate) {
10063
- baseWatchOptions.once = true;
10064
- } else {
10020
+ } else if (!runsImmediately) {
10065
10021
  const watchStopHandle = () => {
10066
10022
  };
10067
10023
  watchStopHandle.stop = NOOP;
@@ -10100,7 +10056,13 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
10100
10056
  }
10101
10057
  };
10102
10058
  const watchHandle = watch$1(source, cb, baseWatchOptions);
10103
- if (ssrCleanup) ssrCleanup.push(watchHandle);
10059
+ if (isInSSRComponentSetup) {
10060
+ if (ssrCleanup) {
10061
+ ssrCleanup.push(watchHandle);
10062
+ } else if (runsImmediately) {
10063
+ watchHandle();
10064
+ }
10065
+ }
10104
10066
  return watchHandle;
10105
10067
  }
10106
10068
  function instanceWatch(source, value, options) {
@@ -10135,19 +10097,19 @@ function useModel(props, name, options = EMPTY_OBJ) {
10135
10097
  warn$1(`useModel() called without active instance.`);
10136
10098
  return ref();
10137
10099
  }
10138
- if (!!(process.env.NODE_ENV !== "production") && !i.propsOptions[0][name]) {
10100
+ const camelizedName = camelize(name);
10101
+ if (!!(process.env.NODE_ENV !== "production") && !i.propsOptions[0][camelizedName]) {
10139
10102
  warn$1(`useModel() called with prop "${name}" which is not declared.`);
10140
10103
  return ref();
10141
10104
  }
10142
- const camelizedName = camelize(name);
10143
10105
  const hyphenatedName = hyphenate(name);
10144
- const modifiers = getModelModifiers(props, name);
10106
+ const modifiers = getModelModifiers(props, camelizedName);
10145
10107
  const res = customRef((track, trigger) => {
10146
10108
  let localValue;
10147
10109
  let prevSetValue = EMPTY_OBJ;
10148
10110
  let prevEmittedValue;
10149
10111
  watchSyncEffect(() => {
10150
- const propValue = props[name];
10112
+ const propValue = props[camelizedName];
10151
10113
  if (hasChanged(localValue, propValue)) {
10152
10114
  localValue = propValue;
10153
10115
  trigger();
@@ -11871,9 +11833,9 @@ function setupStatefulComponent(instance, isSSR) {
11871
11833
  }
11872
11834
  const { setup } = Component;
11873
11835
  if (setup) {
11836
+ pauseTracking();
11874
11837
  const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
11875
11838
  const reset = setCurrentInstance(instance);
11876
- pauseTracking();
11877
11839
  const setupResult = callWithErrorHandling(
11878
11840
  setup,
11879
11841
  instance,
@@ -11883,10 +11845,13 @@ function setupStatefulComponent(instance, isSSR) {
11883
11845
  setupContext
11884
11846
  ]
11885
11847
  );
11848
+ const isAsyncSetup = isPromise(setupResult);
11886
11849
  resetTracking();
11887
11850
  reset();
11888
- if (isPromise(setupResult)) {
11889
- if (!isAsyncWrapper(instance)) markAsyncBoundary(instance);
11851
+ if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {
11852
+ markAsyncBoundary(instance);
11853
+ }
11854
+ if (isAsyncSetup) {
11890
11855
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
11891
11856
  if (isSSR) {
11892
11857
  return setupResult.then((resolvedResult) => {
@@ -12373,7 +12338,7 @@ function isMemoSame(cached, memo) {
12373
12338
  return true;
12374
12339
  }
12375
12340
 
12376
- const version = "3.5.10";
12341
+ const version = "3.5.12";
12377
12342
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12378
12343
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12379
12344
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -13078,7 +13043,7 @@ function compatCoerceAttr(el, key, value, instance = null) {
13078
13043
  return false;
13079
13044
  }
13080
13045
 
13081
- function patchDOMProp(el, key, value, parentComponent) {
13046
+ function patchDOMProp(el, key, value, parentComponent, attrName) {
13082
13047
  if (key === "innerHTML" || key === "textContent") {
13083
13048
  if (value != null) {
13084
13049
  el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
@@ -13142,7 +13107,7 @@ function patchDOMProp(el, key, value, parentComponent) {
13142
13107
  );
13143
13108
  }
13144
13109
  }
13145
- needRemove && el.removeAttribute(key);
13110
+ needRemove && el.removeAttribute(attrName || key);
13146
13111
  }
13147
13112
 
13148
13113
  function addEventListener(el, event, handler, options) {
@@ -13252,7 +13217,7 @@ const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) =>
13252
13217
  // #11081 force set props for possible async custom element
13253
13218
  el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))
13254
13219
  ) {
13255
- patchDOMProp(el, camelize(key), nextValue, parentComponent);
13220
+ patchDOMProp(el, camelize(key), nextValue, parentComponent, key);
13256
13221
  } else {
13257
13222
  if (key === "true-value") {
13258
13223
  el._trueValue = nextValue;
@@ -13979,7 +13944,7 @@ const vModelCheckbox = {
13979
13944
  setChecked(el, binding, vnode);
13980
13945
  }
13981
13946
  };
13982
- function setChecked(el, { value }, vnode) {
13947
+ function setChecked(el, { value, oldValue }, vnode) {
13983
13948
  el._modelValue = value;
13984
13949
  let checked;
13985
13950
  if (isArray(value)) {
@@ -13987,6 +13952,7 @@ function setChecked(el, { value }, vnode) {
13987
13952
  } else if (isSet(value)) {
13988
13953
  checked = value.has(vnode.props.value);
13989
13954
  } else {
13955
+ if (value === oldValue) return;
13990
13956
  checked = looseEqual(value, getCheckboxValue(el, true));
13991
13957
  }
13992
13958
  if (el.checked !== checked) {
@@ -16690,6 +16656,9 @@ function getLoc(start, end) {
16690
16656
  source: end == null ? end : getSlice(start, end)
16691
16657
  };
16692
16658
  }
16659
+ function cloneLoc(loc) {
16660
+ return getLoc(loc.start.offset, loc.end.offset);
16661
+ }
16693
16662
  function setLocEnd(loc, end) {
16694
16663
  loc.end = tokenizer.getPos(end);
16695
16664
  loc.source = getSlice(loc.start.offset, end);
@@ -18051,7 +18020,7 @@ function processIf(node, dir, context, processCodegen) {
18051
18020
  const branch = createIfBranch(node, dir);
18052
18021
  const ifNode = {
18053
18022
  type: 9,
18054
- loc: node.loc,
18023
+ loc: cloneLoc(node.loc),
18055
18024
  branches: [branch]
18056
18025
  };
18057
18026
  context.replaceNode(ifNode);