@vue/runtime-core 3.5.20 → 3.5.22

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/runtime-core v3.5.20
2
+ * @vue/runtime-core v3.5.22
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -524,10 +524,12 @@ function reload(id, newComp) {
524
524
  dirtyInstances.delete(instance);
525
525
  } else if (instance.parent) {
526
526
  queueJob(() => {
527
- isHmrUpdating = true;
528
- instance.parent.update();
529
- isHmrUpdating = false;
530
- dirtyInstances.delete(instance);
527
+ if (!(instance.job.flags & 8)) {
528
+ isHmrUpdating = true;
529
+ instance.parent.update();
530
+ isHmrUpdating = false;
531
+ dirtyInstances.delete(instance);
532
+ }
531
533
  });
532
534
  } else if (instance.appContext.reload) {
533
535
  instance.appContext.reload();
@@ -631,7 +633,6 @@ const devtoolsComponentRemoved = (component) => {
631
633
  _devtoolsComponentRemoved(component);
632
634
  }
633
635
  };
634
- /*! #__NO_SIDE_EFFECTS__ */
635
636
  // @__NO_SIDE_EFFECTS__
636
637
  function createDevtoolsComponentHook(hook) {
637
638
  return (component) => {
@@ -817,9 +818,6 @@ const TeleportImpl = {
817
818
  insert(mainAnchor, container, anchor);
818
819
  const mount = (container2, anchor2) => {
819
820
  if (shapeFlag & 16) {
820
- if (parentComponent && parentComponent.isCE) {
821
- parentComponent.ce._teleportTarget = container2;
822
- }
823
821
  mountChildren(
824
822
  children,
825
823
  container2,
@@ -841,6 +839,9 @@ const TeleportImpl = {
841
839
  } else if (namespace !== "mathml" && isTargetMathML(target)) {
842
840
  namespace = "mathml";
843
841
  }
842
+ if (parentComponent && parentComponent.isCE) {
843
+ (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
844
+ }
844
845
  if (!disabled) {
845
846
  mount(target, targetAnchor);
846
847
  updateCssVars(n2, false);
@@ -1029,26 +1030,34 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
1029
1030
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
1030
1031
  o: { nextSibling, parentNode, querySelector, insert, createText }
1031
1032
  }, hydrateChildren) {
1033
+ function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
1034
+ vnode2.anchor = hydrateChildren(
1035
+ nextSibling(node2),
1036
+ vnode2,
1037
+ parentNode(node2),
1038
+ parentComponent,
1039
+ parentSuspense,
1040
+ slotScopeIds,
1041
+ optimized
1042
+ );
1043
+ vnode2.targetStart = targetStart;
1044
+ vnode2.targetAnchor = targetAnchor;
1045
+ }
1032
1046
  const target = vnode.target = resolveTarget(
1033
1047
  vnode.props,
1034
1048
  querySelector
1035
1049
  );
1050
+ const disabled = isTeleportDisabled(vnode.props);
1036
1051
  if (target) {
1037
- const disabled = isTeleportDisabled(vnode.props);
1038
1052
  const targetNode = target._lpa || target.firstChild;
1039
1053
  if (vnode.shapeFlag & 16) {
1040
1054
  if (disabled) {
1041
- vnode.anchor = hydrateChildren(
1042
- nextSibling(node),
1055
+ hydrateDisabledTeleport(
1056
+ node,
1043
1057
  vnode,
1044
- parentNode(node),
1045
- parentComponent,
1046
- parentSuspense,
1047
- slotScopeIds,
1048
- optimized
1058
+ targetNode,
1059
+ targetNode && nextSibling(targetNode)
1049
1060
  );
1050
- vnode.targetStart = targetNode;
1051
- vnode.targetAnchor = targetNode && nextSibling(targetNode);
1052
1061
  } else {
1053
1062
  vnode.anchor = nextSibling(node);
1054
1063
  let targetAnchor = targetNode;
@@ -1079,6 +1088,10 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
1079
1088
  }
1080
1089
  }
1081
1090
  updateCssVars(vnode, disabled);
1091
+ } else if (disabled) {
1092
+ if (vnode.shapeFlag & 16) {
1093
+ hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
1094
+ }
1082
1095
  }
1083
1096
  return vnode.anchor && nextSibling(vnode.anchor);
1084
1097
  }
@@ -1190,7 +1203,7 @@ const BaseTransitionImpl = {
1190
1203
  setTransitionHooks(innerChild, enterHooks);
1191
1204
  }
1192
1205
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
1193
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
1206
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
1194
1207
  let leavingHooks = resolveTransitionHooks(
1195
1208
  oldInnerChild,
1196
1209
  rawProps,
@@ -1470,7 +1483,6 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
1470
1483
  return ret;
1471
1484
  }
1472
1485
 
1473
- /*! #__NO_SIDE_EFFECTS__ */
1474
1486
  // @__NO_SIDE_EFFECTS__
1475
1487
  function defineComponent(options, extraOptions) {
1476
1488
  return shared.isFunction(options) ? (
@@ -1523,6 +1535,7 @@ function useTemplateRef(key) {
1523
1535
  return ret;
1524
1536
  }
1525
1537
 
1538
+ const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
1526
1539
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1527
1540
  if (shared.isArray(rawRef)) {
1528
1541
  rawRef.forEach(
@@ -1572,6 +1585,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1572
1585
  return !knownTemplateRefs.has(ref2);
1573
1586
  };
1574
1587
  if (oldRef != null && oldRef !== ref) {
1588
+ invalidatePendingSetRef(oldRawRef);
1575
1589
  if (shared.isString(oldRef)) {
1576
1590
  refs[oldRef] = null;
1577
1591
  if (canSetSetupRef(oldRef)) {
@@ -1629,9 +1643,15 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1629
1643
  }
1630
1644
  };
1631
1645
  if (value) {
1632
- doSet.id = -1;
1633
- queuePostRenderEffect(doSet, parentSuspense);
1646
+ const job = () => {
1647
+ doSet();
1648
+ pendingSetRefMap.delete(rawRef);
1649
+ };
1650
+ job.id = -1;
1651
+ pendingSetRefMap.set(rawRef, job);
1652
+ queuePostRenderEffect(job, parentSuspense);
1634
1653
  } else {
1654
+ invalidatePendingSetRef(rawRef);
1635
1655
  doSet();
1636
1656
  }
1637
1657
  } else {
@@ -1639,6 +1659,13 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1639
1659
  }
1640
1660
  }
1641
1661
  }
1662
+ function invalidatePendingSetRef(rawRef) {
1663
+ const pendingSetRef = pendingSetRefMap.get(rawRef);
1664
+ if (pendingSetRef) {
1665
+ pendingSetRef.flags |= 8;
1666
+ pendingSetRefMap.delete(rawRef);
1667
+ }
1668
+ }
1642
1669
 
1643
1670
  let hasLoggedMismatchError = false;
1644
1671
  const logMismatchError = () => {
@@ -2371,7 +2398,6 @@ function forEachElement(node, cb) {
2371
2398
  }
2372
2399
 
2373
2400
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
2374
- /*! #__NO_SIDE_EFFECTS__ */
2375
2401
  // @__NO_SIDE_EFFECTS__
2376
2402
  function defineAsyncComponent(source) {
2377
2403
  if (shared.isFunction(source)) {
@@ -2978,12 +3004,13 @@ function createSlots(slots, dynamicSlots) {
2978
3004
 
2979
3005
  function renderSlot(slots, name, props = {}, fallback, noSlotted) {
2980
3006
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3007
+ const hasProps = Object.keys(props).length > 0;
2981
3008
  if (name !== "default") props.name = name;
2982
3009
  return openBlock(), createBlock(
2983
3010
  Fragment,
2984
3011
  null,
2985
3012
  [createVNode("slot", props, fallback && fallback())],
2986
- 64
3013
+ hasProps ? -2 : 64
2987
3014
  );
2988
3015
  }
2989
3016
  let slot = slots[name];
@@ -6406,8 +6433,9 @@ function emit(instance, event, ...rawArgs) {
6406
6433
  );
6407
6434
  }
6408
6435
  }
6436
+ const mixinEmitsCache = /* @__PURE__ */ new WeakMap();
6409
6437
  function normalizeEmitsOptions(comp, appContext, asMixin = false) {
6410
- const cache = appContext.emitsCache;
6438
+ const cache = asMixin ? mixinEmitsCache : appContext.emitsCache;
6411
6439
  const cached = cache.get(comp);
6412
6440
  if (cached !== void 0) {
6413
6441
  return cached;
@@ -6855,7 +6883,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
6855
6883
  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
6856
6884
  if (pendingBranch) {
6857
6885
  suspense.pendingBranch = newBranch;
6858
- if (isSameVNodeType(newBranch, pendingBranch)) {
6886
+ if (isSameVNodeType(pendingBranch, newBranch)) {
6859
6887
  patch(
6860
6888
  pendingBranch,
6861
6889
  newBranch,
@@ -6926,7 +6954,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
6926
6954
  );
6927
6955
  setActiveBranch(suspense, newFallback);
6928
6956
  }
6929
- } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
6957
+ } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
6930
6958
  patch(
6931
6959
  activeBranch,
6932
6960
  newBranch,
@@ -6957,7 +6985,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
6957
6985
  }
6958
6986
  }
6959
6987
  } else {
6960
- if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
6988
+ if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
6961
6989
  patch(
6962
6990
  activeBranch,
6963
6991
  newBranch,
@@ -8114,7 +8142,7 @@ function getComponentPublicInstance(instance) {
8114
8142
  return instance.proxy;
8115
8143
  }
8116
8144
  }
8117
- const classifyRE = /(?:^|[-_])(\w)/g;
8145
+ const classifyRE = /(?:^|[-_])\w/g;
8118
8146
  const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
8119
8147
  function getComponentName(Component, includeInferred = true) {
8120
8148
  return shared.isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
@@ -8157,23 +8185,28 @@ const computed = (getterOrOptions, debugOptions) => {
8157
8185
  };
8158
8186
 
8159
8187
  function h(type, propsOrChildren, children) {
8160
- const l = arguments.length;
8161
- if (l === 2) {
8162
- if (shared.isObject(propsOrChildren) && !shared.isArray(propsOrChildren)) {
8163
- if (isVNode(propsOrChildren)) {
8164
- return createVNode(type, null, [propsOrChildren]);
8188
+ try {
8189
+ setBlockTracking(-1);
8190
+ const l = arguments.length;
8191
+ if (l === 2) {
8192
+ if (shared.isObject(propsOrChildren) && !shared.isArray(propsOrChildren)) {
8193
+ if (isVNode(propsOrChildren)) {
8194
+ return createVNode(type, null, [propsOrChildren]);
8195
+ }
8196
+ return createVNode(type, propsOrChildren);
8197
+ } else {
8198
+ return createVNode(type, null, propsOrChildren);
8165
8199
  }
8166
- return createVNode(type, propsOrChildren);
8167
8200
  } else {
8168
- return createVNode(type, null, propsOrChildren);
8169
- }
8170
- } else {
8171
- if (l > 3) {
8172
- children = Array.prototype.slice.call(arguments, 2);
8173
- } else if (l === 3 && isVNode(children)) {
8174
- children = [children];
8201
+ if (l > 3) {
8202
+ children = Array.prototype.slice.call(arguments, 2);
8203
+ } else if (l === 3 && isVNode(children)) {
8204
+ children = [children];
8205
+ }
8206
+ return createVNode(type, propsOrChildren, children);
8175
8207
  }
8176
- return createVNode(type, propsOrChildren, children);
8208
+ } finally {
8209
+ setBlockTracking(1);
8177
8210
  }
8178
8211
  }
8179
8212
 
@@ -8383,7 +8416,7 @@ function isMemoSame(cached, memo) {
8383
8416
  return true;
8384
8417
  }
8385
8418
 
8386
- const version = "3.5.20";
8419
+ const version = "3.5.22";
8387
8420
  const warn = warn$1 ;
8388
8421
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8389
8422
  const devtools = devtools$1 ;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.20
2
+ * @vue/runtime-core v3.5.22
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -414,9 +414,6 @@ const TeleportImpl = {
414
414
  insert(mainAnchor, container, anchor);
415
415
  const mount = (container2, anchor2) => {
416
416
  if (shapeFlag & 16) {
417
- if (parentComponent && parentComponent.isCE) {
418
- parentComponent.ce._teleportTarget = container2;
419
- }
420
417
  mountChildren(
421
418
  children,
422
419
  container2,
@@ -438,6 +435,9 @@ const TeleportImpl = {
438
435
  } else if (namespace !== "mathml" && isTargetMathML(target)) {
439
436
  namespace = "mathml";
440
437
  }
438
+ if (parentComponent && parentComponent.isCE) {
439
+ (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
440
+ }
441
441
  if (!disabled) {
442
442
  mount(target, targetAnchor);
443
443
  updateCssVars(n2, false);
@@ -614,26 +614,34 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
614
614
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
615
615
  o: { nextSibling, parentNode, querySelector, insert, createText }
616
616
  }, hydrateChildren) {
617
+ function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
618
+ vnode2.anchor = hydrateChildren(
619
+ nextSibling(node2),
620
+ vnode2,
621
+ parentNode(node2),
622
+ parentComponent,
623
+ parentSuspense,
624
+ slotScopeIds,
625
+ optimized
626
+ );
627
+ vnode2.targetStart = targetStart;
628
+ vnode2.targetAnchor = targetAnchor;
629
+ }
617
630
  const target = vnode.target = resolveTarget(
618
631
  vnode.props,
619
632
  querySelector
620
633
  );
634
+ const disabled = isTeleportDisabled(vnode.props);
621
635
  if (target) {
622
- const disabled = isTeleportDisabled(vnode.props);
623
636
  const targetNode = target._lpa || target.firstChild;
624
637
  if (vnode.shapeFlag & 16) {
625
638
  if (disabled) {
626
- vnode.anchor = hydrateChildren(
627
- nextSibling(node),
639
+ hydrateDisabledTeleport(
640
+ node,
628
641
  vnode,
629
- parentNode(node),
630
- parentComponent,
631
- parentSuspense,
632
- slotScopeIds,
633
- optimized
642
+ targetNode,
643
+ targetNode && nextSibling(targetNode)
634
644
  );
635
- vnode.targetStart = targetNode;
636
- vnode.targetAnchor = targetNode && nextSibling(targetNode);
637
645
  } else {
638
646
  vnode.anchor = nextSibling(node);
639
647
  let targetAnchor = targetNode;
@@ -664,6 +672,10 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
664
672
  }
665
673
  }
666
674
  updateCssVars(vnode, disabled);
675
+ } else if (disabled) {
676
+ if (vnode.shapeFlag & 16) {
677
+ hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
678
+ }
667
679
  }
668
680
  return vnode.anchor && nextSibling(vnode.anchor);
669
681
  }
@@ -772,7 +784,7 @@ const BaseTransitionImpl = {
772
784
  setTransitionHooks(innerChild, enterHooks);
773
785
  }
774
786
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
775
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
787
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
776
788
  let leavingHooks = resolveTransitionHooks(
777
789
  oldInnerChild,
778
790
  rawProps,
@@ -1045,7 +1057,6 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
1045
1057
  return ret;
1046
1058
  }
1047
1059
 
1048
- /*! #__NO_SIDE_EFFECTS__ */
1049
1060
  // @__NO_SIDE_EFFECTS__
1050
1061
  function defineComponent(options, extraOptions) {
1051
1062
  return shared.isFunction(options) ? (
@@ -1083,6 +1094,7 @@ function useTemplateRef(key) {
1083
1094
  return ret;
1084
1095
  }
1085
1096
 
1097
+ const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
1086
1098
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1087
1099
  if (shared.isArray(rawRef)) {
1088
1100
  rawRef.forEach(
@@ -1113,6 +1125,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1113
1125
  return shared.hasOwn(rawSetupState, key);
1114
1126
  };
1115
1127
  if (oldRef != null && oldRef !== ref) {
1128
+ invalidatePendingSetRef(oldRawRef);
1116
1129
  if (shared.isString(oldRef)) {
1117
1130
  refs[oldRef] = null;
1118
1131
  if (canSetSetupRef(oldRef)) {
@@ -1168,14 +1181,27 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1168
1181
  } else ;
1169
1182
  };
1170
1183
  if (value) {
1171
- doSet.id = -1;
1172
- queuePostRenderEffect(doSet, parentSuspense);
1184
+ const job = () => {
1185
+ doSet();
1186
+ pendingSetRefMap.delete(rawRef);
1187
+ };
1188
+ job.id = -1;
1189
+ pendingSetRefMap.set(rawRef, job);
1190
+ queuePostRenderEffect(job, parentSuspense);
1173
1191
  } else {
1192
+ invalidatePendingSetRef(rawRef);
1174
1193
  doSet();
1175
1194
  }
1176
1195
  }
1177
1196
  }
1178
1197
  }
1198
+ function invalidatePendingSetRef(rawRef) {
1199
+ const pendingSetRef = pendingSetRefMap.get(rawRef);
1200
+ if (pendingSetRef) {
1201
+ pendingSetRef.flags |= 8;
1202
+ pendingSetRefMap.delete(rawRef);
1203
+ }
1204
+ }
1179
1205
 
1180
1206
  let hasLoggedMismatchError = false;
1181
1207
  const logMismatchError = () => {
@@ -1737,7 +1763,6 @@ function forEachElement(node, cb) {
1737
1763
  }
1738
1764
 
1739
1765
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
1740
- /*! #__NO_SIDE_EFFECTS__ */
1741
1766
  // @__NO_SIDE_EFFECTS__
1742
1767
  function defineAsyncComponent(source) {
1743
1768
  if (shared.isFunction(source)) {
@@ -2302,12 +2327,13 @@ function createSlots(slots, dynamicSlots) {
2302
2327
 
2303
2328
  function renderSlot(slots, name, props = {}, fallback, noSlotted) {
2304
2329
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
2330
+ const hasProps = Object.keys(props).length > 0;
2305
2331
  if (name !== "default") props.name = name;
2306
2332
  return openBlock(), createBlock(
2307
2333
  Fragment,
2308
2334
  null,
2309
2335
  [createVNode("slot", props, fallback && fallback())],
2310
- 64
2336
+ hasProps ? -2 : 64
2311
2337
  );
2312
2338
  }
2313
2339
  let slot = slots[name];
@@ -5019,8 +5045,9 @@ function emit(instance, event, ...rawArgs) {
5019
5045
  );
5020
5046
  }
5021
5047
  }
5048
+ const mixinEmitsCache = /* @__PURE__ */ new WeakMap();
5022
5049
  function normalizeEmitsOptions(comp, appContext, asMixin = false) {
5023
- const cache = appContext.emitsCache;
5050
+ const cache = asMixin ? mixinEmitsCache : appContext.emitsCache;
5024
5051
  const cached = cache.get(comp);
5025
5052
  if (cached !== void 0) {
5026
5053
  return cached;
@@ -5389,7 +5416,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
5389
5416
  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
5390
5417
  if (pendingBranch) {
5391
5418
  suspense.pendingBranch = newBranch;
5392
- if (isSameVNodeType(newBranch, pendingBranch)) {
5419
+ if (isSameVNodeType(pendingBranch, newBranch)) {
5393
5420
  patch(
5394
5421
  pendingBranch,
5395
5422
  newBranch,
@@ -5460,7 +5487,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
5460
5487
  );
5461
5488
  setActiveBranch(suspense, newFallback);
5462
5489
  }
5463
- } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
5490
+ } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
5464
5491
  patch(
5465
5492
  activeBranch,
5466
5493
  newBranch,
@@ -5491,7 +5518,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
5491
5518
  }
5492
5519
  }
5493
5520
  } else {
5494
- if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
5521
+ if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
5495
5522
  patch(
5496
5523
  activeBranch,
5497
5524
  newBranch,
@@ -6478,23 +6505,28 @@ const computed = (getterOrOptions, debugOptions) => {
6478
6505
  };
6479
6506
 
6480
6507
  function h(type, propsOrChildren, children) {
6481
- const l = arguments.length;
6482
- if (l === 2) {
6483
- if (shared.isObject(propsOrChildren) && !shared.isArray(propsOrChildren)) {
6484
- if (isVNode(propsOrChildren)) {
6485
- return createVNode(type, null, [propsOrChildren]);
6508
+ try {
6509
+ setBlockTracking(-1);
6510
+ const l = arguments.length;
6511
+ if (l === 2) {
6512
+ if (shared.isObject(propsOrChildren) && !shared.isArray(propsOrChildren)) {
6513
+ if (isVNode(propsOrChildren)) {
6514
+ return createVNode(type, null, [propsOrChildren]);
6515
+ }
6516
+ return createVNode(type, propsOrChildren);
6517
+ } else {
6518
+ return createVNode(type, null, propsOrChildren);
6486
6519
  }
6487
- return createVNode(type, propsOrChildren);
6488
6520
  } else {
6489
- return createVNode(type, null, propsOrChildren);
6490
- }
6491
- } else {
6492
- if (l > 3) {
6493
- children = Array.prototype.slice.call(arguments, 2);
6494
- } else if (l === 3 && isVNode(children)) {
6495
- children = [children];
6521
+ if (l > 3) {
6522
+ children = Array.prototype.slice.call(arguments, 2);
6523
+ } else if (l === 3 && isVNode(children)) {
6524
+ children = [children];
6525
+ }
6526
+ return createVNode(type, propsOrChildren, children);
6496
6527
  }
6497
- return createVNode(type, propsOrChildren, children);
6528
+ } finally {
6529
+ setBlockTracking(1);
6498
6530
  }
6499
6531
  }
6500
6532
 
@@ -6530,7 +6562,7 @@ function isMemoSame(cached, memo) {
6530
6562
  return true;
6531
6563
  }
6532
6564
 
6533
- const version = "3.5.20";
6565
+ const version = "3.5.22";
6534
6566
  const warn$1 = shared.NOOP;
6535
6567
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
6536
6568
  const devtools = void 0;
@@ -58,7 +58,8 @@ interface SchedulerJob extends Function {
58
58
  i?: ComponentInternalInstance;
59
59
  }
60
60
  type SchedulerJobs = SchedulerJob | SchedulerJob[];
61
- export declare function nextTick<T = void, R = void>(this: T, fn?: (this: T) => R): Promise<Awaited<R>>;
61
+ export declare function nextTick(): Promise<void>;
62
+ export declare function nextTick<T, R>(this: T, fn: (this: T) => R | Promise<R>): Promise<R>;
62
63
  export declare function queuePostFlushCb(cb: SchedulerJobs): void;
63
64
 
64
65
  export type ComponentPropsOptions<P = Data> = ComponentObjectPropsOptions<P> | string[];
@@ -396,17 +397,17 @@ return withDirectives(h(comp), [
396
397
  ])
397
398
  */
398
399
 
399
- export interface DirectiveBinding<Value = any, Modifiers extends string = string, Arg extends string = string> {
400
+ export interface DirectiveBinding<Value = any, Modifiers extends string = string, Arg = any> {
400
401
  instance: ComponentPublicInstance | Record<string, any> | null;
401
402
  value: Value;
402
403
  oldValue: Value | null;
403
404
  arg?: Arg;
404
405
  modifiers: DirectiveModifiers<Modifiers>;
405
- dir: ObjectDirective<any, Value>;
406
+ dir: ObjectDirective<any, Value, Modifiers, Arg>;
406
407
  }
407
- export type DirectiveHook<HostElement = any, Prev = VNode<any, HostElement> | null, Value = any, Modifiers extends string = string, Arg extends string = string> = (el: HostElement, binding: DirectiveBinding<Value, Modifiers, Arg>, vnode: VNode<any, HostElement>, prevVNode: Prev) => void;
408
- type SSRDirectiveHook<Value = any, Modifiers extends string = string, Arg extends string = string> = (binding: DirectiveBinding<Value, Modifiers, Arg>, vnode: VNode) => Data | undefined;
409
- export interface ObjectDirective<HostElement = any, Value = any, Modifiers extends string = string, Arg extends string = string> {
408
+ export type DirectiveHook<HostElement = any, Prev = VNode<any, HostElement> | null, Value = any, Modifiers extends string = string, Arg = any> = (el: HostElement, binding: DirectiveBinding<Value, Modifiers, Arg>, vnode: VNode<any, HostElement>, prevVNode: Prev) => void;
409
+ type SSRDirectiveHook<Value = any, Modifiers extends string = string, Arg = any> = (binding: DirectiveBinding<Value, Modifiers, Arg>, vnode: VNode) => Data | undefined;
410
+ export interface ObjectDirective<HostElement = any, Value = any, Modifiers extends string = string, Arg = any> {
410
411
  created?: DirectiveHook<HostElement, null, Value, Modifiers, Arg>;
411
412
  beforeMount?: DirectiveHook<HostElement, null, Value, Modifiers, Arg>;
412
413
  mounted?: DirectiveHook<HostElement, null, Value, Modifiers, Arg>;
@@ -417,10 +418,10 @@ export interface ObjectDirective<HostElement = any, Value = any, Modifiers exten
417
418
  getSSRProps?: SSRDirectiveHook<Value, Modifiers, Arg>;
418
419
  deep?: boolean;
419
420
  }
420
- export type FunctionDirective<HostElement = any, V = any, Modifiers extends string = string, Arg extends string = string> = DirectiveHook<HostElement, any, V, Modifiers, Arg>;
421
- export type Directive<HostElement = any, Value = any, Modifiers extends string = string, Arg extends string = string> = ObjectDirective<HostElement, Value, Modifiers, Arg> | FunctionDirective<HostElement, Value, Modifiers, Arg>;
421
+ export type FunctionDirective<HostElement = any, V = any, Modifiers extends string = string, Arg = any> = DirectiveHook<HostElement, any, V, Modifiers, Arg>;
422
+ export type Directive<HostElement = any, Value = any, Modifiers extends string = string, Arg = any> = ObjectDirective<HostElement, Value, Modifiers, Arg> | FunctionDirective<HostElement, Value, Modifiers, Arg>;
422
423
  type DirectiveModifiers<K extends string = string> = Partial<Record<K, boolean>>;
423
- export type DirectiveArguments = Array<[Directive | undefined] | [Directive | undefined, any] | [Directive | undefined, any, string] | [Directive | undefined, any, string | undefined, DirectiveModifiers]>;
424
+ export type DirectiveArguments = Array<[Directive | undefined] | [Directive | undefined, any] | [Directive | undefined, any, any] | [Directive | undefined, any, any, DirectiveModifiers]>;
424
425
  /**
425
426
  * Adds directives to a VNode.
426
427
  */
@@ -1024,8 +1025,8 @@ export interface App<HostElement = any> {
1024
1025
  mixin(mixin: ComponentOptions): this;
1025
1026
  component(name: string): Component | undefined;
1026
1027
  component<T extends Component | DefineComponent>(name: string, component: T): this;
1027
- directive<HostElement = any, Value = any, Modifiers extends string = string, Arg extends string = string>(name: string): Directive<HostElement, Value, Modifiers, Arg> | undefined;
1028
- directive<HostElement = any, Value = any, Modifiers extends string = string, Arg extends string = string>(name: string, directive: Directive<HostElement, Value, Modifiers, Arg>): this;
1028
+ directive<HostElement = any, Value = any, Modifiers extends string = string, Arg = any>(name: string): Directive<HostElement, Value, Modifiers, Arg> | undefined;
1029
+ directive<HostElement = any, Value = any, Modifiers extends string = string, Arg = any>(name: string, directive: Directive<HostElement, Value, Modifiers, Arg>): this;
1029
1030
  mount(rootContainer: HostElement | string,
1030
1031
  /**
1031
1032
  * @internal
@@ -1523,7 +1524,6 @@ export interface AsyncComponentOptions<T = any> {
1523
1524
  hydrate?: HydrationStrategy;
1524
1525
  onError?: (error: Error, retry: () => void, fail: () => void, attempts: number) => any;
1525
1526
  }
1526
- /*! #__NO_SIDE_EFFECTS__ */
1527
1527
  export declare function defineAsyncComponent<T extends Component = {
1528
1528
  new (): ComponentPublicInstance;
1529
1529
  }>(source: AsyncComponentLoader<T> | AsyncComponentOptions<T>): T;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.20
2
+ * @vue/runtime-core v3.5.22
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -527,10 +527,12 @@ function reload(id, newComp) {
527
527
  dirtyInstances.delete(instance);
528
528
  } else if (instance.parent) {
529
529
  queueJob(() => {
530
- isHmrUpdating = true;
531
- instance.parent.update();
532
- isHmrUpdating = false;
533
- dirtyInstances.delete(instance);
530
+ if (!(instance.job.flags & 8)) {
531
+ isHmrUpdating = true;
532
+ instance.parent.update();
533
+ isHmrUpdating = false;
534
+ dirtyInstances.delete(instance);
535
+ }
534
536
  });
535
537
  } else if (instance.appContext.reload) {
536
538
  instance.appContext.reload();
@@ -634,7 +636,6 @@ const devtoolsComponentRemoved = (component) => {
634
636
  _devtoolsComponentRemoved(component);
635
637
  }
636
638
  };
637
- /*! #__NO_SIDE_EFFECTS__ */
638
639
  // @__NO_SIDE_EFFECTS__
639
640
  function createDevtoolsComponentHook(hook) {
640
641
  return (component) => {
@@ -820,9 +821,6 @@ const TeleportImpl = {
820
821
  insert(mainAnchor, container, anchor);
821
822
  const mount = (container2, anchor2) => {
822
823
  if (shapeFlag & 16) {
823
- if (parentComponent && parentComponent.isCE) {
824
- parentComponent.ce._teleportTarget = container2;
825
- }
826
824
  mountChildren(
827
825
  children,
828
826
  container2,
@@ -844,6 +842,9 @@ const TeleportImpl = {
844
842
  } else if (namespace !== "mathml" && isTargetMathML(target)) {
845
843
  namespace = "mathml";
846
844
  }
845
+ if (parentComponent && parentComponent.isCE) {
846
+ (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
847
+ }
847
848
  if (!disabled) {
848
849
  mount(target, targetAnchor);
849
850
  updateCssVars(n2, false);
@@ -1032,26 +1033,34 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
1032
1033
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
1033
1034
  o: { nextSibling, parentNode, querySelector, insert, createText }
1034
1035
  }, hydrateChildren) {
1036
+ function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
1037
+ vnode2.anchor = hydrateChildren(
1038
+ nextSibling(node2),
1039
+ vnode2,
1040
+ parentNode(node2),
1041
+ parentComponent,
1042
+ parentSuspense,
1043
+ slotScopeIds,
1044
+ optimized
1045
+ );
1046
+ vnode2.targetStart = targetStart;
1047
+ vnode2.targetAnchor = targetAnchor;
1048
+ }
1035
1049
  const target = vnode.target = resolveTarget(
1036
1050
  vnode.props,
1037
1051
  querySelector
1038
1052
  );
1053
+ const disabled = isTeleportDisabled(vnode.props);
1039
1054
  if (target) {
1040
- const disabled = isTeleportDisabled(vnode.props);
1041
1055
  const targetNode = target._lpa || target.firstChild;
1042
1056
  if (vnode.shapeFlag & 16) {
1043
1057
  if (disabled) {
1044
- vnode.anchor = hydrateChildren(
1045
- nextSibling(node),
1058
+ hydrateDisabledTeleport(
1059
+ node,
1046
1060
  vnode,
1047
- parentNode(node),
1048
- parentComponent,
1049
- parentSuspense,
1050
- slotScopeIds,
1051
- optimized
1061
+ targetNode,
1062
+ targetNode && nextSibling(targetNode)
1052
1063
  );
1053
- vnode.targetStart = targetNode;
1054
- vnode.targetAnchor = targetNode && nextSibling(targetNode);
1055
1064
  } else {
1056
1065
  vnode.anchor = nextSibling(node);
1057
1066
  let targetAnchor = targetNode;
@@ -1082,6 +1091,10 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
1082
1091
  }
1083
1092
  }
1084
1093
  updateCssVars(vnode, disabled);
1094
+ } else if (disabled) {
1095
+ if (vnode.shapeFlag & 16) {
1096
+ hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
1097
+ }
1085
1098
  }
1086
1099
  return vnode.anchor && nextSibling(vnode.anchor);
1087
1100
  }
@@ -1193,7 +1206,7 @@ const BaseTransitionImpl = {
1193
1206
  setTransitionHooks(innerChild, enterHooks);
1194
1207
  }
1195
1208
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
1196
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
1209
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
1197
1210
  let leavingHooks = resolveTransitionHooks(
1198
1211
  oldInnerChild,
1199
1212
  rawProps,
@@ -1474,7 +1487,6 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
1474
1487
  return ret;
1475
1488
  }
1476
1489
 
1477
- /*! #__NO_SIDE_EFFECTS__ */
1478
1490
  // @__NO_SIDE_EFFECTS__
1479
1491
  function defineComponent(options, extraOptions) {
1480
1492
  return isFunction(options) ? (
@@ -1527,6 +1539,7 @@ function useTemplateRef(key) {
1527
1539
  return ret;
1528
1540
  }
1529
1541
 
1542
+ const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
1530
1543
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1531
1544
  if (isArray(rawRef)) {
1532
1545
  rawRef.forEach(
@@ -1576,6 +1589,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1576
1589
  return !!!(process.env.NODE_ENV !== "production") || !knownTemplateRefs.has(ref2);
1577
1590
  };
1578
1591
  if (oldRef != null && oldRef !== ref) {
1592
+ invalidatePendingSetRef(oldRawRef);
1579
1593
  if (isString(oldRef)) {
1580
1594
  refs[oldRef] = null;
1581
1595
  if (canSetSetupRef(oldRef)) {
@@ -1633,9 +1647,15 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1633
1647
  }
1634
1648
  };
1635
1649
  if (value) {
1636
- doSet.id = -1;
1637
- queuePostRenderEffect(doSet, parentSuspense);
1650
+ const job = () => {
1651
+ doSet();
1652
+ pendingSetRefMap.delete(rawRef);
1653
+ };
1654
+ job.id = -1;
1655
+ pendingSetRefMap.set(rawRef, job);
1656
+ queuePostRenderEffect(job, parentSuspense);
1638
1657
  } else {
1658
+ invalidatePendingSetRef(rawRef);
1639
1659
  doSet();
1640
1660
  }
1641
1661
  } else if (!!(process.env.NODE_ENV !== "production")) {
@@ -1643,6 +1663,13 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
1643
1663
  }
1644
1664
  }
1645
1665
  }
1666
+ function invalidatePendingSetRef(rawRef) {
1667
+ const pendingSetRef = pendingSetRefMap.get(rawRef);
1668
+ if (pendingSetRef) {
1669
+ pendingSetRef.flags |= 8;
1670
+ pendingSetRefMap.delete(rawRef);
1671
+ }
1672
+ }
1646
1673
 
1647
1674
  let hasLoggedMismatchError = false;
1648
1675
  const logMismatchError = () => {
@@ -2386,7 +2413,6 @@ function forEachElement(node, cb) {
2386
2413
  }
2387
2414
 
2388
2415
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
2389
- /*! #__NO_SIDE_EFFECTS__ */
2390
2416
  // @__NO_SIDE_EFFECTS__
2391
2417
  function defineAsyncComponent(source) {
2392
2418
  if (isFunction(source)) {
@@ -2996,12 +3022,13 @@ function createSlots(slots, dynamicSlots) {
2996
3022
 
2997
3023
  function renderSlot(slots, name, props = {}, fallback, noSlotted) {
2998
3024
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3025
+ const hasProps = Object.keys(props).length > 0;
2999
3026
  if (name !== "default") props.name = name;
3000
3027
  return openBlock(), createBlock(
3001
3028
  Fragment,
3002
3029
  null,
3003
3030
  [createVNode("slot", props, fallback && fallback())],
3004
- 64
3031
+ hasProps ? -2 : 64
3005
3032
  );
3006
3033
  }
3007
3034
  let slot = slots[name];
@@ -6466,8 +6493,9 @@ function emit(instance, event, ...rawArgs) {
6466
6493
  );
6467
6494
  }
6468
6495
  }
6496
+ const mixinEmitsCache = /* @__PURE__ */ new WeakMap();
6469
6497
  function normalizeEmitsOptions(comp, appContext, asMixin = false) {
6470
- const cache = appContext.emitsCache;
6498
+ const cache = __VUE_OPTIONS_API__ && asMixin ? mixinEmitsCache : appContext.emitsCache;
6471
6499
  const cached = cache.get(comp);
6472
6500
  if (cached !== void 0) {
6473
6501
  return cached;
@@ -6915,7 +6943,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
6915
6943
  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
6916
6944
  if (pendingBranch) {
6917
6945
  suspense.pendingBranch = newBranch;
6918
- if (isSameVNodeType(newBranch, pendingBranch)) {
6946
+ if (isSameVNodeType(pendingBranch, newBranch)) {
6919
6947
  patch(
6920
6948
  pendingBranch,
6921
6949
  newBranch,
@@ -6986,7 +7014,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
6986
7014
  );
6987
7015
  setActiveBranch(suspense, newFallback);
6988
7016
  }
6989
- } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
7017
+ } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
6990
7018
  patch(
6991
7019
  activeBranch,
6992
7020
  newBranch,
@@ -7017,7 +7045,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7017
7045
  }
7018
7046
  }
7019
7047
  } else {
7020
- if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
7048
+ if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
7021
7049
  patch(
7022
7050
  activeBranch,
7023
7051
  newBranch,
@@ -8188,7 +8216,7 @@ function getComponentPublicInstance(instance) {
8188
8216
  return instance.proxy;
8189
8217
  }
8190
8218
  }
8191
- const classifyRE = /(?:^|[-_])(\w)/g;
8219
+ const classifyRE = /(?:^|[-_])\w/g;
8192
8220
  const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
8193
8221
  function getComponentName(Component, includeInferred = true) {
8194
8222
  return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
@@ -8231,23 +8259,28 @@ const computed = (getterOrOptions, debugOptions) => {
8231
8259
  };
8232
8260
 
8233
8261
  function h(type, propsOrChildren, children) {
8234
- const l = arguments.length;
8235
- if (l === 2) {
8236
- if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8237
- if (isVNode(propsOrChildren)) {
8238
- return createVNode(type, null, [propsOrChildren]);
8262
+ try {
8263
+ setBlockTracking(-1);
8264
+ const l = arguments.length;
8265
+ if (l === 2) {
8266
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8267
+ if (isVNode(propsOrChildren)) {
8268
+ return createVNode(type, null, [propsOrChildren]);
8269
+ }
8270
+ return createVNode(type, propsOrChildren);
8271
+ } else {
8272
+ return createVNode(type, null, propsOrChildren);
8239
8273
  }
8240
- return createVNode(type, propsOrChildren);
8241
8274
  } else {
8242
- return createVNode(type, null, propsOrChildren);
8243
- }
8244
- } else {
8245
- if (l > 3) {
8246
- children = Array.prototype.slice.call(arguments, 2);
8247
- } else if (l === 3 && isVNode(children)) {
8248
- children = [children];
8275
+ if (l > 3) {
8276
+ children = Array.prototype.slice.call(arguments, 2);
8277
+ } else if (l === 3 && isVNode(children)) {
8278
+ children = [children];
8279
+ }
8280
+ return createVNode(type, propsOrChildren, children);
8249
8281
  }
8250
- return createVNode(type, propsOrChildren, children);
8282
+ } finally {
8283
+ setBlockTracking(1);
8251
8284
  }
8252
8285
  }
8253
8286
 
@@ -8457,7 +8490,7 @@ function isMemoSame(cached, memo) {
8457
8490
  return true;
8458
8491
  }
8459
8492
 
8460
- const version = "3.5.20";
8493
+ const version = "3.5.22";
8461
8494
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
8462
8495
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8463
8496
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/runtime-core",
3
- "version": "3.5.20",
3
+ "version": "3.5.22",
4
4
  "description": "@vue/runtime-core",
5
5
  "main": "index.js",
6
6
  "module": "dist/runtime-core.esm-bundler.js",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
48
48
  "dependencies": {
49
- "@vue/shared": "3.5.20",
50
- "@vue/reactivity": "3.5.20"
49
+ "@vue/shared": "3.5.22",
50
+ "@vue/reactivity": "3.5.22"
51
51
  }
52
52
  }