@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(
@@ -3906,7 +3908,22 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
3906
3908
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
3907
3909
  o: { nextSibling, parentNode, querySelector, insert, createText }
3908
3910
  }, hydrateChildren) {
3909
- function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
3911
+ function hydrateAnchor(target2, targetNode) {
3912
+ let targetAnchor = targetNode;
3913
+ while (targetAnchor) {
3914
+ if (targetAnchor && targetAnchor.nodeType === 8) {
3915
+ if (targetAnchor.data === "teleport start anchor") {
3916
+ vnode.targetStart = targetAnchor;
3917
+ } else if (targetAnchor.data === "teleport anchor") {
3918
+ vnode.targetAnchor = targetAnchor;
3919
+ target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
3920
+ break;
3921
+ }
3922
+ }
3923
+ targetAnchor = nextSibling(targetAnchor);
3924
+ }
3925
+ }
3926
+ function hydrateDisabledTeleport(node2, vnode2) {
3910
3927
  vnode2.anchor = hydrateChildren(
3911
3928
  nextSibling(node2),
3912
3929
  vnode2,
@@ -3916,8 +3933,6 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3916
3933
  slotScopeIds,
3917
3934
  optimized
3918
3935
  );
3919
- vnode2.targetStart = targetStart;
3920
- vnode2.targetAnchor = targetAnchor;
3921
3936
  }
3922
3937
  const target = vnode.target = resolveTarget(
3923
3938
  vnode.props,
@@ -3928,27 +3943,22 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3928
3943
  const targetNode = target._lpa || target.firstChild;
3929
3944
  if (vnode.shapeFlag & 16) {
3930
3945
  if (disabled) {
3931
- hydrateDisabledTeleport(
3932
- node,
3933
- vnode,
3934
- targetNode,
3935
- targetNode && nextSibling(targetNode)
3936
- );
3946
+ hydrateDisabledTeleport(node, vnode);
3947
+ hydrateAnchor(target, targetNode);
3948
+ if (!vnode.targetAnchor) {
3949
+ prepareAnchor(
3950
+ target,
3951
+ vnode,
3952
+ createText,
3953
+ insert,
3954
+ // if target is the same as the main view, insert anchors before current node
3955
+ // to avoid hydrating mismatch
3956
+ parentNode(node) === target ? node : null
3957
+ );
3958
+ }
3937
3959
  } else {
3938
3960
  vnode.anchor = nextSibling(node);
3939
- let targetAnchor = targetNode;
3940
- while (targetAnchor) {
3941
- if (targetAnchor && targetAnchor.nodeType === 8) {
3942
- if (targetAnchor.data === "teleport start anchor") {
3943
- vnode.targetStart = targetAnchor;
3944
- } else if (targetAnchor.data === "teleport anchor") {
3945
- vnode.targetAnchor = targetAnchor;
3946
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
3947
- break;
3948
- }
3949
- }
3950
- targetAnchor = nextSibling(targetAnchor);
3951
- }
3961
+ hydrateAnchor(target, targetNode);
3952
3962
  if (!vnode.targetAnchor) {
3953
3963
  prepareAnchor(target, vnode, createText, insert);
3954
3964
  }
@@ -3966,7 +3976,9 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3966
3976
  updateCssVars(vnode, disabled);
3967
3977
  } else if (disabled) {
3968
3978
  if (vnode.shapeFlag & 16) {
3969
- hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
3979
+ hydrateDisabledTeleport(node, vnode);
3980
+ vnode.targetStart = node;
3981
+ vnode.targetAnchor = nextSibling(node);
3970
3982
  }
3971
3983
  }
3972
3984
  return vnode.anchor && nextSibling(vnode.anchor);
@@ -3990,13 +4002,13 @@ function updateCssVars(vnode, isDisabled) {
3990
4002
  ctx.ut();
3991
4003
  }
3992
4004
  }
3993
- function prepareAnchor(target, vnode, createText, insert) {
4005
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
3994
4006
  const targetStart = vnode.targetStart = createText("");
3995
4007
  const targetAnchor = vnode.targetAnchor = createText("");
3996
4008
  targetStart[TeleportEndKey] = targetAnchor;
3997
4009
  if (target) {
3998
- insert(targetStart, target);
3999
- insert(targetAnchor, target);
4010
+ insert(targetStart, target, anchor);
4011
+ insert(targetAnchor, target, anchor);
4000
4012
  }
4001
4013
  return targetAnchor;
4002
4014
  }
@@ -4234,7 +4246,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4234
4246
  }
4235
4247
  }
