@vue/compat 3.4.14 → 3.4.16

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.4.14
2
+ * @vue/compat v3.4.16
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -203,6 +203,13 @@ var Vue = (function () {
203
203
  const isKnownSvgAttr = /* @__PURE__ */ makeMap(
204
204
  `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
205
205
  );
206
+ function isRenderableAttrValue(value) {
207
+ if (value == null) {
208
+ return false;
209
+ }
210
+ const type = typeof value;
211
+ return type === "string" || type === "number" || type === "boolean";
212
+ }
206
213
 
207
214
  function looseCompareArrays(a, b) {
208
215
  if (a.length !== b.length)
@@ -403,7 +410,7 @@ var Vue = (function () {
403
410
  /**
404
411
  * @internal
405
412
  */
406
- this._dirtyLevel = 2;
413
+ this._dirtyLevel = 4;
407
414
  /**
408
415
  * @internal
409
416
  */
@@ -423,26 +430,27 @@ var Vue = (function () {
423
430
  recordEffectScope(this, scope);
424
431
  }
425
432
  get dirty() {
426
- if (this._dirtyLevel === 1) {
433
+ if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
434
+ this._dirtyLevel = 1;
427
435
  pauseTracking();
428
436
  for (let i = 0; i < this._depsLength; i++) {
429
437
  const dep = this.deps[i];
430
438
  if (dep.computed) {
431
439
  triggerComputed(dep.computed);
432
- if (this._dirtyLevel >= 2) {
440
+ if (this._dirtyLevel >= 4) {
433
441
  break;
434
442
  }
435
443
  }
436
444
  }
437
- if (this._dirtyLevel < 2) {
445
+ if (this._dirtyLevel === 1) {
438
446
  this._dirtyLevel = 0;
439
447
  }
440
448
  resetTracking();
441
449
  }
442
- return this._dirtyLevel >= 2;
450
+ return this._dirtyLevel >= 4;
443
451
  }
444
452
  set dirty(v) {
445
- this._dirtyLevel = v ? 2 : 0;
453
+ this._dirtyLevel = v ? 4 : 0;
446
454
  }
447
455
  run() {
448
456
  this._dirtyLevel = 0;
@@ -482,7 +490,7 @@ var Vue = (function () {
482
490
  effect2._depsLength = 0;
483
491
  }
484
492
  function postCleanupEffect(effect2) {
485
- if (effect2.deps && effect2.deps.length > effect2._depsLength) {
493
+ if (effect2.deps.length > effect2._depsLength) {
486
494
  for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
487
495
  cleanupDepEffect(effect2.deps[i], effect2);
488
496
  }
@@ -565,24 +573,23 @@ var Vue = (function () {
565
573
  var _a;
566
574
  pauseScheduling();
567
575
  for (const effect2 of dep.keys()) {
568
- if (dep.get(effect2) !== effect2._trackId) {
569
- continue;
570
- }
571
- if (effect2._dirtyLevel < dirtyLevel && !(effect2._runnings && !effect2.allowRecurse)) {
572
- const lastDirtyLevel = effect2._dirtyLevel;
576
+ let tracking;
577
+ if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
578
+ effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
573
579
  effect2._dirtyLevel = dirtyLevel;
574
- if (lastDirtyLevel === 0) {
575
- effect2._shouldSchedule = true;
576
- {
577
- (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
580
+ }
581
+ if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
582
+ {
583
+ (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
584
+ }
585
+ effect2.trigger();
586
+ if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
587
+ effect2._shouldSchedule = false;
588
+ if (effect2.scheduler) {
589
+ queueEffectSchedulers.push(effect2.scheduler);
578
590
  }
579
- effect2.trigger();
580
591
  }
581
592
  }
582
- if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse)) {
583
- effect2._shouldSchedule = false;
584
- queueEffectSchedulers.push(effect2.scheduler);
585
- }
586
593
  }
587
594
  resetScheduling();
588
595
  }
@@ -668,7 +675,7 @@ var Vue = (function () {
668
675
  if (dep) {
669
676
  triggerEffects(
670
677
  dep,
671
- 2,
678
+ 4,
672
679
  {
673
680
  target,
674
681
  type,
@@ -1253,7 +1260,9 @@ var Vue = (function () {
1253
1260
  return raw ? toRaw(raw) : observed;
1254
1261
  }
1255
1262
  function markRaw(value) {
1256
- def(value, "__v_skip", true);
1263
+ if (Object.isExtensible(value)) {
1264
+ def(value, "__v_skip", true);
1265
+ }
1257
1266
  return value;
1258
1267
  }
1259
1268
  const toReactive = (value) => isObject(value) ? reactive(value) : value;
@@ -1267,7 +1276,10 @@ var Vue = (function () {
1267
1276
  this["__v_isReadonly"] = false;
1268
1277
  this.effect = new ReactiveEffect(
1269
1278
  () => getter(this._value),
1270
- () => triggerRefValue(this, 1)
1279
+ () => triggerRefValue(
1280
+ this,
1281
+ this.effect._dirtyLevel === 2 ? 2 : 3
1282
+ )
1271
1283
  );
1272
1284
  this.effect.computed = this;
1273
1285
  this.effect.active = this._cacheable = !isSSR;
@@ -1275,12 +1287,13 @@ var Vue = (function () {
1275
1287
  }
1276
1288
  get value() {
1277
1289
  const self = toRaw(this);
1278
- if (!self._cacheable || self.effect.dirty) {
1279
- if (hasChanged(self._value, self._value = self.effect.run())) {
1280
- triggerRefValue(self, 2);
1281
- }
1290
+ if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
1291
+ triggerRefValue(self, 4);
1282
1292
  }
1283
1293
  trackRefValue(self);
1294
+ if (self.effect._dirtyLevel >= 2) {
1295
+ triggerRefValue(self, 2);
1296
+ }
1284
1297
  return self._value;
1285
1298
  }
1286
1299
  set value(newValue) {
@@ -1317,14 +1330,15 @@ var Vue = (function () {
1317
1330
  }
1318
1331
 
1319
1332
  function trackRefValue(ref2) {
1333
+ var _a;
1320
1334
  if (shouldTrack && activeEffect) {
1321
1335
  ref2 = toRaw(ref2);
1322
1336
  trackEffect(
1323
1337
  activeEffect,
1324
- ref2.dep || (ref2.dep = createDep(
1338
+ (_a = ref2.dep) != null ? _a : ref2.dep = createDep(
1325
1339
  () => ref2.dep = void 0,
1326
1340
  ref2 instanceof ComputedRefImpl ? ref2 : void 0
1327
- )),
1341
+ ),
1328
1342
  {
1329
1343
  target: ref2,
1330
1344
  type: "get",
@@ -1333,7 +1347,7 @@ var Vue = (function () {
1333
1347
  );
1334
1348
  }
1335
1349
  }
1336
- function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
1350
+ function triggerRefValue(ref2, dirtyLevel = 4, newVal) {
1337
1351
  ref2 = toRaw(ref2);
1338
1352
  const dep = ref2.dep;
1339
1353
  if (dep) {
@@ -1382,12 +1396,12 @@ var Vue = (function () {
1382
1396
  if (hasChanged(newVal, this._rawValue)) {
1383
1397
  this._rawValue = newVal;
1384
1398
  this._value = useDirectValue ? newVal : toReactive(newVal);
1385
- triggerRefValue(this, 2, newVal);
1399
+ triggerRefValue(this, 4, newVal);
1386
1400
  }
1387
1401
  }
1388
1402
  }
1389
1403
  function triggerRef(ref2) {
1390
- triggerRefValue(ref2, 2, ref2.value );
1404
+ triggerRefValue(ref2, 4, ref2.value );
1391
1405
  }
1392
1406
  function unref(ref2) {
1393
1407
  return isRef(ref2) ? ref2.value : ref2;
@@ -6420,7 +6434,7 @@ If this is a native custom element, make sure to exclude it from component resol
6420
6434
  return vm;
6421
6435
  }
6422
6436
  }
6423
- Vue.version = `2.6.14-compat:${"3.4.14"}`;
6437
+ Vue.version = `2.6.14-compat:${"3.4.16"}`;
6424
6438
  Vue.config = singletonApp.config;
6425
6439
  Vue.use = (p, ...options) => {
6426
6440
  if (p && isFunction(p.install)) {
@@ -6965,11 +6979,12 @@ If you want to remount the same app, move your app creation logic into a factory
6965
6979
  return app;
6966
6980
  },
6967
6981
  runWithContext(fn) {
6982
+ const lastApp = currentApp;
6968
6983
  currentApp = app;
6969
6984
  try {
6970
6985
  return fn();
6971
6986
  } finally {
6972
- currentApp = null;
6987
+ currentApp = lastApp;
6973
6988
  }
6974
6989
  }
6975
6990
  };
@@ -7489,7 +7504,7 @@ If you want to remount the same app, move your app creation logic into a factory
7489
7504
  return rawSlot;
7490
7505
  }
7491
7506
  const normalized = withCtx((...args) => {
7492
- if (currentInstance) {
7507
+ if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
7493
7508
  warn$1(
7494
7509
  `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
7495
7510
  );
@@ -7965,7 +7980,7 @@ Server rendered element contains more child nodes than client vdom.`
7965
7980
  if (props) {
7966
7981
  {
7967
7982
  for (const key in props) {
7968
- if (propHasMismatch(el, key, props[key], vnode)) {
7983
+ if (propHasMismatch(el, key, props[key], vnode, parentComponent)) {
7969
7984
  hasMismatch = true;
7970
7985
  }
7971
7986
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@@ -8140,7 +8155,8 @@ Server rendered element contains fewer child nodes than client vdom.`
8140
8155
  };
8141
8156
  return [hydrate, hydrateNode];
8142
8157
  }
