@vue/runtime-core 3.5.40 → 3.5.42

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.40
2
+ * @vue/runtime-core v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -328,7 +328,9 @@ function queuePostFlushCb(cb) {
328
328
  cb.flags |= 1;
329
329
  }
330
330
  } else {
331
- pendingPostFlushCbs.push(...cb);
331
+ for (let i = 0; i < cb.length; i++) {
332
+ pendingPostFlushCbs.push(cb[i]);
333
+ }
332
334
  }
333
335
  queueFlush();
334
336
  }
@@ -364,7 +366,9 @@ function flushPostFlushCbs(seen) {
364
366
  );
365
367
  pendingPostFlushCbs.length = 0;
366
368
  if (activePostFlushCbs) {
367
- activePostFlushCbs.push(...deduped);
369
+ for (let i = 0; i < deduped.length; i++) {
370
+ activePostFlushCbs.push(deduped[i]);
371
+ }
368
372
  return;
369
373
  }
370
374
  activePostFlushCbs = deduped;
@@ -1653,7 +1657,11 @@ function getInnerChild$1(vnode) {
1653
1657
  function setTransitionHooks(vnode, hooks) {
1654
1658
  if (vnode.shapeFlag & 6 && vnode.component) {
1655
1659
  vnode.transition = hooks;
1656
- setTransitionHooks(vnode.component.subTree, hooks);
1660
+ const subTree = vnode.component.subTree;
1661
+ setTransitionHooks(
1662
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1663
+ hooks
1664
+ );
1657
1665
  } else if (vnode.shapeFlag & 128) {
1658
1666
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1659
1667
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -2056,10 +2064,10 @@ function createHydrationFunctions(rendererInternals) {
2056
2064
  getContainerType(container),
2057
2065
  optimized
2058
2066
  );
2059
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
2067
+ if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
2060
2068
  let subTree;
2061
2069
  if (isFragmentStart) {
2062
- subTree = createVNode(Fragment);
2070
+ subTree = createVNode(Static);
2063
2071
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
2064
2072
  } else {
2065
2073
  subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
@@ -2193,6 +2201,9 @@ Server rendered element contains more child nodes than client vdom.`
2193
2201
  }
2194
2202
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers
2195
2203
  key[0] === "." || isCustomElement && !shared.isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
2204
+ if (isUnchangedResourceProp(el, key, props[key])) {
2205
+ continue;
2206
+ }
2196
2207
  patchProp(el, key, null, props[key], namespace, parentComponent);
2197
2208
  }
2198
2209
  }
@@ -2375,6 +2386,13 @@ Server rendered element contains fewer child nodes than client vdom.`
2375
2386
  };
2376
2387
  return [hydrate, hydrateNode];
2377
2388
  }
2389
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
2390
+ function isUnchangedResourceProp(el, key, clientValue) {
2391
+ if (!resourceProps.has(key)) {
2392
+ return false;
2393
+ }
2394
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
2395
+ }
2378
2396
  function propHasMismatch(el, key, clientValue, vnode, instance) {
2379
2397
  let mismatchType;
2380
2398
  let mismatchKey;
@@ -2412,7 +2430,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2412
2430
  mismatchKey = "style";
2413
2431
  }
2414
2432
  } else if (el instanceof SVGElement && shared.isKnownSvgAttr(key) || el instanceof HTMLElement && (shared.isBooleanAttr(key) || shared.isKnownHtmlAttr(key))) {
2415
- if (shared.isBooleanAttr(key)) {
2433
+ if (key === "hidden") {
2434
+ actual = normalizeHiddenValue(el.getAttribute(key));
2435
+ expected = normalizeHiddenValue(clientValue);
2436
+ } else if (shared.isBooleanAttr(key)) {
2416
2437
  actual = el.hasAttribute(key);
2417
2438
  expected = shared.includeBooleanAttr(clientValue);
2418
2439
  } else if (clientValue == null) {
@@ -2448,6 +2469,15 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2448
2469
  }
2449
2470
  return false;
2450
2471
  }
2472
+ function normalizeHiddenValue(value) {
2473
+ if (!shared.isRenderableAttrValue(value)) {
2474
+ return false;
2475
+ }
2476
+ if (shared.isString(value)) {
2477
+ return value.toLowerCase() === "until-found" ? "until-found" : "";
2478
+ }
2479
+ return shared.includeBooleanAttr(value) ? "" : false;
2480
+ }
2451
2481
  function toClassSet(str) {
2452
2482
  return new Set(str.trim().split(/\s+/));
2453
2483
  }
@@ -2943,7 +2973,10 @@ const KeepAliveImpl = {
2943
2973
  if (pendingCacheKey != null) {
2944
2974
  if (isSuspense(instance.subTree.type)) {
2945
2975
  queuePostRenderEffect(() => {
2946
- cache.set(pendingCacheKey, getInnerChild(instance.subTree));
2976
+ const vnode = getInnerChild(instance.subTree);
2977
+ if (vnode.component) {
2978
+ cache.set(pendingCacheKey, vnode);
2979
+ }
2947
2980
  }, instance.subTree.suspense);
2948
2981
  } else {
2949
2982
  cache.set(pendingCacheKey, getInnerChild(instance.subTree));
@@ -3264,7 +3297,8 @@ function createSlots(slots, dynamicSlots) {
3264
3297
  return slots;
3265
3298
  }
3266
3299
 
3267
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
3300
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
3301
+ if (props == null) props = {};
3268
3302
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3269
3303
  const slotProps = branchKey != null && props.key == null ? shared.extend({}, props, { key: branchKey }) : props;
3270
3304
  const hasProps = Object.keys(slotProps).length > 0;
@@ -3343,12 +3377,41 @@ const getPublicInstance = (i) => {
3343
3377
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
3344
3378
  return getPublicInstance(i.parent);
3345
3379
  };
3380
+ const resolveDevRootEl = (vnode) => {
3381
+ let found = false;
3382
+ while (true) {
3383
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
3384
+ const root = filterSingleRoot(vnode.children);
3385
+ if (!root) {
3386
+ return;
3387
+ }
3388
+ vnode = root;
3389
+ found = true;
3390
+ continue;
3391
+ }
3392
+ const component = vnode.component;
3393
+ if (component && component.subTree) {
3394
+ vnode = component.subTree;
3395
+ continue;
3396
+ }
3397
+ const suspense = vnode.suspense;
3398
+ if (suspense && suspense.activeBranch) {
3399
+ vnode = suspense.activeBranch;
3400
+ continue;
3401
+ }
3402
+ return found ? vnode.el : void 0;
3403
+ }
3404
+ };
3405
+ const getDevRootFragmentEl = (i) => {
3406
+ const el = i.subTree && resolveDevRootEl(i.subTree);
3407
+ return el === void 0 ? i.vnode.el : el;
3408
+ };
3346
3409
  const publicPropertiesMap = (
3347
3410
  // Move PURE marker to new line to workaround compiler discarding it
3348
3411
  // due to type annotation
3349
3412
  /* @__PURE__ */ shared.extend(/* @__PURE__ */ Object.create(null), {
3350
3413
  $: (i) => i,
3351
- $el: (i) => i.vnode.el,
3414
+ $el: (i) => getDevRootFragmentEl(i) ,
3352
3415
  $data: (i) => i.data,
3353
3416
  $props: (i) => reactivity.shallowReadonly(i.props) ,
3354
3417
  $attrs: (i) => reactivity.shallowReadonly(i.attrs) ,
@@ -4451,7 +4514,7 @@ function emit(instance, event, ...rawArgs) {
4451
4514
  args = rawArgs.map((a) => shared.isString(a) ? a.trim() : a);
4452
4515
  }
4453
4516
  if (modifiers.number) {
4454
- args = rawArgs.map(shared.looseToNumber);
4517
+ args = args.map(shared.looseToNumber);
4455
4518
  }
4456
4519
  }
4457
4520
  {
@@ -4688,12 +4751,13 @@ function renderComponentRoot(instance) {
4688
4751
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
4689
4752
  }
4690
4753
  if (vnode.transition) {
4691
- if (!isElementRoot(root)) {
4754
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
4755
+ if (!isElementRoot(child)) {
4692
4756
  warn$1(
4693
4757
  `Component inside <Transition> renders non-element root node that cannot be animated.`
4694
4758
  );
4695
4759
  }
4696
- setTransitionHooks(root, vnode.transition);
4760
+ setTransitionHooks(child, vnode.transition);
4697
4761
  }
4698
4762
  if (setRoot) {
4699
4763
  setRoot(root);
@@ -7093,7 +7157,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7093
7157
  if (suspense.deps <= 0) {
7094
7158
  suspense.resolve();
7095
7159
  } else if (isInFallback) {
7096
- if (!isHydrating) {
7160
+ if (!isHydrating && !suspense.isFallbackMountPending) {
7097
7161
  patch(
7098
7162
  activeBranch,
7099
7163
  newFallback,
@@ -7134,7 +7198,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7134
7198
  );
7135
7199
  if (suspense.deps <= 0) {
7136
7200
  suspense.resolve();
7137
- } else {
7201
+ } else if (!suspense.isFallbackMountPending) {
7138
7202
  patch(
7139
7203
  activeBranch,
7140
7204
  newFallback,
@@ -7341,7 +7405,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7341
7405
  let hasUnresolvedAncestor = false;
7342
7406
  while (parent) {
7343
7407
  if (parent.pendingBranch) {
7344
- parent.effects.push(...effects);
7408
+ for (let i = 0; i < effects.length; i++) {
7409
+ parent.effects.push(effects[i]);
7410
+ }
7345
7411
  hasUnresolvedAncestor = true;
7346
7412
  break;
7347
7413
  }
@@ -7373,9 +7439,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7373
7439
  if (!suspense.isInFallback) {
7374
7440
  return;
7375
7441
  }
7442
+ const latestFallback = suspense.vnode.ssFallback;
7376
7443
  patch(
7377
7444
  null,
7378
- fallbackVNode,
7445
+ latestFallback,
7379
7446
  container2,
7380
7447
  anchor2,
7381
7448
  parentComponent2,
@@ -7385,7 +7452,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7385
7452
  slotScopeIds,
7386
7453
  optimized
7387
7454
  );
7388
- setActiveBranch(suspense, fallbackVNode);
7455
+ setActiveBranch(suspense, latestFallback);
7389
7456
  };
7390
7457
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
7391
7458
  if (delayEnter) {
@@ -7706,6 +7773,14 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7706
7773
  if (vnode.key !== vnode.key) {
7707
7774
  warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
7708
7775
  }
7776
+ if (props && vnode.shapeFlag & 1) {
7777
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
7778
+ if (overwritingProp && hasContentChildren(vnode.children)) {
7779
+ warn$1(
7780
+ `The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`
7781
+ );
7782
+ }
7783
+ }
7709
7784
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
7710
7785
  !isBlockNode && // has current parent block
7711
7786
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
@@ -7719,6 +7794,11 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7719
7794
  }
7720
7795
  return vnode;
7721
7796
  }
7797
+ function hasContentChildren(children) {
7798
+ if (shared.isString(children)) return children !== "";
7799
+ if (shared.isArray(children)) return children.length > 0;
7800
+ return false;
7801
+ }
7722
7802
  const createVNode = createVNodeWithArgsTransform ;
7723
7803
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
7724
7804
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -8167,7 +8247,12 @@ function setupStatefulComponent(instance, isSSR) {
8167
8247
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
8168
8248
  if (isSSR) {
8169
8249
  return setupResult.then((resolvedResult) => {
8170
- handleSetupResult(instance, resolvedResult, isSSR);
8250
+ setInSSRSetupState(true);
8251
+ try {
8252
+ handleSetupResult(instance, resolvedResult, isSSR);
8253
+ } finally {
8254
+ setInSSRSetupState(false);
8255
+ }
8171
8256
  }).catch((e) => {
8172
8257
  handleError(e, instance, 0);
8173
8258
  });
@@ -8633,7 +8718,7 @@ function isMemoSame(cached, memo) {
8633
8718
  return true;
8634
8719
  }
8635
8720
 
8636
- const version = "3.5.40";
8721
+ const version = "3.5.42";
8637
8722
  const warn = warn$1 ;
8638
8723
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8639
8724
  const devtools = devtools$1 ;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.40
2
+ * @vue/runtime-core v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -199,7 +199,9 @@ function queuePostFlushCb(cb) {
199
199
  cb.flags |= 1;
200
200
  }
201
201
  } else {
202
- pendingPostFlushCbs.push(...cb);
202
+ for (let i = 0; i < cb.length; i++) {
203
+ pendingPostFlushCbs.push(cb[i]);
204
+ }
203
205
  }
204
206
  queueFlush();
205
207
  }
@@ -229,7 +231,9 @@ function flushPostFlushCbs(seen) {
229
231
  );
230
232
  pendingPostFlushCbs.length = 0;
231
233
  if (activePostFlushCbs) {
232
- activePostFlushCbs.push(...deduped);
234
+ for (let i = 0; i < deduped.length; i++) {
235
+ activePostFlushCbs.push(deduped[i]);
236
+ }
233
237
  return;
234
238
  }
235
239
  activePostFlushCbs = deduped;
@@ -1187,7 +1191,11 @@ function getInnerChild$1(vnode) {
1187
1191
  function setTransitionHooks(vnode, hooks) {
1188
1192
  if (vnode.shapeFlag & 6 && vnode.component) {
1189
1193
  vnode.transition = hooks;
1190
- setTransitionHooks(vnode.component.subTree, hooks);
1194
+ const subTree = vnode.component.subTree;
1195
+ setTransitionHooks(
1196
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1197
+ hooks
1198
+ );
1191
1199
  } else if (vnode.shapeFlag & 128) {
1192
1200
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1193
1201
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -1537,10 +1545,10 @@ function createHydrationFunctions(rendererInternals) {
1537
1545
  getContainerType(container),
1538
1546
  optimized
1539
1547
  );
1540
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
1548
+ if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
1541
1549
  let subTree;
1542
1550
  if (isFragmentStart) {
1543
- subTree = createVNode(Fragment);
1551
+ subTree = createVNode(Static);
1544
1552
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
1545
1553
  } else {
1546
1554
  subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
@@ -1655,6 +1663,9 @@ function createHydrationFunctions(rendererInternals) {
1655
1663
  for (const key in props) {
1656
1664
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers
1657
1665
  key[0] === "." || isCustomElement && !shared.isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
1666
+ if (isUnchangedResourceProp(el, key, props[key])) {
1667
+ continue;
1668
+ }
1658
1669
  patchProp(el, key, null, props[key], namespace, parentComponent);
1659
1670
  }
1660
1671
  }
@@ -1833,6 +1844,13 @@ function createHydrationFunctions(rendererInternals) {
1833
1844
  };
1834
1845
  return [hydrate, hydrateNode];
1835
1846
  }
1847
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
1848
+ function isUnchangedResourceProp(el, key, clientValue) {
1849
+ if (!resourceProps.has(key)) {
1850
+ return false;
1851
+ }
1852
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
1853
+ }
1836
1854
  const allowMismatchAttr = "data-allow-mismatch";
1837
1855
  const MismatchTypeString = {
1838
1856
  [0 /* TEXT */]: "text",
@@ -2256,7 +2274,10 @@ const KeepAliveImpl = {
2256
2274
  if (pendingCacheKey != null) {
2257
2275
  if (isSuspense(instance.subTree.type)) {
2258
2276
  queuePostRenderEffect(() => {
2259
- cache.set(pendingCacheKey, getInnerChild(instance.subTree));
2277
+ const vnode = getInnerChild(instance.subTree);
2278
+ if (vnode.component) {
2279
+ cache.set(pendingCacheKey, vnode);
2280
+ }
2260
2281
  }, instance.subTree.suspense);
2261
2282
  } else {
2262
2283
  cache.set(pendingCacheKey, getInnerChild(instance.subTree));
@@ -2555,7 +2576,8 @@ function createSlots(slots, dynamicSlots) {
2555
2576
  return slots;
2556
2577
  }
2557
2578
 
2558
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
2579
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
2580
+ if (props == null) props = {};
2559
2581
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
2560
2582
  const slotProps = branchKey != null && props.key == null ? shared.extend({}, props, { key: branchKey }) : props;
2561
2583
  const hasProps = Object.keys(slotProps).length > 0;
@@ -3410,7 +3432,7 @@ function emit(instance, event, ...rawArgs) {
3410
3432
  args = rawArgs.map((a) => shared.isString(a) ? a.trim() : a);
3411
3433
  }
3412
3434
  if (modifiers.number) {
3413
- args = rawArgs.map(shared.looseToNumber);
3435
+ args = args.map(shared.looseToNumber);
3414
3436
  }
3415
3437
  }
3416
3438
  let handlerName;
@@ -3591,7 +3613,8 @@ function renderComponentRoot(instance) {
3591
3613
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
3592
3614
  }
3593
3615
  if (vnode.transition) {
3594
- setTransitionHooks(root, vnode.transition);
3616
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
3617
+ setTransitionHooks(child, vnode.transition);
3595
3618
  }
3596
3619
  {
3597
3620
  result = root;
@@ -5625,7 +5648,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
5625
5648
  if (suspense.deps <= 0) {
5626
5649
  suspense.resolve();
5627
5650
  } else if (isInFallback) {
5628
- if (!isHydrating) {
5651
+ if (!isHydrating && !suspense.isFallbackMountPending) {
5629
5652
  patch(
5630
5653
  activeBranch,
5631
5654
  newFallback,
@@ -5666,7 +5689,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
5666
5689
  );
5667
5690
  if (suspense.deps <= 0) {
5668
5691
  suspense.resolve();
5669
- } else {
5692
+ } else if (!suspense.isFallbackMountPending) {
5670
5693
  patch(
5671
5694
  activeBranch,
5672
5695
  newFallback,
@@ -5851,7 +5874,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5851
5874
  let hasUnresolvedAncestor = false;
5852
5875
  while (parent) {
5853
5876
  if (parent.pendingBranch) {
5854
- parent.effects.push(...effects);
5877
+ for (let i = 0; i < effects.length; i++) {
5878
+ parent.effects.push(effects[i]);
5879
+ }
5855
5880
  hasUnresolvedAncestor = true;
5856
5881
  break;
5857
5882
  }
@@ -5883,9 +5908,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5883
5908
  if (!suspense.isInFallback) {
5884
5909
  return;
5885
5910
  }
5911
+ const latestFallback = suspense.vnode.ssFallback;
5886
5912
  patch(
5887
5913
  null,
5888
- fallbackVNode,
5914
+ latestFallback,
5889
5915
  container2,
5890
5916
  anchor2,
5891
5917
  parentComponent2,
@@ -5895,7 +5921,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5895
5921
  slotScopeIds,
5896
5922
  optimized
5897
5923
  );
5898
- setActiveBranch(suspense, fallbackVNode);
5924
+ setActiveBranch(suspense, latestFallback);
5899
5925
  };
5900
5926
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
5901
5927
  if (delayEnter) {
@@ -6598,7 +6624,12 @@ function setupStatefulComponent(instance, isSSR) {
6598
6624
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
6599
6625
  if (isSSR) {
6600
6626
  return setupResult.then((resolvedResult) => {
6601
- handleSetupResult(instance, resolvedResult, isSSR);
6627
+ setInSSRSetupState(true);
6628
+ try {
6629
+ handleSetupResult(instance, resolvedResult, isSSR);
6630
+ } finally {
6631
+ setInSSRSetupState(false);
6632
+ }
6602
6633
  }).catch((e) => {
6603
6634
  handleError(e, instance, 0);
6604
6635
  });
@@ -6779,7 +6810,7 @@ function isMemoSame(cached, memo) {
6779
6810
  return true;
6780
6811
  }
6781
6812
 
6782
- const version = "3.5.40";
6813
+ const version = "3.5.42";
6783
6814
  const warn$1 = shared.NOOP;
6784
6815
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
6785
6816
  const devtools = void 0;
@@ -331,17 +331,17 @@ type DefineModelDefault<T> = InferDefault<Data, T>;
331
331
  * const count = defineModel<number>('count', { default: 0 })
332
332
  * ```
333
333
  */
334
- export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options: ({
334
+ export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options: DefineModelRuntimeOptions<T, G, S> & ({
335
335
  default: DefineModelDefault<T>;
336
336
  } | {
337
337
  required: true;
338
- }) & DefineModelRuntimeOptions<T, G, S>): ModelRef<T, M, G, S>;
338
+ })): ModelRef<T, M, G, S>;
339
339
  export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(options?: DefineModelRuntimeOptions<T, G, S>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
340
- export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options: ({
340
+ export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options: DefineModelRuntimeOptions<T, G, S> & ({
341
341
  default: DefineModelDefault<T>;
342
342
  } | {
343
343
  required: true;
344
- }) & DefineModelRuntimeOptions<T, G, S>): ModelRef<T, M, G, S>;
344
+ })): ModelRef<T, M, G, S>;
345
345
  export declare function defineModel<T, M extends PropertyKey = string, G = T, S = T>(name: string, options?: DefineModelRuntimeOptions<T, G, S>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
346
346
  type NotUndefined<T> = T extends undefined ? never : T;
347
347
  type MappedOmit<T, K extends keyof any> = {
@@ -1717,7 +1717,7 @@ export declare function toHandlers(obj: Record<string, any>, preserveCaseIfNeces
1717
1717
  * Compiler runtime helper for rendering `<slot/>`
1718
1718
  * @private
1719
1719
  */
1720
- export declare function renderSlot(slots: Slots, name: string, props?: Data, fallback?: () => VNodeArrayChildren, noSlotted?: boolean, branchKey?: PropertyKey): VNode;
1720
+ export declare function renderSlot(slots: Slots, name: string, props?: Data | null, fallback?: () => VNodeArrayChildren, noSlotted?: boolean, branchKey?: PropertyKey): VNode;
1721
1721
 
1722
1722
  type SSRSlot = (...args: any[]) => VNode[] | undefined;
1723
1723
  interface CompiledSlotDescriptor {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-core v3.5.40
2
+ * @vue/runtime-core v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -331,7 +331,9 @@ function queuePostFlushCb(cb) {
331
331
  cb.flags |= 1;
332
332
  }
333
333
  } else {
334
- pendingPostFlushCbs.push(...cb);
334
+ for (let i = 0; i < cb.length; i++) {
335
+ pendingPostFlushCbs.push(cb[i]);
336
+ }
335
337
  }
336
338
  queueFlush();
337
339
  }
@@ -367,7 +369,9 @@ function flushPostFlushCbs(seen) {
367
369
  );
368
370
  pendingPostFlushCbs.length = 0;
369
371
  if (activePostFlushCbs) {
370
- activePostFlushCbs.push(...deduped);
372
+ for (let i = 0; i < deduped.length; i++) {
373
+ activePostFlushCbs.push(deduped[i]);
374
+ }
371
375
  return;
372
376
  }
373
377
  activePostFlushCbs = deduped;
@@ -1657,7 +1661,11 @@ function getInnerChild$1(vnode) {
1657
1661
  function setTransitionHooks(vnode, hooks) {
1658
1662
  if (vnode.shapeFlag & 6 && vnode.component) {
1659
1663
  vnode.transition = hooks;
1660
- setTransitionHooks(vnode.component.subTree, hooks);
1664
+ const subTree = vnode.component.subTree;
1665
+ setTransitionHooks(
1666
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
1667
+ hooks
1668
+ );
1661
1669
  } else if (vnode.shapeFlag & 128) {
1662
1670
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
1663
1671
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -2060,10 +2068,10 @@ function createHydrationFunctions(rendererInternals) {
2060
2068
  getContainerType(container),
2061
2069
  optimized
2062
2070
  );
2063
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
2071
+ if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
2064
2072
  let subTree;
2065
2073
  if (isFragmentStart) {
2066
- subTree = createVNode(Fragment);
2074
+ subTree = createVNode(Static);
2067
2075
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
2068
2076
  } else {
2069
2077
  subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
@@ -2198,6 +2206,9 @@ Server rendered element contains more child nodes than client vdom.`
2198
2206
  }
2199
2207
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
2200
2208
  key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
2209
+ if (isUnchangedResourceProp(el, key, props[key])) {
2210
+ continue;
2211
+ }
2201
2212
  patchProp(el, key, null, props[key], namespace, parentComponent);
2202
2213
  }
2203
2214
  }
@@ -2391,6 +2402,13 @@ Server rendered element contains fewer child nodes than client vdom.`
2391
2402
  };
2392
2403
  return [hydrate, hydrateNode];
2393
2404
  }
2405
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
2406
+ function isUnchangedResourceProp(el, key, clientValue) {
2407
+ if (!resourceProps.has(key)) {
2408
+ return false;
2409
+ }
2410
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
2411
+ }
2394
2412
  function propHasMismatch(el, key, clientValue, vnode, instance) {
2395
2413
  let mismatchType;
2396
2414
  let mismatchKey;
@@ -2428,7 +2446,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2428
2446
  mismatchKey = "style";
2429
2447
  }
2430
2448
  } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
2431
- if (isBooleanAttr(key)) {
2449
+ if (key === "hidden") {
2450
+ actual = normalizeHiddenValue(el.getAttribute(key));
2451
+ expected = normalizeHiddenValue(clientValue);
2452
+ } else if (isBooleanAttr(key)) {
2432
2453
  actual = el.hasAttribute(key);
2433
2454
  expected = includeBooleanAttr(clientValue);
2434
2455
  } else if (clientValue == null) {
@@ -2464,6 +2485,15 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
2464
2485
  }
2465
2486
  return false;
2466
2487
  }
2488
+ function normalizeHiddenValue(value) {
2489
+ if (!isRenderableAttrValue(value)) {
2490
+ return false;
2491
+ }
2492
+ if (isString(value)) {
2493
+ return value.toLowerCase() === "until-found" ? "until-found" : "";
2494
+ }
2495
+ return includeBooleanAttr(value) ? "" : false;
2496
+ }
2467
2497
  function toClassSet(str) {
2468
2498
  return new Set(str.trim().split(/\s+/));
2469
2499
  }
@@ -2962,7 +2992,10 @@ const KeepAliveImpl = {
2962
2992
  if (pendingCacheKey != null) {
2963
2993
  if (isSuspense(instance.subTree.type)) {
2964
2994
  queuePostRenderEffect(() => {
2965
- cache.set(pendingCacheKey, getInnerChild(instance.subTree));
2995
+ const vnode = getInnerChild(instance.subTree);
2996
+ if (vnode.component) {
2997
+ cache.set(pendingCacheKey, vnode);
2998
+ }
2966
2999
  }, instance.subTree.suspense);
2967
3000
  } else {
2968
3001
  cache.set(pendingCacheKey, getInnerChild(instance.subTree));
@@ -3283,7 +3316,8 @@ function createSlots(slots, dynamicSlots) {
3283
3316
  return slots;
3284
3317
  }
3285
3318
 
3286
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
3319
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
3320
+ if (props == null) props = {};
3287
3321
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
3288
3322
  const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
3289
3323
  const hasProps = Object.keys(slotProps).length > 0;
@@ -3362,12 +3396,41 @@ const getPublicInstance = (i) => {
3362
3396
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
3363
3397
  return getPublicInstance(i.parent);
3364
3398
  };
3399
+ const resolveDevRootEl = (vnode) => {
3400
+ let found = false;
3401
+ while (true) {
3402
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
3403
+ const root = filterSingleRoot(vnode.children);
3404
+ if (!root) {
3405
+ return;
3406
+ }
3407
+ vnode = root;
3408
+ found = true;
3409
+ continue;
3410
+ }
3411
+ const component = vnode.component;
3412
+ if (component && component.subTree) {
3413
+ vnode = component.subTree;
3414
+ continue;
3415
+ }
3416
+ const suspense = vnode.suspense;
3417
+ if (suspense && suspense.activeBranch) {
3418
+ vnode = suspense.activeBranch;
3419
+ continue;
3420
+ }
3421
+ return found ? vnode.el : void 0;
3422
+ }
3423
+ };
3424
+ const getDevRootFragmentEl = (i) => {
3425
+ const el = i.subTree && resolveDevRootEl(i.subTree);
3426
+ return el === void 0 ? i.vnode.el : el;
3427
+ };
3365
3428
  const publicPropertiesMap = (
3366
3429
  // Move PURE marker to new line to workaround compiler discarding it
3367
3430
  // due to type annotation
3368
3431
  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
3369
3432
  $: (i) => i,
3370
- $el: (i) => i.vnode.el,
3433
+ $el: (i) => !!(process.env.NODE_ENV !== "production") ? getDevRootFragmentEl(i) : i.vnode.el,
3371
3434
  $data: (i) => i.data,
3372
3435
  $props: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly(i.props) : i.props,
3373
3436
  $attrs: (i) => !!(process.env.NODE_ENV !== "production") ? shallowReadonly(i.attrs) : i.attrs,
@@ -4474,7 +4537,7 @@ function emit(instance, event, ...rawArgs) {
4474
4537
  args = rawArgs.map((a) => isString(a) ? a.trim() : a);
4475
4538
  }
4476
4539
  if (modifiers.number) {
4477
- args = rawArgs.map(looseToNumber);
4540
+ args = args.map(looseToNumber);
4478
4541
  }
4479
4542
  }
4480
4543
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) {
@@ -4711,12 +4774,13 @@ function renderComponentRoot(instance) {
4711
4774
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
4712
4775
  }
4713
4776
  if (vnode.transition) {
4714
- if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(root)) {
4777
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
4778
+ if (!!(process.env.NODE_ENV !== "production") && !isElementRoot(child)) {
4715
4779
  warn$1(
4716
4780
  `Component inside <Transition> renders non-element root node that cannot be animated.`
4717
4781
  );
4718
4782
  }
4719
- setTransitionHooks(root, vnode.transition);
4783
+ setTransitionHooks(child, vnode.transition);
4720
4784
  }
4721
4785
  if (!!(process.env.NODE_ENV !== "production") && setRoot) {
4722
4786
  setRoot(root);
@@ -7154,7 +7218,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7154
7218
  if (suspense.deps <= 0) {
7155
7219
  suspense.resolve();
7156
7220
  } else if (isInFallback) {
7157
- if (!isHydrating) {
7221
+ if (!isHydrating && !suspense.isFallbackMountPending) {
7158
7222
  patch(
7159
7223
  activeBranch,
7160
7224
  newFallback,
@@ -7195,7 +7259,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7195
7259
  );
7196
7260
  if (suspense.deps <= 0) {
7197
7261
  suspense.resolve();
7198
- } else {
7262
+ } else if (!suspense.isFallbackMountPending) {
7199
7263
  patch(
7200
7264
  activeBranch,
7201
7265
  newFallback,
@@ -7402,7 +7466,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7402
7466
  let hasUnresolvedAncestor = false;
7403
7467
  while (parent) {
7404
7468
  if (parent.pendingBranch) {
7405
- parent.effects.push(...effects);
7469
+ for (let i = 0; i < effects.length; i++) {
7470
+ parent.effects.push(effects[i]);
7471
+ }
7406
7472
  hasUnresolvedAncestor = true;
7407
7473
  break;
7408
7474
  }
@@ -7434,9 +7500,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7434
7500
  if (!suspense.isInFallback) {
7435
7501
  return;
7436
7502
  }
7503
+ const latestFallback = suspense.vnode.ssFallback;
7437
7504
  patch(
7438
7505
  null,
7439
- fallbackVNode,
7506
+ latestFallback,
7440
7507
  container2,
7441
7508
  anchor2,
7442
7509
  parentComponent2,
@@ -7446,7 +7513,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7446
7513
  slotScopeIds,
7447
7514
  optimized
7448
7515
  );
7449
- setActiveBranch(suspense, fallbackVNode);
7516
+ setActiveBranch(suspense, latestFallback);
7450
7517
  };
7451
7518
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
7452
7519
  if (delayEnter) {
@@ -7767,6 +7834,14 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7767
7834
  if (!!(process.env.NODE_ENV !== "production") && vnode.key !== vnode.key) {
7768
7835
  warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
7769
7836
  }
7837
+ if (!!(process.env.NODE_ENV !== "production") && props && vnode.shapeFlag & 1) {
7838
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
7839
+ if (overwritingProp && hasContentChildren(vnode.children)) {
7840
+ warn$1(
7841
+ `The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`
7842
+ );
7843
+ }
7844
+ }
7770
7845
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
7771
7846
  !isBlockNode && // has current parent block
7772
7847
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
@@ -7780,6 +7855,11 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
7780
7855
  }
7781
7856
  return vnode;
7782
7857
  }
7858
+ function hasContentChildren(children) {
7859
+ if (isString(children)) return children !== "";
7860
+ if (isArray(children)) return children.length > 0;
7861
+ return false;
7862
+ }
7783
7863
  const createVNode = !!(process.env.NODE_ENV !== "production") ? createVNodeWithArgsTransform : _createVNode;
7784
7864
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
7785
7865
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -8230,7 +8310,12 @@ function setupStatefulComponent(instance, isSSR) {
8230
8310
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
8231
8311
  if (isSSR) {
8232
8312
  return setupResult.then((resolvedResult) => {
8233
- handleSetupResult(instance, resolvedResult, isSSR);
8313
+ setInSSRSetupState(true);
8314
+ try {
8315
+ handleSetupResult(instance, resolvedResult, isSSR);
8316
+ } finally {
8317
+ setInSSRSetupState(false);
8318
+ }
8234
8319
  }).catch((e) => {
8235
8320
  handleError(e, instance, 0);
8236
8321
  });
@@ -8708,7 +8793,7 @@ function isMemoSame(cached, memo) {
8708
8793
  return true;
8709
8794
  }
8710
8795
 
8711
- const version = "3.5.40";
8796
+ const version = "3.5.42";
8712
8797
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
8713
8798
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8714
8799
  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.40",
3
+ "version": "3.5.42",
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.40",
50
- "@vue/reactivity": "3.5.40"
49
+ "@vue/shared": "3.5.42",
50
+ "@vue/reactivity": "3.5.42"
51
51
  }
52
52
  }