@vue/compat 3.5.12 → 3.5.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.5.12
2
+ * @vue/compat v3.5.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -141,10 +141,9 @@ function parseStringStyle(cssText) {
141
141
  return ret;
142
142
  }
143
143
  function stringifyStyle(styles) {
144
+ if (!styles) return "";
145
+ if (isString(styles)) return styles;
144
146
  let ret = "";
145
- if (!styles || isString(styles)) {
146
- return ret;
147
- }
148
147
  for (const key in styles) {
149
148
  const value = styles[key];
150
149
  if (isString(value) || typeof value === "number") {
@@ -405,17 +404,21 @@ class EffectScope {
405
404
  }
406
405
  stop(fromParent) {
407
406
  if (this._active) {
407
+ this._active = false;
408
408
  let i, l;
409
409
  for (i = 0, l = this.effects.length; i < l; i++) {
410
410
  this.effects[i].stop();
411
411
  }
412
+ this.effects.length = 0;
412
413
  for (i = 0, l = this.cleanups.length; i < l; i++) {
413
414
  this.cleanups[i]();
414
415
  }
416
+ this.cleanups.length = 0;
415
417
  if (this.scopes) {
416
418
  for (i = 0, l = this.scopes.length; i < l; i++) {
417
419
  this.scopes[i].stop(true);
418
420
  }
421
+ this.scopes.length = 0;
419
422
  }
420
423
  if (!this.detached && this.parent && !fromParent) {
421
424
  const last = this.parent.scopes.pop();
@@ -425,7 +428,6 @@ class EffectScope {
425
428
  }
426
429
  }
427
430
  this.parent = void 0;
428
- this._active = false;
429
431
  }
430
432
  }
431
433
  }
@@ -1195,6 +1197,7 @@ class BaseReactiveHandler {
1195
1197
  this._isShallow = _isShallow;
1196
1198
  }
1197
1199
  get(target, key, receiver) {
1200
+ if (key === "__v_skip") return target["__v_skip"];
1198
1201
  const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
1199
1202
  if (key === "__v_isReactive") {
1200
1203
  return !isReadonly2;
@@ -2037,7 +2040,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2037
2040
  const scope = getCurrentScope();
2038
2041
  const watchHandle = () => {
2039
2042
  effect.stop();
2040
- if (scope) {
2043
+ if (scope && scope.active) {
2041
2044
  remove(scope.effects, effect);
2042
2045
  }
2043
2046
  };
@@ -3533,11 +3536,32 @@ const TeleportImpl = {
3533
3536
  updateCssVars(n2, true);
3534
3537
  }
3535
3538
  if (isTeleportDeferred(n2.props)) {
3536
- queuePostRenderEffect(mountToTarget, parentSuspense);
3539
+ queuePostRenderEffect(() => {
3540
+ mountToTarget();
3541
+ n2.el.__isMounted = true;
3542
+ }, parentSuspense);
3537
3543
  } else {
3538
3544
  mountToTarget();
3539
3545
  }
3540
3546
  } else {
3547
+ if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3548
+ queuePostRenderEffect(() => {
3549
+ TeleportImpl.process(
3550
+ n1,
3551
+ n2,
3552
+ container,
3553
+ anchor,
3554
+ parentComponent,
3555
+ parentSuspense,
3556
+ namespace,
3557
+ slotScopeIds,
3558
+ optimized,
3559
+ internals
3560
+ );
3561
+ delete n1.el.__isMounted;
3562
+ }, parentSuspense);
3563
+ return;
3564
+ }
3541
3565
  n2.el = n1.el;
3542
3566
  n2.targetStart = n1.targetStart;
3543
3567
  const mainAnchor = n2.anchor = n1.anchor;
@@ -3843,10 +3867,9 @@ const BaseTransitionImpl = {
3843
3867
  if (innerChild.type !== Comment) {
3844
3868
  setTransitionHooks(innerChild, enterHooks);
3845
3869
  }
3846
- const oldChild = instance.subTree;
3847
- const oldInnerChild = oldChild && getInnerChild$1(oldChild);
3870
+ let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3848
3871
  if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
3849
- const leavingHooks = resolveTransitionHooks(
3872
+ let leavingHooks = resolveTransitionHooks(
3850
3873
  oldInnerChild,
3851
3874
  rawProps,
3852
3875
  state,
@@ -3861,6 +3884,7 @@ const BaseTransitionImpl = {
3861
3884
  instance.update();
3862
3885
  }
3863
3886
  delete leavingHooks.afterLeave;
3887
+ oldInnerChild = void 0;
3864
3888
  };
3865
3889
  return emptyPlaceholder(child);
3866
3890
  } else if (mode === "in-out" && innerChild.type !== Comment) {
@@ -3874,10 +3898,19 @@ const BaseTransitionImpl = {
3874
3898
  earlyRemove();
3875
3899
  el[leaveCbKey] = void 0;
3876
3900
  delete enterHooks.delayedLeave;
3901
+ oldInnerChild = void 0;
3902
+ };
3903
+ enterHooks.delayedLeave = () => {
3904
+ delayedLeave();
3905
+ delete enterHooks.delayedLeave;
3906
+ oldInnerChild = void 0;
3877
3907
  };
3878
- enterHooks.delayedLeave = delayedLeave;
3879
3908
  };
3909
+ } else {
3910
+ oldInnerChild = void 0;
3880
3911
  }
3912
+ } else if (oldInnerChild) {
3913
+ oldInnerChild = void 0;
3881
3914
  }
3882
3915
  return child;
3883
3916
  };
@@ -4186,6 +4219,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4186
4219
  return;
4187
4220
  }
4188
4221
  if (isAsyncWrapper(vnode) && !isUnmount) {
4222
+ if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {
4223
+ setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);
4224
+ }
4189
4225
  return;
4190
4226
  }
4191
4227
  const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;
@@ -4450,7 +4486,7 @@ function createHydrationFunctions(rendererInternals) {
4450
4486
  getContainerType(container),
4451
4487
  optimized
4452
4488
  );
4453
- if (isAsyncWrapper(vnode)) {
4489
+ if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
4454
4490
  let subTree;
4455
4491
  if (isFragmentStart) {
4456
4492
  subTree = createVNode(Fragment);
@@ -4730,6 +4766,10 @@ Server rendered element contains fewer child nodes than client vdom.`
4730
4766
  getContainerType(container),
4731
4767
  slotScopeIds
4732
4768
  );
4769
+ if (parentComponent) {
4770
+ parentComponent.vnode.el = vnode.el;
4771
+ updateHOCHostEl(parentComponent, vnode.el);
4772
+ }
4733
4773
  return next;
4734
4774
  };
4735
4775
  const locateClosingAnchor = (node, open = "[", close = "]") => {
@@ -7087,7 +7127,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7087
7127
  return vm;
7088
7128
  }
7089
7129
  }
7090
- Vue.version = `2.6.14-compat:${"3.5.12"}`;
7130
+ Vue.version = `2.6.14-compat:${"3.5.13"}`;
7091
7131
  Vue.config = singletonApp.config;
7092
7132
  Vue.use = (plugin, ...options) => {
7093
7133
  if (plugin && isFunction(plugin.install)) {
@@ -10342,7 +10382,7 @@ function renderComponentRoot(instance) {
10342
10382
  }
10343
10383
  if (extraAttrs.length) {
10344
10384
  warn$1(
10345
- `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
10385
+ `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`
10346
10386
  );
10347
10387
  }
10348
10388
  if (eventAttrs.length) {
@@ -11203,9 +11243,9 @@ function closeBlock() {
11203
11243
  currentBlock = blockStack[blockStack.length - 1] || null;
11204
11244
  }
11205
11245
  let isBlockTreeEnabled = 1;
11206
- function setBlockTracking(value) {
11246
+ function setBlockTracking(value, inVOnce = false) {
11207
11247
  isBlockTreeEnabled += value;
11208
- if (value < 0 && currentBlock) {
11248
+ if (value < 0 && currentBlock && inVOnce) {
11209
11249
  currentBlock.hasOnce = true;
11210
11250
  }
11211
11251
  }
@@ -11850,7 +11890,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
11850
11890
  }
11851
11891
  if (!instance.render) {
11852
11892
  if (!isSSR && compile && !Component.render) {
11853
- const template = instance.vnode.props && instance.vnode.props["inline-template"] || Component.template || resolveMergedOptions(instance).template;
11893
+ const template = instance.vnode.props && instance.vnode.props["inline-template"] || Component.template || __VUE_OPTIONS_API__ && resolveMergedOptions(instance).template;
11854
11894
  if (template) {
11855
11895
  if (!!(process.env.NODE_ENV !== "production")) {
11856
11896
  startMeasure(instance, `compile`);
@@ -12265,7 +12305,7 @@ function isMemoSame(cached, memo) {
12265
12305
  return true;
12266
12306
  }
12267
12307
 
12268
- const version = "3.5.12";
12308
+ const version = "3.5.13";
12269
12309
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12270
12310
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12271
12311
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -12475,7 +12515,8 @@ function resolveTransitionProps(rawProps) {
12475
12515
  onAppear = onEnter,
12476
12516
  onAppearCancelled = onEnterCancelled
12477
12517
  } = baseProps;
12478
- const finishEnter = (el, isAppear, done) => {
12518
+ const finishEnter = (el, isAppear, done, isCancelled) => {
12519
+ el._enterCancelled = isCancelled;
12479
12520
  removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
12480
12521
  removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
12481
12522
  done && done();
@@ -12533,8 +12574,13 @@ function resolveTransitionProps(rawProps) {
12533
12574
  if (legacyClassEnabled && legacyLeaveFromClass) {
12534
12575
  addTransitionClass(el, legacyLeaveFromClass);
12535
12576
  }
12536
- addTransitionClass(el, leaveActiveClass);
12537
- forceReflow();
12577
+ if (!el._enterCancelled) {
12578
+ forceReflow();
12579
+ addTransitionClass(el, leaveActiveClass);
12580
+ } else {
12581
+ addTransitionClass(el, leaveActiveClass);
12582
+ forceReflow();
12583
+ }
12538
12584
  nextFrame(() => {
12539
12585
  if (!el._isLeaving) {
12540
12586
  return;
@@ -12551,11 +12597,11 @@ function resolveTransitionProps(rawProps) {
12551
12597
  callHook(onLeave, [el, resolve]);
12552
12598
  },
12553
12599
  onEnterCancelled(el) {
12554
- finishEnter(el, false);
12600
+ finishEnter(el, false, void 0, true);
12555
12601
  callHook(onEnterCancelled, [el]);
12556
12602
  },
12557
12603
  onAppearCancelled(el) {
12558
- finishEnter(el, true);
12604
+ finishEnter(el, true, void 0, true);
12559
12605
  callHook(onAppearCancelled, [el]);
12560
12606
  },
12561
12607
  onLeaveCancelled(el) {
@@ -12775,10 +12821,11 @@ function useCssVars(getter) {
12775
12821
  }
12776
12822
  updateTeleports(vars);
12777
12823
  };
12778
- onBeforeMount(() => {
12779
- watchPostEffect(setVars);
12824
+ onBeforeUpdate(() => {
12825
+ queuePostFlushCb(setVars);
12780
12826
  });
12781
12827
  onMounted(() => {
12828
+ watch(setVars, NOOP, { flush: "post" });
12782
12829
  const ob = new MutationObserver(setVars);
12783
12830
  ob.observe(instance.subTree.el.parentNode, { childList: true });
12784
12831
  onUnmounted(() => ob.disconnect());
@@ -13429,6 +13476,8 @@ class VueElement extends BaseClass {
13429
13476
  this._update();
13430
13477
  }
13431
13478
  if (shouldReflect) {
13479
+ const ob = this._ob;
13480
+ ob && ob.disconnect();
13432
13481
  if (val === true) {
13433
13482
  this.setAttribute(hyphenate(key), "");
13434
13483
  } else if (typeof val === "string" || typeof val === "number") {
@@ -13436,6 +13485,7 @@ class VueElement extends BaseClass {
13436
13485
  } else if (!val) {
13437
13486
  this.removeAttribute(hyphenate(key));
13438
13487
  }
13488
+ ob && ob.observe(this, { attributes: true });
13439
13489
  }
13440
13490
  }
13441
13491
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.12
2
+ * @vue/compat v3.5.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -144,10 +144,9 @@ var Vue = (function () {
144
144
  return ret;
145
145
  }
146
146
  function stringifyStyle(styles) {
147
+ if (!styles) return "";
148
+ if (isString(styles)) return styles;
147
149
  let ret = "";
148
- if (!styles || isString(styles)) {
149
- return ret;
150
- }
151
150
  for (const key in styles) {
152
151
  const value = styles[key];
153
152
  if (isString(value) || typeof value === "number") {
@@ -408,17 +407,21 @@ var Vue = (function () {
408
407
  }
409
408
  stop(fromParent) {
410
409
  if (this._active) {
410
+ this._active = false;
411
411
  let i, l;
412
412
  for (i = 0, l = this.effects.length; i < l; i++) {
413
413
  this.effects[i].stop();
414
414
  }
415
+ this.effects.length = 0;
415
416
  for (i = 0, l = this.cleanups.length; i < l; i++) {
416
417
  this.cleanups[i]();
417
418
  }
419
+ this.cleanups.length = 0;
418
420
  if (this.scopes) {
419
421
  for (i = 0, l = this.scopes.length; i < l; i++) {
420
422
  this.scopes[i].stop(true);
421
423
  }
424
+ this.scopes.length = 0;
422
425
  }
423
426
  if (!this.detached && this.parent && !fromParent) {
424
427
  const last = this.parent.scopes.pop();
@@ -428,7 +431,6 @@ var Vue = (function () {
428
431
  }
429
432
  }
430
433
  this.parent = void 0;
431
- this._active = false;
432
434
  }
433
435
  }
434
436
  }
@@ -1194,6 +1196,7 @@ var Vue = (function () {
1194
1196
  this._isShallow = _isShallow;
1195
1197
  }
1196
1198
  get(target, key, receiver) {
1199
+ if (key === "__v_skip") return target["__v_skip"];
1197
1200
  const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
1198
1201
  if (key === "__v_isReactive") {
1199
1202
  return !isReadonly2;
@@ -2030,7 +2033,7 @@ var Vue = (function () {
2030
2033
  const scope = getCurrentScope();
2031
2034
  const watchHandle = () => {
2032
2035
  effect.stop();
2033
- if (scope) {
2036
+ if (scope && scope.active) {
2034
2037
  remove(scope.effects, effect);
2035
2038
  }
2036
2039
  };
@@ -3518,11 +3521,32 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3518
3521
  updateCssVars(n2, true);
3519
3522
  }
3520
3523
  if (isTeleportDeferred(n2.props)) {
3521
- queuePostRenderEffect(mountToTarget, parentSuspense);
3524
+ queuePostRenderEffect(() => {
3525
+ mountToTarget();
3526
+ n2.el.__isMounted = true;
3527
+ }, parentSuspense);
3522
3528
  } else {
3523
3529
  mountToTarget();
3524
3530
  }
3525
3531
  } else {
3532
+ if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3533
+ queuePostRenderEffect(() => {
3534
+ TeleportImpl.process(
3535
+ n1,
3536
+ n2,
3537
+ container,
3538
+ anchor,
3539
+ parentComponent,
3540
+ parentSuspense,
3541
+ namespace,
3542
+ slotScopeIds,
3543
+ optimized,
3544
+ internals
3545
+ );
3546
+ delete n1.el.__isMounted;
3547
+ }, parentSuspense);
3548
+ return;
3549
+ }
3526
3550
  n2.el = n1.el;
3527
3551
  n2.targetStart = n1.targetStart;
3528
3552
  const mainAnchor = n2.anchor = n1.anchor;
@@ -3828,10 +3852,9 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3828
3852
  if (innerChild.type !== Comment) {
3829
3853
  setTransitionHooks(innerChild, enterHooks);
3830
3854
  }
3831
- const oldChild = instance.subTree;
3832
- const oldInnerChild = oldChild && getInnerChild$1(oldChild);
3855
+ let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3833
3856
  if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
3834
- const leavingHooks = resolveTransitionHooks(
3857
+ let leavingHooks = resolveTransitionHooks(
3835
3858
  oldInnerChild,
3836
3859
  rawProps,
3837
3860
  state,
@@ -3846,6 +3869,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3846
3869
  instance.update();
3847
3870
  }
3848
3871
  delete leavingHooks.afterLeave;
3872
+ oldInnerChild = void 0;
3849
3873
  };
3850
3874
  return emptyPlaceholder(child);
3851
3875
  } else if (mode === "in-out" && innerChild.type !== Comment) {
@@ -3859,10 +3883,19 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3859
3883
  earlyRemove();
3860
3884
  el[leaveCbKey] = void 0;
3861
3885
  delete enterHooks.delayedLeave;
3886
+ oldInnerChild = void 0;
3887
+ };
3888
+ enterHooks.delayedLeave = () => {
3889
+ delayedLeave();
3890
+ delete enterHooks.delayedLeave;
3891
+ oldInnerChild = void 0;
3862
3892
  };
3863
- enterHooks.delayedLeave = delayedLeave;
3864
3893
  };
3894
+ } else {
3895
+ oldInnerChild = void 0;
3865
3896
  }
3897
+ } else if (oldInnerChild) {
3898
+ oldInnerChild = void 0;
3866
3899
  }
3867
3900
  return child;
3868
3901
  };
@@ -4170,6 +4203,9 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4170
4203
  return;
4171
4204
  }
4172
4205
  if (isAsyncWrapper(vnode) && !isUnmount) {
4206
+ if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {
4207
+ setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);
4208
+ }
4173
4209
  return;
4174
4210
  }
4175
4211
  const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;
@@ -4434,7 +4470,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4434
4470
  getContainerType(container),
4435
4471
  optimized
4436
4472
  );
4437
- if (isAsyncWrapper(vnode)) {
4473
+ if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
4438
4474
  let subTree;
4439
4475
  if (isFragmentStart) {
4440
4476
  subTree = createVNode(Fragment);
@@ -4703,6 +4739,10 @@ Server rendered element contains fewer child nodes than client vdom.`
4703
4739
  getContainerType(container),
4704
4740
  slotScopeIds
4705
4741
  );
4742
+ if (parentComponent) {
4743
+ parentComponent.vnode.el = vnode.el;
4744
+ updateHOCHostEl(parentComponent, vnode.el);
4745
+ }
4706
4746
  return next;
4707
4747
  };
4708
4748
  const locateClosingAnchor = (node, open = "[", close = "]") => {
@@ -7049,7 +7089,7 @@ If this is a native custom element, make sure to exclude it from component resol
7049
7089
  return vm;
7050
7090
  }
7051
7091
  }
7052
- Vue.version = `2.6.14-compat:${"3.5.12"}`;
7092
+ Vue.version = `2.6.14-compat:${"3.5.13"}`;
7053
7093
  Vue.config = singletonApp.config;
7054
7094
  Vue.use = (plugin, ...options) => {
7055
7095
  if (plugin && isFunction(plugin.install)) {
@@ -10236,7 +10276,7 @@ If you want to remount the same app, move your app creation logic into a factory
10236
10276
  }
10237
10277
  if (extraAttrs.length) {
10238
10278
  warn$1(
10239
- `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
10279
+ `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`
10240
10280
  );
10241
10281
  }
10242
10282
  if (eventAttrs.length) {
@@ -11097,9 +11137,9 @@ If you want to remount the same app, move your app creation logic into a factory
11097
11137
  currentBlock = blockStack[blockStack.length - 1] || null;
11098
11138
  }
11099
11139
  let isBlockTreeEnabled = 1;
11100
- function setBlockTracking(value) {
11140
+ function setBlockTracking(value, inVOnce = false) {
11101
11141
  isBlockTreeEnabled += value;
11102
- if (value < 0 && currentBlock) {
11142
+ if (value < 0 && currentBlock && inVOnce) {
11103
11143
  currentBlock.hasOnce = true;
11104
11144
  }
11105
11145
  }
@@ -12131,7 +12171,7 @@ Component that was made reactive: `,
12131
12171
  return true;
12132
12172
  }
12133
12173
 
12134
- const version = "3.5.12";
12174
+ const version = "3.5.13";
12135
12175
  const warn = warn$1 ;
12136
12176
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12137
12177
  const devtools = devtools$1 ;
@@ -12329,7 +12369,8 @@ Component that was made reactive: `,
12329
12369
  onAppear = onEnter,
12330
12370
  onAppearCancelled = onEnterCancelled
12331
12371
  } = baseProps;
12332
- const finishEnter = (el, isAppear, done) => {
12372
+ const finishEnter = (el, isAppear, done, isCancelled) => {
12373
+ el._enterCancelled = isCancelled;
12333
12374
  removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
12334
12375
  removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
12335
12376
  done && done();
@@ -12387,8 +12428,13 @@ Component that was made reactive: `,
12387
12428
  if (legacyClassEnabled && legacyLeaveFromClass) {
12388
12429
  addTransitionClass(el, legacyLeaveFromClass);
12389
12430
  }
12390
- addTransitionClass(el, leaveActiveClass);
12391
- forceReflow();
12431
+ if (!el._enterCancelled) {
12432
+ forceReflow();
12433
+ addTransitionClass(el, leaveActiveClass);
12434
+ } else {
12435
+ addTransitionClass(el, leaveActiveClass);
12436
+ forceReflow();
12437
+ }
12392
12438
  nextFrame(() => {
12393
12439
  if (!el._isLeaving) {
12394
12440
  return;
@@ -12405,11 +12451,11 @@ Component that was made reactive: `,
12405
12451
  callHook(onLeave, [el, resolve]);
12406
12452
  },
12407
12453
  onEnterCancelled(el) {
12408
- finishEnter(el, false);
12454
+ finishEnter(el, false, void 0, true);
12409
12455
  callHook(onEnterCancelled, [el]);
12410
12456
  },
12411
12457
  onAppearCancelled(el) {
12412
- finishEnter(el, true);
12458
+ finishEnter(el, true, void 0, true);
12413
12459
  callHook(onAppearCancelled, [el]);
12414
12460
  },
12415
12461
  onLeaveCancelled(el) {
@@ -12622,10 +12668,11 @@ Component that was made reactive: `,
12622
12668
  }
12623
12669
  updateTeleports(vars);
12624
12670
  };
12625
- onBeforeMount(() => {
12626
- watchPostEffect(setVars);
12671
+ onBeforeUpdate(() => {
12672
+ queuePostFlushCb(setVars);
12627
12673
  });
12628
12674
  onMounted(() => {
12675
+ watch(setVars, NOOP, { flush: "post" });
12629
12676
  const ob = new MutationObserver(setVars);
12630
12677
  ob.observe(instance.subTree.el.parentNode, { childList: true });
12631
12678
  onUnmounted(() => ob.disconnect());
@@ -13276,6 +13323,8 @@ Expected function or array of functions, received type ${typeof value}.`
13276
13323
  this._update();
13277
13324
  }
13278
13325
  if (shouldReflect) {
13326
+ const ob = this._ob;
13327
+ ob && ob.disconnect();
13279
13328
  if (val === true) {
13280
13329
  this.setAttribute(hyphenate(key), "");
13281
13330
  } else if (typeof val === "string" || typeof val === "number") {
@@ -13283,6 +13332,7 @@ Expected function or array of functions, received type ${typeof value}.`
13283
13332
  } else if (!val) {
13284
13333
  this.removeAttribute(hyphenate(key));
13285
13334
  }
13335
+ ob && ob.observe(this, { attributes: true });
13286
13336
  }
13287
13337
  }
13288
13338
  }