@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
  **/
@@ -264,7 +264,7 @@ const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
264
264
  const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
265
265
  const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
266
266
 
267
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
267
+ const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
268
268
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
269
269
  const isBooleanAttr = /* @__PURE__ */ makeMap(
270
270
  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
@@ -1312,19 +1312,41 @@ const arrayInstrumentations = {
1312
1312
  };
1313
1313
  function iterator(self, method, wrapValue) {
1314
1314
  const arr = shallowReadArray(self);
1315
- const iter = arr[method]();
1315
+ const methodFn = arr[method];
1316
+ const iter = methodFn.call(arr);
1316
1317
  if (arr !== self && !isShallow(self)) {
1317
- iter._next = iter.next;
1318
- iter.next = () => {
1319
- const result = iter._next();
1320
- if (!result.done) {
1321
- result.value = wrapValue(result.value);
1318
+ if (iter[Symbol.toStringTag] === "Array Iterator") {
1319
+ const wrapped = Object.create(Object.getPrototypeOf(iter));
1320
+ wrapped.next = () => wrapResult(iter.next(), wrapValue);
1321
+ if (methodFn !== arrayProto[method]) {
1322
+ Object.defineProperties(wrapped, {
1323
+ return: {
1324
+ get() {
1325
+ const fn = iter.return;
1326
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1327
+ }
1328
+ },
1329
+ throw: {
1330
+ get() {
1331
+ const fn = iter.throw;
1332
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1333
+ }
1334
+ }
1335
+ });
1322
1336
  }
1323
- return result;
1324
- };
1337
+ return wrapped;
1338
+ }
1339
+ iter._next = iter.next;
1340
+ iter.next = () => wrapResult(iter._next(), wrapValue);
1325
1341
  }
1326
1342
  return iter;
1327
1343
  }
1344
+ function wrapResult(result, wrapValue) {
1345
+ if (!result.done) {
1346
+ result.value = wrapValue(result.value);
1347
+ }
1348
+ return result;
1349
+ }
1328
1350
  const arrayProto = Array.prototype;
1329
1351
  function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1330
1352
  const arr = shallowReadArray(self);
@@ -1747,6 +1769,8 @@ function createInstrumentationGetter(isReadonly2, shallow) {
1747
1769
  return !isReadonly2;
1748
1770
  } else if (key === "__v_isReadonly") {
1749
1771
  return isReadonly2;
1772
+ } else if (key === "__v_isShallow") {
1773
+ return shallow;
1750
1774
  } else if (key === "__v_raw") {
1751
1775
  return target;
1752
1776
  }
@@ -2292,9 +2316,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2292
2316
  if (once && cb) {
2293
2317
  const _cb = cb;
2294
2318
  cb = (...args) => {
2295
- const res = _cb(...args);
2296
- watchHandle();
2297
- return res;
2319
+ try {
2320
+ return _cb(...args);
2321
+ } finally {
2322
+ watchHandle();
2323
+ }
2298
2324
  };
2299
2325
  }
2300
2326
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -2305,12 +2331,13 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2305
2331
  if (cb) {
2306
2332
  const newValue = effect.run();
2307
2333
  if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2308
- if (cleanup) {
2309
- cleanup();
2310
- }
2311
2334
  const currentWatcher = activeWatcher;
2312
- activeWatcher = effect;
2335
+ pauseTracking();
2313
2336
  try {
2337
+ if (cleanup) {
2338
+ cleanup();
2339
+ }
2340
+ activeWatcher = effect;
2314
2341
  const args = [
2315
2342
  newValue,
2316
2343
  // pass undefined as the old value when it's changed for the first time
@@ -2324,6 +2351,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2324
2351
  );
2325
2352
  } finally {
2326
2353
  activeWatcher = currentWatcher;
2354
+ resetTracking();
2327
2355
  }
2328
2356
  }
2329
2357
  } else {
@@ -2724,21 +2752,21 @@ function queuePostFlushCb(cb) {
2724
2752
  }
2725
2753
  queueFlush();
2726
2754
  }
2727
- function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2755
+ function flushPreFlushCbs(instance, minUid, seen, i = flushIndex + 1) {
2728
2756
  {
2729
2757
  seen = seen || /* @__PURE__ */ new Map();
2730
2758
  }
2731
2759
  for (; i < queue.length; i++) {
2732
2760
  const cb = queue[i];
2733
2761
  if (cb && cb.flags & 2) {
2734
- if (instance && cb.id !== instance.uid) {
2762
+ if (instance && cb.id !== instance.uid || minUid !== void 0 && !(cb.id >= minUid)) {
2735
2763
  continue;
2736
2764
  }
2737
2765
  if (checkRecursiveUpdates(seen, cb)) {
2738
2766
  continue;
2739
2767
  }
2740
2768
  queue.splice(i, 1);
2741
- i--;
2769
+ i = instance ? i - 1 : flushIndex;
2742
2770
  if (cb.flags & 4) {
2743
2771
  cb.flags &= -2;
2744
2772
  }
@@ -2749,12 +2777,23 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2749
2777
  }
2750
2778
  }
2751
2779
  }
2752
- function flushPostFlushCbs(seen) {
2780
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2753
2781
  if (pendingPostFlushCbs.length) {
2754
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
2755
- (a, b) => getId(a) - getId(b)
2756
- );
2757
- pendingPostFlushCbs.length = 0;
2782
+ let cbs = pendingPostFlushCbs;
2783
+ let kept = 0;
2784
+ if (skip) {
2785
+ cbs = [];
2786
+ for (let i = 0; i < pendingPostFlushCbs.length; i++) {
2787
+ const cb = pendingPostFlushCbs[i];
2788
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) {
2789
+ pendingPostFlushCbs[kept++] = cb;
2790
+ } else {
2791
+ cbs.push(cb);
2792
+ }
2793
+ }
2794
+ }
2795
+ const deduped = [...new Set(cbs)].sort((a, b) => getId(a) - getId(b));
2796
+ pendingPostFlushCbs.length = kept;
2758
2797
  if (activePostFlushCbs) {
2759
2798
  for (let i = 0; i < deduped.length; i++) {
2760
2799
  activePostFlushCbs.push(deduped[i]);
@@ -2780,6 +2819,22 @@ function flushPostFlushCbs(seen) {
2780
2819
  postFlushIndex = 0;
2781
2820
  }
2782
2821
  }
2822
+ let isFlushing = false;
2823
+ function flushOnAppMount(fn, minUid) {
2824
+ if (isFlushing) {
2825
+ fn();
2826
+ return;
2827
+ }
2828
+ const queued = minUid === void 0 ? void 0 : new Set(pendingPostFlushCbs);
2829
+ fn();
2830
+ isFlushing = true;
2831
+ try {
2832
+ flushPreFlushCbs(void 0, minUid);
2833
+ flushPostFlushCbs(void 0, queued, minUid);
2834
+ } finally {
2835
+ isFlushing = false;
2836
+ }
2837
+ }
2783
2838
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2784
2839
  function flushJobs(seen) {
2785
2840
  {
@@ -3750,6 +3805,7 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
3750
3805
  let isPre = false;
3751
3806
  if (flush === "post") {
3752
3807
  baseWatchOptions.scheduler = (job) => {
3808
+ job.i = instance;
3753
3809
  queuePostRenderEffect(job, instance && instance.suspense);
3754
3810
  };
3755
3811
  } else if (flush !== "sync") {
@@ -4051,7 +4107,11 @@ const TeleportImpl = {
4051
4107
  };
4052
4108
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
4053
4109
  if (moveType === 0) {
4110
+ if (vnode.targetStart) {
4111
+ insert(vnode.targetStart, container, parentAnchor);
4112
+ }
4054
4113
  insert(vnode.targetAnchor, container, parentAnchor);
4114
+ parentAnchor = vnode.targetAnchor;
4055
4115
  }
4056
4116
  const { el, anchor, shapeFlag, children, props } = vnode;
4057
4117
  const isReorder = moveType === 2;
@@ -4220,10 +4280,6 @@ const BaseTransitionPropsValidators = {
4220
4280
  onAfterAppear: TransitionHookValidator,
4221
4281
  onAppearCancelled: TransitionHookValidator
4222
4282
  };
4223
- const recursiveGetSubtree = (instance) => {
4224
- const subTree = instance.subTree;
4225
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
4226
- };
4227
4283
  const BaseTransitionImpl = {
4228
4284
  name: `BaseTransition`,
4229
4285
  props: BaseTransitionPropsValidators,
@@ -4264,7 +4320,7 @@ const BaseTransitionImpl = {
4264
4320
  setTransitionHooks(innerChild, enterHooks);
4265
4321
  }
4266
4322
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
4267
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
4323
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && getTransitionRoot(instance.subTree)) {
4268
4324
  let leavingHooks = resolveTransitionHooks(
4269
4325
  oldInnerChild,
4270
4326
  rawProps,
@@ -4400,8 +4456,15 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4400
4456
  );
4401
4457
  }
4402
4458
  const leavingVNode = leavingVNodesCache[key];
4403
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4404
- leavingVNode.el[leaveCbKey]();
4459
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
4460
+ let leavingCb = leavingVNode.el[leaveCbKey];
4461
+ if (!leavingCb) {
4462
+ const leavingRoot = getTransitionRoot(leavingVNode);
4463
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
4464
+ }
4465
+ if (leavingCb) {
4466
+ leavingCb();
4467
+ }
4405
4468
  }
4406
4469
  callHook(hook, [el]);
4407
4470
  },
@@ -4529,6 +4592,12 @@ function setTransitionHooks(vnode, hooks) {
4529
4592
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4530
4593
  } else {
4531
4594
  vnode.transition = hooks;
4595
+ if (vnode.type === Fragment && isArray(vnode.children)) {
4596
+ const child = filterSingleRoot(vnode.children, false);
4597
+ if (child) {
4598
+ setTransitionHooks(child, hooks);
4599
+ }
4600
+ }
4532
4601
  }
4533
4602
  }
4534
4603
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -4553,6 +4622,18 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4553
4622
  }
4554
4623
  return ret;
4555
4624
  }
4625
+ function getTransitionRoot(vnode) {
4626
+ if (vnode.component) {
4627
+ return getTransitionRoot(vnode.component.subTree);
4628
+ }
4629
+ if (vnode.type === Fragment) {
4630
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
4631
+ return child ? getTransitionRoot(child) : void 0;
4632
+ }
4633
+ if (vnode.type !== Comment) {
4634
+ return vnode;
4635
+ }
4636
+ }
4556
4637
 
4557
4638
  // @__NO_SIDE_EFFECTS__
4558
4639
  function defineComponent(options, extraOptions) {
@@ -5458,14 +5539,22 @@ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
5458
5539
  break;
5459
5540
  }
5460
5541
  }, opts);
5461
- forEach((el) => {
5462
- if (!(el instanceof Element)) return;
5542
+ const observe = (el) => {
5463
5543
  if (elementIsVisibleInViewport(el)) {
5464
5544
  hydrate();
5465
5545
  ob.disconnect();
5466
5546
  return false;
5467
5547
  }
5548
+ if (getComputedStyle(el).display === "contents") {
5549
+ for (let i = 0; i < el.children.length; i++) {
5550
+ if (observe(el.children[i]) === false) return false;
5551
+ }
5552
+ }
5468
5553
  ob.observe(el);
5554
+ };
5555
+ forEach((el) => {
5556
+ if (!(el instanceof Element)) return;
5557
+ return observe(el);
5469
5558
  });
5470
5559
  return () => ob.disconnect();
5471
5560
  };
@@ -5822,6 +5911,7 @@ const KeepAliveImpl = {
5822
5911
  unmount(cached);
5823
5912
  } else if (current) {
5824
5913
  resetShapeFlag(current);
5914
+ if (cached) resetShapeFlag(cached);
5825
5915
  }
5826
5916
  cache.delete(key);
5827
5917
  keys.delete(key);
@@ -6404,9 +6494,11 @@ function renderList(source, renderItem, cache, index) {
6404
6494
  }
6405
6495
  } else if (typeof source === "number") {
6406
6496
  if (!Number.isInteger(source) || source < 0) {
6407
- warn$1(
6408
- `The v-for range expects a positive integer value but got ${source}.`
6409
- );
6497
+ {
6498
+ warn$1(
6499
+ `The v-for range expects a positive integer value but got ${source}.`
6500
+ );
6501
+ }
6410
6502
  ret = [];
6411
6503
  } else {
6412
6504
  ret = new Array(source);
@@ -6725,6 +6817,7 @@ function installCompatInstanceProperties(map) {
6725
6817
  $vnode: (i) => i.vnode,
6726
6818
  // some private properties that are likely accessed...
6727
6819
  _self: (i) => i.proxy,
6820
+ _setupProxy: (i) => i.setupState,
6728
6821
  _uid: (i) => i.uid,
6729
6822
  _data: (i) => i.data,
6730
6823
  _isMounted: (i) => i.isMounted,
@@ -7712,7 +7805,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7712
7805
  return vm;
7713
7806
  }
7714
7807
  }
7715
- Vue.version = `2.6.14-compat:${"3.5.43"}`;
7808
+ Vue.version = `2.6.14-compat:${"3.5.44"}`;
7716
7809
  Vue.config = singletonApp.config;
7717
7810
  Vue.use = (plugin, ...options) => {
7718
7811
  if (plugin && isFunction(plugin.install)) {
@@ -8869,7 +8962,7 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8869
8962
  }
8870
8963
  for (let i = 0; i < nextKeys.length; i++) {
8871
8964
  const key = nextKeys[i];
8872
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8965
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8873
8966
  return true;
8874
8967
  }
8875
8968
  }
@@ -9980,15 +10073,16 @@ function baseCreateRenderer(options, createHydrationFns) {
9980
10073
  for (let i = 0; i < newChildren.length; i++) {
9981
10074
  const oldVNode = oldChildren[i];
9982
10075
  const newVNode = newChildren[i];
10076
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
9983
10077
  const container = (
9984
10078
  // oldVNode may be an errored async setup() component inside Suspense
9985
10079
  // which will not have a mounted element
9986
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
10080
+ oldEl && // - In the case of a Fragment, we need to provide the actual parent
9987
10081
  // of the Fragment itself so it can move its children.
9988
10082
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
9989
10083
  // which also requires the correct parent container
9990
10084
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
9991
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
10085
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldEl) : (
9992
10086
  // In other cases, the parent container is not actually used so we
9993
10087
  // just pass the block element here to avoid a DOM parentNode call.
9994
10088
  fallbackContainer
@@ -10153,7 +10247,12 @@ function baseCreateRenderer(options, createHydrationFns) {
10153
10247
  }
10154
10248
  if (isHmrUpdating) initialVNode.el = null;
10155
10249
  if (instance.asyncDep) {
10156
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
10250
+ parentSuspense && parentSuspense.registerDep(
10251
+ instance,
10252
+ setupRenderEffect,
10253
+ optimized,
10254
+ namespace
10255
+ );
10157
10256
  if (!initialVNode.el) {
10158
10257
  const placeholder = instance.subTree = createVNode(Comment);
10159
10258
  processCommentNode(null, placeholder, container, anchor);
@@ -10183,6 +10282,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10183
10282
  pushWarningContext(n2);
10184
10283
  }
10185
10284
  n2.el = n1.el;
10285
+ n2.placeholder = n1.placeholder;
10186
10286
  updateComponentPreRender(instance, n2, optimized);
10187
10287
  {
10188
10288
  popWarningContext();
@@ -10194,6 +10294,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10194
10294
  }
10195
10295
  } else {
10196
10296
  n2.el = n1.el;
10297
+ n2.placeholder = n1.placeholder;
10197
10298
  instance.vnode = n2;
10198
10299
  }
10199
10300
  };
@@ -10871,18 +10972,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10871
10972
  };
10872
10973
  const remove = (vnode) => {
10873
10974
  const { type, el, anchor, transition } = vnode;
10874
- if (type === Fragment) {
10875
- if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {
10876
- vnode.children.forEach((child) => {
10877
- if (child.type === Comment) {
10878
- hostRemove(child.el);
10879
- } else {
10880
- remove(child);
10881
- }
10882
- });
10883
- } else {
10884
- removeFragment(el, anchor);
10885
- }
10975
+ const isFragment = type === Fragment;
10976
+ if (isFragment && !transition) {
10977
+ removeFragment(el, anchor);
10886
10978
  return;
10887
10979
  }
10888
10980
  if (type === Static) {
@@ -10892,17 +10984,25 @@ function baseCreateRenderer(options, createHydrationFns) {
10892
10984
  }
10893
10985
  return;
10894
10986
  }
10987
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
10895
10988
  const performRemove = () => {
10896
- hostRemove(el);
10989
+ if (isFragment) {
10990
+ if (hostParentNode(el)) {
10991
+ removeFragment(el, anchor);
10992
+ }
10993
+ } else {
10994
+ hostRemove(el);
10995
+ }
10897
10996
  if (transition && !transition.persisted && transition.afterLeave) {
10898
10997
  transition.afterLeave();
10899
10998
  }
10900
10999
  };
10901
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
11000
+ if (leavingNode && leavingNode.shapeFlag & 1 && transition && !transition.persisted) {
10902
11001
  const { leave, delayLeave } = transition;
10903
- const performLeave = () => leave(el, performRemove);
11002
+ const leavingEl = leavingNode.el;
11003
+ const performLeave = () => leave(leavingEl, performRemove);
10904
11004
  if (delayLeave) {
10905
- delayLeave(vnode.el, performRemove, performLeave);
11005
+ delayLeave(leavingEl, performRemove, performLeave);
10906
11006
  } else {
10907
11007
  performLeave();
10908
11008
  }
@@ -10972,32 +11072,26 @@ function baseCreateRenderer(options, createHydrationFns) {
10972
11072
  const teleportEnd = el && el[TeleportEndKey];
10973
11073
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
10974
11074
  };
10975
- let isFlushing = false;
10976
11075
  const render = (vnode, container, namespace) => {
10977
- let instance;
10978
- if (vnode == null) {
10979
- if (container._vnode) {
10980
- unmount(container._vnode, null, null, true);
10981
- instance = container._vnode.component;
11076
+ const minUid = vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid();
11077
+ flushOnAppMount(() => {
11078
+ if (vnode == null) {
11079
+ if (container._vnode) {
11080
+ unmount(container._vnode, null, null, true);
11081
+ }
11082
+ } else {
11083
+ patch(
11084
+ container._vnode || null,
11085
+ vnode,
11086
+ container,
11087
+ null,
11088
+ null,
11089
+ null,
11090
+ namespace
11091
+ );
10982
11092
  }
10983
- } else {
10984
- patch(
10985
- container._vnode || null,
10986
- vnode,
10987
- container,
10988
- null,
10989
- null,
10990
- null,
10991
- namespace
10992
- );
10993
- }
10994
- container._vnode = vnode;
10995
- if (!isFlushing) {
10996
- isFlushing = true;
10997
- flushPreFlushCbs(instance);
10998
- flushPostFlushCbs();
10999
- isFlushing = false;
11000
- }
11093
+ container._vnode = vnode;
11094
+ }, minUid);
11001
11095
  };
11002
11096
  const internals = {
11003
11097
  p: patch,
@@ -11585,7 +11679,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11585
11679
  next() {
11586
11680
  return suspense.activeBranch && next(suspense.activeBranch);
11587
11681
  },
11588
- registerDep(instance, setupRenderEffect, optimized2) {
11682
+ // `namespace` intentionally shadows the boundary's own: the dep must be
11683
+ // mounted with the namespace of the position it was rendered at, which can
11684
+ // differ from the boundary's (e.g. a component nested inside an <svg>).
11685
+ registerDep(instance, setupRenderEffect, optimized2, namespace2) {
11589
11686
  const isInPendingSuspense = !!suspense.pendingBranch;
11590
11687
  if (isInPendingSuspense) {
11591
11688
  suspense.deps++;
@@ -11598,7 +11695,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11598
11695
  return;
11599
11696
  }
11600
11697
  unsetCurrentInstance();
11601
- if (hydratedEl && !instance.scope.active) {
11698
+ if (!instance.scope.active) {
11602
11699
  if (isInPendingSuspense && --suspense.deps === 0) {
11603
11700
  suspense.resolve();
11604
11701
  }
@@ -11625,7 +11722,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11625
11722
  // consider the comment placeholder case.
11626
11723
  hydratedEl ? null : next(instance.subTree),
11627
11724
  suspense,
11628
- namespace,
11725
+ namespace2,
11629
11726
  optimized2
11630
11727
  );
11631
11728
  if (placeholder) {
@@ -12226,6 +12323,9 @@ function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
12226
12323
 
12227
12324
  const emptyAppContext = createAppContext();
12228
12325
  let uid = 0;
12326
+ function getNextUid() {
12327
+ return uid;
12328
+ }
12229
12329
  function createComponentInstance(vnode, parent, suspense) {
12230
12330
  const type = vnode.type;
12231
12331
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
@@ -12910,7 +13010,7 @@ function isMemoSame(cached, memo) {
12910
13010
  return true;
12911
13011
  }
12912
13012
 
12913
- const version = "3.5.43";
13013
+ const version = "3.5.44";
12914
13014
  const warn = warn$1 ;
12915
13015
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12916
13016
  const devtools = devtools$1 ;
@@ -13530,7 +13630,9 @@ function patchStyle(el, prev, next) {
13530
13630
  }
13531
13631
  }
13532
13632
  if (vShowOriginalDisplay in el) {
13533
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
13633
+ if (!isCssString || prev !== next) {
13634
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
13635
+ }
13534
13636
  if (el[vShowHidden]) {
13535
13637
  style.display = "none";
13536
13638
  }
@@ -14056,7 +14158,9 @@ class VueElement extends BaseClass {
14056
14158
  "Custom element style injection is not supported when using shadowRoot: false"
14057
14159
  );
14058
14160
  }
14059
- this._mount(def);
14161
+ if (this._connected) {
14162
+ this._mount(def);
14163
+ }
14060
14164
  };
14061
14165
  const asyncDef = this._def.__asyncLoader;
14062
14166
  if (asyncDef) {
@@ -14426,6 +14530,7 @@ const positionMap = /* @__PURE__ */ new WeakMap();
14426
14530
  const newPositionMap = /* @__PURE__ */ new WeakMap();
14427
14531
  const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
14428
14532
  const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
14533
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
14429
14534
  const decorate = (t) => {
14430
14535
  delete t.props.mode;
14431
14536
  {
@@ -14444,21 +14549,30 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14444
14549
  const state = useTransitionState();
14445
14550
  let prevChildren;
14446
14551
  let children;
14447
- onUpdated(() => {
14448
- if (!prevChildren.length) {
14449
- return;
14552
+ let origins;
14553
+ let moves;
14554
+ const willMove = () => {
14555
+ if (moves === void 0) {
14556
+ moves = prevChildren.length > 0 && hasCSSTransform(
14557
+ prevChildren[0].el,
14558
+ instance.vnode.el,
14559
+ resolveMoveClass(props)
14560
+ );
14450
14561
  }
14451
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
14452
- if (!hasCSSTransform(
14453
- prevChildren[0].el,
14454
- instance.vnode.el,
14455
- moveClass
14456
- )) {
14562
+ return moves;
14563
+ };
14564
+ onUpdated(() => {
14565
+ pendingGroups.delete(instance);
14566
+ if (!willMove()) {
14457
14567
  prevChildren = [];
14568
+ origins = void 0;
14458
14569
  return;
14459
14570
  }
14571
+ const moveClass = resolveMoveClass(props);
14460
14572
  prevChildren.forEach(callPendingCbs);
14461
- prevChildren.forEach(recordPosition);
14573
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
14574
+ origins = void 0;
14575
+ prevChildren.forEach((c) => recordPosition(c, shift));
14462
14576
  const movedChildren = prevChildren.filter(applyTranslation);
14463
14577
  forceReflow(instance.vnode.el);
14464
14578
  movedChildren.forEach((c) => {
@@ -14491,6 +14605,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14491
14605
  tag = "span";
14492
14606
  }
14493
14607
  prevChildren = [];
14608
+ moves = void 0;
14494
14609
  if (children) {
14495
14610
  for (let i = 0; i < children.length; i++) {
14496
14611
  const child = children[i];
@@ -14522,6 +14637,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14522
14637
  warn(`<TransitionGroup> children must be keyed.`);
14523
14638
  }
14524
14639
  }
14640
+ if (prevChildren.length) {
14641
+ origins = getOrigins(instance);
14642
+ pendingGroups.set(instance, willMove);
14643
+ }
14525
14644
  return createVNode(tag, null, children);
14526
14645
  };
14527
14646
  }
@@ -14536,8 +14655,11 @@ function callPendingCbs(c) {
14536
14655
  el[enterCbKey]();
14537
14656
  }
14538
14657
  }
14539
- function recordPosition(c) {
14540
- newPositionMap.set(c, getPosition(c.el));
14658
+ function resolveMoveClass(props) {
14659
+ return props.moveClass || `${props.name || "v"}-move`;
14660
+ }
14661
+ function recordPosition(c, shift) {
14662
+ newPositionMap.set(c, getPosition(c.el, shift));
14541
14663
  }
14542
14664
  function applyTranslation(c) {
14543
14665
  const oldPos = positionMap.get(c);
@@ -14561,13 +14683,41 @@ function applyTranslation(c) {
14561
14683
  return c;
14562
14684
  }
14563
14685
  }
14564
- function getPosition(el) {
14686
+ function getPosition(el, shift) {
14565
14687
  const rect = el.getBoundingClientRect();
14566
14688
  return {
14567
- left: rect.left,
14568
- top: rect.top
14689
+ left: rect.left - (shift ? shift.left : 0),
14690
+ top: rect.top - (shift ? shift.top : 0)
14569
14691
  };
14570
14692
  }
14693
+ function getOrigins(instance) {
14694
+ let origins;
14695
+ for (let group = instance.parent; group; group = group.parent) {
14696
+ const willMove = pendingGroups.get(group);
14697
+ if (willMove) {
14698
+ const item = findItem(group.vnode.el, instance.vnode.el);
14699
+ if (item) {
14700
+ (origins || (origins = [])).push(
14701
+ extend(getPosition(item), { item, willMove })
14702
+ );
14703
+ }
14704
+ }
14705
+ }
14706
+ return origins;
14707
+ }
14708
+ function findItem(root, node) {
14709
+ const container = root.nodeType === 1 ? root : root.parentNode;
14710
+ while (node && node.parentNode !== container) {
14711
+ node = node.parentNode;
14712
+ }
14713
+ if (node && node.nodeType === 1) {
14714
+ return node;
14715
+ }
14716
+ }
14717
+ function getOriginShift(origins, root) {
14718
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
14719
+ return origin && getPosition(origin.item, origin);
14720
+ }
14571
14721
  function hasCSSTransform(el, root, moveClass) {
14572
14722
  const clone = el.cloneNode();
14573
14723
  const _vtc = el[vtcKey];
@@ -16550,7 +16700,8 @@ const errorMessages = {
16550
16700
  [42]: `v-model value must be a valid JavaScript member expression.`,
16551
16701
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
16552
16702
  [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.
16553
- Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
16703
+ Use a v-bind binding combined with a v-on listener that emits update:x event instead.
16704
+ For props declared with defineModel(), assign the returned ref to a variable and use v-model on that variable.`,
16554
16705
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
16555
16706
  [46]: `Error parsing JavaScript expression: `,
16556
16707
  [47]: `<KeepAlive> expects exactly one child component.`,
@@ -19141,7 +19292,7 @@ const transformFor = createStructuralDirectiveTransform(
19141
19292
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
19142
19293
  createCompoundExpression([
19143
19294
  `if (_cached && _cached.el`,
19144
- ...keyExp ? [` && _cached.key === `, keyExp] : [],
19295
+ ...keyExp ? [` && _cached.key === (`, keyExp, `)`] : [],
19145
19296
  ` && ${context.helperString(
19146
19297
  IS_MEMO_SAME
19147
19298
  )}(_cached, _memo)) return _cached`
@@ -21080,7 +21231,8 @@ const transformTransition = (node, context) => {
21080
21231
  if (!node.children.length) {
21081
21232
  return;
21082
21233
  }
21083
- if (hasMultipleChildren(node)) {
21234
+ const multipleChildren = hasMultipleChildren(node);
21235
+ if (multipleChildren) {
21084
21236
  context.onError(
21085
21237
  createDOMCompilerError(
21086
21238
  63,
@@ -21307,7 +21459,8 @@ const validateHtmlNesting = (node, context) => {
21307
21459
 
21308
21460
  const DOMNodeTransforms = [
21309
21461
  transformStyle,
21310
- ...[transformTransition, validateHtmlNesting]
21462
+ transformTransition,
21463
+ ...[validateHtmlNesting]
21311
21464
  ];
21312
21465
  const DOMDirectiveTransforms = {
21313
21466
  cloak: noopDirectiveTransform,