vue 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 v3.5.43
2
+ * vue v3.5.44
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -267,7 +267,7 @@ var Vue = (function (exports) {
267
267
  const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
268
268
  const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
269
269
 
270
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
270
+ const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
271
271
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
272
272
  const isBooleanAttr = /* @__PURE__ */ makeMap(
273
273
  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
@@ -1315,19 +1315,41 @@ var Vue = (function (exports) {
1315
1315
  };
1316
1316
  function iterator(self, method, wrapValue) {
1317
1317
  const arr = shallowReadArray(self);
1318
- const iter = arr[method]();
1318
+ const methodFn = arr[method];
1319
+ const iter = methodFn.call(arr);
1319
1320
  if (arr !== self && !isShallow(self)) {
1320
- iter._next = iter.next;
1321
- iter.next = () => {
1322
- const result = iter._next();
1323
- if (!result.done) {
1324
- result.value = wrapValue(result.value);
1321
+ if (iter[Symbol.toStringTag] === "Array Iterator") {
1322
+ const wrapped = Object.create(Object.getPrototypeOf(iter));
1323
+ wrapped.next = () => wrapResult(iter.next(), wrapValue);
1324
+ if (methodFn !== arrayProto[method]) {
1325
+ Object.defineProperties(wrapped, {
1326
+ return: {
1327
+ get() {
1328
+ const fn = iter.return;
1329
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1330
+ }
1331
+ },
1332
+ throw: {
1333
+ get() {
1334
+ const fn = iter.throw;
1335
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1336
+ }
1337
+ }
1338
+ });
1325
1339
  }
1326
- return result;
1327
- };
1340
+ return wrapped;
1341
+ }
1342
+ iter._next = iter.next;
1343
+ iter.next = () => wrapResult(iter._next(), wrapValue);
1328
1344
  }
1329
1345
  return iter;
1330
1346
  }
1347
+ function wrapResult(result, wrapValue) {
1348
+ if (!result.done) {
1349
+ result.value = wrapValue(result.value);
1350
+ }
1351
+ return result;
1352
+ }
1331
1353
  const arrayProto = Array.prototype;
1332
1354
  function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1333
1355
  const arr = shallowReadArray(self);
@@ -1750,6 +1772,8 @@ var Vue = (function (exports) {
1750
1772
  return !isReadonly2;
1751
1773
  } else if (key === "__v_isReadonly") {
1752
1774
  return isReadonly2;
1775
+ } else if (key === "__v_isShallow") {
1776
+ return shallow;
1753
1777
  } else if (key === "__v_raw") {
1754
1778
  return target;
1755
1779
  }
@@ -2295,9 +2319,11 @@ var Vue = (function (exports) {
2295
2319
  if (once && cb) {
2296
2320
  const _cb = cb;
2297
2321
  cb = (...args) => {
2298
- const res = _cb(...args);
2299
- watchHandle();
2300
- return res;
2322
+ try {
2323
+ return _cb(...args);
2324
+ } finally {
2325
+ watchHandle();
2326
+ }
2301
2327
  };
2302
2328
  }
2303
2329
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -2308,12 +2334,13 @@ var Vue = (function (exports) {
2308
2334
  if (cb) {
2309
2335
  const newValue = effect.run();
2310
2336
  if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2311
- if (cleanup) {
2312
- cleanup();
2313
- }
2314
2337
  const currentWatcher = activeWatcher;
2315
- activeWatcher = effect;
2338
+ pauseTracking();
2316
2339
  try {
2340
+ if (cleanup) {
2341
+ cleanup();
2342
+ }
2343
+ activeWatcher = effect;
2317
2344
  const args = [
2318
2345
  newValue,
2319
2346
  // pass undefined as the old value when it's changed for the first time
@@ -2327,6 +2354,7 @@ var Vue = (function (exports) {
2327
2354
  );
2328
2355
  } finally {
2329
2356
  activeWatcher = currentWatcher;
2357
+ resetTracking();
2330
2358
  }
2331
2359
  }
2332
2360
  } else {
@@ -2727,21 +2755,21 @@ var Vue = (function (exports) {
2727
2755
  }
2728
2756
  queueFlush();
2729
2757
  }
2730
- function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2758
+ function flushPreFlushCbs(instance, minUid, seen, i = flushIndex + 1) {
2731
2759
  {
2732
2760
  seen = seen || /* @__PURE__ */ new Map();
2733
2761
  }
2734
2762
  for (; i < queue.length; i++) {
2735
2763
  const cb = queue[i];
2736
2764
  if (cb && cb.flags & 2) {
2737
- if (instance && cb.id !== instance.uid) {
2765
+ if (instance && cb.id !== instance.uid || minUid !== void 0 && !(cb.id >= minUid)) {
2738
2766
  continue;
2739
2767
  }
2740
2768
  if (checkRecursiveUpdates(seen, cb)) {
2741
2769
  continue;
2742
2770
  }
2743
2771
  queue.splice(i, 1);
2744
- i--;
2772
+ i = instance ? i - 1 : flushIndex;
2745
2773
  if (cb.flags & 4) {
2746
2774
  cb.flags &= -2;
2747
2775
  }
@@ -2752,12 +2780,23 @@ var Vue = (function (exports) {
2752
2780
  }
2753
2781
  }
2754
2782
  }
2755
- function flushPostFlushCbs(seen) {
2783
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2756
2784
  if (pendingPostFlushCbs.length) {
2757
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
2758
- (a, b) => getId(a) - getId(b)
2759
- );
2760
- pendingPostFlushCbs.length = 0;
2785
+ let cbs = pendingPostFlushCbs;
2786
+ let kept = 0;
2787
+ if (skip) {
2788
+ cbs = [];
2789
+ for (let i = 0; i < pendingPostFlushCbs.length; i++) {
2790
+ const cb = pendingPostFlushCbs[i];
2791
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) {
2792
+ pendingPostFlushCbs[kept++] = cb;
2793
+ } else {
2794
+ cbs.push(cb);
2795
+ }
2796
+ }
2797
+ }
2798
+ const deduped = [...new Set(cbs)].sort((a, b) => getId(a) - getId(b));
2799
+ pendingPostFlushCbs.length = kept;
2761
2800
  if (activePostFlushCbs) {
2762
2801
  for (let i = 0; i < deduped.length; i++) {
2763
2802
  activePostFlushCbs.push(deduped[i]);
@@ -2783,6 +2822,22 @@ var Vue = (function (exports) {
2783
2822
  postFlushIndex = 0;
2784
2823
  }
2785
2824
  }
2825
+ let isFlushing = false;
2826
+ function flushOnAppMount(fn, minUid) {
2827
+ if (isFlushing) {
2828
+ fn();
2829
+ return;
2830
+ }
2831
+ const queued = minUid === void 0 ? void 0 : new Set(pendingPostFlushCbs);
2832
+ fn();
2833
+ isFlushing = true;
2834
+ try {
2835
+ flushPreFlushCbs(void 0, minUid);
2836
+ flushPostFlushCbs(void 0, queued, minUid);
2837
+ } finally {
2838
+ isFlushing = false;
2839
+ }
2840
+ }
2786
2841
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2787
2842
  function flushJobs(seen) {
2788
2843
  {
@@ -3263,6 +3318,7 @@ var Vue = (function (exports) {
3263
3318
  let isPre = false;
3264
3319
  if (flush === "post") {
3265
3320
  baseWatchOptions.scheduler = (job) => {
3321
+ job.i = instance;
3266
3322
  queuePostRenderEffect(job, instance && instance.suspense);
3267
3323
  };
3268
3324
  } else if (flush !== "sync") {
@@ -3557,7 +3613,11 @@ var Vue = (function (exports) {
3557
3613
  };
3558
3614
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
3559
3615
  if (moveType === 0) {
3616
+ if (vnode.targetStart) {
3617
+ insert(vnode.targetStart, container, parentAnchor);
3618
+ }
3560
3619
  insert(vnode.targetAnchor, container, parentAnchor);
3620
+ parentAnchor = vnode.targetAnchor;
3561
3621
  }
3562
3622
  const { el, anchor, shapeFlag, children, props } = vnode;
3563
3623
  const isReorder = moveType === 2;
@@ -3726,10 +3786,6 @@ var Vue = (function (exports) {
3726
3786
  onAfterAppear: TransitionHookValidator,
3727
3787
  onAppearCancelled: TransitionHookValidator
3728
3788
  };
3729
- const recursiveGetSubtree = (instance) => {
3730
- const subTree = instance.subTree;
3731
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
3732
- };
3733
3789
  const BaseTransitionImpl = {
3734
3790
  name: `BaseTransition`,
3735
3791
  props: BaseTransitionPropsValidators,
@@ -3770,7 +3826,7 @@ var Vue = (function (exports) {
3770
3826
  setTransitionHooks(innerChild, enterHooks);
3771
3827
  }
3772
3828
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3773
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3829
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && getTransitionRoot(instance.subTree)) {
3774
3830
  let leavingHooks = resolveTransitionHooks(
3775
3831
  oldInnerChild,
3776
3832
  rawProps,
@@ -3903,8 +3959,15 @@ var Vue = (function (exports) {
3903
3959
  );
3904
3960
  }
3905
3961
  const leavingVNode = leavingVNodesCache[key];
3906
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
3907
- leavingVNode.el[leaveCbKey]();
3962
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
3963
+ let leavingCb = leavingVNode.el[leaveCbKey];
3964
+ if (!leavingCb) {
3965
+ const leavingRoot = getTransitionRoot(leavingVNode);
3966
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
3967
+ }
3968
+ if (leavingCb) {
3969
+ leavingCb();
3970
+ }
3908
3971
  }
3909
3972
  callHook(hook, [el]);
3910
3973
  },
@@ -4032,6 +4095,12 @@ var Vue = (function (exports) {
4032
4095
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4033
4096
  } else {
4034
4097
  vnode.transition = hooks;
4098
+ if (vnode.type === Fragment && isArray(vnode.children)) {
4099
+ const child = filterSingleRoot(vnode.children, false);
4100
+ if (child) {
4101
+ setTransitionHooks(child, hooks);
4102
+ }
4103
+ }
4035
4104
  }
4036
4105
  }
4037
4106
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -4056,6 +4125,18 @@ var Vue = (function (exports) {
4056
4125
  }
4057
4126
  return ret;
4058
4127
  }
4128
+ function getTransitionRoot(vnode) {
4129
+ if (vnode.component) {
4130
+ return getTransitionRoot(vnode.component.subTree);
4131
+ }
4132
+ if (vnode.type === Fragment) {
4133
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
4134
+ return child ? getTransitionRoot(child) : void 0;
4135
+ }
4136
+ if (vnode.type !== Comment) {
4137
+ return vnode;
4138
+ }
4139
+ }
4059
4140
 
4060
4141
  // @__NO_SIDE_EFFECTS__
4061
4142
  function defineComponent(options, extraOptions) {
@@ -4961,14 +5042,22 @@ Server rendered element contains fewer child nodes than client vdom.`
4961
5042
  break;
4962
5043
  }
4963
5044
  }, opts);
4964
- forEach((el) => {
4965
- if (!(el instanceof Element)) return;
5045
+ const observe = (el) => {
4966
5046
  if (elementIsVisibleInViewport(el)) {
4967
5047
  hydrate();
4968
5048
  ob.disconnect();
4969
5049
  return false;
4970
5050
  }
5051
+ if (getComputedStyle(el).display === "contents") {
5052
+ for (let i = 0; i < el.children.length; i++) {
5053
+ if (observe(el.children[i]) === false) return false;
5054
+ }
5055
+ }
4971
5056
  ob.observe(el);
5057
+ };
5058
+ forEach((el) => {
5059
+ if (!(el instanceof Element)) return;
5060
+ return observe(el);
4972
5061
  });
4973
5062
  return () => ob.disconnect();
4974
5063
  };
@@ -5319,6 +5408,7 @@ Server rendered element contains fewer child nodes than client vdom.`
5319
5408
  unmount(cached);
5320
5409
  } else if (current) {
5321
5410
  resetShapeFlag(current);
5411
+ if (cached) resetShapeFlag(cached);
5322
5412
  }
5323
5413
  cache.delete(key);
5324
5414
  keys.delete(key);
@@ -5610,9 +5700,11 @@ If this is a native custom element, make sure to exclude it from component resol
5610
5700
  }
5611
5701
  } else if (typeof source === "number") {
5612
5702
  if (!Number.isInteger(source) || source < 0) {
5613
- warn$1(
5614
- `The v-for range expects a positive integer value but got ${source}.`
5615
- );
5703
+ {
5704
+ warn$1(
5705
+ `The v-for range expects a positive integer value but got ${source}.`
5706
+ );
5707
+ }
5616
5708
  ret = [];
5617
5709
  } else {
5618
5710
  ret = new Array(source);
@@ -7247,7 +7339,7 @@ If you want to remount the same app, move your app creation logic into a factory
7247
7339
  }
7248
7340
  for (let i = 0; i < nextKeys.length; i++) {
7249
7341
  const key = nextKeys[i];
7250
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
7342
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
7251
7343
  return true;
7252
7344
  }
7253
7345
  }
@@ -8286,15 +8378,16 @@ If you want to remount the same app, move your app creation logic into a factory
8286
8378
  for (let i = 0; i < newChildren.length; i++) {
8287
8379
  const oldVNode = oldChildren[i];
8288
8380
  const newVNode = newChildren[i];
8381
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
8289
8382
  const container = (
8290
8383
  // oldVNode may be an errored async setup() component inside Suspense
8291
8384
  // which will not have a mounted element
8292
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
8385
+ oldEl && // - In the case of a Fragment, we need to provide the actual parent
8293
8386
  // of the Fragment itself so it can move its children.
8294
8387
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
8295
8388
  // which also requires the correct parent container
8296
8389
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
8297
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
8390
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldEl) : (
8298
8391
  // In other cases, the parent container is not actually used so we
8299
8392
  // just pass the block element here to avoid a DOM parentNode call.
8300
8393
  fallbackContainer
@@ -8458,7 +8551,12 @@ If you want to remount the same app, move your app creation logic into a factory
8458
8551
  }
8459
8552
  if (isHmrUpdating) initialVNode.el = null;
8460
8553
  if (instance.asyncDep) {
8461
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
8554
+ parentSuspense && parentSuspense.registerDep(
8555
+ instance,
8556
+ setupRenderEffect,
8557
+ optimized,
8558
+ namespace
8559
+ );
8462
8560
  if (!initialVNode.el) {
8463
8561
  const placeholder = instance.subTree = createVNode(Comment);
8464
8562
  processCommentNode(null, placeholder, container, anchor);
@@ -8488,6 +8586,7 @@ If you want to remount the same app, move your app creation logic into a factory
8488
8586
  pushWarningContext(n2);
8489
8587
  }
8490
8588
  n2.el = n1.el;
8589
+ n2.placeholder = n1.placeholder;
8491
8590
  updateComponentPreRender(instance, n2, optimized);
8492
8591
  {
8493
8592
  popWarningContext();
@@ -8499,6 +8598,7 @@ If you want to remount the same app, move your app creation logic into a factory
8499
8598
  }
8500
8599
  } else {
8501
8600
  n2.el = n1.el;
8601
+ n2.placeholder = n1.placeholder;
8502
8602
  instance.vnode = n2;
8503
8603
  }
8504
8604
  };
@@ -9152,18 +9252,9 @@ If you want to remount the same app, move your app creation logic into a factory
9152
9252
  };
9153
9253
  const remove = (vnode) => {
9154
9254
  const { type, el, anchor, transition } = vnode;
9155
- if (type === Fragment) {
9156
- if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {
9157
- vnode.children.forEach((child) => {
9158
- if (child.type === Comment) {
9159
- hostRemove(child.el);
9160
- } else {
9161
- remove(child);
9162
- }
9163
- });
9164
- } else {
9165
- removeFragment(el, anchor);
9166
- }
9255
+ const isFragment = type === Fragment;
9256
+ if (isFragment && !transition) {
9257
+ removeFragment(el, anchor);
9167
9258
  return;
9168
9259
  }
9169
9260
  if (type === Static) {
@@ -9173,17 +9264,25 @@ If you want to remount the same app, move your app creation logic into a factory
9173
9264
  }
9174
9265
  return;
9175
9266
  }
9267
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
9176
9268
  const performRemove = () => {
9177
- hostRemove(el);
9269
+ if (isFragment) {
9270
+ if (hostParentNode(el)) {
9271
+ removeFragment(el, anchor);
9272
+ }
9273
+ } else {
9274
+ hostRemove(el);
9275
+ }
9178
9276
  if (transition && !transition.persisted && transition.afterLeave) {
9179
9277
  transition.afterLeave();
9180
9278
  }
9181
9279
  };
9182
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
9280
+ if (leavingNode && leavingNode.shapeFlag & 1 && transition && !transition.persisted) {
9183
9281
  const { leave, delayLeave } = transition;
9184
- const performLeave = () => leave(el, performRemove);
9282
+ const leavingEl = leavingNode.el;
9283
+ const performLeave = () => leave(leavingEl, performRemove);
9185
9284
  if (delayLeave) {
9186
- delayLeave(vnode.el, performRemove, performLeave);
9285
+ delayLeave(leavingEl, performRemove, performLeave);
9187
9286
  } else {
9188
9287
  performLeave();
9189
9288
  }
@@ -9244,32 +9343,26 @@ If you want to remount the same app, move your app creation logic into a factory
9244
9343
  const teleportEnd = el && el[TeleportEndKey];
9245
9344
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
9246
9345
  };
9247
- let isFlushing = false;
9248
9346
  const render = (vnode, container, namespace) => {
9249
- let instance;
9250
- if (vnode == null) {
9251
- if (container._vnode) {
9252
- unmount(container._vnode, null, null, true);
9253
- instance = container._vnode.component;
9347
+ const minUid = vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid();
9348
+ flushOnAppMount(() => {
9349
+ if (vnode == null) {
9350
+ if (container._vnode) {
9351
+ unmount(container._vnode, null, null, true);
9352
+ }
9353
+ } else {
9354
+ patch(
9355
+ container._vnode || null,
9356
+ vnode,
9357
+ container,
9358
+ null,
9359
+ null,
9360
+ null,
9361
+ namespace
9362
+ );
9254
9363
  }
9255
- } else {
9256
- patch(
9257
- container._vnode || null,
9258
- vnode,
9259
- container,
9260
- null,
9261
- null,
9262
- null,
9263
- namespace
9264
- );
9265
- }
9266
- container._vnode = vnode;
9267
- if (!isFlushing) {
9268
- isFlushing = true;
9269
- flushPreFlushCbs(instance);
9270
- flushPostFlushCbs();
9271
- isFlushing = false;
9272
- }
9364
+ container._vnode = vnode;
9365
+ }, minUid);
9273
9366
  };
9274
9367
  const internals = {
9275
9368
  p: patch,
@@ -9857,7 +9950,10 @@ If you want to remount the same app, move your app creation logic into a factory
9857
9950
  next() {
9858
9951
  return suspense.activeBranch && next(suspense.activeBranch);
9859
9952
  },
9860
- registerDep(instance, setupRenderEffect, optimized2) {
9953
+ // `namespace` intentionally shadows the boundary's own: the dep must be
9954
+ // mounted with the namespace of the position it was rendered at, which can
9955
+ // differ from the boundary's (e.g. a component nested inside an <svg>).
9956
+ registerDep(instance, setupRenderEffect, optimized2, namespace2) {
9861
9957
  const isInPendingSuspense = !!suspense.pendingBranch;
9862
9958
  if (isInPendingSuspense) {
9863
9959
  suspense.deps++;
@@ -9870,7 +9966,7 @@ If you want to remount the same app, move your app creation logic into a factory
9870
9966
  return;
9871
9967
  }
9872
9968
  unsetCurrentInstance();
9873
- if (hydratedEl && !instance.scope.active) {
9969
+ if (!instance.scope.active) {
9874
9970
  if (isInPendingSuspense && --suspense.deps === 0) {
9875
9971
  suspense.resolve();
9876
9972
  }
@@ -9897,7 +9993,7 @@ If you want to remount the same app, move your app creation logic into a factory
9897
9993
  // consider the comment placeholder case.
9898
9994
  hydratedEl ? null : next(instance.subTree),
9899
9995
  suspense,
9900
- namespace,
9996
+ namespace2,
9901
9997
  optimized2
9902
9998
  );
9903
9999
  if (placeholder) {
@@ -10431,6 +10527,9 @@ Component that was made reactive: `,
10431
10527
 
10432
10528
  const emptyAppContext = createAppContext();
10433
10529
  let uid = 0;
10530
+ function getNextUid() {
10531
+ return uid;
10532
+ }
10434
10533
  function createComponentInstance(vnode, parent, suspense) {
10435
10534
  const type = vnode.type;
10436
10535
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
@@ -11089,7 +11188,7 @@ Component that was made reactive: `,
11089
11188
  return true;
11090
11189
  }
11091
11190
 
11092
- const version = "3.5.43";
11191
+ const version = "3.5.44";
11093
11192
  const warn = warn$1 ;
11094
11193
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11095
11194
  const devtools = devtools$1 ;
@@ -11646,7 +11745,9 @@ Component that was made reactive: `,
11646
11745
  }
11647
11746
  }
11648
11747
  if (vShowOriginalDisplay in el) {
11649
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
11748
+ if (!isCssString || prev !== next) {
11749
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
11750
+ }
11650
11751
  if (el[vShowHidden]) {
11651
11752
  style.display = "none";
11652
11753
  }
@@ -12128,7 +12229,9 @@ Expected function or array of functions, received type ${typeof value}.`
12128
12229
  "Custom element style injection is not supported when using shadowRoot: false"
12129
12230
  );
12130
12231
  }
12131
- this._mount(def);
12232
+ if (this._connected) {
12233
+ this._mount(def);
12234
+ }
12132
12235
  };
12133
12236
  const asyncDef = this._def.__asyncLoader;
12134
12237
  if (asyncDef) {
@@ -12486,6 +12589,7 @@ Expected function or array of functions, received type ${typeof value}.`
12486
12589
  const newPositionMap = /* @__PURE__ */ new WeakMap();
12487
12590
  const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
12488
12591
  const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
12592
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
12489
12593
  const decorate = (t) => {
12490
12594
  delete t.props.mode;
12491
12595
  return t;
@@ -12501,21 +12605,30 @@ Expected function or array of functions, received type ${typeof value}.`
12501
12605
  const state = useTransitionState();
12502
12606
  let prevChildren;
12503
12607
  let children;
12504
- onUpdated(() => {
12505
- if (!prevChildren.length) {
12506
- return;
12608
+ let origins;
12609
+ let moves;
12610
+ const willMove = () => {
12611
+ if (moves === void 0) {
12612
+ moves = prevChildren.length > 0 && hasCSSTransform(
12613
+ prevChildren[0].el,
12614
+ instance.vnode.el,
12615
+ resolveMoveClass(props)
12616
+ );
12507
12617
  }
12508
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
12509
- if (!hasCSSTransform(
12510
- prevChildren[0].el,
12511
- instance.vnode.el,
12512
- moveClass
12513
- )) {
12618
+ return moves;
12619
+ };
12620
+ onUpdated(() => {
12621
+ pendingGroups.delete(instance);
12622
+ if (!willMove()) {
12514
12623
  prevChildren = [];
12624
+ origins = void 0;
12515
12625
  return;
12516
12626
  }
12627
+ const moveClass = resolveMoveClass(props);
12517
12628
  prevChildren.forEach(callPendingCbs);
12518
- prevChildren.forEach(recordPosition);
12629
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
12630
+ origins = void 0;
12631
+ prevChildren.forEach((c) => recordPosition(c, shift));
12519
12632
  const movedChildren = prevChildren.filter(applyTranslation);
12520
12633
  forceReflow(instance.vnode.el);
12521
12634
  movedChildren.forEach((c) => {
@@ -12542,6 +12655,7 @@ Expected function or array of functions, received type ${typeof value}.`
12542
12655
  const cssTransitionProps = resolveTransitionProps(rawProps);
12543
12656
  let tag = rawProps.tag || Fragment;
12544
12657
  prevChildren = [];
12658
+ moves = void 0;
12545
12659
  if (children) {
12546
12660
  for (let i = 0; i < children.length; i++) {
12547
12661
  const child = children[i];
@@ -12573,6 +12687,10 @@ Expected function or array of functions, received type ${typeof value}.`
12573
12687
  warn(`<TransitionGroup> children must be keyed.`);
12574
12688
  }
12575
12689
  }
12690
+ if (prevChildren.length) {
12691
+ origins = getOrigins(instance);
12692
+ pendingGroups.set(instance, willMove);
12693
+ }
12576
12694
  return createVNode(tag, null, children);
12577
12695
  };
12578
12696
  }
@@ -12587,8 +12705,11 @@ Expected function or array of functions, received type ${typeof value}.`
12587
12705
  el[enterCbKey]();
12588
12706
  }
12589
12707
  }
12590
- function recordPosition(c) {
12591
- newPositionMap.set(c, getPosition(c.el));
12708
+ function resolveMoveClass(props) {
12709
+ return props.moveClass || `${props.name || "v"}-move`;
12710
+ }
12711
+ function recordPosition(c, shift) {
12712
+ newPositionMap.set(c, getPosition(c.el, shift));
12592
12713
  }
12593
12714
  function applyTranslation(c) {
12594
12715
  const oldPos = positionMap.get(c);
@@ -12612,13 +12733,41 @@ Expected function or array of functions, received type ${typeof value}.`
12612
12733
  return c;
12613
12734
  }
12614
12735
  }
12615
- function getPosition(el) {
12736
+ function getPosition(el, shift) {
12616
12737
  const rect = el.getBoundingClientRect();
12617
12738
  return {
12618
- left: rect.left,
12619
- top: rect.top
12739
+ left: rect.left - (shift ? shift.left : 0),
12740
+ top: rect.top - (shift ? shift.top : 0)
12620
12741
  };
12621
12742
  }
12743
+ function getOrigins(instance) {
12744
+ let origins;
12745
+ for (let group = instance.parent; group; group = group.parent) {
12746
+ const willMove = pendingGroups.get(group);
12747
+ if (willMove) {
12748
+ const item = findItem(group.vnode.el, instance.vnode.el);
12749
+ if (item) {
12750
+ (origins || (origins = [])).push(
12751
+ extend(getPosition(item), { item, willMove })
12752
+ );
12753
+ }
12754
+ }
12755
+ }
12756
+ return origins;
12757
+ }
12758
+ function findItem(root, node) {
12759
+ const container = root.nodeType === 1 ? root : root.parentNode;
12760
+ while (node && node.parentNode !== container) {
12761
+ node = node.parentNode;
12762
+ }
12763
+ if (node && node.nodeType === 1) {
12764
+ return node;
12765
+ }
12766
+ }
12767
+ function getOriginShift(origins, root) {
12768
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
12769
+ return origin && getPosition(origin.item, origin);
12770
+ }
12622
12771
  function hasCSSTransform(el, root, moveClass) {
12623
12772
  const clone = el.cloneNode();
12624
12773
  const _vtc = el[vtcKey];
@@ -14251,7 +14400,8 @@ Make sure to use the production build (*.prod.js) when deploying for production.
14251
14400
  [42]: `v-model value must be a valid JavaScript member expression.`,
14252
14401
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
14253
14402
  [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.
14254
- Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
14403
+ Use a v-bind binding combined with a v-on listener that emits update:x event instead.
14404
+ For props declared with defineModel(), assign the returned ref to a variable and use v-model on that variable.`,
14255
14405
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
14256
14406
  [46]: `Error parsing JavaScript expression: `,
14257
14407
  [47]: `<KeepAlive> expects exactly one child component.`,
@@ -16745,7 +16895,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
16745
16895
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
16746
16896
  createCompoundExpression([
16747
16897
  `if (_cached && _cached.el`,
16748
- ...keyExp ? [` && _cached.key === `, keyExp] : [],
16898
+ ...keyExp ? [` && _cached.key === (`, keyExp, `)`] : [],
16749
16899
  ` && ${context.helperString(
16750
16900
  IS_MEMO_SAME
16751
16901
  )}(_cached, _memo)) return _cached`
@@ -18486,7 +18636,8 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
18486
18636
  if (!node.children.length) {
18487
18637
  return;
18488
18638
  }
18489
- if (hasMultipleChildren(node)) {
18639
+ const multipleChildren = hasMultipleChildren(node);
18640
+ if (multipleChildren) {
18490
18641
  context.onError(
18491
18642
  createDOMCompilerError(
18492
18643
  63,
@@ -18713,7 +18864,8 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
18713
18864
 
18714
18865
  const DOMNodeTransforms = [
18715
18866
  transformStyle,
18716
- ...[transformTransition, validateHtmlNesting]
18867
+ transformTransition,
18868
+ ...[validateHtmlNesting]
18717
18869
  ];
18718
18870
  const DOMDirectiveTransforms = {
18719
18871
  cloak: noopDirectiveTransform,