@vue/compat 3.5.32 → 3.5.34

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.32
2
+ * @vue/compat v3.5.34
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -427,12 +427,18 @@ class EffectScope {
427
427
  */
428
428
  this.cleanups = [];
429
429
  this._isPaused = false;
430
+ this._warnOnRun = true;
430
431
  this.__v_skip = true;
431
- this.parent = activeEffectScope;
432
432
  if (!detached && activeEffectScope) {
433
- this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
434
- this
435
- ) - 1;
433
+ if (activeEffectScope.active) {
434
+ this.parent = activeEffectScope;
435
+ this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
436
+ this
437
+ ) - 1;
438
+ } else {
439
+ this._active = false;
440
+ this._warnOnRun = false;
441
+ }
436
442
  }
437
443
  }
438
444
  get active() {
@@ -480,7 +486,7 @@ class EffectScope {
480
486
  } finally {
481
487
  activeEffectScope = currentEffectScope;
482
488
  }
483
- } else if (!!(process.env.NODE_ENV !== "production")) {
489
+ } else if (!!(process.env.NODE_ENV !== "production") && this._warnOnRun) {
484
490
  warn$2(`cannot run an inactive effect scope.`);
485
491
  }
486
492
  }
@@ -500,7 +506,18 @@ class EffectScope {
500
506
  */
501
507
  off() {
502
508
  if (this._on > 0 && --this._on === 0) {
503
- activeEffectScope = this.prevScope;
509
+ if (activeEffectScope === this) {
510
+ activeEffectScope = this.prevScope;
511
+ } else {
512
+ let current = activeEffectScope;
513
+ while (current) {
514
+ if (current.prevScope === this) {
515
+ current.prevScope = this.prevScope;
516
+ break;
517
+ }
518
+ current = current.prevScope;
519
+ }
520
+ }
504
521
  this.prevScope = void 0;
505
522
  }
506
523
  }
@@ -575,8 +592,12 @@ class ReactiveEffect {
575
592
  */
576
593
  this.cleanup = void 0;
577
594
  this.scheduler = void 0;
578
- if (activeEffectScope && activeEffectScope.active) {
579
- activeEffectScope.effects.push(this);
595
+ if (activeEffectScope) {
596
+ if (activeEffectScope.active) {
597
+ activeEffectScope.effects.push(this);
598
+ } else {
599
+ this.flags &= -2;
600
+ }
580
601
  }
581
602
  }
582
603
  pause() {
@@ -3787,7 +3808,7 @@ const TeleportImpl = {
3787
3808
  mc: mountChildren,
3788
3809
  pc: patchChildren,
3789
3810
  pbc: patchBlockChildren,
3790
- o: { insert, querySelector, createText, createComment }
3811
+ o: { insert, querySelector, createText, createComment, parentNode }
3791
3812
  } = internals;
3792
3813
  const disabled = isTeleportDisabled(n2.props);
3793
3814
  let { dynamicChildren } = n2;
@@ -3835,7 +3856,8 @@ const TeleportImpl = {
3835
3856
  if (pendingMounts.get(vnode) !== mountJob) return;
3836
3857
  pendingMounts.delete(vnode);
3837
3858
  if (isTeleportDisabled(vnode.props)) {
3838
- mount(vnode, container, vnode.anchor);
3859
+ const mountContainer = parentNode(vnode.el) || container;
3860
+ mount(vnode, mountContainer, vnode.anchor);
3839
3861
  updateCssVars(vnode, true);
3840
3862
  }
3841
3863
  mountToTarget(vnode);
@@ -3997,7 +4019,7 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
3997
4019
  if (isReorder) {
3998
4020
  insert(el, container, parentAnchor);
3999
4021
  }
4000
- if (!isReorder || isTeleportDisabled(props)) {
4022
+ if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {
4001
4023
  if (shapeFlag & 16) {
4002
4024
  for (let i = 0; i < children.length; i++) {
4003
4025
  move(
@@ -4171,10 +4193,14 @@ const BaseTransitionImpl = {
4171
4193
  const state = useTransitionState();
4172
4194
  return () => {
4173
4195
  const children = slots.default && getTransitionRawChildren(slots.default(), true);
4174
- if (!children || !children.length) {
4196
+ const child = children && children.length ? findNonCommentChild(children) : (
4197
+ // Keep explicit default-slot conditionals on the same transition path
4198
+ // as regular v-if branches, which render a comment placeholder.
4199
+ instance.subTree ? createCommentVNode() : void 0
4200
+ );
4201
+ if (!child) {
4175
4202
  return;
4176
4203
  }
4177
- const child = findNonCommentChild(children);
4178
4204
  const rawProps = toRaw(props);
4179
4205
  const { mode } = rawProps;
4180
4206
  if (!!(process.env.NODE_ENV !== "production") && mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
@@ -7553,7 +7579,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7553
7579
  return vm;
7554
7580
  }
7555
7581
  }
7556
- Vue.version = `2.6.14-compat:${"3.5.32"}`;
7582
+ Vue.version = `2.6.14-compat:${"3.5.34"}`;
7557
7583
  Vue.config = singletonApp.config;
7558
7584
  Vue.use = (plugin, ...options) => {
7559
7585
  if (plugin && isFunction(plugin.install)) {
@@ -9190,7 +9216,7 @@ function getInvalidTypeMessage(name, value, expectedTypes) {
9190
9216
  const receivedType = toRawType(value);
9191
9217
  const expectedValue = styleValue(value, expectedType);
9192
9218
  const receivedValue = styleValue(value, receivedType);
9193
- if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {
9219
+ if (expectedTypes.length === 1 && isExplicable(expectedType) && isCoercible(expectedType, receivedType)) {
9194
9220
  message += ` with value ${expectedValue}`;
9195
9221
  }
9196
9222
  message += `, got ${receivedType} `;
@@ -9200,7 +9226,9 @@ function getInvalidTypeMessage(name, value, expectedTypes) {
9200
9226
  return message;
9201
9227
  }
9202
9228
  function styleValue(value, type) {
9203
- if (type === "String") {
9229
+ if (isSymbol(value)) {
9230
+ return value.toString();
9231
+ } else if (type === "String") {
9204
9232
  return `"${value}"`;
9205
9233
  } else if (type === "Number") {
9206
9234
  return `${Number(value)}`;
@@ -9212,8 +9240,11 @@ function isExplicable(type) {
9212
9240
  const explicitTypes = ["string", "number", "boolean"];
9213
9241
  return explicitTypes.some((elem) => type.toLowerCase() === elem);
9214
9242
  }
9215
- function isBoolean(...args) {
9216
- return args.some((elem) => elem.toLowerCase() === "boolean");
9243
+ function isCoercible(...args) {
9244
+ return args.every((elem) => {
9245
+ const value = elem.toLowerCase();
9246
+ return value !== "boolean" && value !== "symbol";
9247
+ });
9217
9248
  }
9218
9249
 
9219
9250
  const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
@@ -11305,13 +11336,14 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11305
11336
  suspense.isHydrating = false;
11306
11337
  } else if (!resume) {
11307
11338
  delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
11339
+ let hasUpdatedAnchor = false;
11308
11340
  if (delayEnter) {
11309
11341
  activeBranch.transition.afterLeave = () => {
11310
11342
  if (pendingId === suspense.pendingId) {
11311
11343
  move(
11312
11344
  pendingBranch,
11313
11345
  container2,
11314
- anchor === initialAnchor ? next(activeBranch) : anchor,
11346
+ anchor === initialAnchor && !hasUpdatedAnchor ? next(activeBranch) : anchor,
11315
11347
  0
11316
11348
  );
11317
11349
  queuePostFlushCb(effects);
@@ -11324,6 +11356,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11324
11356
  if (activeBranch && !suspense.isFallbackMountPending) {
11325
11357
  if (parentNode(activeBranch.el) === container2) {
11326
11358
  anchor = next(activeBranch);
11359
+ hasUpdatedAnchor = true;
11327
11360
  }
11328
11361
  unmount(activeBranch, parentComponent2, suspense, true);
11329
11362
  if (!delayEnter && isInFallback && vnode2.ssFallback) {
@@ -12723,7 +12756,7 @@ function isMemoSame(cached, memo) {
12723
12756
  return true;
12724
12757
  }
12725
12758
 
12726
- const version = "3.5.32";
12759
+ const version = "3.5.34";
12727
12760
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12728
12761
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12729
12762
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -13314,7 +13347,19 @@ function patchStyle(el, prev, next) {
13314
13347
  if (key === "display") {
13315
13348
  hasControlledDisplay = true;
13316
13349
  }
13317
- setStyle(style, key, next[key]);
13350
+ const value = next[key];
13351
+ if (value != null) {
13352
+ if (!shouldPreserveTextareaResizeStyle(
13353
+ el,
13354
+ key,
13355
+ !isString(prev) && prev ? prev[key] : void 0,
13356
+ value
13357
+ )) {
13358
+ setStyle(style, key, value);
13359
+ }
13360
+ } else {
13361
+ setStyle(style, key, "");
13362
+ }
13318
13363
  }
13319
13364
  } else {
13320
13365
  if (isCssString) {
@@ -13387,6 +13432,9 @@ function autoPrefix(style, rawName) {
13387
13432
  }
13388
13433
  return rawName;
13389
13434
  }
13435
+ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
13436
+ return el.tagName === "TEXTAREA" && (key === "width" || key === "height") && isString(next) && prev === next;
13437
+ }
13390
13438
 
13391
13439
  const xlinkNS = "http://www.w3.org/1999/xlink";
13392
13440
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.32
2
+ * @vue/compat v3.5.34
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -430,12 +430,18 @@ var Vue = (function () {
430
430
  */
431
431
  this.cleanups = [];
432
432
  this._isPaused = false;
433
+ this._warnOnRun = true;
433
434
  this.__v_skip = true;
434
- this.parent = activeEffectScope;
435
435
  if (!detached && activeEffectScope) {
436
- this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
437
- this
438
- ) - 1;
436
+ if (activeEffectScope.active) {
437
+ this.parent = activeEffectScope;
438
+ this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
439
+ this
440
+ ) - 1;
441
+ } else {
442
+ this._active = false;
443
+ this._warnOnRun = false;
444
+ }
439
445
  }
440
446
  }
441
447
  get active() {
@@ -483,7 +489,7 @@ var Vue = (function () {
483
489
  } finally {
484
490
  activeEffectScope = currentEffectScope;
485
491
  }
486
- } else {
492
+ } else if (this._warnOnRun) {
487
493
  warn$2(`cannot run an inactive effect scope.`);
488
494
  }
489
495
  }
@@ -503,7 +509,18 @@ var Vue = (function () {
503
509
  */
504
510
  off() {
505
511
  if (this._on > 0 && --this._on === 0) {
506
- activeEffectScope = this.prevScope;
512
+ if (activeEffectScope === this) {
513
+ activeEffectScope = this.prevScope;
514
+ } else {
515
+ let current = activeEffectScope;
516
+ while (current) {
517
+ if (current.prevScope === this) {
518
+ current.prevScope = this.prevScope;
519
+ break;
520
+ }
521
+ current = current.prevScope;
522
+ }
523
+ }
507
524
  this.prevScope = void 0;
508
525
  }
509
526
  }
@@ -578,8 +595,12 @@ var Vue = (function () {
578
595
  */
579
596
  this.cleanup = void 0;
580
597
  this.scheduler = void 0;
581
- if (activeEffectScope && activeEffectScope.active) {
582
- activeEffectScope.effects.push(this);
598
+ if (activeEffectScope) {
599
+ if (activeEffectScope.active) {
600
+ activeEffectScope.effects.push(this);
601
+ } else {
602
+ this.flags &= -2;
603
+ }
583
604
  }
584
605
  }
585
606
  pause() {
@@ -3744,7 +3765,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3744
3765
  mc: mountChildren,
3745
3766
  pc: patchChildren,
3746
3767
  pbc: patchBlockChildren,
3747
- o: { insert, querySelector, createText, createComment }
3768
+ o: { insert, querySelector, createText, createComment, parentNode }
3748
3769
  } = internals;
3749
3770
  const disabled = isTeleportDisabled(n2.props);
3750
3771
  let { dynamicChildren } = n2;
@@ -3792,7 +3813,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3792
3813
  if (pendingMounts.get(vnode) !== mountJob) return;
3793
3814
  pendingMounts.delete(vnode);
3794
3815
  if (isTeleportDisabled(vnode.props)) {
3795
- mount(vnode, container, vnode.anchor);
3816
+ const mountContainer = parentNode(vnode.el) || container;
3817
+ mount(vnode, mountContainer, vnode.anchor);
3796
3818
  updateCssVars(vnode, true);
3797
3819
  }
3798
3820
  mountToTarget(vnode);
@@ -3954,7 +3976,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3954
3976
  if (isReorder) {
3955
3977
  insert(el, container, parentAnchor);
3956
3978
  }
3957
- if (!isReorder || isTeleportDisabled(props)) {
3979
+ if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {
3958
3980
  if (shapeFlag & 16) {
3959
3981
  for (let i = 0; i < children.length; i++) {
3960
3982
  move(
@@ -4128,10 +4150,14 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4128
4150
  const state = useTransitionState();
4129
4151
  return () => {
4130
4152
  const children = slots.default && getTransitionRawChildren(slots.default(), true);
4131
- if (!children || !children.length) {
4153
+ const child = children && children.length ? findNonCommentChild(children) : (
4154
+ // Keep explicit default-slot conditionals on the same transition path
4155
+ // as regular v-if branches, which render a comment placeholder.
4156
+ instance.subTree ? createCommentVNode() : void 0
4157
+ );
4158
+ if (!child) {
4132
4159
  return;
4133
4160
  }
4134
- const child = findNonCommentChild(children);
4135
4161
  const rawProps = toRaw(props);
4136
4162
  const { mode } = rawProps;
4137
4163
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
@@ -7487,7 +7513,7 @@ If this is a native custom element, make sure to exclude it from component resol
7487
7513
  return vm;
7488
7514
  }
7489
7515
  }
7490
- Vue.version = `2.6.14-compat:${"3.5.32"}`;
7516
+ Vue.version = `2.6.14-compat:${"3.5.34"}`;
7491
7517
  Vue.config = singletonApp.config;
7492
7518
  Vue.use = (plugin, ...options) => {
7493
7519
  if (plugin && isFunction(plugin.install)) {
@@ -9122,7 +9148,7 @@ If you want to remount the same app, move your app creation logic into a factory
9122
9148
  const receivedType = toRawType(value);
9123
9149
  const expectedValue = styleValue(value, expectedType);
9124
9150
  const receivedValue = styleValue(value, receivedType);
9125
- if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {
9151
+ if (expectedTypes.length === 1 && isExplicable(expectedType) && isCoercible(expectedType, receivedType)) {
9126
9152
  message += ` with value ${expectedValue}`;
9127
9153
  }
9128
9154
  message += `, got ${receivedType} `;
@@ -9132,7 +9158,9 @@ If you want to remount the same app, move your app creation logic into a factory
9132
9158
  return message;
9133
9159
  }
9134
9160
  function styleValue(value, type) {
9135
- if (type === "String") {
9161
+ if (isSymbol(value)) {
9162
+ return value.toString();
9163
+ } else if (type === "String") {
9136
9164
  return `"${value}"`;
9137
9165
  } else if (type === "Number") {
9138
9166
  return `${Number(value)}`;
@@ -9144,8 +9172,11 @@ If you want to remount the same app, move your app creation logic into a factory
9144
9172
  const explicitTypes = ["string", "number", "boolean"];
9145
9173
  return explicitTypes.some((elem) => type.toLowerCase() === elem);
9146
9174
  }
9147
- function isBoolean(...args) {
9148
- return args.some((elem) => elem.toLowerCase() === "boolean");
9175
+ function isCoercible(...args) {
9176
+ return args.every((elem) => {
9177
+ const value = elem.toLowerCase();
9178
+ return value !== "boolean" && value !== "symbol";
9179
+ });
9149
9180
  }
9150
9181
 
9151
9182
  const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
@@ -11199,13 +11230,14 @@ If you want to remount the same app, move your app creation logic into a factory
11199
11230
  suspense.isHydrating = false;
11200
11231
  } else if (!resume) {
11201
11232
  delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
11233
+ let hasUpdatedAnchor = false;
11202
11234
  if (delayEnter) {
11203
11235
  activeBranch.transition.afterLeave = () => {
11204
11236
  if (pendingId === suspense.pendingId) {
11205
11237
  move(
11206
11238
  pendingBranch,
11207
11239
  container2,
11208
- anchor === initialAnchor ? next(activeBranch) : anchor,
11240
+ anchor === initialAnchor && !hasUpdatedAnchor ? next(activeBranch) : anchor,
11209
11241
  0
11210
11242
  );
11211
11243
  queuePostFlushCb(effects);
@@ -11218,6 +11250,7 @@ If you want to remount the same app, move your app creation logic into a factory
11218
11250
  if (activeBranch && !suspense.isFallbackMountPending) {
11219
11251
  if (parentNode(activeBranch.el) === container2) {
11220
11252
  anchor = next(activeBranch);
11253
+ hasUpdatedAnchor = true;
11221
11254
  }
11222
11255
  unmount(activeBranch, parentComponent2, suspense, true);
11223
11256
  if (!delayEnter && isInFallback && vnode2.ssFallback) {
@@ -12589,7 +12622,7 @@ Component that was made reactive: `,
12589
12622
  return true;
12590
12623
  }
12591
12624
 
12592
- const version = "3.5.32";
12625
+ const version = "3.5.34";
12593
12626
  const warn = warn$1 ;
12594
12627
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12595
12628
  const devtools = devtools$1 ;
@@ -13161,7 +13194,19 @@ Component that was made reactive: `,
13161
13194
  if (key === "display") {
13162
13195
  hasControlledDisplay = true;
13163
13196
  }
13164
- setStyle(style, key, next[key]);
13197
+ const value = next[key];
13198
+ if (value != null) {
13199
+ if (!shouldPreserveTextareaResizeStyle(
13200
+ el,
13201
+ key,
13202
+ !isString(prev) && prev ? prev[key] : void 0,
13203
+ value
13204
+ )) {
13205
+ setStyle(style, key, value);
13206
+ }
13207
+ } else {
13208
+ setStyle(style, key, "");
13209
+ }
13165
13210
  }
13166
13211
  } else {
13167
13212
  if (isCssString) {
@@ -13234,6 +13279,9 @@ Component that was made reactive: `,
13234
13279
  }
13235
13280
  return rawName;
13236
13281
  }
13282
+ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
13283
+ return el.tagName === "TEXTAREA" && (key === "width" || key === "height") && isString(next) && prev === next;
13284
+ }
13237
13285
 
13238
13286
  const xlinkNS = "http://www.w3.org/1999/xlink";
13239
13287
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {