@vue/compat 3.5.43 → 3.5.44

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.44
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -210,7 +210,7 @@ const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
210
210
  const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
211
211
  const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
212
212
 
213
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
213
+ const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
214
214
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
215
215
  const isBooleanAttr = /* @__PURE__ */ makeMap(
216
216
  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
@@ -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);
@@ -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 {
@@ -2399,15 +2427,15 @@ function queuePostFlushCb(cb) {
2399
2427
  }
2400
2428
  queueFlush();
2401
2429
  }
2402
- function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2430
+ function flushPreFlushCbs(instance, minUid, seen, i = flushIndex + 1) {
2403
2431
  for (; i < queue.length; i++) {
2404
2432
  const cb = queue[i];
2405
2433
  if (cb && cb.flags & 2) {
2406
- if (instance && cb.id !== instance.uid) {
2434
+ if (instance && cb.id !== instance.uid || minUid !== void 0 && !(cb.id >= minUid)) {
2407
2435
  continue;
2408
2436
  }
2409
2437
  queue.splice(i, 1);
2410
- i--;
2438
+ i = instance ? i - 1 : flushIndex;
2411
2439
  if (cb.flags & 4) {
2412
2440
  cb.flags &= -2;
2413
2441
  }
@@ -2418,12 +2446,23 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2418
2446
  }
2419
2447
  }
2420
2448
  }
2421
- function flushPostFlushCbs(seen) {
2449
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2422
2450
  if (pendingPostFlushCbs.length) {
2423
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
2424
- (a, b) => getId(a) - getId(b)
2425
- );
2426
- pendingPostFlushCbs.length = 0;
2451
+ let cbs = pendingPostFlushCbs;
2452
+ let kept = 0;
2453
+ if (skip) {
2454
+ cbs = [];
2455
+ for (let i = 0; i < pendingPostFlushCbs.length; i++) {
2456
+ const cb = pendingPostFlushCbs[i];
2457
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) {
2458
+ pendingPostFlushCbs[kept++] = cb;
2459
+ } else {
2460
+ cbs.push(cb);
2461
+ }
2462
+ }
2463
+ }
2464
+ const deduped = [...new Set(cbs)].sort((a, b) => getId(a) - getId(b));
2465
+ pendingPostFlushCbs.length = kept;
2427
2466
  if (activePostFlushCbs) {
2428
2467
  for (let i = 0; i < deduped.length; i++) {
2429
2468
  activePostFlushCbs.push(deduped[i]);
@@ -2443,6 +2482,22 @@ function flushPostFlushCbs(seen) {
2443
2482
  postFlushIndex = 0;
2444
2483
  }
2445
2484
  }
2485
+ let isFlushing = false;
2486
+ function flushOnAppMount(fn, minUid) {
2487
+ if (isFlushing) {
2488
+ fn();
2489
+ return;
2490
+ }
2491
+ const queued = minUid === void 0 ? void 0 : new Set(pendingPostFlushCbs);
2492
+ fn();
2493
+ isFlushing = true;
2494
+ try {
2495
+ flushPreFlushCbs(void 0, minUid);
2496
+ flushPostFlushCbs(void 0, queued, minUid);
2497
+ } finally {
2498
+ isFlushing = false;
2499
+ }
2500
+ }
2446
2501
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2447
2502
  function flushJobs(seen) {
2448
2503
  try {
@@ -2858,6 +2913,7 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
2858
2913
  let isPre = false;
2859
2914
  if (flush === "post") {
2860
2915
  baseWatchOptions.scheduler = (job) => {
2916
+ job.i = instance;
2861
2917
  queuePostRenderEffect(job, instance && instance.suspense);
2862
2918
  };
2863
2919
  } else if (flush !== "sync") {
@@ -3136,7 +3192,11 @@ const TeleportImpl = {
3136
3192
  };
3137
3193
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
3138
3194
  if (moveType === 0) {
3195
+ if (vnode.targetStart) {
3196
+ insert(vnode.targetStart, container, parentAnchor);
3197
+ }
3139
3198
  insert(vnode.targetAnchor, container, parentAnchor);
3199
+ parentAnchor = vnode.targetAnchor;
3140
3200
  }
3141
3201
  const { el, anchor, shapeFlag, children, props } = vnode;
3142
3202
  const isReorder = moveType === 2;
@@ -3305,10 +3365,6 @@ const BaseTransitionPropsValidators = {
3305
3365
  onAfterAppear: TransitionHookValidator,
3306
3366
  onAppearCancelled: TransitionHookValidator
3307
3367
  };
3308
- const recursiveGetSubtree = (instance) => {
3309
- const subTree = instance.subTree;
3310
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
3311
- };
3312
3368
  const BaseTransitionImpl = {
3313
3369
  name: `BaseTransition`,
3314
3370
  props: BaseTransitionPropsValidators,
@@ -3346,7 +3402,7 @@ const BaseTransitionImpl = {
3346
3402
  setTransitionHooks(innerChild, enterHooks);
3347
3403
  }
3348
3404
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3349
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3405
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && getTransitionRoot(instance.subTree)) {
3350
3406
  let leavingHooks = resolveTransitionHooks(
3351
3407
  oldInnerChild,
3352
3408
  rawProps,
@@ -3475,8 +3531,15 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3475
3531
  );
3476
3532
  }
3477
3533
  const leavingVNode = leavingVNodesCache[key];
3478
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
3479
- leavingVNode.el[leaveCbKey]();
3534
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
3535
+ let leavingCb = leavingVNode.el[leaveCbKey];
3536
+ if (!leavingCb) {
3537
+ const leavingRoot = getTransitionRoot(leavingVNode);
3538
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
3539
+ }
3540
+ if (leavingCb) {
3541
+ leavingCb();
3542
+ }
3480
3543
  }
3481
3544
  callHook(hook, [el]);
3482
3545
  },
@@ -3604,6 +3667,12 @@ function setTransitionHooks(vnode, hooks) {
3604
3667
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3605
3668
  } else {
3606
3669
  vnode.transition = hooks;
3670
+ if (vnode.type === Fragment && isArray(vnode.children)) {
3671
+ const child = filterSingleRoot(vnode.children, false);
3672
+ if (child) {
3673
+ setTransitionHooks(child, hooks);
3674
+ }
3675
+ }
3607
3676
  }
3608
3677
  }
3609
3678
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -3628,6 +3697,18 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
3628
3697
  }
3629
3698
  return ret;
3630
3699
  }
3700
+ function getTransitionRoot(vnode) {
3701
+ if (vnode.component) {
3702
+ return getTransitionRoot(vnode.component.subTree);
3703
+ }
3704
+ if (vnode.type === Fragment) {
3705
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
3706
+ return child ? getTransitionRoot(child) : void 0;
3707
+ }
3708
+ if (vnode.type !== Comment) {
3709
+ return vnode;
3710
+ }
3711
+ }
3631
3712
 
3632
3713
  // @__NO_SIDE_EFFECTS__
3633
3714
  function defineComponent(options, extraOptions) {
@@ -4322,14 +4403,22 @@ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
4322
4403
  break;
4323
4404
  }
4324
4405
  }, opts);
4325
- forEach((el) => {
4326
- if (!(el instanceof Element)) return;
4406
+ const observe = (el) => {
4327
4407
  if (elementIsVisibleInViewport(el)) {
4328
4408
  hydrate();
4329
4409
  ob.disconnect();
4330
4410
  return false;
4331
4411
  }
4412
+ if (getComputedStyle(el).display === "contents") {
4413
+ for (let i = 0; i < el.children.length; i++) {
4414
+ if (observe(el.children[i]) === false) return false;
4415
+ }
4416
+ }
4332
4417
  ob.observe(el);
4418
+ };
4419
+ forEach((el) => {
4420
+ if (!(el instanceof Element)) return;
4421
+ return observe(el);
4333
4422
  });
4334
4423
  return () => ob.disconnect();
4335
4424
  };
@@ -4661,6 +4750,7 @@ const KeepAliveImpl = {
4661
4750
  unmount(cached);
4662
4751
  } else if (current) {
4663
4752
  resetShapeFlag(current);
4753
+ if (cached) resetShapeFlag(cached);
4664
4754
  }
4665
4755
  cache.delete(key);
4666
4756
  keys.delete(key);
@@ -5225,7 +5315,9 @@ function renderList(source, renderItem, cache, index) {
5225
5315
  );
5226
5316
  }
5227
5317
  } else if (typeof source === "number") {
5228
- {
5318
+ if (!Number.isInteger(source) || source < 0) {
5319
+ ret = [];
5320
+ } else {
5229
5321
  ret = new Array(source);
5230
5322
  for (let i = 0; i < source; i++) {
5231
5323
  ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
@@ -5526,6 +5618,7 @@ function installCompatInstanceProperties(map) {
5526
5618
  $vnode: (i) => i.vnode,
5527
5619
  // some private properties that are likely accessed...
5528
5620
  _self: (i) => i.proxy,
5621
+ _setupProxy: (i) => i.setupState,
5529
5622
  _uid: (i) => i.uid,
5530
5623
  _data: (i) => i.data,
5531
5624
  _isMounted: (i) => i.isMounted,
@@ -6241,7 +6334,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6241
6334
  return vm;
6242
6335
  }
6243
6336
  }
6244
- Vue.version = `2.6.14-compat:${"3.5.43"}`;
6337
+ Vue.version = `2.6.14-compat:${"3.5.44"}`;
6245
6338
  Vue.config = singletonApp.config;
6246
6339
  Vue.use = (plugin, ...options) => {
6247
6340
  if (plugin && isFunction(plugin.install)) {
@@ -7136,7 +7229,7 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
7136
7229
  }
7137
7230
  for (let i = 0; i < nextKeys.length; i++) {
7138
7231
  const key = nextKeys[i];
7139
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
7232
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
7140
7233
  return true;
7141
7234
  }
7142
7235
  }
@@ -8011,15 +8104,16 @@ function baseCreateRenderer(options, createHydrationFns) {
8011
8104
  for (let i = 0; i < newChildren.length; i++) {
8012
8105
  const oldVNode = oldChildren[i];
8013
8106
  const newVNode = newChildren[i];
8107
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
8014
8108
  const container = (
8015
8109
  // oldVNode may be an errored async setup() component inside Suspense
8016
8110
  // which will not have a mounted element
8017
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
8111
+ oldEl && // - In the case of a Fragment, we need to provide the actual parent
8018
8112
  // of the Fragment itself so it can move its children.
8019
8113
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
8020
8114
  // which also requires the correct parent container
8021
8115
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
8022
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
8116
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldEl) : (
8023
8117
  // In other cases, the parent container is not actually used so we
8024
8118
  // just pass the block element here to avoid a DOM parentNode call.
8025
8119
  fallbackContainer
@@ -8173,7 +8267,12 @@ function baseCreateRenderer(options, createHydrationFns) {
8173
8267
  setupComponent(instance, false, optimized);
8174
8268
  }
8175
8269
  if (instance.asyncDep) {
8176
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
8270
+ parentSuspense && parentSuspense.registerDep(
8271
+ instance,
8272
+ setupRenderEffect,
8273
+ optimized,
8274
+ namespace
8275
+ );
8177
8276
  if (!initialVNode.el) {
8178
8277
  const placeholder = instance.subTree = createVNode(Comment);
8179
8278
  processCommentNode(null, placeholder, container, anchor);
@@ -8196,6 +8295,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8196
8295
  if (shouldUpdateComponent(n1, n2, optimized)) {
8197
8296
  if (instance.asyncDep && !instance.asyncResolved) {
8198
8297
  n2.el = n1.el;
8298
+ n2.placeholder = n1.placeholder;
8199
8299
  updateComponentPreRender(instance, n2, optimized);
8200
8300
  return;
8201
8301
  } else {
@@ -8204,6 +8304,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8204
8304
  }
8205
8305
  } else {
8206
8306
  n2.el = n1.el;
8307
+ n2.placeholder = n1.placeholder;
8207
8308
  instance.vnode = n2;
8208
8309
  }
8209
8310
  };
@@ -8822,10 +8923,9 @@ function baseCreateRenderer(options, createHydrationFns) {
8822
8923
  };
8823
8924
  const remove = (vnode) => {
8824
8925
  const { type, el, anchor, transition } = vnode;
8825
- if (type === Fragment) {
8826
- {
8827
- removeFragment(el, anchor);
8828
- }
8926
+ const isFragment = type === Fragment;
8927
+ if (isFragment && !transition) {
8928
+ removeFragment(el, anchor);
8829
8929
  return;
8830
8930
  }
8831
8931
  if (type === Static) {
@@ -8835,17 +8935,25 @@ function baseCreateRenderer(options, createHydrationFns) {
8835
8935
  }
8836
8936
  return;
8837
8937
  }
8938
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
8838
8939
  const performRemove = () => {
8839
- hostRemove(el);
8940
+ if (isFragment) {
8941
+ if (hostParentNode(el)) {
8942
+ removeFragment(el, anchor);
8943
+ }
8944
+ } else {
8945
+ hostRemove(el);
8946
+ }
8840
8947
  if (transition && !transition.persisted && transition.afterLeave) {
8841
8948
  transition.afterLeave();
8842
8949
  }
8843
8950
  };
8844
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
8951
+ if (leavingNode && leavingNode.shapeFlag & 1 && transition && !transition.persisted) {
8845
8952
  const { leave, delayLeave } = transition;
8846
- const performLeave = () => leave(el, performRemove);
8953
+ const leavingEl = leavingNode.el;
8954
+ const performLeave = () => leave(leavingEl, performRemove);
8847
8955
  if (delayLeave) {
8848
- delayLeave(vnode.el, performRemove, performLeave);
8956
+ delayLeave(leavingEl, performRemove, performLeave);
8849
8957
  } else {
8850
8958
  performLeave();
8851
8959
  }
@@ -8909,32 +9017,26 @@ function baseCreateRenderer(options, createHydrationFns) {
8909
9017
  const teleportEnd = el && el[TeleportEndKey];
8910
9018
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
8911
9019
  };
8912
- let isFlushing = false;
8913
9020
  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;
9021
+ const minUid = vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid();
9022
+ flushOnAppMount(() => {
9023
+ if (vnode == null) {
9024
+ if (container._vnode) {
9025
+ unmount(container._vnode, null, null, true);
9026
+ }
9027
+ } else {
9028
+ patch(
9029
+ container._vnode || null,
9030
+ vnode,
9031
+ container,
9032
+ null,
9033
+ null,
9034
+ null,
9035
+ namespace
9036
+ );
8919
9037
  }
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
- }
9038
+ container._vnode = vnode;
9039
+ }, minUid);
8938
9040
  };
8939
9041
  const internals = {
8940
9042
  p: patch,
@@ -9497,7 +9599,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9497
9599
  next() {
9498
9600
  return suspense.activeBranch && next(suspense.activeBranch);
9499
9601
  },
9500
- registerDep(instance, setupRenderEffect, optimized2) {
9602
+ // `namespace` intentionally shadows the boundary's own: the dep must be
9603
+ // mounted with the namespace of the position it was rendered at, which can
9604
+ // differ from the boundary's (e.g. a component nested inside an <svg>).
9605
+ registerDep(instance, setupRenderEffect, optimized2, namespace2) {
9501
9606
  const isInPendingSuspense = !!suspense.pendingBranch;
9502
9607
  if (isInPendingSuspense) {
9503
9608
  suspense.deps++;
@@ -9510,7 +9615,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9510
9615
  return;
9511
9616
  }
9512
9617
  unsetCurrentInstance();
9513
- if (hydratedEl && !instance.scope.active) {
9618
+ if (!instance.scope.active) {
9514
9619
  if (isInPendingSuspense && --suspense.deps === 0) {
9515
9620
  suspense.resolve();
9516
9621
  }
@@ -9534,7 +9639,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9534
9639
  // consider the comment placeholder case.
9535
9640
  hydratedEl ? null : next(instance.subTree),
9536
9641
  suspense,
9537
- namespace,
9642
+ namespace2,
9538
9643
  optimized2
9539
9644
  );
9540
9645
  if (placeholder) {
@@ -10079,6 +10184,9 @@ function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
10079
10184
 
10080
10185
  const emptyAppContext = createAppContext();
10081
10186
  let uid = 0;
10187
+ function getNextUid() {
10188
+ return uid;
10189
+ }
10082
10190
  function createComponentInstance(vnode, parent, suspense) {
10083
10191
  const type = vnode.type;
10084
10192
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
@@ -10442,7 +10550,7 @@ function isMemoSame(cached, memo) {
10442
10550
  return true;
10443
10551
  }
10444
10552
 
10445
- const version = "3.5.43";
10553
+ const version = "3.5.44";
10446
10554
  const warn$1 = NOOP;
10447
10555
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10448
10556
  const devtools = void 0;
@@ -10990,7 +11098,9 @@ function patchStyle(el, prev, next) {
10990
11098
  }
10991
11099
  }
10992
11100
  if (vShowOriginalDisplay in el) {
10993
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
11101
+ if (!isCssString || prev !== next) {
11102
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
11103
+ }
10994
11104
  if (el[vShowHidden]) {
10995
11105
  style.display = "none";
10996
11106
  }
@@ -11478,7 +11588,9 @@ class VueElement extends BaseClass {
11478
11588
  if (this.shadowRoot) {
11479
11589
  this._applyStyles(styles);
11480
11590
  }
11481
- this._mount(def);
11591
+ if (this._connected) {
11592
+ this._mount(def);
11593
+ }
11482
11594
  };
11483
11595
  const asyncDef = this._def.__asyncLoader;
11484
11596
  if (asyncDef) {
@@ -11788,6 +11900,7 @@ const positionMap = /* @__PURE__ */ new WeakMap();
11788
11900
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11789
11901
  const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
11790
11902
  const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
11903
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
11791
11904
  const decorate = (t) => {
11792
11905
  delete t.props.mode;
11793
11906
  {
@@ -11806,21 +11919,30 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11806
11919
  const state = useTransitionState();
11807
11920
  let prevChildren;
11808
11921
  let children;
11809
- onUpdated(() => {
11810
- if (!prevChildren.length) {
11811
- return;
11922
+ let origins;
11923
+ let moves;
11924
+ const willMove = () => {
11925
+ if (moves === void 0) {
11926
+ moves = prevChildren.length > 0 && hasCSSTransform(
11927
+ prevChildren[0].el,
11928
+ instance.vnode.el,
11929
+ resolveMoveClass(props)
11930
+ );
11812
11931
  }
11813
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
11814
- if (!hasCSSTransform(
11815
- prevChildren[0].el,
11816
- instance.vnode.el,
11817
- moveClass
11818
- )) {
11932
+ return moves;
11933
+ };
11934
+ onUpdated(() => {
11935
+ pendingGroups.delete(instance);
11936
+ if (!willMove()) {
11819
11937
  prevChildren = [];
11938
+ origins = void 0;
11820
11939
  return;
11821
11940
  }
11941
+ const moveClass = resolveMoveClass(props);
11822
11942
  prevChildren.forEach(callPendingCbs);
11823
- prevChildren.forEach(recordPosition);
11943
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
11944
+ origins = void 0;
11945
+ prevChildren.forEach((c) => recordPosition(c, shift));
11824
11946
  const movedChildren = prevChildren.filter(applyTranslation);
11825
11947
  forceReflow(instance.vnode.el);
11826
11948
  movedChildren.forEach((c) => {
@@ -11853,6 +11975,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11853
11975
  tag = "span";
11854
11976
  }
11855
11977
  prevChildren = [];
11978
+ moves = void 0;
11856
11979
  if (children) {
11857
11980
  for (let i = 0; i < children.length; i++) {
11858
11981
  const child = children[i];
@@ -11882,6 +12005,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11882
12005
  );
11883
12006
  }
11884
12007
  }
12008
+ if (prevChildren.length) {
12009
+ origins = getOrigins(instance);
12010
+ pendingGroups.set(instance, willMove);
12011
+ }
11885
12012
  return createVNode(tag, null, children);
11886
12013
  };
11887
12014
  }
@@ -11896,8 +12023,11 @@ function callPendingCbs(c) {
11896
12023
  el[enterCbKey]();
11897
12024
  }
11898
12025
  }
11899
- function recordPosition(c) {
11900
- newPositionMap.set(c, getPosition(c.el));
12026
+ function resolveMoveClass(props) {
12027
+ return props.moveClass || `${props.name || "v"}-move`;
12028
+ }
12029
+ function recordPosition(c, shift) {
12030
+ newPositionMap.set(c, getPosition(c.el, shift));
11901
12031
  }
11902
12032
  function applyTranslation(c) {
11903
12033
  const oldPos = positionMap.get(c);
@@ -11921,13 +12051,41 @@ function applyTranslation(c) {
11921
12051
  return c;
11922
12052
  }
11923
12053
  }
11924
- function getPosition(el) {
12054
+ function getPosition(el, shift) {
11925
12055
  const rect = el.getBoundingClientRect();
11926
12056
  return {
11927
- left: rect.left,
11928
- top: rect.top
12057
+ left: rect.left - (shift ? shift.left : 0),
12058
+ top: rect.top - (shift ? shift.top : 0)
11929
12059
  };
11930
12060
  }
12061
+ function getOrigins(instance) {
12062
+ let origins;
12063
+ for (let group = instance.parent; group; group = group.parent) {
12064
+ const willMove = pendingGroups.get(group);
12065
+ if (willMove) {
12066
+ const item = findItem(group.vnode.el, instance.vnode.el);
12067
+ if (item) {
12068
+ (origins || (origins = [])).push(
12069
+ extend$1(getPosition(item), { item, willMove })
12070
+ );
12071
+ }
12072
+ }
12073
+ }
12074
+ return origins;
12075
+ }
12076
+ function findItem(root, node) {
12077
+ const container = root.nodeType === 1 ? root : root.parentNode;
12078
+ while (node && node.parentNode !== container) {
12079
+ node = node.parentNode;
12080
+ }
12081
+ if (node && node.nodeType === 1) {
12082
+ return node;
12083
+ }
12084
+ }
12085
+ function getOriginShift(origins, root) {
12086
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
12087
+ return origin && getPosition(origin.item, origin);
12088
+ }
11931
12089
  function hasCSSTransform(el, root, moveClass) {
11932
12090
  const clone = el.cloneNode();
11933
12091
  const _vtc = el[vtcKey];
@@ -13833,7 +13991,8 @@ const errorMessages = {
13833
13991
  [42]: `v-model value must be a valid JavaScript member expression.`,
13834
13992
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
13835
13993
  [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.`,
13994
+ Use a v-bind binding combined with a v-on listener that emits update:x event instead.
13995
+ For props declared with defineModel(), assign the returned ref to a variable and use v-model on that variable.`,
13837
13996
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
13838
13997
  [46]: `Error parsing JavaScript expression: `,
13839
13998
  [47]: `<KeepAlive> expects exactly one child component.`,
@@ -17178,7 +17337,7 @@ const transformFor = createStructuralDirectiveTransform(
17178
17337
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
17179
17338
  createCompoundExpression([
17180
17339
  `if (_cached && _cached.el`,
17181
- ...keyExp ? [` && _cached.key === `, keyExp] : [],
17340
+ ...keyExp ? [` && _cached.key === (`, keyExp, `)`] : [],
17182
17341
  ` && ${context.helperString(
17183
17342
  IS_MEMO_SAME
17184
17343
  )}(_cached, _memo)) return _cached`
@@ -19213,6 +19372,41 @@ const transformShow = (dir, node, context) => {
19213
19372
  };
19214
19373
  };
19215
19374
 
19375
+ const transformTransition = (node, context) => {
19376
+ if (node.type === 1 && node.tagType === 1) {
19377
+ const component = context.isBuiltInComponent(node.tag);
19378
+ if (component === TRANSITION) {
19379
+ return () => {
19380
+ if (!node.children.length) {
19381
+ return;
19382
+ }
19383
+ hasMultipleChildren(node);
19384
+ const child = node.children[0];
19385
+ if (child.type === 1) {
19386
+ for (const p of child.props) {
19387
+ if (p.type === 7 && p.name === "show") {
19388
+ node.props.push({
19389
+ type: 6,
19390
+ name: "persisted",
19391
+ nameLoc: node.loc,
19392
+ value: void 0,
19393
+ loc: node.loc
19394
+ });
19395
+ }
19396
+ }
19397
+ }
19398
+ };
19399
+ }
19400
+ }
19401
+ };
19402
+ function hasMultipleChildren(node) {
19403
+ const children = node.children = node.children.filter(
19404
+ (c) => !isCommentOrWhitespace(c)
19405
+ );
19406
+ const child = children[0];
19407
+ return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);
19408
+ }
19409
+
19216
19410
  const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g;
19217
19411
  const stringifyStatic = (children, context, parent) => {
19218
19412
  if (context.scopes.vSlot > 0) {
@@ -19370,8 +19564,9 @@ function stringifyNode(node, context) {
19370
19564
  }
19371
19565
  }
19372
19566
  function stringifyElement(node, context) {
19567
+ var _a;
19373
19568
  let res = `<${node.tag}`;
19374
- let innerHTML = "";
19569
+ let innerHTML = void 0;
19375
19570
  for (let i = 0; i < node.props.length; i++) {
19376
19571
  const p = node.props[i];
19377
19572
  if (p.type === 6) {
@@ -19405,7 +19600,7 @@ function stringifyElement(node, context) {
19405
19600
  )}"`;
19406
19601
  }
19407
19602
  } else if (p.name === "html") {
19408
- innerHTML = evaluateConstant(p.exp);
19603
+ innerHTML = (_a = evaluateConstant(p.exp)) != null ? _a : "";
19409
19604
  } else if (p.name === "text") {
19410
19605
  innerHTML = escapeHtml(
19411
19606
  toDisplayString(evaluateConstant(p.exp))
@@ -19417,7 +19612,7 @@ function stringifyElement(node, context) {
19417
19612
  res += ` ${context.scopeId}`;
19418
19613
  }
19419
19614
  res += `>`;
19420
- if (innerHTML) {
19615
+ if (innerHTML !== void 0) {
19421
19616
  res += innerHTML;
19422
19617
  } else {
19423
19618
  for (let i = 0; i < node.children.length; i++) {
@@ -19458,6 +19653,7 @@ const ignoreSideEffectTags = (node, context) => {
19458
19653
 
19459
19654
  const DOMNodeTransforms = [
19460
19655
  transformStyle,
19656
+ transformTransition,
19461
19657
  ...[]
19462
19658
  ];
19463
19659
  const DOMDirectiveTransforms = {