@vue/compat 3.5.27 → 3.5.28

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.27
2
+ * @vue/compat v3.5.28
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -407,6 +407,7 @@ function warn$2(msg, ...args) {
407
407
 
408
408
  let activeEffectScope;
409
409
  class EffectScope {
410
+ // TODO isolatedDeclarations "__v_skip"
410
411
  constructor(detached = false) {
411
412
  this.detached = detached;
412
413
  /**
@@ -426,6 +427,7 @@ class EffectScope {
426
427
  */
427
428
  this.cleanups = [];
428
429
  this._isPaused = false;
430
+ this.__v_skip = true;
429
431
  this.parent = activeEffectScope;
430
432
  if (!detached && activeEffectScope) {
431
433
  this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
@@ -3979,7 +3981,22 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
3979
3981
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
3980
3982
  o: { nextSibling, parentNode, querySelector, insert, createText }
3981
3983
  }, hydrateChildren) {
3982
- function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
3984
+ function hydrateAnchor(target2, targetNode) {
3985
+ let targetAnchor = targetNode;
3986
+ while (targetAnchor) {
3987
+ if (targetAnchor && targetAnchor.nodeType === 8) {
3988
+ if (targetAnchor.data === "teleport start anchor") {
3989
+ vnode.targetStart = targetAnchor;
3990
+ } else if (targetAnchor.data === "teleport anchor") {
3991
+ vnode.targetAnchor = targetAnchor;
3992
+ target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
3993
+ break;
3994
+ }
3995
+ }
3996
+ targetAnchor = nextSibling(targetAnchor);
3997
+ }
3998
+ }
3999
+ function hydrateDisabledTeleport(node2, vnode2) {
3983
4000
  vnode2.anchor = hydrateChildren(
3984
4001
  nextSibling(node2),
3985
4002
  vnode2,
@@ -3989,8 +4006,6 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3989
4006
  slotScopeIds,
3990
4007
  optimized
3991
4008
  );
3992
- vnode2.targetStart = targetStart;
3993
- vnode2.targetAnchor = targetAnchor;
3994
4009
  }
3995
4010
  const target = vnode.target = resolveTarget(
3996
4011
  vnode.props,
@@ -4001,27 +4016,22 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
4001
4016
  const targetNode = target._lpa || target.firstChild;
4002
4017
  if (vnode.shapeFlag & 16) {
4003
4018
  if (disabled) {
4004
- hydrateDisabledTeleport(
4005
- node,
4006
- vnode,
4007
- targetNode,
4008
- targetNode && nextSibling(targetNode)
4009
- );
4019
+ hydrateDisabledTeleport(node, vnode);
4020
+ hydrateAnchor(target, targetNode);
4021
+ if (!vnode.targetAnchor) {
4022
+ prepareAnchor(
4023
+ target,
4024
+ vnode,
4025
+ createText,
4026
+ insert,
4027
+ // if target is the same as the main view, insert anchors before current node
4028
+ // to avoid hydrating mismatch
4029
+ parentNode(node) === target ? node : null
4030
+ );
4031
+ }
4010
4032
  } else {
4011
4033
  vnode.anchor = nextSibling(node);
4012
- let targetAnchor = targetNode;
4013
- while (targetAnchor) {
4014
- if (targetAnchor && targetAnchor.nodeType === 8) {
4015
- if (targetAnchor.data === "teleport start anchor") {
4016
- vnode.targetStart = targetAnchor;
4017
- } else if (targetAnchor.data === "teleport anchor") {
4018
- vnode.targetAnchor = targetAnchor;
4019
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
4020
- break;
4021
- }
4022
- }
4023
- targetAnchor = nextSibling(targetAnchor);
4024
- }
4034
+ hydrateAnchor(target, targetNode);
4025
4035
  if (!vnode.targetAnchor) {
4026
4036
  prepareAnchor(target, vnode, createText, insert);
4027
4037
  }
@@ -4039,7 +4049,9 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
4039
4049
  updateCssVars(vnode, disabled);
4040
4050
  } else if (disabled) {
4041
4051
  if (vnode.shapeFlag & 16) {
4042
- hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
4052
+ hydrateDisabledTeleport(node, vnode);
4053
+ vnode.targetStart = node;
4054
+ vnode.targetAnchor = nextSibling(node);
4043
4055
  }
4044
4056
  }
4045
4057
  return vnode.anchor && nextSibling(vnode.anchor);
@@ -4063,13 +4075,13 @@ function updateCssVars(vnode, isDisabled) {
4063
4075
  ctx.ut();
4064
4076
  }
4065
4077
  }
4066
- function prepareAnchor(target, vnode, createText, insert) {
4078
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
4067
4079
  const targetStart = vnode.targetStart = createText("");
4068
4080
  const targetAnchor = vnode.targetAnchor = createText("");
4069
4081
  targetStart[TeleportEndKey] = targetAnchor;
4070
4082
  if (target) {
4071
- insert(targetStart, target);
4072
- insert(targetAnchor, target);
4083
+ insert(targetStart, target, anchor);
4084
+ insert(targetAnchor, target, anchor);
4073
4085
  }
4074
4086
  return targetAnchor;
4075
4087
  }
@@ -4307,7 +4319,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4307
4319
  }
4308
4320
  }
4309
4321
  let called = false;
4310
- const done = el[enterCbKey$1] = (cancelled) => {
4322
+ el[enterCbKey$1] = (cancelled) => {
4311
4323
  if (called) return;
4312
4324
  called = true;
4313
4325
  if (cancelled) {
@@ -4320,6 +4332,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4320
4332
  }
4321
4333
  el[enterCbKey$1] = void 0;
4322
4334
  };
4335
+ const done = el[enterCbKey$1].bind(null, false);
4323
4336
  if (hook) {
4324
4337
  callAsyncHook(hook, [el, done]);
4325
4338
  } else {
@@ -4339,7 +4352,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4339
4352
  }
4340
4353
  callHook(onBeforeLeave, [el]);
4341
4354
  let called = false;
4342
- const done = el[leaveCbKey] = (cancelled) => {
4355
+ el[leaveCbKey] = (cancelled) => {
4343
4356
  if (called) return;
4344
4357
  called = true;
4345
4358
  remove();
@@ -4353,6 +4366,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4353
4366
  delete leavingVNodesCache[key2];
4354
4367
  }
4355
4368
  };
4369
+ const done = el[leaveCbKey].bind(null, false);
4356
4370
  leavingVNodesCache[key2] = vnode;
4357
4371
  if (onLeave) {
4358
4372
  callAsyncHook(onLeave, [el, done]);
@@ -4465,8 +4479,7 @@ function useTemplateRef(key) {
4465
4479
  const r = shallowRef(null);
4466
4480
  if (i) {
4467
4481
  const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
4468
- let desc;
4469
- if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
4482
+ if (isTemplateRefKey(refs, key)) {
4470
4483
  warn$1(`useTemplateRef('${key}') already exists.`);
4471
4484
  } else {
4472
4485
  Object.defineProperty(refs, key, {
@@ -4486,6 +4499,10 @@ function useTemplateRef(key) {
4486
4499
  }
4487
4500
  return ret;
4488
4501
  }
4502
+ function isTemplateRefKey(refs, key) {
4503
+ let desc;
4504
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
4505
+ }
4489
4506
 
4490
4507
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
4491
4508
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -4531,10 +4548,19 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4531
4548
  return false;
4532
4549
  }
4533
4550
  }
4551
+ if (isTemplateRefKey(refs, key)) {
4552
+ return false;
4553
+ }
4534
4554
  return hasOwn(rawSetupState, key);
4535
4555
  };
4536
- const canSetRef = (ref2) => {
4537
- return !knownTemplateRefs.has(ref2);
4556
+ const canSetRef = (ref2, key) => {
4557
+ if (knownTemplateRefs.has(ref2)) {
4558
+ return false;
4559
+ }
4560
+ if (key && isTemplateRefKey(refs, key)) {
4561
+ return false;
4562
+ }
4563
+ return true;
4538
4564
  };
4539
4565
  if (oldRef != null && oldRef !== ref) {
4540
4566
  invalidatePendingSetRef(oldRawRef);
@@ -4544,10 +4570,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4544
4570
  setupState[oldRef] = null;
4545
4571
  }
4546
4572
  } else if (isRef(oldRef)) {
4547
- if (canSetRef(oldRef)) {
4573
+ const oldRawRefAtom = oldRawRef;
4574
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
4548
4575
  oldRef.value = null;
4549
4576
  }
4550
- const oldRawRefAtom = oldRawRef;
4551
4577
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
4552
4578
  }
4553
4579
  }
@@ -4571,7 +4597,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4571
4597
  }
4572
4598
  } else {
4573
4599
  const newVal = [refValue];
4574
- if (canSetRef(ref)) {
4600
+ if (canSetRef(ref, rawRef.k)) {
4575
4601
  ref.value = newVal;
4576
4602
  }
4577
4603
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -4586,7 +4612,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4586
4612
  setupState[ref] = value;
4587
4613
  }
4588
4614
  } else if (_isRef) {
4589
- if (canSetRef(ref)) {
4615
+ if (canSetRef(ref, rawRef.k)) {
4590
4616
  ref.value = value;
4591
4617
  }
4592
4618
  if (rawRef.k) refs[rawRef.k] = value;
@@ -7449,7 +7475,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7449
7475
  return vm;
7450
7476
  }
7451
7477
  }
7452
- Vue.version = `2.6.14-compat:${"3.5.27"}`;
7478
+ Vue.version = `2.6.14-compat:${"3.5.28"}`;
7453
7479
  Vue.config = singletonApp.config;
7454
7480
  Vue.use = (plugin, ...options) => {
7455
7481
  if (plugin && isFunction(plugin.install)) {
@@ -8563,7 +8589,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
8563
8589
  const dynamicProps = nextVNode.dynamicProps;
8564
8590
  for (let i = 0; i < dynamicProps.length; i++) {
8565
8591
  const key = dynamicProps[i];
8566
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
8592
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
8567
8593
  return true;
8568
8594
  }
8569
8595
  }
@@ -8594,12 +8620,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8594
8620
  }
8595
8621
  for (let i = 0; i < nextKeys.length; i++) {
8596
8622
  const key = nextKeys[i];
8597
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
8623
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8598
8624
  return true;
8599
8625
  }
8600
8626
  }
8601
8627
  return false;
8602
8628
  }
