@vue/compat 3.5.22 → 3.5.24

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/compat v3.5.22
2
+ * @vue/compat v3.5.24
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -4671,14 +4671,16 @@ Server rendered element contains more child nodes than client vdom.`
4671
4671
  if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) {
4672
4672
  clientText = clientText.slice(1);
4673
4673
  }
4674
- if (el.textContent !== clientText) {
4674
+ const { textContent } = el;
4675
+ if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM
4676
+ textContent !== clientText.replace(/\r\n|\r/g, "\n")) {
4675
4677
  if (!isMismatchAllowed(el, 0 /* TEXT */)) {
4676
4678
  (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(
4677
4679
  `Hydration text content mismatch on`,
4678
4680
  el,
4679
4681
  `
4680
- - rendered on server: ${el.textContent}
4681
- - expected on client: ${vnode.children}`
4682
+ - rendered on server: ${textContent}
4683
+ - expected on client: ${clientText}`
4682
4684
  );
4683
4685
  logMismatchError();
4684
4686
  }
@@ -5284,7 +5286,10 @@ function defineAsyncComponent(source) {
5284
5286
  error: error.value
5285
5287
  });
5286
5288
  } else if (loadingComponent && !delayed.value) {
5287
- return createVNode(loadingComponent);
5289
+ return createInnerComp(
5290
+ loadingComponent,
5291
+ instance
5292
+ );
5288
5293
  }
5289
5294
  };
5290
5295
  }
@@ -6383,7 +6388,7 @@ const PublicInstanceProxyHandlers = {
6383
6388
  } else if (hasSetupBinding(setupState, key)) {
6384
6389
  accessCache[key] = 1 /* SETUP */;
6385
6390
  return setupState[key];
6386
- } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
6391
+ } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {
6387
6392
  accessCache[key] = 2 /* DATA */;
6388
6393
  return data[key];
6389
6394
  } else if (
@@ -6455,7 +6460,7 @@ const PublicInstanceProxyHandlers = {
6455
6460
  } else if (!!(process.env.NODE_ENV !== "production") && setupState.__isScriptSetup && hasOwn(setupState, key)) {
6456
6461
  warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
6457
6462
  return false;
6458
- } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
6463
+ } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {
6459
6464
  data[key] = value;
6460
6465
  return true;
6461
6466
  } else if (hasOwn(instance.props, key)) {
@@ -6484,7 +6489,7 @@ const PublicInstanceProxyHandlers = {
6484
6489
  _: { data, setupState, accessCache, ctx, appContext, propsOptions, type }
6485
6490
  }, key) {
6486
6491
  let normalizedProps, cssModules;
6487
- return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
6492
+ return !!(accessCache[key] || __VUE_OPTIONS_API__ && data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
6488
6493
  },
6489
6494
  defineProperty(target, key, descriptor) {
6490
6495
  if (descriptor.get != null) {
@@ -7231,7 +7236,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7231
7236
  return vm;
7232
7237
  }
7233
7238
  }
7234
- Vue.version = `2.6.14-compat:${"3.5.22"}`;
7239
+ Vue.version = `2.6.14-compat:${"3.5.24"}`;
7235
7240
  Vue.config = singletonApp.config;
7236
7241
  Vue.use = (plugin, ...options) => {
7237
7242
  if (plugin && isFunction(plugin.install)) {
@@ -8706,15 +8711,25 @@ function baseCreateRenderer(options, createHydrationFns) {
8706
8711
  optimized
8707
8712
  );
8708
8713
  } else {
8709
- patchElement(
8710
- n1,
8711
- n2,
8712
- parentComponent,
8713
- parentSuspense,
8714
- namespace,
8715
- slotScopeIds,
8716
- optimized
8717
- );
8714
+ const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
8715
+ try {
8716
+ if (customElement) {
8717
+ customElement._beginPatch();
8718
+ }
8719
+ patchElement(
8720
+ n1,
8721
+ n2,
8722
+ parentComponent,
8723
+ parentSuspense,
8724
+ namespace,
8725
+ slotScopeIds,
8726
+ optimized
8727
+ );
8728
+ } finally {
8729
+ if (customElement) {
8730
+ customElement._endPatch();
8731
+ }
8732
+ }
8718
8733
  }
8719
8734
  };
8720
8735
  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
@@ -11030,7 +11045,8 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11030
11045
  pendingId,
11031
11046
  effects,
11032
11047
  parentComponent: parentComponent2,
11033
- container: container2
11048
+ container: container2,
11049
+ isInFallback
11034
11050
  } = suspense;
