@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.
package/dist/vue.cjs.js CHANGED
@@ -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
  **/
@@ -275,7 +275,7 @@ const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
275
275
  const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
276
276
  const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
277
277
 
278
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
278
+ const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
279
279
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
280
280
  const isBooleanAttr = /* @__PURE__ */ makeMap(
281
281
  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
@@ -1365,19 +1365,41 @@ const arrayInstrumentations = {
1365
1365
  };
1366
1366
  function iterator(self, method, wrapValue) {
1367
1367
  const arr = shallowReadArray(self);
1368
- const iter = arr[method]();
1368
+ const methodFn = arr[method];
1369
+ const iter = methodFn.call(arr);
1369
1370
  if (arr !== self && !isShallow(self)) {
1370
- iter._next = iter.next;
1371
- iter.next = () => {
1372
- const result = iter._next();
1373
- if (!result.done) {
1374
- result.value = wrapValue(result.value);
1371
+ if (iter[Symbol.toStringTag] === "Array Iterator") {
1372
+ const wrapped = Object.create(Object.getPrototypeOf(iter));
1373
+ wrapped.next = () => wrapResult(iter.next(), wrapValue);
1374
+ if (methodFn !== arrayProto[method]) {
1375
+ Object.defineProperties(wrapped, {
1376
+ return: {
1377
+ get() {
1378
+ const fn = iter.return;
1379
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1380
+ }
1381
+ },
1382
+ throw: {
1383
+ get() {
1384
+ const fn = iter.throw;
1385
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1386
+ }
1387
+ }
1388
+ });
1375
1389
  }
1376
- return result;
1377
- };
1390
+ return wrapped;
1391
+ }
1392
+ iter._next = iter.next;
1393
+ iter.next = () => wrapResult(iter._next(), wrapValue);
1378
1394
  }
1379
1395
  return iter;
1380
1396
  }
1397
+ function wrapResult(result, wrapValue) {
1398
+ if (!result.done) {
1399
+ result.value = wrapValue(result.value);
1400
+ }
1401
+ return result;
1402
+ }
1381
1403
  const arrayProto = Array.prototype;
1382
1404
  function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1383
1405
  const arr = shallowReadArray(self);
@@ -1800,6 +1822,8 @@ function createInstrumentationGetter(isReadonly2, shallow) {
1800
1822
  return !isReadonly2;
1801
1823
  } else if (key === "__v_isReadonly") {
1802
1824
  return isReadonly2;
1825
+ } else if (key === "__v_isShallow") {
1826
+ return shallow;
1803
1827
  } else if (key === "__v_raw") {
1804
1828
  return target;
1805
1829
  }
@@ -2345,9 +2369,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2345
2369
  if (once && cb) {
2346
2370
  const _cb = cb;
2347
2371
  cb = (...args) => {
2348
- const res = _cb(...args);
2349
- watchHandle();
2350
- return res;
2372
+ try {
2373
+ return _cb(...args);
2374
+ } finally {
2375
+ watchHandle();
2376
+ }
2351
2377
  };
2352
2378
  }
2353
2379
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -2358,12 +2384,13 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2358
2384
  if (cb) {
2359
2385
  const newValue = effect.run();
2360
2386
  if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2361
- if (cleanup) {
2362
- cleanup();
2363
- }
2364
2387
  const currentWatcher = activeWatcher;
2365
- activeWatcher = effect;
2388
+ pauseTracking();
2366
2389
  try {
2390
+ if (cleanup) {
2391
+ cleanup();
2392
+ }
2393
+ activeWatcher = effect;
2367
2394
  const args = [
2368
2395
  newValue,
2369
2396
  // pass undefined as the old value when it's changed for the first time
@@ -2377,6 +2404,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2377
2404
  );
2378
2405
  } finally {
2379
2406
  activeWatcher = currentWatcher;
2407
+ resetTracking();
2380
2408
  }
2381
2409
  }
2382
2410
  } else {
@@ -2777,21 +2805,21 @@ function queuePostFlushCb(cb) {
2777
2805
  }
2778
2806
  queueFlush();
2779
2807
  }
2780
- function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2808
+ function flushPreFlushCbs(instance, minUid, seen, i = flushIndex + 1) {
2781
2809
  {
2782
2810
  seen = seen || /* @__PURE__ */ new Map();
2783
2811
  }
2784
2812
  for (; i < queue.length; i++) {
2785
2813
  const cb = queue[i];
2786
2814
  if (cb && cb.flags & 2) {
2787
- if (instance && cb.id !== instance.uid) {
2815
+ if (instance && cb.id !== instance.uid || minUid !== void 0 && !(cb.id >= minUid)) {
2788
2816
  continue;
2789
2817
  }
2790
2818
  if (checkRecursiveUpdates(seen, cb)) {
2791
2819
  continue;
2792
2820
  }
2793
2821
  queue.splice(i, 1);
2794
- i--;
2822
+ i = instance ? i - 1 : flushIndex;
2795
2823
  if (cb.flags & 4) {
2796
2824
  cb.flags &= -2;
2797
2825
  }
@@ -2802,12 +2830,23 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2802
2830
  }
2803
2831
  }
2804
2832
  }
2805
- function flushPostFlushCbs(seen) {
2833
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2806
2834
  if (pendingPostFlushCbs.length) {
2807
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
2808
- (a, b) => getId(a) - getId(b)
2809
- );
2810
- pendingPostFlushCbs.length = 0;
2835
+ let cbs = pendingPostFlushCbs;
2836
+ let kept = 0;
2837
+ if (skip) {
2838
+ cbs = [];
2839
+ for (let i = 0; i < pendingPostFlushCbs.length; i++) {
2840
+ const cb = pendingPostFlushCbs[i];
2841
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) {
2842
+ pendingPostFlushCbs[kept++] = cb;
2843
+ } else {
2844
+ cbs.push(cb);
2845
+ }
2846
+ }
2847
+ }
2848
+ const deduped = [...new Set(cbs)].sort((a, b) => getId(a) - getId(b));
2849
+ pendingPostFlushCbs.length = kept;
2811
2850
  if (activePostFlushCbs) {
2812
2851
  for (let i = 0; i < deduped.length; i++) {
2813
2852
  activePostFlushCbs.push(deduped[i]);
@@ -2833,6 +2872,22 @@ function flushPostFlushCbs(seen) {
2833
2872
  postFlushIndex = 0;
2834
2873
  }
2835
2874
  }
2875
+ let isFlushing = false;
2876
+ function flushOnAppMount(fn, minUid) {
2877
+ if (isFlushing) {
2878
+ fn();
2879
+ return;
2880
+ }
2881
+ const queued = minUid === void 0 ? void 0 : new Set(pendingPostFlushCbs);
2882
+ fn();
2883
+ isFlushing = true;
2884
+ try {
2885
+ flushPreFlushCbs(void 0, minUid);
2886
+ flushPostFlushCbs(void 0, queued, minUid);
2887
+ } finally {
2888
+ isFlushing = false;
2889
+ }
2890
+ }
2836
2891
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2837
2892
  function flushJobs(seen) {
2838
2893
  {
@@ -3803,6 +3858,7 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
3803
3858
  let isPre = false;
3804
3859
  if (flush === "post") {
3805
3860
  baseWatchOptions.scheduler = (job) => {
3861
+ job.i = instance;
3806
3862
  queuePostRenderEffect(job, instance && instance.suspense);
3807
3863
  };
3808
3864
  } else if (flush !== "sync") {
@@ -4104,7 +4160,11 @@ const TeleportImpl = {
4104
4160
  };
4105
4161
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
4106
4162
  if (moveType === 0) {
4163
+ if (vnode.targetStart) {
4164
+ insert(vnode.targetStart, container, parentAnchor);
4165
+ }
4107
4166
  insert(vnode.targetAnchor, container, parentAnchor);
4167
+ parentAnchor = vnode.targetAnchor;
4108
4168
  }
4109
4169
  const { el, anchor, shapeFlag, children, props } = vnode;
4110
4170
  const isReorder = moveType === 2;
@@ -4273,10 +4333,6 @@ const BaseTransitionPropsValidators = {
4273
4333
  onAfterAppear: TransitionHookValidator,
4274
4334
  onAppearCancelled: TransitionHookValidator
4275
4335
  };
4276
- const recursiveGetSubtree = (instance) => {
4277
- const subTree = instance.subTree;
4278
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
4279
- };
4280
4336
  const BaseTransitionImpl = {
4281
4337
  name: `BaseTransition`,
4282
4338
  props: BaseTransitionPropsValidators,
@@ -4317,7 +4373,7 @@ const BaseTransitionImpl = {
4317
4373
  setTransitionHooks(innerChild, enterHooks);
4318
4374
  }
4319
4375
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
4320
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
4376
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && getTransitionRoot(instance.subTree)) {
4321
4377
  let leavingHooks = resolveTransitionHooks(
4322
4378
  oldInnerChild,
4323
4379
  rawProps,
@@ -4453,8 +4509,15 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4453
4509
  );
4454
4510
  }
4455
4511
  const leavingVNode = leavingVNodesCache[key];
4456
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4457
- leavingVNode.el[leaveCbKey]();
4512
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
4513
+ let leavingCb = leavingVNode.el[leaveCbKey];
4514
+ if (!leavingCb) {
4515
+ const leavingRoot = getTransitionRoot(leavingVNode);
4516
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
4517
+ }
4518
+ if (leavingCb) {
4519
+ leavingCb();
4520
+ }
4458
4521
  }
4459
4522
  callHook(hook, [el]);
4460
4523
  },
@@ -4582,6 +4645,12 @@ function setTransitionHooks(vnode, hooks) {
4582
4645
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4583
4646
  } else {
4584
4647
  vnode.transition = hooks;
4648
+ if (vnode.type === Fragment && isArray(vnode.children)) {
4649
+ const child = filterSingleRoot(vnode.children, false);
4650
+ if (child) {
4651
+ setTransitionHooks(child, hooks);
4652
+ }
4653
+ }
4585
4654
  }
4586
4655
  }
4587
4656
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -4606,6 +4675,18 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4606
4675
  }
4607
4676
  return ret;
4608
4677
  }
4678
+ function getTransitionRoot(vnode) {
4679
+ if (vnode.component) {
4680
+ return getTransitionRoot(vnode.component.subTree);
4681
+ }
4682
+ if (vnode.type === Fragment) {
4683
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
4684
+ return child ? getTransitionRoot(child) : void 0;
4685
+ }
4686
+ if (vnode.type !== Comment) {
4687
+ return vnode;
4688
+ }
4689
+ }
4609
4690
 
4610
4691
  // @__NO_SIDE_EFFECTS__
4611
4692
  function defineComponent(options, extraOptions) {
@@ -5511,14 +5592,22 @@ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
5511
5592
  break;
5512
5593
  }
5513
5594
  }, opts);
5514
- forEach((el) => {
5515
- if (!(el instanceof Element)) return;
5595
+ const observe = (el) => {
5516
5596
  if (elementIsVisibleInViewport(el)) {
5517
5597
  hydrate();
5518
5598
  ob.disconnect();
5519
5599
  return false;
5520
5600
  }
5601
+ if (getComputedStyle(el).display === "contents") {
5602
+ for (let i = 0; i < el.children.length; i++) {
5603
+ if (observe(el.children[i]) === false) return false;
5604
+ }
5605
+ }
5521
5606
  ob.observe(el);
5607
+ };
5608
+ forEach((el) => {
5609
+ if (!(el instanceof Element)) return;
5610
+ return observe(el);
5522
5611
  });
5523
5612
  return () => ob.disconnect();
5524
5613
  };
@@ -5872,6 +5961,7 @@ const KeepAliveImpl = {
5872
5961
  unmount(cached);
5873
5962
  } else if (current) {
5874
5963
  resetShapeFlag(current);
5964
+ if (cached) resetShapeFlag(cached);
5875
5965
  }
5876
5966
  cache.delete(key);
5877
5967
  keys.delete(key);
@@ -6454,9 +6544,11 @@ function renderList(source, renderItem, cache, index) {
6454
6544
  }
6455
6545
  } else if (typeof source === "number") {
6456
6546
  if (!Number.isInteger(source) || source < 0) {
6457
- warn$1(
6458
- `The v-for range expects a positive integer value but got ${source}.`
6459
- );
6547
+ {
6548
+ warn$1(
6549
+ `The v-for range expects a positive integer value but got ${source}.`
6550
+ );
6551
+ }
6460
6552
  ret = [];
6461
6553
  } else {
6462
6554
  ret = new Array(source);
@@ -6775,6 +6867,7 @@ function installCompatInstanceProperties(map) {
6775
6867
  $vnode: (i) => i.vnode,
6776
6868
  // some private properties that are likely accessed...
6777
6869
  _self: (i) => i.proxy,
6870
+ _setupProxy: (i) => i.setupState,
6778
6871
  _uid: (i) => i.uid,
6779
6872
  _data: (i) => i.data,
6780
6873
  _isMounted: (i) => i.isMounted,
@@ -7762,7 +7855,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7762
7855
  return vm;
7763
7856
  }
7764
7857
  }
7765
- Vue.version = `2.6.14-compat:${"3.5.43"}`;
7858
+ Vue.version = `2.6.14-compat:${"3.5.44"}`;
7766
7859
  Vue.config = singletonApp.config;
7767
7860
  Vue.use = (plugin, ...options) => {
7768
7861
  if (plugin && isFunction(plugin.install)) {
@@ -8919,7 +9012,7 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8919
9012
  }
8920
9013
  for (let i = 0; i < nextKeys.length; i++) {
8921
9014
  const key = nextKeys[i];
8922
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
9015
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8923
9016
  return true;
8924
9017
  }
8925
9018
  }
@@ -10030,15 +10123,16 @@ function baseCreateRenderer(options, createHydrationFns) {
10030
10123
  for (let i = 0; i < newChildren.length; i++) {
10031
10124
  const oldVNode = oldChildren[i];
10032
10125
  const newVNode = newChildren[i];
10126
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
10033
10127
  const container = (
10034
10128
  // oldVNode may be an errored async setup() component inside Suspense
10035
10129
  // which will not have a mounted element
10036
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
10130
+ oldEl && // - In the case of a Fragment, we need to provide the actual parent
10037
10131
  // of the Fragment itself so it can move its children.
10038
10132
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
10039
10133
  // which also requires the correct parent container
10040
10134
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
10041
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
10135
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldEl) : (
10042
10136
  // In other cases, the parent container is not actually used so we
10043
10137
  // just pass the block element here to avoid a DOM parentNode call.
10044
10138
  fallbackContainer
@@ -10203,7 +10297,12 @@ function baseCreateRenderer(options, createHydrationFns) {
10203
10297
  }
10204
10298
  if (isHmrUpdating) initialVNode.el = null;
10205
10299
  if (instance.asyncDep) {
10206
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
10300
+ parentSuspense && parentSuspense.registerDep(
10301
+ instance,
10302
+ setupRenderEffect,
10303
+ optimized,
10304
+ namespace
10305
+ );
10207
10306
  if (!initialVNode.el) {
10208
10307
  const placeholder = instance.subTree = createVNode(Comment);
10209
10308
  processCommentNode(null, placeholder, container, anchor);
@@ -10233,6 +10332,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10233
10332
  pushWarningContext(n2);
10234
10333
  }
10235
10334
  n2.el = n1.el;
10335
+ n2.placeholder = n1.placeholder;
10236
10336
  updateComponentPreRender(instance, n2, optimized);
10237
10337
  {
10238
10338
  popWarningContext();
@@ -10244,6 +10344,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10244
10344
  }
10245
10345
  } else {
10246
10346
  n2.el = n1.el;
10347
+ n2.placeholder = n1.placeholder;
10247
10348
  instance.vnode = n2;
10248
10349
  }
10249
10350
  };
@@ -10921,18 +11022,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10921
11022
  };
10922
11023
  const remove = (vnode) => {
10923
11024
  const { type, el, anchor, transition } = vnode;
10924
- if (type === Fragment) {
10925
- if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {
10926
- vnode.children.forEach((child) => {
10927
- if (child.type === Comment) {
10928
- hostRemove(child.el);
10929
- } else {
10930
- remove(child);
10931
- }
10932
- });
10933
- } else {
10934
- removeFragment(el, anchor);
10935
- }
11025
+ const isFragment = type === Fragment;
11026
+ if (isFragment && !transition) {
11027
+ removeFragment(el, anchor);
10936
11028
  return;
10937
11029
  }
10938
11030
  if (type === Static) {
@@ -10942,17 +11034,25 @@ function baseCreateRenderer(options, createHydrationFns) {
10942
11034
  }
10943
11035
  return;
10944
11036
  }
11037
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
10945
11038
  const performRemove = () => {
10946
- hostRemove(el);
11039
+ if (isFragment) {
11040
+ if (hostParentNode(el)) {
11041
+ removeFragment(el, anchor);
11042
+ }
11043
+ } else {
11044
+ hostRemove(el);
11045
+ }
10947
11046
  if (transition && !transition.persisted && transition.afterLeave) {
10948
11047
  transition.afterLeave();
10949
11048
  }
10950
11049
  };
10951
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
11050
+ if (leavingNode && leavingNode.shapeFlag & 1 && transition && !transition.persisted) {
10952
11051
  const { leave, delayLeave } = transition;
10953
- const performLeave = () => leave(el, performRemove);
11052
+ const leavingEl = leavingNode.el;
11053
+ const performLeave = () => leave(leavingEl, performRemove);
10954
11054
  if (delayLeave) {
10955
- delayLeave(vnode.el, performRemove, performLeave);
11055
+ delayLeave(leavingEl, performRemove, performLeave);
10956
11056
  } else {
10957
11057
  performLeave();
10958
11058
  }
@@ -11022,32 +11122,26 @@ function baseCreateRenderer(options, createHydrationFns) {
11022
11122
  const teleportEnd = el && el[TeleportEndKey];
11023
11123
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
11024
11124
  };
11025
- let isFlushing = false;
11026
11125
  const render = (vnode, container, namespace) => {
11027
- let instance;
11028
- if (vnode == null) {
11029
- if (container._vnode) {
11030
- unmount(container._vnode, null, null, true);
11031
- instance = container._vnode.component;
11126
+ const minUid = vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid();
11127
+ flushOnAppMount(() => {
11128
+ if (vnode == null) {
11129
+ if (container._vnode) {
11130
+ unmount(container._vnode, null, null, true);
11131
+ }
11132
+ } else {
11133
+ patch(
11134
+ container._vnode || null,
11135
+ vnode,
11136
+ container,
11137
+ null,
11138
+ null,
11139
+ null,
11140
+ namespace
11141
+ );
11032
11142
  }
11033
- } else {
11034
- patch(
11035
- container._vnode || null,
11036
- vnode,
11037
- container,
11038
- null,
11039
- null,
11040
- null,
11041
- namespace
11042
- );
11043
- }
11044
- container._vnode = vnode;
11045
- if (!isFlushing) {
11046
- isFlushing = true;
11047
- flushPreFlushCbs(instance);
11048
- flushPostFlushCbs();
11049
- isFlushing = false;
11050
- }
11143
+ container._vnode = vnode;
11144
+ }, minUid);
11051
11145
  };
11052
11146
  const internals = {
11053
11147
  p: patch,
@@ -11635,7 +11729,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11635
11729
  next() {
11636
11730
  return suspense.activeBranch && next(suspense.activeBranch);
11637
11731
  },
11638
- registerDep(instance, setupRenderEffect, optimized2) {
11732
+ // `namespace` intentionally shadows the boundary's own: the dep must be
11733
+ // mounted with the namespace of the position it was rendered at, which can
11734
+ // differ from the boundary's (e.g. a component nested inside an <svg>).
11735
+ registerDep(instance, setupRenderEffect, optimized2, namespace2) {
11639
11736
  const isInPendingSuspense = !!suspense.pendingBranch;
11640
11737
  if (isInPendingSuspense) {
11641
11738
  suspense.deps++;
@@ -11648,7 +11745,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11648
11745
  return;
11649
11746
  }
11650
11747
  unsetCurrentInstance();
11651
- if (hydratedEl && !instance.scope.active) {
11748
+ if (!instance.scope.active) {
11652
11749
  if (isInPendingSuspense && --suspense.deps === 0) {
11653
11750
  suspense.resolve();
11654
11751
  }
@@ -11675,7 +11772,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11675
11772
  // consider the comment placeholder case.
11676
11773
  hydratedEl ? null : next(instance.subTree),
11677
11774
  suspense,
11678
- namespace,
11775
+ namespace2,
11679
11776
  optimized2
11680
11777
  );
11681
11778
  if (placeholder) {
@@ -12276,6 +12373,9 @@ function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
12276
12373
 
12277
12374
  const emptyAppContext = createAppContext();
12278
12375
  let uid = 0;
12376
+ function getNextUid() {
12377
+ return uid;
12378
+ }
12279
12379
  function createComponentInstance(vnode, parent, suspense) {
12280
12380
  const type = vnode.type;
12281
12381
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
@@ -12960,7 +13060,7 @@ function isMemoSame(cached, memo) {
12960
13060
  return true;
12961
13061
  }
12962
13062
 
12963
- const version = "3.5.43";
13063
+ const version = "3.5.44";
12964
13064
  const warn = warn$1 ;
12965
13065
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12966
13066
  const devtools = devtools$1 ;
@@ -13512,7 +13612,9 @@ function patchStyle(el, prev, next) {
13512
13612
  }
13513
13613
  }
13514
13614
  if (vShowOriginalDisplay in el) {
13515
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
13615
+ if (!isCssString || prev !== next) {
13616
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
13617
+ }
13516
13618
  if (el[vShowHidden]) {
13517
13619
  style.display = "none";
13518
13620
  }
@@ -14038,7 +14140,9 @@ class VueElement extends BaseClass {
14038
14140
  "Custom element style injection is not supported when using shadowRoot: false"
14039
14141
  );
14040
14142
  }
14041
- this._mount(def);
14143
+ if (this._connected) {
14144
+ this._mount(def);
14145
+ }
14042
14146
  };
14043
14147
  const asyncDef = this._def.__asyncLoader;
14044
14148
  if (asyncDef) {
@@ -14408,6 +14512,7 @@ const positionMap = /* @__PURE__ */ new WeakMap();
14408
14512
  const newPositionMap = /* @__PURE__ */ new WeakMap();
14409
14513
  const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
14410
14514
  const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
14515
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
14411
14516
  const decorate = (t) => {
14412
14517
  delete t.props.mode;
14413
14518
  {
@@ -14426,21 +14531,30 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14426
14531
  const state = useTransitionState();
14427
14532
  let prevChildren;
14428
14533
  let children;
14429
- onUpdated(() => {
14430
- if (!prevChildren.length) {
14431
- return;
14534
+ let origins;
14535
+ let moves;
14536
+ const willMove = () => {
14537
+ if (moves === void 0) {
14538
+ moves = prevChildren.length > 0 && hasCSSTransform(
14539
+ prevChildren[0].el,
14540
+ instance.vnode.el,
14541
+ resolveMoveClass(props)
14542
+ );
14432
14543
  }
14433
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
14434
- if (!hasCSSTransform(
14435
- prevChildren[0].el,
14436
- instance.vnode.el,
14437
- moveClass
14438
- )) {
14544
+ return moves;
14545
+ };
14546
+ onUpdated(() => {
14547
+ pendingGroups.delete(instance);
14548
+ if (!willMove()) {
14439
14549
  prevChildren = [];
14550
+ origins = void 0;
14440
14551
  return;
14441
14552
  }
14553
+ const moveClass = resolveMoveClass(props);
14442
14554
  prevChildren.forEach(callPendingCbs);
14443
- prevChildren.forEach(recordPosition);
14555
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
14556
+ origins = void 0;
14557
+ prevChildren.forEach((c) => recordPosition(c, shift));
14444
14558
  const movedChildren = prevChildren.filter(applyTranslation);
14445
14559
  forceReflow(instance.vnode.el);
14446
14560
  movedChildren.forEach((c) => {
@@ -14473,6 +14587,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14473
14587
  tag = "span";
14474
14588
  }
14475
14589
  prevChildren = [];
14590
+ moves = void 0;
14476
14591
  if (children) {
14477
14592
  for (let i = 0; i < children.length; i++) {
14478
14593
  const child = children[i];
@@ -14504,6 +14619,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14504
14619
  warn(`<TransitionGroup> children must be keyed.`);
14505
14620
  }
14506
14621
  }
14622
+ if (prevChildren.length) {
14623
+ origins = getOrigins(instance);
14624
+ pendingGroups.set(instance, willMove);
14625
+ }
14507
14626
  return createVNode(tag, null, children);
14508
14627
  };
14509
14628
  }
@@ -14518,8 +14637,11 @@ function callPendingCbs(c) {
14518
14637
  el[enterCbKey]();
14519
14638
  }
14520
14639
  }
14521
- function recordPosition(c) {
14522
- newPositionMap.set(c, getPosition(c.el));
14640
+ function resolveMoveClass(props) {
14641
+ return props.moveClass || `${props.name || "v"}-move`;
14642
+ }
14643
+ function recordPosition(c, shift) {
14644
+ newPositionMap.set(c, getPosition(c.el, shift));
14523
14645
  }
14524
14646
  function applyTranslation(c) {
14525
14647
  const oldPos = positionMap.get(c);
@@ -14543,13 +14665,41 @@ function applyTranslation(c) {
14543
14665
  return c;
14544
14666
  }
14545
14667
  }
14546
- function getPosition(el) {
14668
+ function getPosition(el, shift) {
14547
14669
  const rect = el.getBoundingClientRect();
14548
14670
  return {
14549
- left: rect.left,
14550
- top: rect.top
14671
+ left: rect.left - (shift ? shift.left : 0),
14672
+ top: rect.top - (shift ? shift.top : 0)
14551
14673
  };
14552
14674
  }
14675
+ function getOrigins(instance) {
14676
+ let origins;
14677
+ for (let group = instance.parent; group; group = group.parent) {
14678
+ const willMove = pendingGroups.get(group);
14679
+ if (willMove) {
14680
+ const item = findItem(group.vnode.el, instance.vnode.el);
14681
+ if (item) {
14682
+ (origins || (origins = [])).push(
14683
+ extend(getPosition(item), { item, willMove })
14684
+ );
14685
+ }
14686
+ }
14687
+ }
14688
+ return origins;
14689
+ }
14690
+ function findItem(root, node) {
14691
+ const container = root.nodeType === 1 ? root : root.parentNode;
14692
+ while (node && node.parentNode !== container) {
14693
+ node = node.parentNode;
14694
+ }
14695
+ if (node && node.nodeType === 1) {
14696
+ return node;
14697
+ }
14698
+ }
14699
+ function getOriginShift(origins, root) {
14700
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
14701
+ return origin && getPosition(origin.item, origin);
14702
+ }
14553
14703
  function hasCSSTransform(el, root, moveClass) {
14554
14704
  const clone = el.cloneNode();
14555
14705
  const _vtc = el[vtcKey];
@@ -16579,7 +16729,8 @@ const errorMessages = {
16579
16729
  [42]: `v-model value must be a valid JavaScript member expression.`,
16580
16730
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
16581
16731
  [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.
16582
- Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
16732
+ Use a v-bind binding combined with a v-on listener that emits update:x event instead.
16733
+ For props declared with defineModel(), assign the returned ref to a variable and use v-model on that variable.`,
16583
16734
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
16584
16735
  [46]: `Error parsing JavaScript expression: `,
16585
16736
  [47]: `<KeepAlive> expects exactly one child component.`,
@@ -20012,7 +20163,7 @@ const transformFor = createStructuralDirectiveTransform(
20012
20163
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
20013
20164
  createCompoundExpression([
20014
20165
  `if (_cached && _cached.el`,
20015
- ...keyExp ? [` && _cached.key === `, keyExp] : [],
20166
+ ...keyExp ? [` && _cached.key === (`, keyExp, `)`] : [],
20016
20167
  ` && ${context.helperString(
20017
20168
  IS_MEMO_SAME
20018
20169
  )}(_cached, _memo)) return _cached`
@@ -22113,7 +22264,8 @@ const transformTransition = (node, context) => {
22113
22264
  if (!node.children.length) {
22114
22265
  return;
22115
22266
  }
22116
- if (hasMultipleChildren(node)) {
22267
+ const multipleChildren = hasMultipleChildren(node);
22268
+ if (multipleChildren) {
22117
22269
  context.onError(
22118
22270
  createDOMCompilerError(
22119
22271
  63,
@@ -22308,8 +22460,9 @@ function stringifyNode(node, context) {
22308
22460
  }
22309
22461
  }
22310
22462
  function stringifyElement(node, context) {
22463
+ var _a;
22311
22464
  let res = `<${node.tag}`;
22312
- let innerHTML = "";
22465
+ let innerHTML = void 0;
22313
22466
  for (let i = 0; i < node.props.length; i++) {
22314
22467
  const p = node.props[i];
22315
22468
  if (p.type === 6) {
@@ -22343,7 +22496,7 @@ function stringifyElement(node, context) {
22343
22496
  )}"`;
22344
22497
  }
22345
22498
  } else if (p.name === "html") {
22346
- innerHTML = evaluateConstant(p.exp);
22499
+ innerHTML = (_a = evaluateConstant(p.exp)) != null ? _a : "";
22347
22500
  } else if (p.name === "text") {
22348
22501
  innerHTML = escapeHtml(
22349
22502
  toDisplayString(evaluateConstant(p.exp))
@@ -22355,7 +22508,7 @@ function stringifyElement(node, context) {
22355
22508
  res += ` ${context.scopeId}`;
22356
22509
  }
22357
22510
  res += `>`;
22358
- if (innerHTML) {
22511
+ if (innerHTML !== void 0) {
22359
22512
  res += innerHTML;
22360
22513
  } else {
22361
22514
  for (let i = 0; i < node.children.length; i++) {
@@ -22577,7 +22730,8 @@ const validateHtmlNesting = (node, context) => {
22577
22730
 
22578
22731
  const DOMNodeTransforms = [
22579
22732
  transformStyle,
22580
- ...[transformTransition, validateHtmlNesting]
22733
+ transformTransition,
22734
+ ...[validateHtmlNesting]
22581
22735
  ];
22582
22736
  const DOMDirectiveTransforms = {
22583
22737
  cloak: noopDirectiveTransform,