vue 3.5.40 → 3.5.42

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.40
2
+ * vue v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -197,7 +197,7 @@ var Vue = (function (exports) {
197
197
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
198
198
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
199
199
  const isBooleanAttr = /* @__PURE__ */ makeMap(
200
- specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
200
+ specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
201
201
  );
202
202
  function includeBooleanAttr(value) {
203
203
  return !!value || value === "";
@@ -232,6 +232,23 @@ var Vue = (function (exports) {
232
232
  }
233
233
  return equal;
234
234
  }
235
+ function looseCompareCollections(a, b) {
236
+ if (a.size !== b.size) return false;
237
+ const candidates = Array.from(b);
238
+ const matched = new Uint8Array(candidates.length);
239
+ for (const item of a) {
240
+ let index = -1;
241
+ for (let i = 0; i < candidates.length; i++) {
242
+ if (!matched[i] && looseEqual(item, candidates[i])) {
243
+ index = i;
244
+ break;
245
+ }
246
+ }
247
+ if (index < 0) return false;
248
+ matched[index] = 1;
249
+ }
250
+ return true;
251
+ }
235
252
  function looseEqual(a, b) {
236
253
  if (a === b) return true;
237
254
  let aValidType = isDate(a);
@@ -255,6 +272,16 @@ var Vue = (function (exports) {
255
272
  if (!aValidType || !bValidType) {
256
273
  return false;
257
274
  }
275
+ aValidType = isMap(a);
276
+ bValidType = isMap(b);
277
+ if (aValidType || bValidType) {
278
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
279
+ }
280
+ aValidType = isSet(a);
281
+ bValidType = isSet(b);
282
+ if (aValidType || bValidType) {
283
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
284
+ }
258
285
  const aKeysCount = Object.keys(a).length;
259
286
  const bKeysCount = Object.keys(b).length;
260
287
  if (aKeysCount !== bKeysCount) {
@@ -2600,7 +2627,9 @@ var Vue = (function (exports) {
2600
2627
  cb.flags |= 1;
2601
2628
  }
2602
2629
  } else {
2603
- pendingPostFlushCbs.push(...cb);
2630
+ for (let i = 0; i < cb.length; i++) {
2631
+ pendingPostFlushCbs.push(cb[i]);
2632
+ }
2604
2633
  }
2605
2634
  queueFlush();
2606
2635
  }
@@ -2636,7 +2665,9 @@ var Vue = (function (exports) {
2636
2665
  );
2637
2666
  pendingPostFlushCbs.length = 0;
2638
2667
  if (activePostFlushCbs) {
2639
- activePostFlushCbs.push(...deduped);
2668
+ for (let i = 0; i < deduped.length; i++) {
2669
+ activePostFlushCbs.push(deduped[i]);
2670
+ }
2640
2671
  return;
2641
2672
  }
2642
2673
  activePostFlushCbs = deduped;
@@ -3897,7 +3928,11 @@ var Vue = (function (exports) {
3897
3928
  function setTransitionHooks(vnode, hooks) {
3898
3929
  if (vnode.shapeFlag & 6 && vnode.component) {
3899
3930
  vnode.transition = hooks;
3900
- setTransitionHooks(vnode.component.subTree, hooks);
3931
+ const subTree = vnode.component.subTree;
3932
+ setTransitionHooks(
3933
+ isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree,
3934
+ hooks
3935
+ );
3901
3936
  } else if (vnode.shapeFlag & 128) {
3902
3937
  vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3903
3938
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
@@ -4300,10 +4335,10 @@ var Vue = (function (exports) {
4300
4335
  getContainerType(container),
4301
4336
  optimized
4302
4337
  );
4303
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
4338
+ if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
4304
4339
  let subTree;
4305
4340
  if (isFragmentStart) {
4306
- subTree = createVNode(Fragment);
4341
+ subTree = createVNode(Static);
4307
4342
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4308
4343
  } else {
4309
4344
  subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
@@ -4437,6 +4472,9 @@ Server rendered element contains more child nodes than client vdom.`
4437
4472
  }
4438
4473
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
4439
4474
  key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
4475
+ if (isUnchangedResourceProp(el, key, props[key])) {
4476
+ continue;
4477
+ }
4440
4478
  patchProp(el, key, null, props[key], namespace, parentComponent);
4441
4479
  }
4442
4480
  }
@@ -4619,6 +4657,13 @@ Server rendered element contains fewer child nodes than client vdom.`
4619
4657
  };
4620
4658
  return [hydrate, hydrateNode];
4621
4659
  }
4660
+ const resourceProps = /* @__PURE__ */ new Set(["src", "srcset", "href", "poster"]);
4661
+ function isUnchangedResourceProp(el, key, clientValue) {
4662
+ if (!resourceProps.has(key)) {
4663
+ return false;
4664
+ }
4665
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
4666
+ }
4622
4667
  function propHasMismatch(el, key, clientValue, vnode, instance) {
4623
4668
  let mismatchType;
4624
4669
  let mismatchKey;
@@ -4656,7 +4701,10 @@ Server rendered element contains fewer child nodes than client vdom.`
4656
4701
  mismatchKey = "style";
4657
4702
  }
4658
4703
  } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
4659
- if (isBooleanAttr(key)) {
4704
+ if (key === "hidden") {
4705
+ actual = normalizeHiddenValue(el.getAttribute(key));
4706
+ expected = normalizeHiddenValue(clientValue);
4707
+ } else if (isBooleanAttr(key)) {
4660
4708
  actual = el.hasAttribute(key);
4661
4709
  expected = includeBooleanAttr(clientValue);
4662
4710
  } else if (clientValue == null) {
@@ -4692,6 +4740,15 @@ Server rendered element contains fewer child nodes than client vdom.`
4692
4740
  }
4693
4741
  return false;
4694
4742
  }
4743
+ function normalizeHiddenValue(value) {
4744
+ if (!isRenderableAttrValue(value)) {
4745
+ return false;
4746
+ }
4747
+ if (isString(value)) {
4748
+ return value.toLowerCase() === "until-found" ? "until-found" : "";
4749
+ }
4750
+ return includeBooleanAttr(value) ? "" : false;
4751
+ }
4695
4752
  function toClassSet(str) {
4696
4753
  return new Set(str.trim().split(/\s+/));
4697
4754
  }
@@ -5184,7 +5241,10 @@ Server rendered element contains fewer child nodes than client vdom.`
5184
5241
  if (pendingCacheKey != null) {
5185
5242
  if (isSuspense(instance.subTree.type)) {
5186
5243
  queuePostRenderEffect(() => {
5187
- cache.set(pendingCacheKey, getInnerChild(instance.subTree));
5244
+ const vnode = getInnerChild(instance.subTree);
5245
+ if (vnode.component) {
5246
+ cache.set(pendingCacheKey, vnode);
5247
+ }
5188
5248
  }, instance.subTree.suspense);
5189
5249
  } else {
5190
5250
  cache.set(pendingCacheKey, getInnerChild(instance.subTree));
@@ -5505,7 +5565,8 @@ If this is a native custom element, make sure to exclude it from component resol
5505
5565
  return slots;
5506
5566
  }
5507
5567
 
5508
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5568
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5569
+ if (props == null) props = {};
5509
5570
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
5510
5571
  const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
5511
5572
  const hasProps = Object.keys(slotProps).length > 0;
@@ -5584,12 +5645,41 @@ If this is a native custom element, make sure to exclude it from component resol
5584
5645
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
5585
5646
  return getPublicInstance(i.parent);
5586
5647
  };
5648
+ const resolveDevRootEl = (vnode) => {
5649
+ let found = false;
5650
+ while (true) {
5651
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
5652
+ const root = filterSingleRoot(vnode.children);
5653
+ if (!root) {
5654
+ return;
5655
+ }
5656
+ vnode = root;
5657
+ found = true;
5658
+ continue;
5659
+ }
5660
+ const component = vnode.component;
5661
+ if (component && component.subTree) {
5662
+ vnode = component.subTree;
5663
+ continue;
5664
+ }
5665
+ const suspense = vnode.suspense;
5666
+ if (suspense && suspense.activeBranch) {
5667
+ vnode = suspense.activeBranch;
5668
+ continue;
5669
+ }
5670
+ return found ? vnode.el : void 0;
5671
+ }
5672
+ };
5673
+ const getDevRootFragmentEl = (i) => {
5674
+ const el = i.subTree && resolveDevRootEl(i.subTree);
5675
+ return el === void 0 ? i.vnode.el : el;
5676
+ };
5587
5677
  const publicPropertiesMap = (
5588
5678
  // Move PURE marker to new line to workaround compiler discarding it
5589
5679
  // due to type annotation
5590
5680
  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
5591
5681
  $: (i) => i,
5592
- $el: (i) => i.vnode.el,
5682
+ $el: (i) => getDevRootFragmentEl(i) ,
5593
5683
  $data: (i) => i.data,
5594
5684
  $props: (i) => shallowReadonly(i.props) ,
5595
5685
  $attrs: (i) => shallowReadonly(i.attrs) ,
@@ -6689,7 +6779,7 @@ If you want to remount the same app, move your app creation logic into a factory
6689
6779
  args = rawArgs.map((a) => isString(a) ? a.trim() : a);
6690
6780
  }
6691
6781
  if (modifiers.number) {
6692
- args = rawArgs.map(looseToNumber);
6782
+ args = args.map(looseToNumber);
6693
6783
  }
6694
6784
  }
6695
6785
  {
@@ -6926,12 +7016,13 @@ If you want to remount the same app, move your app creation logic into a factory
6926
7016
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
6927
7017
  }
6928
7018
  if (vnode.transition) {
6929
- if (!isElementRoot(root)) {
7019
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
7020
+ if (!isElementRoot(child)) {
6930
7021
  warn$1(
6931
7022
  `Component inside <Transition> renders non-element root node that cannot be animated.`
6932
7023
  );
6933
7024
  }
6934
- setTransitionHooks(root, vnode.transition);
7025
+ setTransitionHooks(child, vnode.transition);
6935
7026
  }
6936
7027
  if (setRoot) {
6937
7028
  setRoot(root);
@@ -9331,7 +9422,7 @@ If you want to remount the same app, move your app creation logic into a factory
9331
9422
  if (suspense.deps <= 0) {
9332
9423
  suspense.resolve();
9333
9424
  } else if (isInFallback) {
9334
- if (!isHydrating) {
9425
+ if (!isHydrating && !suspense.isFallbackMountPending) {
9335
9426
  patch(
9336
9427
  activeBranch,
9337
9428
  newFallback,
@@ -9372,7 +9463,7 @@ If you want to remount the same app, move your app creation logic into a factory
9372
9463
  );
9373
9464
  if (suspense.deps <= 0) {
9374
9465
  suspense.resolve();
9375
- } else {
9466
+ } else if (!suspense.isFallbackMountPending) {
9376
9467
  patch(
9377
9468
  activeBranch,
9378
9469
  newFallback,
@@ -9579,7 +9670,9 @@ If you want to remount the same app, move your app creation logic into a factory
9579
9670
  let hasUnresolvedAncestor = false;
9580
9671
  while (parent) {
9581
9672
  if (parent.pendingBranch) {
9582
- parent.effects.push(...effects);
9673
+ for (let i = 0; i < effects.length; i++) {
9674
+ parent.effects.push(effects[i]);
9675
+ }
9583
9676
  hasUnresolvedAncestor = true;
9584
9677
  break;
9585
9678
  }
@@ -9611,9 +9704,10 @@ If you want to remount the same app, move your app creation logic into a factory
9611
9704
  if (!suspense.isInFallback) {
9612
9705
  return;
9613
9706
  }
9707
+ const latestFallback = suspense.vnode.ssFallback;
9614
9708
  patch(
9615
9709
  null,
9616
- fallbackVNode,
9710
+ latestFallback,
9617
9711
  container2,
9618
9712
  anchor2,
9619
9713
  parentComponent2,
@@ -9623,7 +9717,7 @@ If you want to remount the same app, move your app creation logic into a factory
9623
9717
  slotScopeIds,
9624
9718
  optimized
9625
9719
  );
9626
- setActiveBranch(suspense, fallbackVNode);
9720
+ setActiveBranch(suspense, latestFallback);
9627
9721
  };
9628
9722
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
9629
9723
  if (delayEnter) {
@@ -9944,6 +10038,14 @@ If you want to remount the same app, move your app creation logic into a factory
9944
10038
  if (vnode.key !== vnode.key) {
9945
10039
  warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
9946
10040
  }
10041
+ if (props && vnode.shapeFlag & 1) {
10042
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
10043
+ if (overwritingProp && hasContentChildren(vnode.children)) {
10044
+ warn$1(
10045
+ `The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`
10046
+ );
10047
+ }
10048
+ }
9947
10049
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
9948
10050
  !isBlockNode && // has current parent block
9949
10051
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
@@ -9957,6 +10059,11 @@ If you want to remount the same app, move your app creation logic into a factory
9957
10059
  }
9958
10060
  return vnode;
9959
10061
  }
10062
+ function hasContentChildren(children) {
10063
+ if (isString(children)) return children !== "";
10064
+ if (isArray(children)) return children.length > 0;
10065
+ return false;
10066
+ }
9960
10067
  const createVNode = createVNodeWithArgsTransform ;
9961
10068
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
9962
10069
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -10393,7 +10500,12 @@ Component that was made reactive: `,
10393
10500
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
10394
10501
  if (isSSR) {
10395
10502
  return setupResult.then((resolvedResult) => {
10396
- handleSetupResult(instance, resolvedResult, isSSR);
10503
+ setInSSRSetupState(true);
10504
+ try {
10505
+ handleSetupResult(instance, resolvedResult, isSSR);
10506
+ } finally {
10507
+ setInSSRSetupState(false);
10508
+ }
10397
10509
  }).catch((e) => {
10398
10510
  handleError(e, instance, 0);
10399
10511
  });
@@ -10857,7 +10969,7 @@ Component that was made reactive: `,
10857
10969
  return true;
10858
10970
  }
10859
10971
 
10860
- const version = "3.5.40";
10972
+ const version = "3.5.42";
10861
10973
  const warn = warn$1 ;
10862
10974
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10863
10975
  const devtools = devtools$1 ;
@@ -11435,7 +11547,11 @@ Component that was made reactive: `,
11435
11547
  }
11436
11548
  }
11437
11549
  if (name.startsWith("--")) {
11438
- style.setProperty(name, val);
11550
+ if (importantRE.test(val)) {
11551
+ style.setProperty(name, val.replace(importantRE, ""), "important");
11552
+ } else {
11553
+ style.setProperty(name, val);
11554
+ }
11439
11555
  } else {
11440
11556
  const prefixed = autoPrefix(style, name);
11441
11557
  if (importantRE.test(val)) {
@@ -11808,7 +11924,9 @@ Expected function or array of functions, received type ${typeof value}.`
11808
11924
  if (parent && parent._pendingResolve) {
11809
11925
  this._pendingResolve = parent._pendingResolve.then(() => {
11810
11926
  this._pendingResolve = void 0;
11811
- this._resolveDef();
11927
+ if (this.isConnected) {
11928
+ return this._resolveDef();
11929
+ }
11812
11930
  });
11813
11931
  } else {
11814
11932
  this._resolveDef();
@@ -11858,7 +11976,7 @@ Expected function or array of functions, received type ${typeof value}.`
11858
11976
  */
11859
11977
  _resolveDef() {
11860
11978
  if (this._pendingResolve) {
11861
- return;
11979
+ return this._pendingResolve;
11862
11980
  }
11863
11981
  for (let i = 0; i < this.attributes.length; i++) {
11864
11982
  this._setAttr(this.attributes[i].name);
@@ -11898,6 +12016,7 @@ Expected function or array of functions, received type ${typeof value}.`
11898
12016
  def.configureApp = this._def.configureApp;
11899
12017
  resolve(this._def = def, true);
11900
12018
  });
12019
+ return this._pendingResolve;
11901
12020
  } else {
11902
12021
  resolve(this._def);
11903
12022
  }
@@ -11935,6 +12054,11 @@ Expected function or array of functions, received type ${typeof value}.`
11935
12054
  }
11936
12055
  }
11937
12056
  for (const key of declaredPropKeys.map(camelize)) {
12057
+ if (key in Object.getPrototypeOf(this)) {
12058
+ warn(
12059
+ `Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`
12060
+ );
12061
+ }
11938
12062
  Object.defineProperty(this, key, {
11939
12063
  get() {
11940
12064
  return this._getProp(key);
@@ -12407,6 +12531,7 @@ Expected function or array of functions, received type ${typeof value}.`
12407
12531
  }
12408
12532
  }
12409
12533
  const assignKey = /* @__PURE__ */ Symbol("_assign");
12534
+ const initialValueKey = /* @__PURE__ */ Symbol("_initialValue");
12410
12535
  function castValue(value, trim, number) {
12411
12536
  if (trim) value = value.trim();
12412
12537
  if (number) value = looseToNumber(value);
@@ -12414,6 +12539,13 @@ Expected function or array of functions, received type ${typeof value}.`
12414
12539
  }
12415
12540
  const vModelText = {
12416
12541
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
12542
+ if (el.parentNode) {
12543
+ if (el.type === "text") {
12544
+ el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
12545
+ } else if (el.type === "textarea") {
12546
+ el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
12547
+ }
12548
+ }
12417
12549
  el[assignKey] = getModelAssigner(vnode);
12418
12550
  const castToNumber = number || vnode.props && vnode.props.type === "number";
12419
12551
  addEventListener(el, lazy ? "change" : "input", (e) => {
@@ -12432,8 +12564,15 @@ Expected function or array of functions, received type ${typeof value}.`
12432
12564
  }
12433
12565
  },
12434
12566
  // set value on mounted so it's after min/max for type="range"
12435
- mounted(el, { value }) {
12436
- el.value = value == null ? "" : value;
12567
+ mounted(el, { value, modifiers: { trim, number } }) {
12568
+ const newValue = value == null ? "" : value;
12569
+ const initialValue = el[initialValueKey];
12570
+ delete el[initialValueKey];
12571
+ if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) {
12572
+ el[assignKey](castValue(el.value, trim, number));
12573
+ } else {
12574
+ el.value = newValue;
12575
+ }
12437
12576
  },
12438
12577
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
12439
12578
  el[assignKey] = getModelAssigner(vnode);
@@ -12534,13 +12673,21 @@ Expected function or array of functions, received type ${typeof value}.`
12534
12673
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
12535
12674
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
12536
12675
  );
12537
- el[assignKey](
12538
- el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]
12539
- );
12540
- el._assigning = true;
12541
- nextTick(() => {
12542
- el._assigning = false;
12543
- });
12676
+ const multiple = el.multiple;
12677
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
12678
+ const pending = el._pendingValue = [
12679
+ multiple,
12680
+ multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue
12681
+ ];
12682
+ try {
12683
+ el[assignKey](assignedValue);
12684
+ } finally {
12685
+ nextTick(() => {
12686
+ if (el._pendingValue === pending) {
12687
+ el._pendingValue = void 0;
12688
+ }
12689
+ });
12690
+ }
12544
12691
  });
12545
12692
  el[assignKey] = getModelAssigner(vnode);
12546
12693
  },
@@ -12554,11 +12701,25 @@ Expected function or array of functions, received type ${typeof value}.`
12554
12701
  el[assignKey] = getModelAssigner(vnode);
12555
12702
  },
12556
12703
  updated(el, { value }) {
12557
- if (!el._assigning) {
12704
+ const pending = el._pendingValue;
12705
+ el._pendingValue = void 0;
12706
+ if (!pending || pending[0] !== el.multiple || !isSameSelectValue(value, pending[1], pending[0])) {
12558
12707
  setSelected(el, value);
12559
12708
  }
12560
12709
  }
12561
12710
  };
12711
+ function isSameSelectValue(value, assignedValue, multiple) {
12712
+ if (!multiple) return looseEqual(value, assignedValue);
12713
+ if (isArray(value)) return looseEqual(value, assignedValue);
12714
+ if (isSet(value)) {
12715
+ if (value.size !== assignedValue.length) return false;
12716
+ for (const item of assignedValue) {
12717
+ if (!value.has(item)) return false;
12718
+ }
12719
+ return true;
12720
+ }
12721
+ return false;
12722
+ }
12562
12723
  function setSelected(el, value) {
12563
12724
  const isMultiple = el.multiple;
12564
12725
  const isArrayValue = isArray(value);