4236
4248
  let called = false;
4237
- const done = el[enterCbKey$1] = (cancelled) => {
4249
+ el[enterCbKey$1] = (cancelled) => {
4238
4250
  if (called) return;
4239
4251
  called = true;
4240
4252
  if (cancelled) {
@@ -4247,6 +4259,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4247
4259
  }
4248
4260
  el[enterCbKey$1] = void 0;
4249
4261
  };
4262
+ const done = el[enterCbKey$1].bind(null, false);
4250
4263
  if (hook) {
4251
4264
  callAsyncHook(hook, [el, done]);
4252
4265
  } else {
@@ -4266,7 +4279,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4266
4279
  }
4267
4280
  callHook(onBeforeLeave, [el]);
4268
4281
  let called = false;
4269
- const done = el[leaveCbKey] = (cancelled) => {
4282
+ el[leaveCbKey] = (cancelled) => {
4270
4283
  if (called) return;
4271
4284
  called = true;
4272
4285
  remove();
@@ -4280,6 +4293,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4280
4293
  delete leavingVNodesCache[key2];
4281
4294
  }
4282
4295
  };
4296
+ const done = el[leaveCbKey].bind(null, false);
4283
4297
  leavingVNodesCache[key2] = vnode;
4284
4298
  if (onLeave) {
4285
4299
  callAsyncHook(onLeave, [el, done]);
@@ -4392,8 +4406,7 @@ function useTemplateRef(key) {
4392
4406
  const r = shallowRef(null);
4393
4407
  if (i) {
4394
4408
  const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
4395
- let desc;
4396
- if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
4409
+ if (isTemplateRefKey(refs, key)) {
4397
4410
  warn$1(`useTemplateRef('${key}') already exists.`);
4398
4411
  } else {
4399
4412
  Object.defineProperty(refs, key, {
@@ -4413,6 +4426,10 @@ function useTemplateRef(key) {
4413
4426
  }
4414
4427
  return ret;
4415
4428
  }
4429
+ function isTemplateRefKey(refs, key) {
4430
+ let desc;
4431
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
4432
+ }
4416
4433
 
4417
4434
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
4418
4435
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -4458,10 +4475,19 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4458
4475
  return false;
4459
4476
  }
4460
4477
  }
4478
+ if (isTemplateRefKey(refs, key)) {
4479
+ return false;
4480
+ }
4461
4481
  return hasOwn(rawSetupState, key);
4462
4482
  };
4463
- const canSetRef = (ref2) => {
4464
- return !knownTemplateRefs.has(ref2);
4483
+ const canSetRef = (ref2, key) => {
4484
+ if (knownTemplateRefs.has(ref2)) {
4485
+ return false;
4486
+ }
4487
+ if (key && isTemplateRefKey(refs, key)) {
4488
+ return false;
4489
+ }
4490
+ return true;
4465
4491
  };
4466
4492
  if (oldRef != null && oldRef !== ref) {
4467
4493
  invalidatePendingSetRef(oldRawRef);
@@ -4471,10 +4497,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4471
4497
  setupState[oldRef] = null;
4472
4498
  }
4473
4499
  } else if (isRef(oldRef)) {
4474
- if (canSetRef(oldRef)) {
4500
+ const oldRawRefAtom = oldRawRef;
4501
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
4475
4502
  oldRef.value = null;
4476
4503
  }
4477
- const oldRawRefAtom = oldRawRef;
4478
4504
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
4479
4505
  }
4480
4506
  }
@@ -4498,7 +4524,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4498
4524
  }
4499
4525
  } else {
4500
4526
  const newVal = [refValue];
4501
- if (canSetRef(ref)) {
4527
+ if (canSetRef(ref, rawRef.k)) {
4502
4528
  ref.value = newVal;
4503
4529
  }
4504
4530
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -4513,7 +4539,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4513
4539
  setupState[ref] = value;
4514
4540
  }
4515
4541
  } else if (_isRef) {
4516
- if (canSetRef(ref)) {
4542
+ if (canSetRef(ref, rawRef.k)) {
4517
4543
  ref.value = value;
4518
4544
  }
4519
4545
  if (rawRef.k) refs[rawRef.k] = value;
@@ -7376,7 +7402,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7376
7402
  return vm;
7377
7403
  }
7378
7404
  }
