@vue/runtime-dom 3.5.10 → 3.5.12

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.10
2
+ * @vue/runtime-dom v3.5.12
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -555,7 +555,7 @@ function patchAttr(el, key, value, isSVG, instance, isBoolean = shared.isSpecial
555
555
  }
556
556
  }
557
557
 
558
- function patchDOMProp(el, key, value, parentComponent) {
558
+ function patchDOMProp(el, key, value, parentComponent, attrName) {
559
559
  if (key === "innerHTML" || key === "textContent") {
560
560
  if (value != null) {
561
561
  el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
@@ -603,7 +603,7 @@ function patchDOMProp(el, key, value, parentComponent) {
603
603
  );
604
604
  }
605
605
  }
606
- needRemove && el.removeAttribute(key);
606
+ needRemove && el.removeAttribute(attrName || key);
607
607
  }
608
608
 
609
609
  function addEventListener(el, event, handler, options) {
@@ -713,7 +713,7 @@ const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) =>
713
713
  // #11081 force set props for possible async custom element
714
714
  el._isVueCE && (/[A-Z]/.test(key) || !shared.isString(nextValue))
715
715
  ) {
716
- patchDOMProp(el, shared.camelize(key), nextValue);
716
+ patchDOMProp(el, shared.camelize(key), nextValue, parentComponent, key);
717
717
  } else {
718
718
  if (key === "true-value") {
719
719
  el._trueValue = nextValue;
@@ -1431,7 +1431,7 @@ const vModelCheckbox = {
1431
1431
  setChecked(el, binding, vnode);
1432
1432
  }
1433
1433
  };
1434
- function setChecked(el, { value }, vnode) {
1434
+ function setChecked(el, { value, oldValue }, vnode) {
1435
1435
  el._modelValue = value;
1436
1436
  let checked;
1437
1437
  if (shared.isArray(value)) {
@@ -1439,6 +1439,7 @@ function setChecked(el, { value }, vnode) {
1439
1439
  } else if (shared.isSet(value)) {
1440
1440
  checked = value.has(vnode.props.value);
1441
1441
  } else {
1442
+ if (value === oldValue) return;
1442
1443
  checked = shared.looseEqual(value, getCheckboxValue(el, true));
1443
1444
  }
1444
1445
  if (el.checked !== checked) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-dom v3.5.10
2
+ * @vue/runtime-dom v3.5.12
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -540,7 +540,7 @@ function patchAttr(el, key, value, isSVG, instance, isBoolean = shared.isSpecial
540
540
  }
541
541
  }
542
542
 
543
- function patchDOMProp(el, key, value, parentComponent) {
543
+ function patchDOMProp(el, key, value, parentComponent, attrName) {
544
544
  if (key === "innerHTML" || key === "textContent") {
545
545
  if (value != null) {
546
546
  el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
@@ -582,7 +582,7 @@ function patchDOMProp(el, key, value, parentComponent) {
582
582
  el[key] = value;
583
583
  } catch (e) {
584
584
  }
585
- needRemove && el.removeAttribute(key);
585
+ needRemove && el.removeAttribute(attrName || key);
586
586
  }
587
587
 
588
588
  function addEventListener(el, event, handler, options) {
@@ -682,7 +682,7 @@ const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) =>
682
682
  // #11081 force set props for possible async custom element
683
683
  el._isVueCE && (/[A-Z]/.test(key) || !shared.isString(nextValue))
684
684
  ) {
685
- patchDOMProp(el, shared.camelize(key), nextValue);
685
+ patchDOMProp(el, shared.camelize(key), nextValue, parentComponent, key);
686
686
  } else {
687
687
  if (key === "true-value") {
688
688
  el._trueValue = nextValue;
@@ -1336,7 +1336,7 @@ const vModelCheckbox = {
1336
1336
  setChecked(el, binding, vnode);
1337
1337
  }
1338
1338
  };
1339
- function setChecked(el, { value }, vnode) {
1339
+ function setChecked(el, { value, oldValue }, vnode) {
1340
1340
  el._modelValue = value;
1341
1341
  let checked;
1342
1342
  if (shared.isArray(value)) {
@@ -1344,6 +1344,7 @@ function setChecked(el, { value }, vnode) {
1344
1344
  } else if (shared.isSet(value)) {
1345
1345
  checked = value.has(vnode.props.value);
1346
1346
  } else {
1347
+ if (value === oldValue) return;
1347
1348
  checked = shared.looseEqual(value, getCheckboxValue(el, true));
1348
1349
  }
1349
1350
  if (el.checked !== checked) {