vue 3.5.39 → 3.5.40

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.39
2
+ * vue v3.5.40
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.39
2
+ * vue v3.5.40
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -452,8 +452,9 @@ var Vue = (function (exports) {
452
452
  this._isPaused = true;
453
453
  let i, l;
454
454
  if (this.scopes) {
455
- for (i = 0, l = this.scopes.length; i < l; i++) {
456
- this.scopes[i].pause();
455
+ const scopes = this.scopes.slice();
456
+ for (i = 0, l = scopes.length; i < l; i++) {
457
+ scopes[i].pause();
457
458
  }
458
459
  }
459
460
  for (i = 0, l = this.effects.length; i < l; i++) {
@@ -470,12 +471,14 @@ var Vue = (function (exports) {
470
471
  this._isPaused = false;
471
472
  let i, l;
472
473
  if (this.scopes) {
473
- for (i = 0, l = this.scopes.length; i < l; i++) {
474
- this.scopes[i].resume();
474
+ const scopes = this.scopes.slice();
475
+ for (i = 0, l = scopes.length; i < l; i++) {
476
+ scopes[i].resume();
475
477
  }
476
478
  }
477
- for (i = 0, l = this.effects.length; i < l; i++) {
478
- this.effects[i].resume();
479
+ const effects = this.effects.slice();
480
+ for (i = 0, l = effects.length; i < l; i++) {
481
+ effects[i].resume();
479
482
  }
480
483
  }
481
484
  }
@@ -537,8 +540,9 @@ var Vue = (function (exports) {
537
540
  }
538
541
  this.cleanups.length = 0;
539
542
  if (this.scopes) {
540
- for (i = 0, l = this.scopes.length; i < l; i++) {
541
- this.scopes[i].stop(true);
543
+ const scopes = this.scopes.slice();
544
+ for (i = 0, l = scopes.length; i < l; i++) {
545
+ scopes[i].stop(true);
542
546
  }
543
547
  this.scopes.length = 0;
544
548
  }
@@ -3035,10 +3039,12 @@ var Vue = (function (exports) {
3035
3039
  setBlockTracking(-1);
3036
3040
  }
3037
3041
  const prevInstance = setCurrentRenderingInstance(ctx);
3042
+ const prevStackSize = blockStack.length;
3038
3043
  let res;
3039
3044
  try {
3040
3045
  res = fn(...args);
3041
3046
  } finally {
3047
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
3042
3048
  setCurrentRenderingInstance(prevInstance);
3043
3049
  if (renderFnWithContext._d) {
3044
3050
  setBlockTracking(1);
@@ -4124,12 +4130,7 @@ var Vue = (function (exports) {
4124
4130
  }
4125
4131
  }
4126
4132
  if (isFunction(ref)) {
4127
- pauseTracking();
4128
- try {
4129
- callWithErrorHandling(ref, owner, 12, [value, refs]);
4130
- } finally {
4131
- resetTracking();
4132
- }
4133
+ callWithErrorHandling(ref, owner, 12, [value, refs]);
4133
4134
  } else {
4134
4135
  const _isString = isString(ref);
4135
4136
  const _isRef = isRef(ref);
@@ -4500,6 +4501,7 @@ Server rendered element contains more child nodes than client vdom.`
4500
4501
  if (props) {
4501
4502
  {
4502
4503
  const isCustomElement = el.tagName.includes("-");
4504
+ const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
4503
4505
  for (const key in props) {
4504
4506
  if (// #11189 skip if this node has directives that have created hooks
4505
4507
  // as it could have mutated the DOM in any possible way
@@ -4508,7 +4510,7 @@ Server rendered element contains more child nodes than client vdom.`
4508
4510
  }
4509
4511
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
4510
4512
  key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
4511
- patchProp(el, key, null, props[key], void 0, parentComponent);
4513
+ patchProp(el, key, null, props[key], namespace, parentComponent);
4512
4514
  }
4513
4515
  }
4514
4516
  }
@@ -5011,6 +5013,7 @@ Server rendered element contains fewer child nodes than client vdom.`
5011
5013
  name: "AsyncComponentWrapper",
5012
5014
  __asyncLoader: load,
5013
5015
  __asyncHydrate(el, instance, hydrate) {
5016
+ const wasConnected = el.isConnected;
5014
5017
  let patched = false;
5015
5018
  (instance.bu || (instance.bu = [])).push(() => patched = true);
5016
5019
  const performHydrate = () => {
@@ -5022,6 +5025,7 @@ Server rendered element contains fewer child nodes than client vdom.`
5022
5025
  }
5023
5026
  return;
5024
5027
  }
5028
+ if (!el.parentNode || wasConnected && !el.isConnected) return;
5025
5029
  hydrate();
5026
5030
  };
5027
5031
  const doHydrate = hydrateStrategy ? () => {
@@ -5574,14 +5578,15 @@ If this is a native custom element, make sure to exclude it from component resol
5574
5578
  return slots;
5575
5579
  }
5576
5580
 
5577
- function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5581
+ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5578
5582
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
5579
- const hasProps = Object.keys(props).length > 0;
5580
- if (name !== "default") props.name = name;
5583
+ const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
5584
+ const hasProps = Object.keys(slotProps).length > 0;
5585
+ if (name !== "default") slotProps.name = name;
5581
5586
  return openBlock(), createBlock(
5582
5587
  Fragment,
5583
5588
  null,
5584
- [createVNode("slot", props, fallback && fallback())],
5589
+ [createVNode("slot", slotProps, fallback && fallback())],
5585
5590
  hasProps ? -2 : 64
5586
5591
  );
5587
5592
  }
@@ -5595,26 +5600,34 @@ If this is a native custom element, make sure to exclude it from component resol
5595
5600
  if (slot && slot._c) {
5596
5601
  slot._d = false;
5597
5602
  }
5603
+ const prevStackSize = blockStack.length;
5598
5604
  openBlock();
5599
- const validSlotContent = slot && ensureValidVNode(slot(props));
5600
- const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
5601
- // key attached in the `createSlots` helper, respect that
5602
- validSlotContent && validSlotContent.key;
5603
- const rendered = createBlock(
5604
- Fragment,
5605
- {
5606
- key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
5607
- (!validSlotContent && fallback ? "_fb" : "")
5608
- },
5609
- validSlotContent || (fallback ? fallback() : []),
5610
- validSlotContent && slots._ === 1 ? 64 : -2
5611
- );
5605
+ let rendered;
5606
+ try {
5607
+ const validSlotContent = slot && ensureValidVNode(slot(props));
5608
+ const slotKey = props.key || branchKey || // slot content array of a dynamic conditional slot may have a branch
5609
+ // key attached in the `createSlots` helper, respect that
5610
+ validSlotContent && validSlotContent.key;
5611
+ rendered = createBlock(
5612
+ Fragment,
5613
+ {
5614
+ key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
5615
+ (!validSlotContent && fallback ? "_fb" : "")
5616
+ },
5617
+ validSlotContent || (fallback ? fallback() : []),
5618
+ validSlotContent && slots._ === 1 ? 64 : -2
5619
+ );
5620
+ } catch (err) {
5621
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5622
+ throw err;
5623
+ } finally {
5624
+ if (slot && slot._c) {
5625
+ slot._d = true;
5626
+ }
5627
+ }
5612
5628
  if (!noSlotted && rendered.scopeId) {
5613
5629
  rendered.slotScopeIds = [rendered.scopeId + "-s"];
5614
5630
  }
5615
- if (slot && slot._c) {
5616
- slot._d = true;
5617
- }
5618
5631
  return rendered;
5619
5632
  }
5620
5633
  function ensureValidVNode(vnodes) {
@@ -10917,7 +10930,7 @@ Component that was made reactive: `,
10917
10930
  return true;
10918
10931
  }
10919
10932
 
10920
- const version = "3.5.39";
10933
+ const version = "3.5.40";
10921
10934
  const warn = warn$1 ;
10922
10935
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10923
10936
  const devtools = devtools$1 ;
@@ -12589,13 +12602,13 @@ Expected function or array of functions, received type ${typeof value}.`
12589
12602
  // <select multiple> value need to be deep traversed
12590
12603
  deep: true,
12591
12604
  created(el, { value, modifiers: { number } }, vnode) {
12592
- const isSetModel = isSet(value);
12605
+ el._modelValue = value;
12593
12606
  addEventListener(el, "change", () => {
12594
12607
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
12595
12608
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
12596
12609
  );
12597
12610
  el[assignKey](
12598
- el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
12611
+ el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]
12599
12612
  );
12600
12613
  el._assigning = true;
12601
12614
  nextTick(() => {
@@ -12609,7 +12622,8 @@ Expected function or array of functions, received type ${typeof value}.`
12609
12622
  mounted(el, { value }) {
12610
12623
  setSelected(el, value);
12611
12624
  },
12612
- beforeUpdate(el, _binding, vnode) {
12625
+ beforeUpdate(el, { value }, vnode) {
12626
+ el._modelValue = value;
12613
12627
  el[assignKey] = getModelAssigner(vnode);
12614
12628
  },
12615
12629
  updated(el, { value }) {
@@ -14198,6 +14212,9 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14198
14212
  return [props, callPath];
14199
14213
  }
14200
14214
  function injectProp(node, prop, context) {
14215
+ if (node.type !== 13 && injectSlotKey(node, prop)) {
14216
+ return;
14217
+ }
14201
14218
  let propsWithInjection;
14202
14219
  let props = node.type === 13 ? node.props : node.arguments[2];
14203
14220
  let callPath = [];
@@ -14255,6 +14272,24 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14255
14272
  }
14256
14273
  }
14257
14274
  }
14275
+ function injectSlotKey(node, prop) {
14276
+ var _a, _b, _c;
14277
+ if (prop.key.type !== 4 || prop.key.content !== "key") {
14278
+ return false;
14279
+ }
14280
+ const props = node.arguments[2];
14281
+ if (props && !isString(props)) {
14282
+ const [unnormalizedProps] = getUnnormalizedProps(props);
14283
+ if (unnormalizedProps && !isString(unnormalizedProps) && unnormalizedProps.type === 15 && hasProp(prop, unnormalizedProps)) {
14284
+ return true;
14285
+ }
14286
+ }
14287
+ (_a = node.arguments)[2] || (_a[2] = "{}");
14288
+ (_b = node.arguments)[3] || (_b[3] = "undefined");
14289
+ (_c = node.arguments)[4] || (_c[4] = "undefined");
14290
+ node.arguments[5] = prop.value;
14291
+ return true;
14292
+ }
14258
14293
  function hasProp(prop, props) {
14259
14294
  let result = false;
14260
14295
  if (prop.key.type === 4) {