@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
  **/
@@ -560,8 +560,14 @@ var Vue = (function () {
560
560
  }
561
561
  let batchDepth = 0;
562
562
  let batchedSub;
563
- function batch(sub) {
563
+ let batchedComputed;
564
+ function batch(sub, isComputed = false) {
564
565
  sub.flags |= 8;
566
+ if (isComputed) {
567
+ sub.next = batchedComputed;
568
+ batchedComputed = sub;
569
+ return;
570
+ }
565
571
  sub.next = batchedSub;
566
572
  batchedSub = sub;
567
573
  }
@@ -572,20 +578,22 @@ var Vue = (function () {
572
578
  if (--batchDepth > 0) {
573
579
  return;
574
580
  }
581
+ if (batchedComputed) {
582
+ let e = batchedComputed;
583
+ batchedComputed = void 0;
584
+ while (e) {
585
+ const next = e.next;
586
+ e.next = void 0;
587
+ e.flags &= ~8;
588
+ e = next;
589
+ }
590
+ }
575
591
  let error;
576
592
  while (batchedSub) {
577
593
  let e = batchedSub;
578
- let next;
579
- while (e) {
580
- if (!(e.flags & 1)) {
581
- e.flags &= ~8;
582
- }
583
- e = e.next;
584
- }
585
- e = batchedSub;
586
594
  batchedSub = void 0;
587
595
  while (e) {
588
- next = e.next;
596
+ const next = e.next;
589
597
  e.next = void 0;
590
598
  e.flags &= ~8;
591
599
  if (e.flags & 1) {
@@ -685,16 +693,16 @@ var Vue = (function () {
685
693
  nextSub.prevSub = prevSub;
686
694
  link.nextSub = void 0;
687
695
  }
688
- if (dep.subs === link) {
689
- dep.subs = prevSub;
690
- }
691
696
  if (dep.subsHead === link) {
692
697
  dep.subsHead = nextSub;
693
698
  }
694
- if (!dep.subs && dep.computed) {
695
- dep.computed.flags &= ~4;
696
- for (let l = dep.computed.deps; l; l = l.nextDep) {
697
- removeSub(l, true);
699
+ if (dep.subs === link) {
700
+ dep.subs = prevSub;
701
+ if (!prevSub && dep.computed) {
702
+ dep.computed.flags &= ~4;
703
+ for (let l = dep.computed.deps; l; l = l.nextDep) {
704
+ removeSub(l, true);
705
+ }
698
706
  }
699
707
  }
700
708
  if (!soft && !--dep.sc && dep.map) {
@@ -781,7 +789,6 @@ var Vue = (function () {
781
789
  /**
782
790
  * For object property deps cleanup
783
791
  */
784
- this.target = void 0;
785
792
  this.map = void 0;
786
793
  this.key = void 0;
787
794
  /**
@@ -909,7 +916,6 @@ var Vue = (function () {
909
916
  let dep = depsMap.get(key);
910
917
  if (!dep) {
911
918
  depsMap.set(key, dep = new Dep());
912
- dep.target = target;
913
919
  dep.map = depsMap;
914
920
  dep.key = key;
915
921
  }
@@ -956,7 +962,7 @@ var Vue = (function () {
956
962
  }
957
963
  });
958
964
  } else {
959
- if (key !== void 0) {
965
+ if (key !== void 0 || depsMap.has(void 0)) {
960
966
  run(depsMap.get(key));
961
967
  }
962
968
  if (isArrayIndex) {
@@ -1331,117 +1337,6 @@ var Vue = (function () {
1331
1337
 
1332
1338
  const toShallow = (value) => value;
1333
1339
  const getProto = (v) => Reflect.getPrototypeOf(v);
1334
- function get(target, key, isReadonly2 = false, isShallow2 = false) {
1335
- target = target["__v_raw"];
1336
- const rawTarget = toRaw(target);
1337
- const rawKey = toRaw(key);
1338
- if (!isReadonly2) {
1339
- if (hasChanged(key, rawKey)) {
1340
- track(rawTarget, "get", key);
1341
- }
1342
- track(rawTarget, "get", rawKey);
1343
- }
1344
- const { has: has2 } = getProto(rawTarget);
1345
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1346
- if (has2.call(rawTarget, key)) {
1347
- return wrap(target.get(key));
1348
- } else if (has2.call(rawTarget, rawKey)) {
1349
- return wrap(target.get(rawKey));
1350
- } else if (target !== rawTarget) {
1351
- target.get(key);
1352
- }
1353
- }
1354
- function has(key, isReadonly2 = false) {
1355
- const target = this["__v_raw"];
1356
- const rawTarget = toRaw(target);
1357
- const rawKey = toRaw(key);
1358
- if (!isReadonly2) {
1359
- if (hasChanged(key, rawKey)) {
1360
- track(rawTarget, "has", key);
1361
- }
1362
- track(rawTarget, "has", rawKey);
1363
- }
1364
- return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1365
- }
1366
- function size(target, isReadonly2 = false) {
1367
- target = target["__v_raw"];
1368
- !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
1369
- return Reflect.get(target, "size", target);
1370
- }
1371
- function add(value, _isShallow = false) {
1372
- if (!_isShallow && !isShallow(value) && !isReadonly(value)) {
1373
- value = toRaw(value);
1374
- }
1375
- const target = toRaw(this);
1376
- const proto = getProto(target);
1377
- const hadKey = proto.has.call(target, value);
1378
- if (!hadKey) {
1379
- target.add(value);
1380
- trigger(target, "add", value, value);
1381
- }
1382
- return this;
1383
- }
1384
- function set(key, value, _isShallow = false) {
1385
- if (!_isShallow && !isShallow(value) && !isReadonly(value)) {
1386
- value = toRaw(value);
1387
- }
1388
- const target = toRaw(this);
1389
- const { has: has2, get: get2 } = getProto(target);
1390
- let hadKey = has2.call(target, key);
1391
- if (!hadKey) {
1392
- key = toRaw(key);
1393
- hadKey = has2.call(target, key);
1394
- } else {
1395
- checkIdentityKeys(target, has2, key);
1396
- }
1397
- const oldValue = get2.call(target, key);
1398
- target.set(key, value);
1399
- if (!hadKey) {
1400
- trigger(target, "add", key, value);
1401
- } else if (hasChanged(value, oldValue)) {
1402
- trigger(target, "set", key, value, oldValue);
1403
- }
1404
- return this;
1405
- }
1406
- function deleteEntry(key) {
1407
- const target = toRaw(this);
1408
- const { has: has2, get: get2 } = getProto(target);
1409
- let hadKey = has2.call(target, key);
1410
- if (!hadKey) {
1411
- key = toRaw(key);
1412
- hadKey = has2.call(target, key);
1413
- } else {
1414
- checkIdentityKeys(target, has2, key);
1415
- }
1416
- const oldValue = get2 ? get2.call(target, key) : void 0;
1417
- const result = target.delete(key);
1418
- if (hadKey) {
1419
- trigger(target, "delete", key, void 0, oldValue);
1420
- }
1421
- return result;
1422
- }
1423
- function clear() {
1424
- const target = toRaw(this);
1425
- const hadItems = target.size !== 0;
1426
- const oldTarget = isMap(target) ? new Map(target) : new Set(target) ;
1427
- const result = target.clear();
1428
- if (hadItems) {
1429
- trigger(target, "clear", void 0, void 0, oldTarget);
1430
- }
1431
- return result;
1432
- }
1433
- function createForEach(isReadonly2, isShallow2) {
1434
- return function forEach(callback, thisArg) {
1435
- const observed = this;
1436
- const target = observed["__v_raw"];
1437
- const rawTarget = toRaw(target);
1438
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1439
- !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY);
1440
- return target.forEach((value, key) => {
1441
- return callback.call(thisArg, wrap(value), wrap(key), observed);
1442
- });
1443
- };
1444
- }
1445
1340
  function createIterableMethod(method, isReadonly2, isShallow2) {
1446
1341
  return function(...args) {
1447
1342
  const target = this["__v_raw"];
@@ -1484,71 +1379,134 @@ var Vue = (function () {
1484
1379
  return type === "delete" ? false : type === "clear" ? void 0 : this;
1485
1380
  };
1486
1381
  }
1487
- function createInstrumentations() {
1488
- const mutableInstrumentations2 = {
1489
- get(key) {
1490
- return get(this, key);
1491
- },
1492
- get size() {
1493
- return size(this);
1494
- },
1495
- has,
1496
- add,
1497
- set,
1498
- delete: deleteEntry,
1499
- clear,
1500
- forEach: createForEach(false, false)
1501
- };
1502
- const shallowInstrumentations2 = {
1382
+ function createInstrumentations(readonly, shallow) {
1383
+ const instrumentations = {
1503
1384
  get(key) {
1504
- return get(this, key, false, true);
1505
- },
1506
- get size() {
1507
- return size(this);
1508
- },
1509
- has,
1510
- add(value) {
1511
- return add.call(this, value, true);
1512
- },
1513
- set(key, value) {
1514
- return set.call(this, key, value, true);
1515
- },
1516
- delete: deleteEntry,
1517
- clear,
1518
- forEach: createForEach(false, true)
1519
- };
1520
- const readonlyInstrumentations2 = {
1521
- get(key) {
1522
- return get(this, key, true);
1523
- },
1524
- get size() {
1525
- return size(this, true);
1526
- },
1527
- has(key) {
1528
- return has.call(this, key, true);
1529
- },
1530
- add: createReadonlyMethod("add"),
1531
- set: createReadonlyMethod("set"),
1532
- delete: createReadonlyMethod("delete"),
1533
- clear: createReadonlyMethod("clear"),
1534
- forEach: createForEach(true, false)
1535
- };
1536
- const shallowReadonlyInstrumentations2 = {
1537
- get(key) {
1538
- return get(this, key, true, true);
1385
+ const target = this["__v_raw"];
1386
+ const rawTarget = toRaw(target);
1387
+ const rawKey = toRaw(key);
1388
+ if (!readonly) {
1389
+ if (hasChanged(key, rawKey)) {
1390
+ track(rawTarget, "get", key);
1391
+ }
1392
+ track(rawTarget, "get", rawKey);
1393
+ }
1394
+ const { has } = getProto(rawTarget);
1395
+ const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1396
+ if (has.call(rawTarget, key)) {
1397
+ return wrap(target.get(key));
1398
+ } else if (has.call(rawTarget, rawKey)) {
1399
+ return wrap(target.get(rawKey));
1400
+ } else if (target !== rawTarget) {
1401
+ target.get(key);
1402
+ }
1539
1403
  },
1540
1404
  get size() {
1541
- return size(this, true);
1405
+ const target = this["__v_raw"];
1406
+ !readonly && track(toRaw(target), "iterate", ITERATE_KEY);
1407
+ return Reflect.get(target, "size", target);
1542
1408
  },
1543
1409
  has(key) {
1544
- return has.call(this, key, true);
1410
+ const target = this["__v_raw"];
1411
+ const rawTarget = toRaw(target);
1412
+ const rawKey = toRaw(key);
1413
+ if (!readonly) {
1414
+ if (hasChanged(key, rawKey)) {
1415
+ track(rawTarget, "has", key);
1416
+ }
1417
+ track(rawTarget, "has", rawKey);
1418
+ }
1419
+ return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1545
1420
  },
1546
- add: createReadonlyMethod("add"),
1547
- set: createReadonlyMethod("set"),
1548
- delete: createReadonlyMethod("delete"),
1549
- clear: createReadonlyMethod("clear"),
1550
- forEach: createForEach(true, true)
1421
+ forEach(callback, thisArg) {
1422
+ const observed = this;
1423
+ const target = observed["__v_raw"];
1424
+ const rawTarget = toRaw(target);
1425
+ const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1426
+ !readonly && track(rawTarget, "iterate", ITERATE_KEY);
1427
+ return target.forEach((value, key) => {
1428
+ return callback.call(thisArg, wrap(value), wrap(key), observed);
1429
+ });
1430
+ }
1551
1431
  };
1432
+ extend(
1433
+ instrumentations,
1434
+ readonly ? {
1435
+ add: createReadonlyMethod("add"),
1436
+ set: createReadonlyMethod("set"),
1437
+ delete: createReadonlyMethod("delete"),
1438
+ clear: createReadonlyMethod("clear")
1439
+ } : {
1440
+ add(value) {
1441
+ if (!shallow && !isShallow(value) && !isReadonly(value)) {
1442
+ value = toRaw(value);
1443
+ }
1444
+ const target = toRaw(this);
1445
+ const proto = getProto(target);
1446
+ const hadKey = proto.has.call(target, value);
1447
+ if (!hadKey) {
1448
+ target.add(value);
1449
+ trigger(target, "add", value, value);
1450
+ }
1451
+ return this;
1452
+ },
1453
+ set(key, value) {
1454
+ if (!shallow && !isShallow(value) && !isReadonly(value)) {
1455
+ value = toRaw(value);
1456
+ }
1457
+ const target = toRaw(this);
1458
+ const { has, get } = getProto(target);
1459
+ let hadKey = has.call(target, key);
1460
+ if (!hadKey) {
1461
+ key = toRaw(key);
1462
+ hadKey = has.call(target, key);
1463
+ } else {
1464
+ checkIdentityKeys(target, has, key);
1465
+ }
1466
+ const oldValue = get.call(target, key);
1467
+ target.set(key, value);
1468
+ if (!hadKey) {
1469
+ trigger(target, "add", key, value);
1470
+ } else if (hasChanged(value, oldValue)) {
1471
+ trigger(target, "set", key, value, oldValue);
1472
+ }
1473
+ return this;
1474
+ },
1475
+ delete(key) {
1476
+ const target = toRaw(this);
1477
+ const { has, get } = getProto(target);
1478
+ let hadKey = has.call(target, key);
1479
+ if (!hadKey) {
1480
+ key = toRaw(key);
1481
+ hadKey = has.call(target, key);
1482
+ } else {
1483
+ checkIdentityKeys(target, has, key);
1484
+ }
1485
+ const oldValue = get ? get.call(target, key) : void 0;
1486
+ const result = target.delete(key);
1487
+ if (hadKey) {
1488
+ trigger(target, "delete", key, void 0, oldValue);
1489
+ }
1490
+ return result;
1491
+ },
1492
+ clear() {
1493
+ const target = toRaw(this);
1494
+ const hadItems = target.size !== 0;
1495
+ const oldTarget = isMap(target) ? new Map(target) : new Set(target) ;
1496
+ const result = target.clear();
1497
+ if (hadItems) {
1498
+ trigger(
1499
+ target,
1500
+ "clear",
1501
+ void 0,
1502
+ void 0,
1503
+ oldTarget
1504
+ );
1505
+ }
1506
+ return result;
1507
+ }
1508
+ }
1509
+ );
1552
1510
  const iteratorMethods = [
1553
1511
  "keys",
1554
1512
  "values",
@@ -1556,30 +1514,12 @@ var Vue = (function () {
1556
1514
  Symbol.iterator
1557
1515
  ];
1558
1516
  iteratorMethods.forEach((method) => {
1559
- mutableInstrumentations2[method] = createIterableMethod(method, false, false);
1560
- readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
1561
- shallowInstrumentations2[method] = createIterableMethod(method, false, true);
1562
- shallowReadonlyInstrumentations2[method] = createIterableMethod(
1563
- method,
1564
- true,
1565
- true
1566
- );
1517
+ instrumentations[method] = createIterableMethod(method, readonly, shallow);
1567
1518
  });
1568
- return [
1569
- mutableInstrumentations2,
1570
- readonlyInstrumentations2,
1571
- shallowInstrumentations2,
1572
- shallowReadonlyInstrumentations2
1573
- ];
1519
+ return instrumentations;
1574
1520
  }
1575
- const [
1576
- mutableInstrumentations,
1577
- readonlyInstrumentations,
1578
- shallowInstrumentations,
1579
- shallowReadonlyInstrumentations
1580
- ] = /* @__PURE__ */ createInstrumentations();
1581
1521
  function createInstrumentationGetter(isReadonly2, shallow) {
1582
- const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
1522
+ const instrumentations = createInstrumentations(isReadonly2, shallow);
1583
1523
  return (target, key, receiver) => {
1584
1524
  if (key === "__v_isReactive") {
1585
1525
  return !isReadonly2;
@@ -1607,9 +1547,9 @@ var Vue = (function () {
1607
1547
  const shallowReadonlyCollectionHandlers = {
1608
1548
  get: /* @__PURE__ */ createInstrumentationGetter(true, true)
1609
1549
  };
1610
- function checkIdentityKeys(target, has2, key) {
1550
+ function checkIdentityKeys(target, has, key) {
1611
1551
  const rawKey = toRaw(key);
1612
- if (rawKey !== key && has2.call(target, rawKey)) {
1552
+ if (rawKey !== key && has.call(target, rawKey)) {
1613
1553
  const type = toRawType(target);
1614
1554
  warn$2(
1615
1555
  `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.`
@@ -1945,7 +1885,7 @@ var Vue = (function () {
1945
1885
  this.flags |= 16;
1946
1886
  if (!(this.flags & 8) && // avoid infinite self recursion
1947
1887
  activeSub !== this) {
1948
- batch(this);
1888
+ batch(this, true);
1949
1889
  return true;
1950
1890
  }
1951
1891
  }
@@ -2467,10 +2407,8 @@ var Vue = (function () {
2467
2407
  }
2468
2408
  }
2469
2409
 
2470
- let isFlushing = false;
2471
- let isFlushPending = false;
2472
2410
  const queue = [];
2473
- let flushIndex = 0;
2411
+ let flushIndex = -1;
2474
2412
  const pendingPostFlushCbs = [];
2475
2413
  let activePostFlushCbs = null;
2476
2414
  let postFlushIndex = 0;
@@ -2482,7 +2420,7 @@ var Vue = (function () {
2482
2420
  return fn ? p.then(this ? fn.bind(this) : fn) : p;
2483
2421
  }
2484
2422
  function findInsertionIndex(id) {
2485
- let start = isFlushing ? flushIndex + 1 : 0;
2423
+ let start = flushIndex + 1;
2486
2424
  let end = queue.length;
2487
2425
  while (start < end) {
2488
2426
  const middle = start + end >>> 1;
@@ -2511,8 +2449,7 @@ var Vue = (function () {
2511
2449
  }
2512
2450
  }
2513
2451
  function queueFlush() {
2514
- if (!isFlushing && !isFlushPending) {
2515
- isFlushPending = true;
2452
+ if (!currentFlushPromise) {
2516
2453
  currentFlushPromise = resolvedPromise.then(flushJobs);
2517
2454
  }
2518
2455
  }
@@ -2529,7 +2466,7 @@ var Vue = (function () {
2529
2466
  }
2530
2467
  queueFlush();
2531
2468
  }
2532
- function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
2469
+ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2533
2470
  {
2534
2471
  seen = seen || /* @__PURE__ */ new Map();
2535
2472
  }
@@ -2585,8 +2522,6 @@ var Vue = (function () {
2585
2522
  }
2586
2523
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2587
2524
  function flushJobs(seen) {
2588
- isFlushPending = false;
2589
- isFlushing = true;
2590
2525
  {
2591
2526
  seen = seen || /* @__PURE__ */ new Map();
2592
2527
  }
@@ -2618,10 +2553,9 @@ var Vue = (function () {
2618
2553
  job.flags &= ~1;
2619
2554
  }
2620
2555
  }
2621
- flushIndex = 0;
2556
+ flushIndex = -1;
2622
2557
  queue.length = 0;
2623
2558
  flushPostFlushCbs(seen);
2624
- isFlushing = false;
2625
2559
  currentFlushPromise = null;
2626
2560
  if (queue.length || pendingPostFlushCbs.length) {
2627
2561
  flushJobs(seen);
@@ -3569,7 +3503,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3569
3503
  }
3570
3504
  if (!disabled) {
3571
3505
  mount(target, targetAnchor);
3572
- updateCssVars(n2);
3506
+ updateCssVars(n2, false);
3573
3507
  }
3574
3508
  } else if (!disabled) {
3575
3509
  warn$1(
@@ -3581,7 +3515,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3581
3515
  };
3582
3516
  if (disabled) {
3583
3517
  mount(container, mainAnchor);
3584
- updateCssVars(n2);
3518
+ updateCssVars(n2, true);
3585
3519
  }
3586
3520
  if (isTeleportDeferred(n2.props)) {
3587
3521
  queuePostRenderEffect(mountToTarget, parentSuspense);
@@ -3671,7 +3605,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3671
3605
  );
3672
3606
  }
3673
3607
  }
3674
- updateCssVars(n2);
3608
+ updateCssVars(n2, disabled);
3675
3609
  }
3676
3610
  },
3677
3611
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
@@ -3739,9 +3673,10 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3739
3673
  querySelector
3740
3674
  );
3741
3675
  if (target) {
3676
+ const disabled = isTeleportDisabled(vnode.props);
3742
3677
  const targetNode = target._lpa || target.firstChild;
3743
3678
  if (vnode.shapeFlag & 16) {
3744
- if (isTeleportDisabled(vnode.props)) {
3679
+ if (disabled) {
3745
3680
  vnode.anchor = hydrateChildren(
3746
3681
  nextSibling(node),
3747
3682
  vnode,
@@ -3782,16 +3717,23 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3782
3717
  );
3783
3718
  }
3784
3719
  }
3785
- updateCssVars(vnode);
3720
+ updateCssVars(vnode, disabled);
3786
3721
  }
3787
3722
  return vnode.anchor && nextSibling(vnode.anchor);
3788
3723
  }
3789
3724
  const Teleport = TeleportImpl;
3790
- function updateCssVars(vnode) {
3725
+ function updateCssVars(vnode, isDisabled) {
3791
3726
  const ctx = vnode.ctx;
3792
3727
  if (ctx && ctx.ut) {
3793
- let node = vnode.targetStart;
3794
- while (node && node !== vnode.targetAnchor) {
3728
+ let node, anchor;
3729
+ if (isDisabled) {
3730
+ node = vnode.el;
3731
+ anchor = vnode.anchor;
3732
+ } else {
3733
+ node = vnode.targetStart;
3734
+ anchor = vnode.targetAnchor;
3735
+ }
3736
+ while (node && node !== anchor) {
3795
3737
  if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid);
3796
3738
  node = node.nextSibling;
3797
3739
  }
@@ -4244,8 +4186,15 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4244
4186
  const setupState = owner.setupState;
4245
4187
  const rawSetupState = toRaw(setupState);
4246
4188
  const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
4247
- if (knownTemplateRefs.has(rawSetupState[key])) {
4248
- return false;
4189
+ {
4190
+ if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {
4191
+ warn$1(
4192
+ `Template ref "${key}" used on a non-ref value. It will not work in the production build.`
4193
+ );
4194
+ }
4195
+ if (knownTemplateRefs.has(rawSetupState[key])) {
4196
+ return false;
4197
+ }
4249
4198
  }
4250
4199
  return hasOwn(rawSetupState, key);
4251
4200
  };
@@ -4542,7 +4491,11 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4542
4491
  }
4543
4492
  let needCallTransitionHooks = false;
4544
4493
  if (isTemplateNode(el)) {
4545
- needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4494
+ needCallTransitionHooks = needTransition(
4495
+ null,
4496
+ // no need check parentSuspense in hydration
4497
+ transition
4498
+ ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4546
4499
  const content = el.content.firstChild;
4547
4500
  if (needCallTransitionHooks) {
4548
4501
  transition.beforeEnter(content);
@@ -4935,6 +4888,8 @@ Server rendered element contains fewer child nodes than client vdom.`
4935
4888
  }
4936
4889
  }
4937
4890
 
4891
+ const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));
4892
+ const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));
4938
4893
  const hydrateOnIdle = (timeout = 1e4) => (hydrate) => {
4939
4894
  const id = requestIdleCallback(hydrate, { timeout });
4940
4895
  return () => cancelIdleCallback(id);
@@ -5922,12 +5877,13 @@ If this is a native custom element, make sure to exclude it from component resol
5922
5877
  }
5923
5878
  openBlock();
5924
5879
  const validSlotContent = slot && ensureValidVNode(slot(props));
5880
+ const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
5881
+ // key attached in the `createSlots` helper, respect that
5882
+ validSlotContent && validSlotContent.key;
5925
5883
  const rendered = createBlock(
5926
5884
  Fragment,
5927
5885
  {
5928
- key: (props.key || // slot content array of a dynamic conditional slot may have a branch
5929
- // key attached in the `createSlots` helper, respect that
5930
- validSlotContent && validSlotContent.key || `_${name}`) + // #7256 force differentiate fallback content from actual content
5886
+ key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
5931
5887
  (!validSlotContent && fallback ? "_fb" : "")
5932
5888
  },
5933
5889
  validSlotContent || (fallback ? fallback() : []),
@@ -7093,7 +7049,7 @@ If this is a native custom element, make sure to exclude it from component resol
7093
7049
  return vm;
7094
7050
  }
7095
7051
  }
7096
- Vue.version = `2.6.14-compat:${"3.5.10"}`;
7052
+ Vue.version = `2.6.14-compat:${"3.5.12"}`;
7097
7053
  Vue.config = singletonApp.config;
7098
7054
  Vue.use = (plugin, ...options) => {
7099
7055
  if (plugin && isFunction(plugin.install)) {
@@ -8081,6 +8037,7 @@ If you want to remount the same app, move your app creation logic into a factory
8081
8037
  function validateProps(rawProps, props, instance) {
8082
8038
  const resolvedValues = toRaw(props);
8083
8039
  const options = instance.propsOptions[0];
8040
+ const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));
8084
8041
  for (const key in options) {
8085
8042
  let opt = options[key];
8086
8043
  if (opt == null) continue;
@@ -8089,7 +8046,7 @@ If you want to remount the same app, move your app creation logic into a factory
8089
8046
  resolvedValues[key],
8090
8047
  opt,
8091
8048
  shallowReadonly(resolvedValues) ,
8092
- !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))
8049
+ !camelizePropsKey.includes(key)
8093
8050
  );
8094
8051
  }
8095
8052
  }
@@ -9961,19 +9918,19 @@ If you want to remount the same app, move your app creation logic into a factory
9961
9918
  warn$1(`useModel() called without active instance.`);
9962
9919
  return ref();
9963
9920
  }
9964
- if (!i.propsOptions[0][name]) {
9921
+ const camelizedName = camelize(name);
9922
+ if (!i.propsOptions[0][camelizedName]) {
9965
9923
  warn$1(`useModel() called with prop "${name}" which is not declared.`);
9966
9924
  return ref();
9967
9925
  }
9968
- const camelizedName = camelize(name);
9969
9926
  const hyphenatedName = hyphenate(name);
9970
- const modifiers = getModelModifiers(props, name);
9927
+ const modifiers = getModelModifiers(props, camelizedName);
9971
9928
  const res = customRef((track, trigger) => {
9972
9929
  let localValue;
9973
9930
  let prevSetValue = EMPTY_OBJ;
9974
9931
  let prevEmittedValue;
9975
9932
  watchSyncEffect(() => {
9976
- const propValue = props[name];
9933
+ const propValue = props[camelizedName];
9977
9934
  if (hasChanged(localValue, propValue)) {
9978
9935
  localValue = propValue;
9979
9936
  trigger();
@@ -11683,9 +11640,9 @@ Component that was made reactive: `,
11683
11640
  }
11684
11641
  const { setup } = Component;
11685
11642
  if (setup) {
11643
+ pauseTracking();
11686
11644
  const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
11687
11645
  const reset = setCurrentInstance(instance);
11688
- pauseTracking();
11689
11646
  const setupResult = callWithErrorHandling(
11690
11647
  setup,
11691
11648
  instance,
@@ -11695,10 +11652,13 @@ Component that was made reactive: `,
11695
11652
  setupContext
11696
11653
  ]
11697
11654
  );
11655
+ const isAsyncSetup = isPromise(setupResult);
11698
11656
  resetTracking();
11699
11657
  reset();
11700
- if (isPromise(setupResult)) {
11701
- if (!isAsyncWrapper(instance)) markAsyncBoundary(instance);
11658
+ if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {
11659
+ markAsyncBoundary(instance);
11660
+ }
11661
+ if (isAsyncSetup) {
11702
11662
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
11703
11663
  if (isSSR) {
11704
11664
  return setupResult.then((resolvedResult) => {
@@ -12171,7 +12131,7 @@ Component that was made reactive: `,
12171
12131
  return true;
12172
12132
  }
12173
12133
 
12174
- const version = "3.5.10";
12134
+ const version = "3.5.12";
12175
12135
  const warn = warn$1 ;
12176
12136
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12177
12137
  const devtools = devtools$1 ;
@@ -12857,7 +12817,7 @@ Component that was made reactive: `,
12857
12817
  return false;
12858
12818
  }
12859
12819
 
12860
- function patchDOMProp(el, key, value, parentComponent) {
12820
+ function patchDOMProp(el, key, value, parentComponent, attrName) {
12861
12821
  if (key === "innerHTML" || key === "textContent") {
12862
12822
  if (value != null) {
12863
12823
  el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
@@ -12921,7 +12881,7 @@ Component that was made reactive: `,
12921
12881
  );
12922
12882
  }
12923
12883
  }
12924
- needRemove && el.removeAttribute(key);
12884
+ needRemove && el.removeAttribute(attrName || key);
12925
12885
  }
12926
12886
 
12927
12887
  function addEventListener(el, event, handler, options) {
@@ -13031,7 +12991,7 @@ Expected function or array of functions, received type ${typeof value}.`
13031
12991
  // #11081 force set props for possible async custom element
13032
12992
  el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))
13033
12993
  ) {
13034
- patchDOMProp(el, camelize(key), nextValue, parentComponent);
12994
+ patchDOMProp(el, camelize(key), nextValue, parentComponent, key);
13035
12995
  } else {
13036
12996
  if (key === "true-value") {
13037
12997
  el._trueValue = nextValue;
@@ -13746,7 +13706,7 @@ Expected function or array of functions, received type ${typeof value}.`
13746
13706
  setChecked(el, binding, vnode);
13747
13707
  }
13748
13708
  };
13749
- function setChecked(el, { value }, vnode) {
13709
+ function setChecked(el, { value, oldValue }, vnode) {
13750
13710
  el._modelValue = value;
13751
13711
  let checked;
13752
13712
  if (isArray(value)) {
@@ -13754,6 +13714,7 @@ Expected function or array of functions, received type ${typeof value}.`
13754
13714
  } else if (isSet(value)) {
13755
13715
  checked = value.has(vnode.props.value);
13756
13716
  } else {
13717
+ if (value === oldValue) return;
13757
13718
  checked = looseEqual(value, getCheckboxValue(el, true));
13758
13719
  }
13759
13720
  if (el.checked !== checked) {