11035
11051
  let delayEnter = false;
11036
11052
  if (suspense.isHydrating) {
@@ -11047,6 +11063,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11047
11063
  0
11048
11064
  );
11049
11065
  queuePostFlushCb(effects);
11066
+ if (isInFallback && vnode2.ssFallback) {
11067
+ vnode2.ssFallback.el = null;
11068
+ }
11050
11069
  }
11051
11070
  };
11052
11071
  }
@@ -11055,6 +11074,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11055
11074
  anchor = next(activeBranch);
11056
11075
  }
11057
11076
  unmount(activeBranch, parentComponent2, suspense, true);
11077
+ if (!delayEnter && isInFallback && vnode2.ssFallback) {
11078
+ vnode2.ssFallback.el = null;
11079
+ }
11058
11080
  }
11059
11081
  if (!delayEnter) {
11060
11082
  move(pendingBranch, container2, anchor, 0);
@@ -11173,6 +11195,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11173
11195
  optimized2
11174
11196
  );
11175
11197
  if (placeholder) {
11198
+ vnode2.placeholder = null;
11176
11199
  remove(placeholder);
11177
11200
  }
11178
11201
  updateHOCHostEl(instance, vnode2.el);
@@ -12441,7 +12464,7 @@ function isMemoSame(cached, memo) {
12441
12464
  return true;
12442
12465
  }
12443
12466
 
12444
- const version = "3.5.22";
12467
+ const version = "3.5.24";
12445
12468
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12446
12469
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12447
12470
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -13351,6 +13374,9 @@ function shouldSetAsProp(el, key, value, isSVG) {
13351
13374
  if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
13352
13375
  return false;
13353
13376
  }
13377
+ if (key === "sandbox" && el.tagName === "IFRAME") {
13378
+ return false;
13379
+ }
13354
13380
  if (key === "form") {
13355
13381
  return false;
13356
13382
  }
@@ -13411,6 +13437,8 @@ class VueElement extends BaseClass {
13411
13437
  this._nonce = this._def.nonce;
13412
13438
  this._connected = false;
13413
13439
  this._resolved = false;
13440
+ this._patching = false;
13441
+ this._dirty = false;
13414
13442
  this._numberProps = null;
13415
13443
  this._styleChildren = /* @__PURE__ */ new WeakSet();
13416
13444
  this._ob = null;
@@ -13586,7 +13614,7 @@ class VueElement extends BaseClass {
13586
13614
  return this._getProp(key);
13587
13615
  },
13588
13616
  set(val) {
13589
- this._setProp(key, val, true, true);
13617
+ this._setProp(key, val, true, !this._patching);
13590
13618
  }
13591
13619
  });
13592
13620
  }
@@ -13612,6 +13640,7 @@ class VueElement extends BaseClass {
13612
13640
  */
13613
13641
  _setProp(key, val, shouldReflect = true, shouldUpdate = false) {
13614
13642
  if (val !== this._props[key]) {
13643
+ this._dirty = true;
13615
13644
  if (val === REMOVAL) {
13616
13645
  delete this._props[key];
13617
13646
  } else {
@@ -13766,10 +13795,14 @@ class VueElement extends BaseClass {
13766
13795
  if (this._teleportTargets) {
13767
13796
  roots.push(...this._teleportTargets);
13768
13797
  }
13769
- return roots.reduce((res, i) => {
13770
- res.push(...Array.from(i.querySelectorAll("slot")));
13771
- return res;
13772
- }, []);
13798
+ const slots = /* @__PURE__ */ new Set();
13799
+ for (const root of roots) {
13800
+ const found = root.querySelectorAll("slot");
13801
+ for (let i = 0; i < found.length; i++) {
13802
+ slots.add(found[i]);
13803
+ }
13804
+ }
13805
+ return Array.from(slots);
13773
13806
  }
13774
13807
  /**
13775
13808
  * @internal
@@ -13777,6 +13810,22 @@ class VueElement extends BaseClass {
13777
13810
  _injectChildStyle(comp) {
13778
13811
  this._applyStyles(comp.styles, comp);
13779
13812
  }
13813
+ /**
13814
+ * @internal
13815
+ */
13816
+ _beginPatch() {
13817
+ this._patching = true;
13818
+ this._dirty = false;
13819
+ }
13820
+ /**
13821
+ * @internal
13822
+ */
13823
+ _endPatch() {
13824
+ this._patching = false;
13825
+ if (this._dirty && this._instance) {
13826
+ this._update();
13827
+ }
13828
+ }
13780
13829
  /**
13781
13830
  * @internal
13782
13831
  */
@@ -13920,10 +13969,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
13920
13969
  instance
13921
13970
  )
13922
13971
  );
13923
- positionMap.set(
13924
- child,
13925
- child.el.getBoundingClientRect()
13926
- );
13972
+ positionMap.set(child, {
13973
+ left: child.el.offsetLeft,
13974
+ top: child.el.offsetTop
13975
+ });
13927
13976
  }
13928
13977
  }
13929
13978
  }
@@ -13954,7 +14003,10 @@ function callPendingCbs(c) {
13954
14003
  }
13955
14004
  }
13956
14005
  function recordPosition(c) {
13957
- newPositionMap.set(c, c.el.getBoundingClientRect());
14006
+ newPositionMap.set(c, {
14007
+ left: c.el.offsetLeft,
14008
+ top: c.el.offsetTop
14009
+ });
13958
14010
  }
13959
14011
  function applyTranslation(c) {
13960
14012
  const oldPos = positionMap.get(c);
@@ -14000,24 +14052,22 @@ function onCompositionEnd(e) {
14000
14052
  }
14001
14053
  }
14002
14054
  const assignKey = Symbol("_assign");
14055
+ function castValue(value, trim, number) {
14056
+ if (trim) value = value.trim();
14057
+ if (number) value = looseToNumber(value);
14058
+ return value;
14059
+ }
14003
14060
  const vModelText = {
14004
14061
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
14005
14062
  el[assignKey] = getModelAssigner(vnode);
14006
14063
  const castToNumber = number || vnode.props && vnode.props.type === "number";
14007
14064
  addEventListener(el, lazy ? "change" : "input", (e) => {
14008
14065
  if (e.target.composing) return;
14009
- let domValue = el.value;
14010
- if (trim) {
14011
- domValue = domValue.trim();
14012
- }
14013
- if (castToNumber) {
14014
- domValue = looseToNumber(domValue);
14015
- }
14016
- el[assignKey](domValue);
14066
+ el[assignKey](castValue(el.value, trim, castToNumber));
14017
14067
  });
14018
- if (trim) {
14068
+ if (trim || castToNumber) {
14019
14069
  addEventListener(el, "change", () => {
14020
- el.value = el.value.trim();
14070
+ el.value = castValue(el.value, trim, castToNumber);
14021
14071
  });
14022
14072
  }
14023
14073
  if (!lazy) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.22
2
+ * @vue/compat v3.5.24
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -4655,14 +4655,16 @@ Server rendered element contains more child nodes than client vdom.`
4655
4655
  if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) {
4656
4656
  clientText = clientText.slice(1);
4657
4657
  }
4658
- if (el.textContent !== clientText) {
4658
+ const { textContent } = el;
4659
+ if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM
4660
+ textContent !== clientText.replace(/\r\n|\r/g, "\n")) {
4659
4661
  if (!isMismatchAllowed(el, 0 /* TEXT */)) {
4660
4662
  warn$1(
4661
4663
  `Hydration text content mismatch on`,
4662
4664
  el,
4663
4665
  `
4664
- - rendered on server: ${el.textContent}
4665
- - expected on client: ${vnode.children}`
4666
+ - rendered on server: ${textContent}
4667
+ - expected on client: ${clientText}`
4666
4668
  );
4667
4669
  logMismatchError();
4668
4670
  }
@@ -5257,7 +5259,10 @@ Server rendered element contains fewer child nodes than client vdom.`
5257
5259
  error: error.value
5258
5260
  });
5259
5261
  } else if (loadingComponent && !delayed.value) {
5260
- return createVNode(loadingComponent);
5262
+ return createInnerComp(
5263
+ loadingComponent,
5264
+ instance
5265
+ );
5261
5266
  }
5262
5267
  };
5263
5268
  }
@@ -7193,7 +7198,7 @@ If this is a native custom element, make sure to exclude it from component resol
7193
7198
  return vm;
7194
7199
  }
7195
7200
  }
7196
- Vue.version = `2.6.14-compat:${"3.5.22"}`;
7201
+ Vue.version = `2.6.14-compat:${"3.5.24"}`;
7197
7202
  Vue.config = singletonApp.config;
7198
7203
  Vue.use = (plugin, ...options) => {
7199
7204
  if (plugin && isFunction(plugin.install)) {
@@ -8639,15 +8644,25 @@ If you want to remount the same app, move your app creation logic into a factory
8639
8644
  optimized
8640
8645
  );
8641
8646
  } else {
8642
- patchElement(
8643
- n1,
8644
- n2,
8645
- parentComponent,
8646
- parentSuspense,
8647
- namespace,
8648
- slotScopeIds,
8649
- optimized
8650
- );
8647
+ const customElement = !!(n1.el && n1.el._isVueCE) ? n1.el : null;
8648
+ try {
8649
+ if (customElement) {
8650
+ customElement._beginPatch();
8651
+ }
8652
+ patchElement(
8653
+ n1,
8654
+ n2,
8655
+ parentComponent,
8656
+ parentSuspense,
8657
+ namespace,
8658
+ slotScopeIds,
8659
+ optimized
8660
+ );
8661
+ } finally {
8662
+ if (customElement) {
8663
+ customElement._endPatch();
8664
+ }
8665
+ }
8651
8666
  }
8652
8667
  };
8653
8668
  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
@@ -10924,7 +10939,8 @@ If you want to remount the same app, move your app creation logic into a factory
10924
10939
  pendingId,
10925
10940
  effects,
10926
10941
  parentComponent: parentComponent2,
10927
- container: container2
10942
+ container: container2,
10943
+ isInFallback
10928
10944
  } = suspense;
10929
10945
  let delayEnter = false;
10930
10946
  if (suspense.isHydrating) {
@@ -10941,6 +10957,9 @@ If you want to remount the same app, move your app creation logic into a factory
10941
10957
  0
10942
10958
  );
10943
10959
  queuePostFlushCb(effects);
10960
+ if (isInFallback && vnode2.ssFallback) {
10961
+ vnode2.ssFallback.el = null;
10962
+ }
10944
10963
  }
10945
10964
  };
10946
10965
  }
@@ -10949,6 +10968,9 @@ If you want to remount the same app, move your app creation logic into a factory
10949
10968
  anchor = next(activeBranch);
10950
10969
  }
10951
10970
  unmount(activeBranch, parentComponent2, suspense, true);
10971
+ if (!delayEnter && isInFallback && vnode2.ssFallback) {
10972
+ vnode2.ssFallback.el = null;
10973
+ }
10952
10974
  }
10953
10975
  if (!delayEnter) {
10954
10976
  move(pendingBranch, container2, anchor, 0);
@@ -11067,6 +11089,7 @@ If you want to remount the same app, move your app creation logic into a factory
11067
11089
  optimized2
11068
11090
  );
11069
11091
  if (placeholder) {
11092
+ vnode2.placeholder = null;
11070
11093
  remove(placeholder);
11071
11094
  }
11072
11095
  updateHOCHostEl(instance, vnode2.el);
@@ -12307,7 +12330,7 @@ Component that was made reactive: `,
12307
12330
  return true;
12308
12331
  }
12309
12332
 
12310
- const version = "3.5.22";
12333
+ const version = "3.5.24";
12311
12334
  const warn = warn$1 ;
12312
12335
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12313
12336
  const devtools = devtools$1 ;
@@ -13198,6 +13221,9 @@ Expected function or array of functions, received type ${typeof value}.`
13198
13221
  if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
13199
13222
  return false;
13200
13223
  }
13224
+ if (key === "sandbox" && el.tagName === "IFRAME") {
13225
+ return false;
13226
+ }
13201
13227
  if (key === "form") {
13202
13228
  return false;
13203
13229
  }
@@ -13258,6 +13284,8 @@ Expected function or array of functions, received type ${typeof value}.`
13258
13284
  this._nonce = this._def.nonce;
13259
13285
  this._connected = false;
13260
13286
  this._resolved = false;
13287
+ this._patching = false;
13288
+ this._dirty = false;
13261
13289
  this._numberProps = null;
13262
13290
  this._styleChildren = /* @__PURE__ */ new WeakSet();
13263
13291
  this._ob = null;
@@ -13433,7 +13461,7 @@ Expected function or array of functions, received type ${typeof value}.`
13433
13461
  return this._getProp(key);
13434
13462
  },
13435
13463
  set(val) {
13436
- this._setProp(key, val, true, true);
13464
+ this._setProp(key, val, true, !this._patching);
13437
13465
  }
13438
13466
  });
13439
13467
  }
@@ -13459,6 +13487,7 @@ Expected function or array of functions, received type ${typeof value}.`
13459
13487
  */
13460
13488
  _setProp(key, val, shouldReflect = true, shouldUpdate = false) {
13461
13489
  if (val !== this._props[key]) {
13490
+ this._dirty = true;
13462
13491
  if (val === REMOVAL) {
13463
13492
  delete this._props[key];
13464
13493
  } else {
@@ -13613,10 +13642,14 @@ Expected function or array of functions, received type ${typeof value}.`
13613
13642
  if (this._teleportTargets) {
13614
13643
  roots.push(...this._teleportTargets);
13615
13644
  }
13616
- return roots.reduce((res, i) => {
13617
- res.push(...Array.from(i.querySelectorAll("slot")));
13618
- return res;
13619
- }, []);
13645
+ const slots = /* @__PURE__ */ new Set();
13646
+ for (const root of roots) {
13647
+ const found = root.querySelectorAll("slot");
13648
+ for (let i = 0; i < found.length; i++) {
13649
+ slots.add(found[i]);
13650
+ }
13651
+ }
13652
+ return Array.from(slots);
13620
13653
  }
13621
13654
  /**
13622
13655
  * @internal
@@ -13624,6 +13657,22 @@ Expected function or array of functions, received type ${typeof value}.`
13624
13657
  _injectChildStyle(comp) {
13625
13658
  this._applyStyles(comp.styles, comp);
13626
13659
  }
13660
+ /**
13661
+ * @internal
13662
+ */
13663
+ _beginPatch() {
13664
+ this._patching = true;
13665
+ this._dirty = false;
13666
+ }
13667
+ /**
13668
+ * @internal
13669
+ */
13670
+ _endPatch() {
13671
+ this._patching = false;
13672
+ if (this._dirty && this._instance) {
13673
+ this._update();
13674
+ }
13675
+ }
13627
13676
  /**
13628
13677
  * @internal
13629
13678
  */
@@ -13755,10 +13804,10 @@ Expected function or array of functions, received type ${typeof value}.`
13755
13804
  instance
13756
13805
  )
13757
13806
  );
13758
- positionMap.set(
13759
- child,
13760
- child.el.getBoundingClientRect()
13761
- );
13807
+ positionMap.set(child, {
13808
+ left: child.el.offsetLeft,
13809
+ top: child.el.offsetTop
13810
+ });
13762
13811
  }
13763
13812
  }
13764
13813
  }
@@ -13789,7 +13838,10 @@ Expected function or array of functions, received type ${typeof value}.`
13789
13838
  }
13790
13839
  }
13791
13840
  function recordPosition(c) {
13792
- newPositionMap.set(c, c.el.getBoundingClientRect());
13841
+ newPositionMap.set(c, {
13842
+ left: c.el.offsetLeft,
13843
+ top: c.el.offsetTop
13844
+ });
13793
13845
  }
13794
13846
  function applyTranslation(c) {
13795
13847
  const oldPos = positionMap.get(c);
@@ -13835,24 +13887,22 @@ Expected function or array of functions, received type ${typeof value}.`
13835
13887
  }
13836
13888
  }
13837
13889
  const assignKey = Symbol("_assign");
13890
+ function castValue(value, trim, number) {
13891
+ if (trim) value = value.trim();
13892
+ if (number) value = looseToNumber(value);
13893
+ return value;
13894
+ }
13838
13895
  const vModelText = {
13839
13896
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
13840
13897
  el[assignKey] = getModelAssigner(vnode);
13841
13898
  const castToNumber = number || vnode.props && vnode.props.type === "number";
13842
13899
  addEventListener(el, lazy ? "change" : "input", (e) => {
13843
13900
  if (e.target.composing) return;
13844
- let domValue = el.value;
13845
- if (trim) {
13846
- domValue = domValue.trim();
13847
- }
13848
- if (castToNumber) {
13849
- domValue = looseToNumber(domValue);
13850
- }
13851
- el[assignKey](domValue);
13901
+ el[assignKey](castValue(el.value, trim, castToNumber));
13852
13902
  });
13853
- if (trim) {
13903
+ if (trim || castToNumber) {
13854
13904
  addEventListener(el, "change", () => {
13855
- el.value = el.value.trim();
13905
+ el.value = castValue(el.value, trim, castToNumber);
13856
13906
  });
13857
13907
  }
13858
13908
  if (!lazy) {