@vue/compat 3.5.1 → 3.5.2

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.5.1
2
+ * @vue/compat v3.5.2
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -738,9 +738,6 @@ function isDirty(sub) {
738
738
  return false;
739
739
  }
740
740
  function refreshComputed(computed) {
741
- if (computed.flags & 2) {
742
- return false;
743
- }
744
741
  if (computed.flags & 4 && !(computed.flags & 16)) {
745
742
  return;
746
743
  }
@@ -761,7 +758,7 @@ function refreshComputed(computed) {
761
758
  shouldTrack = true;
762
759
  try {
763
760
  prepareDeps(computed);
764
- const value = computed.fn();
761
+ const value = computed.fn(computed._value);
765
762
  if (dep.version === 0 || hasChanged(value, computed._value)) {
766
763
  computed._value = value;
767
764
  dep.version++;
@@ -870,7 +867,7 @@ class Dep {
870
867
  }
871
868
  }
872
869
  track(debugInfo) {
873
- if (!activeSub || !shouldTrack) {
870
+ if (!activeSub || !shouldTrack || activeSub === this.computed) {
874
871
  return;
875
872
  }
876
873
  let link = this.activeLink;
@@ -1883,7 +1880,7 @@ function toValue(source) {
1883
1880
  return isFunction(source) ? source() : unref(source);
1884
1881
  }
1885
1882
  const shallowUnwrapHandlers = {
1886
- get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
1883
+ get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)),
1887
1884
  set: (target, key, value, receiver) => {
1888
1885
  const oldValue = target[key];
1889
1886
  if (isRef(oldValue) && !isRef(value)) {
@@ -2015,8 +2012,8 @@ class ComputedRefImpl {
2015
2012
  * @internal
2016
2013
  */
2017
2014
  notify() {
2015
+ this.flags |= 16;
2018
2016
  if (activeSub !== this) {
2019
- this.flags |= 16;
2020
2017
  this.dep.notify();
2021
2018
  }
2022
2019
  }
@@ -2585,9 +2582,7 @@ function queueJob(job) {
2585
2582
  } else {
2586
2583
  queue.splice(findInsertionIndex(jobId), 0, job);
2587
2584
  }
2588
- if (!(job.flags & 4)) {
2589
- job.flags |= 1;
2590
- }
2585
+ job.flags |= 1;
2591
2586
  queueFlush();
2592
2587
  }
2593
2588
  }
@@ -2603,9 +2598,7 @@ function queuePostFlushCb(cb) {
2603
2598
  activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);
2604
2599
  } else if (!(cb.flags & 1)) {
2605
2600
  pendingPostFlushCbs.push(cb);
2606
- if (!(cb.flags & 4)) {
2607
- cb.flags |= 1;
2608
- }
2601
+ cb.flags |= 1;
2609
2602
  }
2610
2603
  } else {
2611
2604
  pendingPostFlushCbs.push(...cb);
@@ -2627,6 +2620,9 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
2627
2620
  }
2628
2621
  queue.splice(i, 1);
2629
2622
  i--;
2623
+ if (cb.flags & 4) {
2624
+ cb.flags &= ~1;
2625
+ }
2630
2626
  cb();
2631
2627
  cb.flags &= ~1;
2632
2628
  }
@@ -2651,6 +2647,9 @@ function flushPostFlushCbs(seen) {
2651
2647
  if (checkRecursiveUpdates(seen, cb)) {
2652
2648
  continue;
2653
2649
  }
2650
+ if (cb.flags & 4) {
2651
+ cb.flags &= ~1;
2652
+ }
2654
2653
  if (!(cb.flags & 8)) cb();
2655
2654
  cb.flags &= ~1;
2656
2655
  }
@@ -2673,6 +2672,9 @@ function flushJobs(seen) {
2673
2672
  if (check(job)) {
2674
2673
  continue;
2675
2674
  }
2675
+ if (job.flags & 4) {
2676
+ job.flags &= ~1;
2677
+ }
2676
2678
  callWithErrorHandling(
2677
2679
  job,
2678
2680
  job.i,
@@ -2682,6 +2684,12 @@ function flushJobs(seen) {
2682
2684
  }
2683
2685
  }
2684
2686
  } finally {
2687
+ for (; flushIndex < queue.length; flushIndex++) {
2688
+ const job = queue[flushIndex];
2689
+ if (job) {
2690
+ job.flags &= ~1;
2691
+ }
2692
+ }
2685
2693
  flushIndex = 0;
2686
2694
  queue.length = 0;
2687
2695
  flushPostFlushCbs(seen);
@@ -3966,6 +3974,7 @@ const BaseTransitionImpl = {
3966
3974
  if (!(instance.job.flags & 8)) {
3967
3975
  instance.update();
3968
3976
  }
3977
+ delete leavingHooks.afterLeave;
3969
3978
  };
3970
3979
  return emptyPlaceholder(child);
3971
3980
  } else if (mode === "in-out" && innerChild.type !== Comment) {
@@ -4246,6 +4255,34 @@ function markAsyncBoundary(instance) {
4246
4255
  instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0];
4247
4256
  }
4248
4257
 
4258
+ const knownTemplateRefs = /* @__PURE__ */ new WeakSet();
4259
+ function useTemplateRef(key) {
4260
+ const i = getCurrentInstance();
4261
+ const r = shallowRef(null);
4262
+ if (i) {
4263
+ const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
4264
+ let desc;
4265
+ if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
4266
+ warn$1(`useTemplateRef('${key}') already exists.`);
4267
+ } else {
4268
+ Object.defineProperty(refs, key, {
4269
+ enumerable: true,
4270
+ get: () => r.value,
4271
+ set: (val) => r.value = val
4272
+ });
4273
+ }
4274
+ } else {
4275
+ warn$1(
4276
+ `useTemplateRef() is called when there is no active component instance to be associated with.`
4277
+ );
4278
+ }
4279
+ const ret = readonly(r) ;
4280
+ {
4281
+ knownTemplateRefs.add(ret);
4282
+ }
4283
+ return ret;
4284
+ }
4285
+
4249
4286
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4250
4287
  if (isArray(rawRef)) {
4251
4288
  rawRef.forEach(
@@ -4274,7 +4311,13 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4274
4311
  const oldRef = oldRawRef && oldRawRef.r;
4275
4312
  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
4276
4313
  const setupState = owner.setupState;
4277
- const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => hasOwn(setupState, key) && !(Object.getOwnPropertyDescriptor(refs, key) || EMPTY_OBJ).get;
4314
+ const rawSetupState = toRaw(setupState);
4315
+ const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
4316
+ if (knownTemplateRefs.has(rawSetupState[key])) {
4317
+ return false;
4318
+ }
4319
+ return hasOwn(rawSetupState, key);
4320
+ };
4278
4321
  if (oldRef != null && oldRef !== ref) {
4279
4322
  if (isString(oldRef)) {
4280
4323
  refs[oldRef] = null;
@@ -5331,7 +5374,7 @@ const KeepAliveImpl = {
5331
5374
  return () => {
5332
5375
  pendingCacheKey = null;
5333
5376
  if (!slots.default) {
5334
- return null;
5377
+ return current = null;
5335
5378
  }
5336
5379
  const children = slots.default();
5337
5380
  const rawVNode = children[0];
@@ -7106,7 +7149,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7106
7149
  return vm;
7107
7150
  }
7108
7151
  }
7109
- Vue.version = `2.6.14-compat:${"3.5.1"}`;
7152
+ Vue.version = `2.6.14-compat:${"3.5.2"}`;
7110
7153
  Vue.config = singletonApp.config;
7111
7154
  Vue.use = (plugin, ...options) => {
7112
7155
  if (plugin && isFunction(plugin.install)) {
@@ -10219,7 +10262,8 @@ function renderComponentRoot(instance) {
10219
10262
  data,
10220
10263
  setupState,
10221
10264
  ctx,
10222
- inheritAttrs
10265
+ inheritAttrs,
10266
+ isMounted
10223
10267
  } = instance;
10224
10268
  const prev = setCurrentRenderingInstance(instance);
10225
10269
  let result;
@@ -10360,7 +10404,7 @@ function renderComponentRoot(instance) {
10360
10404
  `Component inside <Transition> renders non-element root node that cannot be animated.`
10361
10405
  );
10362
10406
  }
10363
- root.transition = vnode.transition;
10407
+ root.transition = isMounted ? vnode.component.subTree.transition : vnode.transition;
10364
10408
  }
10365
10409
  if (setRoot) {
10366
10410
  setRoot(root);
@@ -10854,7 +10898,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
10854
10898
  };
10855
10899
  }
10856
10900
  if (activeBranch) {
10857
- if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
10901
+ if (parentNode(activeBranch.el) === container2) {
10858
10902
  anchor = next(activeBranch);
10859
10903
  }
10860
10904
  unmount(activeBranch, parentComponent2, suspense, true);
@@ -11994,29 +12038,6 @@ const computed = (getterOrOptions, debugOptions) => {
11994
12038
  return c;
11995
12039
  };
11996
12040
 
11997
- function useTemplateRef(key) {
11998
- const i = getCurrentInstance();
11999
- const r = shallowRef(null);
12000
- if (i) {
12001
- const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
12002
- let desc;
12003
- if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {
12004
- warn$1(`useTemplateRef('${key}') already exists.`);
12005
- } else {
12006
- Object.defineProperty(refs, key, {
12007
- enumerable: true,
12008
- get: () => r.value,
12009
- set: (val) => r.value = val
12010
- });
12011
- }
12012
- } else {
12013
- warn$1(
12014
- `useTemplateRef() is called when there is no active component instance to be associated with.`
12015
- );
12016
- }
12017
- return readonly(r) ;
12018
- }
12019
-
12020
12041
  function h(type, propsOrChildren, children) {
12021
12042
  const l = arguments.length;
12022
12043
  if (l === 2) {
@@ -12242,7 +12263,7 @@ function isMemoSame(cached, memo) {
12242
12263
  return true;
12243
12264
  }
12244
12265
 
12245
- const version = "3.5.1";
12266
+ const version = "3.5.2";
12246
12267
  const warn = warn$1 ;
12247
12268
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12248
12269
  const devtools = devtools$1 ;
@@ -16395,7 +16416,7 @@ const tokenizer = new Tokenizer(stack, {
16395
16416
  rawName: raw,
16396
16417
  exp: void 0,
16397
16418
  arg: void 0,
16398
- modifiers: raw === "." ? ["prop"] : [],
16419
+ modifiers: raw === "." ? [createSimpleExpression("prop")] : [],
16399
16420
  loc: getLoc(start)
16400
16421
  };
16401
16422
  if (name === "pre") {
@@ -16438,7 +16459,8 @@ const tokenizer = new Tokenizer(stack, {
16438
16459
  setLocEnd(arg.loc, end);
16439
16460
  }
16440
16461
  } else {
16441
- currentProp.modifiers.push(mod);
16462
+ const exp = createSimpleExpression(mod, true, getLoc(start, end));
16463
+ currentProp.modifiers.push(exp);
16442
16464
  }
16443
16465
  },
16444
16466
  onattribdata(start, end) {
@@ -16504,7 +16526,9 @@ const tokenizer = new Tokenizer(stack, {
16504
16526
  currentProp.forParseResult = parseForExpression(currentProp.exp);
16505
16527
  }
16506
16528
  let syncIndex = -1;
16507
- if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.indexOf("sync")) > -1 && checkCompatEnabled(
16529
+ if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex(
16530
+ (mod) => mod.content === "sync"
16531
+ )) > -1 && checkCompatEnabled(
16508
16532
  "COMPILER_V_BIND_SYNC",
16509
16533
  currentOptions,
16510
16534
  currentProp.loc,
@@ -18896,7 +18920,7 @@ const transformBind = (dir, _node, context) => {
18896
18920
  } else if (!arg.isStatic) {
18897
18921
  arg.content = `${arg.content} || ""`;
18898
18922
  }
18899
- if (modifiers.includes("camel")) {
18923
+ if (modifiers.some((mod) => mod.content === "camel")) {
18900
18924
  if (arg.type === 4) {
18901
18925
  if (arg.isStatic) {
18902
18926
  arg.content = camelize(arg.content);
@@ -18909,10 +18933,10 @@ const transformBind = (dir, _node, context) => {
18909
18933
  }
18910
18934
  }
18911
18935
  if (!context.inSSR) {
18912
- if (modifiers.includes("prop")) {
18936
+ if (modifiers.some((mod) => mod.content === "prop")) {
18913
18937
  injectPrefix(arg, ".");
18914
18938
  }
18915
- if (modifiers.includes("attr")) {
18939
+ if (modifiers.some((mod) => mod.content === "attr")) {
18916
18940
  injectPrefix(arg, "^");
18917
18941
  }
18918
18942
  }
@@ -19853,7 +19877,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
19853
19877
  }
19854
19878
  continue;
19855
19879
  }
19856
- if (isVBind && modifiers.includes("prop")) {
19880
+ if (isVBind && modifiers.some((mod) => mod.content === "prop")) {
19857
19881
  patchFlag |= 32;
19858
19882
  }
19859
19883
  const directiveTransform = context.directiveTransforms[name];
@@ -20419,7 +20443,7 @@ const transformModel$1 = (dir, node, context) => {
20419
20443
  props[1].value = context.cache(props[1].value);
20420
20444
  }
20421
20445
  if (dir.modifiers.length && node.tagType === 1) {
20422
- const modifiers = dir.modifiers.map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);
20446
+ const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);
20423
20447
  const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`;
20424
20448
  props.push(
20425
20449
  createObjectProperty(
@@ -20957,7 +20981,7 @@ const resolveModifiers = (key, modifiers, context, loc) => {
20957
20981
  const nonKeyModifiers = [];
20958
20982
  const eventOptionModifiers = [];
20959
20983
  for (let i = 0; i < modifiers.length; i++) {
20960
- const modifier = modifiers[i];
20984
+ const modifier = modifiers[i].content;
20961
20985
  if (modifier === "native" && checkCompatEnabled(
20962
20986
  "COMPILER_V_ON_NATIVE",
20963
20987
  context,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.1
2
+ * @vue/compat v3.5.2
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -644,9 +644,6 @@ function isDirty(sub) {
644
644
  return false;
645
645
  }
646
646
  function refreshComputed(computed) {
647
- if (computed.flags & 2) {
648
- return false;
649
- }
650
647
  if (computed.flags & 4 && !(computed.flags & 16)) {
651
648
  return;
652
649
  }
@@ -667,7 +664,7 @@ function refreshComputed(computed) {
667
664
  shouldTrack = true;
668
665
  try {
669
666
  prepareDeps(computed);
670
- const value = computed.fn();
667
+ const value = computed.fn(computed._value);
671
668
  if (dep.version === 0 || hasChanged(value, computed._value)) {
672
669
  computed._value = value;
673
670
  dep.version++;
@@ -773,7 +770,7 @@ class Dep {
773
770
  this.subs = void 0;
774
771
  }
775
772
  track(debugInfo) {
776
- if (!activeSub || !shouldTrack) {
773
+ if (!activeSub || !shouldTrack || activeSub === this.computed) {
777
774
  return;
778
775
  }
779
776
  let link = this.activeLink;
@@ -1694,7 +1691,7 @@ function toValue(source) {
1694
1691
  return isFunction(source) ? source() : unref(source);
1695
1692
  }
1696
1693
  const shallowUnwrapHandlers = {
1697
- get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
1694
+ get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)),
1698
1695
  set: (target, key, value, receiver) => {
1699
1696
  const oldValue = target[key];
1700
1697
  if (isRef(oldValue) && !isRef(value)) {
@@ -1823,8 +1820,8 @@ class ComputedRefImpl {
1823
1820
  * @internal
1824
1821
  */
1825
1822
  notify() {
1823
+ this.flags |= 16;
1826
1824
  if (activeSub !== this) {
1827
- this.flags |= 16;
1828
1825
  this.dep.notify();
1829
1826
  }
1830
1827
  }
@@ -2232,9 +2229,7 @@ function queueJob(job) {
2232
2229
  } else {
2233
2230
  queue.splice(findInsertionIndex(jobId), 0, job);
2234
2231
  }
2235
- if (!(job.flags & 4)) {
2236
- job.flags |= 1;
2237
- }
2232
+ job.flags |= 1;
2238
2233
  queueFlush();
2239
2234
  }
2240
2235
  }
@@ -2250,9 +2245,7 @@ function queuePostFlushCb(cb) {
2250
2245
  activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);
2251
2246
  } else if (!(cb.flags & 1)) {
2252
2247
  pendingPostFlushCbs.push(cb);
2253
- if (!(cb.flags & 4)) {
2254
- cb.flags |= 1;
2255
- }
2248
+ cb.flags |= 1;
2256
2249
  }
2257
2250
  } else {
2258
2251
  pendingPostFlushCbs.push(...cb);
@@ -2268,6 +2261,9 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
2268
2261
  }
2269
2262
  queue.splice(i, 1);
2270
2263
  i--;
2264
+ if (cb.flags & 4) {
2265
+ cb.flags &= ~1;
2266
+ }
2271
2267
  cb();
2272
2268
  cb.flags &= ~1;
2273
2269
  }
@@ -2286,6 +2282,9 @@ function flushPostFlushCbs(seen) {
2286
2282
  activePostFlushCbs = deduped;
2287
2283
  for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
2288
2284
  const cb = activePostFlushCbs[postFlushIndex];
2285
+ if (cb.flags & 4) {
2286
+ cb.flags &= ~1;
2287
+ }
2289
2288
  if (!(cb.flags & 8)) cb();
2290
2289
  cb.flags &= ~1;
2291
2290
  }
@@ -2302,6 +2301,9 @@ function flushJobs(seen) {
2302
2301
  const job = queue[flushIndex];
2303
2302
  if (job && !(job.flags & 8)) {
2304
2303
  if (false) ;
2304
+ if (job.flags & 4) {
2305
+ job.flags &= ~1;
2306
+ }
2305
2307
  callWithErrorHandling(
2306
2308
  job,
2307
2309
  job.i,
@@ -2311,6 +2313,12 @@ function flushJobs(seen) {
2311
2313
  }
2312
2314
  }
2313
2315
  } finally {
2316
+ for (; flushIndex < queue.length; flushIndex++) {
2317
+ const job = queue[flushIndex];
2318
+ if (job) {
2319
+ job.flags &= ~1;
2320
+ }
2321
+ }
2314
2322
  flushIndex = 0;
2315
2323
  queue.length = 0;
2316
2324
  flushPostFlushCbs();
@@ -3054,6 +3062,7 @@ const BaseTransitionImpl = {
3054
3062
  if (!(instance.job.flags & 8)) {
3055
3063
  instance.update();
3056
3064
  }
3065
+ delete leavingHooks.afterLeave;
3057
3066
  };
3058
3067
  return emptyPlaceholder(child);
3059
3068
  } else if (mode === "in-out" && innerChild.type !== Comment) {
@@ -3320,6 +3329,23 @@ function markAsyncBoundary(instance) {
3320
3329
  instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0];
3321
3330
  }
3322
3331
 
3332
+ function useTemplateRef(key) {
3333
+ const i = getCurrentInstance();
3334
+ const r = shallowRef(null);
3335
+ if (i) {
3336
+ const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
3337
+ {
3338
+ Object.defineProperty(refs, key, {
3339
+ enumerable: true,
3340
+ get: () => r.value,
3341
+ set: (val) => r.value = val
3342
+ });
3343
+ }
3344
+ }
3345
+ const ret = r;
3346
+ return ret;
3347
+ }
3348
+
3323
3349
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3324
3350
  if (isArray(rawRef)) {
3325
3351
  rawRef.forEach(
@@ -3342,7 +3368,10 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3342
3368
  const oldRef = oldRawRef && oldRawRef.r;
3343
3369
  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
3344
3370
  const setupState = owner.setupState;
3345
- const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => hasOwn(setupState, key) && !(Object.getOwnPropertyDescriptor(refs, key) || EMPTY_OBJ).get;
3371
+ const rawSetupState = toRaw(setupState);
3372
+ const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
3373
+ return hasOwn(rawSetupState, key);
3374
+ };
3346
3375
  if (oldRef != null && oldRef !== ref) {
3347
3376
  if (isString(oldRef)) {
3348
3377
  refs[oldRef] = null;
@@ -4210,7 +4239,7 @@ const KeepAliveImpl = {
4210
4239
  return () => {
4211
4240
  pendingCacheKey = null;
4212
4241
  if (!slots.default) {
4213
- return null;
4242
+ return current = null;
4214
4243
  }
4215
4244
  const children = slots.default();
4216
4245
  const rawVNode = children[0];
@@ -5706,7 +5735,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5706
5735
  return vm;
5707
5736
  }
5708
5737
  }
5709
- Vue.version = `2.6.14-compat:${"3.5.1"}`;
5738
+ Vue.version = `2.6.14-compat:${"3.5.2"}`;
5710
5739
  Vue.config = singletonApp.config;
5711
5740
  Vue.use = (plugin, ...options) => {
5712
5741
  if (plugin && isFunction(plugin.install)) {
@@ -8298,7 +8327,8 @@ function renderComponentRoot(instance) {
8298
8327
  data,
8299
8328
  setupState,
8300
8329
  ctx,
8301
- inheritAttrs
8330
+ inheritAttrs,
8331
+ isMounted
8302
8332
  } = instance;
8303
8333
  const prev = setCurrentRenderingInstance(instance);
8304
8334
  let result;
@@ -8389,7 +8419,7 @@ function renderComponentRoot(instance) {
8389
8419
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
8390
8420
  }
8391
8421
  if (vnode.transition) {
8392
- root.transition = vnode.transition;
8422
+ root.transition = isMounted ? vnode.component.subTree.transition : vnode.transition;
8393
8423
  }
8394
8424
  {
8395
8425
  result = root;
@@ -8827,7 +8857,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8827
8857
  };
8828
8858
  }
8829
8859
  if (activeBranch) {
8830
- if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {
8860
+ if (parentNode(activeBranch.el) === container2) {
8831
8861
  anchor = next(activeBranch);
8832
8862
  }
8833
8863
  unmount(activeBranch, parentComponent2, suspense, true);
@@ -9773,22 +9803,6 @@ const computed = (getterOrOptions, debugOptions) => {
9773
9803
  return c;
9774
9804
  };
9775
9805
 
9776
- function useTemplateRef(key) {
9777
- const i = getCurrentInstance();
9778
- const r = shallowRef(null);
9779
- if (i) {
9780
- const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
9781
- {
9782
- Object.defineProperty(refs, key, {
9783
- enumerable: true,
9784
- get: () => r.value,
9785
- set: (val) => r.value = val
9786
- });
9787
- }
9788
- }
9789
- return r;
9790
- }
9791
-
9792
9806
  function h(type, propsOrChildren, children) {
9793
9807
  const l = arguments.length;
9794
9808
  if (l === 2) {
@@ -9842,7 +9856,7 @@ function isMemoSame(cached, memo) {
9842
9856
  return true;
9843
9857
  }
9844
9858
 
9845
- const version = "3.5.1";
9859
+ const version = "3.5.2";
9846
9860
  const warn$1 = NOOP;
9847
9861
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9848
9862
  const devtools = void 0;
@@ -13766,7 +13780,7 @@ const tokenizer = new Tokenizer(stack, {
13766
13780
  rawName: raw,
13767
13781
  exp: void 0,
13768
13782
  arg: void 0,
13769
- modifiers: raw === "." ? ["prop"] : [],
13783
+ modifiers: raw === "." ? [createSimpleExpression("prop")] : [],
13770
13784
  loc: getLoc(start)
13771
13785
  };
13772
13786
  if (name === "pre") {
@@ -13809,7 +13823,8 @@ const tokenizer = new Tokenizer(stack, {
13809
13823
  setLocEnd(arg.loc, end);
13810
13824
  }
13811
13825
  } else {
13812
- currentProp.modifiers.push(mod);
13826
+ const exp = createSimpleExpression(mod, true, getLoc(start, end));
13827
+ currentProp.modifiers.push(exp);
13813
13828
  }
13814
13829
  },
13815
13830
  onattribdata(start, end) {
@@ -13875,7 +13890,9 @@ const tokenizer = new Tokenizer(stack, {
13875
13890
  currentProp.forParseResult = parseForExpression(currentProp.exp);
13876
13891
  }
13877
13892
  let syncIndex = -1;
13878
- if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.indexOf("sync")) > -1 && checkCompatEnabled(
13893
+ if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex(
13894
+ (mod) => mod.content === "sync"
13895
+ )) > -1 && checkCompatEnabled(
13879
13896
  "COMPILER_V_BIND_SYNC",
13880
13897
  currentOptions,
13881
13898
  currentProp.loc,
@@ -16182,7 +16199,7 @@ const transformBind = (dir, _node, context) => {
16182
16199
  } else if (!arg.isStatic) {
16183
16200
  arg.content = `${arg.content} || ""`;
16184
16201
  }
16185
- if (modifiers.includes("camel")) {
16202
+ if (modifiers.some((mod) => mod.content === "camel")) {
16186
16203
  if (arg.type === 4) {
16187
16204
  if (arg.isStatic) {
16188
16205
  arg.content = camelize(arg.content);
@@ -16195,10 +16212,10 @@ const transformBind = (dir, _node, context) => {
16195
16212
  }
16196
16213
  }
16197
16214
  if (!context.inSSR) {
16198
- if (modifiers.includes("prop")) {
16215
+ if (modifiers.some((mod) => mod.content === "prop")) {
16199
16216
  injectPrefix(arg, ".");
16200
16217
  }
16201
- if (modifiers.includes("attr")) {
16218
+ if (modifiers.some((mod) => mod.content === "attr")) {
16202
16219
  injectPrefix(arg, "^");
16203
16220
  }
16204
16221
  }
@@ -17109,7 +17126,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
17109
17126
  }
17110
17127
  continue;
17111
17128
  }
17112
- if (isVBind && modifiers.includes("prop")) {
17129
+ if (isVBind && modifiers.some((mod) => mod.content === "prop")) {
17113
17130
  patchFlag |= 32;
17114
17131
  }
17115
17132
  const directiveTransform = context.directiveTransforms[name];
@@ -17672,7 +17689,7 @@ const transformModel$1 = (dir, node, context) => {
17672
17689
  props[1].value = context.cache(props[1].value);
17673
17690
  }
17674
17691
  if (dir.modifiers.length && node.tagType === 1) {
17675
- const modifiers = dir.modifiers.map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);
17692
+ const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);
17676
17693
  const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`;
17677
17694
  props.push(
17678
17695
  createObjectProperty(
@@ -18187,7 +18204,7 @@ const resolveModifiers = (key, modifiers, context, loc) => {
18187
18204
  const nonKeyModifiers = [];
18188
18205
  const eventOptionModifiers = [];
18189
18206
  for (let i = 0; i < modifiers.length; i++) {
18190
- const modifier = modifiers[i];
18207
+ const modifier = modifiers[i].content;
18191
18208
  if (modifier === "native" && checkCompatEnabled(
18192
18209
  "COMPILER_V_ON_NATIVE",
18193
18210
  context)) {