@vue/compat 3.5.27 → 3.5.29

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.29
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
  }
@@ -4313,6 +4325,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4313
4325
  callHook(hook, [el]);
4314
4326
  },
4315
4327
  enter(el) {
4328
+ if (leavingVNodesCache[key] === vnode) return;
4316
4329
  let hook = onEnter;
4317
4330
  let afterHook = onAfterEnter;
4318
4331
  let cancelHook = onEnterCancelled;
@@ -4326,7 +4339,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4326
4339
  }
4327
4340
  }
4328
4341
  let called = false;
4329
- const done = el[enterCbKey$1] = (cancelled) => {
4342
+ el[enterCbKey$1] = (cancelled) => {
4330
4343
  if (called) return;
4331
4344
  called = true;
4332
4345
  if (cancelled) {
@@ -4339,6 +4352,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4339
4352
  }
4340
4353
  el[enterCbKey$1] = void 0;
4341
4354
  };
4355
+ const done = el[enterCbKey$1].bind(null, false);
4342
4356
  if (hook) {
4343
4357
  callAsyncHook(hook, [el, done]);
4344
4358
  } else {
@@ -4358,7 +4372,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4358
4372
  }
4359
4373
  callHook(onBeforeLeave, [el]);
4360
4374
  let called = false;
4361
- const done = el[leaveCbKey] = (cancelled) => {
4375
+ el[leaveCbKey] = (cancelled) => {
4362
4376
  if (called) return;
4363
4377
  called = true;
4364
4378
  remove();
@@ -4372,6 +4386,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4372
4386
  delete leavingVNodesCache[key2];
4373
4387
  }
4374
4388
  };
4389
+ const done = el[leaveCbKey].bind(null, false);
4375
4390
  leavingVNodesCache[key2] = vnode;
4376
4391
  if (onLeave) {
4377
4392
  callAsyncHook(onLeave, [el, done]);
@@ -4484,8 +4499,7 @@ function useTemplateRef(key) {
4484
4499
  const r = shallowRef(null);
4485
4500
  if (i) {
4486
4501
  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) {
4502
+ if (!!(process.env.NODE_ENV !== "production") && isTemplateRefKey(refs, key)) {
4489
4503
  warn$1(`useTemplateRef('${key}') already exists.`);
4490
4504
  } else {
4491
4505
  Object.defineProperty(refs, key, {
@@ -4505,6 +4519,10 @@ function useTemplateRef(key) {
4505
4519
  }
4506
4520
  return ret;
4507
4521
  }
4522
+ function isTemplateRefKey(refs, key) {
4523
+ let desc;
4524
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
4525
+ }
4508
4526
 
4509
4527
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
4510
4528
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
@@ -4550,10 +4568,19 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4550
4568
  return false;
4551
4569
  }
4552
4570
  }
4571
+ if (isTemplateRefKey(refs, key)) {
4572
+ return false;
4573
+ }
4553
4574
  return hasOwn(rawSetupState, key);
4554
4575
  };
4555
- const canSetRef = (ref2) => {
4556
- return !!!(process.env.NODE_ENV !== "production") || !knownTemplateRefs.has(ref2);
4576
+ const canSetRef = (ref2, key) => {
4577
+ if (!!(process.env.NODE_ENV !== "production") && knownTemplateRefs.has(ref2)) {
4578
+ return false;
4579
+ }
4580
+ if (key && isTemplateRefKey(refs, key)) {
4581
+ return false;
4582
+ }
4583
+ return true;
4557
4584
  };
4558
4585
  if (oldRef != null && oldRef !== ref) {
4559
4586
  invalidatePendingSetRef(oldRawRef);
@@ -4563,10 +4590,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4563
4590
  setupState[oldRef] = null;
4564
4591
  }
4565
4592
  } else if (isRef(oldRef)) {
4566
- if (canSetRef(oldRef)) {
4593
+ const oldRawRefAtom = oldRawRef;
4594
+ if (canSetRef(oldRef, oldRawRefAtom.k)) {
4567
4595
  oldRef.value = null;
4568
4596
  }
4569
- const oldRawRefAtom = oldRawRef;
4570
4597
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
4571
4598
  }
4572
4599
  }
@@ -4590,7 +4617,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4590
4617
  }
4591
4618
  } else {
4592
4619
  const newVal = [refValue];
4593
- if (canSetRef(ref)) {
4620
+ if (canSetRef(ref, rawRef.k)) {
4594
4621
  ref.value = newVal;
4595
4622
  }
4596
4623
  if (rawRef.k) refs[rawRef.k] = newVal;
@@ -4605,7 +4632,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4605
4632
  setupState[ref] = value;
4606
4633
  }
4607
4634
  } else if (_isRef) {
4608
- if (canSetRef(ref)) {
4635
+ if (canSetRef(ref, rawRef.k)) {
4609
4636
  ref.value = value;
4610
4637
  }
4611
4638
  if (rawRef.k) refs[rawRef.k] = value;
@@ -6952,13 +6979,24 @@ function withAsyncContext(getAwaitable) {
6952
6979
  }
6953
6980
  let awaitable = getAwaitable();
6954
6981
  unsetCurrentInstance();
6982
+ const cleanup = () => {
6983
+ if (getCurrentInstance() !== ctx) ctx.scope.off();
6984
+ unsetCurrentInstance();
6985
+ };
6955
6986
  if (isPromise(awaitable)) {
6956
6987
  awaitable = awaitable.catch((e) => {
6957
6988
  setCurrentInstance(ctx);
6989
+ Promise.resolve().then(() => Promise.resolve().then(cleanup));
6958
6990
  throw e;
6959
6991
  });
6960
6992
  }
6961
- return [awaitable, () => setCurrentInstance(ctx)];
6993
+ return [
6994
+ awaitable,
6995
+ () => {
6996
+ setCurrentInstance(ctx);
6997
+ Promise.resolve().then(cleanup);
6998
+ }
6999
+ ];
6962
7000
  }
6963
7001
 
6964
7002
  function createDuplicateChecker() {
@@ -7481,7 +7519,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7481
7519
  return vm;
7482
7520
  }
7483
7521
  }
7484
- Vue.version = `2.6.14-compat:${"3.5.27"}`;
7522
+ Vue.version = `2.6.14-compat:${"3.5.29"}`;
7485
7523
  Vue.config = singletonApp.config;
7486
7524
  Vue.use = (plugin, ...options) => {
7487
7525
  if (plugin && isFunction(plugin.install)) {
@@ -8597,7 +8635,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
8597
8635
  const dynamicProps = nextVNode.dynamicProps;
8598
8636
  for (let i = 0; i < dynamicProps.length; i++) {
8599
8637
  const key = dynamicProps[i];
8600
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
8638
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
8601
8639
  return true;
8602
8640
  }
8603
8641
  }
@@ -8628,12 +8666,20 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8628
8666
  }
8629
8667
  for (let i = 0; i < nextKeys.length; i++) {
8630
8668
  const key = nextKeys[i];
8631
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
8669
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8632
8670
  return true;
8633
8671
  }
8634
8672
  }
8635
8673
  return false;
8636
8674
  }
8675
+ function hasPropValueChanged(nextProps, prevProps, key) {
8676
+ const nextProp = nextProps[key];
8677
+ const prevProp = prevProps[key];
8678
+ if (key === "style" && isObject(nextProp) && isObject(prevProp)) {
8679
+ return !looseEqual(nextProp, prevProp);
8680
+ }
8681
+ return nextProp !== prevProp;
8682
+ }
8637
8683
  function updateHOCHostEl({ vnode, parent }, el) {
8638
8684
  while (parent) {
8639
8685
  const root = parent.subTree;
@@ -9436,15 +9482,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9436
9482
  } else {
9437
9483
  const el = n2.el = n1.el;
9438
9484
  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
- }
9485
+ hostSetText(el, n2.children);
9448
9486
  }
9449
9487
  }
9450
9488
  };
@@ -9520,7 +9558,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9520
9558
  optimized
9521
9559
  );
9522
9560
  } else {
9523
- const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
9561
+ const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
9524
9562
  try {
9525
9563
  if (customElement) {
9526
9564
  customElement._beginPatch();
@@ -10017,8 +10055,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10017
10055
  hydrateSubTree();
10018
10056
  }
10019
10057
  } else {
10020
- if (root.ce && // @ts-expect-error _def is private
10021
- root.ce._def.shadowRoot !== false) {
10058
+ if (root.ce && root.ce._hasShadowRoot()) {
10022
10059
  root.ce._injectChildStyle(type);
10023
10060
  }
10024
10061
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -10085,9 +10122,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10085
10122
  updateComponentPreRender(instance, next, optimized);
10086
10123
  }
10087
10124
  nonHydratedAsyncRoot.asyncDep.then(() => {
10088
- if (!instance.isUnmounted) {
10089
- componentUpdateFn();
10090
- }
10125
+ queuePostRenderEffect(() => {
10126
+ if (!instance.isUnmounted) update();
10127
+ }, parentSuspense);
10091
10128
  });
10092
10129
  return;
10093
10130
  }
@@ -10802,12 +10839,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
10802
10839
  traverseStaticChildren(c1, c2);
10803
10840
  }
