@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
  **/
@@ -334,6 +334,7 @@ function warn$2(msg, ...args) {
334
334
 
335
335
  let activeEffectScope;
336
336
  class EffectScope {
337
+ // TODO isolatedDeclarations "__v_skip"
337
338
  constructor(detached = false) {
338
339
  this.detached = detached;
339
340
  /**
@@ -353,6 +354,7 @@ class EffectScope {
353
354
  */
354
355
  this.cleanups = [];
355
356
  this._isPaused = false;
357
+ this.__v_skip = true;
356
358
  this.parent = activeEffectScope;
357
359
  if (!detached && activeEffectScope) {
358
360
  this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
@@ -3924,7 +3926,22 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
3924
3926
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
3925
3927
  o: { nextSibling, parentNode, querySelector, insert, createText }
3926
3928
  }, hydrateChildren) {
3927
- function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
3929
+ function hydrateAnchor(target2, targetNode) {
3930
+ let targetAnchor = targetNode;
3931
+ while (targetAnchor) {
3932
+ if (targetAnchor && targetAnchor.nodeType === 8) {
3933
+ if (targetAnchor.data === "teleport start anchor") {
3934
+ vnode.targetStart = targetAnchor;
3935
+ } else if (targetAnchor.data === "teleport anchor") {
3936
+ vnode.targetAnchor = targetAnchor;
3937
+ target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
3938
+ break;
3939
+ }
3940
+ }
3941
+ targetAnchor = nextSibling(targetAnchor);
3942
+ }
3943
+ }
3944
+ function hydrateDisabledTeleport(node2, vnode2) {
3928
3945
  vnode2.anchor = hydrateChildren(
3929
3946
  nextSibling(node2),
3930
3947
  vnode2,
@@ -3934,8 +3951,6 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3934
3951
  slotScopeIds,
3935
3952
  optimized
3936
3953
  );
3937
- vnode2.targetStart = targetStart;
3938
- vnode2.targetAnchor = targetAnchor;
3939
3954
  }
3940
3955
  const target = vnode.target = resolveTarget(
3941
3956
  vnode.props,
@@ -3946,27 +3961,22 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3946
3961
  const targetNode = target._lpa || target.firstChild;
3947
3962
  if (vnode.shapeFlag & 16) {
3948
3963
  if (disabled) {
3949
- hydrateDisabledTeleport(
3950
- node,
3951
- vnode,
3952
- targetNode,
3953
- targetNode && nextSibling(targetNode)
3954
- );
3964
+ hydrateDisabledTeleport(node, vnode);
3965
+ hydrateAnchor(target, targetNode);
3966
+ if (!vnode.targetAnchor) {
3967
+ prepareAnchor(
3968
+ target,
3969
+ vnode,
3970
+ createText,
3971
+ insert,
3972
+ // if target is the same as the main view, insert anchors before current node
3973
+ // to avoid hydrating mismatch
3974
+ parentNode(node) === target ? node : null
3975
+ );
3976
+ }
3955
3977
  } else {
3956
3978
  vnode.anchor = nextSibling(node);
3957
- let targetAnchor = targetNode;
3958
- while (targetAnchor) {
3959
- if (targetAnchor && targetAnchor.nodeType === 8) {
3960
- if (targetAnchor.data === "teleport start anchor") {
3961
- vnode.targetStart = targetAnchor;
3962
- } else if (targetAnchor.data === "teleport anchor") {
3963
- vnode.targetAnchor = targetAnchor;
3964
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
3965
- break;
3966
- }
3967
- }
3968
- targetAnchor = nextSibling(targetAnchor);
3969
- }
3979
+ hydrateAnchor(target, targetNode);
3970
3980
  if (!vnode.targetAnchor) {
3971
3981
  prepareAnchor(target, vnode, createText, insert);
3972
3982
  }
@@ -3984,7 +3994,9 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3984
3994
  updateCssVars(vnode, disabled);
3985
3995
  } else if (disabled) {
3986
3996
  if (vnode.shapeFlag & 16) {
3987
- hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
3997
+ hydrateDisabledTeleport(node, vnode);
3998
+ vnode.targetStart = node;
3999
+ vnode.targetAnchor = nextSibling(node);
3988
4000
  }
3989
4001
  }
3990
4002
  return vnode.anchor && nextSibling(vnode.anchor);
@@ -4008,13 +4020,13 @@ function updateCssVars(vnode, isDisabled) {
4008
4020
  ctx.ut();
4009
4021
  }
4010
4022
  }
4011
- function prepareAnchor(target, vnode, createText, insert) {
4023
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
4012
4024
  const targetStart = vnode.targetStart = createText("");
4013
4025
  const targetAnchor = vnode.targetAnchor = createText("");
4014
4026
  targetStart[TeleportEndKey] = targetAnchor;
4015
4027
  if (target) {
4016
- insert(targetStart, target);
4017
- insert(targetAnchor, target);
4028
+ insert(targetStart, target, anchor);
4029
+ insert(targetAnchor, target, anchor);
4018
4030
  }
4019
4031
  return targetAnchor;
4020
4032
  }
@@ -4253,7 +4265,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4253
4265
  }
4254
4266
  }
4255
4267
  let called = false;
4256
- const done = el[enterCbKey$1] = (cancelled) => {
4268
+ el[enterCbKey$1] = (cancelled) => {
4257
4269
  if (called) return;
4258
4270
  called = true;
4259
4271
  if (cancelled) {
@@ -4266,6 +4278,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4266
4278
  }
4267
4279
  el[enterCbKey$1] = void 0;
4268
4280
  };
4281
+ const done = el[enterCbKey$1].bind(null, false);
4269
4282
  if (hook) {
4270
4283
  callAsyncHook(hook, [el, done]);
4271
4284
  } else {
@@ -4285,7 +4298,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4285
4298
  }
4286
4299
  callHook(onBeforeLeave, [el]);
4287
4300
  let called = false;
4288
- const done = el[leaveCbKey] = (cancelled) => {
4301
+ el[leaveCbKey] = (cancelled) => {
4289
4302
  if (called) return;
4290
4303
  called = true;
4291
4304
  remove();
@@ -4299,6 +4312,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4299
4312
  delete leavingVNodesCache[key2];
4300
4313
  }
4301
4314
  };
4315
+ const done = el[leaveCbKey].bind(null, false);
4302
4316
  leavingVNodesCache[key2] = vnode;
4303
4317
  if (onLeave) {
4304
4318
  callAsyncHook(onLeave, [el, done]);
@@ -4411,8 +4425,7 @@ function useTemplateRef(key) {
4411
4425
  const r = shallowRef(null);
4412
4426
  if (i) {
4413
4427
  const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
4414
- let desc;
4415
- if (!!(process.env.NODE_ENV !== "production") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
4428
+ if (!!(process.env.NODE_ENV !== "production") && isTemplateRefKey(refs, key)) {
4416
4429
  warn$1(`useTemplateRef('${key}') already exists.`);
4417
4430
  } else {
4418
4431
  Object.defineProperty(refs, key, {
@@ -4432,6 +4445,10 @@ function useTemplateRef(key) {
4432
4445
  }
4433
4446
  return ret;
4434
4447
  }
4448
+ function isTemplateRefKey(refs, key) {
4449
+ let desc;
4450
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
4451
+ }
4435
4452
 
4436
4453
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
4437
4454
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -4477,10 +4494,19 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4477
4494
  return false;
4478
4495
  }
4479
4496
  }
4497
+ if (isTemplateRefKey(refs, key)) {
4498
+ return false;
4499
+ }
4480
4500
  return hasOwn(rawSetupState, key);
4481
4501
  };
4482
- const canSetRef = (ref2) => {
4483
- return !!!(process.env.NODE_ENV !== "production") || !knownTemplateRefs.has(ref2);
4502
+ const canSetRef = (ref2, key) => {
4503
+ if (!!(process.env.NODE_ENV !== "production") && knownTemplateRefs.has(ref2)) {
4504
+ return false;
4505
+ }
4506
+ if (key && isTemplateRefKey(refs, key)) {
4507
+ return false;
4508
+ }
4509
+ return true;
4484
4510
  };
4485
4511
  if (oldRef != null && oldRef !== ref) {
4486
4512
  invalidatePendingSetRef(oldRawRef);
@@ -4490,10 +4516,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4490
4516
  setupState[oldRef] = null;
4491
4517
  }
4492
4518
  } else if (isRef(oldRef)) {
4493
- if (canSetRef(oldRef)) {
4519
+ const oldRawRefAtom = oldRawRef;
4520
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
4494
4521
  oldRef.value = null;
4495
4522
  }
4496
- const oldRawRefAtom = oldRawRef;
4497
4523
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
4498
4524
  }
4499
4525
  }
@@ -4517,7 +4543,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4517
4543
  }
4518
4544
  } else {
4519
4545
  const newVal = [refValue];
4520
- if (canSetRef(ref)) {
4546
+ if (canSetRef(ref, rawRef.k)) {
4521
4547
  ref.value = newVal;
4522
4548
  }
4523
4549
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -4532,7 +4558,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4532
4558
  setupState[ref] = value;
4533
4559
  }
4534
4560
  } else if (_isRef) {
4535
- if (canSetRef(ref)) {
4561
+ if (canSetRef(ref, rawRef.k)) {
4536
4562
  ref.value = value;
4537
4563
  }
4538
4564
  if (rawRef.k) refs[rawRef.k] = value;
@@ -7408,7 +7434,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7408
7434
  return vm;
7409
7435
  }
7410
7436
  }
7411
- Vue.version = `2.6.14-compat:${"3.5.27"}`;
7437
+ Vue.version = `2.6.14-compat:${"3.5.28"}`;
7412
7438
  Vue.config = singletonApp.config;
7413
7439
  Vue.use = (plugin, ...options) => {
7414
7440
  if (plugin && isFunction(plugin.install)) {
@@ -8524,7 +8550,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
8524
8550
  const dynamicProps = nextVNode.dynamicProps;
8525
8551
  for (let i = 0; i < dynamicProps.length; i++) {
8526
8552
  const key = dynamicProps[i];
8527
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
8553
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
8528
8554
  return true;
8529
8555
  }
8530
8556
  }
@@ -8555,12 +8581,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8555
8581
  }
8556
8582
  for (let i = 0; i < nextKeys.length; i++) {
8557
8583
  const key = nextKeys[i];
8558
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
8584
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8559
8585
  return true;
8560
8586
  }
8561
8587
  }
8562
8588
  return false;
8563
8589
  }
8590
+ function hasPropValueChanged(nextProps, prevProps, key) {
8591
+ const nextProp = nextProps[key];
8592
+ const prevProp = prevProps[key];
8593
+ if (key === "style" && isObject(nextProp) && isObject(prevProp)) {
8594
+ return !looseEqual(nextProp, prevProp);
8595
+ }
8596
+ return nextProp !== prevProp;
8597
+ }
8564
8598
  function updateHOCHostEl({ vnode, parent }, el) {
8565
8599
  while (parent) {
8566
8600
  const root = parent.subTree;
@@ -9363,15 +9397,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9363
9397
  } else {
9364
9398
  const el = n2.el = n1.el;
9365
9399
  if (n2.children !== n1.children) {
9366
- if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
9367
- const childNodes = container.childNodes;
9368
- const newChild = hostCreateText(n2.children);
9369
- const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
9370
- hostInsert(newChild, container, oldChild);
9371
- hostRemove(oldChild);
9372
- } else {
9373
- hostSetText(el, n2.children);
9374
- }
9400
+ hostSetText(el, n2.children);
9375
9401
  }
9376
9402
  }
9377
9403
  };
@@ -9447,7 +9473,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9447
9473
  optimized
9448
9474
  );
9449
9475
  } else {
9450
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
9476
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
9451
9477
  try {
9452
9478
  if (customElement) {
9453
9479
  customElement._beginPatch();
@@ -9944,8 +9970,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9944
9970
  hydrateSubTree();
9945
9971
  }
9946
9972
  } else {
9947
- if (root.ce && // @ts-expect-error _def is private
9948
- root.ce._def.shadowRoot !== false) {
9973
+ if (root.ce && root.ce._hasShadowRoot()) {
9949
9974
  root.ce._injectChildStyle(type);
9950
9975
  }
9951
9976
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -10012,9 +10037,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10012
10037
  updateComponentPreRender(instance, next, optimized);
10013
10038
  }
10014
10039
  nonHydratedAsyncRoot.asyncDep.then(() => {
10015
- if (!instance.isUnmounted) {
10016
- componentUpdateFn();
10017
- }
10040
+ queuePostRenderEffect(() => {
10041
+ if (!instance.isUnmounted) update();
10042
+ }, parentSuspense);
10018
10043
  });
10019
10044
  return;
10020
10045
  }
@@ -10729,12 +10754,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
10729
10754
  traverseStaticChildren(c1, c2);
10730
10755
  }
10731
10756
  if (c2.type === Text) {
10732
- if (c2.patchFlag !== -1) {
10733
- c2.el = c1.el;
10734
- } else {
10735
- c2.__elIndex = i + // take fragment start anchor into account
10736
- (n1.type === Fragment ? 1 : 0);
10757
+ if (c2.patchFlag === -1) {
10758
+ c2 = ch2[i] = cloneIfMounted(c2);
10737
10759
  }
10760
+ c2.el = c1.el;
10738
10761
  }
10739
10762
  if (c2.type === Comment && !c2.el) {
10740
10763
  c2.el = c1.el;
@@ -12553,7 +12576,7 @@ function isMemoSame(cached, memo) {
12553
12576
  return true;
12554
12577
  }
12555
12578
 
12556
- const version = "3.5.27";
12579
+ const version = "3.5.28";
12557
12580
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12558
12581
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12559
12582
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -13915,6 +13938,12 @@ class VueElement extends BaseClass {
13915
13938
  this._update();
13916
13939
  }
13917
13940
  }
13941
+ /**
13942
+ * @internal
13943
+ */
13944
+ _hasShadowRoot() {
13945
+ return this._def.shadowRoot !== false;
13946
+ }
13918
13947
  /**
13919
13948
  * @internal
13920
13949
  */
@@ -14058,10 +14087,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14058
14087
  instance
14059
14088
  )
14060
14089
  );
14061
- positionMap.set(child, {
14062
- left: child.el.offsetLeft,
14063
- top: child.el.offsetTop
14064
- });
14090
+ positionMap.set(child, getPosition(child.el));
14065
14091
  }
14066
14092
  }
14067
14093
  }
@@ -14092,10 +14118,7 @@ function callPendingCbs(c) {
14092
14118
  }
14093
14119
  }
14094
14120
  function recordPosition(c) {
14095
- newPositionMap.set(c, {
14096
- left: c.el.offsetLeft,
14097
- top: c.el.offsetTop
14098
- });
14121
+ newPositionMap.set(c, getPosition(c.el));
14099
14122
  }
14100
14123
  function applyTranslation(c) {
14101
14124
  const oldPos = positionMap.get(c);
@@ -14103,12 +14126,29 @@ function applyTranslation(c) {
14103
14126
  const dx = oldPos.left - newPos.left;
14104
14127
  const dy = oldPos.top - newPos.top;
14105
14128
  if (dx || dy) {
14106
- const s = c.el.style;
14107
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
14129
+ const el = c.el;
14130
+ const s = el.style;
14131
+ const rect = el.getBoundingClientRect();
14132
+ let scaleX = 1;
14133
+ let scaleY = 1;
14134
+ if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
14135
+ if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
14136
+ if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
14137
+ if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
14138
+ if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;
14139
+ if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;
14140
+ s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
14108
14141
  s.transitionDuration = "0s";
14109
14142
  return c;
14110
14143
  }
14111
14144
  }
14145
+ function getPosition(el) {
14146
+ const rect = el.getBoundingClientRect();
14147
+ return {
14148
+ left: rect.left,
14149
+ top: rect.top
14150
+ };
14151
+ }
14112
14152
  function hasCSSTransform(el, root, moveClass) {
14113
14153
  const clone = el.cloneNode();
14114
14154
  const _vtc = el[vtcKey];
@@ -14419,6 +14459,7 @@ const modifierGuards = {
14419
14459
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
14420
14460
  };
14421
14461
  const withModifiers = (fn, modifiers) => {
14462
+ if (!fn) return fn;
14422
14463
  const cache = fn._withMods || (fn._withMods = {});
14423
14464
  const cacheKey = modifiers.join(".");
14424
14465
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {