@vue/compat 3.4.29 → 3.4.30

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.
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.4.29
2
+ * @vue/compat v3.4.30
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -557,8 +557,10 @@ class ReactiveEffect {
557
557
  for (let i = 0; i < this._depsLength; i++) {
558
558
  const dep = this.deps[i];
559
559
  if (dep.computed) {
560
- if (dep.computed.effect._dirtyLevel === 2)
560
+ if (dep.computed.effect._dirtyLevel === 2) {
561
+ resetTracking();
561
562
  return true;
563
+ }
562
564
  triggerComputed(dep.computed);
563
565
  if (this._dirtyLevel >= 5) {
564
566
  break;
@@ -694,13 +696,13 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
694
696
  var _a;
695
697
  pauseScheduling();
696
698
  for (const effect2 of dep.keys()) {
699
+ let tracking;
697
700
  if (!dep.computed && effect2.computed) {
698
- if (dep.get(effect2) === effect2._trackId && effect2._runnings > 0) {
701
+ if (effect2._runnings > 0 && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
699
702
  effect2._dirtyLevel = 2;
700
703
  continue;
701
704
  }
702
705
  }
703
- let tracking;
704
706
  if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
705
707
  effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
706
708
  if (effect2.computed && effect2._dirtyLevel === 2) {
@@ -1417,8 +1419,11 @@ class ComputedRefImpl {
1417
1419
  }
1418
1420
  get value() {
1419
1421
  const self = toRaw(this);
1422
+ const lastDirtyLevel = self.effect._dirtyLevel;
1420
1423
  if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
1421
- triggerRefValue(self, 5);
1424
+ if (lastDirtyLevel !== 3) {
1425
+ triggerRefValue(self, 5);
1426
+ }
1422
1427
  }
1423
1428
  trackRefValue(self);
1424
1429
  if (self.effect._dirtyLevel >= 2) {
@@ -3385,7 +3390,6 @@ const SuspenseImpl = {
3385
3390
  }
3386
3391
  },
3387
3392
  hydrate: hydrateSuspense,
3388
- create: createSuspenseBoundary,
3389
3393
  normalize: normalizeSuspenseChildren
3390
3394
  };
3391
3395
  const Suspense = SuspenseImpl ;
@@ -5741,7 +5745,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5741
5745
  return vm;
5742
5746
  }
5743
5747
  }
5744
- Vue.version = `2.6.14-compat:${"3.4.29"}`;
5748
+ Vue.version = `2.6.14-compat:${"3.4.30"}`;
5745
5749
  Vue.config = singletonApp.config;
5746
5750
  Vue.use = (plugin, ...options) => {
5747
5751
  if (plugin && isFunction(plugin.install)) {
@@ -7050,18 +7054,8 @@ function createHydrationFunctions(rendererInternals) {
7050
7054
  let domType = node.nodeType;
7051
7055
  vnode.el = node;
7052
7056
  {
7053
- if (!("__vnode" in node)) {
7054
- Object.defineProperty(node, "__vnode", {
7055
- value: vnode,
7056
- enumerable: false
7057
- });
7058
- }
7059
- if (!("__vueParentComponent" in node)) {
7060
- Object.defineProperty(node, "__vueParentComponent", {
7061
- value: parentComponent,
7062
- enumerable: false
7063
- });
7064
- }
7057
+ def(node, "__vnode", vnode, true);
7058
+ def(node, "__vueParentComponent", parentComponent, true);
7065
7059
  }
7066
7060
  if (patchFlag === -2) {
7067
7061
  optimized = false;
@@ -7284,7 +7278,9 @@ Server rendered element contains more child nodes than client vdom.`
7284
7278
  if (props) {
7285
7279
  {
7286
7280
  for (const key in props) {
7287
- if (propHasMismatch(el, key, props[key], vnode, parentComponent)) {
7281
+ if (// #11189 skip if this node has directives that have created hooks
7282
+ // as it could have mutated the DOM in any possible way
7283
+ !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {
7288
7284
  logMismatchError();
7289
7285
  }
7290
7286
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@@ -7459,7 +7455,6 @@ Server rendered element contains fewer child nodes than client vdom.`
7459
7455
  return [hydrate, hydrateNode];
7460
7456
  }
7461
7457
  function propHasMismatch(el, key, clientValue, vnode, instance) {
7462
- var _a;
7463
7458
  let mismatchType;
7464
7459
  let mismatchKey;
7465
7460
  let actual;
@@ -7482,13 +7477,8 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
7482
7477
  }
7483
7478
  }
7484
7479
  }
7485
- const root = instance == null ? void 0 : instance.subTree;
7486
- if (vnode === root || // eslint-disable-next-line no-restricted-syntax
7487
- (root == null ? void 0 : root.type) === Fragment && root.children.includes(vnode)) {
7488
- const cssVars = (_a = instance == null ? void 0 : instance.getCssVars) == null ? void 0 : _a.call(instance);
7489
- for (const key2 in cssVars) {
7490
- expectedMap.set(`--${key2}`, String(cssVars[key2]));
7491
- }
7480
+ if (instance) {
7481
+ resolveCssVars(instance, vnode, expectedMap);
7492
7482
  }
7493
7483
  if (!isMapEqual(actualMap, expectedMap)) {
7494
7484
  mismatchType = mismatchKey = "style";
@@ -7548,8 +7538,8 @@ function toStyleMap(str) {
7548
7538
  const styleMap = /* @__PURE__ */ new Map();
7549
7539
  for (const item of str.split(";")) {
7550
7540
  let [key, value] = item.split(":");
7551
- key = key == null ? void 0 : key.trim();
7552
- value = value == null ? void 0 : value.trim();
7541
+ key = key.trim();
7542
+ value = value && value.trim();
7553
7543
  if (key && value) {
7554
7544
  styleMap.set(key, value);
7555
7545
  }
@@ -7567,6 +7557,18 @@ function isMapEqual(a, b) {
7567
7557
  }
7568
7558
  return true;
7569
7559
  }
7560
+ function resolveCssVars(instance, vnode, expectedMap) {
7561
+ const root = instance.subTree;
7562
+ if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
7563
+ const cssVars = instance.getCssVars();
7564
+ for (const key in cssVars) {
7565
+ expectedMap.set(`--${key}`, String(cssVars[key]));
7566
+ }
7567
+ }
7568
+ if (vnode === root && instance.parent) {
7569
+ resolveCssVars(instance.parent, instance.vnode, expectedMap);
7570
+ }
7571
+ }
7570
7572
 
7571
7573
  let supported;
7572
7574
  let perf;
@@ -7884,14 +7886,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7884
7886
  }
7885
7887
  }
7886
7888
  {
7887
- Object.defineProperty(el, "__vnode", {
7888
- value: vnode,
7889
- enumerable: false
7890
- });
7891
- Object.defineProperty(el, "__vueParentComponent", {
7892
- value: parentComponent,
7893
- enumerable: false
7894
- });
7889
+ def(el, "__vnode", vnode, true);
7890
+ def(el, "__vueParentComponent", parentComponent, true);
7895
7891
  }
7896
7892
  if (dirs) {
7897
7893
  invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
@@ -7953,6 +7949,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7953
7949
  };
7954
7950
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
7955
7951
  const el = n2.el = n1.el;
7952
+ {
7953
+ el.__vnode = n2;
7954
+ }
7956
7955
  let { patchFlag, dynamicChildren, dirs } = n2;
7957
7956
  patchFlag |= n1.patchFlag & 16;
7958
7957
  const oldProps = n1.props || EMPTY_OBJ;
@@ -8872,6 +8871,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8872
8871
  dirs,
8873
8872
  memoIndex
8874
8873
  } = vnode;
8874
+ if (patchFlag === -2) {
8875
+ optimized = false;
8876
+ }
8875
8877
  if (ref != null) {
8876
8878
  setRef(ref, null, parentSuspense, vnode, true);
8877
8879
  }
@@ -8903,7 +8905,6 @@ function baseCreateRenderer(options, createHydrationFns) {
8903
8905
  vnode,
8904
8906
  parentComponent,
8905
8907
  parentSuspense,
8906
- optimized,
8907
8908
  internals,
8908
8909
  doRemove
8909
8910
  );
@@ -10230,7 +10231,7 @@ const TeleportImpl = {
10230
10231
  }
10231
10232
  updateCssVars(n2);
10232
10233
  },
10233
- remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {
10234
+ remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
10234
10235
  const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;
10235
10236
  if (target) {
10236
10237
  hostRemove(targetAnchor);
@@ -11495,7 +11496,7 @@ function isMemoSame(cached, memo) {
11495
11496
  return true;
11496
11497
  }
11497
11498
 
11498
- const version = "3.4.29";
11499
+ const version = "3.4.30";
11499
11500
  const warn = warn$1 ;
11500
11501
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11501
11502
  const devtools = devtools$1 ;
@@ -12078,7 +12079,10 @@ function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBoolean
12078
12079
  if (value == null || isBoolean && !includeBooleanAttr(value)) {
12079
12080
  el.removeAttribute(key);
12080
12081
  } else {
12081
- el.setAttribute(key, isBoolean ? "" : String(value));
12082
+ el.setAttribute(
12083
+ key,
12084
+ isBoolean ? "" : isSymbol(value) ? String(value) : value
12085
+ );
12082
12086
  }
12083
12087
  }
12084
12088
  }
@@ -12280,7 +12284,7 @@ const patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, paren
12280
12284
  parentSuspense,
12281
12285
  unmountChildren
12282
12286
  );
12283
- if (key === "value" || key === "checked" || key === "selected") {
12287
+ if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) {
12284
12288
  patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
12285
12289
  }
12286
12290
  } else {
@@ -18144,9 +18148,7 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
18144
18148
  break;
18145
18149
  }
18146
18150
  }
18147
- if (prev && isTemplateNode(prev) && findDir(prev, "if")) {
18148
- children.splice(i, 1);
18149
- i--;
18151
+ if (prev && isTemplateNode(prev) && findDir(prev, /^(else-)?if$/)) {
18150
18152
  let conditional = dynamicSlots[dynamicSlots.length - 1];
18151
18153
  while (conditional.alternate.type === 19) {
18152
18154
  conditional = conditional.alternate;
@@ -19302,8 +19304,7 @@ const transformFilter = (node, context) => {
19302
19304
  }
19303
19305
  if (node.type === 5) {
19304
19306
  rewriteFilter(node.content, context);
19305
- }
19306
- if (node.type === 1) {
19307
+ } else if (node.type === 1) {
19307
19308
  node.props.forEach((prop) => {
19308
19309
  if (prop.type === 7 && prop.name !== "for" && prop.exp) {
19309
19310
  rewriteFilter(prop.exp, context);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.4.29
2
+ * @vue/compat v3.4.30
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -475,8 +475,10 @@ class ReactiveEffect {
475
475
  for (let i = 0; i < this._depsLength; i++) {
476
476
  const dep = this.deps[i];
477
477
  if (dep.computed) {
478
- if (dep.computed.effect._dirtyLevel === 2)
478
+ if (dep.computed.effect._dirtyLevel === 2) {
479
+ resetTracking();
479
480
  return true;
481
+ }
480
482
  triggerComputed(dep.computed);
481
483
  if (this._dirtyLevel >= 5) {
482
484
  break;
@@ -607,13 +609,13 @@ const queueEffectSchedulers = [];
607
609
  function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
608
610
  pauseScheduling();
609
611
  for (const effect2 of dep.keys()) {
612
+ let tracking;
610
613
  if (!dep.computed && effect2.computed) {
611
- if (dep.get(effect2) === effect2._trackId && effect2._runnings > 0) {
614
+ if (effect2._runnings > 0 && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
612
615
  effect2._dirtyLevel = 2;
613
616
  continue;
614
617
  }
615
618
  }
616
- let tracking;
617
619
  if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
618
620
  effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
619
621
  if (effect2.computed && effect2._dirtyLevel === 2) {
@@ -1271,8 +1273,11 @@ class ComputedRefImpl {
1271
1273
  }
1272
1274
  get value() {
1273
1275
  const self = toRaw(this);
1276
+ const lastDirtyLevel = self.effect._dirtyLevel;
1274
1277
  if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
1275
- triggerRefValue(self, 5);
1278
+ if (lastDirtyLevel !== 3) {
1279
+ triggerRefValue(self, 5);
1280
+ }
1276
1281
  }
1277
1282
  trackRefValue(self);
1278
1283
  if (self.effect._dirtyLevel >= 2) {
@@ -2415,7 +2420,6 @@ const SuspenseImpl = {
2415
2420
  }
2416
2421
  },
2417
2422
  hydrate: hydrateSuspense,
2418
- create: createSuspenseBoundary,
2419
2423
  normalize: normalizeSuspenseChildren
2420
2424
  };
2421
2425
  const Suspense = SuspenseImpl ;
@@ -4459,7 +4463,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
4459
4463
  return vm;
4460
4464
  }
4461
4465
  }
4462
- Vue.version = `2.6.14-compat:${"3.4.29"}`;
4466
+ Vue.version = `2.6.14-compat:${"3.4.30"}`;
4463
4467
  Vue.config = singletonApp.config;
4464
4468
  Vue.use = (plugin, ...options) => {
4465
4469
  if (plugin && isFunction(plugin.install)) {
@@ -7002,6 +7006,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7002
7006
  dirs,
7003
7007
  memoIndex
7004
7008
  } = vnode;
7009
+ if (patchFlag === -2) {
7010
+ optimized = false;
7011
+ }
7005
7012
  if (ref != null) {
7006
7013
  setRef(ref, null, parentSuspense, vnode, true);
7007
7014
  }
@@ -7033,7 +7040,6 @@ function baseCreateRenderer(options, createHydrationFns) {
7033
7040
  vnode,
7034
7041
  parentComponent,
7035
7042
  parentSuspense,
7036
- optimized,
7037
7043
  internals,
7038
7044
  doRemove
7039
7045
  );
@@ -8249,7 +8255,7 @@ const TeleportImpl = {
8249
8255
  }
8250
8256
  updateCssVars(n2);
8251
8257
  },
8252
- remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {
8258
+ remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
8253
8259
  const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;
8254
8260
  if (target) {
8255
8261
  hostRemove(targetAnchor);
@@ -9155,7 +9161,7 @@ function isMemoSame(cached, memo) {
9155
9161
  return true;
9156
9162
  }
9157
9163
 
9158
- const version = "3.4.29";
9164
+ const version = "3.4.30";
9159
9165
  const warn$1 = NOOP;
9160
9166
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9161
9167
  const devtools = void 0;
@@ -9724,7 +9730,10 @@ function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBoolean
9724
9730
  if (value == null || isBoolean && !includeBooleanAttr(value)) {
9725
9731
  el.removeAttribute(key);
9726
9732
  } else {
9727
- el.setAttribute(key, isBoolean ? "" : String(value));
9733
+ el.setAttribute(
9734
+ key,
9735
+ isBoolean ? "" : isSymbol(value) ? String(value) : value
9736
+ );
9728
9737
  }
9729
9738
  }
9730
9739
  }
@@ -9905,7 +9914,7 @@ const patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, paren
9905
9914
  parentSuspense,
9906
9915
  unmountChildren
9907
9916
  );
9908
- if (key === "value" || key === "checked" || key === "selected") {
9917
+ if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) {
9909
9918
  patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
9910
9919
  }
9911
9920
  } else {
@@ -15537,9 +15546,7 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
15537
15546
  break;
15538
15547
  }
15539
15548
  }
15540
- if (prev && isTemplateNode(prev) && findDir(prev, "if")) {
15541
- children.splice(i, 1);
15542
- i--;
15549
+ if (prev && isTemplateNode(prev) && findDir(prev, /^(else-)?if$/)) {
15543
15550
  let conditional = dynamicSlots[dynamicSlots.length - 1];
15544
15551
  while (conditional.alternate.type === 19) {
15545
15552
  conditional = conditional.alternate;
@@ -16657,8 +16664,7 @@ const transformFilter = (node, context) => {
16657
16664
  }
16658
16665
  if (node.type === 5) {
16659
16666
  rewriteFilter(node.content, context);
16660
- }
16661
- if (node.type === 1) {
16667
+ } else if (node.type === 1) {
16662
16668
  node.props.forEach((prop) => {
16663
16669
  if (prop.type === 7 && prop.name !== "for" && prop.exp) {
16664
16670
  rewriteFilter(prop.exp, context);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.4.29
2
+ * @vue/compat v3.4.30
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -506,8 +506,10 @@ class ReactiveEffect {
506
506
  for (let i = 0; i < this._depsLength; i++) {
507
507
  const dep = this.deps[i];
508
508
  if (dep.computed) {
509
- if (dep.computed.effect._dirtyLevel === 2)
509
+ if (dep.computed.effect._dirtyLevel === 2) {
510
+ resetTracking();
510
511
  return true;
512
+ }
511
513
  triggerComputed(dep.computed);
512
514
  if (this._dirtyLevel >= 5) {
513
515
  break;
@@ -643,13 +645,13 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
643
645
  var _a;
644
646
  pauseScheduling();
645
647
  for (const effect2 of dep.keys()) {
648
+ let tracking;
646
649
  if (!dep.computed && effect2.computed) {
647
- if (dep.get(effect2) === effect2._trackId && effect2._runnings > 0) {
650
+ if (effect2._runnings > 0 && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
648
651
  effect2._dirtyLevel = 2;
649
652
  continue;
650
653
  }
651
654
  }
652
- let tracking;
653
655
  if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
654
656
  effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
655
657
  if (effect2.computed && effect2._dirtyLevel === 2) {
@@ -1366,8 +1368,11 @@ class ComputedRefImpl {
1366
1368
  }
1367
1369
  get value() {
1368
1370
  const self = toRaw(this);
1371
+ const lastDirtyLevel = self.effect._dirtyLevel;
1369
1372
  if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
1370
- triggerRefValue(self, 5);
1373
+ if (lastDirtyLevel !== 3) {
1374
+ triggerRefValue(self, 5);
1375
+ }
1371
1376
  }
1372
1377
  trackRefValue(self);
1373
1378
  if (self.effect._dirtyLevel >= 2) {
@@ -3334,7 +3339,6 @@ const SuspenseImpl = {
3334
3339
  }
3335
3340
  },
3336
3341
  hydrate: hydrateSuspense,
3337
- create: createSuspenseBoundary,
3338
3342
  normalize: normalizeSuspenseChildren
3339
3343
  };
3340
3344
  const Suspense = SuspenseImpl ;
@@ -5690,7 +5694,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5690
5694
  return vm;
5691
5695
  }
5692
5696
  }
5693
- Vue.version = `2.6.14-compat:${"3.4.29"}`;
5697
+ Vue.version = `2.6.14-compat:${"3.4.30"}`;
5694
5698
  Vue.config = singletonApp.config;
5695
5699
  Vue.use = (plugin, ...options) => {
5696
5700
  if (plugin && isFunction(plugin.install)) {
@@ -6999,18 +7003,8 @@ function createHydrationFunctions(rendererInternals) {
6999
7003
  let domType = node.nodeType;
7000
7004
  vnode.el = node;
7001
7005
  {
7002
- if (!("__vnode" in node)) {
7003
- Object.defineProperty(node, "__vnode", {
7004
- value: vnode,
7005
- enumerable: false
7006
- });
7007
- }
7008
- if (!("__vueParentComponent" in node)) {
7009
- Object.defineProperty(node, "__vueParentComponent", {
7010
- value: parentComponent,
7011
- enumerable: false
7012
- });
7013
- }
7006
+ def(node, "__vnode", vnode, true);
7007
+ def(node, "__vueParentComponent", parentComponent, true);
7014
7008
  }
7015
7009
  if (patchFlag === -2) {
7016
7010
  optimized = false;
@@ -7233,7 +7227,9 @@ Server rendered element contains more child nodes than client vdom.`
7233
7227
  if (props) {
7234
7228
  {
7235
7229
  for (const key in props) {
7236
- if (propHasMismatch(el, key, props[key], vnode, parentComponent)) {
7230
+ if (// #11189 skip if this node has directives that have created hooks
7231
+ // as it could have mutated the DOM in any possible way
7232
+ !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {
7237
7233
  logMismatchError();
7238
7234
  }
7239
7235
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@@ -7408,7 +7404,6 @@ Server rendered element contains fewer child nodes than client vdom.`
7408
7404
  return [hydrate, hydrateNode];
7409
7405
  }
7410
7406
  function propHasMismatch(el, key, clientValue, vnode, instance) {
7411
- var _a;
7412
7407
  let mismatchType;
7413
7408
  let mismatchKey;
7414
7409
  let actual;
@@ -7431,13 +7426,8 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
7431
7426
  }
7432
7427
  }
7433
7428
  }
7434
- const root = instance == null ? void 0 : instance.subTree;
7435
- if (vnode === root || // eslint-disable-next-line no-restricted-syntax
7436
- (root == null ? void 0 : root.type) === Fragment && root.children.includes(vnode)) {
7437
- const cssVars = (_a = instance == null ? void 0 : instance.getCssVars) == null ? void 0 : _a.call(instance);
7438
- for (const key2 in cssVars) {
7439
- expectedMap.set(`--${key2}`, String(cssVars[key2]));
7440
- }
7429
+ if (instance) {
7430
+ resolveCssVars(instance, vnode, expectedMap);
7441
7431
  }
7442
7432
  if (!isMapEqual(actualMap, expectedMap)) {
7443
7433
  mismatchType = mismatchKey = "style";
@@ -7497,8 +7487,8 @@ function toStyleMap(str) {
7497
7487
  const styleMap = /* @__PURE__ */ new Map();
7498
7488
  for (const item of str.split(";")) {
7499
7489
  let [key, value] = item.split(":");
7500
- key = key == null ? void 0 : key.trim();
7501
- value = value == null ? void 0 : value.trim();
7490
+ key = key.trim();
7491
+ value = value && value.trim();
7502
7492
  if (key && value) {
7503
7493
  styleMap.set(key, value);
7504
7494
  }
@@ -7516,6 +7506,18 @@ function isMapEqual(a, b) {
7516
7506
  }
7517
7507
  return true;
7518
7508
  }
7509
+ function resolveCssVars(instance, vnode, expectedMap) {
7510
+ const root = instance.subTree;
7511
+ if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
7512
+ const cssVars = instance.getCssVars();
7513
+ for (const key in cssVars) {
7514
+ expectedMap.set(`--${key}`, String(cssVars[key]));
7515
+ }
7516
+ }
7517
+ if (vnode === root && instance.parent) {
7518
+ resolveCssVars(instance.parent, instance.vnode, expectedMap);
7519
+ }
7520
+ }
7519
7521
 
7520
7522
  let supported;
7521
7523
  let perf;
@@ -7833,14 +7835,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7833
7835
  }
7834
7836
  }
7835
7837
  {
7836
- Object.defineProperty(el, "__vnode", {
7837
- value: vnode,
7838
- enumerable: false
7839
- });
7840
- Object.defineProperty(el, "__vueParentComponent", {
7841
- value: parentComponent,
7842
- enumerable: false
7843
- });
7838
+ def(el, "__vnode", vnode, true);
7839
+ def(el, "__vueParentComponent", parentComponent, true);
7844
7840
  }
7845
7841
  if (dirs) {
7846
7842
  invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
@@ -7902,6 +7898,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7902
7898
  };
7903
7899
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
7904
7900
  const el = n2.el = n1.el;
7901
+ {
7902
+ el.__vnode = n2;
7903
+ }
7905
7904
  let { patchFlag, dynamicChildren, dirs } = n2;
7906
7905
  patchFlag |= n1.patchFlag & 16;
7907
7906
  const oldProps = n1.props || EMPTY_OBJ;
@@ -8821,6 +8820,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8821
8820
  dirs,
8822
8821
  memoIndex
8823
8822
  } = vnode;
8823
+ if (patchFlag === -2) {
8824
+ optimized = false;
8825
+ }
8824
8826
  if (ref != null) {
8825
8827
  setRef(ref, null, parentSuspense, vnode, true);
8826
8828
  }
@@ -8852,7 +8854,6 @@ function baseCreateRenderer(options, createHydrationFns) {
8852
8854
  vnode,
8853
8855
  parentComponent,
8854
8856
  parentSuspense,
8855
- optimized,
8856
8857
  internals,
8857
8858
  doRemove
8858
8859
  );
@@ -10153,7 +10154,7 @@ const TeleportImpl = {
10153
10154
  }
10154
10155
  updateCssVars(n2);
10155
10156
  },
10156
- remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {
10157
+ remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
10157
10158
  const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;
10158
10159
  if (target) {
10159
10160
  hostRemove(targetAnchor);
@@ -11404,7 +11405,7 @@ function isMemoSame(cached, memo) {
11404
11405
  return true;
11405
11406
  }
11406
11407
 
11407
- const version = "3.4.29";
11408
+ const version = "3.4.30";
11408
11409
  const warn = warn$1 ;
11409
11410
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11410
11411
  const devtools = devtools$1 ;
@@ -12031,7 +12032,10 @@ function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBoolean
12031
12032
  if (value == null || isBoolean && !includeBooleanAttr(value)) {
12032
12033
  el.removeAttribute(key);
12033
12034
  } else {
12034
- el.setAttribute(key, isBoolean ? "" : String(value));
12035
+ el.setAttribute(
12036
+ key,
12037
+ isBoolean ? "" : isSymbol(value) ? String(value) : value
12038
+ );
12035
12039
  }
12036
12040
  }
12037
12041
  }
@@ -12233,7 +12237,7 @@ const patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, paren
12233
12237
  parentSuspense,
12234
12238
  unmountChildren
12235
12239
  );
12236
- if (key === "value" || key === "checked" || key === "selected") {
12240
+ if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) {
12237
12241
  patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
12238
12242
  }
12239
12243
  } else {
@@ -17229,9 +17233,7 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
17229
17233
  break;
17230
17234
  }
17231
17235
  }
17232
- if (prev && isTemplateNode(prev) && findDir(prev, "if")) {
17233
- children.splice(i, 1);
17234
- i--;
17236
+ if (prev && isTemplateNode(prev) && findDir(prev, /^(else-)?if$/)) {
17235
17237
  let conditional = dynamicSlots[dynamicSlots.length - 1];
17236
17238
  while (conditional.alternate.type === 19) {
17237
17239
  conditional = conditional.alternate;
@@ -18265,8 +18267,7 @@ const transformFilter = (node, context) => {
18265
18267
  }
18266
18268
  if (node.type === 5) {
18267
18269
  rewriteFilter(node.content, context);
18268
- }
18269
- if (node.type === 1) {
18270
+ } else if (node.type === 1) {
18270
18271
  node.props.forEach((prop) => {
18271
18272
  if (prop.type === 7 && prop.name !== "for" && prop.exp) {
18272
18273
  rewriteFilter(prop.exp, context);