@vue/compat 3.6.0-beta.11 → 3.6.0-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-beta.11
2
+ * @vue/compat v3.6.0-beta.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -526,6 +526,13 @@ function warn$2(msg, ...args) {
526
526
  const notifyBuffer = [];
527
527
  let batchDepth = 0;
528
528
  let activeSub = void 0;
529
+ let runDepth = 0;
530
+ function incRunDepth() {
531
+ ++runDepth;
532
+ }
533
+ function decRunDepth() {
534
+ --runDepth;
535
+ }
529
536
  let globalVersion = 0;
530
537
  let notifyIndex = 0;
531
538
  let notifyBufferLength = 0;
@@ -599,8 +606,10 @@ function propagate(link) {
599
606
  const sub = link.sub;
600
607
  let flags = sub.flags;
601
608
  if (flags & 3) {
602
- if (!(flags & 60)) sub.flags = flags | 32;
603
- else if (!(flags & 12)) flags = 0;
609
+ if (!(flags & 60)) {
610
+ sub.flags = flags | 32;
611
+ if (runDepth) sub.flags |= 8;
612
+ } else if (!(flags & 12)) flags = 0;
604
613
  else if (!(flags & 4)) sub.flags = flags & -9 | 32;
605
614
  else if (!(flags & 48) && isValidLink(link, sub)) {
606
615
  sub.flags = flags | 40;
@@ -669,13 +678,13 @@ function checkDirty(link, sub) {
669
678
  let dirty = false;
670
679
  if (sub.flags & 16) dirty = true;
671
680
  else if ((depFlags & 17) === 17) {
681
+ const subs = dep.subs;
672
682
  if (dep.update()) {
673
- const subs = dep.subs;
674
683
  if (subs.nextSub !== void 0) shallowPropagate(subs);
675
684
  dirty = true;
676
685
  }
677
686
  } else if ((depFlags & 33) === 33) {
678
- if (link.nextSub !== void 0 || link.prevSub !== void 0) stack = {
687
+ stack = {
679
688
  value: link,
680
689
  prev: stack
681
690
  };
@@ -690,15 +699,12 @@ function checkDirty(link, sub) {
690
699
  }
691
700
  while (checkDepth) {
692
701
  --checkDepth;
693
- const firstSub = sub.subs;
694
- const hasMultipleSubs = firstSub.nextSub !== void 0;
695
- if (hasMultipleSubs) {
696
- link = stack.value;
697
- stack = stack.prev;
698
- } else link = firstSub;
702
+ link = stack.value;
703
+ stack = stack.prev;
699
704
  if (dirty) {
705
+ const subs = sub.subs;
700
706
  if (sub.update()) {
701
- if (hasMultipleSubs) shallowPropagate(firstSub);
707
+ if (subs.nextSub !== void 0) shallowPropagate(subs);
702
708
  sub = link.sub;
703
709
  continue;
704
710
  }
@@ -710,7 +716,7 @@ function checkDirty(link, sub) {
710
716
  }
711
717
  dirty = false;
712
718
  }
713
- return dirty;
719
+ return dirty && !!sub.flags;
714
720
  } while (true);
715
721
  }
716
722
  function shallowPropagate(link) {
@@ -1311,9 +1317,6 @@ function targetTypeMap(rawType) {
1311
1317
  default: return 0;
1312
1318
  }
1313
1319
  }
1314
- function getTargetType(value) {
1315
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
1316
- }
1317
1320
  /* @__NO_SIDE_EFFECTS__ */
1318
1321
  function reactive(target) {
1319
1322
  if (/* @__PURE__ */ isReadonly(target)) return target;
@@ -1426,10 +1429,11 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1426
1429
  return target;
1427
1430
  }
1428
1431
  if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) return target;
1429
- const targetType = getTargetType(target);
1430
- if (targetType === 0) return target;
1432
+ if (target["__v_skip"] || !Object.isExtensible(target)) return target;
1431
1433
  const existingProxy = proxyMap.get(target);
1432
1434
  if (existingProxy) return existingProxy;
1435
+ const targetType = targetTypeMap(toRawType(target));
1436
+ if (targetType === 0) return target;
1433
1437
  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
1434
1438
  proxyMap.set(target, proxy);
1435
1439
  return proxy;
@@ -1862,9 +1866,11 @@ var ReactiveEffect = class {
1862
1866
  if (!this.active) return this.fn();
1863
1867
  cleanup(this);
1864
1868
  const prevSub = startTracking(this);
1869
+ incRunDepth();
1865
1870
  try {
1866
1871
  return this.fn();
1867
1872
  } finally {
1873
+ decRunDepth();
1868
1874
  endTracking(this, prevSub);
1869
1875
  const flags = this.flags;
1870
1876
  if ((flags & 136) === 136) {
@@ -3630,17 +3636,16 @@ const TeleportImpl = {
3630
3636
  },
3631
3637
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
3632
3638
  const { shapeFlag, children, anchor, targetStart, targetAnchor, props } = vnode;
3633
- let shouldRemove = doRemove || !isTeleportDisabled(props);
3639
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
3634
3640
  const pendingMount = pendingMounts.get(vnode);
3635
3641
  if (pendingMount) {
3636
3642
  pendingMount.flags |= 4;
3637
3643
  pendingMounts.delete(vnode);
3638
- shouldRemove = false;
3639
3644
  }
3640
3645
  if (targetStart) hostRemove(targetStart);
3641
3646
  if (targetAnchor) hostRemove(targetAnchor);
3642
3647
  doRemove && hostRemove(anchor);
3643
- if (shapeFlag & 16) for (let i = 0; i < children.length; i++) {
3648
+ if (!pendingMount && shapeFlag & 16) for (let i = 0; i < children.length; i++) {
3644
3649
  const child = children[i];
3645
3650
  unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
3646
3651
  }
@@ -4307,15 +4312,11 @@ function createHydrationFunctions(rendererInternals) {
4307
4312
  }
4308
4313
  if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) {
4309
4314
  let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
4310
- let hasWarned = false;
4315
+ if (next && !isMismatchAllowed(el, 1)) {
4316
+ (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration children mismatch on`, el, `\nServer rendered element contains more child nodes than client vdom.`);
4317
+ logMismatchError();
4318
+ }
4311
4319
  while (next) {
4312
- if (!isMismatchAllowed(el, 1)) {
4313
- if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
4314
- warn$1(`Hydration children mismatch on`, el, `\nServer rendered element contains more child nodes than client vdom.`);
4315
- hasWarned = true;
4316
- }
4317
- logMismatchError();
4318
- }
4319
4320
  const cur = next;
4320
4321
  next = next.nextSibling;
4321
4322
  remove(cur);
@@ -4357,7 +4358,7 @@ function createHydrationFunctions(rendererInternals) {
4357
4358
  optimized = optimized || !!parentVNode.dynamicChildren;
4358
4359
  const children = parentVNode.children;
4359
4360
  const l = children.length;
4360
- let hasWarned = false;
4361
+ let hasCheckedMismatch = false;
4361
4362
  for (let i = 0; i < l; i++) {
4362
4363
  const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
4363
4364
  const isText = vnode.type === Text;
@@ -4371,12 +4372,12 @@ function createHydrationFunctions(rendererInternals) {
4371
4372
  node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4372
4373
  } else if (isText && !vnode.children) insert(vnode.el = createText(""), container);
4373
4374
  else {
4374
- if (!isMismatchAllowed(container, 1)) {
4375
- if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
4376
- warn$1(`Hydration children mismatch on`, container, `\nServer rendered element contains fewer child nodes than client vdom.`);
4377
- hasWarned = true;
4375
+ if (!hasCheckedMismatch) {
4376
+ hasCheckedMismatch = true;
4377
+ if (!isMismatchAllowed(container, 1)) {
4378
+ (process.env.NODE_ENV !== "production" || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(`Hydration children mismatch on`, container, `\nServer rendered element contains fewer child nodes than client vdom.`);
4379
+ logMismatchError();
4378
4380
  }
4379
- logMismatchError();
4380
4381
  }
4381
4382
  patch(null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4382
4383
  }
@@ -6328,7 +6329,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6328
6329
  if (options.el) return vm.$mount(options.el);
6329
6330
  else return vm;
6330
6331
  }
6331
- Vue.version = `2.6.14-compat:3.6.0-beta.11`;
6332
+ Vue.version = `2.6.14-compat:3.6.0-beta.13`;
6332
6333
  Vue.config = singletonApp.config;
6333
6334
  Vue.use = (plugin, ...options) => {
6334
6335
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -8313,8 +8314,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8313
8314
  else hostInsert(el, container, anchor);
8314
8315
  };
8315
8316
  const performLeave = () => {
8317
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8316
8318
  if (el._isLeaving) el[leaveCbKey](true);
8317
- leave(el, () => {
8319
+ if (transition.persisted && !wasLeaving) remove();
8320
+ else leave(el, () => {
8318
8321
  remove();
8319
8322
  afterLeave && afterLeave();
8320
8323
  });
@@ -8537,6 +8540,10 @@ function invalidateMount(hooks) {
8537
8540
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
8538
8541
  }
8539
8542
  function performTransitionEnter(el, transition, insert, parentSuspense, force = false) {
8543
+ if (force && transition.persisted && !el[leaveCbKey]) {
8544
+ insert();
8545
+ return;
8546
+ }
8540
8547
  if (force || needTransition(parentSuspense, transition)) {
8541
8548
  transition.beforeEnter(el);
8542
8549
  insert();
@@ -9862,7 +9869,7 @@ function isMemoSame(cached, memo) {
9862
9869
  }
9863
9870
  //#endregion
9864
9871
  //#region packages/runtime-core/src/index.ts
9865
- const version = "3.6.0-beta.11";
9872
+ const version = "3.6.0-beta.13";
9866
9873
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
9867
9874
  /**
9868
9875
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -10539,7 +10546,21 @@ function createInvoker(initialValue, instance) {
10539
10546
  const invoker = (e) => {
10540
10547
  if (!e._vts) e._vts = Date.now();
10541
10548
  else if (e._vts <= invoker.attached) return;
10542
- callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5, [e]);
10549
+ const value = invoker.value;
10550
+ if (isArray(value)) {
10551
+ const originalStop = e.stopImmediatePropagation;
10552
+ e.stopImmediatePropagation = () => {
10553
+ originalStop.call(e);
10554
+ e._stopped = true;
10555
+ };
10556
+ const handlers = value.slice();
10557
+ const args = [e];
10558
+ for (let i = 0; i < handlers.length; i++) {
10559
+ if (e._stopped) break;
10560
+ const handler = handlers[i];
10561
+ if (handler) callWithAsyncErrorHandling(handler, instance, 5, args);
10562
+ }
10563
+ } else callWithAsyncErrorHandling(value, instance, 5, [e]);
10543
10564
  };
10544
10565
  invoker.value = initialValue;
10545
10566
  invoker.attached = getNow();
@@ -10550,16 +10571,6 @@ function sanitizeEventValue(value, propName) {
10550
10571
  warn(`Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`);
10551
10572
  return NOOP;
10552
10573
  }
10553
- function patchStopImmediatePropagation(e, value) {
10554
- if (isArray(value)) {
10555
- const originalStop = e.stopImmediatePropagation;
10556
- e.stopImmediatePropagation = () => {
10557
- originalStop.call(e);
10558
- e._stopped = true;
10559
- };
10560
- return value.map((fn) => (e) => !e._stopped && fn && fn(e));
10561
- } else return value;
10562
- }
10563
10574
  //#endregion
10564
10575
  //#region packages/runtime-dom/src/patchProp.ts
10565
10576
  const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
@@ -14733,10 +14744,9 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
14733
14744
  const isTemplate = isTemplateNode$1(node);
14734
14745
  const memo = findDir(node, "memo");
14735
14746
  const keyProp = findProp(node, `key`, false, true);
14736
- const isDirKey = keyProp && keyProp.type === 7;
14747
+ keyProp && keyProp.type;
14737
14748
  let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
14738
- if (memo && keyExp && isDirKey) {}
14739
- const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
14749
+ const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
14740
14750
  const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
14741
14751
  const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
14742
14752
  forNode.codegenNode = createVNodeCall(context, helper(FRAGMENT), void 0, renderExp, fragmentFlag, void 0, void 0, true, !isStableFragment, false, node.loc);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-beta.11
2
+ * @vue/compat v3.6.0-beta.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -522,6 +522,13 @@ var Vue = (function() {
522
522
  const notifyBuffer = [];
523
523
  let batchDepth = 0;
524
524
  let activeSub = void 0;
525
+ let runDepth = 0;
526
+ function incRunDepth() {
527
+ ++runDepth;
528
+ }
529
+ function decRunDepth() {
530
+ --runDepth;
531
+ }
525
532
  let globalVersion = 0;
526
533
  let notifyIndex = 0;
527
534
  let notifyBufferLength = 0;
@@ -595,8 +602,10 @@ var Vue = (function() {
595
602
  const sub = link.sub;
596
603
  let flags = sub.flags;
597
604
  if (flags & 3) {
598
- if (!(flags & 60)) sub.flags = flags | 32;
599
- else if (!(flags & 12)) flags = 0;
605
+ if (!(flags & 60)) {
606
+ sub.flags = flags | 32;
607
+ if (runDepth) sub.flags |= 8;
608
+ } else if (!(flags & 12)) flags = 0;
600
609
  else if (!(flags & 4)) sub.flags = flags & -9 | 32;
601
610
  else if (!(flags & 48) && isValidLink(link, sub)) {
602
611
  sub.flags = flags | 40;
@@ -665,13 +674,13 @@ var Vue = (function() {
665
674
  let dirty = false;
666
675
  if (sub.flags & 16) dirty = true;
667
676
  else if ((depFlags & 17) === 17) {
677
+ const subs = dep.subs;
668
678
  if (dep.update()) {
669
- const subs = dep.subs;
670
679
  if (subs.nextSub !== void 0) shallowPropagate(subs);
671
680
  dirty = true;
672
681
  }
673
682
  } else if ((depFlags & 33) === 33) {
674
- if (link.nextSub !== void 0 || link.prevSub !== void 0) stack = {
683
+ stack = {
675
684
  value: link,
676
685
  prev: stack
677
686
  };
@@ -686,15 +695,12 @@ var Vue = (function() {
686
695
  }
687
696
  while (checkDepth) {
688
697
  --checkDepth;
689
- const firstSub = sub.subs;
690
- const hasMultipleSubs = firstSub.nextSub !== void 0;
691
- if (hasMultipleSubs) {
692
- link = stack.value;
693
- stack = stack.prev;
694
- } else link = firstSub;
698
+ link = stack.value;
699
+ stack = stack.prev;
695
700
  if (dirty) {
701
+ const subs = sub.subs;
696
702
  if (sub.update()) {
697
- if (hasMultipleSubs) shallowPropagate(firstSub);
703
+ if (subs.nextSub !== void 0) shallowPropagate(subs);
698
704
  sub = link.sub;
699
705
  continue;
700
706
  }
@@ -706,7 +712,7 @@ var Vue = (function() {
706
712
  }
707
713
  dirty = false;
708
714
  }
709
- return dirty;
715
+ return dirty && !!sub.flags;
710
716
  } while (true);
711
717
  }
712
718
  function shallowPropagate(link) {
@@ -1307,9 +1313,6 @@ var Vue = (function() {
1307
1313
  default: return 0;
1308
1314
  }
1309
1315
  }
1310
- function getTargetType(value) {
1311
- return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
1312
- }
1313
1316
  /* @__NO_SIDE_EFFECTS__ */
1314
1317
  function reactive(target) {
1315
1318
  if (/* @__PURE__ */ isReadonly(target)) return target;
@@ -1422,10 +1425,11 @@ var Vue = (function() {
1422
1425
  return target;
1423
1426
  }
1424
1427
  if (target["__v_raw"] && !(isReadonly && target["__v_isReactive"])) return target;
1425
- const targetType = getTargetType(target);
1426
- if (targetType === 0) return target;
1428
+ if (target["__v_skip"] || !Object.isExtensible(target)) return target;
1427
1429
  const existingProxy = proxyMap.get(target);
1428
1430
  if (existingProxy) return existingProxy;
1431
+ const targetType = targetTypeMap(toRawType(target));
1432
+ if (targetType === 0) return target;
1429
1433
  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
1430
1434
  proxyMap.set(target, proxy);
1431
1435
  return proxy;
@@ -1858,9 +1862,11 @@ var Vue = (function() {
1858
1862
  if (!this.active) return this.fn();
1859
1863
  cleanup(this);
1860
1864
  const prevSub = startTracking(this);
1865
+ incRunDepth();
1861
1866
  try {
1862
1867
  return this.fn();
1863
1868
  } finally {
1869
+ decRunDepth();
1864
1870
  endTracking(this, prevSub);
1865
1871
  const flags = this.flags;
1866
1872
  if ((flags & 136) === 136) {
@@ -3589,17 +3595,16 @@ var Vue = (function() {
3589
3595
  },
3590
3596
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
3591
3597
  const { shapeFlag, children, anchor, targetStart, targetAnchor, props } = vnode;
3592
- let shouldRemove = doRemove || !isTeleportDisabled(props);
3598
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
3593
3599
  const pendingMount = pendingMounts.get(vnode);
3594
3600
  if (pendingMount) {
3595
3601
  pendingMount.flags |= 4;
3596
3602
  pendingMounts.delete(vnode);
3597
- shouldRemove = false;
3598
3603
  }
3599
3604
  if (targetStart) hostRemove(targetStart);
3600
3605
  if (targetAnchor) hostRemove(targetAnchor);
3601
3606
  doRemove && hostRemove(anchor);
3602
- if (shapeFlag & 16) for (let i = 0; i < children.length; i++) {
3607
+ if (!pendingMount && shapeFlag & 16) for (let i = 0; i < children.length; i++) {
3603
3608
  const child = children[i];
3604
3609
  unmount(child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren);
3605
3610
  }
@@ -4252,15 +4257,11 @@ var Vue = (function() {
4252
4257
  }
4253
4258
  if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) {
4254
4259
  let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
4255
- let hasWarned = false;
4260
+ if (next && !isMismatchAllowed(el, 1)) {
4261
+ warn$1(`Hydration children mismatch on`, el, `\nServer rendered element contains more child nodes than client vdom.`);
4262
+ logMismatchError();
4263
+ }
4256
4264
  while (next) {
4257
- if (!isMismatchAllowed(el, 1)) {
4258
- if (!hasWarned) {
4259
- warn$1(`Hydration children mismatch on`, el, `\nServer rendered element contains more child nodes than client vdom.`);
4260
- hasWarned = true;
4261
- }
4262
- logMismatchError();
4263
- }
4264
4265
  const cur = next;
4265
4266
  next = next.nextSibling;
4266
4267
  remove(cur);
@@ -4299,7 +4300,7 @@ var Vue = (function() {
4299
4300
  optimized = optimized || !!parentVNode.dynamicChildren;
4300
4301
  const children = parentVNode.children;
4301
4302
  const l = children.length;
4302
- let hasWarned = false;
4303
+ let hasCheckedMismatch = false;
4303
4304
  for (let i = 0; i < l; i++) {
4304
4305
  const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
4305
4306
  const isText = vnode.type === Text;
@@ -4313,12 +4314,12 @@ var Vue = (function() {
4313
4314
  node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4314
4315
  } else if (isText && !vnode.children) insert(vnode.el = createText(""), container);
4315
4316
  else {
4316
- if (!isMismatchAllowed(container, 1)) {
4317
- if (!hasWarned) {
4317
+ if (!hasCheckedMismatch) {
4318
+ hasCheckedMismatch = true;
4319
+ if (!isMismatchAllowed(container, 1)) {
4318
4320
  warn$1(`Hydration children mismatch on`, container, `\nServer rendered element contains fewer child nodes than client vdom.`);
4319
- hasWarned = true;
4321
+ logMismatchError();
4320
4322
  }
4321
- logMismatchError();
4322
4323
  }
4323
4324
  patch(null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4324
4325
  }
@@ -6252,7 +6253,7 @@ var Vue = (function() {
6252
6253
  if (options.el) return vm.$mount(options.el);
6253
6254
  else return vm;
6254
6255
  }
6255
- Vue.version = `2.6.14-compat:3.6.0-beta.11`;
6256
+ Vue.version = `2.6.14-compat:3.6.0-beta.13`;
6256
6257
  Vue.config = singletonApp.config;
6257
6258
  Vue.use = (plugin, ...options) => {
6258
6259
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -8188,8 +8189,10 @@ var Vue = (function() {
8188
8189
  else hostInsert(el, container, anchor);
8189
8190
  };
8190
8191
  const performLeave = () => {
8192
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8191
8193
  if (el._isLeaving) el[leaveCbKey](true);
8192
- leave(el, () => {
8194
+ if (transition.persisted && !wasLeaving) remove();
8195
+ else leave(el, () => {
8193
8196
  remove();
8194
8197
  afterLeave && afterLeave();
8195
8198
  });
@@ -8412,6 +8415,10 @@ var Vue = (function() {
8412
8415
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
8413
8416
  }
8414
8417
  function performTransitionEnter(el, transition, insert, parentSuspense, force = false) {
8418
+ if (force && transition.persisted && !el[leaveCbKey]) {
8419
+ insert();
8420
+ return;
8421
+ }
8415
8422
  if (force || needTransition(parentSuspense, transition)) {
8416
8423
  transition.beforeEnter(el);
8417
8424
  insert();
@@ -9706,7 +9713,7 @@ var Vue = (function() {
9706
9713
  }
9707
9714
  //#endregion
9708
9715
  //#region packages/runtime-core/src/index.ts
9709
- const version = "3.6.0-beta.11";
9716
+ const version = "3.6.0-beta.13";
9710
9717
  const warn = warn$1;
9711
9718
  /**
9712
9719
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -10359,7 +10366,21 @@ var Vue = (function() {
10359
10366
  const invoker = (e) => {
10360
10367
  if (!e._vts) e._vts = Date.now();
10361
10368
  else if (e._vts <= invoker.attached) return;
10362
- callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5, [e]);
10369
+ const value = invoker.value;
10370
+ if (isArray(value)) {
10371
+ const originalStop = e.stopImmediatePropagation;
10372
+ e.stopImmediatePropagation = () => {
10373
+ originalStop.call(e);
10374
+ e._stopped = true;
10375
+ };
10376
+ const handlers = value.slice();
10377
+ const args = [e];
10378
+ for (let i = 0; i < handlers.length; i++) {
10379
+ if (e._stopped) break;
10380
+ const handler = handlers[i];
10381
+ if (handler) callWithAsyncErrorHandling(handler, instance, 5, args);
10382
+ }
10383
+ } else callWithAsyncErrorHandling(value, instance, 5, [e]);
10363
10384
  };
10364
10385
  invoker.value = initialValue;
10365
10386
  invoker.attached = getNow();
@@ -10370,16 +10391,6 @@ var Vue = (function() {
10370
10391
  warn(`Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`);
10371
10392
  return NOOP;
10372
10393
  }
10373
- function patchStopImmediatePropagation(e, value) {
10374
- if (isArray(value)) {
10375
- const originalStop = e.stopImmediatePropagation;
10376
- e.stopImmediatePropagation = () => {
10377
- originalStop.call(e);
10378
- e._stopped = true;
10379
- };
10380
- return value.map((fn) => (e) => !e._stopped && fn && fn(e));
10381
- } else return value;
10382
- }
10383
10394
  //#endregion
10384
10395
  //#region packages/runtime-dom/src/patchProp.ts
10385
10396
  const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
@@ -14401,10 +14412,9 @@ var Vue = (function() {
14401
14412
  const isTemplate = isTemplateNode(node);
14402
14413
  const memo = findDir(node, "memo");
14403
14414
  const keyProp = findProp(node, `key`, false, true);
14404
- const isDirKey = keyProp && keyProp.type === 7;
14415
+ keyProp && keyProp.type;
14405
14416
  let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
14406
- if (memo && keyExp && isDirKey) {}
14407
- const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
14417
+ const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;
14408
14418
  const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
14409
14419
  const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
14410
14420
  forNode.codegenNode = createVNodeCall(context, helper(FRAGMENT), void 0, renderExp, fragmentFlag, void 0, void 0, true, !isStableFragment, false, node.loc);