@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`
@@ -1316,19 +1316,41 @@ const arrayInstrumentations = {
1316
1316
  };
1317
1317
  function iterator(self, method, wrapValue) {
1318
1318
  const arr = shallowReadArray(self);
1319
- const iter = arr[method]();
1319
+ const methodFn = arr[method];
1320
+ const iter = methodFn.call(arr);
1320
1321
  if (arr !== self && !isShallow(self)) {
1321
- iter._next = iter.next;
1322
- iter.next = () => {
1323
- const result = iter._next();
1324
- if (!result.done) {
1325
- result.value = wrapValue(result.value);
1322
+ if (iter[Symbol.toStringTag] === "Array Iterator") {
1323
+ const wrapped = Object.create(Object.getPrototypeOf(iter));
1324
+ wrapped.next = () => wrapResult(iter.next(), wrapValue);
1325
+ if (methodFn !== arrayProto[method]) {
1326
+ Object.defineProperties(wrapped, {
1327
+ return: {
1328
+ get() {
1329
+ const fn = iter.return;
1330
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1331
+ }
1332
+ },
1333
+ throw: {
1334
+ get() {
1335
+ const fn = iter.throw;
1336
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1337
+ }
1338
+ }
1339
+ });
1326
1340
  }
1327
- return result;
1328
- };
1341
+ return wrapped;
1342
+ }
1343
+ iter._next = iter.next;
1344
+ iter.next = () => wrapResult(iter._next(), wrapValue);
1329
1345
  }
1330
1346
  return iter;
1331
1347
  }
1348
+ function wrapResult(result, wrapValue) {
1349
+ if (!result.done) {
1350
+ result.value = wrapValue(result.value);
1351
+ }
1352
+ return result;
1353
+ }
1332
1354
  const arrayProto = Array.prototype;
1333
1355
  function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1334
1356
  const arr = shallowReadArray(self);
@@ -1751,6 +1773,8 @@ function createInstrumentationGetter(isReadonly2, shallow) {
1751
1773
  return !isReadonly2;
1752
1774
  } else if (key === "__v_isReadonly") {
1753
1775
  return isReadonly2;
1776
+ } else if (key === "__v_isShallow") {
1777
+ return shallow;
1754
1778
  } else if (key === "__v_raw") {
1755
1779
  return target;
1756
1780
  }
@@ -2302,9 +2326,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2302
2326
  if (once && cb) {
2303
2327
  const _cb = cb;
2304
2328
  cb = (...args) => {
2305
- const res = _cb(...args);
2306
- watchHandle();
2307
- return res;
2329
+ try {
2330
+ return _cb(...args);
2331
+ } finally {
2332
+ watchHandle();
2333
+ }
2308
2334
  };
2309
2335
  }
2310
2336
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -2315,12 +2341,13 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2315
2341
  if (cb) {
2316
2342
  const newValue = effect.run();
2317
2343
  if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2318
- if (cleanup) {
2319
- cleanup();
2320
- }
2321
2344
  const currentWatcher = activeWatcher;
2322
- activeWatcher = effect;
2345
+ pauseTracking();
2323
2346
  try {
2347
+ if (cleanup) {
2348
+ cleanup();
2349
+ }
2350
+ activeWatcher = effect;
2324
2351
  const args = [
2325
2352
  newValue,
2326
2353
  // pass undefined as the old value when it's changed for the first time
@@ -2334,6 +2361,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2334
2361
  );
2335
2362
  } finally {
2336
2363
  activeWatcher = currentWatcher;
2364
+ resetTracking();
2337
2365
  }
2338
2366
  }
2339
2367
  } else {
@@ -2739,21 +2767,21 @@ function queuePostFlushCb(cb) {
2739
2767
  }
2740
2768
  queueFlush();
2741
2769
  }
2742
- function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2770
+ function flushPreFlushCbs(instance, minUid, seen, i = flushIndex + 1) {
2743
2771
  if (!!(process.env.NODE_ENV !== "production")) {
2744
2772
  seen = seen || /* @__PURE__ */ new Map();
2745
2773
  }
2746
2774
  for (; i < queue.length; i++) {
2747
2775
  const cb = queue[i];
2748
2776
  if (cb && cb.flags & 2) {
2749
- if (instance && cb.id !== instance.uid) {
2777
+ if (instance && cb.id !== instance.uid || minUid !== void 0 && !(cb.id >= minUid)) {
2750
2778
  continue;
2751
2779
  }
2752
2780
  if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) {
2753
2781
  continue;
2754
2782
  }
2755
2783
  queue.splice(i, 1);
2756
- i--;
2784
+ i = instance ? i - 1 : flushIndex;
2757
2785
  if (cb.flags & 4) {
2758
2786
  cb.flags &= -2;
2759
2787
  }
@@ -2764,12 +2792,23 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2764
2792
  }
2765
2793
  }
2766
2794
  }
2767
- function flushPostFlushCbs(seen) {
2795
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2768
2796
  if (pendingPostFlushCbs.length) {
2769
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
2770
- (a, b) => getId(a) - getId(b)
2771
- );
2772
- pendingPostFlushCbs.length = 0;
2797
+ let cbs = pendingPostFlushCbs;
2798
+ let kept = 0;
2799
+ if (skip) {
2800
+ cbs = [];
2801
+ for (let i = 0; i < pendingPostFlushCbs.length; i++) {
2802
+ const cb = pendingPostFlushCbs[i];
2803
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) {
2804
+ pendingPostFlushCbs[kept++] = cb;
2805
+ } else {
2806
+ cbs.push(cb);
2807
+ }
2808
+ }
2809
+ }
2810
+ const deduped = [...new Set(cbs)].sort((a, b) => getId(a) - getId(b));
2811
+ pendingPostFlushCbs.length = kept;
2773
2812
  if (activePostFlushCbs) {
2774
2813
  for (let i = 0; i < deduped.length; i++) {
2775
2814
  activePostFlushCbs.push(deduped[i]);
@@ -2795,6 +2834,22 @@ function flushPostFlushCbs(seen) {
2795
2834
  postFlushIndex = 0;
2796
2835
  }
2797
2836
  }
2837
+ let isFlushing = false;
2838
+ function flushOnAppMount(fn, minUid) {
2839
+ if (isFlushing) {
2840
+ fn();
2841
+ return;
2842
+ }
2843
+ const queued = minUid === void 0 ? void 0 : new Set(pendingPostFlushCbs);
2844
+ fn();
2845
+ isFlushing = true;
2846
+ try {
2847
+ flushPreFlushCbs(void 0, minUid);
2848
+ flushPostFlushCbs(void 0, queued, minUid);
2849
+ } finally {
2850
+ isFlushing = false;
2851
+ }
2852
+ }
2798
2853
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2799
2854
  function flushJobs(seen) {
2800
2855
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -3768,6 +3823,7 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
3768
3823
  let isPre = false;
3769
3824
  if (flush === "post") {
3770
3825
  baseWatchOptions.scheduler = (job) => {
3826
+ job.i = instance;
3771
3827
  queuePostRenderEffect(job, instance && instance.suspense);
3772
3828
  };
3773
3829
  } else if (flush !== "sync") {
@@ -4069,7 +4125,11 @@ const TeleportImpl = {
4069
4125
  };
4070
4126
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
4071
4127
  if (moveType === 0) {
4128
+ if (vnode.targetStart) {
4129
+ insert(vnode.targetStart, container, parentAnchor);
4130
+ }
4072
4131
  insert(vnode.targetAnchor, container, parentAnchor);
4132
+ parentAnchor = vnode.targetAnchor;
4073
4133
  }
4074
4134
  const { el, anchor, shapeFlag, children, props } = vnode;
4075
4135
  const isReorder = moveType === 2;
@@ -4238,10 +4298,6 @@ const BaseTransitionPropsValidators = {
4238
4298
  onAfterAppear: TransitionHookValidator,
4239
4299
  onAppearCancelled: TransitionHookValidator
4240
4300
  };
4241
- const recursiveGetSubtree = (instance) => {
4242
- const subTree = instance.subTree;
4243
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
4244
- };
4245
4301
  const BaseTransitionImpl = {
4246
4302
  name: `BaseTransition`,
4247
4303
  props: BaseTransitionPropsValidators,
@@ -4282,7 +4338,7 @@ const BaseTransitionImpl = {
4282
4338
  setTransitionHooks(innerChild, enterHooks);
4283
4339
  }
4284
4340
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
4285
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
4341
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && getTransitionRoot(instance.subTree)) {
4286
4342
  let leavingHooks = resolveTransitionHooks(
4287
4343
  oldInnerChild,
4288
4344
  rawProps,
@@ -4419,8 +4475,15 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4419
4475
  );
4420
4476
  }
4421
4477
  const leavingVNode = leavingVNodesCache[key];
4422
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4423
- leavingVNode.el[leaveCbKey]();
4478
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
4479
+ let leavingCb = leavingVNode.el[leaveCbKey];
4480
+ if (!leavingCb) {
4481
+ const leavingRoot = getTransitionRoot(leavingVNode);
4482
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
4483
+ }
4484
+ if (leavingCb) {
4485
+ leavingCb();
4486
+ }
4424
4487
  }
4425
4488
  callHook(hook, [el]);
4426
4489
  },
@@ -4548,6 +4611,12 @@ function setTransitionHooks(vnode, hooks) {
4548
4611
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4549
4612
  } else {
4550
4613
  vnode.transition = hooks;
4614
+ if (vnode.type === Fragment && isArray(vnode.children)) {
4615
+ const child = filterSingleRoot(vnode.children, false);
4616
+ if (child) {
4617
+ setTransitionHooks(child, hooks);
4618
+ }
4619
+ }
4551
4620
  }
4552
4621
  }
4553
4622
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -4572,6 +4641,18 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4572
4641
  }
4573
4642
  return ret;
4574
4643
  }
4644
+ function getTransitionRoot(vnode) {
4645
+ if (vnode.component) {
4646
+ return getTransitionRoot(vnode.component.subTree);
4647
+ }
4648
+ if (vnode.type === Fragment) {
4649
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
4650
+ return child ? getTransitionRoot(child) : void 0;
4651
+ }
4652
+ if (vnode.type !== Comment) {
4653
+ return vnode;
4654
+ }
4655
+ }
4575
4656
 
4576
4657
  // @__NO_SIDE_EFFECTS__
4577
4658
  function defineComponent(options, extraOptions) {
@@ -5489,14 +5570,22 @@ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
5489
5570
  break;
5490
5571
  }
5491
5572
  }, opts);
5492
- forEach((el) => {
5493
- if (!(el instanceof Element)) return;
5573
+ const observe = (el) => {
5494
5574
  if (elementIsVisibleInViewport(el)) {
5495
5575
  hydrate();
5496
5576
  ob.disconnect();
5497
5577
  return false;
5498
5578
  }
5579
+ if (getComputedStyle(el).display === "contents") {
5580
+ for (let i = 0; i < el.children.length; i++) {
5581
+ if (observe(el.children[i]) === false) return false;
5582
+ }
5583
+ }
5499
5584
  ob.observe(el);
5585
+ };
5586
+ forEach((el) => {
5587
+ if (!(el instanceof Element)) return;
5588
+ return observe(el);
5500
5589
  });
5501
5590
  return () => ob.disconnect();
5502
5591
  };
@@ -5853,6 +5942,7 @@ const KeepAliveImpl = {
5853
5942
  unmount(cached);
5854
5943
  } else if (current) {
5855
5944
  resetShapeFlag(current);
5945
+ if (cached) resetShapeFlag(cached);
5856
5946
  }
5857
5947
  cache.delete(key);
5858
5948
  keys.delete(key);
@@ -6434,10 +6524,12 @@ function renderList(source, renderItem, cache, index) {
6434
6524
  );
6435
6525
  }
6436
6526
  } else if (typeof source === "number") {
6437
- if (!!(process.env.NODE_ENV !== "production") && (!Number.isInteger(source) || source < 0)) {
6438
- warn$1(
6439
- `The v-for range expects a positive integer value but got ${source}.`
6440
- );
6527
+ if (!Number.isInteger(source) || source < 0) {
6528
+ if (!!(process.env.NODE_ENV !== "production")) {
6529
+ warn$1(
6530
+ `The v-for range expects a positive integer value but got ${source}.`
6531
+ );
6532
+ }
6441
6533
  ret = [];
6442
6534
  } else {
6443
6535
  ret = new Array(source);
@@ -6756,6 +6848,7 @@ function installCompatInstanceProperties(map) {
6756
6848
  $vnode: (i) => i.vnode,
6757
6849
  // some private properties that are likely accessed...
6758
6850
  _self: (i) => i.proxy,
6851
+ _setupProxy: (i) => i.setupState,
6759
6852
  _uid: (i) => i.uid,
6760
6853
  _data: (i) => i.data,
6761
6854
  _isMounted: (i) => i.isMounted,
@@ -7745,7 +7838,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7745
7838
  return vm;
7746
7839
  }
7747
7840
  }
7748
- Vue.version = `2.6.14-compat:${"3.5.43"}`;
7841
+ Vue.version = `2.6.14-compat:${"3.5.44"}`;
7749
7842
  Vue.config = singletonApp.config;
7750
7843
  Vue.use = (plugin, ...options) => {
7751
7844
  if (plugin && isFunction(plugin.install)) {
@@ -8904,7 +8997,7 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8904
8997
  }
8905
8998
  for (let i = 0; i < nextKeys.length; i++) {
8906
8999
  const key = nextKeys[i];
8907
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
9000
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8908
9001
  return true;
8909
9002
  }
8910
9003
  }
@@ -10042,15 +10135,16 @@ function baseCreateRenderer(options, createHydrationFns) {
10042
10135
  for (let i = 0; i < newChildren.length; i++) {
10043
10136
  const oldVNode = oldChildren[i];
10044
10137
  const newVNode = newChildren[i];
10138
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
10045
10139
  const container = (
10046
10140
  // oldVNode may be an errored async setup() component inside Suspense
10047
10141
  // which will not have a mounted element
10048
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
10142
+ oldEl && // - In the case of a Fragment, we need to provide the actual parent
10049
10143
  // of the Fragment itself so it can move its children.
10050
10144
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
10051
10145
  // which also requires the correct parent container
10052
10146
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
10053
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
10147
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldEl) : (
10054
10148
  // In other cases, the parent container is not actually used so we
10055
10149
  // just pass the block element here to avoid a DOM parentNode call.
10056
10150
  fallbackContainer
@@ -10226,7 +10320,12 @@ function baseCreateRenderer(options, createHydrationFns) {
10226
10320
  }
10227
10321
  if (!!(process.env.NODE_ENV !== "production") && isHmrUpdating) initialVNode.el = null;
10228
10322
  if (instance.asyncDep) {
10229
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
10323
+ parentSuspense && parentSuspense.registerDep(
10324
+ instance,
10325
+ setupRenderEffect,
10326
+ optimized,
10327
+ namespace
10328
+ );
10230
10329
  if (!initialVNode.el) {
10231
10330
  const placeholder = instance.subTree = createVNode(Comment);
10232
10331
  processCommentNode(null, placeholder, container, anchor);
@@ -10256,6 +10355,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10256
10355
  pushWarningContext(n2);
10257
10356
  }
10258
10357
  n2.el = n1.el;
10358
+ n2.placeholder = n1.placeholder;
10259
10359
  updateComponentPreRender(instance, n2, optimized);
10260
10360
  if (!!(process.env.NODE_ENV !== "production")) {
10261
10361
  popWarningContext();
@@ -10267,6 +10367,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10267
10367
  }
10268
10368
  } else {
10269
10369
  n2.el = n1.el;
10370
+ n2.placeholder = n1.placeholder;
10270
10371
  instance.vnode = n2;
10271
10372
  }
10272
10373
  };
@@ -10944,18 +11045,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10944
11045
  };
10945
11046
  const remove = (vnode) => {
10946
11047
  const { type, el, anchor, transition } = vnode;
10947
- if (type === Fragment) {
10948
- if (!!(process.env.NODE_ENV !== "production") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {
10949
- vnode.children.forEach((child) => {
10950
- if (child.type === Comment) {
10951
- hostRemove(child.el);
10952
- } else {
10953
- remove(child);
10954
- }
10955
- });
10956
- } else {
10957
- removeFragment(el, anchor);
10958
- }
11048
+ const isFragment = type === Fragment;
11049
+ if (isFragment && !transition) {
11050
+ removeFragment(el, anchor);
10959
11051
  return;
10960
11052
  }
10961
11053
  if (type === Static) {
@@ -10965,17 +11057,25 @@ function baseCreateRenderer(options, createHydrationFns) {
10965
11057
  }
10966
11058
  return;
10967
11059
  }
11060
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
10968
11061
  const performRemove = () => {
10969
- hostRemove(el);
11062
+ if (isFragment) {
11063
+ if (hostParentNode(el)) {
11064
+ removeFragment(el, anchor);
11065
+ }
11066
+ } else {
11067
+ hostRemove(el);
11068
+ }
10970
11069
  if (transition && !transition.persisted && transition.afterLeave) {
10971
11070
  transition.afterLeave();
10972
11071
  }
10973
11072
  };
10974
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
11073
+ if (leavingNode && leavingNode.shapeFlag & 1 && transition && !transition.persisted) {
10975
11074
  const { leave, delayLeave } = transition;
10976
- const performLeave = () => leave(el, performRemove);
11075
+ const leavingEl = leavingNode.el;
11076
+ const performLeave = () => leave(leavingEl, performRemove);
10977
11077
  if (delayLeave) {
10978
- delayLeave(vnode.el, performRemove, performLeave);
11078
+ delayLeave(leavingEl, performRemove, performLeave);
10979
11079
  } else {
10980
11080
  performLeave();
10981
11081
  }
@@ -11045,32 +11145,26 @@ function baseCreateRenderer(options, createHydrationFns) {
11045
11145
  const teleportEnd = el && el[TeleportEndKey];
11046
11146
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
11047
11147
  };
11048
- let isFlushing = false;
11049
11148
  const render = (vnode, container, namespace) => {
11050
- let instance;
11051
- if (vnode == null) {
11052
- if (container._vnode) {
11053
- unmount(container._vnode, null, null, true);
11054
- instance = container._vnode.component;
11149
+ const minUid = vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid();
11150
+ flushOnAppMount(() => {
11151
+ if (vnode == null) {
11152
+ if (container._vnode) {
11153
+ unmount(container._vnode, null, null, true);
11154
+ }
11155
+ } else {
11156
+ patch(
11157
+ container._vnode || null,
11158
+ vnode,
11159
+ container,
11160
+ null,
11161
+ null,
11162
+ null,
11163
+ namespace
11164
+ );
11055
11165
  }
11056
- } else {
11057
- patch(
11058
- container._vnode || null,
11059
- vnode,
11060
- container,
11061
- null,
11062
- null,
11063
- null,
11064
- namespace
11065
- );
11066
- }
11067
- container._vnode = vnode;
11068
- if (!isFlushing) {
11069
- isFlushing = true;
11070
- flushPreFlushCbs(instance);
11071
- flushPostFlushCbs();
11072
- isFlushing = false;
11073
- }
11166
+ container._vnode = vnode;
11167
+ }, minUid);
11074
11168
  };
11075
11169
  const internals = {
11076
11170
  p: patch,
@@ -11658,7 +11752,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11658
11752
  next() {
11659
11753
  return suspense.activeBranch && next(suspense.activeBranch);
11660
11754
  },
11661
- registerDep(instance, setupRenderEffect, optimized2) {
11755
+ // `namespace` intentionally shadows the boundary's own: the dep must be
11756
+ // mounted with the namespace of the position it was rendered at, which can
11757
+ // differ from the boundary's (e.g. a component nested inside an <svg>).
11758
+ registerDep(instance, setupRenderEffect, optimized2, namespace2) {
11662
11759
  const isInPendingSuspense = !!suspense.pendingBranch;
11663
11760
  if (isInPendingSuspense) {
11664
11761
  suspense.deps++;
@@ -11671,7 +11768,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11671
11768
  return;
11672
11769
  }
11673
11770
  unsetCurrentInstance();
11674
- if (hydratedEl && !instance.scope.active) {
11771
+ if (!instance.scope.active) {
11675
11772
  if (isInPendingSuspense && --suspense.deps === 0) {
11676
11773
  suspense.resolve();
11677
11774
  }
@@ -11698,7 +11795,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11698
11795
  // consider the comment placeholder case.
11699
11796
  hydratedEl ? null : next(instance.subTree),
11700
11797
  suspense,
11701
- namespace,
11798
+ namespace2,
11702
11799
  optimized2
11703
11800
  );
11704
11801
  if (placeholder) {
@@ -12299,6 +12396,9 @@ function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
12299
12396
 
12300
12397
  const emptyAppContext = createAppContext();
12301
12398
  let uid = 0;
12399
+ function getNextUid() {
12400
+ return uid;
12401
+ }
12302
12402
  function createComponentInstance(vnode, parent, suspense) {
12303
12403
  const type = vnode.type;
12304
12404
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
@@ -12997,7 +13097,7 @@ function isMemoSame(cached, memo) {
12997
13097
  return true;
12998
13098
  }
12999
13099
 
13000
- const version = "3.5.43";
13100
+ const version = "3.5.44";
13001
13101
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
13002
13102
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
13003
13103
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -13617,7 +13717,9 @@ function patchStyle(el, prev, next) {
13617
13717
  }
13618
13718
  }
13619
13719
  if (vShowOriginalDisplay in el) {
13620
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
13720
+ if (!isCssString || prev !== next) {
13721
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
13722
+ }
13621
13723
  if (el[vShowHidden]) {
13622
13724
  style.display = "none";
13623
13725
  }
@@ -14143,7 +14245,9 @@ class VueElement extends BaseClass {
14143
14245
  "Custom element style injection is not supported when using shadowRoot: false"
14144
14246
  );
14145
14247
  }
14146
- this._mount(def);
14248
+ if (this._connected) {
14249
+ this._mount(def);
14250
+ }
14147
14251
  };
14148
14252
  const asyncDef = this._def.__asyncLoader;
14149
14253
  if (asyncDef) {
@@ -14513,6 +14617,7 @@ const positionMap = /* @__PURE__ */ new WeakMap();
14513
14617
  const newPositionMap = /* @__PURE__ */ new WeakMap();
14514
14618
  const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
14515
14619
  const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
14620
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
14516
14621
  const decorate = (t) => {
14517
14622
  delete t.props.mode;
14518
14623
  {
@@ -14531,21 +14636,30 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14531
14636
  const state = useTransitionState();
14532
14637
  let prevChildren;
14533
14638
  let children;
14534
- onUpdated(() => {
14535
- if (!prevChildren.length) {
14536
- return;
14639
+ let origins;
14640
+ let moves;
14641
+ const willMove = () => {
14642
+ if (moves === void 0) {
14643
+ moves = prevChildren.length > 0 && hasCSSTransform(
14644
+ prevChildren[0].el,
14645
+ instance.vnode.el,
14646
+ resolveMoveClass(props)
14647
+ );
14537
14648
  }
14538
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
14539
- if (!hasCSSTransform(
14540
- prevChildren[0].el,
14541
- instance.vnode.el,
14542
- moveClass
14543
- )) {
14649
+ return moves;
14650
+ };
14651
+ onUpdated(() => {
14652
+ pendingGroups.delete(instance);
14653
+ if (!willMove()) {
14544
14654
  prevChildren = [];
14655
+ origins = void 0;
14545
14656
  return;
14546
14657
  }
14658
+ const moveClass = resolveMoveClass(props);
14547
14659
  prevChildren.forEach(callPendingCbs);
14548
- prevChildren.forEach(recordPosition);
14660
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
14661
+ origins = void 0;
14662
+ prevChildren.forEach((c) => recordPosition(c, shift));
14549
14663
  const movedChildren = prevChildren.filter(applyTranslation);
14550
14664
  forceReflow(instance.vnode.el);
14551
14665
  movedChildren.forEach((c) => {
@@ -14578,6 +14692,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14578
14692
  tag = "span";
14579
14693
  }
14580
14694
  prevChildren = [];
14695
+ moves = void 0;
14581
14696
  if (children) {
14582
14697
  for (let i = 0; i < children.length; i++) {
14583
14698
  const child = children[i];
@@ -14609,6 +14724,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14609
14724
  warn(`<TransitionGroup> children must be keyed.`);
14610
14725
  }
14611
14726
  }
14727
+ if (prevChildren.length) {
14728
+ origins = getOrigins(instance);
14729
+ pendingGroups.set(instance, willMove);
14730
+ }
14612
14731
  return createVNode(tag, null, children);
14613
14732
  };
14614
14733
  }
@@ -14623,8 +14742,11 @@ function callPendingCbs(c) {
14623
14742
  el[enterCbKey]();
14624
14743
  }
14625
14744
  }
14626
- function recordPosition(c) {
14627
- newPositionMap.set(c, getPosition(c.el));
14745
+ function resolveMoveClass(props) {
14746
+ return props.moveClass || `${props.name || "v"}-move`;
14747
+ }
14748
+ function recordPosition(c, shift) {
14749
+ newPositionMap.set(c, getPosition(c.el, shift));
14628
14750
  }
14629
14751
  function applyTranslation(c) {
14630
14752
  const oldPos = positionMap.get(c);
@@ -14648,13 +14770,41 @@ function applyTranslation(c) {
14648
14770
  return c;
14649
14771
  }
14650
14772
  }
14651
- function getPosition(el) {
14773
+ function getPosition(el, shift) {
14652
14774
  const rect = el.getBoundingClientRect();
14653
14775
  return {
14654
- left: rect.left,
14655
- top: rect.top
14776
+ left: rect.left - (shift ? shift.left : 0),
14777
+ top: rect.top - (shift ? shift.top : 0)
14656
14778
  };
14657
14779
  }
14780
+ function getOrigins(instance) {
14781
+ let origins;
14782
+ for (let group = instance.parent; group; group = group.parent) {
14783
+ const willMove = pendingGroups.get(group);
14784
+ if (willMove) {
14785
+ const item = findItem(group.vnode.el, instance.vnode.el);
14786
+ if (item) {
14787
+ (origins || (origins = [])).push(
14788
+ extend(getPosition(item), { item, willMove })
14789
+ );
14790
+ }
14791
+ }
14792
+ }
14793
+ return origins;
14794
+ }
14795
+ function findItem(root, node) {
14796
+ const container = root.nodeType === 1 ? root : root.parentNode;
14797
+ while (node && node.parentNode !== container) {
14798
+ node = node.parentNode;
14799
+ }
14800
+ if (node && node.nodeType === 1) {
14801
+ return node;
14802
+ }
14803
+ }
14804
+ function getOriginShift(origins, root) {
14805
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
14806
+ return origin && getPosition(origin.item, origin);
14807
+ }
14658
14808
  function hasCSSTransform(el, root, moveClass) {
14659
14809
  const clone = el.cloneNode();
14660
14810
  const _vtc = el[vtcKey];
@@ -16631,7 +16781,8 @@ const errorMessages = {
16631
16781
  [42]: `v-model value must be a valid JavaScript member expression.`,
16632
16782
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
16633
16783
  [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.
16634
- Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
16784
+ Use a v-bind binding combined with a v-on listener that emits update:x event instead.
16785
+ For props declared with defineModel(), assign the returned ref to a variable and use v-model on that variable.`,
16635
16786
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
16636
16787
  [46]: `Error parsing JavaScript expression: `,
16637
16788
  [47]: `<KeepAlive> expects exactly one child component.`,
@@ -19225,7 +19376,7 @@ const transformFor = createStructuralDirectiveTransform(
19225
19376
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
19226
19377
  createCompoundExpression([
19227
19378
  `if (_cached && _cached.el`,
19228
- ...keyExp ? [` && _cached.key === `, keyExp] : [],
19379
+ ...keyExp ? [` && _cached.key === (`, keyExp, `)`] : [],
19229
19380
  ` && ${context.helperString(
19230
19381
  IS_MEMO_SAME
19231
19382
  )}(_cached, _memo)) return _cached`
@@ -21164,7 +21315,8 @@ const transformTransition = (node, context) => {
21164
21315
  if (!node.children.length) {
21165
21316
  return;
21166
21317
  }
21167
- if (hasMultipleChildren(node)) {
21318
+ const multipleChildren = hasMultipleChildren(node);
21319
+ if (!!(process.env.NODE_ENV !== "production") && multipleChildren) {
21168
21320
  context.onError(
21169
21321
  createDOMCompilerError(
21170
21322
  63,
@@ -21391,7 +21543,8 @@ const validateHtmlNesting = (node, context) => {
21391
21543
 
21392
21544
  const DOMNodeTransforms = [
21393
21545
  transformStyle,
21394
- ...!!(process.env.NODE_ENV !== "production") ? [transformTransition, validateHtmlNesting] : []
21546
+ transformTransition,
21547
+ ...!!(process.env.NODE_ENV !== "production") ? [validateHtmlNesting] : []
21395
21548
  ];
21396
21549
  const DOMDirectiveTransforms = {
21397
21550
  cloak: noopDirectiveTransform,