@vue/runtime-dom 3.5.35 → 3.5.36

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/runtime-dom v3.5.35
2
+ * @vue/runtime-dom v3.5.36
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -2170,8 +2170,9 @@ var VueRuntimeDOM = (function (exports) {
2170
2170
  if (once && cb) {
2171
2171
  const _cb = cb;
2172
2172
  cb = (...args) => {
2173
- _cb(...args);
2173
+ const res = _cb(...args);
2174
2174
  watchHandle();
2175
+ return res;
2175
2176
  };
2176
2177
  }
2177
2178
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -2181,7 +2182,7 @@ var VueRuntimeDOM = (function (exports) {
2181
2182
  }
2182
2183
  if (cb) {
2183
2184
  const newValue = effect.run();
2184
- if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2185
+ if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2185
2186
  if (cleanup) {
2186
2187
  cleanup();
2187
2188
  }
@@ -4966,13 +4967,21 @@ Server rendered element contains fewer child nodes than client vdom.`
4966
4967
  const loaded = ref(false);
4967
4968
  const error = ref();
4968
4969
  const delayed = ref(!!delay);
4970
+ let timeoutTimer;
4971
+ let delayTimer;
4972
+ onUnmounted(() => {
4973
+ if (timeoutTimer != null) clearTimeout(timeoutTimer);
4974
+ if (delayTimer != null) clearTimeout(delayTimer);
4975
+ });
4969
4976
  if (delay) {
4970
- setTimeout(() => {
4977
+ delayTimer = setTimeout(() => {
4978
+ if (instance.isUnmounted) return;
4971
4979
  delayed.value = false;
4972
4980
  }, delay);
4973
4981
  }
4974
4982
  if (timeout != null) {
4975
- setTimeout(() => {
4983
+ timeoutTimer = setTimeout(() => {
4984
+ if (instance.isUnmounted) return;
4976
4985
  if (!loaded.value && !error.value) {
4977
4986
  const err = new Error(
4978
4987
  `Async component timed out after ${timeout}ms.`
@@ -4983,11 +4992,16 @@ Server rendered element contains fewer child nodes than client vdom.`
4983
4992
  }, timeout);
4984
4993
  }
4985
4994
  load().then(() => {
4995
+ if (instance.isUnmounted) return;
4986
4996
  loaded.value = true;
4987
4997
  if (instance.parent && isKeepAlive(instance.parent.vnode)) {
4988
4998
  instance.parent.update();
4989
4999
  }
4990
5000
  }).catch((err) => {
5001
+ if (instance.isUnmounted) {
5002
+ pendingRequest = null;
5003
+ return;
5004
+ }
4991
5005
  onError(err);
4992
5006
  error.value = err;
4993
5007
  });
@@ -6557,13 +6571,20 @@ If you want to remount the same app, move your app creation logic into a factory
6557
6571
  return;
6558
6572
  }
6559
6573
  const rawProps = i.vnode.props;
6560
- if (!(rawProps && // check if parent has passed v-model
6561
- (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {
6574
+ const hasVModel = !!(rawProps && // check if parent has passed v-model
6575
+ (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps));
6576
+ if (!hasVModel) {
6562
6577
  localValue = value;
6563
6578
  trigger();
6564
6579
  }
6565
6580
  i.emit(`update:${name}`, emittedValue);
6566
- if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
6581
+ if (hasChanged(value, prevSetValue) && (hasChanged(value, emittedValue) && !hasChanged(emittedValue, prevEmittedValue) || // #13524: browsers differ in when they flush microtasks between
6582
+ // event listeners. If a v-model listener emits an intermediate value
6583
+ // and a following listener restores the model to its previous prop
6584
+ // value before parent updates are flushed, the parent render can be
6585
+ // deduped as having no prop change. Force a local update so DOM state
6586
+ // such as an input's value is synchronized back to the current model.
6587
+ hasVModel && prevSetValue !== EMPTY_OBJ && !hasChanged(emittedValue, localValue))) {
6567
6588
  trigger();
6568
6589
  }
6569
6590
  prevSetValue = value;
@@ -10783,7 +10804,7 @@ Component that was made reactive: `,
10783
10804
  return true;
10784
10805
  }
10785
10806
 
10786
- const version = "3.5.35";
10807
+ const version = "3.5.36";
10787
10808
  const warn = warn$1 ;
10788
10809
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10789
10810
  const devtools = devtools$1 ;
@@ -12228,7 +12249,8 @@ Expected function or array of functions, received type ${typeof value}.`
12228
12249
  if (children) {
12229
12250
  for (let i = 0; i < children.length; i++) {
12230
12251
  const child = children[i];
12231
- if (child.el && child.el instanceof Element) {
12252
+ if (child.el && child.el instanceof Element && // Hidden v-show nodes have no previous layout box to animate from.
12253
+ !child.el[vShowHidden]) {
12232
12254
  prevChildren.push(child);
12233
12255
  setTransitionHooks(
12234
12256
  child,