@vue/compat 3.5.33 → 3.5.35

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.
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.33
2
+ * @vue/compat v3.5.35
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -480,12 +480,18 @@ class EffectScope {
480
480
  */
481
481
  this.cleanups = [];
482
482
  this._isPaused = false;
483
+ this._warnOnRun = true;
483
484
  this.__v_skip = true;
484
- this.parent = activeEffectScope;
485
485
  if (!detached && activeEffectScope) {
486
- this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
487
- this
488
- ) - 1;
486
+ if (activeEffectScope.active) {
487
+ this.parent = activeEffectScope;
488
+ this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
489
+ this
490
+ ) - 1;
491
+ } else {
492
+ this._active = false;
493
+ this._warnOnRun = false;
494
+ }
489
495
  }
490
496
  }
491
497
  get active() {
@@ -533,7 +539,7 @@ class EffectScope {
533
539
  } finally {
534
540
  activeEffectScope = currentEffectScope;
535
541
  }
536
- } else {
542
+ } else if (this._warnOnRun) {
537
543
  warn$2(`cannot run an inactive effect scope.`);
538
544
  }
539
545
  }
@@ -639,8 +645,12 @@ class ReactiveEffect {
639
645
  */
640
646
  this.cleanup = void 0;
641
647
  this.scheduler = void 0;
642
- if (activeEffectScope && activeEffectScope.active) {
643
- activeEffectScope.effects.push(this);
648
+ if (activeEffectScope) {
649
+ if (activeEffectScope.active) {
650
+ activeEffectScope.effects.push(this);
651
+ } else {
652
+ this.flags &= -2;
653
+ }
644
654
  }
645
655
  }
646
656
  pause() {
@@ -1788,9 +1798,6 @@ function targetTypeMap(rawType) {
1788
1798
  return 0 /* INVALID */;
1789
1799
  }
1790
1800
  }
1791
- function getTargetType(value) {
1792
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));
1793
- }
1794
1801
  // @__NO_SIDE_EFFECTS__
1795
1802
  function reactive(target) {
1796
1803
  if (/* @__PURE__ */ isReadonly(target)) {
@@ -1848,14 +1855,17 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
1848
1855
  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
1849
1856
  return target;
1850
1857
  }
1851
- const targetType = getTargetType(target);
1852
- if (targetType === 0 /* INVALID */) {
1858
+ if (target["__v_skip"] || !Object.isExtensible(target)) {
1853
1859
  return target;
1854
1860
  }
1855
1861
  const existingProxy = proxyMap.get(target);
1856
1862
  if (existingProxy) {
1857
1863
  return existingProxy;
1858
1864
  }
1865
+ const targetType = targetTypeMap(toRawType(target));
1866
+ if (targetType === 0 /* INVALID */) {
1867
+ return target;
1868
+ }
1859
1869
  const proxy = new Proxy(
1860
1870
  target,
1861
1871
  targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -4007,19 +4017,18 @@ const TeleportImpl = {
4007
4017
  target,
4008
4018
  props
4009
4019
  } = vnode;
4010
- let shouldRemove = doRemove || !isTeleportDisabled(props);
4020
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
4011
4021
  const pendingMount = pendingMounts.get(vnode);
4012
4022
  if (pendingMount) {
4013
4023
  pendingMount.flags |= 8;
4014
4024
  pendingMounts.delete(vnode);
4015
- shouldRemove = false;
4016
4025
  }
4017
4026
  if (target) {
4018
4027
  hostRemove(targetStart);
4019
4028
  hostRemove(targetAnchor);
4020
4029
  }
4021
4030
  doRemove && hostRemove(anchor);
4022
- if (shapeFlag & 16) {
4031
+ if (!pendingMount && shapeFlag & 16) {
4023
4032
  for (let i = 0; i < children.length; i++) {
4024
4033
  const child = children[i];
4025
4034
  unmount(
@@ -4990,20 +4999,16 @@ function createHydrationFunctions(rendererInternals) {
4990
4999
  slotScopeIds,
4991
5000
  optimized
4992
5001
  );
4993
- let hasWarned = false;
4994
- while (next) {
4995
- if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {
4996
- if (!hasWarned) {
4997
- warn$1(
4998
- `Hydration children mismatch on`,
4999
- el,
5000
- `
5002
+ if (next && !isMismatchAllowed(el, 1 /* CHILDREN */)) {
5003
+ warn$1(
5004
+ `Hydration children mismatch on`,
5005
+ el,
5006
+ `
5001
5007
  Server rendered element contains more child nodes than client vdom.`
5002
- );
5003
- hasWarned = true;
5004
- }
5005
- logMismatchError();
5006
- }
5008
+ );
5009
+ logMismatchError();
5010
+ }
5011
+ while (next) {
5007
5012
  const cur = next;
5008
5013
  next = next.nextSibling;
5009
5014
  remove(cur);
@@ -5066,7 +5071,7 @@ Server rendered element contains more child nodes than client vdom.`
5066
5071
  optimized = optimized || !!parentVNode.dynamicChildren;
5067
5072
  const children = parentVNode.children;
5068
5073
  const l = children.length;
5069
- let hasWarned = false;
5074
+ let hasCheckedMismatch = false;
5070
5075
  for (let i = 0; i < l; i++) {
5071
5076
  const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
5072
5077
  const isText = vnode.type === Text;
@@ -5094,17 +5099,17 @@ Server rendered element contains more child nodes than client vdom.`
5094
5099
  } else if (isText && !vnode.children) {
5095
5100
  insert(vnode.el = createText(""), container);
5096
5101
  } else {
5097
- if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {
5098
- if (!hasWarned) {
5102
+ if (!hasCheckedMismatch) {
5103
+ hasCheckedMismatch = true;
5104
+ if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {
5099
5105
  warn$1(
5100
5106
  `Hydration children mismatch on`,
5101
5107
  container,
5102
5108
  `
5103
5109
  Server rendered element contains fewer child nodes than client vdom.`
5104
5110
  );
5105
- hasWarned = true;
5111
+ logMismatchError();
5106
5112
  }
5107
- logMismatchError();
5108
5113
  }
5109
5114
  patch(
5110
5115
  null,
@@ -7587,7 +7592,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7587
7592
  return vm;
7588
7593
  }
7589
7594
  }
7590
- Vue.version = `2.6.14-compat:${"3.5.33"}`;
7595
+ Vue.version = `2.6.14-compat:${"3.5.35"}`;
7591
7596
  Vue.config = singletonApp.config;
7592
7597
  Vue.use = (plugin, ...options) => {
7593
7598
  if (plugin && isFunction(plugin.install)) {
@@ -9222,7 +9227,7 @@ function getInvalidTypeMessage(name, value, expectedTypes) {
9222
9227
  const receivedType = toRawType(value);
9223
9228
  const expectedValue = styleValue(value, expectedType);
9224
9229
  const receivedValue = styleValue(value, receivedType);
9225
- if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {
9230
+ if (expectedTypes.length === 1 && isExplicable(expectedType) && isCoercible(expectedType, receivedType)) {
9226
9231
  message += ` with value ${expectedValue}`;
9227
9232
  }
9228
9233
  message += `, got ${receivedType} `;
@@ -9232,7 +9237,9 @@ function getInvalidTypeMessage(name, value, expectedTypes) {
9232
9237
  return message;
9233
9238
  }
9234
9239
  function styleValue(value, type) {
9235
- if (type === "String") {
9240
+ if (isSymbol(value)) {
9241
+ return value.toString();
9242
+ } else if (type === "String") {
9236
9243
  return `"${value}"`;
9237
9244
  } else if (type === "Number") {
9238
9245
  return `${Number(value)}`;
@@ -9244,8 +9251,11 @@ function isExplicable(type) {
9244
9251
  const explicitTypes = ["string", "number", "boolean"];
9245
9252
  return explicitTypes.some((elem) => type.toLowerCase() === elem);
9246
9253
  }
9247
- function isBoolean(...args) {
9248
- return args.some((elem) => elem.toLowerCase() === "boolean");
9254
+ function isCoercible(...args) {
9255
+ return args.every((elem) => {
9256
+ const value = elem.toLowerCase();
9257
+ return value !== "boolean" && value !== "symbol";
9258
+ });
9249
9259
  }
9250
9260
 
9251
9261
  const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
@@ -10588,9 +10598,13 @@ function baseCreateRenderer(options, createHydrationFns) {
10588
10598
  const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;
10589
10599
  if (needTransition2) {
10590
10600
  if (moveType === 0) {
10591
- transition.beforeEnter(el);
10592
- hostInsert(el, container, anchor);
10593
- queuePostRenderEffect(() => transition.enter(el), parentSuspense);
10601
+ if (transition.persisted && !el[leaveCbKey]) {
10602
+ hostInsert(el, container, anchor);
10603
+ } else {
10604
+ transition.beforeEnter(el);
10605
+ hostInsert(el, container, anchor);
10606
+ queuePostRenderEffect(() => transition.enter(el), parentSuspense);
10607
+ }
10594
10608
  } else {
10595
10609
  const { leave, delayLeave, afterLeave } = transition;
10596
10610
  const remove2 = () => {
@@ -10601,16 +10615,21 @@ function baseCreateRenderer(options, createHydrationFns) {
10601
10615
  }
10602
10616
  };
10603
10617
  const performLeave = () => {
10618
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
10604
10619
  if (el._isLeaving) {
10605
10620
  el[leaveCbKey](
10606
10621
  true
10607
10622
  /* cancelled */
10608
10623
  );
10609
10624
  }
10610
- leave(el, () => {
10625
+ if (transition.persisted && !wasLeaving) {
10611
10626
  remove2();
10612
- afterLeave && afterLeave();
10613
- });
10627
+ } else {
10628
+ leave(el, () => {
10629
+ remove2();
10630
+ afterLeave && afterLeave();
10631
+ });
10632
+ }
10614
10633
  };
10615
10634
  if (delayLeave) {
10616
10635
  delayLeave(el, remove2, performLeave);
@@ -11299,13 +11318,14 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11299
11318
  suspense.isHydrating = false;
11300
11319
  } else if (!resume) {
11301
11320
  delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
11321
+ let hasUpdatedAnchor = false;
11302
11322
  if (delayEnter) {
11303
11323
  activeBranch.transition.afterLeave = () => {
11304
11324
  if (pendingId === suspense.pendingId) {
11305
11325
  move(
11306
11326
  pendingBranch,
11307
11327
  container2,
11308
- anchor === initialAnchor ? next(activeBranch) : anchor,
11328
+ anchor === initialAnchor && !hasUpdatedAnchor ? next(activeBranch) : anchor,
11309
11329
  0
11310
11330
  );
11311
11331
  queuePostFlushCb(effects);
@@ -11318,6 +11338,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11318
11338
  if (activeBranch && !suspense.isFallbackMountPending) {
11319
11339
  if (parentNode(activeBranch.el) === container2) {
11320
11340
  anchor = next(activeBranch);
11341
+ hasUpdatedAnchor = true;
11321
11342
  }
11322
11343
  unmount(activeBranch, parentComponent2, suspense, true);
11323
11344
  if (!delayEnter && isInFallback && vnode2.ssFallback) {
@@ -12703,7 +12724,7 @@ function isMemoSame(cached, memo) {
12703
12724
  return true;
12704
12725
  }
12705
12726
 
12706
- const version = "3.5.33";
12727
+ const version = "3.5.35";
12707
12728
  const warn = warn$1 ;
12708
12729
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12709
12730
  const devtools = devtools$1 ;
@@ -13480,12 +13501,37 @@ function createInvoker(initialValue, instance) {
13480
13501
  } else if (e._vts <= invoker.attached) {
13481
13502
  return;
13482
13503
  }
13483
- callWithAsyncErrorHandling(
13484
- patchStopImmediatePropagation(e, invoker.value),
13485
- instance,
13486
- 5,
13487
- [e]
13488
- );
13504
+ const value = invoker.value;
13505
+ if (isArray(value)) {
13506
+ const originalStop = e.stopImmediatePropagation;
13507
+ e.stopImmediatePropagation = () => {
13508
+ originalStop.call(e);
13509
+ e._stopped = true;
13510
+ };
13511
+ const handlers = value.slice();
13512
+ const args = [e];
13513
+ for (let i = 0; i < handlers.length; i++) {
13514
+ if (e._stopped) {
13515
+ break;
13516
+ }
13517
+ const handler = handlers[i];
13518
+ if (handler) {
13519
+ callWithAsyncErrorHandling(
13520
+ handler,
13521
+ instance,
13522
+ 5,
13523
+ args
13524
+ );
13525
+ }
13526
+ }
13527
+ } else {
13528
+ callWithAsyncErrorHandling(
13529
+ value,
13530
+ instance,
13531
+ 5,
13532
+ [e]
13533
+ );
13534
+ }
13489
13535
  };
13490
13536
  invoker.value = initialValue;
13491
13537
  invoker.attached = getNow();
@@ -13501,20 +13547,6 @@ Expected function or array of functions, received type ${typeof value}.`
13501
13547
  );
13502
13548
  return NOOP;
13503
13549
  }
13504
- function patchStopImmediatePropagation(e, value) {
13505
- if (isArray(value)) {
13506
- const originalStop = e.stopImmediatePropagation;
13507
- e.stopImmediatePropagation = () => {
13508
- originalStop.call(e);
13509
- e._stopped = true;
13510
- };
13511
- return value.map(
13512
- (fn) => (e2) => !e2._stopped && fn && fn(e2)
13513
- );
13514
- } else {
13515
- return value;
13516
- }
13517
- }
13518
13550
 
13519
13551
  const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter
13520
13552
  key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;
@@ -19560,24 +19592,16 @@ const transformFor = createStructuralDirectiveTransform(
19560
19592
  const keyProp = findProp(node, `key`, false, true);
19561
19593
  const isDirKey = keyProp && keyProp.type === 7;
19562
19594
  let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
19563
- if (memo && keyExp && isDirKey) {
19564
- {
19565
- keyProp.exp = keyExp = processExpression(
19566
- keyExp,
19567
- context
19568
- );
19569
- }
19570
- }
19571
- const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
19572
- if (isTemplate) {
19573
- if (memo) {
19595
+ const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
19596
+ {
19597
+ if (isTemplate && memo) {
19574
19598
  memo.exp = processExpression(
19575
19599
  memo.exp,
19576
19600
  context
19577
19601
  );
19578
19602
  }
19579
- if (keyProperty && keyProp.type !== 6) {
19580
- keyProperty.value = processExpression(
19603
+ if ((isTemplate || memo) && keyProperty && isDirKey) {
19604
+ keyExp = keyProp.exp = keyProperty.value = processExpression(
19581
19605
  keyProperty.value,
19582
19606
  context
19583
19607
  );
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.33
2
+ * @vue/compat v3.5.35
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -379,12 +379,18 @@ class EffectScope {
379
379
  */
380
380
  this.cleanups = [];
381
381
  this._isPaused = false;
382
+ this._warnOnRun = true;
382
383
  this.__v_skip = true;
383
- this.parent = activeEffectScope;
384
384
  if (!detached && activeEffectScope) {
385
- this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
386
- this
387
- ) - 1;
385
+ if (activeEffectScope.active) {
386
+ this.parent = activeEffectScope;
387
+ this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
388
+ this
389
+ ) - 1;
390
+ } else {
391
+ this._active = false;
392
+ this._warnOnRun = false;
393
+ }
388
394
  }
389
395
  }
390
396
  get active() {
@@ -532,8 +538,12 @@ class ReactiveEffect {
532
538
  */
533
539
  this.cleanup = void 0;
534
540
  this.scheduler = void 0;
535
- if (activeEffectScope && activeEffectScope.active) {
536
- activeEffectScope.effects.push(this);
541
+ if (activeEffectScope) {
542
+ if (activeEffectScope.active) {
543
+ activeEffectScope.effects.push(this);
544
+ } else {
545
+ this.flags &= -2;
546
+ }
537
547
  }
538
548
  }
539
549
  pause() {
@@ -1592,9 +1602,6 @@ function targetTypeMap(rawType) {
1592
1602
  return 0 /* INVALID */;
1593
1603
  }
1594
1604
  }
1595
- function getTargetType(value) {
1596
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));
1597
- }
1598
1605
  // @__NO_SIDE_EFFECTS__
1599
1606
  function reactive(target) {
1600
1607
  if (/* @__PURE__ */ isReadonly(target)) {
@@ -1645,14 +1652,17 @@ function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandl
1645
1652
  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
1646
1653
  return target;
1647
1654
  }
1648
- const targetType = getTargetType(target);
1649
- if (targetType === 0 /* INVALID */) {
1655
+ if (target["__v_skip"] || !Object.isExtensible(target)) {
1650
1656
  return target;
1651
1657
  }
1652
1658
  const existingProxy = proxyMap.get(target);
1653
1659
  if (existingProxy) {
1654
1660
  return existingProxy;
1655
1661
  }
1662
+ const targetType = targetTypeMap(toRawType(target));
1663
+ if (targetType === 0 /* INVALID */) {
1664
+ return target;
1665
+ }
1656
1666
  const proxy = new Proxy(
1657
1667
  target,
1658
1668
  targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers
@@ -3039,19 +3049,18 @@ const TeleportImpl = {
3039
3049
  target,
3040
3050
  props
3041
3051
  } = vnode;
3042
- let shouldRemove = doRemove || !isTeleportDisabled(props);
3052
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
3043
3053
  const pendingMount = pendingMounts.get(vnode);
3044
3054
  if (pendingMount) {
3045
3055
  pendingMount.flags |= 8;
3046
3056
  pendingMounts.delete(vnode);
3047
- shouldRemove = false;
3048
3057
  }
3049
3058
  if (target) {
3050
3059
  hostRemove(targetStart);
3051
3060
  hostRemove(targetAnchor);
3052
3061
  }
3053
3062
  doRemove && hostRemove(anchor);
3054
- if (shapeFlag & 16) {
3063
+ if (!pendingMount && shapeFlag & 16) {
3055
3064
  for (let i = 0; i < children.length; i++) {
3056
3065
  const child = children[i];
3057
3066
  unmount(
@@ -3957,10 +3966,10 @@ function createHydrationFunctions(rendererInternals) {
3957
3966
  slotScopeIds,
3958
3967
  optimized
3959
3968
  );
3969
+ if (next && !isMismatchAllowed(el, 1 /* CHILDREN */)) {
3970
+ logMismatchError();
3971
+ }
3960
3972
  while (next) {
3961
- if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {
3962
- logMismatchError();
3963
- }
3964
3973
  const cur = next;
3965
3974
  next = next.nextSibling;
3966
3975
  remove(cur);
@@ -4022,6 +4031,7 @@ function createHydrationFunctions(rendererInternals) {
4022
4031
  optimized = optimized || !!parentVNode.dynamicChildren;
4023
4032
  const children = parentVNode.children;
4024
4033
  const l = children.length;
4034
+ let hasCheckedMismatch = false;
4025
4035
  for (let i = 0; i < l; i++) {
4026
4036
  const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
4027
4037
  const isText = vnode.type === Text;
@@ -4049,8 +4059,11 @@ function createHydrationFunctions(rendererInternals) {
4049
4059
  } else if (isText && !vnode.children) {
4050
4060
  insert(vnode.el = createText(""), container);
4051
4061
  } else {
4052
- if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {
4053
- logMismatchError();
4062
+ if (!hasCheckedMismatch) {
4063
+ hasCheckedMismatch = true;
4064
+ if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {
4065
+ logMismatchError();
4066
+ }
4054
4067
  }
4055
4068
  patch(
4056
4069
  null,
@@ -6098,7 +6111,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6098
6111
  return vm;
6099
6112
  }
6100
6113
  }
6101
- Vue.version = `2.6.14-compat:${"3.5.33"}`;
6114
+ Vue.version = `2.6.14-compat:${"3.5.35"}`;
6102
6115
  Vue.config = singletonApp.config;
6103
6116
  Vue.use = (plugin, ...options) => {
6104
6117
  if (plugin && isFunction(plugin.install)) {
@@ -8525,9 +8538,13 @@ function baseCreateRenderer(options, createHydrationFns) {
8525
8538
  const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;
8526
8539
  if (needTransition2) {
8527
8540
  if (moveType === 0) {
8528
- transition.beforeEnter(el);
8529
- hostInsert(el, container, anchor);
8530
- queuePostRenderEffect(() => transition.enter(el), parentSuspense);
8541
+ if (transition.persisted && !el[leaveCbKey]) {
8542
+ hostInsert(el, container, anchor);
8543
+ } else {
8544
+ transition.beforeEnter(el);
8545
+ hostInsert(el, container, anchor);
8546
+ queuePostRenderEffect(() => transition.enter(el), parentSuspense);
8547
+ }
8531
8548
  } else {
8532
8549
  const { leave, delayLeave, afterLeave } = transition;
8533
8550
  const remove2 = () => {
@@ -8538,16 +8555,21 @@ function baseCreateRenderer(options, createHydrationFns) {
8538
8555
  }
8539
8556
  };
8540
8557
  const performLeave = () => {
8558
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8541
8559
  if (el._isLeaving) {
8542
8560
  el[leaveCbKey](
8543
8561
  true
8544
8562
  /* cancelled */
8545
8563
  );
8546
8564
  }
8547
- leave(el, () => {
8565
+ if (transition.persisted && !wasLeaving) {
8548
8566
  remove2();
8549
- afterLeave && afterLeave();
8550
- });
8567
+ } else {
8568
+ leave(el, () => {
8569
+ remove2();
8570
+ afterLeave && afterLeave();
8571
+ });
8572
+ }
8551
8573
  };
8552
8574
  if (delayLeave) {
8553
8575
  delayLeave(el, remove2, performLeave);
@@ -9197,13 +9219,14 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9197
9219
  suspense.isHydrating = false;
9198
9220
  } else if (!resume) {
9199
9221
  delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
9222
+ let hasUpdatedAnchor = false;
9200
9223
  if (delayEnter) {
9201
9224
  activeBranch.transition.afterLeave = () => {
9202
9225
  if (pendingId === suspense.pendingId) {
9203
9226
  move(
9204
9227
  pendingBranch,
9205
9228
  container2,
9206
- anchor === initialAnchor ? next(activeBranch) : anchor,
9229
+ anchor === initialAnchor && !hasUpdatedAnchor ? next(activeBranch) : anchor,
9207
9230
  0
9208
9231
  );
9209
9232
  queuePostFlushCb(effects);
@@ -9216,6 +9239,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9216
9239
  if (activeBranch && !suspense.isFallbackMountPending) {
9217
9240
  if (parentNode(activeBranch.el) === container2) {
9218
9241
  anchor = next(activeBranch);
9242
+ hasUpdatedAnchor = true;
9219
9243
  }
9220
9244
  unmount(activeBranch, parentComponent2, suspense, true);
9221
9245
  if (!delayEnter && isInFallback && vnode2.ssFallback) {
@@ -10234,7 +10258,7 @@ function isMemoSame(cached, memo) {
10234
10258
  return true;
10235
10259
  }
10236
10260
 
10237
- const version = "3.5.33";
10261
+ const version = "3.5.35";
10238
10262
  const warn$1 = NOOP;
10239
10263
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10240
10264
  const devtools = void 0;
@@ -10988,31 +11012,42 @@ function createInvoker(initialValue, instance) {
10988
11012
  } else if (e._vts <= invoker.attached) {
10989
11013
  return;
10990
11014
  }
10991
- callWithAsyncErrorHandling(
10992
- patchStopImmediatePropagation(e, invoker.value),
10993
- instance,
10994
- 5,
10995
- [e]
10996
- );
11015
+ const value = invoker.value;
11016
+ if (isArray(value)) {
11017
+ const originalStop = e.stopImmediatePropagation;
11018
+ e.stopImmediatePropagation = () => {
11019
+ originalStop.call(e);
11020
+ e._stopped = true;
11021
+ };
11022
+ const handlers = value.slice();
11023
+ const args = [e];
11024
+ for (let i = 0; i < handlers.length; i++) {
11025
+ if (e._stopped) {
11026
+ break;
11027
+ }
11028
+ const handler = handlers[i];
11029
+ if (handler) {
11030
+ callWithAsyncErrorHandling(
11031
+ handler,
11032
+ instance,
11033
+ 5,
11034
+ args
11035
+ );
11036
+ }
11037
+ }
11038
+ } else {
11039
+ callWithAsyncErrorHandling(
11040
+ value,
11041
+ instance,
11042
+ 5,
11043
+ [e]
11044
+ );
11045
+ }
10997
11046
  };
10998
11047
  invoker.value = initialValue;
10999
11048
  invoker.attached = getNow();
11000
11049
  return invoker;
11001
11050
  }
11002
- function patchStopImmediatePropagation(e, value) {
11003
- if (isArray(value)) {
11004
- const originalStop = e.stopImmediatePropagation;
11005
- e.stopImmediatePropagation = () => {
11006
- originalStop.call(e);
11007
- e._stopped = true;
11008
- };
11009
- return value.map(
11010
- (fn) => (e2) => !e2._stopped && fn && fn(e2)
11011
- );
11012
- } else {
11013
- return value;
11014
- }
11015
- }
11016
11051
 
11017
11052
  const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter
11018
11053
  key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;
@@ -16780,24 +16815,16 @@ const transformFor = createStructuralDirectiveTransform(
16780
16815
  const keyProp = findProp(node, `key`, false, true);
16781
16816
  const isDirKey = keyProp && keyProp.type === 7;
16782
16817
  let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
16783
- if (memo && keyExp && isDirKey) {
16784
- {
16785
- keyProp.exp = keyExp = processExpression(
16786
- keyExp,
16787
- context
16788
- );
16789
- }
16790
- }
16791
- const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
16792
- if (isTemplate) {
16793
- if (memo) {
16818
+ const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
16819
+ {
16820
+ if (isTemplate && memo) {
16794
16821
  memo.exp = processExpression(
16795
16822
  memo.exp,
16796
16823
  context
16797
16824
  );
16798
16825
  }
16799
- if (keyProperty && keyProp.type !== 6) {
16800
- keyProperty.value = processExpression(
16826
+ if ((isTemplate || memo) && keyProperty && isDirKey) {
16827
+ keyExp = keyProp.exp = keyProperty.value = processExpression(
16801
16828
  keyProperty.value,
16802
16829
  context
16803
16830
  );