7379
- Vue.version = `2.6.14-compat:${"3.5.27"}`;
7405
+ Vue.version = `2.6.14-compat:${"3.5.28"}`;
7380
7406
  Vue.config = singletonApp.config;
7381
7407
  Vue.use = (plugin, ...options) => {
7382
7408
  if (plugin && isFunction(plugin.install)) {
@@ -8490,7 +8516,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
8490
8516
  const dynamicProps = nextVNode.dynamicProps;
8491
8517
  for (let i = 0; i < dynamicProps.length; i++) {
8492
8518
  const key = dynamicProps[i];
8493
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
8519
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
8494
8520
  return true;
8495
8521
  }
8496
8522
  }
@@ -8521,12 +8547,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8521
8547
  }
8522
8548
  for (let i = 0; i < nextKeys.length; i++) {
8523
8549
  const key = nextKeys[i];
8524
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
8550
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8525
8551
  return true;
8526
8552
  }
8527
8553
  }
8528
8554
  return false;
8529
8555
  }
8556
+ function hasPropValueChanged(nextProps, prevProps, key) {
8557
+ const nextProp = nextProps[key];
8558
+ const prevProp = prevProps[key];
8559
+ if (key === "style" && isObject(nextProp) && isObject(prevProp)) {
8560
+ return !looseEqual(nextProp, prevProp);
8561
+ }
8562
+ return nextProp !== prevProp;
8563
+ }
8530
8564
  function updateHOCHostEl({ vnode, parent }, el) {
8531
8565
  while (parent) {
8532
8566
  const root = parent.subTree;
@@ -9302,15 +9336,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9302
9336
  } else {
9303
9337
  const el = n2.el = n1.el;
9304
9338
  if (n2.children !== n1.children) {
9305
- if (isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
9306
- const childNodes = container.childNodes;
9307
- const newChild = hostCreateText(n2.children);
9308
- const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
9309
- hostInsert(newChild, container, oldChild);
9310
- hostRemove(oldChild);
9311
- } else {
9312
- hostSetText(el, n2.children);
9313
- }
9339
+ hostSetText(el, n2.children);
9314
9340
  }
9315
9341
  }
9316
9342
  };
@@ -9386,7 +9412,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9386
9412
  optimized
9387
9413
  );
