@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.
package/dist/vue.cjs.js CHANGED
@@ -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
  **/
@@ -460,6 +460,7 @@ function warn$2(msg, ...args) {
460
460
 
461
461
  let activeEffectScope;
462
462
  class EffectScope {
463
+ // TODO isolatedDeclarations "__v_skip"
463
464
  constructor(detached = false) {
464
465
  this.detached = detached;
465
466
  /**
@@ -479,6 +480,7 @@ class EffectScope {
479
480
  */
480
481
  this.cleanups = [];
481
482
  this._isPaused = false;
483
+ this.__v_skip = true;
482
484
  this.parent = activeEffectScope;
483
485
  if (!detached && activeEffectScope) {
484
486
  this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
@@ -4032,7 +4034,22 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
4032
4034
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
4033
4035
  o: { nextSibling, parentNode, querySelector, insert, createText }
4034
4036
  }, hydrateChildren) {
4035
- function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
4037
+ function hydrateAnchor(target2, targetNode) {
4038
+ let targetAnchor = targetNode;
4039
+ while (targetAnchor) {
4040
+ if (targetAnchor && targetAnchor.nodeType === 8) {
4041
+ if (targetAnchor.data === "teleport start anchor") {
4042
+ vnode.targetStart = targetAnchor;
4043
+ } else if (targetAnchor.data === "teleport anchor") {
4044
+ vnode.targetAnchor = targetAnchor;
4045
+ target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
4046
+ break;
4047
+ }
4048
+ }
4049
+ targetAnchor = nextSibling(targetAnchor);
4050
+ }
4051
+ }
4052
+ function hydrateDisabledTeleport(node2, vnode2) {
4036
4053
  vnode2.anchor = hydrateChildren(
4037
4054
  nextSibling(node2),
4038
4055
  vnode2,
@@ -4042,8 +4059,6 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
4042
4059
  slotScopeIds,
4043
4060
  optimized
4044
4061
  );
4045
- vnode2.targetStart = targetStart;
4046
- vnode2.targetAnchor = targetAnchor;
4047
4062
  }
4048
4063
  const target = vnode.target = resolveTarget(
4049
4064
  vnode.props,
@@ -4054,27 +4069,22 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
4054
4069
  const targetNode = target._lpa || target.firstChild;
4055
4070
  if (vnode.shapeFlag & 16) {
4056
4071
  if (disabled) {
4057
- hydrateDisabledTeleport(
4058
- node,
4059
- vnode,
4060
- targetNode,
4061
- targetNode && nextSibling(targetNode)
4062
- );
4072
+ hydrateDisabledTeleport(node, vnode);
4073
+ hydrateAnchor(target, targetNode);
4074
+ if (!vnode.targetAnchor) {
4075
+ prepareAnchor(
4076
+ target,
4077
+ vnode,
4078
+ createText,
4079
+ insert,
4080
+ // if target is the same as the main view, insert anchors before current node
4081
+ // to avoid hydrating mismatch
4082
+ parentNode(node) === target ? node : null
4083
+ );
4084
+ }
4063
4085
  } else {
4064
4086
  vnode.anchor = nextSibling(node);
4065
- let targetAnchor = targetNode;
4066
- while (targetAnchor) {
4067
- if (targetAnchor && targetAnchor.nodeType === 8) {
4068
- if (targetAnchor.data === "teleport start anchor") {
4069
- vnode.targetStart = targetAnchor;
4070
- } else if (targetAnchor.data === "teleport anchor") {
4071
- vnode.targetAnchor = targetAnchor;
4072
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
4073
- break;
4074
- }
4075
- }
4076
- targetAnchor = nextSibling(targetAnchor);
4077
- }
4087
+ hydrateAnchor(target, targetNode);
4078
4088
  if (!vnode.targetAnchor) {
4079
4089
  prepareAnchor(target, vnode, createText, insert);
4080
4090
  }
@@ -4092,7 +4102,9 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
4092
4102
  updateCssVars(vnode, disabled);
4093
4103
  } else if (disabled) {
4094
4104
  if (vnode.shapeFlag & 16) {
4095
- hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
4105
+ hydrateDisabledTeleport(node, vnode);
4106
+ vnode.targetStart = node;
4107
+ vnode.targetAnchor = nextSibling(node);
4096
4108
  }
4097
4109
  }
4098
4110
  return vnode.anchor && nextSibling(vnode.anchor);
@@ -4116,13 +4128,13 @@ function updateCssVars(vnode, isDisabled) {
4116
4128
  ctx.ut();
4117
4129
  }
4118
4130
  }
4119
- function prepareAnchor(target, vnode, createText, insert) {
4131
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
4120
4132
  const targetStart = vnode.targetStart = createText("");
4121
4133
  const targetAnchor = vnode.targetAnchor = createText("");
4122
4134
  targetStart[TeleportEndKey] = targetAnchor;
4123
4135
  if (target) {
4124
- insert(targetStart, target);
4125
- insert(targetAnchor, target);
4136
+ insert(targetStart, target, anchor);
4137
+ insert(targetAnchor, target, anchor);
4126
4138
  }
4127
4139
  return targetAnchor;
4128
4140
  }
@@ -4360,7 +4372,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4360
4372
  }
4361
4373
  }
4362
4374
  let called = false;
4363
- const done = el[enterCbKey$1] = (cancelled) => {
4375
+ el[enterCbKey$1] = (cancelled) => {
4364
4376
  if (called) return;
4365
4377
  called = true;
4366
4378
  if (cancelled) {
@@ -4373,6 +4385,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4373
4385
  }
4374
4386
  el[enterCbKey$1] = void 0;
4375
4387
  };
4388
+ const done = el[enterCbKey$1].bind(null, false);
4376
4389
  if (hook) {
4377
4390
  callAsyncHook(hook, [el, done]);
4378
4391
  } else {
@@ -4392,7 +4405,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4392
4405
  }
4393
4406
  callHook(onBeforeLeave, [el]);
4394
4407
  let called = false;
4395
- const done = el[leaveCbKey] = (cancelled) => {
4408
+ el[leaveCbKey] = (cancelled) => {
4396
4409
  if (called) return;
4397
4410
  called = true;
4398
4411
  remove();
@@ -4406,6 +4419,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4406
4419
  delete leavingVNodesCache[key2];
4407
4420
  }
4408
4421
  };
4422
+ const done = el[leaveCbKey].bind(null, false);
4409
4423
  leavingVNodesCache[key2] = vnode;
4410
4424
  if (onLeave) {
4411
4425
  callAsyncHook(onLeave, [el, done]);
@@ -4518,8 +4532,7 @@ function useTemplateRef(key) {
4518
4532
  const r = shallowRef(null);
4519
4533
  if (i) {
4520
4534
  const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
4521
- let desc;
4522
- if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
4535
+ if (isTemplateRefKey(refs, key)) {
4523
4536
  warn$1(`useTemplateRef('${key}') already exists.`);
4524
4537
  } else {
4525
4538
  Object.defineProperty(refs, key, {
@@ -4539,6 +4552,10 @@ function useTemplateRef(key) {
4539
4552
  }
4540
4553
  return ret;
4541
4554
  }
4555
+ function isTemplateRefKey(refs, key) {
4556
+ let desc;
4557
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
4558
+ }
4542
4559
 
4543
4560
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
4544
4561
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -4584,10 +4601,19 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4584
4601
  return false;
4585
4602
  }
4586
4603
  }
4604
+ if (isTemplateRefKey(refs, key)) {
4605
+ return false;
4606
+ }
4587
4607
  return hasOwn(rawSetupState, key);
4588
4608
  };
4589
- const canSetRef = (ref2) => {
4590
- return !knownTemplateRefs.has(ref2);
4609
+ const canSetRef = (ref2, key) => {
4610
+ if (knownTemplateRefs.has(ref2)) {
4611
+ return false;
4612
+ }
4613
+ if (key && isTemplateRefKey(refs, key)) {
4614
+ return false;
4615
+ }
4616
+ return true;
4591
4617
  };
4592
4618
  if (oldRef != null && oldRef !== ref) {
4593
4619
  invalidatePendingSetRef(oldRawRef);
@@ -4597,10 +4623,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4597
4623
  setupState[oldRef] = null;
4598
4624
  }
4599
4625
  } else if (isRef(oldRef)) {
4600
- if (canSetRef(oldRef)) {
4626
+ const oldRawRefAtom = oldRawRef;
4627
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
4601
4628
  oldRef.value = null;
4602
4629
  }
4603
- const oldRawRefAtom = oldRawRef;
4604
4630
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
4605
4631
  }
4606
4632
  }
@@ -4624,7 +4650,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4624
4650
  }
4625
4651
  } else {
4626
4652
  const newVal = [refValue];
4627
- if (canSetRef(ref)) {
4653
+ if (canSetRef(ref, rawRef.k)) {
4628
4654
  ref.value = newVal;
4629
4655
  }
4630
4656
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -4639,7 +4665,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4639
4665
  setupState[ref] = value;
4640
4666
  }
4641
4667
  } else if (_isRef) {
4642
- if (canSetRef(ref)) {
4668
+ if (canSetRef(ref, rawRef.k)) {
4643
4669
  ref.value = value;
4644
4670
  }
4645
4671
  if (rawRef.k) refs[rawRef.k] = value;
@@ -7499,7 +7525,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7499
7525
  return vm;
7500
7526
  }
7501
7527
  }
7502
- Vue.version = `2.6.14-compat:${"3.5.27"}`;
7528
+ Vue.version = `2.6.14-compat:${"3.5.28"}`;
7503
7529
  Vue.config = singletonApp.config;
7504
7530
  Vue.use = (plugin, ...options) => {
7505
7531
  if (plugin && isFunction(plugin.install)) {
@@ -8613,7 +8639,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
8613
8639
  const dynamicProps = nextVNode.dynamicProps;
8614
8640
  for (let i = 0; i < dynamicProps.length; i++) {
8615
8641
  const key = dynamicProps[i];
8616
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
8642
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
8617
8643
  return true;
8618
8644
  }
8619
8645
  }
@@ -8644,12 +8670,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8644
8670
  }
8645
8671
  for (let i = 0; i < nextKeys.length; i++) {
8646
8672
  const key = nextKeys[i];
8647
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
8673
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8648
8674
  return true;
8649
8675
  }
8650
8676
  }
8651
8677
  return false;
8652
8678
  }
8679
+ function hasPropValueChanged(nextProps, prevProps, key) {
8680
+ const nextProp = nextProps[key];
8681
+ const prevProp = prevProps[key];
8682
+ if (key === "style" && isObject(nextProp) && isObject(prevProp)) {
8683
+ return !looseEqual(nextProp, prevProp);
8684
+ }
8685
+ return nextProp !== prevProp;
8686
+ }
8653
8687
  function updateHOCHostEl({ vnode, parent }, el) {
8654
8688
  while (parent) {
8655
8689
  const root = parent.subTree;
@@ -9425,15 +9459,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9425
9459
  } else {
9426
9460
  const el = n2.el = n1.el;
9427
9461
  if (n2.children !== n1.children) {
9428
- if (isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
9429
- const childNodes = container.childNodes;
9430
- const newChild = hostCreateText(n2.children);
9431
- const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
9432
- hostInsert(newChild, container, oldChild);
9433
- hostRemove(oldChild);
9434
- } else {
9435
- hostSetText(el, n2.children);
9436
- }
9462
+ hostSetText(el, n2.children);
9437
9463
  }
9438
9464
  }
9439
9465
  };
@@ -9509,7 +9535,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9509
9535
  optimized
9510
9536
  );
9511
9537
  } else {
9512
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
9538
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
9513
9539
  try {
9514
9540
  if (customElement) {
9515
9541
  customElement._beginPatch();
@@ -9995,8 +10021,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9995
10021
  hydrateSubTree();
9996
10022
  }
9997
10023
  } else {
9998
- if (root.ce && // @ts-expect-error _def is private
9999
- root.ce._def.shadowRoot !== false) {
10024
+ if (root.ce && root.ce._hasShadowRoot()) {
10000
10025
  root.ce._injectChildStyle(type);
10001
10026
  }
10002
10027
  {
@@ -10063,9 +10088,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10063
10088
  updateComponentPreRender(instance, next, optimized);
10064
10089
  }
10065
10090
  nonHydratedAsyncRoot.asyncDep.then(() => {
10066
- if (!instance.isUnmounted) {
10067
- componentUpdateFn();
10068
- }
10091
+ queuePostRenderEffect(() => {
10092
+ if (!instance.isUnmounted) update();
10093
+ }, parentSuspense);
10069
10094
  });
10070
10095
  return;
10071
10096
  }
@@ -10780,12 +10805,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
10780
10805
  traverseStaticChildren(c1, c2);
10781
10806
  }
10782
10807
  if (c2.type === Text) {
10783
- if (c2.patchFlag !== -1) {
10784
- c2.el = c1.el;
10785
- } else {
10786
- c2.__elIndex = i + // take fragment start anchor into account
10787
- (n1.type === Fragment ? 1 : 0);
10808
+ if (c2.patchFlag === -1) {
10809
+ c2 = ch2[i] = cloneIfMounted(c2);
10788
10810
  }
10811
+ c2.el = c1.el;
10789
10812
  }
10790
10813
  if (c2.type === Comment && !c2.el) {
10791
10814
  c2.el = c1.el;
@@ -12590,7 +12613,7 @@ function isMemoSame(cached, memo) {
12590
12613
  return true;
12591
12614
  }
12592
12615
 
12593
- const version = "3.5.27";
12616
+ const version = "3.5.28";
12594
12617
  const warn = warn$1 ;
12595
12618
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12596
12619
  const devtools = devtools$1 ;
@@ -13884,6 +13907,12 @@ class VueElement extends BaseClass {
13884
13907
  this._update();
13885
13908
  }
13886
13909
  }
13910
+ /**
13911
+ * @internal
13912
+ */
13913
+ _hasShadowRoot() {
13914
+ return this._def.shadowRoot !== false;
13915
+ }
13887
13916
  /**
13888
13917
  * @internal
13889
13918
  */
@@ -14027,10 +14056,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14027
14056
  instance
14028
14057
  )
14029
14058
  );
14030
- positionMap.set(child, {
14031
- left: child.el.offsetLeft,
14032
- top: child.el.offsetTop
14033
- });
14059
+ positionMap.set(child, getPosition(child.el));
14034
14060
  }
14035
14061
  }
14036
14062
  }
@@ -14061,10 +14087,7 @@ function callPendingCbs(c) {
14061
14087
  }
14062
14088
  }
14063
14089
  function recordPosition(c) {
14064
- newPositionMap.set(c, {
14065
- left: c.el.offsetLeft,
14066
- top: c.el.offsetTop
14067
- });
14090
+ newPositionMap.set(c, getPosition(c.el));
14068
14091
  }
14069
14092
  function applyTranslation(c) {
14070
14093
  const oldPos = positionMap.get(c);
@@ -14072,12 +14095,29 @@ function applyTranslation(c) {
14072
14095
  const dx = oldPos.left - newPos.left;
14073
14096
  const dy = oldPos.top - newPos.top;
14074
14097
  if (dx || dy) {
14075
- const s = c.el.style;
14076
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
14098
+ const el = c.el;
14099
+ const s = el.style;
14100
+ const rect = el.getBoundingClientRect();
14101
+ let scaleX = 1;
14102
+ let scaleY = 1;
14103
+ if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
14104
+ if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
14105
+ if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
14106
+ if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
14107
+ if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;
14108
+ if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;
14109
+ s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
14077
14110
  s.transitionDuration = "0s";
14078
14111
  return c;
14079
14112
  }
14080
14113
  }
14114
+ function getPosition(el) {
14115
+ const rect = el.getBoundingClientRect();
14116
+ return {
14117
+ left: rect.left,
14118
+ top: rect.top
14119
+ };
14120
+ }
14081
14121
  function hasCSSTransform(el, root, moveClass) {
14082
14122
  const clone = el.cloneNode();
14083
14123
  const _vtc = el[vtcKey];
@@ -14388,6 +14428,7 @@ const modifierGuards = {
14388
14428
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
14389
14429
  };
14390
14430
  const withModifiers = (fn, modifiers) => {
14431
+ if (!fn) return fn;
14391
14432
  const cache = fn._withMods || (fn._withMods = {});
14392
14433
  const cacheKey = modifiers.join(".");
14393
14434
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {