@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
  **/
@@ -215,10 +215,9 @@ var Vue = (function () {
215
215
  return ret;
216
216
  }
217
217
  function stringifyStyle(styles) {
218
+ if (!styles) return "";
219
+ if (isString(styles)) return styles;
218
220
  let ret = "";
219
- if (!styles || isString(styles)) {
220
- return ret;
221
- }
222
221
  for (const key in styles) {
223
222
  const value = styles[key];
224
223
  if (isString(value) || typeof value === "number") {
@@ -481,17 +480,21 @@ var Vue = (function () {
481
480
  }
482
481
  stop(fromParent) {
483
482
  if (this._active) {
483
+ this._active = false;
484
484
  let i, l;
485
485
  for (i = 0, l = this.effects.length; i < l; i++) {
486
486
  this.effects[i].stop();
487
487
  }
488
+ this.effects.length = 0;
488
489
  for (i = 0, l = this.cleanups.length; i < l; i++) {
489
490
  this.cleanups[i]();
490
491
  }
492
+ this.cleanups.length = 0;
491
493
  if (this.scopes) {
492
494
  for (i = 0, l = this.scopes.length; i < l; i++) {
493
495
  this.scopes[i].stop(true);
494
496
  }
497
+ this.scopes.length = 0;
495
498
  }
496
499
  if (!this.detached && this.parent && !fromParent) {
497
500
  const last = this.parent.scopes.pop();
@@ -501,7 +504,6 @@ var Vue = (function () {
501
504
  }
502
505
  }
503
506
  this.parent = void 0;
504
- this._active = false;
505
507
  }
506
508
  }
507
509
  }
@@ -1267,6 +1269,7 @@ var Vue = (function () {
1267
1269
  this._isShallow = _isShallow;
1268
1270
  }
1269
1271
  get(target, key, receiver) {
1272
+ if (key === "__v_skip") return target["__v_skip"];
1270
1273
  const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
1271
1274
  if (key === "__v_isReactive") {
1272
1275
  return !isReadonly2;
@@ -2103,7 +2106,7 @@ var Vue = (function () {
2103
2106
  const scope = getCurrentScope();
2104
2107
  const watchHandle = () => {
2105
2108
  effect.stop();
2106
- if (scope) {
2109
+ if (scope && scope.active) {
2107
2110
  remove(scope.effects, effect);
2108
2111
  }
2109
2112
  };
@@ -3591,11 +3594,32 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3591
3594
  updateCssVars(n2, true);
3592
3595
  }
3593
3596
  if (isTeleportDeferred(n2.props)) {
3594
- queuePostRenderEffect(mountToTarget, parentSuspense);
3597
+ queuePostRenderEffect(() => {
3598
+ mountToTarget();
3599
+ n2.el.__isMounted = true;
3600
+ }, parentSuspense);
3595
3601
  } else {
3596
3602
  mountToTarget();
3597
3603
  }
3598
3604
  } else {
3605
+ if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {
3606
+ queuePostRenderEffect(() => {
3607
+ TeleportImpl.process(
3608
+ n1,
3609
+ n2,
3610
+ container,
3611
+ anchor,
3612
+ parentComponent,
3613
+ parentSuspense,
3614
+ namespace,
3615
+ slotScopeIds,
3616
+ optimized,
3617
+ internals
3618
+ );
3619
+ delete n1.el.__isMounted;
3620
+ }, parentSuspense);
3621
+ return;
3622
+ }
3599
3623
  n2.el = n1.el;
3600
3624
  n2.targetStart = n1.targetStart;
3601
3625
  const mainAnchor = n2.anchor = n1.anchor;
@@ -3901,10 +3925,9 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3901
3925
  if (innerChild.type !== Comment) {
3902
3926
  setTransitionHooks(innerChild, enterHooks);
3903
3927
  }
3904
- const oldChild = instance.subTree;
3905
- const oldInnerChild = oldChild && getInnerChild$1(oldChild);
3928
+ let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3906
3929
  if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
3907
- const leavingHooks = resolveTransitionHooks(
3930
+ let leavingHooks = resolveTransitionHooks(
3908
3931
  oldInnerChild,
3909
3932
  rawProps,
3910
3933
  state,
@@ -3919,6 +3942,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3919
3942
  instance.update();
3920
3943
  }
3921
3944
  delete leavingHooks.afterLeave;
3945
+ oldInnerChild = void 0;
3922
3946
  };
3923
3947
  return emptyPlaceholder(child);
3924
3948
  } else if (mode === "in-out" && innerChild.type !== Comment) {
@@ -3932,10 +3956,19 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3932
3956
  earlyRemove();
3933
3957
  el[leaveCbKey] = void 0;
3934
3958
  delete enterHooks.delayedLeave;
3959
+ oldInnerChild = void 0;
3960
+ };
3961
+ enterHooks.delayedLeave = () => {
3962
+ delayedLeave();
3963
+ delete enterHooks.delayedLeave;
3964
+ oldInnerChild = void 0;
3935
3965
  };
3936
- enterHooks.delayedLeave = delayedLeave;
3937
3966
  };
3967
+ } else {
3968
+ oldInnerChild = void 0;
3938
3969
  }
3970
+ } else if (oldInnerChild) {
3971
+ oldInnerChild = void 0;
3939
3972
  }
3940
3973
  return child;
3941
3974
  };
@@ -4243,6 +4276,9 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4243
4276
  return;
4244
4277
  }
4245
4278
  if (isAsyncWrapper(vnode) && !isUnmount) {
4279
+ if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {
4280
+ setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);
4281
+ }
4246
4282
  return;
4247
4283
  }
4248
4284
  const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;
@@ -4507,7 +4543,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4507
4543
  getContainerType(container),
4508
4544
  optimized
4509
4545
  );
4510
- if (isAsyncWrapper(vnode)) {
4546
+ if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
4511
4547
  let subTree;
4512
4548
  if (isFragmentStart) {
4513
4549
  subTree = createVNode(Fragment);
@@ -4776,6 +4812,10 @@ Server rendered element contains fewer child nodes than client vdom.`
4776
4812
  getContainerType(container),
4777
4813
  slotScopeIds
4778
4814
  );
4815
+ if (parentComponent) {
4816
+ parentComponent.vnode.el = vnode.el;
4817
+ updateHOCHostEl(parentComponent, vnode.el);
4818
+ }
4779
4819
  return next;
4780
4820
  };
4781
4821
  const locateClosingAnchor = (node, open = "[", close = "]") => {
@@ -7122,7 +7162,7 @@ If this is a native custom element, make sure to exclude it from component resol
7122
7162
  return vm;
7123
7163
  }
7124
7164
  }
7125
- Vue.version = `2.6.14-compat:${"3.5.12"}`;
7165
+ Vue.version = `2.6.14-compat:${"3.5.13"}`;
7126
7166
  Vue.config = singletonApp.config;
7127
7167
  Vue.use = (plugin, ...options) => {
7128
7168
  if (plugin && isFunction(plugin.install)) {
@@ -10309,7 +10349,7 @@ If you want to remount the same app, move your app creation logic into a factory
10309
10349
  }
10310
10350
  if (extraAttrs.length) {
10311
10351
  warn$1(
10312
- `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
10352
+ `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.`
10313
10353
  );
10314
10354
  }
10315
10355
  if (eventAttrs.length) {
@@ -11170,9 +11210,9 @@ If you want to remount the same app, move your app creation logic into a factory
11170
11210
  currentBlock = blockStack[blockStack.length - 1] || null;
11171
11211
  }
11172
11212
  let isBlockTreeEnabled = 1;
11173
- function setBlockTracking(value) {
11213
+ function setBlockTracking(value, inVOnce = false) {
11174
11214
  isBlockTreeEnabled += value;
11175
- if (value < 0 && currentBlock) {
11215
+ if (value < 0 && currentBlock && inVOnce) {
11176
11216
  currentBlock.hasOnce = true;
11177
11217
  }
11178
11218
  }
@@ -12204,7 +12244,7 @@ Component that was made reactive: `,
12204
12244
  return true;
12205
12245
  }
12206
12246
 
12207
- const version = "3.5.12";
12247
+ const version = "3.5.13";
12208
12248
  const warn = warn$1 ;
12209
12249
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12210
12250
  const devtools = devtools$1 ;
@@ -12402,7 +12442,8 @@ Component that was made reactive: `,
12402
12442
  onAppear = onEnter,
12403
12443
  onAppearCancelled = onEnterCancelled
12404
12444
  } = baseProps;
12405
- const finishEnter = (el, isAppear, done) => {
12445
+ const finishEnter = (el, isAppear, done, isCancelled) => {
12446
+ el._enterCancelled = isCancelled;
12406
12447
  removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
12407
12448
  removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
12408
12449
  done && done();
@@ -12460,8 +12501,13 @@ Component that was made reactive: `,
12460
12501
  if (legacyClassEnabled && legacyLeaveFromClass) {
12461
12502
  addTransitionClass(el, legacyLeaveFromClass);
12462
12503
  }
12463
- addTransitionClass(el, leaveActiveClass);
12464
- forceReflow();
12504
+ if (!el._enterCancelled) {
12505
+ forceReflow();
12506
+ addTransitionClass(el, leaveActiveClass);
12507
+ } else {
12508
+ addTransitionClass(el, leaveActiveClass);
12509
+ forceReflow();
12510
+ }
12465
12511
  nextFrame(() => {
12466
12512
  if (!el._isLeaving) {
12467
12513
  return;
@@ -12478,11 +12524,11 @@ Component that was made reactive: `,
12478
12524
  callHook(onLeave, [el, resolve]);
12479
12525
  },
12480
12526
  onEnterCancelled(el) {
12481
- finishEnter(el, false);
12527
+ finishEnter(el, false, void 0, true);
12482
12528
  callHook(onEnterCancelled, [el]);
12483
12529
  },
12484
12530
  onAppearCancelled(el) {
12485
- finishEnter(el, true);
12531
+ finishEnter(el, true, void 0, true);
12486
12532
  callHook(onAppearCancelled, [el]);
12487
12533
  },
12488
12534
  onLeaveCancelled(el) {
@@ -12695,10 +12741,11 @@ Component that was made reactive: `,
12695
12741
  }
12696
12742
  updateTeleports(vars);
12697
12743
  };
12698
- onBeforeMount(() => {
12699
- watchPostEffect(setVars);
12744
+ onBeforeUpdate(() => {
12745
+ queuePostFlushCb(setVars);
12700
12746
  });
12701
12747
  onMounted(() => {
12748
+ watch(setVars, NOOP, { flush: "post" });
12702
12749
  const ob = new MutationObserver(setVars);
12703
12750
  ob.observe(instance.subTree.el.parentNode, { childList: true });
12704
12751
  onUnmounted(() => ob.disconnect());
@@ -13349,6 +13396,8 @@ Expected function or array of functions, received type ${typeof value}.`
13349
13396
  this._update();
13350
13397
  }
13351
13398
  if (shouldReflect) {
13399
+ const ob = this._ob;
13400
+ ob && ob.disconnect();
13352
13401
  if (val === true) {
13353
13402
  this.setAttribute(hyphenate(key), "");
13354
13403
  } else if (typeof val === "string" || typeof val === "number") {
@@ -13356,6 +13405,7 @@ Expected function or array of functions, received type ${typeof value}.`
13356
13405
  } else if (!val) {
13357
13406
  this.removeAttribute(hyphenate(key));
13358
13407
  }
13408
+ ob && ob.observe(this, { attributes: true });
13359
13409
  }
13360
13410
  }
13361
13411
  }
@@ -14578,12 +14628,13 @@ Make sure to use the production build (*.prod.js) when deploying for production.
14578
14628
  loc: locStub
14579
14629
  };
14580
14630
  }
14581
- function createCacheExpression(index, value, needPauseTracking = false) {
14631
+ function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) {
14582
14632
  return {
14583
14633
  type: 20,
14584
14634
  index,
14585
14635
  value,
14586
14636
  needPauseTracking,
14637
+ inVOnce,
14587
14638
  needArraySpread: false,
14588
14639
  loc: locStub
14589
14640
  };
@@ -16967,11 +17018,12 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
16967
17018
  identifier.hoisted = exp;
16968
17019
  return identifier;
16969
17020
  },
16970
- cache(exp, isVNode = false) {
17021
+ cache(exp, isVNode = false, inVOnce = false) {
16971
17022
  const cacheExp = createCacheExpression(
16972
17023
  context.cached.length,
16973
17024
  exp,
16974
- isVNode
17025
+ isVNode,
17026
+ inVOnce
16975
17027
  );
16976
17028
  context.cached.push(cacheExp);
16977
17029
  return cacheExp;
@@ -17684,7 +17736,9 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17684
17736
  push(`_cache[${node.index}] || (`);
17685
17737
  if (needPauseTracking) {
17686
17738
  indent();
17687
- push(`${helper(SET_BLOCK_TRACKING)}(-1),`);
17739
+ push(`${helper(SET_BLOCK_TRACKING)}(-1`);
17740
+ if (node.inVOnce) push(`, true`);
17741
+ push(`),`);
17688
17742
  newline();
17689
17743
  push(`(`);
17690
17744
  }
@@ -17741,12 +17795,14 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17741
17795
  context
17742
17796
  );
17743
17797
  } else if (node.type === 1) {
17798
+ const memo = findDir(node, "memo");
17744
17799
  for (let i = 0; i < node.props.length; i++) {
17745
17800
  const dir = node.props[i];
17746
17801
  if (dir.type === 7 && dir.name !== "for") {
17747
17802
  const exp = dir.exp;
17748
17803
  const arg = dir.arg;
17749
- if (exp && exp.type === 4 && !(dir.name === "on" && arg)) {
17804
+ if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor)
17805
+ !(memo && arg && arg.type === 4 && arg.content === "key")) {
17750
17806
  dir.exp = processExpression(
17751
17807
  exp,
17752
17808
  context,
@@ -18074,10 +18130,11 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
18074
18130
  const isTemplate = isTemplateNode(node);
18075
18131
  const memo = findDir(node, "memo");
18076
18132
  const keyProp = findProp(node, `key`, false, true);
18077
- if (keyProp && keyProp.type === 7 && !keyProp.exp) {
18133
+ const isDirKey = keyProp && keyProp.type === 7;
18134
+ if (isDirKey && !keyProp.exp) {
18078
18135
  transformBindShorthand(keyProp);
18079
18136
  }
18080
- const keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
18137
+ let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
18081
18138
  const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
18082
18139
  const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
18083
18140
  const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
@@ -19316,8 +19373,8 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
19316
19373
  if (cur.codegenNode) {
19317
19374
  cur.codegenNode = context.cache(
19318
19375
  cur.codegenNode,
19376
+ true,
19319
19377
  true
19320
- /* isVNode */
19321
19378
  );
19322
19379
  }
19323
19380
  };