8629
+ function hasPropValueChanged(nextProps, prevProps, key) {
8630
+ const nextProp = nextProps[key];
8631
+ const prevProp = prevProps[key];
8632
+ if (key === "style" && isObject(nextProp) && isObject(prevProp)) {
8633
+ return !looseEqual(nextProp, prevProp);
8634
+ }
8635
+ return nextProp !== prevProp;
8636
+ }
8603
8637
  function updateHOCHostEl({ vnode, parent }, el) {
8604
8638
  while (parent) {
8605
8639
  const root = parent.subTree;
@@ -9375,15 +9409,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9375
9409
  } else {
9376
9410
  const el = n2.el = n1.el;
9377
9411
  if (n2.children !== n1.children) {
9378
- if (isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
9379
- const childNodes = container.childNodes;
9380
- const newChild = hostCreateText(n2.children);
9381
- const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
9382
- hostInsert(newChild, container, oldChild);
9383
- hostRemove(oldChild);
9384
- } else {
9385
- hostSetText(el, n2.children);
9386
- }
9412
+ hostSetText(el, n2.children);
9387
9413
  }
9388
9414
  }
9389
9415
  };
@@ -9459,7 +9485,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9459
9485
  optimized
9460
9486
  );
9461
9487
  } else {
9462
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
9488
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
9463
9489
  try {
9464
9490
  if (customElement) {
9465
9491
  customElement._beginPatch();
@@ -9945,8 +9971,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9945
9971
  hydrateSubTree();
9946
9972
  }
9947
9973
  } else {
9948
- if (root.ce && // @ts-expect-error _def is private
9949
- root.ce._def.shadowRoot !== false) {
9974
+ if (root.ce && root.ce._hasShadowRoot()) {
9950
9975
  root.ce._injectChildStyle(type);
9951
9976
  }
9952
9977
  {
@@ -10013,9 +10038,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10013
10038
  updateComponentPreRender(instance, next, optimized);
10014
10039
  }
10015
10040
  nonHydratedAsyncRoot.asyncDep.then(() => {
10016
- if (!instance.isUnmounted) {
10017
- componentUpdateFn();
10018
- }
10041
+ queuePostRenderEffect(() => {
10042
+ if (!instance.isUnmounted) update();
10043
+ }, parentSuspense);
10019
10044
  });
10020
10045
  return;
10021
10046
  }
@@ -10730,12 +10755,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
10730
10755
  traverseStaticChildren(c1, c2);
10731
10756
  }
10732
10757
  if (c2.type === Text) {
10733
- if (c2.patchFlag !== -1) {
10734
- c2.el = c1.el;
10735
- } else {
10736
- c2.__elIndex = i + // take fragment start anchor into account
10737
- (n1.type === Fragment ? 1 : 0);
10758
+ if (c2.patchFlag === -1) {
10759
+ c2 = ch2[i] = cloneIfMounted(c2);
10738
10760
  }
10761
+ c2.el = c1.el;
10739
10762
  }
10740
10763
  if (c2.type === Comment && !c2.el) {
10741
10764
  c2.el = c1.el;
@@ -12540,7 +12563,7 @@ function isMemoSame(cached, memo) {
12540
12563
  return true;
12541
12564
  }
12542
12565
 
12543
- const version = "3.5.27";
12566
+ const version = "3.5.28";
12544
12567
  const warn = warn$1 ;
12545
12568
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12546
12569
  const devtools = devtools$1 ;
@@ -13902,6 +13925,12 @@ class VueElement extends BaseClass {
13902
13925
  this._update();
13903
13926
  }
13904
13927
  }
13928
+ /**
13929
+ * @internal
13930
+ */
13931
+ _hasShadowRoot() {
13932
+ return this._def.shadowRoot !== false;
13933
+ }
13905
13934
  /**
13906
13935
  * @internal
13907
13936
  */
@@ -14045,10 +14074,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14045
14074
  instance
14046
14075
  )
14047
14076
  );
14048
- positionMap.set(child, {
14049
- left: child.el.offsetLeft,
14050
- top: child.el.offsetTop
14051
- });
14077
+ positionMap.set(child, getPosition(child.el));
14052
14078
  }
14053
14079
  }
14054
14080
  }
@@ -14079,10 +14105,7 @@ function callPendingCbs(c) {
14079
14105
  }
14080
14106
  }
14081
14107
  function recordPosition(c) {
14082
- newPositionMap.set(c, {
14083
- left: c.el.offsetLeft,
14084
- top: c.el.offsetTop
14085
- });
14108
+ newPositionMap.set(c, getPosition(c.el));
14086
14109
  }
14087
14110
  function applyTranslation(c) {
14088
14111
  const oldPos = positionMap.get(c);
@@ -14090,12 +14113,29 @@ function applyTranslation(c) {
14090
14113
  const dx = oldPos.left - newPos.left;
14091
14114
  const dy = oldPos.top - newPos.top;
14092
14115
  if (dx || dy) {
14093
- const s = c.el.style;
14094
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
14116
+ const el = c.el;
14117
+ const s = el.style;
14118
+ const rect = el.getBoundingClientRect();
14119
+ let scaleX = 1;
14120
+ let scaleY = 1;
14121
+ if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
14122
+ if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
14123
+ if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
14124
+ if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
14125
+ if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;
14126
+ if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;
14127
+ s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
14095
14128
  s.transitionDuration = "0s";
14096
14129
  return c;
14097
14130
  }
14098
14131
  }
14132
+ function getPosition(el) {
14133
+ const rect = el.getBoundingClientRect();
14134
+ return {
14135
+ left: rect.left,
14136
+ top: rect.top
14137
+ };
14138
+ }
14099
14139
  function hasCSSTransform(el, root, moveClass) {
14100
14140
  const clone = el.cloneNode();
14101
14141
  const _vtc = el[vtcKey];
@@ -14406,6 +14446,7 @@ const modifierGuards = {
14406
14446
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
14407
14447
  };
14408
14448
  const withModifiers = (fn, modifiers) => {
14449
+ if (!fn) return fn;
14409
14450
  const cache = fn._withMods || (fn._withMods = {});
14410
14451
  const cacheKey = modifiers.join(".");
14411
14452
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {