@vue/runtime-dom 3.4.19 → 3.4.21

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.4.19
2
+ * @vue/runtime-dom v3.4.21
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -361,10 +361,11 @@ function patchClass(el, value, isSVG) {
361
361
  }
362
362
  }
363
363
 
364
- const vShowOldKey = Symbol("_vod");
364
+ const vShowOriginalDisplay = Symbol("_vod");
365
+ const vShowHidden = Symbol("_vsh");
365
366
  const vShow = {
366
367
  beforeMount(el, { value }, { transition }) {
367
- el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
368
+ el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
368
369
  if (transition && value) {
369
370
  transition.beforeEnter(el);
370
371
  } else {
@@ -377,7 +378,7 @@ const vShow = {
377
378
  }
378
379
  },
379
380
  updated(el, { value, oldValue }, { transition }) {
380
- if (!value === !oldValue && (el.style.display === el[vShowOldKey] || !value))
381
+ if (!value === !oldValue)
381
382
  return;
382
383
  if (transition) {
383
384
  if (value) {
@@ -401,7 +402,8 @@ const vShow = {
401
402
  vShow.name = "show";
402
403
  }
403
404
  function setDisplay(el, value) {
404
- el.style.display = value ? el[vShowOldKey] : "none";
405
+ el.style.display = value ? el[vShowOriginalDisplay] : "none";
406
+ el[vShowHidden] = !value;
405
407
  }
406
408
  function initVShowForSSR() {
407
409
  vShow.getSSRProps = ({ value }) => {
@@ -420,13 +422,21 @@ const displayRE = /(^|;)\s*display\s*:/;
420
422
  function patchStyle(el, prev, next) {
421
423
  const style = el.style;
422
424
  const isCssString = shared.isString(next);
423
- const currentDisplay = style.display;
424
425
  let hasControlledDisplay = false;
425
426
  if (next && !isCssString) {
426
- if (prev && !shared.isString(prev)) {
427
- for (const key in prev) {
428
- if (next[key] == null) {
429
- setStyle(style, key, "");
427
+ if (prev) {
428
+ if (!shared.isString(prev)) {
429
+ for (const key in prev) {
430
+ if (next[key] == null) {
431
+ setStyle(style, key, "");
432
+ }
433
+ }
434
+ } else {
435
+ for (const prevStyle of prev.split(";")) {
436
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
437
+ if (next[key] == null) {
438
+ setStyle(style, key, "");
439
+ }
430
440
  }
431
441
  }
432
442
  }
@@ -450,9 +460,11 @@ function patchStyle(el, prev, next) {
450
460
  el.removeAttribute("style");
451
461
  }
452
462
  }
453
- if (vShowOldKey in el) {
454
- el[vShowOldKey] = hasControlledDisplay ? style.display : "";
455
- style.display = currentDisplay;
463
+ if (vShowOriginalDisplay in el) {
464
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
465
+ if (el[vShowHidden]) {
466
+ style.display = "none";
467
+ }
456
468
  }
457
469
  }
458
470
  const semicolonRE = /[^\\];\s*$/;
@@ -536,15 +548,15 @@ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspe
536
548
  const tag = el.tagName;
537
549
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
538
550
  !tag.includes("-")) {
539
- el._value = value;
540
- const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
551
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
541
552
  const newValue = value == null ? "" : value;
542
- if (oldValue !== newValue) {
553
+ if (oldValue !== newValue || !("_value" in el)) {
543
554
  el.value = newValue;
544
555
  }
545
556
  if (value == null) {
546
557
  el.removeAttribute(key);
547
558
  }
559
+ el._value = value;
548
560
  return;
549
561
  }
550
562
  let needRemove = false;
@@ -1228,19 +1240,19 @@ const vModelSelect = {
1228
1240
  },
1229
1241
  // set value in mounted & updated because <select> relies on its children
1230
1242
  // <option>s.
1231
- mounted(el, { value, oldValue, modifiers: { number } }) {
1232
- setSelected(el, value, oldValue, number);
1243
+ mounted(el, { value, modifiers: { number } }) {
1244
+ setSelected(el, value, number);
1233
1245
  },
1234
1246
  beforeUpdate(el, _binding, vnode) {
1235
1247
  el[assignKey] = getModelAssigner(vnode);
1236
1248
  },
1237
- updated(el, { value, oldValue, modifiers: { number } }) {
1249
+ updated(el, { value, modifiers: { number } }) {
1238
1250
  if (!el._assigning) {
1239
- setSelected(el, value, oldValue, number);
1251
+ setSelected(el, value, number);
1240
1252
  }
1241
1253
  }
1242
1254
  };
1243
- function setSelected(el, value, oldValue, number) {
1255
+ function setSelected(el, value, number) {
1244
1256
  const isMultiple = el.multiple;
1245
1257
  const isArrayValue = shared.isArray(value);
1246
1258
  if (isMultiple && !isArrayValue && !shared.isSet(value)) {
@@ -1265,12 +1277,10 @@ function setSelected(el, value, oldValue, number) {
1265
1277
  } else {
1266
1278
  option.selected = value.has(optionValue);
1267
1279
  }
1268
- } else {
1269
- if (shared.looseEqual(getValue(option), value)) {
1270
- if (el.selectedIndex !== i)
1271
- el.selectedIndex = i;
1272
- return;
1273
- }
1280
+ } else if (shared.looseEqual(getValue(option), value)) {
1281
+ if (el.selectedIndex !== i)
1282
+ el.selectedIndex = i;
1283
+ return;
1274
1284
  }
1275
1285
  }
1276
1286
  if (!isMultiple && el.selectedIndex !== -1) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-dom v3.4.19
2
+ * @vue/runtime-dom v3.4.21
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -358,10 +358,11 @@ function patchClass(el, value, isSVG) {
358
358
  }
359
359
  }
360
360
 
361
- const vShowOldKey = Symbol("_vod");
361
+ const vShowOriginalDisplay = Symbol("_vod");
362
+ const vShowHidden = Symbol("_vsh");
362
363
  const vShow = {
363
364
  beforeMount(el, { value }, { transition }) {
364
- el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
365
+ el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
365
366
  if (transition && value) {
366
367
  transition.beforeEnter(el);
367
368
  } else {
@@ -374,7 +375,7 @@ const vShow = {
374
375
  }
375
376
  },
376
377
  updated(el, { value, oldValue }, { transition }) {
377
- if (!value === !oldValue && (el.style.display === el[vShowOldKey] || !value))
378
+ if (!value === !oldValue)
378
379
  return;
379
380
  if (transition) {
380
381
  if (value) {
@@ -395,7 +396,8 @@ const vShow = {
395
396
  }
396
397
  };
397
398
  function setDisplay(el, value) {
398
- el.style.display = value ? el[vShowOldKey] : "none";
399
+ el.style.display = value ? el[vShowOriginalDisplay] : "none";
400
+ el[vShowHidden] = !value;
399
401
  }
400
402
  function initVShowForSSR() {
401
403
  vShow.getSSRProps = ({ value }) => {
@@ -414,13 +416,21 @@ const displayRE = /(^|;)\s*display\s*:/;
414
416
  function patchStyle(el, prev, next) {
415
417
  const style = el.style;
416
418
  const isCssString = shared.isString(next);
417
- const currentDisplay = style.display;
418
419
  let hasControlledDisplay = false;
419
420
  if (next && !isCssString) {
420
- if (prev && !shared.isString(prev)) {
421
- for (const key in prev) {
422
- if (next[key] == null) {
423
- setStyle(style, key, "");
421
+ if (prev) {
422
+ if (!shared.isString(prev)) {
423
+ for (const key in prev) {
424
+ if (next[key] == null) {
425
+ setStyle(style, key, "");
426
+ }
427
+ }
428
+ } else {
429
+ for (const prevStyle of prev.split(";")) {
430
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
431
+ if (next[key] == null) {
432
+ setStyle(style, key, "");
433
+ }
424
434
  }
425
435
  }
426
436
  }
@@ -444,9 +454,11 @@ function patchStyle(el, prev, next) {
444
454
  el.removeAttribute("style");
445
455
  }
446
456
  }
447
- if (vShowOldKey in el) {
448
- el[vShowOldKey] = hasControlledDisplay ? style.display : "";
449
- style.display = currentDisplay;
457
+ if (vShowOriginalDisplay in el) {
458
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
459
+ if (el[vShowHidden]) {
460
+ style.display = "none";
461
+ }
450
462
  }
451
463
  }
452
464
  const importantRE = /\s*!important$/;
@@ -522,15 +534,15 @@ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspe
522
534
  const tag = el.tagName;
523
535
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
524
536
  !tag.includes("-")) {
525
- el._value = value;
526
- const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
537
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
527
538
  const newValue = value == null ? "" : value;
528
- if (oldValue !== newValue) {
539
+ if (oldValue !== newValue || !("_value" in el)) {
529
540
  el.value = newValue;
530
541
  }
531
542
  if (value == null) {
532
543
  el.removeAttribute(key);
533
544
  }
545
+ el._value = value;
534
546
  return;
535
547
  }
536
548
  let needRemove = false;
@@ -1184,19 +1196,19 @@ const vModelSelect = {
1184
1196
  },
1185
1197
  // set value in mounted & updated because <select> relies on its children
1186
1198
  // <option>s.
1187
- mounted(el, { value, oldValue, modifiers: { number } }) {
1188
- setSelected(el, value, oldValue, number);
1199
+ mounted(el, { value, modifiers: { number } }) {
1200
+ setSelected(el, value, number);
1189
1201
  },
1190
1202
  beforeUpdate(el, _binding, vnode) {
1191
1203
  el[assignKey] = getModelAssigner(vnode);
1192
1204
  },
1193
- updated(el, { value, oldValue, modifiers: { number } }) {
1205
+ updated(el, { value, modifiers: { number } }) {
1194
1206
  if (!el._assigning) {
1195
- setSelected(el, value, oldValue, number);
1207
+ setSelected(el, value, number);
1196
1208
  }
1197
1209
  }
1198
1210
  };
1199
- function setSelected(el, value, oldValue, number) {
1211
+ function setSelected(el, value, number) {
1200
1212
  const isMultiple = el.multiple;
1201
1213
  const isArrayValue = shared.isArray(value);
1202
1214
  if (isMultiple && !isArrayValue && !shared.isSet(value)) {
@@ -1218,12 +1230,10 @@ function setSelected(el, value, oldValue, number) {
1218
1230
  } else {
1219
1231
  option.selected = value.has(optionValue);
1220
1232
  }
1221
- } else {
1222
- if (shared.looseEqual(getValue(option), value)) {
1223
- if (el.selectedIndex !== i)
1224
- el.selectedIndex = i;
1225
- return;
1226
- }
1233
+ } else if (shared.looseEqual(getValue(option), value)) {
1234
+ if (el.selectedIndex !== i)
1235
+ el.selectedIndex = i;
1236
+ return;
1227
1237
  }
1228
1238
  }
1229
1239
  if (!isMultiple && el.selectedIndex !== -1) {
@@ -117,9 +117,11 @@ export declare const withKeys: <T extends (event: KeyboardEvent) => any>(fn: T &
117
117
  } | undefined;
118
118
  }, modifiers: string[]) => T;
119
119
 
120
- declare const vShowOldKey: unique symbol;
120
+ declare const vShowOriginalDisplay: unique symbol;
121
+ declare const vShowHidden: unique symbol;
121
122
  interface VShowElement extends HTMLElement {
122
- [vShowOldKey]: string;
123
+ [vShowOriginalDisplay]: string;
124
+ [vShowHidden]: boolean;
123
125
  }
124
126
  export declare const vShow: ObjectDirective<VShowElement> & {
125
127
  name?: 'show';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-dom v3.4.19
2
+ * @vue/runtime-dom v3.4.21
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -730,20 +730,20 @@ function hasOwnProperty(key) {
730
730
  return obj.hasOwnProperty(key);
731
731
  }
732
732
  class BaseReactiveHandler {
733
- constructor(_isReadonly = false, _shallow = false) {
733
+ constructor(_isReadonly = false, _isShallow = false) {
734
734
  this._isReadonly = _isReadonly;
735
- this._shallow = _shallow;
735
+ this._isShallow = _isShallow;
736
736
  }
737
737
  get(target, key, receiver) {
738
- const isReadonly2 = this._isReadonly, shallow = this._shallow;
738
+ const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
739
739
  if (key === "__v_isReactive") {
740
740
  return !isReadonly2;
741
741
  } else if (key === "__v_isReadonly") {
742
742
  return isReadonly2;
743
743
  } else if (key === "__v_isShallow") {
744
- return shallow;
744
+ return isShallow2;
745
745
  } else if (key === "__v_raw") {
746
- if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
746
+ if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
747
747
  // this means the reciever is a user proxy of the reactive proxy
748
748
  Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
749
749
  return target;
@@ -766,7 +766,7 @@ class BaseReactiveHandler {
766
766
  if (!isReadonly2) {
767
767
  track(target, "get", key);
768
768
  }
769
- if (shallow) {
769
+ if (isShallow2) {
770
770
  return res;
771
771
  }
772
772
  if (isRef(res)) {
@@ -779,12 +779,12 @@ class BaseReactiveHandler {
779
779
  }
780
780
  }
781
781
  class MutableReactiveHandler extends BaseReactiveHandler {
782
- constructor(shallow = false) {
783
- super(false, shallow);
782
+ constructor(isShallow2 = false) {
783
+ super(false, isShallow2);
784
784
  }
785
785
  set(target, key, value, receiver) {
786
786
  let oldValue = target[key];
787
- if (!this._shallow) {
787
+ if (!this._isShallow) {
788
788
  const isOldValueReadonly = isReadonly(oldValue);
789
789
  if (!isShallow(value) && !isReadonly(value)) {
790
790
  oldValue = toRaw(oldValue);
@@ -836,8 +836,8 @@ class MutableReactiveHandler extends BaseReactiveHandler {
836
836
  }
837
837
  }
838
838
  class ReadonlyReactiveHandler extends BaseReactiveHandler {
839
- constructor(shallow = false) {
840
- super(true, shallow);
839
+ constructor(isShallow2 = false) {
840
+ super(true, isShallow2);
841
841
  }
842
842
  set(target, key) {
843
843
  {
@@ -1008,7 +1008,7 @@ function createReadonlyMethod(type) {
1008
1008
  return function(...args) {
1009
1009
  {
1010
1010
  const key = args[0] ? `on key "${args[0]}" ` : ``;
1011
- console.warn(
1011
+ warn$2(
1012
1012
  `${capitalize(type)} operation ${key}failed: target is readonly.`,
1013
1013
  toRaw(this)
1014
1014
  );
@@ -1146,7 +1146,7 @@ function checkIdentityKeys(target, has2, key) {
1146
1146
  const rawKey = toRaw(key);
1147
1147
  if (rawKey !== key && has2.call(target, rawKey)) {
1148
1148
  const type = toRawType(target);
1149
- console.warn(
1149
+ warn$2(
1150
1150
  `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`
1151
1151
  );
1152
1152
  }
@@ -1215,7 +1215,7 @@ function shallowReadonly(target) {
1215
1215
  function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
1216
1216
  if (!isObject(target)) {
1217
1217
  {
1218
- console.warn(`value cannot be made reactive: ${String(target)}`);
1218
+ warn$2(`value cannot be made reactive: ${String(target)}`);
1219
1219
  }
1220
1220
  return target;
1221
1221
  }
@@ -1268,6 +1268,7 @@ const toReadonly = (value) => isObject(value) ? readonly(value) : value;
1268
1268
  const COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;
1269
1269
  class ComputedRefImpl {
1270
1270
  constructor(getter, _setter, isReadonly, isSSR) {
1271
+ this.getter = getter;
1271
1272
  this._setter = _setter;
1272
1273
  this.dep = void 0;
1273
1274
  this.__v_isRef = true;
@@ -1290,7 +1291,11 @@ class ComputedRefImpl {
1290
1291
  }
1291
1292
  trackRefValue(self);
1292
1293
  if (self.effect._dirtyLevel >= 2) {
1293
- warn$2(COMPUTED_SIDE_EFFECT_WARN);
1294
+ if (this._warnRecursive) {
1295
+ warn$2(COMPUTED_SIDE_EFFECT_WARN, `
1296
+
1297
+ getter: `, this.getter);
1298
+ }
1294
1299
  triggerRefValue(self, 2);
1295
1300
  }
1296
1301
  return self._value;
@@ -1446,7 +1451,7 @@ function customRef(factory) {
1446
1451
  }
1447
1452
  function toRefs(object) {
1448
1453
  if (!isProxy(object)) {
1449
- console.warn(`toRefs() expects a reactive object but received a plain one.`);
1454
+ warn$2(`toRefs() expects a reactive object but received a plain one.`);
1450
1455
  }
1451
1456
  const ret = isArray(object) ? new Array(object.length) : {};
1452
1457
  for (const key in object) {
@@ -1528,7 +1533,10 @@ function warn$1(msg, ...args) {
1528
1533
  instance,
1529
1534
  11,
1530
1535
  [
1531
- msg + args.join(""),
1536
+ msg + args.map((a) => {
1537
+ var _a, _b;
1538
+ return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
1539
+ }).join(""),
1532
1540
  instance && instance.proxy,
1533
1541
  trace.map(
1534
1542
  ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
@@ -2695,8 +2703,10 @@ const SuspenseImpl = {
2695
2703
  rendererInternals
2696
2704
  );
2697
2705
  } else {
2698
- if (parentSuspense && parentSuspense.deps > 0) {
2706
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
2699
2707
  n2.suspense = n1.suspense;
2708
+ n2.suspense.vnode = n2;
2709
+ n2.el = n1.el;
2700
2710
  return;
2701
2711
  }
2702
2712
  patchSuspense(
@@ -3629,7 +3639,6 @@ const BaseTransitionImpl = {
3629
3639
  setup(props, { slots }) {
3630
3640
  const instance = getCurrentInstance();
3631
3641
  const state = useTransitionState();
3632
- let prevTransitionKey;
3633
3642
  return () => {
3634
3643
  const children = slots.default && getTransitionRawChildren(slots.default(), true);
3635
3644
  if (!children || !children.length) {
@@ -3672,18 +3681,7 @@ const BaseTransitionImpl = {
3672
3681
  setTransitionHooks(innerChild, enterHooks);
3673
3682
  const oldChild = instance.subTree;
3674
3683
  const oldInnerChild = oldChild && getKeepAliveChild(oldChild);
3675
- let transitionKeyChanged = false;
3676
- const { getTransitionKey } = innerChild.type;
3677
- if (getTransitionKey) {
3678
- const key = getTransitionKey();
3679
- if (prevTransitionKey === void 0) {
3680
- prevTransitionKey = key;
3681
- } else if (key !== prevTransitionKey) {
3682
- prevTransitionKey = key;
3683
- transitionKeyChanged = true;
3684
- }
3685
- }
3686
- if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {
3684
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {
3687
3685
  const leavingHooks = resolveTransitionHooks(
3688
3686
  oldInnerChild,
3689
3687
  rawProps,
@@ -8960,9 +8958,8 @@ const unsetCurrentInstance = () => {
8960
8958
  internalSetCurrentInstance(null);
8961
8959
  };
8962
8960
  const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
8963
- function validateComponentName(name, config) {
8964
- const appIsNativeTag = config.isNativeTag || NO;
8965
- if (isBuiltInTag(name) || appIsNativeTag(name)) {
8961
+ function validateComponentName(name, { isNativeTag }) {
8962
+ if (isBuiltInTag(name) || isNativeTag(name)) {
8966
8963
  warn$1(
8967
8964
  "Do not use built-in or reserved HTML elements as component id: " + name
8968
8965
  );
@@ -9255,7 +9252,14 @@ function isClassComponent(value) {
9255
9252
  }
9256
9253
 
9257
9254
  const computed = (getterOrOptions, debugOptions) => {
9258
- return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
9255
+ const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
9256
+ {
9257
+ const i = getCurrentInstance();
9258
+ if (i && i.appContext.config.warnRecursiveComputed) {
9259
+ c._warnRecursive = true;
9260
+ }
9261
+ }
9262
+ return c;
9259
9263
  };
9260
9264
 
9261
9265
  function useModel(props, name, options = EMPTY_OBJ) {
@@ -9533,7 +9537,7 @@ function isMemoSame(cached, memo) {
9533
9537
  return true;
9534
9538
  }
9535
9539
 
9536
- const version = "3.4.19";
9540
+ const version = "3.4.21";
9537
9541
  const warn = warn$1 ;
9538
9542
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9539
9543
  const devtools = devtools$1 ;
@@ -9894,10 +9898,11 @@ function patchClass(el, value, isSVG) {
9894
9898
  }
9895
9899
  }
9896
9900
 
9897
- const vShowOldKey = Symbol("_vod");
9901
+ const vShowOriginalDisplay = Symbol("_vod");
9902
+ const vShowHidden = Symbol("_vsh");
9898
9903
  const vShow = {
9899
9904
  beforeMount(el, { value }, { transition }) {
9900
- el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
9905
+ el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
9901
9906
  if (transition && value) {
9902
9907
  transition.beforeEnter(el);
9903
9908
  } else {
@@ -9910,7 +9915,7 @@ const vShow = {
9910
9915
  }
9911
9916
  },
9912
9917
  updated(el, { value, oldValue }, { transition }) {
9913
- if (!value === !oldValue && (el.style.display === el[vShowOldKey] || !value))
9918
+ if (!value === !oldValue)
9914
9919
  return;
9915
9920
  if (transition) {
9916
9921
  if (value) {
@@ -9934,7 +9939,8 @@ const vShow = {
9934
9939
  vShow.name = "show";
9935
9940
  }
9936
9941
  function setDisplay(el, value) {
9937
- el.style.display = value ? el[vShowOldKey] : "none";
9942
+ el.style.display = value ? el[vShowOriginalDisplay] : "none";
9943
+ el[vShowHidden] = !value;
9938
9944
  }
9939
9945
 
9940
9946
  const CSS_VAR_TEXT = Symbol("CSS_VAR_TEXT" );
@@ -10007,13 +10013,21 @@ const displayRE = /(^|;)\s*display\s*:/;
10007
10013
  function patchStyle(el, prev, next) {
10008
10014
  const style = el.style;
10009
10015
  const isCssString = isString(next);
10010
- const currentDisplay = style.display;
10011
10016
  let hasControlledDisplay = false;
10012
10017
  if (next && !isCssString) {
10013
- if (prev && !isString(prev)) {
10014
- for (const key in prev) {
10015
- if (next[key] == null) {
10016
- setStyle(style, key, "");
10018
+ if (prev) {
10019
+ if (!isString(prev)) {
10020
+ for (const key in prev) {
10021
+ if (next[key] == null) {
10022
+ setStyle(style, key, "");
10023
+ }
10024
+ }
10025
+ } else {
10026
+ for (const prevStyle of prev.split(";")) {
10027
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10028
+ if (next[key] == null) {
10029
+ setStyle(style, key, "");
10030
+ }
10017
10031
  }
10018
10032
  }
10019
10033
  }
@@ -10037,9 +10051,11 @@ function patchStyle(el, prev, next) {
10037
10051
  el.removeAttribute("style");
10038
10052
  }
10039
10053
  }
10040
- if (vShowOldKey in el) {
10041
- el[vShowOldKey] = hasControlledDisplay ? style.display : "";
10042
- style.display = currentDisplay;
10054
+ if (vShowOriginalDisplay in el) {
10055
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
10056
+ if (el[vShowHidden]) {
10057
+ style.display = "none";
10058
+ }
10043
10059
  }
10044
10060
  }
10045
10061
  const semicolonRE = /[^\\];\s*$/;
@@ -10123,15 +10139,15 @@ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspe
10123
10139
  const tag = el.tagName;
10124
10140
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
10125
10141
  !tag.includes("-")) {
10126
- el._value = value;
10127
- const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
10142
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
10128
10143
  const newValue = value == null ? "" : value;
10129
- if (oldValue !== newValue) {
10144
+ if (oldValue !== newValue || !("_value" in el)) {
10130
10145
  el.value = newValue;
10131
10146
  }
10132
10147
  if (value == null) {
10133
10148
  el.removeAttribute(key);
10134
10149
  }
10150
+ el._value = value;
10135
10151
  return;
10136
10152
  }
10137
10153
  let needRemove = false;
@@ -10815,19 +10831,19 @@ const vModelSelect = {
10815
10831
  },
10816
10832
  // set value in mounted & updated because <select> relies on its children
10817
10833
  // <option>s.
10818
- mounted(el, { value, oldValue, modifiers: { number } }) {
10819
- setSelected(el, value, oldValue, number);
10834
+ mounted(el, { value, modifiers: { number } }) {
10835
+ setSelected(el, value, number);
10820
10836
  },
10821
10837
  beforeUpdate(el, _binding, vnode) {
10822
10838
  el[assignKey] = getModelAssigner(vnode);
10823
10839
  },
10824
- updated(el, { value, oldValue, modifiers: { number } }) {
10840
+ updated(el, { value, modifiers: { number } }) {
10825
10841
  if (!el._assigning) {
10826
- setSelected(el, value, oldValue, number);
10842
+ setSelected(el, value, number);
10827
10843
  }
10828
10844
  }
10829
10845
  };
10830
- function setSelected(el, value, oldValue, number) {
10846
+ function setSelected(el, value, number) {
10831
10847
  const isMultiple = el.multiple;
10832
10848
  const isArrayValue = isArray(value);
10833
10849
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -10852,12 +10868,10 @@ function setSelected(el, value, oldValue, number) {
10852
10868
  } else {
10853
10869
  option.selected = value.has(optionValue);
10854
10870
  }
10855
- } else {
10856
- if (looseEqual(getValue(option), value)) {
10857
- if (el.selectedIndex !== i)
10858
- el.selectedIndex = i;
10859
- return;
10860
- }
10871
+ } else if (looseEqual(getValue(option), value)) {
10872
+ if (el.selectedIndex !== i)
10873
+ el.selectedIndex = i;
10874
+ return;
10861
10875
  }
10862
10876
  }
10863
10877
  if (!isMultiple && el.selectedIndex !== -1) {