@vue/compat 3.5.22 → 3.5.24

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.22
2
+ * @vue/compat v3.5.24
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -4652,14 +4652,16 @@ Server rendered element contains more child nodes than client vdom.`
4652
4652
  if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) {
4653
4653
  clientText = clientText.slice(1);
4654
4654
  }
4655
- if (el.textContent !== clientText) {
4655
+ const { textContent } = el;
4656
+ if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM
4657
+ textContent !== clientText.replace(/\r\n|\r/g, "\n")) {
4656
4658
  if (!isMismatchAllowed(el, 0 /* TEXT */)) {
4657
4659
  warn$1(
4658
4660
  `Hydration text content mismatch on`,
4659
4661
  el,
4660
4662
  `
4661
- - rendered on server: ${el.textContent}
4662
- - expected on client: ${vnode.children}`
4663
+ - rendered on server: ${textContent}
4664
+ - expected on client: ${clientText}`
4663
4665
  );
4664
4666
  logMismatchError();
4665
4667
  }
@@ -5254,7 +5256,10 @@ function defineAsyncComponent(source) {
5254
5256
  error: error.value
5255
5257
  });
5256
5258
  } else if (loadingComponent && !delayed.value) {
5257
- return createVNode(loadingComponent);
5259
+ return createInnerComp(
5260
+ loadingComponent,
5261
+ instance
5262
+ );
5258
5263
  }
5259
5264
  };
5260
5265
  }
@@ -7199,7 +7204,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7199
7204
  return vm;
7200
7205
  }
7201
7206
  }
7202
- Vue.version = `2.6.14-compat:${"3.5.22"}`;
7207
+ Vue.version = `2.6.14-compat:${"3.5.24"}`;
7203
7208
  Vue.config = singletonApp.config;
7204
7209
  Vue.use = (plugin, ...options) => {
7205
7210
  if (plugin && isFunction(plugin.install)) {
@@ -8645,15 +8650,25 @@ function baseCreateRenderer(options, createHydrationFns) {
8645
8650
  optimized
8646
8651
  );
8647
8652
  } else {
8648
- patchElement(
8649
- n1,
8650
- n2,
8651
- parentComponent,
8652
- parentSuspense,
8653
- namespace,
8654
- slotScopeIds,
8655
- optimized
8656
- );
8653
+ const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
8654
+ try {
8655
+ if (customElement) {
8656
+ customElement._beginPatch();
8657
+ }
8658
+ patchElement(
8659
+ n1,
8660
+ n2,
8661
+ parentComponent,
8662
+ parentSuspense,
8663
+ namespace,
8664
+ slotScopeIds,
8665
+ optimized
8666
+ );
8667
+ } finally {
8668
+ if (customElement) {
8669
+ customElement._endPatch();
8670
+ }
8671
+ }
8657
8672
  }
8658
8673
  };
8659
8674
  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
@@ -10958,7 +10973,8 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
10958
10973
  pendingId,
10959
10974
  effects,
10960
10975
  parentComponent: parentComponent2,
10961
- container: container2
10976
+ container: container2,
10977
+ isInFallback
10962
10978
  } = suspense;
10963
10979
  let delayEnter = false;
10964
10980
  if (suspense.isHydrating) {
@@ -10975,6 +10991,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
10975
10991
  0
10976
10992
  );
10977
10993
  queuePostFlushCb(effects);
10994
+ if (isInFallback && vnode2.ssFallback) {
10995
+ vnode2.ssFallback.el = null;
10996
+ }
10978
10997
  }
10979
10998
  };
10980
10999
  }
@@ -10983,6 +11002,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
10983
11002
  anchor = next(activeBranch);
10984
11003
  }
10985
11004
  unmount(activeBranch, parentComponent2, suspense, true);
11005
+ if (!delayEnter && isInFallback && vnode2.ssFallback) {
11006
+ vnode2.ssFallback.el = null;
11007
+ }
10986
11008
  }
10987
11009
  if (!delayEnter) {
10988
11010
  move(pendingBranch, container2, anchor, 0);
@@ -11101,6 +11123,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11101
11123
  optimized2
11102
11124
  );
11103
11125
  if (placeholder) {
11126
+ vnode2.placeholder = null;
11104
11127
  remove(placeholder);
11105
11128
  }
11106
11129
  updateHOCHostEl(instance, vnode2.el);
@@ -12355,7 +12378,7 @@ function isMemoSame(cached, memo) {
12355
12378
  return true;
12356
12379
  }
12357
12380
 
12358
- const version = "3.5.22";
12381
+ const version = "3.5.24";
12359
12382
  const warn = warn$1 ;
12360
12383
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12361
12384
  const devtools = devtools$1 ;
@@ -13265,6 +13288,9 @@ function shouldSetAsProp(el, key, value, isSVG) {
13265
13288
  if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
13266
13289
  return false;
13267
13290
  }
13291
+ if (key === "sandbox" && el.tagName === "IFRAME") {
13292
+ return false;
13293
+ }
13268
13294
  if (key === "form") {
13269
13295
  return false;
13270
13296
  }
@@ -13325,6 +13351,8 @@ class VueElement extends BaseClass {
13325
13351
  this._nonce = this._def.nonce;
13326
13352
  this._connected = false;
13327
13353
  this._resolved = false;
13354
+ this._patching = false;
13355
+ this._dirty = false;
13328
13356
  this._numberProps = null;
13329
13357
  this._styleChildren = /* @__PURE__ */ new WeakSet();
13330
13358
  this._ob = null;
@@ -13500,7 +13528,7 @@ class VueElement extends BaseClass {
13500
13528
  return this._getProp(key);
13501
13529
  },
13502
13530
  set(val) {
13503
- this._setProp(key, val, true, true);
13531
+ this._setProp(key, val, true, !this._patching);
13504
13532
  }
13505
13533
  });
13506
13534
  }
@@ -13526,6 +13554,7 @@ class VueElement extends BaseClass {
13526
13554
  */
13527
13555
  _setProp(key, val, shouldReflect = true, shouldUpdate = false) {
13528
13556
  if (val !== this._props[key]) {
13557
+ this._dirty = true;
13529
13558
  if (val === REMOVAL) {
13530
13559
  delete this._props[key];
13531
13560
  } else {
@@ -13680,10 +13709,14 @@ class VueElement extends BaseClass {
13680
13709
  if (this._teleportTargets) {
13681
13710
  roots.push(...this._teleportTargets);
13682
13711
  }
13683
- return roots.reduce((res, i) => {
13684
- res.push(...Array.from(i.querySelectorAll("slot")));
13685
- return res;
13686
- }, []);
13712
+ const slots = /* @__PURE__ */ new Set();
13713
+ for (const root of roots) {
13714
+ const found = root.querySelectorAll("slot");
13715
+ for (let i = 0; i < found.length; i++) {
13716
+ slots.add(found[i]);
13717
+ }
13718
+ }
13719
+ return Array.from(slots);
13687
13720
  }
13688
13721
  /**
13689
13722
  * @internal
@@ -13691,6 +13724,22 @@ class VueElement extends BaseClass {
13691
13724
  _injectChildStyle(comp) {
13692
13725
  this._applyStyles(comp.styles, comp);
13693
13726
  }
13727
+ /**
13728
+ * @internal
13729
+ */
13730
+ _beginPatch() {
13731
+ this._patching = true;
13732
+ this._dirty = false;
13733
+ }
13734
+ /**
13735
+ * @internal
13736
+ */
13737
+ _endPatch() {
13738
+ this._patching = false;
13739
+ if (this._dirty && this._instance) {
13740
+ this._update();
13741
+ }
13742
+ }
13694
13743
  /**
13695
13744
  * @internal
13696
13745
  */
@@ -13834,10 +13883,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
13834
13883
  instance
13835
13884
  )
13836
13885
  );
13837
- positionMap.set(
13838
- child,
13839
- child.el.getBoundingClientRect()
13840
- );
13886
+ positionMap.set(child, {
13887
+ left: child.el.offsetLeft,
13888
+ top: child.el.offsetTop
13889
+ });
13841
13890
  }
13842
13891
  }
13843
13892
  }
@@ -13868,7 +13917,10 @@ function callPendingCbs(c) {
13868
13917
  }
13869
13918
  }
13870
13919
  function recordPosition(c) {
13871
- newPositionMap.set(c, c.el.getBoundingClientRect());
13920
+ newPositionMap.set(c, {
13921
+ left: c.el.offsetLeft,
13922
+ top: c.el.offsetTop
13923
+ });
13872
13924
  }
13873
13925
  function applyTranslation(c) {
13874
13926
  const oldPos = positionMap.get(c);
@@ -13914,24 +13966,22 @@ function onCompositionEnd(e) {
13914
13966
  }
13915
13967
  }
13916
13968
  const assignKey = Symbol("_assign");
13969
+ function castValue(value, trim, number) {
13970
+ if (trim) value = value.trim();
13971
+ if (number) value = looseToNumber(value);
13972
+ return value;
13973
+ }
13917
13974
  const vModelText = {
13918
13975
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
13919
13976
  el[assignKey] = getModelAssigner(vnode);
13920
13977
  const castToNumber = number || vnode.props && vnode.props.type === "number";
13921
13978
  addEventListener(el, lazy ? "change" : "input", (e) => {
13922
13979
  if (e.target.composing) return;
13923
- let domValue = el.value;
13924
- if (trim) {
13925
- domValue = domValue.trim();
13926
- }
13927
- if (castToNumber) {
13928
- domValue = looseToNumber(domValue);
13929
- }
13930
- el[assignKey](domValue);
13980
+ el[assignKey](castValue(el.value, trim, castToNumber));
13931
13981
  });
13932
- if (trim) {
13982
+ if (trim || castToNumber) {
13933
13983
  addEventListener(el, "change", () => {
13934
- el.value = el.value.trim();
13984
+ el.value = castValue(el.value, trim, castToNumber);
13935
13985
  });
13936
13986
  }
13937
13987
  if (!lazy) {