@vue/compat 3.5.4 → 3.5.5

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.4
2
+ * @vue/compat v3.5.5
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -663,9 +663,11 @@ function prepareDeps(sub) {
663
663
  function cleanupDeps(sub) {
664
664
  let head;
665
665
  let tail = sub.depsTail;
666
- for (let link = tail; link; link = link.prevDep) {
666
+ let link = tail;
667
+ while (link) {
668
+ const prev = link.prevDep;
667
669
  if (link.version === -1) {
668
- if (link === tail) tail = link.prevDep;
670
+ if (link === tail) tail = prev;
669
671
  removeSub(link);
670
672
  removeDep(link);
671
673
  } else {
@@ -673,6 +675,7 @@ function cleanupDeps(sub) {
673
675
  }
674
676
  link.dep.activeLink = link.prevActiveLink;
675
677
  link.prevActiveLink = void 0;
678
+ link = prev;
676
679
  }
677
680
  sub.deps = head;
678
681
  sub.depsTail = tail;
@@ -801,6 +804,14 @@ function cleanupEffect(e) {
801
804
  }
802
805
 
803
806
  let globalVersion = 0;
807
+ class Link {
808
+ constructor(sub, dep) {
809
+ this.sub = sub;
810
+ this.dep = dep;
811
+ this.version = dep.version;
812
+ this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;
813
+ }
814
+ }
804
815
  class Dep {
805
816
  constructor(computed) {
806
817
  this.computed = computed;
@@ -823,16 +834,7 @@ class Dep {
823
834
  }
824
835
  let link = this.activeLink;
825
836
  if (link === void 0 || link.sub !== activeSub) {
826
- link = this.activeLink = {
827
- dep: this,
828
- sub: activeSub,
829
- version: this.version,
830
- nextDep: void 0,
831
- prevDep: void 0,
832
- nextSub: void 0,
833
- prevSub: void 0,
834
- prevActiveLink: void 0
835
- };
837
+ link = this.activeLink = new Link(activeSub, this);
836
838
  if (!activeSub.deps) {
837
839
  activeSub.deps = activeSub.depsTail = link;
838
840
  } else {
@@ -2745,7 +2747,9 @@ function reload(id, newComp) {
2745
2747
  dirtyInstances.delete(instance);
2746
2748
  } else if (instance.parent) {
2747
2749
  queueJob(() => {
2750
+ isHmrUpdating = true;
2748
2751
  instance.parent.update();
2752
+ isHmrUpdating = false;
2749
2753
  dirtyInstances.delete(instance);
2750
2754
  });
2751
2755
  } else if (instance.appContext.reload) {
@@ -3564,6 +3568,9 @@ const TeleportImpl = {
3564
3568
  insert(mainAnchor, container, anchor);
3565
3569
  const mount = (container2, anchor2) => {
3566
3570
  if (shapeFlag & 16) {
3571
+ if (parentComponent && parentComponent.isCE) {
3572
+ parentComponent.ce._teleportTarget = container2;
3573
+ }
3567
3574
  mountChildren(
3568
3575
  children,
3569
3576
  container2,
@@ -4597,7 +4604,11 @@ Server rendered element contains more child nodes than client vdom.`
4597
4604
  remove(cur);
4598
4605
  }
4599
4606
  } else if (shapeFlag & 8) {
4600
- if (el.textContent !== vnode.children) {
4607
+ let clientText = vnode.children;
4608
+ if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) {
4609
+ clientText = clientText.slice(1);
4610
+ }
4611
+ if (el.textContent !== clientText) {
4601
4612
  if (!isMismatchAllowed(el, 0 /* TEXT */)) {
4602
4613
  warn$1(
4603
4614
  `Hydration text content mismatch on`,
@@ -4796,7 +4807,7 @@ Server rendered element contains fewer child nodes than client vdom.`
4796
4807
  }
4797
4808
  };
4798
4809
  const isTemplateNode = (node) => {
4799
- return node.nodeType === 1 && node.tagName.toLowerCase() === "template";
4810
+ return node.nodeType === 1 && node.tagName === "TEMPLATE";
4800
4811
  };
4801
4812
  return [hydrate, hydrateNode];
4802
4813
  }
@@ -5148,7 +5159,7 @@ function defineAsyncComponent(source) {
5148
5159
  load().then(() => {
5149
5160
  loaded.value = true;
5150
5161
  if (instance.parent && isKeepAlive(instance.parent.vnode)) {
5151
- queueJob(instance.parent.update);
5162
+ instance.parent.update();
5152
5163
  }
5153
5164
  }).catch((err) => {
5154
5165
  onError(err);
@@ -7099,7 +7110,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7099
7110
  return vm;
7100
7111
  }
7101
7112
  }
7102
- Vue.version = `2.6.14-compat:${"3.5.4"}`;
7113
+ Vue.version = `2.6.14-compat:${"3.5.5"}`;
7103
7114
  Vue.config = singletonApp.config;
7104
7115
  Vue.use = (plugin, ...options) => {
7105
7116
  if (plugin && isFunction(plugin.install)) {
@@ -8921,6 +8932,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8921
8932
  }
8922
8933
  }
8923
8934
  if (instance.asyncDep) {
8935
+ if (isHmrUpdating) initialVNode.el = null;
8924
8936
  parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
8925
8937
  if (!initialVNode.el) {
8926
8938
  const placeholder = instance.subTree = createVNode(Comment);
@@ -12212,7 +12224,7 @@ function isMemoSame(cached, memo) {
12212
12224
  return true;
12213
12225
  }
12214
12226
 
12215
- const version = "3.5.4";
12227
+ const version = "3.5.5";
12216
12228
  const warn = warn$1 ;
12217
12229
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12218
12230
  const devtools = devtools$1 ;
@@ -13200,6 +13212,7 @@ class VueElement extends BaseClass {
13200
13212
  }
13201
13213
  }
13202
13214
  connectedCallback() {
13215
+ if (!this.isConnected) return;
13203
13216
  if (!this.shadowRoot) {
13204
13217
  this._parseSlots();
13205
13218
  }
@@ -13242,7 +13255,7 @@ class VueElement extends BaseClass {
13242
13255
  this._ob = null;
13243
13256
  }
13244
13257
  this._app && this._app.unmount();
13245
- this._instance.ce = void 0;
13258
+ if (this._instance) this._instance.ce = void 0;
13246
13259
  this._app = this._instance = null;
13247
13260
  }
13248
13261
  });
@@ -13461,7 +13474,7 @@ class VueElement extends BaseClass {
13461
13474
  }
13462
13475
  }
13463
13476
  /**
13464
- * Only called when shaddowRoot is false
13477
+ * Only called when shadowRoot is false
13465
13478
  */
13466
13479
  _parseSlots() {
13467
13480
  const slots = this._slots = {};
@@ -13473,10 +13486,10 @@ class VueElement extends BaseClass {
13473
13486
  }
13474
13487
  }
13475
13488
  /**
13476
- * Only called when shaddowRoot is false
13489
+ * Only called when shadowRoot is false
13477
13490
  */
13478
13491
  _renderSlots() {
13479
- const outlets = this.querySelectorAll("slot");
13492
+ const outlets = (this._teleportTarget || this).querySelectorAll("slot");
13480
13493
  const scopeId = this._instance.type.__scopeId;
13481
13494
  for (let i = 0; i < outlets.length; i++) {
13482
13495
  const o = outlets[i];
@@ -13664,7 +13677,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
13664
13677
  child,
13665
13678
  resolveTransitionHooks(child, cssTransitionProps, state, instance)
13666
13679
  );
13667
- } else {
13680
+ } else if (child.type !== Text) {
13668
13681
  warn(`<TransitionGroup> children must be keyed.`);
13669
13682
  }
13670
13683
  }
@@ -14906,7 +14919,7 @@ class Tokenizer {
14906
14919
  this.sequenceIndex += 1;
14907
14920
  } else if (this.sequenceIndex === 0) {
14908
14921
  if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {
14909
- if (c === this.delimiterOpen[0]) {
14922
+ if (!this.inVPre && c === this.delimiterOpen[0]) {
14910
14923
  this.state = 2;
14911
14924
  this.delimiterIndex = 0;
14912
14925
  this.stateInterpolationOpen(c);
@@ -15876,6 +15889,7 @@ const defaultParserOptions = {
15876
15889
  getNamespace: () => 0,
15877
15890
  isVoidTag: NO,
15878
15891
  isPreTag: NO,
15892
+ isIgnoreNewlineTag: NO,
15879
15893
  isCustomElement: NO,
15880
15894
  onError: defaultOnError,
15881
15895
  onWarn: defaultOnWarn,
@@ -16318,7 +16332,7 @@ function onCloseTag(el, end, isImplied = false) {
16318
16332
  el.innerLoc.end.offset
16319
16333
  );
16320
16334
  }
16321
- const { tag, ns } = el;
16335
+ const { tag, ns, children } = el;
16322
16336
  if (!inVPre) {
16323
16337
  if (tag === "slot") {
16324
16338
  el.tagType = 2;
@@ -16329,7 +16343,13 @@ function onCloseTag(el, end, isImplied = false) {
16329
16343
  }
16330
16344
  }
16331
16345
  if (!tokenizer.inRCDATA) {
16332
- el.children = condenseWhitespace(el.children, el.tag);
16346
+ el.children = condenseWhitespace(children);
16347
+ }
16348
+ if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) {
16349
+ const first = children[0];
16350
+ if (first && first.type === 2) {
16351
+ first.content = first.content.replace(/^\r?\n/, "");
16352
+ }
16333
16353
  }
16334
16354
  if (ns === 0 && currentOptions.isPreTag(tag)) {
16335
16355
  inPre--;
@@ -16481,12 +16501,6 @@ function condenseWhitespace(nodes, tag) {
16481
16501
  }
16482
16502
  }
16483
16503
  }
16484
- if (inPre && tag && currentOptions.isPreTag(tag)) {
16485
- const first = nodes[0];
16486
- if (first && first.type === 2) {
16487
- first.content = first.content.replace(/^\r?\n/, "");
16488
- }
16489
- }
16490
16504
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
16491
16505
  }
16492
16506
  function isAllWhitespace(str) {
@@ -19752,6 +19766,7 @@ const parserOptions = {
19752
19766
  isVoidTag,
19753
19767
  isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),
19754
19768
  isPreTag: (tag) => tag === "pre",
19769
+ isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea",
19755
19770
  decodeEntities: decodeHtmlBrowser ,
19756
19771
  isBuiltInComponent: (tag) => {
19757
19772
  if (tag === "Transition" || tag === "transition") {