@vue/compat 3.4.15 → 3.4.17

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.15
2
+ * @vue/compat v3.4.17
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -475,7 +475,7 @@ var Vue = (function () {
475
475
  /**
476
476
  * @internal
477
477
  */
478
- this._dirtyLevel = 2;
478
+ this._dirtyLevel = 4;
479
479
  /**
480
480
  * @internal
481
481
  */
@@ -495,26 +495,27 @@ var Vue = (function () {
495
495
  recordEffectScope(this, scope);
496
496
  }
497
497
  get dirty() {
498
- if (this._dirtyLevel === 1) {
498
+ if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
499
+ this._dirtyLevel = 1;
499
500
  pauseTracking();
500
501
  for (let i = 0; i < this._depsLength; i++) {
501
502
  const dep = this.deps[i];
502
503
  if (dep.computed) {
503
504
  triggerComputed(dep.computed);
504
- if (this._dirtyLevel >= 2) {
505
+ if (this._dirtyLevel >= 4) {
505
506
  break;
506
507
  }
507
508
  }
508
509
  }
509
- if (this._dirtyLevel < 2) {
510
+ if (this._dirtyLevel === 1) {
510
511
  this._dirtyLevel = 0;
511
512
  }
512
513
  resetTracking();
513
514
  }
514
- return this._dirtyLevel >= 2;
515
+ return this._dirtyLevel >= 4;
515
516
  }
516
517
  set dirty(v) {
517
- this._dirtyLevel = v ? 2 : 0;
518
+ this._dirtyLevel = v ? 4 : 0;
518
519
  }
519
520
  run() {
520
521
  this._dirtyLevel = 0;
@@ -554,7 +555,7 @@ var Vue = (function () {
554
555
  effect2._depsLength = 0;
555
556
  }
556
557
  function postCleanupEffect(effect2) {
557
- if (effect2.deps && effect2.deps.length > effect2._depsLength) {
558
+ if (effect2.deps.length > effect2._depsLength) {
558
559
  for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
559
560
  cleanupDepEffect(effect2.deps[i], effect2);
560
561
  }
@@ -637,29 +638,26 @@ var Vue = (function () {
637
638
  var _a;
638
639
  pauseScheduling();
639
640
  for (const effect2 of dep.keys()) {
640
- if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
641
- const lastDirtyLevel = effect2._dirtyLevel;
641
+ let tracking;
642
+ if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
643
+ effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
642
644
  effect2._dirtyLevel = dirtyLevel;
643
- if (lastDirtyLevel === 0) {
644
- effect2._shouldSchedule = true;
645
- {
646
- (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
645
+ }
646
+ if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
647
+ {
648
+ (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
649
+ }
650
+ effect2.trigger();
651
+ if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
652
+ effect2._shouldSchedule = false;
653
+ if (effect2.scheduler) {
654
+ queueEffectSchedulers.push(effect2.scheduler);
647
655
  }
648
- effect2.trigger();
649
656
  }
650
657
  }
651
658
  }
652
- scheduleEffects(dep);
653
659
  resetScheduling();
654
660
  }
655
- function scheduleEffects(dep) {
656
- for (const effect2 of dep.keys()) {
657
- if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
658
- effect2._shouldSchedule = false;
659
- queueEffectSchedulers.push(effect2.scheduler);
660
- }
661
- }
662
- }
663
661
 
664
662
  const createDep = (cleanup, computed) => {
665
663
  const dep = /* @__PURE__ */ new Map();
@@ -742,7 +740,7 @@ var Vue = (function () {
742
740
  if (dep) {
743
741
  triggerEffects(
744
742
  dep,
745
- 2,
743
+ 4,
746
744
  {
747
745
  target,
748
746
  type,
@@ -1327,7 +1325,9 @@ var Vue = (function () {
1327
1325
  return raw ? toRaw(raw) : observed;
1328
1326
  }
1329
1327
  function markRaw(value) {
1330
- def(value, "__v_skip", true);
1328
+ if (Object.isExtensible(value)) {
1329
+ def(value, "__v_skip", true);
1330
+ }
1331
1331
  return value;
1332
1332
  }
1333
1333
  const toReactive = (value) => isObject(value) ? reactive(value) : value;
@@ -1341,8 +1341,10 @@ var Vue = (function () {
1341
1341
  this["__v_isReadonly"] = false;
1342
1342
  this.effect = new ReactiveEffect(
1343
1343
  () => getter(this._value),
1344
- () => triggerRefValue(this, 1),
1345
- () => this.dep && scheduleEffects(this.dep)
1344
+ () => triggerRefValue(
1345
+ this,
1346
+ this.effect._dirtyLevel === 2 ? 2 : 3
1347
+ )
1346
1348
  );
1347
1349
  this.effect.computed = this;
1348
1350
  this.effect.active = this._cacheable = !isSSR;
@@ -1350,14 +1352,12 @@ var Vue = (function () {
1350
1352
  }
1351
1353
  get value() {
1352
1354
  const self = toRaw(this);
1353
- if (!self._cacheable || self.effect.dirty) {
1354
- if (hasChanged(self._value, self._value = self.effect.run())) {
1355
- triggerRefValue(self, 2);
1356
- }
1355
+ if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
1356
+ triggerRefValue(self, 4);
1357
1357
  }
1358
1358
  trackRefValue(self);
1359
- if (self.effect._dirtyLevel >= 1) {
1360
- triggerRefValue(self, 1);
1359
+ if (self.effect._dirtyLevel >= 2) {
1360
+ triggerRefValue(self, 2);
1361
1361
  }
1362
1362
  return self._value;
1363
1363
  }
@@ -1395,14 +1395,15 @@ var Vue = (function () {
1395
1395
  }
1396
1396
 
1397
1397
  function trackRefValue(ref2) {
1398
+ var _a;
1398
1399
  if (shouldTrack && activeEffect) {
1399
1400
  ref2 = toRaw(ref2);
1400
1401
  trackEffect(
1401
1402
  activeEffect,
1402
- ref2.dep || (ref2.dep = createDep(
1403
+ (_a = ref2.dep) != null ? _a : ref2.dep = createDep(
1403
1404
  () => ref2.dep = void 0,
1404
1405
  ref2 instanceof ComputedRefImpl ? ref2 : void 0
1405
- )),
1406
+ ),
1406
1407
  {
1407
1408
  target: ref2,
1408
1409
  type: "get",
@@ -1411,7 +1412,7 @@ var Vue = (function () {
1411
1412
  );
1412
1413
  }
1413
1414
  }
1414
- function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
1415
+ function triggerRefValue(ref2, dirtyLevel = 4, newVal) {
1415
1416
  ref2 = toRaw(ref2);
1416
1417
  const dep = ref2.dep;
1417
1418
  if (dep) {
@@ -1460,12 +1461,12 @@ var Vue = (function () {
1460
1461
  if (hasChanged(newVal, this._rawValue)) {
1461
1462
  this._rawValue = newVal;
1462
1463
  this._value = useDirectValue ? newVal : toReactive(newVal);
1463
- triggerRefValue(this, 2, newVal);
1464
+ triggerRefValue(this, 4, newVal);
1464
1465
  }
1465
1466
  }
1466
1467
  }
1467
1468
  function triggerRef(ref2) {
1468
- triggerRefValue(ref2, 2, ref2.value );
1469
+ triggerRefValue(ref2, 4, ref2.value );
1469
1470
  }
1470
1471
  function unref(ref2) {
1471
1472
  return isRef(ref2) ? ref2.value : ref2;
@@ -6498,7 +6499,7 @@ If this is a native custom element, make sure to exclude it from component resol
6498
6499
  return vm;
6499
6500
  }
6500
6501
  }
6501
- Vue.version = `2.6.14-compat:${"3.4.15"}`;
6502
+ Vue.version = `2.6.14-compat:${"3.4.17"}`;
6502
6503
  Vue.config = singletonApp.config;
6503
6504
  Vue.use = (p, ...options) => {
6504
6505
  if (p && isFunction(p.install)) {
@@ -7043,11 +7044,12 @@ If you want to remount the same app, move your app creation logic into a factory
7043
7044
  return app;
7044
7045
  },
7045
7046
  runWithContext(fn) {
7047
+ const lastApp = currentApp;
7046
7048
  currentApp = app;
7047
7049
  try {
7048
7050
  return fn();
7049
7051
  } finally {
7050
- currentApp = null;
7052
+ currentApp = lastApp;
7051
7053
  }
7052
7054
  }
7053
7055
  };
@@ -7705,10 +7707,9 @@ If you want to remount the same app, move your app creation logic into a factory
7705
7707
  } else {
7706
7708
  const _isString = isString(ref);
7707
7709
  const _isRef = isRef(ref);
7708
- const isVFor = rawRef.f;
7709
7710
  if (_isString || _isRef) {
7710
7711
  const doSet = () => {
7711
- if (isVFor) {
7712
+ if (rawRef.f) {
7712
7713
  const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
7713
7714
  if (isUnmount) {
7714
7715
  isArray(existing) && remove(existing, refValue);
@@ -7741,11 +7742,11 @@ If you want to remount the same app, move your app creation logic into a factory
7741
7742
  warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7742
7743
  }
7743
7744
  };
7744
- if (isUnmount || isVFor) {
7745
- doSet();
7746
- } else {
7745
+ if (value) {
7747
7746
  doSet.id = -1;
7748
7747
  queuePostRenderEffect(doSet, parentSuspense);
7748
+ } else {
7749
+ doSet();
7749
7750
  }
7750
7751
  } else {
7751
7752
  warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@@ -8044,7 +8045,7 @@ Server rendered element contains more child nodes than client vdom.`
8044
8045
  if (props) {
8045
8046
  {
8046
8047
  for (const key in props) {
8047
- if (propHasMismatch(el, key, props[key], vnode)) {
8048
+ if (propHasMismatch(el, key, props[key], vnode, parentComponent)) {
8048
8049
  hasMismatch = true;
8049
8050
  }
8050
8051
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@@ -8219,7 +8220,8 @@ Server rendered element contains fewer child nodes than client vdom.`
8219
8220
  };
8220
8221
  return [hydrate, hydrateNode];
8221
8222
  }
8222
- function propHasMismatch(el, key, clientValue, vnode) {
8223
+ function propHasMismatch(el, key, clientValue, vnode, instance) {
8224
+ var _a;
8223
8225
  let mismatchType;
8224
8226
  let mismatchKey;
8225
8227
  let actual;
@@ -8242,6 +8244,10 @@ Server rendered element contains fewer child nodes than client vdom.`
8242
8244
  }
8243
8245
  }
8244
8246
  }
8247
+ const cssVars = (_a = instance == null ? void 0 : instance.getCssVars) == null ? void 0 : _a.call(instance);
8248
+ for (const key2 in cssVars) {
8249
+ expectedMap.set(`--${key2}`, String(cssVars[key2]));
8250
+ }
8245
8251
  if (!isMapEqual(actualMap, expectedMap)) {
8246
8252
  mismatchType = mismatchKey = "style";
8247
8253
  }
@@ -11315,7 +11321,7 @@ Component that was made reactive: `,
11315
11321
  return true;
11316
11322
  }
11317
11323
 
11318
- const version = "3.4.15";
11324
+ const version = "3.4.17";
11319
11325
  const warn = warn$1 ;
11320
11326
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11321
11327
  const devtools = devtools$1 ;
@@ -11775,6 +11781,9 @@ Component that was made reactive: `,
11775
11781
  document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11776
11782
  ).forEach((node) => setVarsOnNode(node, vars));
11777
11783
  };
11784
+ {
11785
+ instance.getCssVars = () => getter(instance.proxy);
11786
+ }
11778
11787
  const setVars = () => {
11779
11788
  const vars = getter(instance.proxy);
11780
11789
  setVarsOnVNode(instance.subTree, vars);
@@ -12692,9 +12701,6 @@ Component that was made reactive: `,
12692
12701
  );
12693
12702
  return;
12694
12703
  }
12695
- if (isArrayValue && looseEqual(value, oldValue)) {
12696
- return;
12697
- }
12698
12704
  for (let i = 0, l = el.options.length; i < l; i++) {
12699
12705
  const option = el.options[i];
12700
12706
  const optionValue = getValue(option);
@@ -14339,6 +14345,7 @@ Make sure to use the production build (*.prod.js) when deploying for production.
14339
14345
  [32]: `v-for has invalid expression.`,
14340
14346
  [33]: `<template v-for> key should be placed on the <template> tag.`,
14341
14347
  [34]: `v-bind is missing expression.`,
14348
+ [52]: `v-bind with same-name shorthand only allows static argument.`,
14342
14349
  [35]: `v-on is missing expression.`,
14343
14350
  [36]: `Unexpected custom directive on <slot> outlet.`,
14344
14351
  [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,
@@ -14359,7 +14366,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14359
14366
  [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
14360
14367
  [50]: `"scopeId" option is only supported in module mode.`,
14361
14368
  // just to fulfill types
14362
- [52]: ``
14369
+ [53]: ``
14363
14370
  };
14364
14371
 
14365
14372
  const isStaticExp = (p) => p.type === 4 && p.isStatic;
@@ -15954,8 +15961,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
15954
15961
  const helpers = Array.from(ast.helpers);
15955
15962
  const hasHelpers = helpers.length > 0;
15956
15963
  const useWithBlock = !prefixIdentifiers && mode !== "module";
15957
- const isSetupInlined = false;
15958
- const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context;
15964
+ const preambleContext = context;
15959
15965
  {
15960
15966
  genFunctionPreamble(ast, preambleContext);
15961
15967
  }
@@ -16023,7 +16029,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
16023
16029
  return {
16024
16030
  ast,
16025
16031
  code: context.code,
16026
- preamble: isSetupInlined ? preambleContext.code : ``,
16032
+ preamble: ``,
16027
16033
  map: context.map ? context.map.toJSON() : void 0
16028
16034
  };
16029
16035
  }
@@ -17781,8 +17787,12 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17781
17787
  }
17782
17788
  } else {
17783
17789
  if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
17784
- if (p.exp)
17790
+ if (p.exp) {
17785
17791
  slotName = p.exp;
17792
+ } else if (p.arg && p.arg.type === 4) {
17793
+ const name = camelize(p.arg.content);
17794
+ slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);
17795
+ }
17786
17796
  } else {
17787
17797
  if (p.name === "bind" && p.arg && isStaticExp(p.arg)) {
17788
17798
  p.arg.content = camelize(p.arg.content);
@@ -17900,7 +17910,25 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17900
17910
  const { modifiers, loc } = dir;
17901
17911
  const arg = dir.arg;
17902
17912
  let { exp } = dir;
17903
- if (!exp && arg.type === 4) {
17913
+ if (exp && exp.type === 4 && !exp.content.trim()) {
17914
+ {
17915
+ exp = void 0;
17916
+ }
17917
+ }
17918
+ if (!exp) {
17919
+ if (arg.type !== 4 || !arg.isStatic) {
17920
+ context.onError(
17921
+ createCompilerError(
17922
+ 52,
17923
+ arg.loc
17924
+ )
17925
+ );
17926
+ return {
17927
+ props: [
17928
+ createObjectProperty(arg, createSimpleExpression("", true, loc))
17929
+ ]
17930
+ };
17931
+ }
17904
17932
  const propName = camelize(arg.content);
17905
17933
  exp = dir.exp = createSimpleExpression(propName, false, arg.loc);
17906
17934
  }
@@ -17930,12 +17958,6 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17930
17958
  injectPrefix(arg, "^");
17931
17959
  }
17932
17960
  }
17933
- if (!exp || exp.type === 4 && !exp.content.trim()) {
17934
- context.onError(createCompilerError(34, loc));
17935
- return {
17936
- props: [createObjectProperty(arg, createSimpleExpression("", true, loc))]
17937
- };
17938
- }
17939
17961
  return {
17940
17962
  props: [createObjectProperty(arg, exp)]
17941
17963
  };