10804
10841
  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);
10842
+ if (c2.patchFlag === -1) {
10843
+ c2 = ch2[i] = cloneIfMounted(c2);
10810
10844
  }
10845
+ c2.el = c1.el;
10811
10846
  }
10812
10847
  if (c2.type === Comment && !c2.el) {
10813
10848
  c2.el = c1.el;
@@ -12626,7 +12661,7 @@ function isMemoSame(cached, memo) {
12626
12661
  return true;
12627
12662
  }
12628
12663
 
12629
- const version = "3.5.27";
12664
+ const version = "3.5.29";
12630
12665
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12631
12666
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12632
12667
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -13988,6 +14023,12 @@ class VueElement extends BaseClass {
13988
14023
  this._update();
13989
14024
  }
13990
14025
  }
14026
+ /**
14027
+ * @internal
14028
+ */
14029
+ _hasShadowRoot() {
14030
+ return this._def.shadowRoot !== false;
14031
+ }
13991
14032
  /**
13992
14033
  * @internal
13993
14034
  */
@@ -14131,10 +14172,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14131
14172
  instance
14132
14173
  )
14133
14174
  );
14134
- positionMap.set(child, {
14135
- left: child.el.offsetLeft,
14136
- top: child.el.offsetTop
14137
- });
14175
+ positionMap.set(child, getPosition(child.el));
14138
14176
  }
14139
14177
  }
14140
14178
  }
@@ -14165,10 +14203,7 @@ function callPendingCbs(c) {
14165
14203
  }
14166
14204
  }
14167
14205
  function recordPosition(c) {
14168
- newPositionMap.set(c, {
14169
- left: c.el.offsetLeft,
14170
- top: c.el.offsetTop
14171
- });
14206
+ newPositionMap.set(c, getPosition(c.el));
14172
14207
  }
14173
14208
  function applyTranslation(c) {
14174
14209
  const oldPos = positionMap.get(c);
@@ -14176,12 +14211,29 @@ function applyTranslation(c) {
14176
14211
  const dx = oldPos.left - newPos.left;
14177
14212
  const dy = oldPos.top - newPos.top;
14178
14213
  if (dx || dy) {
14179
- const s = c.el.style;
14180
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
14214
+ const el = c.el;
14215
+ const s = el.style;
14216
+ const rect = el.getBoundingClientRect();
14217
+ let scaleX = 1;
14218
+ let scaleY = 1;
14219
+ if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
14220
+ if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
14221
+ if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
14222
+ if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
14223
+ if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;
14224
+ if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;
14225
+ s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
14181
14226
  s.transitionDuration = "0s";
14182
14227
  return c;
14183
14228
  }
14184
14229
  }
14230
+ function getPosition(el) {
14231
+ const rect = el.getBoundingClientRect();
14232
+ return {
14233
+ left: rect.left,
14234
+ top: rect.top
14235
+ };
14236
+ }
14185
14237
  function hasCSSTransform(el, root, moveClass) {
14186
14238
  const clone = el.cloneNode();
14187
14239
  const _vtc = el[vtcKey];
@@ -14492,6 +14544,7 @@ const modifierGuards = {
14492
14544
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
14493
14545
  };
14494
14546
  const withModifiers = (fn, modifiers) => {
14547
+ if (!fn) return fn;
14495
14548
  const cache = fn._withMods || (fn._withMods = {});
14496
14549
  const cacheKey = modifiers.join(".");
14497
14550
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {