vue 3.5.41 → 3.5.42

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.41
2
+ * vue v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vue v3.5.41
2
+ * vue v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -305,6 +305,23 @@ var Vue = (function (exports) {
305
305
  }
306
306
  return equal;
307
307
  }
308
+ function looseCompareCollections(a, b) {
309
+ if (a.size !== b.size) return false;
310
+ const candidates = Array.from(b);
311
+ const matched = new Uint8Array(candidates.length);
312
+ for (const item of a) {
313
+ let index = -1;
314
+ for (let i = 0; i < candidates.length; i++) {
315
+ if (!matched[i] && looseEqual(item, candidates[i])) {
316
+ index = i;
317
+ break;
318
+ }
319
+ }
320
+ if (index < 0) return false;
321
+ matched[index] = 1;
322
+ }
323
+ return true;
324
+ }
308
325
  function looseEqual(a, b) {
309
326
  if (a === b) return true;
310
327
  let aValidType = isDate(a);
@@ -328,6 +345,16 @@ var Vue = (function (exports) {
328
345
  if (!aValidType || !bValidType) {
329
346
  return false;
330
347
  }
348
+ aValidType = isMap(a);
349
+ bValidType = isMap(b);
350
+ if (aValidType || bValidType) {
351
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
352
+ }
353
+ aValidType = isSet(a);
354
+ bValidType = isSet(b);
355
+ if (aValidType || bValidType) {
356
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
357
+ }
331
358
  const aKeysCount = Object.keys(a).length;
332
359
  const bKeysCount = Object.keys(b).length;
333
360
  if (aKeysCount !== bKeysCount) {
@@ -4381,10 +4408,10 @@ var Vue = (function (exports) {
4381
4408
  getContainerType(container),
4382
4409
  optimized
4383
4410
  );
4384
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
4411
+ if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
4385
4412
  let subTree;
4386
4413
  if (isFragmentStart) {
4387
- subTree = createVNode(Fragment);
4414
+ subTree = createVNode(Static);
4388
4415
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4389
4416
  } else {
4390
4417
  subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
@@ -5287,7 +5314,10 @@ Server rendered element contains fewer child nodes than client vdom.`
5287
5314
  if (pendingCacheKey != null) {
5288
5315
  if (isSuspense(instance.subTree.type)) {
5289
5316
  queuePostRenderEffect(() => {
5290
- cache.set(pendingCacheKey, getInnerChild(instance.subTree));
5317
+ const vnode = getInnerChild(instance.subTree);
5318
+ if (vnode.component) {
5319
+ cache.set(pendingCacheKey, vnode);
5320
+ }
5291
5321
  }, instance.subTree.suspense);
5292
5322
  } else {
5293
5323
  cache.set(pendingCacheKey, getInnerChild(instance.subTree));
@@ -5688,12 +5718,41 @@ If this is a native custom element, make sure to exclude it from component resol
5688
5718
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
5689
5719
  return getPublicInstance(i.parent);
5690
5720
  };
5721
+ const resolveDevRootEl = (vnode) => {
5722
+ let found = false;
5723
+ while (true) {
5724
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
5725
+ const root = filterSingleRoot(vnode.children);
5726
+ if (!root) {
5727
+ return;
5728
+ }
5729
+ vnode = root;
5730
+ found = true;
5731
+ continue;
5732
+ }
5733
+ const component = vnode.component;
5734
+ if (component && component.subTree) {
5735
+ vnode = component.subTree;
5736
+ continue;
5737
+ }
5738
+ const suspense = vnode.suspense;
5739
+ if (suspense && suspense.activeBranch) {
5740
+ vnode = suspense.activeBranch;
5741
+ continue;
5742
+ }
5743
+ return found ? vnode.el : void 0;
5744
+ }
5745
+ };
5746
+ const getDevRootFragmentEl = (i) => {
5747
+ const el = i.subTree && resolveDevRootEl(i.subTree);
5748
+ return el === void 0 ? i.vnode.el : el;
5749
+ };
5691
5750
  const publicPropertiesMap = (
5692
5751
  // Move PURE marker to new line to workaround compiler discarding it
5693
5752
  // due to type annotation
5694
5753
  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
5695
5754
  $: (i) => i,
5696
- $el: (i) => i.vnode.el,
5755
+ $el: (i) => getDevRootFragmentEl(i) ,
5697
5756
  $data: (i) => i.data,
5698
5757
  $props: (i) => shallowReadonly(i.props) ,
5699
5758
  $attrs: (i) => shallowReadonly(i.attrs) ,
@@ -6793,7 +6852,7 @@ If you want to remount the same app, move your app creation logic into a factory
6793
6852
  args = rawArgs.map((a) => isString(a) ? a.trim() : a);
6794
6853
  }
6795
6854
  if (modifiers.number) {
6796
- args = rawArgs.map(looseToNumber);
6855
+ args = args.map(looseToNumber);
6797
6856
  }
6798
6857
  }
6799
6858
  {
@@ -9436,7 +9495,7 @@ If you want to remount the same app, move your app creation logic into a factory
9436
9495
  if (suspense.deps <= 0) {
9437
9496
  suspense.resolve();
9438
9497
  } else if (isInFallback) {
9439
- if (!isHydrating) {
9498
+ if (!isHydrating && !suspense.isFallbackMountPending) {
9440
9499
  patch(
9441
9500
  activeBranch,
9442
9501
  newFallback,
@@ -9477,7 +9536,7 @@ If you want to remount the same app, move your app creation logic into a factory
9477
9536
  );
9478
9537
  if (suspense.deps <= 0) {
9479
9538
  suspense.resolve();
9480
- } else {
9539
+ } else if (!suspense.isFallbackMountPending) {
9481
9540
  patch(
9482
9541
  activeBranch,
9483
9542
  newFallback,
@@ -9718,9 +9777,10 @@ If you want to remount the same app, move your app creation logic into a factory
9718
9777
  if (!suspense.isInFallback) {
9719
9778
  return;
9720
9779
  }
9780
+ const latestFallback = suspense.vnode.ssFallback;
9721
9781
  patch(
9722
9782
  null,
9723
- fallbackVNode,
9783
+ latestFallback,
9724
9784
  container2,
9725
9785
  anchor2,
9726
9786
  parentComponent2,
@@ -9730,7 +9790,7 @@ If you want to remount the same app, move your app creation logic into a factory
9730
9790
  slotScopeIds,
9731
9791
  optimized
9732
9792
  );
9733
- setActiveBranch(suspense, fallbackVNode);
9793
+ setActiveBranch(suspense, latestFallback);
9734
9794
  };
9735
9795
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
9736
9796
  if (delayEnter) {
@@ -10982,7 +11042,7 @@ Component that was made reactive: `,
10982
11042
  return true;
10983
11043
  }
10984
11044
 
10985
- const version = "3.5.41";
11045
+ const version = "3.5.42";
10986
11046
  const warn = warn$1 ;
10987
11047
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10988
11048
  const devtools = devtools$1 ;
@@ -11560,7 +11620,11 @@ Component that was made reactive: `,
11560
11620
  }
11561
11621
  }
11562
11622
  if (name.startsWith("--")) {
11563
- style.setProperty(name, val);
11623
+ if (importantRE.test(val)) {
11624
+ style.setProperty(name, val.replace(importantRE, ""), "important");
11625
+ } else {
11626
+ style.setProperty(name, val);
11627
+ }
11564
11628
  } else {
11565
11629
  const prefixed = autoPrefix(style, name);
11566
11630
  if (importantRE.test(val)) {
@@ -12682,13 +12746,21 @@ Expected function or array of functions, received type ${typeof value}.`
12682
12746
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
12683
12747
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
12684
12748
  );
12685
- el[assignKey](
12686
- el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]
12687
- );
12688
- el._assigning = true;
12689
- nextTick(() => {
12690
- el._assigning = false;
12691
- });
12749
+ const multiple = el.multiple;
12750
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
12751
+ const pending = el._pendingValue = [
12752
+ multiple,
12753
+ multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue
12754
+ ];
12755
+ try {
12756
+ el[assignKey](assignedValue);
12757
+ } finally {
12758
+ nextTick(() => {
12759
+ if (el._pendingValue === pending) {
12760
+ el._pendingValue = void 0;
12761
+ }
12762
+ });
12763
+ }
12692
12764
  });
12693
12765
  el[assignKey] = getModelAssigner(vnode);
12694
12766
  },
@@ -12702,11 +12774,25 @@ Expected function or array of functions, received type ${typeof value}.`
12702
12774
  el[assignKey] = getModelAssigner(vnode);
12703
12775
  },
12704
12776
  updated(el, { value }) {
12705
- if (!el._assigning) {
12777
+ const pending = el._pendingValue;
12778
+ el._pendingValue = void 0;
12779
+ if (!pending || pending[0] !== el.multiple || !isSameSelectValue(value, pending[1], pending[0])) {
12706
12780
  setSelected(el, value);
12707
12781
  }
12708
12782
  }
12709
12783
  };
12784
+ function isSameSelectValue(value, assignedValue, multiple) {
12785
+ if (!multiple) return looseEqual(value, assignedValue);
12786
+ if (isArray(value)) return looseEqual(value, assignedValue);
12787
+ if (isSet(value)) {
12788
+ if (value.size !== assignedValue.length) return false;
12789
+ for (const item of assignedValue) {
12790
+ if (!value.has(item)) return false;
12791
+ }
12792
+ return true;
12793
+ }
12794
+ return false;
12795
+ }
12710
12796
  function setSelected(el, value) {
12711
12797
  const isMultiple = el.multiple;
12712
12798
  const isArrayValue = isArray(value);