@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.
package/dist/vue.cjs.js CHANGED
@@ -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
  **/
@@ -523,7 +523,7 @@ class ReactiveEffect {
523
523
  /**
524
524
  * @internal
525
525
  */
526
- this._dirtyLevel = 2;
526
+ this._dirtyLevel = 4;
527
527
  /**
528
528
  * @internal
529
529
  */
@@ -543,26 +543,27 @@ class ReactiveEffect {
543
543
  recordEffectScope(this, scope);
544
544
  }
545
545
  get dirty() {
546
- if (this._dirtyLevel === 1) {
546
+ if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
547
+ this._dirtyLevel = 1;
547
548
  pauseTracking();
548
549
  for (let i = 0; i < this._depsLength; i++) {
549
550
  const dep = this.deps[i];
550
551
  if (dep.computed) {
551
552
  triggerComputed(dep.computed);
552
- if (this._dirtyLevel >= 2) {
553
+ if (this._dirtyLevel >= 4) {
553
554
  break;
554
555
  }
555
556
  }
556
557
  }
557
- if (this._dirtyLevel < 2) {
558
+ if (this._dirtyLevel === 1) {
558
559
  this._dirtyLevel = 0;
559
560
  }
560
561
  resetTracking();
561
562
  }
562
- return this._dirtyLevel >= 2;
563
+ return this._dirtyLevel >= 4;
563
564
  }
564
565
  set dirty(v) {
565
- this._dirtyLevel = v ? 2 : 0;
566
+ this._dirtyLevel = v ? 4 : 0;
566
567
  }
567
568
  run() {
568
569
  this._dirtyLevel = 0;
@@ -602,7 +603,7 @@ function preCleanupEffect(effect2) {
602
603
  effect2._depsLength = 0;
603
604
  }
604
605
  function postCleanupEffect(effect2) {
605
- if (effect2.deps && effect2.deps.length > effect2._depsLength) {
606
+ if (effect2.deps.length > effect2._depsLength) {
606
607
  for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
607
608
  cleanupDepEffect(effect2.deps[i], effect2);
608
609
  }
@@ -685,29 +686,26 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
685
686
  var _a;
686
687
  pauseScheduling();
687
688
  for (const effect2 of dep.keys()) {
688
- if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
689
- const lastDirtyLevel = effect2._dirtyLevel;
689
+ let tracking;
690
+ if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
691
+ effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
690
692
  effect2._dirtyLevel = dirtyLevel;
691
- if (lastDirtyLevel === 0) {
692
- effect2._shouldSchedule = true;
693
- {
694
- (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
693
+ }
694
+ if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
695
+ {
696
+ (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
697
+ }
698
+ effect2.trigger();
699
+ if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
700
+ effect2._shouldSchedule = false;
701
+ if (effect2.scheduler) {
702
+ queueEffectSchedulers.push(effect2.scheduler);
695
703
  }
696
- effect2.trigger();
697
704
  }
698
705
  }
699
706
  }
700
- scheduleEffects(dep);
701
707
  resetScheduling();
702
708
  }
703
- function scheduleEffects(dep) {
704
- for (const effect2 of dep.keys()) {
705
- if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
706
- effect2._shouldSchedule = false;
707
- queueEffectSchedulers.push(effect2.scheduler);
708
- }
709
- }
710
- }
711
709
 
712
710
  const createDep = (cleanup, computed) => {
713
711
  const dep = /* @__PURE__ */ new Map();
@@ -790,7 +788,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
790
788
  if (dep) {
791
789
  triggerEffects(
792
790
  dep,
793
- 2,
791
+ 4,
794
792
  {
795
793
  target,
796
794
  type,
@@ -1375,7 +1373,9 @@ function toRaw(observed) {
1375
1373
  return raw ? toRaw(raw) : observed;
1376
1374
  }
1377
1375
  function markRaw(value) {
1378
- def(value, "__v_skip", true);
1376
+ if (Object.isExtensible(value)) {
1377
+ def(value, "__v_skip", true);
1378
+ }
1379
1379
  return value;
1380
1380
  }
1381
1381
  const toReactive = (value) => isObject(value) ? reactive(value) : value;
@@ -1389,8 +1389,10 @@ class ComputedRefImpl {
1389
1389
  this["__v_isReadonly"] = false;
1390
1390
  this.effect = new ReactiveEffect(
1391
1391
  () => getter(this._value),
1392
- () => triggerRefValue(this, 1),
1393
- () => this.dep && scheduleEffects(this.dep)
1392
+ () => triggerRefValue(
1393
+ this,
1394
+ this.effect._dirtyLevel === 2 ? 2 : 3
1395
+ )
1394
1396
  );
1395
1397
  this.effect.computed = this;
1396
1398
  this.effect.active = this._cacheable = !isSSR;
@@ -1398,14 +1400,12 @@ class ComputedRefImpl {
1398
1400
  }
1399
1401
  get value() {
1400
1402
  const self = toRaw(this);
1401
- if (!self._cacheable || self.effect.dirty) {
1402
- if (hasChanged(self._value, self._value = self.effect.run())) {
1403
- triggerRefValue(self, 2);
1404
- }
1403
+ if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
1404
+ triggerRefValue(self, 4);
1405
1405
  }
1406
1406
  trackRefValue(self);
1407
- if (self.effect._dirtyLevel >= 1) {
1408
- triggerRefValue(self, 1);
1407
+ if (self.effect._dirtyLevel >= 2) {
1408
+ triggerRefValue(self, 2);
1409
1409
  }
1410
1410
  return self._value;
1411
1411
  }
@@ -1443,14 +1443,15 @@ function computed$1(getterOrOptions, debugOptions, isSSR = false) {
1443
1443
  }
1444
1444
 
1445
1445
  function trackRefValue(ref2) {
1446
+ var _a;
1446
1447
  if (shouldTrack && activeEffect) {
1447
1448
  ref2 = toRaw(ref2);
1448
1449
  trackEffect(
1449
1450
  activeEffect,
1450
- ref2.dep || (ref2.dep = createDep(
1451
+ (_a = ref2.dep) != null ? _a : ref2.dep = createDep(
1451
1452
  () => ref2.dep = void 0,
1452
1453
  ref2 instanceof ComputedRefImpl ? ref2 : void 0
1453
- )),
1454
+ ),
1454
1455
  {
1455
1456
  target: ref2,
1456
1457
  type: "get",
@@ -1459,7 +1460,7 @@ function trackRefValue(ref2) {
1459
1460
  );
1460
1461
  }
1461
1462
  }
1462
- function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
1463
+ function triggerRefValue(ref2, dirtyLevel = 4, newVal) {
1463
1464
  ref2 = toRaw(ref2);
1464
1465
  const dep = ref2.dep;
1465
1466
  if (dep) {
@@ -1508,12 +1509,12 @@ class RefImpl {
1508
1509
  if (hasChanged(newVal, this._rawValue)) {
1509
1510
  this._rawValue = newVal;
1510
1511
  this._value = useDirectValue ? newVal : toReactive(newVal);
1511
- triggerRefValue(this, 2, newVal);
1512
+ triggerRefValue(this, 4, newVal);
1512
1513
  }
1513
1514
  }
1514
1515
  }
1515
1516
  function triggerRef(ref2) {
1516
- triggerRefValue(ref2, 2, ref2.value );
1517
+ triggerRefValue(ref2, 4, ref2.value );
1517
1518
  }
1518
1519
  function unref(ref2) {
1519
1520
  return isRef(ref2) ? ref2.value : ref2;
@@ -6579,7 +6580,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6579
6580
  return vm;
6580
6581
  }
6581
6582
  }
6582
- Vue.version = `2.6.14-compat:${"3.4.15"}`;
6583
+ Vue.version = `2.6.14-compat:${"3.4.17"}`;
6583
6584
  Vue.config = singletonApp.config;
6584
6585
  Vue.use = (p, ...options) => {
6585
6586
  if (p && isFunction(p.install)) {
@@ -7124,11 +7125,12 @@ If you want to remount the same app, move your app creation logic into a factory
7124
7125
  return app;
7125
7126
  },
7126
7127
  runWithContext(fn) {
7128
+ const lastApp = currentApp;
7127
7129
  currentApp = app;
7128
7130
  try {
7129
7131
  return fn();
7130
7132
  } finally {
7131
- currentApp = null;
7133
+ currentApp = lastApp;
7132
7134
  }
7133
7135
  }
7134
7136
  };
@@ -7786,10 +7788,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7786
7788
  } else {
7787
7789
  const _isString = isString(ref);
7788
7790
  const _isRef = isRef(ref);
7789
- const isVFor = rawRef.f;
7790
7791
  if (_isString || _isRef) {
7791
7792
  const doSet = () => {
7792
- if (isVFor) {
7793
+ if (rawRef.f) {
7793
7794
  const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
7794
7795
  if (isUnmount) {
7795
7796
  isArray(existing) && remove(existing, refValue);
@@ -7822,11 +7823,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7822
7823
  warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7823
7824
  }
7824
7825
  };
7825
- if (isUnmount || isVFor) {
7826
- doSet();
7827
- } else {
7826
+ if (value) {
7828
7827
  doSet.id = -1;
7829
7828
  queuePostRenderEffect(doSet, parentSuspense);
7829
+ } else {
7830
+ doSet();
7830
7831
  }
7831
7832
  } else {
7832
7833
  warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@@ -8125,7 +8126,7 @@ Server rendered element contains more child nodes than client vdom.`
8125
8126
  if (props) {
8126
8127
  {
8127
8128
  for (const key in props) {
8128
- if (propHasMismatch(el, key, props[key], vnode)) {
8129
+ if (propHasMismatch(el, key, props[key], vnode, parentComponent)) {
8129
8130
  hasMismatch = true;
8130
8131
  }
8131
8132
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@@ -8300,7 +8301,8 @@ Server rendered element contains fewer child nodes than client vdom.`
8300
8301
  };
8301
8302
  return [hydrate, hydrateNode];
8302
8303
  }
8303
- function propHasMismatch(el, key, clientValue, vnode) {
8304
+ function propHasMismatch(el, key, clientValue, vnode, instance) {
8305
+ var _a;
8304
8306
  let mismatchType;
8305
8307
  let mismatchKey;
8306
8308
  let actual;
@@ -8323,6 +8325,10 @@ function propHasMismatch(el, key, clientValue, vnode) {
8323
8325
  }
8324
8326
  }
8325
8327
  }
8328
+ const cssVars = (_a = instance == null ? void 0 : instance.getCssVars) == null ? void 0 : _a.call(instance);
8329
+ for (const key2 in cssVars) {
8330
+ expectedMap.set(`--${key2}`, String(cssVars[key2]));
8331
+ }
8326
8332
  if (!isMapEqual(actualMap, expectedMap)) {
8327
8333
  mismatchType = mismatchKey = "style";
8328
8334
  }
@@ -11413,7 +11419,7 @@ function isMemoSame(cached, memo) {
11413
11419
  return true;
11414
11420
  }
11415
11421
 
11416
- const version = "3.4.15";
11422
+ const version = "3.4.17";
11417
11423
  const warn = warn$1 ;
11418
11424
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11419
11425
  const devtools = devtools$1 ;
@@ -12759,9 +12765,6 @@ function setSelected(el, value, oldValue, number) {
12759
12765
  );
12760
12766
  return;
12761
12767
  }
12762
- if (isArrayValue && looseEqual(value, oldValue)) {
12763
- return;
12764
- }
12765
12768
  for (let i = 0, l = el.options.length; i < l; i++) {
12766
12769
  const option = el.options[i];
12767
12770
  const optionValue = getValue(option);
@@ -14494,6 +14497,7 @@ const errorMessages = {
14494
14497
  [32]: `v-for has invalid expression.`,
14495
14498
  [33]: `<template v-for> key should be placed on the <template> tag.`,
14496
14499
  [34]: `v-bind is missing expression.`,
14500
+ [52]: `v-bind with same-name shorthand only allows static argument.`,
14497
14501
  [35]: `v-on is missing expression.`,
14498
14502
  [36]: `Unexpected custom directive on <slot> outlet.`,
14499
14503
  [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.`,
@@ -14514,7 +14518,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14514
14518
  [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
14515
14519
  [50]: `"scopeId" option is only supported in module mode.`,
14516
14520
  // just to fulfill types
14517
- [52]: ``
14521
+ [53]: ``
14518
14522
  };
14519
14523
 
14520
14524
  function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {
@@ -18783,8 +18787,15 @@ function processSlotOutlet(node, context) {
18783
18787
  }
18784
18788
  } else {
18785
18789
  if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
18786
- if (p.exp)
18790
+ if (p.exp) {
18787
18791
  slotName = p.exp;
18792
+ } else if (p.arg && p.arg.type === 4) {
18793
+ const name = camelize(p.arg.content);
18794
+ slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);
18795
+ {
18796
+ slotName = p.exp = processExpression(p.exp, context);
18797
+ }
18798
+ }
18788
18799
  } else {
18789
18800
  if (p.name === "bind" && p.arg && isStaticExp(p.arg)) {
18790
18801
  p.arg.content = camelize(p.arg.content);
@@ -18924,7 +18935,32 @@ const transformBind = (dir, _node, context) => {
18924
18935
  const { modifiers, loc } = dir;
18925
18936
  const arg = dir.arg;
18926
18937
  let { exp } = dir;
18927
- if (!exp && arg.type === 4) {
18938
+ if (exp && exp.type === 4 && !exp.content.trim()) {
18939
+ {
18940
+ context.onError(
18941
+ createCompilerError(34, loc)
18942
+ );
18943
+ return {
18944
+ props: [
18945
+ createObjectProperty(arg, createSimpleExpression("", true, loc))
18946
+ ]
18947
+ };
18948
+ }
18949
+ }
18950
+ if (!exp) {
18951
+ if (arg.type !== 4 || !arg.isStatic) {
18952
+ context.onError(
18953
+ createCompilerError(
18954
+ 52,
18955
+ arg.loc
18956
+ )
18957
+ );
18958
+ return {
18959
+ props: [
18960
+ createObjectProperty(arg, createSimpleExpression("", true, loc))
18961
+ ]
18962
+ };
18963
+ }
18928
18964
  const propName = camelize(arg.content);
18929
18965
  exp = dir.exp = createSimpleExpression(propName, false, arg.loc);
18930
18966
  {
@@ -18957,12 +18993,6 @@ const transformBind = (dir, _node, context) => {
18957
18993
  injectPrefix(arg, "^");
18958
18994
  }
18959
18995
  }
18960
- if (!exp || exp.type === 4 && !exp.content.trim()) {
18961
- context.onError(createCompilerError(34, loc));
18962
- return {
18963
- props: [createObjectProperty(arg, createSimpleExpression("", true, loc))]
18964
- };
18965
- }
18966
18996
  return {
18967
18997
  props: [createObjectProperty(arg, exp)]
18968
18998
  };
@@ -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
  **/
@@ -443,7 +443,7 @@ class ReactiveEffect {
443
443
  /**
444
444
  * @internal
445
445
  */
446
- this._dirtyLevel = 2;
446
+ this._dirtyLevel = 4;
447
447
  /**
448
448
  * @internal
449
449
  */
@@ -463,26 +463,27 @@ class ReactiveEffect {
463
463
  recordEffectScope(this, scope);
464
464
  }
465
465
  get dirty() {
466
- if (this._dirtyLevel === 1) {
466
+ if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
467
+ this._dirtyLevel = 1;
467
468
  pauseTracking();
468
469
  for (let i = 0; i < this._depsLength; i++) {
469
470
  const dep = this.deps[i];
470
471
  if (dep.computed) {
471
472
  triggerComputed(dep.computed);
472
- if (this._dirtyLevel >= 2) {
473
+ if (this._dirtyLevel >= 4) {
473
474
  break;
474
475
  }
475
476
  }
476
477
  }
477
- if (this._dirtyLevel < 2) {
478
+ if (this._dirtyLevel === 1) {
478
479
  this._dirtyLevel = 0;
479
480
  }
480
481
  resetTracking();
481
482
  }
482
- return this._dirtyLevel >= 2;
483
+ return this._dirtyLevel >= 4;
483
484
  }
484
485
  set dirty(v) {
485
- this._dirtyLevel = v ? 2 : 0;
486
+ this._dirtyLevel = v ? 4 : 0;
486
487
  }
487
488
  run() {
488
489
  this._dirtyLevel = 0;
@@ -522,7 +523,7 @@ function preCleanupEffect(effect2) {
522
523
  effect2._depsLength = 0;
523
524
  }
524
525
  function postCleanupEffect(effect2) {
525
- if (effect2.deps && effect2.deps.length > effect2._depsLength) {
526
+ if (effect2.deps.length > effect2._depsLength) {
526
527
  for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
527
528
  cleanupDepEffect(effect2.deps[i], effect2);
528
529
  }
@@ -600,26 +601,23 @@ const queueEffectSchedulers = [];
600
601
  function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
601
602
  pauseScheduling();
602
603
  for (const effect2 of dep.keys()) {
603
- if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) {
604
- const lastDirtyLevel = effect2._dirtyLevel;
604
+ let tracking;
605
+ if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
606
+ effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
605
607
  effect2._dirtyLevel = dirtyLevel;
606
- if (lastDirtyLevel === 0) {
607
- effect2._shouldSchedule = true;
608
- effect2.trigger();
608
+ }
609
+ if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
610
+ effect2.trigger();
611
+ if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
612
+ effect2._shouldSchedule = false;
613
+ if (effect2.scheduler) {
614
+ queueEffectSchedulers.push(effect2.scheduler);
615
+ }
609
616
  }
610
617
  }
611
618
  }
612
- scheduleEffects(dep);
613
619
  resetScheduling();
614
620
  }
615
- function scheduleEffects(dep) {
616
- for (const effect2 of dep.keys()) {
617
- if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) {
618
- effect2._shouldSchedule = false;
619
- queueEffectSchedulers.push(effect2.scheduler);
620
- }
621
- }
622
- }
623
621
 
624
622
  const createDep = (cleanup, computed) => {
625
623
  const dep = /* @__PURE__ */ new Map();
@@ -696,7 +694,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
696
694
  if (dep) {
697
695
  triggerEffects(
698
696
  dep,
699
- 2);
697
+ 4);
700
698
  }
701
699
  }
702
700
  resetScheduling();
@@ -1236,7 +1234,9 @@ function toRaw(observed) {
1236
1234
  return raw ? toRaw(raw) : observed;
1237
1235
  }
1238
1236
  function markRaw(value) {
1239
- def(value, "__v_skip", true);
1237
+ if (Object.isExtensible(value)) {
1238
+ def(value, "__v_skip", true);
1239
+ }
1240
1240
  return value;
1241
1241
  }
1242
1242
  const toReactive = (value) => isObject(value) ? reactive(value) : value;
@@ -1250,8 +1250,10 @@ class ComputedRefImpl {
1250
1250
  this["__v_isReadonly"] = false;
1251
1251
  this.effect = new ReactiveEffect(
1252
1252
  () => getter(this._value),
1253
- () => triggerRefValue(this, 1),
1254
- () => this.dep && scheduleEffects(this.dep)
1253
+ () => triggerRefValue(
1254
+ this,
1255
+ this.effect._dirtyLevel === 2 ? 2 : 3
1256
+ )
1255
1257
  );
1256
1258
  this.effect.computed = this;
1257
1259
  this.effect.active = this._cacheable = !isSSR;
@@ -1259,14 +1261,12 @@ class ComputedRefImpl {
1259
1261
  }
1260
1262
  get value() {
1261
1263
  const self = toRaw(this);
1262
- if (!self._cacheable || self.effect.dirty) {
1263
- if (hasChanged(self._value, self._value = self.effect.run())) {
1264
- triggerRefValue(self, 2);
1265
- }
1264
+ if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
1265
+ triggerRefValue(self, 4);
1266
1266
  }
1267
1267
  trackRefValue(self);
1268
- if (self.effect._dirtyLevel >= 1) {
1269
- triggerRefValue(self, 1);
1268
+ if (self.effect._dirtyLevel >= 2) {
1269
+ triggerRefValue(self, 2);
1270
1270
  }
1271
1271
  return self._value;
1272
1272
  }
@@ -1298,17 +1298,18 @@ function computed$1(getterOrOptions, debugOptions, isSSR = false) {
1298
1298
  }
1299
1299
 
1300
1300
  function trackRefValue(ref2) {
1301
+ var _a;
1301
1302
  if (shouldTrack && activeEffect) {
1302
1303
  ref2 = toRaw(ref2);
1303
1304
  trackEffect(
1304
1305
  activeEffect,
1305
- ref2.dep || (ref2.dep = createDep(
1306
+ (_a = ref2.dep) != null ? _a : ref2.dep = createDep(
1306
1307
  () => ref2.dep = void 0,
1307
1308
  ref2 instanceof ComputedRefImpl ? ref2 : void 0
1308
- )));
1309
+ ));
1309
1310
  }
1310
1311
  }
1311
- function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
1312
+ function triggerRefValue(ref2, dirtyLevel = 4, newVal) {
1312
1313
  ref2 = toRaw(ref2);
1313
1314
  const dep = ref2.dep;
1314
1315
  if (dep) {
@@ -1350,12 +1351,12 @@ class RefImpl {
1350
1351
  if (hasChanged(newVal, this._rawValue)) {
1351
1352
  this._rawValue = newVal;
1352
1353
  this._value = useDirectValue ? newVal : toReactive(newVal);
1353
- triggerRefValue(this, 2);
1354
+ triggerRefValue(this, 4);
1354
1355
  }
1355
1356
  }
1356
1357
  }
1357
1358
  function triggerRef(ref2) {
1358
- triggerRefValue(ref2, 2);
1359
+ triggerRefValue(ref2, 4);
1359
1360
  }
1360
1361
  function unref(ref2) {
1361
1362
  return isRef(ref2) ? ref2.value : ref2;
@@ -5256,7 +5257,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5256
5257
  return vm;
5257
5258
  }
5258
5259
  }
5259
- Vue.version = `2.6.14-compat:${"3.4.15"}`;
5260
+ Vue.version = `2.6.14-compat:${"3.4.17"}`;
5260
5261
  Vue.config = singletonApp.config;
5261
5262
  Vue.use = (p, ...options) => {
5262
5263
  if (p && isFunction(p.install)) {
@@ -5700,11 +5701,12 @@ function createAppAPI(render, hydrate) {
5700
5701
  return app;
5701
5702
  },
5702
5703
  runWithContext(fn) {
5704
+ const lastApp = currentApp;
5703
5705
  currentApp = app;
5704
5706
  try {
5705
5707
  return fn();
5706
5708
  } finally {
5707
- currentApp = null;
5709
+ currentApp = lastApp;
5708
5710
  }
5709
5711
  }
5710
5712
  };
@@ -6204,10 +6206,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
6204
6206
  } else {
6205
6207
  const _isString = isString(ref);
6206
6208
  const _isRef = isRef(ref);
6207
- const isVFor = rawRef.f;
6208
6209
  if (_isString || _isRef) {
6209
6210
  const doSet = () => {
6210
- if (isVFor) {
6211
+ if (rawRef.f) {
6211
6212
  const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
6212
6213
  if (isUnmount) {
6213
6214
  isArray(existing) && remove(existing, refValue);
@@ -6238,11 +6239,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
6238
6239
  refs[rawRef.k] = value;
6239
6240
  } else ;
6240
6241
  };
6241
- if (isUnmount || isVFor) {
6242
- doSet();
6243
- } else {
6242
+ if (value) {
6244
6243
  doSet.id = -1;
6245
6244
  queuePostRenderEffect(doSet, parentSuspense);
6245
+ } else {
6246
+ doSet();
6246
6247
  }
6247
6248
  }
6248
6249
  }
@@ -9116,7 +9117,7 @@ function isMemoSame(cached, memo) {
9116
9117
  return true;
9117
9118
  }
9118
9119
 
9119
- const version = "3.4.15";
9120
+ const version = "3.4.17";
9120
9121
  const warn$1 = NOOP;
9121
9122
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9122
9123
  const devtools = void 0;
@@ -10410,9 +10411,6 @@ function setSelected(el, value, oldValue, number) {
10410
10411
  if (isMultiple && !isArrayValue && !isSet(value)) {
10411
10412
  return;
10412
10413
  }
10413
- if (isArrayValue && looseEqual(value, oldValue)) {
10414
- return;
10415
- }
10416
10414
  for (let i = 0, l = el.options.length; i < l; i++) {
10417
10415
  const option = el.options[i];
10418
10416
  const optionValue = getValue(option);
@@ -12023,6 +12021,7 @@ const errorMessages = {
12023
12021
  [32]: `v-for has invalid expression.`,
12024
12022
  [33]: `<template v-for> key should be placed on the <template> tag.`,
12025
12023
  [34]: `v-bind is missing expression.`,
12024
+ [52]: `v-bind with same-name shorthand only allows static argument.`,
12026
12025
  [35]: `v-on is missing expression.`,
12027
12026
  [36]: `Unexpected custom directive on <slot> outlet.`,
12028
12027
  [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.`,
@@ -12043,7 +12042,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
12043
12042
  [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
12044
12043
  [50]: `"scopeId" option is only supported in module mode.`,
12045
12044
  // just to fulfill types
12046
- [52]: ``
12045
+ [53]: ``
12047
12046
  };
12048
12047
 
12049
12048
  function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {
@@ -16193,8 +16192,15 @@ function processSlotOutlet(node, context) {
16193
16192
  }
16194
16193
  } else {
16195
16194
  if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
16196
- if (p.exp)
16195
+ if (p.exp) {
16197
16196
  slotName = p.exp;
16197
+ } else if (p.arg && p.arg.type === 4) {
16198
+ const name = camelize(p.arg.content);
16199
+ slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);
16200
+ {
16201
+ slotName = p.exp = processExpression(p.exp, context);
16202
+ }
16203
+ }
16198
16204
  } else {
16199
16205
  if (p.name === "bind" && p.arg && isStaticExp(p.arg)) {
16200
16206
  p.arg.content = camelize(p.arg.content);
@@ -16331,7 +16337,32 @@ const transformBind = (dir, _node, context) => {
16331
16337
  const { modifiers, loc } = dir;
16332
16338
  const arg = dir.arg;
16333
16339
  let { exp } = dir;
16334
- if (!exp && arg.type === 4) {
16340
+ if (exp && exp.type === 4 && !exp.content.trim()) {
16341
+ {
16342
+ context.onError(
16343
+ createCompilerError(34, loc)
16344
+ );
16345
+ return {
16346
+ props: [
16347
+ createObjectProperty(arg, createSimpleExpression("", true, loc))
16348
+ ]
16349
+ };
16350
+ }
16351
+ }
16352
+ if (!exp) {
16353
+ if (arg.type !== 4 || !arg.isStatic) {
16354
+ context.onError(
16355
+ createCompilerError(
16356
+ 52,
16357
+ arg.loc
16358
+ )
16359
+ );
16360
+ return {
16361
+ props: [
16362
+ createObjectProperty(arg, createSimpleExpression("", true, loc))
16363
+ ]
16364
+ };
16365
+ }
16335
16366
  const propName = camelize(arg.content);
16336
16367
  exp = dir.exp = createSimpleExpression(propName, false, arg.loc);
16337
16368
  {
@@ -16364,12 +16395,6 @@ const transformBind = (dir, _node, context) => {
16364
16395
  injectPrefix(arg, "^");
16365
16396
  }
16366
16397
  }
16367
- if (!exp || exp.type === 4 && !exp.content.trim()) {
16368
- context.onError(createCompilerError(34, loc));
16369
- return {
16370
- props: [createObjectProperty(arg, createSimpleExpression("", true, loc))]
16371
- };
16372
- }
16373
16398
  return {
16374
16399
  props: [createObjectProperty(arg, exp)]
16375
16400
  };