9388
9414
  } else {
9389
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
9415
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
9390
9416
  try {
9391
9417
  if (customElement) {
9392
9418
  customElement._beginPatch();
@@ -9872,8 +9898,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9872
9898
  hydrateSubTree();
9873
9899
  }
9874
9900
  } else {
9875
- if (root.ce && // @ts-expect-error _def is private
9876
- root.ce._def.shadowRoot !== false) {
9901
+ if (root.ce && root.ce._hasShadowRoot()) {
9877
9902
  root.ce._injectChildStyle(type);
9878
9903
  }
9879
9904
  {
@@ -9940,9 +9965,9 @@ function baseCreateRenderer(options, createHydrationFns) {
9940
9965
  updateComponentPreRender(instance, next, optimized);
9941
9966
  }
9942
9967
  nonHydratedAsyncRoot.asyncDep.then(() => {
9943
- if (!instance.isUnmounted) {
9944
- componentUpdateFn();
9945
- }
9968
+ queuePostRenderEffect(() => {
9969
+ if (!instance.isUnmounted) update();
9970
+ }, parentSuspense);
9946
9971
  });
9947
9972
  return;
9948
9973
  }
@@ -10657,12 +10682,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
10657
10682
  traverseStaticChildren(c1, c2);
10658
10683
  }
10659
10684
  if (c2.type === Text) {
10660
- if (c2.patchFlag !== -1) {
10661
- c2.el = c1.el;
10662
- } else {
10663
- c2.__elIndex = i + // take fragment start anchor into account
10664
- (n1.type === Fragment ? 1 : 0);
10685
+ if (c2.patchFlag === -1) {
10686
+ c2 = ch2[i] = cloneIfMounted(c2);
10665
10687
  }
10688
+ c2.el = c1.el;
10666
10689
  }
10667
10690
  if (c2.type === Comment && !c2.el) {
10668
10691
  c2.el = c1.el;
@@ -12467,7 +12490,7 @@ function isMemoSame(cached, memo) {
12467
12490
  return true;
12468
12491
  }
12469
12492
 
12470
- const version = "3.5.27";
12493
+ const version = "3.5.28";
12471
12494
  const warn = warn$1 ;
12472
12495
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12473
12496
  const devtools = devtools$1 ;
@@ -13829,6 +13852,12 @@ class VueElement extends BaseClass {
13829
13852
  this._update();
13830
13853
  }
13831
13854
  }
13855
+ /**
13856
+ * @internal
13857
+ */
13858
+ _hasShadowRoot() {
13859
+ return this._def.shadowRoot !== false;
13860
+ }
13832
13861
  /**
13833
13862
  * @internal
13834
13863
  */
@@ -13972,10 +14001,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
13972
14001
  instance
13973
14002
  )
13974
14003
  );
13975
- positionMap.set(child, {
13976
- left: child.el.offsetLeft,
13977
- top: child.el.offsetTop
13978
- });
14004
+ positionMap.set(child, getPosition(child.el));
13979
14005
  }
13980
14006
  }
13981
14007
  }
@@ -14006,10 +14032,7 @@ function callPendingCbs(c) {
14006
14032
  }
14007
14033
  }
14008
14034
  function recordPosition(c) {
14009
- newPositionMap.set(c, {
14010
- left: c.el.offsetLeft,
14011
- top: c.el.offsetTop
14012
- });
14035
+ newPositionMap.set(c, getPosition(c.el));
14013
14036
  }
14014
14037
  function applyTranslation(c) {
14015
14038
  const oldPos = positionMap.get(c);
@@ -14017,12 +14040,29 @@ function applyTranslation(c) {
14017
14040
  const dx = oldPos.left - newPos.left;
14018
14041
  const dy = oldPos.top - newPos.top;
14019
14042
  if (dx || dy) {
14020
- const s = c.el.style;
14021
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
14043
+ const el = c.el;
14044
+ const s = el.style;
14045
+ const rect = el.getBoundingClientRect();
14046
+ let scaleX = 1;
14047
+ let scaleY = 1;
14048
+ if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
14049
+ if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
14050
+ if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
14051
+ if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
14052
+ if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;
14053
+ if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;
14054
+ s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
14022
14055
  s.transitionDuration = "0s";
14023
14056
  return c;
14024
14057
  }
14025
14058
  }
14059
+ function getPosition(el) {
14060
+ const rect = el.getBoundingClientRect();
14061
+ return {
14062
+ left: rect.left,
14063
+ top: rect.top
14064
+ };
14065
+ }
14026
14066
  function hasCSSTransform(el, root, moveClass) {
14027
14067
  const clone = el.cloneNode();
14028
14068
  const _vtc = el[vtcKey];
@@ -14333,6 +14373,7 @@ const modifierGuards = {
14333
14373
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
14334
14374
  };
14335
14375
  const withModifiers = (fn, modifiers) => {
14376
+ if (!fn) return fn;
14336
14377
  const cache = fn._withMods || (fn._withMods = {});
14337
14378
  const cacheKey = modifiers.join(".");
14338
14379
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {