@vue/compat 3.5.43 → 3.5.45

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.43
2
+ * @vue/compat v3.5.45
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -68,24 +68,20 @@ const cacheStringFunction = (fn) => {
68
68
  });
69
69
  };
70
70
  const camelizeRE = /-\w/g;
71
- const camelize = cacheStringFunction(
72
- (str) => {
73
- return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());
74
- }
75
- );
71
+ const camelize = /* @__PURE__ */ cacheStringFunction((str) => {
72
+ return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());
73
+ });
76
74
  const hyphenateRE = /\B([A-Z])/g;
77
- const hyphenate = cacheStringFunction(
75
+ const hyphenate = /* @__PURE__ */ cacheStringFunction(
78
76
  (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
79
77
  );
80
- const capitalize = cacheStringFunction((str) => {
78
+ const capitalize = /* @__PURE__ */ cacheStringFunction((str) => {
81
79
  return str.charAt(0).toUpperCase() + str.slice(1);
82
80
  });
83
- const toHandlerKey = cacheStringFunction(
84
- (str) => {
85
- const s = str ? `on${capitalize(str)}` : ``;
86
- return s;
87
- }
88
- );
81
+ const toHandlerKey = /* @__PURE__ */ cacheStringFunction((str) => {
82
+ const s = str ? `on${capitalize(str)}` : ``;
83
+ return s;
84
+ });
89
85
  const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
90
86
  const invokeArrayFns = (fns, ...arg) => {
91
87
  for (let i = 0; i < fns.length; i++) {
@@ -210,7 +206,7 @@ const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
210
206
  const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
211
207
  const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
212
208
 
213
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
209
+ const specialBooleanAttrs = `itemscope,allowfullscreen,disablepictureinpicture,disableremoteplayback,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
214
210
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
215
211
  const isBooleanAttr = /* @__PURE__ */ makeMap(
216
212
  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
@@ -558,7 +554,11 @@ function getCurrentScope() {
558
554
  }
559
555
  function onScopeDispose(fn, failSilently = false) {
560
556
  if (activeEffectScope) {
561
- activeEffectScope.cleanups.push(fn);
557
+ if (activeEffectScope.active) {
558
+ activeEffectScope.cleanups.push(fn);
559
+ } else {
560
+ fn();
561
+ }
562
562
  }
563
563
  }
564
564
 
@@ -1210,19 +1210,41 @@ const arrayInstrumentations = {
1210
1210
  };
1211
1211
  function iterator(self, method, wrapValue) {
1212
1212
  const arr = shallowReadArray(self);
1213
- const iter = arr[method]();
1213
+ const methodFn = arr[method];
1214
+ const iter = methodFn.call(arr);
1214
1215
  if (arr !== self && !isShallow(self)) {
1215
- iter._next = iter.next;
1216
- iter.next = () => {
1217
- const result = iter._next();
1218
- if (!result.done) {
1219
- result.value = wrapValue(result.value);
1216
+ if (iter[Symbol.toStringTag] === "Array Iterator") {
1217
+ const wrapped = Object.create(Object.getPrototypeOf(iter));
1218
+ wrapped.next = () => wrapResult(iter.next(), wrapValue);
1219
+ if (methodFn !== arrayProto[method]) {
1220
+ Object.defineProperties(wrapped, {
1221
+ return: {
1222
+ get() {
1223
+ const fn = iter.return;
1224
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1225
+ }
1226
+ },
1227
+ throw: {
1228
+ get() {
1229
+ const fn = iter.throw;
1230
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1231
+ }
1232
+ }
1233
+ });
1220
1234
  }
1221
- return result;
1222
- };
1235
+ return wrapped;
1236
+ }
1237
+ iter._next = iter.next;
1238
+ iter.next = () => wrapResult(iter._next(), wrapValue);
1223
1239
  }
1224
1240
  return iter;
1225
1241
  }
1242
+ function wrapResult(result, wrapValue) {
1243
+ if (!result.done) {
1244
+ result.value = wrapValue(result.value);
1245
+ }
1246
+ return result;
1247
+ }
1226
1248
  const arrayProto = Array.prototype;
1227
1249
  function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1228
1250
  const arr = shallowReadArray(self);
@@ -1291,7 +1313,7 @@ function noTracking(self, method, args = []) {
1291
1313
  }
1292
1314
 
1293
1315
  const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
1294
- const builtInSymbols = new Set(
1316
+ const builtInSymbols = /* @__PURE__ */ new Set(
1295
1317
  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
1296
1318
  );
1297
1319
  function hasOwnProperty(key) {
@@ -1613,6 +1635,8 @@ function createInstrumentationGetter(isReadonly2, shallow) {
1613
1635
  return !isReadonly2;
1614
1636
  } else if (key === "__v_isReadonly") {
1615
1637
  return isReadonly2;
1638
+ } else if (key === "__v_isShallow") {
1639
+ return shallow;
1616
1640
  } else if (key === "__v_raw") {
1617
1641
  return target;
1618
1642
  }
@@ -2100,9 +2124,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2100
2124
  if (once && cb) {
2101
2125
  const _cb = cb;
2102
2126
  cb = (...args) => {
2103
- const res = _cb(...args);
2104
- watchHandle();
2105
- return res;
2127
+ try {
2128
+ return _cb(...args);
2129
+ } finally {
2130
+ watchHandle();
2131
+ }
2106
2132
  };
2107
2133
  }
2108
2134
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -2113,12 +2139,13 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2113
2139
  if (cb) {
2114
2140
  const newValue = effect.run();
2115
2141
  if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2116
- if (cleanup) {
2117
- cleanup();
2118
- }
2119
2142
  const currentWatcher = activeWatcher;
2120
- activeWatcher = effect;
2143
+ pauseTracking();
2121
2144
  try {
2145
+ if (cleanup) {
2146
+ cleanup();
2147
+ }
2148
+ activeWatcher = effect;
2122
2149
  const args = [
2123
2150
  newValue,
2124
2151
  // pass undefined as the old value when it's changed for the first time
@@ -2132,6 +2159,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2132
2159
  );
2133
2160
  } finally {
2134
2161
  activeWatcher = currentWatcher;
2162
+ resetTracking();
2135
2163
  }
2136
2164
  }
2137
2165
  } else {
@@ -2287,7 +2315,7 @@ function callWithAsyncErrorHandling(fn, instance, type, args) {
2287
2315
  const res = callWithErrorHandling(fn, instance, type, args);
2288
2316
  if (res && isPromise(res)) {
2289
2317
  res.catch((err) => {
2290
- handleError(err, instance, type);
2318
+ handleError(err, instance, type, void 0, true);
2291
2319
  });
2292
2320
  }
2293
2321
  return res;
@@ -2300,7 +2328,7 @@ function callWithAsyncErrorHandling(fn, instance, type, args) {
2300
2328
  return values;
2301
2329
  }
2302
2330
  }
2303
- function handleError(err, instance, type, throwInDev = true) {
2331
+ function handleError(err, instance, type, throwInDev = true, isAsyncError = false) {
2304
2332
  const contextVNode = instance ? instance.vnode : null;
2305
2333
  const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;
2306
2334
  if (instance) {
@@ -2309,7 +2337,9 @@ function handleError(err, instance, type, throwInDev = true) {
2309
2337
  const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`;
2310
2338
  while (cur) {
2311
2339
  const errorCapturedHooks = cur.ec;
2312
- if (errorCapturedHooks) {
2340
+ if (errorCapturedHooks && !cur.isUnmounted && // Async failures may outlive stopped scopes whose unmount effects
2341
+ // are deferred or discarded by Suspense.
2342
+ (!isAsyncError || cur.scope.active)) {
2313
2343
  for (let i = 0; i < errorCapturedHooks.length; i++) {
2314
2344
  if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
2315
2345
  return;
@@ -2399,15 +2429,15 @@ function queuePostFlushCb(cb) {
2399
2429
  }
2400
2430
  queueFlush();
2401
2431
  }
2402
- function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2432
+ function flushPreFlushCbs(instance, minUid, seen, i = flushIndex + 1) {
2403
2433
  for (; i < queue.length; i++) {
2404
2434
  const cb = queue[i];
2405
2435
  if (cb && cb.flags & 2) {
2406
- if (instance && cb.id !== instance.uid) {
2436
+ if (instance && cb.id !== instance.uid || minUid !== void 0 && !(cb.id >= minUid)) {
2407
2437
  continue;
2408
2438
  }
2409
2439
  queue.splice(i, 1);
2410
- i--;
2440
+ i = instance ? i - 1 : flushIndex;
2411
2441
  if (cb.flags & 4) {
2412
2442
  cb.flags &= -2;
2413
2443
  }
@@ -2418,12 +2448,23 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2418
2448
  }
2419
2449
  }
2420
2450
  }
2421
- function flushPostFlushCbs(seen) {
2451
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2422
2452
  if (pendingPostFlushCbs.length) {
2423
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
2424
- (a, b) => getId(a) - getId(b)
2425
- );
2426
- pendingPostFlushCbs.length = 0;
2453
+ let cbs = pendingPostFlushCbs;
2454
+ let kept = 0;
2455
+ if (skip) {
2456
+ cbs = [];
2457
+ for (let i = 0; i < pendingPostFlushCbs.length; i++) {
2458
+ const cb = pendingPostFlushCbs[i];
2459
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) {
2460
+ pendingPostFlushCbs[kept++] = cb;
2461
+ } else {
2462
+ cbs.push(cb);
2463
+ }
2464
+ }
2465
+ }
2466
+ const deduped = [...new Set(cbs)].sort((a, b) => getId(a) - getId(b));
2467
+ pendingPostFlushCbs.length = kept;
2427
2468
  if (activePostFlushCbs) {
2428
2469
  for (let i = 0; i < deduped.length; i++) {
2429
2470
  activePostFlushCbs.push(deduped[i]);
@@ -2443,6 +2484,22 @@ function flushPostFlushCbs(seen) {
2443
2484
  postFlushIndex = 0;
2444
2485
  }
2445
2486
  }
2487
+ let isFlushing = false;
2488
+ function flushOnAppMount(fn, minUid) {
2489
+ if (isFlushing) {
2490
+ fn();
2491
+ return;
2492
+ }
2493
+ const queued = minUid === void 0 ? void 0 : new Set(pendingPostFlushCbs);
2494
+ fn();
2495
+ isFlushing = true;
2496
+ try {
2497
+ flushPreFlushCbs(void 0, minUid);
2498
+ flushPostFlushCbs(void 0, queued, minUid);
2499
+ } finally {
2500
+ isFlushing = false;
2501
+ }
2502
+ }
2446
2503
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2447
2504
  function flushJobs(seen) {
2448
2505
  try {
@@ -2758,12 +2815,31 @@ function withDirectives(vnode, directives) {
2758
2815
  return vnode;
2759
2816
  }
2760
2817
  function invokeDirectiveHook(vnode, prevVNode, instance, name) {
2761
- const bindings = vnode.dirs;
2818
+ let hookVNode = vnode;
2819
+ if (name === "beforeMount") {
2820
+ vnode._mount = vnode;
2821
+ } else if (name === "beforeUpdate") {
2822
+ const mount = prevVNode && prevVNode._mount;
2823
+ if (mount) {
2824
+ mount._latest = vnode;
2825
+ vnode._mount = mount;
2826
+ }
2827
+ } else if (name === "mounted") {
2828
+ const latest = vnode._latest;
2829
+ vnode._mount = vnode._latest = void 0;
2830
+ if (latest) {
2831
+ hookVNode = latest;
2832
+ latest._mount = void 0;
2833
+ }
2834
+ }
2835
+ const bindings = hookVNode.dirs;
2762
2836
  const oldBindings = prevVNode && prevVNode.dirs;
2763
2837
  for (let i = 0; i < bindings.length; i++) {
2764
- const binding = bindings[i];
2838
+ let binding = bindings[i];
2765
2839
  if (oldBindings) {
2766
2840
  binding.oldValue = oldBindings[i].value;
2841
+ } else if (name === "mounted" && binding.oldValue !== void 0) {
2842
+ binding = extend$1({}, binding, { oldValue: void 0 });
2767
2843
  }
2768
2844
  let hook = binding.dir[name];
2769
2845
  if (!hook) {
@@ -2774,7 +2850,7 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
2774
2850
  callWithAsyncErrorHandling(hook, instance, 8, [
2775
2851
  vnode.el,
2776
2852
  binding,
2777
- vnode,
2853
+ hookVNode,
2778
2854
  prevVNode
2779
2855
  ]);
2780
2856
  resetTracking();
@@ -2858,6 +2934,7 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
2858
2934
  let isPre = false;
2859
2935
  if (flush === "post") {
2860
2936
  baseWatchOptions.scheduler = (job) => {
2937
+ job.i = instance;
2861
2938
  queuePostRenderEffect(job, instance && instance.suspense);
2862
2939
  };
2863
2940
  } else if (flush !== "sync") {
@@ -3136,7 +3213,11 @@ const TeleportImpl = {
3136
3213
  };
3137
3214
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
3138
3215
  if (moveType === 0) {
3216
+ if (vnode.targetStart) {
3217
+ insert(vnode.targetStart, container, parentAnchor);
3218
+ }
3139
3219
  insert(vnode.targetAnchor, container, parentAnchor);
3220
+ parentAnchor = vnode.targetAnchor;
3140
3221
  }
3141
3222
  const { el, anchor, shapeFlag, children, props } = vnode;
3142
3223
  const isReorder = moveType === 2;
@@ -3305,10 +3386,6 @@ const BaseTransitionPropsValidators = {
3305
3386
  onAfterAppear: TransitionHookValidator,
3306
3387
  onAppearCancelled: TransitionHookValidator
3307
3388
  };
3308
- const recursiveGetSubtree = (instance) => {
3309
- const subTree = instance.subTree;
3310
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
3311
- };
3312
3389
  const BaseTransitionImpl = {
3313
3390
  name: `BaseTransition`,
3314
3391
  props: BaseTransitionPropsValidators,
@@ -3334,19 +3411,17 @@ const BaseTransitionImpl = {
3334
3411
  if (!innerChild) {
3335
3412
  return emptyPlaceholder(child);
3336
3413
  }
3337
- let enterHooks = resolveTransitionHooks(
3414
+ const enterHooks = resolveTransitionHooks(
3338
3415
  innerChild,
3339
3416
  rawProps,
3340
3417
  state,
3341
- instance,
3342
- // #11061, ensure enterHooks is fresh after clone
3343
- (hooks) => enterHooks = hooks
3418
+ instance
3344
3419
  );
3345
3420
  if (innerChild.type !== Comment) {
3346
3421
  setTransitionHooks(innerChild, enterHooks);
3347
3422
  }
3348
3423
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3349
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3424
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && getTransitionRoot(instance.subTree)) {
3350
3425
  let leavingHooks = resolveTransitionHooks(
3351
3426
  oldInnerChild,
3352
3427
  rawProps,
@@ -3359,7 +3434,17 @@ const BaseTransitionImpl = {
3359
3434
  leavingHooks.afterLeave = () => {
3360
3435
  state.isLeaving = false;
3361
3436
  if (!(instance.job.flags & 8)) {
3362
- instance.update();
3437
+ if (instance.effect.flags & 2) {
3438
+ const job = () => {
3439
+ if (!(instance.job.flags & 8)) {
3440
+ instance.update();
3441
+ }
3442
+ };
3443
+ job.i = instance;
3444
+ queueJob(job);
3445
+ } else {
3446
+ instance.update();
3447
+ }
3363
3448
  }
3364
3449
  delete leavingHooks.afterLeave;
3365
3450
  oldInnerChild = void 0;
@@ -3419,7 +3504,7 @@ function getLeavingNodesForType(state, vnode) {
3419
3504
  }
3420
3505
  return leavingVNodesCache;
3421
3506
  }
3422
- function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3507
+ function resolveTransitionHooks(vnode, props, state, instance) {
3423
3508
  const {
3424
3509
  appear,
3425
3510
  mode,
@@ -3475,8 +3560,15 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3475
3560
  );
3476
3561
  }
3477
3562
  const leavingVNode = leavingVNodesCache[key];
3478
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
3479
- leavingVNode.el[leaveCbKey]();
3563
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
3564
+ let leavingCb = leavingVNode.el[leaveCbKey];
3565
+ if (!leavingCb) {
3566
+ const leavingRoot = getTransitionRoot(leavingVNode);
3567
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
3568
+ }
3569
+ if (leavingCb) {
3570
+ leavingCb();
3571
+ }
3480
3572
  }
3481
3573
  callHook(hook, [el]);
3482
3574
  },
@@ -3551,15 +3643,21 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3551
3643
  }
3552
3644
  },
3553
3645
  clone(vnode2) {
3554
- const hooks2 = resolveTransitionHooks(
3555
- vnode2,
3556
- props,
3557
- state,
3558
- instance,
3559
- postClone
3560
- );
3561
- if (postClone) postClone(hooks2);
3562
- return hooks2;
3646
+ const cloned = resolveTransitionHooks(vnode2, props, state, instance);
3647
+ cloned.afterLeave = () => {
3648
+ if (hooks.afterLeave) hooks.afterLeave();
3649
+ };
3650
+ cloned.delayLeave = (el, earlyRemove, delayedLeave) => {
3651
+ if (hooks.delayLeave) {
3652
+ hooks.delayLeave(el, earlyRemove, delayedLeave);
3653
+ } else {
3654
+ delayedLeave();
3655
+ }
3656
+ };
3657
+ cloned.delayedLeave = () => {
3658
+ if (hooks.delayedLeave) hooks.delayedLeave();
3659
+ };
3660
+ return cloned;
3563
3661
  }
3564
3662
  };
3565
3663
  return hooks;
@@ -3600,10 +3698,24 @@ function setTransitionHooks(vnode, hooks) {
3600
3698
  hooks
3601
3699
  );
3602
3700
  } else if (vnode.shapeFlag & 128) {
3603
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3604
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3701
+ const suspense = vnode.suspense;
3702
+ if (suspense) {
3703
+ const branch = suspense.isHydrating ? suspense.pendingBranch : suspense.activeBranch;
3704
+ if (branch) {
3705
+ setTransitionHooks(branch, hooks.clone(branch));
3706
+ }
3707
+ } else {
3708
+ vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3709
+ vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3710
+ }
3605
3711
  } else {
3606
3712
  vnode.transition = hooks;
3713
+ if (vnode.type === Fragment && isArray(vnode.children)) {
3714
+ const child = filterSingleRoot(vnode.children, false);
3715
+ if (child) {
3716
+ setTransitionHooks(child, hooks);
3717
+ }
3718
+ }
3607
3719
  }
3608
3720
  }
3609
3721
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -3628,6 +3740,18 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
3628
3740
  }
3629
3741
  return ret;
3630
3742
  }
3743
+ function getTransitionRoot(vnode) {
3744
+ if (vnode.component) {
3745
+ return getTransitionRoot(vnode.component.subTree);
3746
+ }
3747
+ if (vnode.type === Fragment) {
3748
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
3749
+ return child ? getTransitionRoot(child) : void 0;
3750
+ }
3751
+ if (vnode.type !== Comment) {
3752
+ return vnode;
3753
+ }
3754
+ }
3631
3755
 
3632
3756
  // @__NO_SIDE_EFFECTS__
3633
3757
  function defineComponent(options, extraOptions) {
@@ -4208,7 +4332,7 @@ function createHydrationFunctions(rendererInternals) {
4208
4332
  getContainerType(container),
4209
4333
  slotScopeIds
4210
4334
  );
4211
- if (parentComponent) {
4335
+ if (parentComponent && parentComponent.vnode.el === node) {
4212
4336
  parentComponent.vnode.el = vnode.el;
4213
4337
  updateHOCHostEl(parentComponent, vnode.el);
4214
4338
  }
@@ -4322,14 +4446,22 @@ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
4322
4446
  break;
4323
4447
  }
4324
4448
  }, opts);
4325
- forEach((el) => {
4326
- if (!(el instanceof Element)) return;
4449
+ const observe = (el) => {
4327
4450
  if (elementIsVisibleInViewport(el)) {
4328
4451
  hydrate();
4329
4452
  ob.disconnect();
4330
4453
  return false;
4331
4454
  }
4455
+ if (getComputedStyle(el).display === "contents") {
4456
+ for (let i = 0; i < el.children.length; i++) {
4457
+ if (observe(el.children[i]) === false) return false;
4458
+ }
4459
+ }
4332
4460
  ob.observe(el);
4461
+ };
4462
+ forEach((el) => {
4463
+ if (!(el instanceof Element)) return;
4464
+ return observe(el);
4333
4465
  });
4334
4466
  return () => ob.disconnect();
4335
4467
  };
@@ -4486,7 +4618,8 @@ function defineAsyncComponent(source) {
4486
4618
  err,
4487
4619
  instance,
4488
4620
  13,
4489
- !errorComponent
4621
+ !errorComponent,
4622
+ true
4490
4623
  );
4491
4624
  };
4492
4625
  if (suspensible && instance.suspense || isInSSRComponentSetup) {
@@ -4504,7 +4637,7 @@ function defineAsyncComponent(source) {
4504
4637
  const delayed = ref(!!delay);
4505
4638
  let timeoutTimer;
4506
4639
  let delayTimer;
4507
- onUnmounted(() => {
4640
+ onScopeDispose(() => {
4508
4641
  if (timeoutTimer != null) clearTimeout(timeoutTimer);
4509
4642
  if (delayTimer != null) clearTimeout(delayTimer);
4510
4643
  });
@@ -4626,6 +4759,12 @@ const KeepAliveImpl = {
4626
4759
  }, parentSuspense);
4627
4760
  };
4628
4761
  sharedContext.deactivate = (vnode) => {
4762
+ const cached = cache.get(
4763
+ vnode.key == null ? vnode.type : vnode.key
4764
+ );
4765
+ if (!cached || cached.component !== vnode.component) {
4766
+ return false;
4767
+ }
4629
4768
  const instance2 = vnode.component;
4630
4769
  invalidateMount(instance2.m);
4631
4770
  invalidateMount(instance2.a);
@@ -4640,6 +4779,7 @@ const KeepAliveImpl = {
4640
4779
  }
4641
4780
  instance2.isDeactivated = true;
4642
4781
  }, parentSuspense);
4782
+ return true;
4643
4783
  };
4644
4784
  function unmount(vnode) {
4645
4785
  resetShapeFlag(vnode);
@@ -4661,6 +4801,7 @@ const KeepAliveImpl = {
4661
4801
  unmount(cached);
4662
4802
  } else if (current) {
4663
4803
  resetShapeFlag(current);
4804
+ if (cached) resetShapeFlag(cached);
4664
4805
  }
4665
4806
  cache.delete(key);
4666
4807
  keys.delete(key);
@@ -4678,12 +4819,17 @@ const KeepAliveImpl = {
4678
4819
  const cacheSubtree = () => {
4679
4820
  if (pendingCacheKey != null) {
4680
4821
  if (isSuspense(instance.subTree.type)) {
4681
- queuePostRenderEffect(() => {
4822
+ const cacheInnerChild = () => {
4682
4823
  const vnode = getInnerChild(instance.subTree);
4683
4824
  if (vnode.component) {
4684
4825
  cache.set(pendingCacheKey, vnode);
4685
4826
  }
4686
- }, instance.subTree.suspense);
4827
+ };
4828
+ if (instance.subTree.suspense.pendingBranch) {
4829
+ queuePostRenderEffect(cacheInnerChild, instance.subTree.suspense);
4830
+ } else {
4831
+ cacheInnerChild();
4832
+ }
4687
4833
  } else {
4688
4834
  cache.set(pendingCacheKey, getInnerChild(instance.subTree));
4689
4835
  }
@@ -4815,9 +4961,12 @@ function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
4815
4961
  true
4816
4962
  /* prepend */
4817
4963
  );
4818
- onUnmounted(() => {
4819
- remove(keepAliveRoot[type], injected);
4820
- }, target);
4964
+ const removal = injectHook(
4965
+ "um",
4966
+ () => remove(keepAliveRoot[type], injected),
4967
+ target
4968
+ );
4969
+ removal.flags = 16;
4821
4970
  }
4822
4971
  function resetShapeFlag(vnode) {
4823
4972
  vnode.shapeFlag &= -257;
@@ -5225,7 +5374,9 @@ function renderList(source, renderItem, cache, index) {
5225
5374
  );
5226
5375
  }
5227
5376
  } else if (typeof source === "number") {
5228
- {
5377
+ if (!Number.isInteger(source) || source < 0) {
5378
+ ret = [];
5379
+ } else {
5229
5380
  ret = new Array(source);
5230
5381
  for (let i = 0; i < source; i++) {
5231
5382
  ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
@@ -5526,6 +5677,7 @@ function installCompatInstanceProperties(map) {
5526
5677
  $vnode: (i) => i.vnode,
5527
5678
  // some private properties that are likely accessed...
5528
5679
  _self: (i) => i.proxy,
5680
+ _setupProxy: (i) => i.setupState,
5529
5681
  _uid: (i) => i.uid,
5530
5682
  _data: (i) => i.data,
5531
5683
  _isMounted: (i) => i.isMounted,
@@ -6241,7 +6393,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6241
6393
  return vm;
6242
6394
  }
6243
6395
  }
6244
- Vue.version = `2.6.14-compat:${"3.5.43"}`;
6396
+ Vue.version = `2.6.14-compat:${"3.5.45"}`;
6245
6397
  Vue.config = singletonApp.config;
6246
6398
  Vue.use = (plugin, ...options) => {
6247
6399
  if (plugin && isFunction(plugin.install)) {
@@ -7136,7 +7288,7 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
7136
7288
  }
7137
7289
  for (let i = 0; i < nextKeys.length; i++) {
7138
7290
  const key = nextKeys[i];
7139
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
7291
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
7140
7292
  return true;
7141
7293
  }
7142
7294
  }
@@ -7866,6 +8018,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7866
8018
  const needCallTransitionHooks = needTransition(parentSuspense, transition);
7867
8019
  if (needCallTransitionHooks) {
7868
8020
  transition.beforeEnter(el);
8021
+ } else if (transition && !transition.persisted) {
8022
+ el[deferredEnterKey] = true;
7869
8023
  }
7870
8024
  hostInsert(el, container, anchor);
7871
8025
  if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {
@@ -8011,15 +8165,16 @@ function baseCreateRenderer(options, createHydrationFns) {
8011
8165
  for (let i = 0; i < newChildren.length; i++) {
8012
8166
  const oldVNode = oldChildren[i];
8013
8167
  const newVNode = newChildren[i];
8168
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
8014
8169
  const container = (
8015
8170
  // oldVNode may be an errored async setup() component inside Suspense
8016
8171
  // which will not have a mounted element
8017
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
8172
+ oldEl && // - In the case of a Fragment, we need to provide the actual parent
8018
8173
  // of the Fragment itself so it can move its children.
8019
8174
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
8020
8175
  // which also requires the correct parent container
8021
8176
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
8022
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
8177
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldEl) : (
8023
8178
  // In other cases, the parent container is not actually used so we
8024
8179
  // just pass the block element here to avoid a DOM parentNode call.
8025
8180
  fallbackContainer
@@ -8173,7 +8328,12 @@ function baseCreateRenderer(options, createHydrationFns) {
8173
8328
  setupComponent(instance, false, optimized);
8174
8329
  }
8175
8330
  if (instance.asyncDep) {
8176
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
8331
+ parentSuspense && parentSuspense.registerDep(
8332
+ instance,
8333
+ setupRenderEffect,
8334
+ optimized,
8335
+ namespace
8336
+ );
8177
8337
  if (!initialVNode.el) {
8178
8338
  const placeholder = instance.subTree = createVNode(Comment);
8179
8339
  processCommentNode(null, placeholder, container, anchor);
@@ -8196,6 +8356,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8196
8356
  if (shouldUpdateComponent(n1, n2, optimized)) {
8197
8357
  if (instance.asyncDep && !instance.asyncResolved) {
8198
8358
  n2.el = n1.el;
8359
+ n2.placeholder = n1.placeholder;
8199
8360
  updateComponentPreRender(instance, n2, optimized);
8200
8361
  return;
8201
8362
  } else {
@@ -8204,6 +8365,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8204
8365
  }
8205
8366
  } else {
8206
8367
  n2.el = n1.el;
8368
+ n2.placeholder = n1.placeholder;
8207
8369
  instance.vnode = n2;
8208
8370
  }
8209
8371
  };
@@ -8294,16 +8456,23 @@ function baseCreateRenderer(options, createHydrationFns) {
8294
8456
  } else {
8295
8457
  let { next, bu, u, parent, vnode } = instance;
8296
8458
  {
8297
- const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
8298
- if (nonHydratedAsyncRoot) {
8459
+ const unresolvedAsyncRoot = locateUnresolvedAsyncRoot(instance);
8460
+ if (unresolvedAsyncRoot) {
8299
8461
  if (next) {
8300
8462
  next.el = vnode.el;
8301
8463
  updateComponentPreRender(instance, next, optimized);
8302
8464
  }
8303
- nonHydratedAsyncRoot.asyncDep.then(() => {
8304
- queuePostRenderEffect(() => {
8305
- if (!instance.isUnmounted) update();
8306
- }, parentSuspense);
8465
+ unresolvedAsyncRoot.asyncDep.then(() => {
8466
+ const retry = () => {
8467
+ if (instance.job.flags & 8) return;
8468
+ if (parentSuspense && parentSuspense.pendingBranch) {
8469
+ queuePostRenderEffect(retry, parentSuspense);
8470
+ } else {
8471
+ update();
8472
+ }
8473
+ };
8474
+ retry.flags = 16 | 32;
8475
+ queuePostRenderEffect(retry, parentSuspense);
8307
8476
  });
8308
8477
  return;
8309
8478
  }
@@ -8333,8 +8502,11 @@ function baseCreateRenderer(options, createHydrationFns) {
8333
8502
  patch(
8334
8503
  prevTree,
8335
8504
  nextTree,
8336
- // parent may have changed if it's in a teleport
8337
- hostParentNode(prevTree.el),
8505
+ // parent may have changed if it's in a teleport. a root that is a
8506
+ // pending async component only has its placeholder comment
8507
+ hostParentNode(
8508
+ prevTree.el || resolveAsyncComponentPlaceholder(prevTree)
8509
+ ),
8338
8510
  // anchor may have changed if it's in a fragment
8339
8511
  getNextHostNode(prevTree),
8340
8512
  instance,
@@ -8760,8 +8932,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8760
8932
  if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) {
8761
8933
  parentComponent.renderCache[cacheIndex] = void 0;
8762
8934
  }
8763
- if (shapeFlag & 256) {
8764
- parentComponent.ctx.deactivate(vnode);
8935
+ if (shapeFlag & 256 && parentComponent.ctx.deactivate(vnode)) {
8765
8936
  return;
8766
8937
  }
8767
8938
  const shouldInvokeDirs = shapeFlag & 1 && dirs;
@@ -8822,10 +8993,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8822
8993
  };
8823
8994
  const remove = (vnode) => {
8824
8995
  const { type, el, anchor, transition } = vnode;
8825
- if (type === Fragment) {
8826
- {
8827
- removeFragment(el, anchor);
8828
- }
8996
+ const isFragment = type === Fragment;
8997
+ if (isFragment && !transition) {
8998
+ removeFragment(el, anchor);
8829
8999
  return;
8830
9000
  }
8831
9001
  if (type === Static) {
@@ -8835,17 +9005,25 @@ function baseCreateRenderer(options, createHydrationFns) {
8835
9005
  }
8836
9006
  return;
8837
9007
  }
9008
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
8838
9009
  const performRemove = () => {
8839
- hostRemove(el);
9010
+ if (isFragment) {
9011
+ if (hostParentNode(el)) {
9012
+ removeFragment(el, anchor);
9013
+ }
9014
+ } else {
9015
+ hostRemove(el);
9016
+ }
8840
9017
  if (transition && !transition.persisted && transition.afterLeave) {
8841
9018
  transition.afterLeave();
8842
9019
  }
8843
9020
  };
8844
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
9021
+ if (leavingNode && leavingNode.shapeFlag & 1 && transition && !transition.persisted) {
8845
9022
  const { leave, delayLeave } = transition;
8846
- const performLeave = () => leave(el, performRemove);
9023
+ const leavingEl = leavingNode.el;
9024
+ const performLeave = () => leave(leavingEl, performRemove);
8847
9025
  if (delayLeave) {
8848
- delayLeave(vnode.el, performRemove, performLeave);
9026
+ delayLeave(leavingEl, performRemove, performLeave);
8849
9027
  } else {
8850
9028
  performLeave();
8851
9029
  }
@@ -8876,7 +9054,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8876
9054
  if (job) {
8877
9055
  job.flags |= 8;
8878
9056
  unmount(subTree, instance, parentSuspense, doRemove);
8879
- } else if (instance.vnode.el && subTree) {
9057
+ } else if (subTree) {
8880
9058
  subTree.transition = instance.vnode.transition;
8881
9059
  unmount(subTree, instance, parentSuspense, doRemove);
8882
9060
  }
@@ -8889,9 +9067,11 @@ function baseCreateRenderer(options, createHydrationFns) {
8889
9067
  parentSuspense
8890
9068
  );
8891
9069
  }
8892
- queuePostRenderEffect(() => {
9070
+ const markUnmounted = () => {
8893
9071
  instance.isUnmounted = true;
8894
- }, parentSuspense);
9072
+ };
9073
+ markUnmounted.flags = 16;
9074
+ queuePostRenderEffect(markUnmounted, parentSuspense);
8895
9075
  };
8896
9076
  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
8897
9077
  for (let i = start; i < children.length; i++) {
@@ -8909,32 +9089,26 @@ function baseCreateRenderer(options, createHydrationFns) {
8909
9089
  const teleportEnd = el && el[TeleportEndKey];
8910
9090
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
8911
9091
  };
8912
- let isFlushing = false;
8913
9092
  const render = (vnode, container, namespace) => {
8914
- let instance;
8915
- if (vnode == null) {
8916
- if (container._vnode) {
8917
- unmount(container._vnode, null, null, true);
8918
- instance = container._vnode.component;
9093
+ const minUid = vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid();
9094
+ flushOnAppMount(() => {
9095
+ if (vnode == null) {
9096
+ if (container._vnode) {
9097
+ unmount(container._vnode, null, null, true);
9098
+ }
9099
+ } else {
9100
+ patch(
9101
+ container._vnode || null,
9102
+ vnode,
9103
+ container,
9104
+ null,
9105
+ null,
9106
+ null,
9107
+ namespace
9108
+ );
8919
9109
  }
8920
- } else {
8921
- patch(
8922
- container._vnode || null,
8923
- vnode,
8924
- container,
8925
- null,
8926
- null,
8927
- null,
8928
- namespace
8929
- );
8930
- }
8931
- container._vnode = vnode;
8932
- if (!isFlushing) {
8933
- isFlushing = true;
8934
- flushPreFlushCbs(instance);
8935
- flushPostFlushCbs();
8936
- isFlushing = false;
8937
- }
9110
+ container._vnode = vnode;
9111
+ }, minUid);
8938
9112
  };
8939
9113
  const internals = {
8940
9114
  p: patch,
@@ -9043,13 +9217,13 @@ function getSequence(arr) {
9043
9217
  }
9044
9218
  return result;
9045
9219
  }
9046
- function locateNonHydratedAsyncRoot(instance) {
9220
+ function locateUnresolvedAsyncRoot(instance) {
9047
9221
  const subComponent = instance.subTree.component;
9048
9222
  if (subComponent) {
9049
9223
  if (subComponent.asyncDep && !subComponent.asyncResolved) {
9050
9224
  return subComponent;
9051
9225
  } else {
9052
- return locateNonHydratedAsyncRoot(subComponent);
9226
+ return locateUnresolvedAsyncRoot(subComponent);
9053
9227
  }
9054
9228
  }
9055
9229
  }
@@ -9067,11 +9241,16 @@ function resolveAsyncComponentPlaceholder(anchorVnode) {
9067
9241
  if (instance) {
9068
9242
  return resolveAsyncComponentPlaceholder(instance.subTree);
9069
9243
  }
9244
+ const suspense = anchorVnode.suspense;
9245
+ if (suspense && suspense.activeBranch) {
9246
+ return resolveAsyncComponentPlaceholder(suspense.activeBranch);
9247
+ }
9070
9248
  return null;
9071
9249
  }
9072
9250
 
9073
9251
  const isSuspense = (type) => type.__isSuspense;
9074
9252
  let suspenseId = 0;
9253
+ const deferredEnterKey = /* @__PURE__ */ Symbol("_deferredEnter");
9075
9254
  const SuspenseImpl = {
9076
9255
  name: "Suspense",
9077
9256
  // In order to make Suspense tree-shakable, we need to avoid importing it
@@ -9093,11 +9272,22 @@ const SuspenseImpl = {
9093
9272
  rendererInternals
9094
9273
  );
9095
9274
  } else {
9096
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
9097
- n2.suspense = n1.suspense;
9098
- n2.suspense.vnode = n2;
9099
- n2.el = n1.el;
9100
- return;
9275
+ const suspense = n1.suspense;
9276
+ if (parentSuspense && parentSuspense.deps > 0 && !parentSuspense.isHydrating) {
9277
+ const owner = suspense.parentComponent;
9278
+ const retained = !!owner && owner.suspense === parentSuspense && owner.suspenseId !== parentSuspense.pendingId;
9279
+ if (retained ? (
9280
+ // deps can outlive the pending branch: skip only while it exists
9281
+ parentSuspense.pendingBranch && !isSameVNodeType(
9282
+ n2.ssContent,
9283
+ suspense.pendingBranch || suspense.activeBranch
9284
+ )
9285
+ ) : !suspense.isInFallback) {
9286
+ n2.suspense = suspense;
9287
+ suspense.vnode = n2;
9288
+ n2.el = n1.el;
9289
+ return;
9290
+ }
9101
9291
  }
9102
9292
  patchSuspense(
9103
9293
  n1,
@@ -9122,6 +9312,38 @@ function triggerEvent(vnode, name) {
9122
9312
  eventListener();
9123
9313
  }
9124
9314
  }
9315
+ function enterDeferred(branch) {
9316
+ const enters = [];
9317
+ collectDeferredEnters(branch, enters, true);
9318
+ if (enters.length) {
9319
+ queuePostFlushCb(enters);
9320
+ }
9321
+ }
9322
+ function collectDeferredEnters(vnode, enters, isRoot) {
9323
+ const { el, transition, children, shapeFlag } = vnode;
9324
+ if (shapeFlag & 6) {
9325
+ collectDeferredEnters(vnode.component.subTree, enters, isRoot);
9326
+ return;
9327
+ }
9328
+ if (shapeFlag & (128 | 64)) {
9329
+ return;
9330
+ }
9331
+ if (shapeFlag & 1) {
9332
+ if (!isRoot && el && el[deferredEnterKey]) {
9333
+ el[deferredEnterKey] = void 0;
9334
+ if (transition && !transition.persisted) {
9335
+ transition.beforeEnter(el);
9336
+ enters.push(() => transition.enter(el));
9337
+ }
9338
+ }
9339
+ isRoot = false;
9340
+ }
9341
+ if (shapeFlag & 16) {
9342
+ for (let i = 0; i < children.length; i++) {
9343
+ collectDeferredEnters(children[i], enters, isRoot);
9344
+ }
9345
+ }
9346
+ }
9125
9347
  function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
9126
9348
  const {
9127
9349
  p: patch,
@@ -9221,7 +9443,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
9221
9443
  unmount(pendingBranch, parentComponent, suspense);
9222
9444
  }
9223
9445
  suspense.deps = 0;
9224
- suspense.effects.length = 0;
9446
+ discardEffects(suspense);
9225
9447
  suspense.hiddenContainer = createElement("div");
9226
9448
  if (isInFallback) {
9227
9449
  patch(
@@ -9299,11 +9521,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
9299
9521
  } else {
9300
9522
  triggerEvent(n2, "onPending");
9301
9523
  suspense.pendingBranch = newBranch;
9302
- if (newBranch.shapeFlag & 512) {
9303
- suspense.pendingId = newBranch.component.suspenseId;
9304
- } else {
9305
- suspense.pendingId = suspenseId++;
9306
- }
9524
+ suspense.pendingId = suspenseId++;
9307
9525
  patch(
9308
9526
  null,
9309
9527
  newBranch,
@@ -9318,12 +9536,11 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
9318
9536
  if (suspense.deps <= 0) {
9319
9537
  suspense.resolve();
9320
9538
  } else {
9321
- const { timeout, pendingId } = suspense;
9539
+ const { timeout } = suspense;
9322
9540
  if (timeout > 0) {
9323
- setTimeout(() => {
9324
- if (suspense.pendingId === pendingId) {
9325
- suspense.fallback(newFallback);
9326
- }
9541
+ suspense.timeoutTimer = setTimeout(() => {
9542
+ suspense.timeoutTimer = void 0;
9543
+ suspense.fallback(suspense.vnode.ssFallback);
9327
9544
  }, timeout);
9328
9545
  } else if (timeout === 0) {
9329
9546
  suspense.fallback(newFallback);
@@ -9360,6 +9577,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9360
9577
  deps: 0,
9361
9578
  pendingId: suspenseId++,
9362
9579
  timeout: typeof timeout === "number" ? timeout : -1,
9580
+ timeoutTimer: void 0,
9363
9581
  activeBranch: null,
9364
9582
  isFallbackMountPending: false,
9365
9583
  pendingBranch: null,
@@ -9386,7 +9604,8 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9386
9604
  let hasUpdatedAnchor = false;
9387
9605
  if (delayEnter) {
9388
9606
  activeBranch.transition.afterLeave = () => {
9389
- if (pendingId === suspense.pendingId) {
9607
+ if (pendingId === suspense.pendingId && !suspense.isUnmounted) {
9608
+ enterDeferred(pendingBranch);
9390
9609
  move(
9391
9610
  pendingBranch,
9392
9611
  container2,
@@ -9401,7 +9620,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9401
9620
  };
9402
9621
  }
9403
9622
  if (activeBranch && !suspense.isFallbackMountPending) {
9404
- if (parentNode(activeBranch.el) === container2) {
9623
+ if (parentNode(
9624
+ activeBranch.el || resolveAsyncComponentPlaceholder(activeBranch)
9625
+ ) === container2) {
9405
9626
  anchor = next(activeBranch);
9406
9627
  hasUpdatedAnchor = true;
9407
9628
  }
@@ -9411,13 +9632,26 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9411
9632
  }
9412
9633
  }
9413
9634
  if (!delayEnter) {
9635
+ enterDeferred(pendingBranch);
9414
9636
  move(pendingBranch, container2, anchor, 0);
9415
9637
  }
9416
9638
  }
9639
+ clearTimeout(suspense.timeoutTimer);
9640
+ suspense.timeoutTimer = void 0;
9417
9641
  suspense.isFallbackMountPending = false;
9418
9642
  setActiveBranch(suspense, pendingBranch);
9419
9643
  suspense.pendingBranch = null;
9420
9644
  suspense.isInFallback = false;
9645
+ let kept = 0;
9646
+ for (let i = 0; i < effects.length; i++) {
9647
+ const effect = effects[i];
9648
+ if (effect.flags & 32) {
9649
+ queuePostFlushCb(effect);
9650
+ } else {
9651
+ effects[kept++] = effect;
9652
+ }
9653
+ }
9654
+ effects.length = kept;
9421
9655
  let parent = suspense.parent;
9422
9656
  let hasUnresolvedAncestor = false;
9423
9657
  while (parent) {
@@ -9446,7 +9680,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9446
9680
  triggerEvent(vnode2, "onResolve");
9447
9681
  },
9448
9682
  fallback(fallbackVNode) {
9449
- if (!suspense.pendingBranch) {
9683
+ if (suspense.isUnmounted || !suspense.pendingBranch) {
9450
9684
  return;
9451
9685
  }
9452
9686
  const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;
@@ -9454,7 +9688,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9454
9688
  const anchor2 = next(activeBranch);
9455
9689
  const mountFallback = () => {
9456
9690
  suspense.isFallbackMountPending = false;
9457
- if (!suspense.isInFallback) {
9691
+ if (suspense.isUnmounted || !suspense.isInFallback) {
9458
9692
  return;
9459
9693
  }
9460
9694
  const latestFallback = suspense.vnode.ssFallback;
@@ -9497,25 +9731,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9497
9731
  next() {
9498
9732
  return suspense.activeBranch && next(suspense.activeBranch);
9499
9733
  },
9500
- registerDep(instance, setupRenderEffect, optimized2) {
9734
+ // `namespace` intentionally shadows the boundary's own: the dep must be
9735
+ // mounted with the namespace of the position it was rendered at, which can
9736
+ // differ from the boundary's (e.g. a component nested inside an <svg>).
9737
+ registerDep(instance, setupRenderEffect, optimized2, namespace2) {
9501
9738
  const isInPendingSuspense = !!suspense.pendingBranch;
9502
9739
  if (isInPendingSuspense) {
9503
9740
  suspense.deps++;
9504
9741
  }
9505
9742
  const hydratedEl = instance.vnode.el;
9506
- instance.asyncDep.catch((err) => {
9507
- handleError(err, instance, 0);
9508
- }).then((asyncSetupResult) => {
9509
- if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {
9510
- return;
9511
- }
9512
- unsetCurrentInstance();
9513
- if (hydratedEl && !instance.scope.active) {
9514
- if (isInPendingSuspense && --suspense.deps === 0) {
9515
- suspense.resolve();
9516
- }
9517
- return;
9518
- }
9743
+ const render = (asyncSetupResult) => {
9519
9744
  instance.asyncResolved = true;
9520
9745
  const { vnode: vnode2 } = instance;
9521
9746
  handleSetupResult(instance, asyncSetupResult, false);
@@ -9534,7 +9759,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9534
9759
  // consider the comment placeholder case.
9535
9760
  hydratedEl ? null : next(instance.subTree),
9536
9761
  suspense,
9537
- namespace,
9762
+ namespace2,
9538
9763
  optimized2
9539
9764
  );
9540
9765
  if (placeholder) {
@@ -9542,13 +9767,57 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9542
9767
  remove(placeholder);
9543
9768
  }
9544
9769
  updateHOCHostEl(instance, vnode2.el);
9545
- if (isInPendingSuspense && --suspense.deps === 0) {
9770
+ };
9771
+ instance.asyncDep.catch((err) => {
9772
+ handleError(err, instance, 0, false, true);
9773
+ return () => null;
9774
+ }).then((asyncSetupResult) => {
9775
+ if (instance.isUnmounted || suspense.isUnmounted) {
9776
+ return;
9777
+ }
9778
+ const isPendingDep = isInPendingSuspense && suspense.pendingId === instance.suspenseId;
9779
+ unsetCurrentInstance();
9780
+ if (!instance.scope.active) {
9781
+ if (isPendingDep && --suspense.deps === 0) {
9782
+ suspense.resolve();
9783
+ }
9784
+ return;
9785
+ }
9786
+ if (!isPendingDep && suspense.pendingBranch) {
9787
+ const job = () => {
9788
+ if (instance.isUnmounted || suspense.isUnmounted || !instance.scope.active) {
9789
+ return;
9790
+ }
9791
+ if (suspense.pendingBranch) {
9792
+ queueEffectWithSuspense(job, suspense);
9793
+ } else {
9794
+ render(asyncSetupResult);
9795
+ }
9796
+ };
9797
+ job.flags = 16 | 32;
9798
+ queueEffectWithSuspense(job, suspense);
9799
+ return;
9800
+ }
9801
+ render(asyncSetupResult);
9802
+ if (isPendingDep && --suspense.deps === 0) {
9546
9803
  suspense.resolve();
9547
9804
  }
9548
9805
  });
9549
9806
  },
9550
9807
  unmount(parentSuspense2, doRemove) {
9551
9808
  suspense.isUnmounted = true;
9809
+ clearTimeout(suspense.timeoutTimer);
9810
+ suspense.timeoutTimer = void 0;
9811
+ if (parentSuspenseId !== void 0) {
9812
+ const parent = suspense.parent;
9813
+ const pendingId = parentSuspenseId;
9814
+ parentSuspenseId = void 0;
9815
+ queuePostFlushCb(() => {
9816
+ if (parent.pendingId === pendingId && !parent.isUnmounted && --parent.deps === 0) {
9817
+ parent.resolve();
9818
+ }
9819
+ });
9820
+ }
9552
9821
  if (suspense.activeBranch) {
9553
9822
  unmount(
9554
9823
  suspense.activeBranch,
@@ -9558,12 +9827,8 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9558
9827
  );
9559
9828
  }
9560
9829
  if (suspense.pendingBranch) {
9561
- unmount(
9562
- suspense.pendingBranch,
9563
- parentComponent,
9564
- parentSuspense2,
9565
- doRemove
9566
- );
9830
+ unmount(suspense.pendingBranch, parentComponent, suspense, doRemove);
9831
+ discardEffects(suspense);
9567
9832
  }
9568
9833
  }
9569
9834
  };
@@ -9630,6 +9895,16 @@ function normalizeSuspenseSlot(s) {
9630
9895
  }
9631
9896
  return s;
9632
9897
  }
9898
+ function discardEffects(suspense) {
9899
+ const { effects } = suspense;
9900
+ for (let i = 0; i < effects.length; i++) {
9901
+ const effect = effects[i];
9902
+ if (effect.flags & 16) {
9903
+ queuePostFlushCb(effect);
9904
+ }
9905
+ }
9906
+ effects.length = 0;
9907
+ }
9633
9908
  function queueEffectWithSuspense(fn, suspense) {
9634
9909
  if (suspense && suspense.pendingBranch) {
9635
9910
  if (isArray(fn)) {
@@ -9902,7 +10177,8 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
9902
10177
  }
9903
10178
  function guardReactiveProps(props) {
9904
10179
  if (!props) return null;
9905
- return isProxy(props) || isInternalObject(props) ? extend$1({}, props) : props;
10180
+ if (isProxy(props)) return extend$1({}, props);
10181
+ return isInternalObject(props) ? extend$1({}, props[rawAttrsKey] || props) : props;
9906
10182
  }
9907
10183
  function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
9908
10184
  const { props, ref, patchFlag, children, transition } = vnode;
@@ -10077,8 +10353,11 @@ function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
10077
10353
  ]);
10078
10354
  }
10079
10355
 
10080
- const emptyAppContext = createAppContext();
10356
+ const emptyAppContext = /* @__PURE__ */ createAppContext();
10081
10357
  let uid = 0;
10358
+ function getNextUid() {
10359
+ return uid;
10360
+ }
10082
10361
  function createComponentInstance(vnode, parent, suspense) {
10083
10362
  const type = vnode.type;
10084
10363
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
@@ -10254,7 +10533,8 @@ function setupStatefulComponent(instance, isSSR) {
10254
10533
  setInSSRSetupState(false);
10255
10534
  }
10256
10535
  }).catch((e) => {
10257
- handleError(e, instance, 0);
10536
+ handleError(e, instance, 0, void 0, true);
10537
+ instance.ssrRender = (_, push) => push("<!---->");
10258
10538
  });
10259
10539
  } else {
10260
10540
  instance.asyncDep = setupResult;
@@ -10335,10 +10615,11 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
10335
10615
  }
10336
10616
  }
10337
10617
  }
10618
+ const rawAttrsKey = /* @__PURE__ */ Symbol();
10338
10619
  const attrsProxyHandlers = {
10339
10620
  get(target, key) {
10340
10621
  track(target, "get", "");
10341
- return target[key];
10622
+ return key === rawAttrsKey ? target : target[key];
10342
10623
  }
10343
10624
  };
10344
10625
  function createSetupContext(instance) {
@@ -10442,7 +10723,7 @@ function isMemoSame(cached, memo) {
10442
10723
  return true;
10443
10724
  }
10444
10725
 
10445
- const version = "3.5.43";
10726
+ const version = "3.5.45";
10446
10727
  const warn$1 = NOOP;
10447
10728
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10448
10729
  const devtools = void 0;
@@ -10990,7 +11271,9 @@ function patchStyle(el, prev, next) {
10990
11271
  }
10991
11272
  }
10992
11273
  if (vShowOriginalDisplay in el) {
10993
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
11274
+ if (!isCssString || prev !== next) {
11275
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
11276
+ }
10994
11277
  if (el[vShowHidden]) {
10995
11278
  style.display = "none";
10996
11279
  }
@@ -11478,7 +11761,9 @@ class VueElement extends BaseClass {
11478
11761
  if (this.shadowRoot) {
11479
11762
  this._applyStyles(styles);
11480
11763
  }
11481
- this._mount(def);
11764
+ if (this._connected) {
11765
+ this._mount(def);
11766
+ }
11482
11767
  };
11483
11768
  const asyncDef = this._def.__asyncLoader;
11484
11769
  if (asyncDef) {
@@ -11788,6 +12073,7 @@ const positionMap = /* @__PURE__ */ new WeakMap();
11788
12073
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11789
12074
  const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
11790
12075
  const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
12076
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
11791
12077
  const decorate = (t) => {
11792
12078
  delete t.props.mode;
11793
12079
  {
@@ -11806,21 +12092,30 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11806
12092
  const state = useTransitionState();
11807
12093
  let prevChildren;
11808
12094
  let children;
11809
- onUpdated(() => {
11810
- if (!prevChildren.length) {
11811
- return;
12095
+ let origins;
12096
+ let moves;
12097
+ const willMove = () => {
12098
+ if (moves === void 0) {
12099
+ moves = prevChildren.length > 0 && hasCSSTransform(
12100
+ prevChildren[0].el,
12101
+ instance.vnode.el,
12102
+ resolveMoveClass(props)
12103
+ );
11812
12104
  }
11813
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
11814
- if (!hasCSSTransform(
11815
- prevChildren[0].el,
11816
- instance.vnode.el,
11817
- moveClass
11818
- )) {
12105
+ return moves;
12106
+ };
12107
+ onUpdated(() => {
12108
+ pendingGroups.delete(instance);
12109
+ if (!willMove()) {
11819
12110
  prevChildren = [];
12111
+ origins = void 0;
11820
12112
  return;
11821
12113
  }
12114
+ const moveClass = resolveMoveClass(props);
11822
12115
  prevChildren.forEach(callPendingCbs);
11823
- prevChildren.forEach(recordPosition);
12116
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
12117
+ origins = void 0;
12118
+ prevChildren.forEach((c) => recordPosition(c, shift));
11824
12119
  const movedChildren = prevChildren.filter(applyTranslation);
11825
12120
  forceReflow(instance.vnode.el);
11826
12121
  movedChildren.forEach((c) => {
@@ -11853,6 +12148,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11853
12148
  tag = "span";
11854
12149
  }
11855
12150
  prevChildren = [];
12151
+ moves = void 0;
11856
12152
  if (children) {
11857
12153
  for (let i = 0; i < children.length; i++) {
11858
12154
  const child = children[i];
@@ -11882,6 +12178,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11882
12178
  );
11883
12179
  }
11884
12180
  }
12181
+ if (prevChildren.length) {
12182
+ origins = getOrigins(instance);
12183
+ pendingGroups.set(instance, willMove);
12184
+ }
11885
12185
  return createVNode(tag, null, children);
11886
12186
  };
11887
12187
  }
@@ -11896,8 +12196,11 @@ function callPendingCbs(c) {
11896
12196
  el[enterCbKey]();
11897
12197
  }
11898
12198
  }
11899
- function recordPosition(c) {
11900
- newPositionMap.set(c, getPosition(c.el));
12199
+ function resolveMoveClass(props) {
12200
+ return props.moveClass || `${props.name || "v"}-move`;
12201
+ }
12202
+ function recordPosition(c, shift) {
12203
+ newPositionMap.set(c, getPosition(c.el, shift));
11901
12204
  }
11902
12205
  function applyTranslation(c) {
11903
12206
  const oldPos = positionMap.get(c);
@@ -11921,13 +12224,41 @@ function applyTranslation(c) {
11921
12224
  return c;
11922
12225
  }
11923
12226
  }
11924
- function getPosition(el) {
12227
+ function getPosition(el, shift) {
11925
12228
  const rect = el.getBoundingClientRect();
11926
12229
  return {
11927
- left: rect.left,
11928
- top: rect.top
12230
+ left: rect.left - (shift ? shift.left : 0),
12231
+ top: rect.top - (shift ? shift.top : 0)
11929
12232
  };
11930
12233
  }
12234
+ function getOrigins(instance) {
12235
+ let origins;
12236
+ for (let group = instance.parent; group; group = group.parent) {
12237
+ const willMove = pendingGroups.get(group);
12238
+ if (willMove) {
12239
+ const item = findItem(group.vnode.el, instance.vnode.el);
12240
+ if (item) {
12241
+ (origins || (origins = [])).push(
12242
+ extend$1(getPosition(item), { item, willMove })
12243
+ );
12244
+ }
12245
+ }
12246
+ }
12247
+ return origins;
12248
+ }
12249
+ function findItem(root, node) {
12250
+ const container = root.nodeType === 1 ? root : root.parentNode;
12251
+ while (node && node.parentNode !== container) {
12252
+ node = node.parentNode;
12253
+ }
12254
+ if (node && node.nodeType === 1) {
12255
+ return node;
12256
+ }
12257
+ }
12258
+ function getOriginShift(origins, root) {
12259
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
12260
+ return origin && getPosition(origin.item, origin);
12261
+ }
11931
12262
  function hasCSSTransform(el, root, moveClass) {
11932
12263
  const clone = el.cloneNode();
11933
12264
  const _vtc = el[vtcKey];
@@ -12122,18 +12453,18 @@ const vModelSelect = {
12122
12453
  },
12123
12454
  // set value in mounted & updated because <select> relies on its children
12124
12455
  // <option>s.
12125
- mounted(el, { value }) {
12126
- setSelected(el, value);
12456
+ mounted(el, { value, modifiers: { number } }) {
12457
+ setSelected(el, value, number);
12127
12458
  },
12128
12459
  beforeUpdate(el, { value }, vnode) {
12129
12460
  el._modelValue = value;
12130
12461
  el[assignKey] = getModelAssigner(vnode);
12131
12462
  },
12132
- updated(el, { value }) {
12463
+ updated(el, { value, modifiers: { number } }) {
12133
12464
  const pending = el._pendingValue;
12134
12465
  el._pendingValue = void 0;
12135
12466
  if (!pending || pending[0] !== el.multiple || !isSameSelectValue(value, pending[1], pending[0])) {
12136
- setSelected(el, value);
12467
+ setSelected(el, value, number);
12137
12468
  }
12138
12469
  }
12139
12470
  };
@@ -12149,7 +12480,7 @@ function isSameSelectValue(value, assignedValue, multiple) {
12149
12480
  }
12150
12481
  return false;
12151
12482
  }
12152
- function setSelected(el, value) {
12483
+ function setSelected(el, value, number = false) {
12153
12484
  const isMultiple = el.multiple;
12154
12485
  const isArrayValue = isArray(value);
12155
12486
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -12167,7 +12498,7 @@ function setSelected(el, value) {
12167
12498
  option.selected = looseIndexOf(value, optionValue) > -1;
12168
12499
  }
12169
12500
  } else {
12170
- option.selected = value.has(optionValue);
12501
+ option.selected = value.has(optionValue) || number && typeof optionValue === "string" && value.has(looseToNumber(optionValue));
12171
12502
  }
12172
12503
  } else if (looseEqual(getValue(option), value)) {
12173
12504
  if (el.selectedIndex !== i) el.selectedIndex = i;
@@ -13833,7 +14164,8 @@ const errorMessages = {
13833
14164
  [42]: `v-model value must be a valid JavaScript member expression.`,
13834
14165
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
13835
14166
  [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.
13836
- Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
14167
+ Use a v-bind binding combined with a v-on listener that emits update:x event instead.
14168
+ For props declared with defineModel(), assign the returned ref to a variable and use v-model on that variable.`,
13837
14169
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
13838
14170
  [46]: `Error parsing JavaScript expression: `,
13839
14171
  [47]: `<KeepAlive> expects exactly one child component.`,
@@ -15161,7 +15493,11 @@ function getLoc(start, end) {
15161
15493
  };
15162
15494
  }
15163
15495
  function cloneLoc(loc) {
15164
- return getLoc(loc.start.offset, loc.end.offset);
15496
+ return {
15497
+ start: extend$1({}, loc.start),
15498
+ end: extend$1({}, loc.end),
15499
+ source: loc.source
15500
+ };
15165
15501
  }
15166
15502
  function setLocEnd(loc, end) {
15167
15503
  loc.end = tokenizer.getPos(end);
@@ -17178,7 +17514,7 @@ const transformFor = createStructuralDirectiveTransform(
17178
17514
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
17179
17515
  createCompoundExpression([
17180
17516
  `if (_cached && _cached.el`,
17181
- ...keyExp ? [` && _cached.key === `, keyExp] : [],
17517
+ ...keyExp ? [` && _cached.key === (`, keyExp, `)`] : [],
17182
17518
  ` && ${context.helperString(
17183
17519
  IS_MEMO_SAME
17184
17520
  )}(_cached, _memo)) return _cached`
@@ -19213,6 +19549,41 @@ const transformShow = (dir, node, context) => {
19213
19549
  };
19214
19550
  };
19215
19551
 
19552
+ const transformTransition = (node, context) => {
19553
+ if (node.type === 1 && node.tagType === 1) {
19554
+ const component = context.isBuiltInComponent(node.tag);
19555
+ if (component === TRANSITION) {
19556
+ return () => {
19557
+ if (!node.children.length) {
19558
+ return;
19559
+ }
19560
+ hasMultipleChildren(node);
19561
+ const child = node.children[0];
19562
+ if (child.type === 1) {
19563
+ for (const p of child.props) {
19564
+ if (p.type === 7 && p.name === "show") {
19565
+ node.props.push({
19566
+ type: 6,
19567
+ name: "persisted",
19568
+ nameLoc: node.loc,
19569
+ value: void 0,
19570
+ loc: node.loc
19571
+ });
19572
+ }
19573
+ }
19574
+ }
19575
+ };
19576
+ }
19577
+ }
19578
+ };
19579
+ function hasMultipleChildren(node) {
19580
+ const children = node.children = node.children.filter(
19581
+ (c) => !isCommentOrWhitespace(c)
19582
+ );
19583
+ const child = children[0];
19584
+ return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);
19585
+ }
19586
+
19216
19587
  const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g;
19217
19588
  const stringifyStatic = (children, context, parent) => {
19218
19589
  if (context.scopes.vSlot > 0) {
@@ -19265,7 +19636,7 @@ const stringifyStatic = (children, context, parent) => {
19265
19636
  const child = children[i];
19266
19637
  const isCached = isParentCached || getCachedNode(child);
19267
19638
  if (isCached) {
19268
- const result = analyzeNode(child);
19639
+ const result = analyzeNode(child, context);
19269
19640
  if (result) {
19270
19641
  nc += result[0];
19271
19642
  ec += result[1];
@@ -19292,7 +19663,7 @@ const isStringifiableAttr = (name, ns) => {
19292
19663
  const isNonStringifiable = /* @__PURE__ */ makeMap(
19293
19664
  `caption,thead,tr,th,tbody,td,tfoot,colgroup,col`
19294
19665
  );
19295
- function analyzeNode(node) {
19666
+ function analyzeNode(node, context) {
19296
19667
  if (node.type === 1 && isNonStringifiable(node.tag)) {
19297
19668
  return false;
19298
19669
  }
@@ -19323,6 +19694,9 @@ function analyzeNode(node) {
19323
19694
  if (p.exp && (p.exp.type === 8 || p.exp.constType < 3)) {
19324
19695
  return bail();
19325
19696
  }
19697
+ if (p.arg && p.arg.isStatic && (isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && context.isCustomElement(node2.tag)) {
19698
+ return bail();
19699
+ }
19326
19700
  if (isOptionTag && isStaticArgOf(p.arg, "value") && p.exp && !p.exp.isStatic) {
19327
19701
  return bail();
19328
19702
  }
@@ -19370,8 +19744,9 @@ function stringifyNode(node, context) {
19370
19744
  }
19371
19745
  }
19372
19746
  function stringifyElement(node, context) {
19747
+ var _a;
19373
19748
  let res = `<${node.tag}`;
19374
- let innerHTML = "";
19749
+ let innerHTML = void 0;
19375
19750
  for (let i = 0; i < node.props.length; i++) {
19376
19751
  const p = node.props[i];
19377
19752
  if (p.type === 6) {
@@ -19386,13 +19761,10 @@ function stringifyElement(node, context) {
19386
19761
  res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
19387
19762
  continue;
19388
19763
  }
19389
- if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") {
19390
- continue;
19391
- }
19392
19764
  let evaluated = evaluateConstant(exp);
19393
19765
  if (evaluated != null) {
19394
- const arg = p.arg && p.arg.content;
19395
- if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) {
19766
+ const arg = p.arg.content;
19767
+ if ((isBooleanAttr(arg) || arg === "hidden") && !includeBooleanAttr(evaluated)) {
19396
19768
  continue;
19397
19769
  }
19398
19770
  if (arg === "class") {
@@ -19405,7 +19777,7 @@ function stringifyElement(node, context) {
19405
19777
  )}"`;
19406
19778
  }
19407
19779
  } else if (p.name === "html") {
19408
- innerHTML = evaluateConstant(p.exp);
19780
+ innerHTML = (_a = evaluateConstant(p.exp)) != null ? _a : "";
19409
19781
  } else if (p.name === "text") {
19410
19782
  innerHTML = escapeHtml(
19411
19783
  toDisplayString(evaluateConstant(p.exp))
@@ -19417,7 +19789,7 @@ function stringifyElement(node, context) {
19417
19789
  res += ` ${context.scopeId}`;
19418
19790
  }
19419
19791
  res += `>`;
19420
- if (innerHTML) {
19792
+ if (innerHTML !== void 0) {
19421
19793
  res += innerHTML;
19422
19794
  } else {
19423
19795
  for (let i = 0; i < node.children.length; i++) {
@@ -19458,6 +19830,7 @@ const ignoreSideEffectTags = (node, context) => {
19458
19830
 
19459
19831
  const DOMNodeTransforms = [
19460
19832
  transformStyle,
19833
+ transformTransition,
19461
19834
  ...[]
19462
19835
  ];
19463
19836
  const DOMDirectiveTransforms = {