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.
- package/dist/vue.cjs.js +1 -1
- package/dist/vue.cjs.prod.js +1 -1
- package/dist/vue.esm-browser.js +231 -49
- package/dist/vue.esm-browser.prod.js +9 -8
- package/dist/vue.esm-bundler.js +1 -1
- package/dist/vue.global.js +231 -49
- package/dist/vue.global.prod.js +9 -8
- package/dist/vue.runtime.esm-browser.js +195 -34
- package/dist/vue.runtime.esm-browser.prod.js +4 -3
- package/dist/vue.runtime.esm-bundler.js +1 -1
- package/dist/vue.runtime.global.js +195 -34
- package/dist/vue.runtime.global.prod.js +4 -3
- package/package.json +6 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* vue v3.5.
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
4338
|
+
if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
|
|
4304
4339
|
let subTree;
|
|
4305
4340
|
if (isFragmentStart) {
|
|
4306
|
-
subTree = createVNode(
|
|
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 (
|
|
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
|
-
|
|
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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
|
12538
|
-
|
|
12539
|
-
|
|
12540
|
-
|
|
12541
|
-
|
|
12542
|
-
|
|
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
|
-
|
|
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);
|