8143
- function propHasMismatch(el, key, clientValue, vnode) {
8158
+ function propHasMismatch(el, key, clientValue, vnode, instance) {
8159
+ var _a;
8144
8160
  let mismatchType;
8145
8161
  let mismatchKey;
8146
8162
  let actual;
@@ -8163,6 +8179,10 @@ Server rendered element contains fewer child nodes than client vdom.`
8163
8179
  }
8164
8180
  }
8165
8181
  }
8182
+ const cssVars = (_a = instance == null ? void 0 : instance.getCssVars) == null ? void 0 : _a.call(instance);
8183
+ for (const key2 in cssVars) {
8184
+ expectedMap.set(`--${key2}`, String(cssVars[key2]));
8185
+ }
8166
8186
  if (!isMapEqual(actualMap, expectedMap)) {
8167
8187
  mismatchType = mismatchKey = "style";
8168
8188
  }
@@ -8176,11 +8196,12 @@ Server rendered element contains fewer child nodes than client vdom.`
8176
8196
  } else {
8177
8197
  if (el.hasAttribute(key)) {
8178
8198
  actual = el.getAttribute(key);
8199
+ } else if (key === "value" && el.tagName === "TEXTAREA") {
8200
+ actual = el.value;
8179
8201
  } else {
8180
- const serverValue = el[key];
8181
- actual = isObject(serverValue) || serverValue == null ? "" : String(serverValue);
8202
+ actual = false;
8182
8203
  }
8183
- expected = isObject(clientValue) || clientValue == null ? "" : String(clientValue);
8204
+ expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;
8184
8205
  }
8185
8206
  if (actual !== expected) {
8186
8207
  mismatchType = `attribute`;
@@ -11235,7 +11256,7 @@ Component that was made reactive: `,
11235
11256
  return true;
11236
11257
  }
11237
11258
 
11238
- const version = "3.4.14";
11259
+ const version = "3.4.16";
11239
11260
  const warn = warn$1 ;
11240
11261
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11241
11262
  const devtools = devtools$1 ;
@@ -11656,7 +11677,7 @@ Component that was made reactive: `,
11656
11677
  }
11657
11678
  },
11658
11679
  updated(el, { value, oldValue }, { transition }) {
11659
- if (!value === !oldValue)
11680
+ if (!value === !oldValue && el.style.display === el[vShowOldKey])
11660
11681
  return;
11661
11682
  if (transition) {
11662
11683
  if (value) {
@@ -11695,6 +11716,9 @@ Component that was made reactive: `,
11695
11716
  document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11696
11717
  ).forEach((node) => setVarsOnNode(node, vars));
11697
11718
  };
11719
+ {
11720
+ instance.getCssVars = () => getter(instance.proxy);
11721
+ }
11698
11722
  const setVars = () => {
11699
11723
  const vars = getter(instance.proxy);
11700
11724
  setVarsOnVNode(instance.subTree, vars);
@@ -11775,6 +11799,7 @@ Component that was made reactive: `,
11775
11799
  }
11776
11800
  }
11777
11801
  if (vShowOldKey in el) {
11802
+ el[vShowOldKey] = style.display;
11778
11803
  style.display = currentDisplay;
11779
11804
  }
11780
11805
  }
@@ -12582,24 +12607,31 @@ Component that was made reactive: `,
12582
12607
  el[assignKey](
12583
12608
  el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
12584
12609
  );
12610
+ el._assigning = true;
12611
+ nextTick(() => {
12612
+ el._assigning = false;
12613
+ });
12585
12614
  });
12586
12615
  el[assignKey] = getModelAssigner(vnode);
12587
12616
  },
12588
12617
  // set value in mounted & updated because <select> relies on its children
12589
12618
  // <option>s.
12590
- mounted(el, { value }) {
12591
- setSelected(el, value);
12619
+ mounted(el, { value, oldValue, modifiers: { number } }) {
12620
+ setSelected(el, value, oldValue, number);
12592
12621
  },
12593
12622
  beforeUpdate(el, _binding, vnode) {
12594
12623
  el[assignKey] = getModelAssigner(vnode);
12595
12624
  },
12596
- updated(el, { value }) {
12597
- setSelected(el, value);
12625
+ updated(el, { value, oldValue, modifiers: { number } }) {
12626
+ if (!el._assigning) {
12627
+ setSelected(el, value, oldValue, number);
12628
+ }
12598
12629
  }
12599
12630
  };
12600
- function setSelected(el, value) {
12631
+ function setSelected(el, value, oldValue, number) {
12601
12632
  const isMultiple = el.multiple;
12602
- if (isMultiple && !isArray(value) && !isSet(value)) {
12633
+ const isArrayValue = isArray(value);
12634
+ if (isMultiple && !isArrayValue && !isSet(value)) {
12603
12635
  warn(
12604
12636
  `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`
12605
12637
  );
@@ -12609,8 +12641,15 @@ Component that was made reactive: `,
12609
12641
  const option = el.options[i];
12610
12642
  const optionValue = getValue(option);
12611
12643
  if (isMultiple) {
12612
- if (isArray(value)) {
12613
- option.selected = looseIndexOf(value, optionValue) > -1;
12644
+ if (isArrayValue) {
12645
+ const optionType = typeof optionValue;
12646
+ if (optionType === "string" || optionType === "number") {
12647
+ option.selected = value.includes(
12648
+ number ? looseToNumber(optionValue) : optionValue
12649
+ );
12650
+ } else {
12651
+ option.selected = looseIndexOf(value, optionValue) > -1;
12652
+ }
12614
12653
  } else {
12615
12654
  option.selected = value.has(optionValue);
12616
12655
  }