@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(
@@ -3997,7 +3999,22 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
3997
3999
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
3998
4000
  o: { nextSibling, parentNode, querySelector, insert, createText }
3999
4001
  }, hydrateChildren) {
4000
- function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
4002
+ function hydrateAnchor(target2, targetNode) {
4003
+ let targetAnchor = targetNode;
4004
+ while (targetAnchor) {
4005
+ if (targetAnchor && targetAnchor.nodeType === 8) {
4006
+ if (targetAnchor.data === "teleport start anchor") {
4007
+ vnode.targetStart = targetAnchor;
4008
+ } else if (targetAnchor.data === "teleport anchor") {
4009
+ vnode.targetAnchor = targetAnchor;
4010
+ target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
4011
+ break;
4012
+ }
4013
+ }
4014
+ targetAnchor = nextSibling(targetAnchor);
4015
+ }
4016
+ }
4017
+ function hydrateDisabledTeleport(node2, vnode2) {
4001
4018
  vnode2.anchor = hydrateChildren(
4002
4019
  nextSibling(node2),
4003
4020
  vnode2,
@@ -4007,8 +4024,6 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
4007
4024
  slotScopeIds,
4008
4025
  optimized
4009
4026
  );
4010
- vnode2.targetStart = targetStart;
4011
- vnode2.targetAnchor = targetAnchor;
4012
4027
  }
4013
4028
  const target = vnode.target = resolveTarget(
4014
4029
  vnode.props,
@@ -4019,27 +4034,22 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
4019
4034
  const targetNode = target._lpa || target.firstChild;
4020
4035
  if (vnode.shapeFlag & 16) {
4021
4036
  if (disabled) {
4022
- hydrateDisabledTeleport(
4023
- node,
4024
- vnode,
4025
- targetNode,
4026
- targetNode && nextSibling(targetNode)
4027
- );
4037
+ hydrateDisabledTeleport(node, vnode);
4038
+ hydrateAnchor(target, targetNode);
4039
+ if (!vnode.targetAnchor) {
4040
+ prepareAnchor(
4041
+ target,
4042
+ vnode,
4043
+ createText,
4044
+ insert,
4045
+ // if target is the same as the main view, insert anchors before current node
4046
+ // to avoid hydrating mismatch
4047
+ parentNode(node) === target ? node : null
4048
+ );
4049
+ }
4028
4050
  } else {
4029
4051
  vnode.anchor = nextSibling(node);
4030
- let targetAnchor = targetNode;
4031
- while (targetAnchor) {
4032
- if (targetAnchor && targetAnchor.nodeType === 8) {
4033
- if (targetAnchor.data === "teleport start anchor") {
4034
- vnode.targetStart = targetAnchor;
4035
- } else if (targetAnchor.data === "teleport anchor") {
4036
- vnode.targetAnchor = targetAnchor;
4037
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
4038
- break;
4039
- }
4040
- }
4041
- targetAnchor = nextSibling(targetAnchor);
4042
- }
4052
+ hydrateAnchor(target, targetNode);
4043
4053
  if (!vnode.targetAnchor) {
4044
4054
  prepareAnchor(target, vnode, createText, insert);
4045
4055
  }
@@ -4057,7 +4067,9 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
4057
4067
  updateCssVars(vnode, disabled);
4058
4068
  } else if (disabled) {
4059
4069
  if (vnode.shapeFlag & 16) {
4060
- hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
4070
+ hydrateDisabledTeleport(node, vnode);
4071
+ vnode.targetStart = node;
4072
+ vnode.targetAnchor = nextSibling(node);
4061
4073
  }
4062
4074
  }
4063
4075
  return vnode.anchor && nextSibling(vnode.anchor);
@@ -4081,13 +4093,13 @@ function updateCssVars(vnode, isDisabled) {
4081
4093
  ctx.ut();
4082
4094
  }
4083
4095
  }
4084
- function prepareAnchor(target, vnode, createText, insert) {
4096
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
4085
4097
  const targetStart = vnode.targetStart = createText("");
4086
4098
  const targetAnchor = vnode.targetAnchor = createText("");
4087
4099
  targetStart[TeleportEndKey] = targetAnchor;
4088
4100
  if (target) {
4089
- insert(targetStart, target);
4090
- insert(targetAnchor, target);
4101
+ insert(targetStart, target, anchor);
4102
+ insert(targetAnchor, target, anchor);
4091
4103
  }
4092
4104
  return targetAnchor;
4093
4105
  }
@@ -4326,7 +4338,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4326
4338
  }
4327
4339
  }
4328
4340
  let called = false;
4329
- const done = el[enterCbKey$1] = (cancelled) => {
4341
+ el[enterCbKey$1] = (cancelled) => {
4330
4342
  if (called) return;
4331
4343
  called = true;
4332
4344
  if (cancelled) {
@@ -4339,6 +4351,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4339
4351
  }
4340
4352
  el[enterCbKey$1] = void 0;
4341
4353
  };
4354
+ const done = el[enterCbKey$1].bind(null, false);
4342
4355
  if (hook) {
4343
4356
  callAsyncHook(hook, [el, done]);
4344
4357
  } else {
@@ -4358,7 +4371,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4358
4371
  }
4359
4372
  callHook(onBeforeLeave, [el]);
4360
4373
  let called = false;
4361
- const done = el[leaveCbKey] = (cancelled) => {
4374
+ el[leaveCbKey] = (cancelled) => {
4362
4375
  if (called) return;
4363
4376
  called = true;
4364
4377
  remove();
@@ -4372,6 +4385,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4372
4385
  delete leavingVNodesCache[key2];
4373
4386
  }
4374
4387
  };
4388
+ const done = el[leaveCbKey].bind(null, false);
4375
4389
  leavingVNodesCache[key2] = vnode;
4376
4390
  if (onLeave) {
4377
4391
  callAsyncHook(onLeave, [el, done]);
@@ -4484,8 +4498,7 @@ function useTemplateRef(key) {
4484
4498
  const r = shallowRef(null);
4485
4499
  if (i) {
4486
4500
  const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
4487
- let desc;
4488
- if (!!(process.env.NODE_ENV !== "production") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
4501
+ if (!!(process.env.NODE_ENV !== "production") && isTemplateRefKey(refs, key)) {
4489
4502
  warn$1(`useTemplateRef('${key}') already exists.`);
4490
4503
  } else {
4491
4504
  Object.defineProperty(refs, key, {
@@ -4505,6 +4518,10 @@ function useTemplateRef(key) {
4505
4518
  }
4506
4519
  return ret;
4507
4520
  }
4521
+ function isTemplateRefKey(refs, key) {
4522
+ let desc;
4523
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
4524
+ }
4508
4525
 
4509
4526
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
4510
4527
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -4550,10 +4567,19 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4550
4567
  return false;
4551
4568
  }
4552
4569
  }
4570
+ if (isTemplateRefKey(refs, key)) {
4571
+ return false;
4572
+ }
4553
4573
  return hasOwn(rawSetupState, key);
4554
4574
  };
4555
- const canSetRef = (ref2) => {
4556
- return !!!(process.env.NODE_ENV !== "production") || !knownTemplateRefs.has(ref2);
4575
+ const canSetRef = (ref2, key) => {
4576
+ if (!!(process.env.NODE_ENV !== "production") && knownTemplateRefs.has(ref2)) {
4577
+ return false;
4578
+ }
4579
+ if (key && isTemplateRefKey(refs, key)) {
4580
+ return false;
4581
+ }
4582
+ return true;
4557
4583
  };
4558
4584
  if (oldRef != null && oldRef !== ref) {
4559
4585
  invalidatePendingSetRef(oldRawRef);
@@ -4563,10 +4589,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4563
4589
  setupState[oldRef] = null;
4564
4590
  }
4565
4591
  } else if (isRef(oldRef)) {
4566
- if (canSetRef(oldRef)) {
4592
+ const oldRawRefAtom = oldRawRef;
4593
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
4567
4594
  oldRef.value = null;
4568
4595
  }
4569
- const oldRawRefAtom = oldRawRef;
4570
4596
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
4571
4597
  }
4572
4598
  }
@@ -4590,7 +4616,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4590
4616
  }
4591
4617
  } else {
4592
4618
  const newVal = [refValue];
4593
- if (canSetRef(ref)) {
4619
+ if (canSetRef(ref, rawRef.k)) {
4594
4620
  ref.value = newVal;
4595
4621
  }
4596
4622
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -4605,7 +4631,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4605
4631
  setupState[ref] = value;
4606
4632
  }
4607
4633
  } else if (_isRef) {
4608
- if (canSetRef(ref)) {
4634
+ if (canSetRef(ref, rawRef.k)) {
4609
4635
  ref.value = value;
4610
4636
  }
4611
4637
  if (rawRef.k) refs[rawRef.k] = value;
@@ -7481,7 +7507,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7481
7507
  return vm;
7482
7508
  }
7483
7509
  }
7484
- Vue.version = `2.6.14-compat:${"3.5.27"}`;
7510
+ Vue.version = `2.6.14-compat:${"3.5.28"}`;
7485
7511
  Vue.config = singletonApp.config;
7486
7512
  Vue.use = (plugin, ...options) => {
7487
7513
  if (plugin && isFunction(plugin.install)) {
@@ -8597,7 +8623,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
8597
8623
  const dynamicProps = nextVNode.dynamicProps;
8598
8624
  for (let i = 0; i < dynamicProps.length; i++) {
8599
8625
  const key = dynamicProps[i];
8600
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
8626
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
8601
8627
  return true;
8602
8628
  }
8603
8629
  }
@@ -8628,12 +8654,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8628
8654
  }
8629
8655
  for (let i = 0; i < nextKeys.length; i++) {
8630
8656
  const key = nextKeys[i];
8631
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
8657
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8632
8658
  return true;
8633
8659
  }
8634
8660
  }
8635
8661
  return false;
8636
8662
  }
8663
+ function hasPropValueChanged(nextProps, prevProps, key) {
8664
+ const nextProp = nextProps[key];
8665
+ const prevProp = prevProps[key];
8666
+ if (key === "style" && isObject(nextProp) && isObject(prevProp)) {
8667
+ return !looseEqual(nextProp, prevProp);
8668
+ }
8669
+ return nextProp !== prevProp;
8670
+ }
8637
8671
  function updateHOCHostEl({ vnode, parent }, el) {
8638
8672
  while (parent) {
8639
8673
  const root = parent.subTree;
@@ -9436,15 +9470,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9436
9470
  } else {
9437
9471
  const el = n2.el = n1.el;
9438
9472
  if (n2.children !== n1.children) {
9439
- if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
9440
- const childNodes = container.childNodes;
9441
- const newChild = hostCreateText(n2.children);
9442
- const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
9443
- hostInsert(newChild, container, oldChild);
9444
- hostRemove(oldChild);
9445
- } else {
9446
- hostSetText(el, n2.children);
9447
- }
9473
+ hostSetText(el, n2.children);
9448
9474
  }
9449
9475
  }
9450
9476
  };
@@ -9520,7 +9546,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9520
9546
  optimized
9521
9547
  );
9522
9548
  } else {
9523
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
9549
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
9524
9550
  try {
9525
9551
  if (customElement) {
9526
9552
  customElement._beginPatch();
@@ -10017,8 +10043,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10017
10043
  hydrateSubTree();
10018
10044
  }
10019
10045
  } else {
10020
- if (root.ce && // @ts-expect-error _def is private
10021
- root.ce._def.shadowRoot !== false) {
10046
+ if (root.ce && root.ce._hasShadowRoot()) {
10022
10047
  root.ce._injectChildStyle(type);
10023
10048
  }
10024
10049
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -10085,9 +10110,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10085
10110
  updateComponentPreRender(instance, next, optimized);
10086
10111
  }
10087
10112
  nonHydratedAsyncRoot.asyncDep.then(() => {
10088
- if (!instance.isUnmounted) {
10089
- componentUpdateFn();
10090
- }
10113
+ queuePostRenderEffect(() => {
10114
+ if (!instance.isUnmounted) update();
10115
+ }, parentSuspense);
10091
10116
  });
10092
10117
  return;
10093
10118
  }
@@ -10802,12 +10827,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
10802
10827
  traverseStaticChildren(c1, c2);
10803
10828
  }
10804
10829
  if (c2.type === Text) {
10805
- if (c2.patchFlag !== -1) {
10806
- c2.el = c1.el;
10807
- } else {
10808
- c2.__elIndex = i + // take fragment start anchor into account
10809
- (n1.type === Fragment ? 1 : 0);
10830
+ if (c2.patchFlag === -1) {
10831
+ c2 = ch2[i] = cloneIfMounted(c2);
10810
10832
  }
10833
+ c2.el = c1.el;
10811
10834
  }
10812
10835
  if (c2.type === Comment && !c2.el) {
10813
10836
  c2.el = c1.el;
@@ -12626,7 +12649,7 @@ function isMemoSame(cached, memo) {
12626
12649
  return true;
12627
12650
  }
12628
12651
 
12629
- const version = "3.5.27";
12652
+ const version = "3.5.28";
12630
12653
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12631
12654
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12632
12655
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -13988,6 +14011,12 @@ class VueElement extends BaseClass {
13988
14011
  this._update();
13989
14012
  }
13990
14013
  }
14014
+ /**
14015
+ * @internal
14016
+ */
14017
+ _hasShadowRoot() {
14018
+ return this._def.shadowRoot !== false;
14019
+ }
13991
14020
  /**
13992
14021
  * @internal
13993
14022
  */
@@ -14131,10 +14160,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14131
14160
  instance
14132
14161
  )
14133
14162
  );
14134
- positionMap.set(child, {
14135
- left: child.el.offsetLeft,
14136
- top: child.el.offsetTop
14137
- });
14163
+ positionMap.set(child, getPosition(child.el));
14138
14164
  }
14139
14165
  }
14140
14166
  }
@@ -14165,10 +14191,7 @@ function callPendingCbs(c) {
14165
14191
  }
14166
14192
  }
14167
14193
  function recordPosition(c) {
14168
- newPositionMap.set(c, {
14169
- left: c.el.offsetLeft,
14170
- top: c.el.offsetTop
14171
- });
14194
+ newPositionMap.set(c, getPosition(c.el));
14172
14195
  }
14173
14196
  function applyTranslation(c) {
14174
14197
  const oldPos = positionMap.get(c);
@@ -14176,12 +14199,29 @@ function applyTranslation(c) {
14176
14199
  const dx = oldPos.left - newPos.left;
14177
14200
  const dy = oldPos.top - newPos.top;
14178
14201
  if (dx || dy) {
14179
- const s = c.el.style;
14180
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
14202
+ const el = c.el;
14203
+ const s = el.style;
14204
+ const rect = el.getBoundingClientRect();
14205
+ let scaleX = 1;
14206
+ let scaleY = 1;
14207
+ if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
14208
+ if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
14209
+ if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
14210
+ if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
14211
+ if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;
14212
+ if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;
14213
+ s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
14181
14214
  s.transitionDuration = "0s";
14182
14215
  return c;
14183
14216
  }
14184
14217
  }
14218
+ function getPosition(el) {
14219
+ const rect = el.getBoundingClientRect();
14220
+ return {
14221
+ left: rect.left,
14222
+ top: rect.top
14223
+ };
14224
+ }
14185
14225
  function hasCSSTransform(el, root, moveClass) {
14186
14226
  const clone = el.cloneNode();
14187
14227
  const _vtc = el[vtcKey];
@@ -14492,6 +14532,7 @@ const modifierGuards = {
14492
14532
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
14493
14533
  };
14494
14534
  const withModifiers = (fn, modifiers) => {
14535
+ if (!fn) return fn;
14495
14536
  const cache = fn._withMods || (fn._withMods = {});
14496
14537
  const cacheKey = modifiers.join(".");
14497
14538
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {