@vue/runtime-dom 3.6.0-rc.1 → 3.6.0-rc.3
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/runtime-dom.cjs.js +26 -13
- package/dist/runtime-dom.cjs.prod.js +15 -5
- package/dist/runtime-dom.d.ts +2 -0
- package/dist/runtime-dom.esm-browser.js +193 -80
- package/dist/runtime-dom.esm-browser.prod.js +4 -3
- package/dist/runtime-dom.esm-bundler.js +26 -13
- package/dist/runtime-dom.global.js +193 -80
- package/dist/runtime-dom.global.prod.js +4 -3
- package/package.json +4 -4
package/dist/runtime-dom.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/runtime-dom v3.6.0-rc.
|
|
2
|
+
* @vue/runtime-dom v3.6.0-rc.3
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -635,7 +635,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
635
635
|
if (!this._instance) if (this._resolved) this._mountComponent(this._def);
|
|
636
636
|
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
637
637
|
this._pendingResolve = void 0;
|
|
638
|
-
this._resolveDef();
|
|
638
|
+
if (this.isConnected) return this._resolveDef();
|
|
639
639
|
});
|
|
640
640
|
else this._resolveDef();
|
|
641
641
|
}
|
|
@@ -671,7 +671,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
671
671
|
* resolve inner component definition (handle possible async component)
|
|
672
672
|
*/
|
|
673
673
|
_resolveDef() {
|
|
674
|
-
if (this._pendingResolve) return;
|
|
674
|
+
if (this._pendingResolve) return this._pendingResolve;
|
|
675
675
|
for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
|
|
676
676
|
this._ob = new MutationObserver(this._processMutations.bind(this));
|
|
677
677
|
this._ob.observe(this, { attributes: true });
|
|
@@ -701,6 +701,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
701
701
|
this._def = def;
|
|
702
702
|
resolve(def);
|
|
703
703
|
});
|
|
704
|
+
return this._pendingResolve;
|
|
704
705
|
} else resolve(this._def);
|
|
705
706
|
}
|
|
706
707
|
_mountComponent(def) {
|
|
@@ -739,14 +740,17 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
739
740
|
const { props } = def;
|
|
740
741
|
const declaredPropKeys = (0, _vue_shared.isArray)(props) ? props : Object.keys(props || {});
|
|
741
742
|
for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
|
|
742
|
-
for (const key of declaredPropKeys.map(_vue_shared.camelize))
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
743
|
+
for (const key of declaredPropKeys.map(_vue_shared.camelize)) {
|
|
744
|
+
if (key in Object.getPrototypeOf(this)) (0, _vue_runtime_core.warn)(`Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`);
|
|
745
|
+
Object.defineProperty(this, key, {
|
|
746
|
+
get() {
|
|
747
|
+
return this._getProp(key);
|
|
748
|
+
},
|
|
749
|
+
set(val) {
|
|
750
|
+
this._setProp(key, val, true, !this._patching);
|
|
751
|
+
}
|
|
752
|
+
});
|
|
753
|
+
}
|
|
750
754
|
}
|
|
751
755
|
_setAttr(key) {
|
|
752
756
|
if (key.startsWith("data-v-")) return;
|
|
@@ -1162,13 +1166,22 @@ function onCompositionEnd(e) {
|
|
|
1162
1166
|
}
|
|
1163
1167
|
}
|
|
1164
1168
|
const assignKey = Symbol("_assign");
|
|
1169
|
+
const initialValueKey = Symbol("_initialValue");
|
|
1165
1170
|
const vModelText = {
|
|
1166
1171
|
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
1172
|
+
if (el.parentNode) {
|
|
1173
|
+
if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
|
|
1174
|
+
else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
|
|
1175
|
+
}
|
|
1167
1176
|
el[assignKey] = getModelAssigner(vnode);
|
|
1168
1177
|
vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
|
|
1169
1178
|
},
|
|
1170
|
-
mounted(el, { value }) {
|
|
1171
|
-
|
|
1179
|
+
mounted(el, { value, modifiers: { trim, number } }) {
|
|
1180
|
+
const newValue = value == null ? "" : value;
|
|
1181
|
+
const initialValue = el[initialValueKey];
|
|
1182
|
+
delete el[initialValueKey];
|
|
1183
|
+
if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
|
|
1184
|
+
else el.value = newValue;
|
|
1172
1185
|
},
|
|
1173
1186
|
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
1174
1187
|
el[assignKey] = getModelAssigner(vnode);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/runtime-dom v3.6.0-rc.
|
|
2
|
+
* @vue/runtime-dom v3.6.0-rc.3
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -622,7 +622,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
622
622
|
if (!this._instance) if (this._resolved) this._mountComponent(this._def);
|
|
623
623
|
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
624
624
|
this._pendingResolve = void 0;
|
|
625
|
-
this._resolveDef();
|
|
625
|
+
if (this.isConnected) return this._resolveDef();
|
|
626
626
|
});
|
|
627
627
|
else this._resolveDef();
|
|
628
628
|
}
|
|
@@ -658,7 +658,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
658
658
|
* resolve inner component definition (handle possible async component)
|
|
659
659
|
*/
|
|
660
660
|
_resolveDef() {
|
|
661
|
-
if (this._pendingResolve) return;
|
|
661
|
+
if (this._pendingResolve) return this._pendingResolve;
|
|
662
662
|
for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
|
|
663
663
|
this._ob = new MutationObserver(this._processMutations.bind(this));
|
|
664
664
|
this._ob.observe(this, { attributes: true });
|
|
@@ -687,6 +687,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
687
687
|
this._def = def;
|
|
688
688
|
resolve(def);
|
|
689
689
|
});
|
|
690
|
+
return this._pendingResolve;
|
|
690
691
|
} else resolve(this._def);
|
|
691
692
|
}
|
|
692
693
|
_mountComponent(def) {
|
|
@@ -1105,13 +1106,22 @@ function onCompositionEnd(e) {
|
|
|
1105
1106
|
}
|
|
1106
1107
|
}
|
|
1107
1108
|
const assignKey = Symbol("_assign");
|
|
1109
|
+
const initialValueKey = Symbol("_initialValue");
|
|
1108
1110
|
const vModelText = {
|
|
1109
1111
|
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
1112
|
+
if (el.parentNode) {
|
|
1113
|
+
if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
|
|
1114
|
+
else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
|
|
1115
|
+
}
|
|
1110
1116
|
el[assignKey] = getModelAssigner(vnode);
|
|
1111
1117
|
vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
|
|
1112
1118
|
},
|
|
1113
|
-
mounted(el, { value }) {
|
|
1114
|
-
|
|
1119
|
+
mounted(el, { value, modifiers: { trim, number } }) {
|
|
1120
|
+
const newValue = value == null ? "" : value;
|
|
1121
|
+
const initialValue = el[initialValueKey];
|
|
1122
|
+
delete el[initialValueKey];
|
|
1123
|
+
if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
|
|
1124
|
+
else el.value = newValue;
|
|
1115
1125
|
},
|
|
1116
1126
|
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
1117
1127
|
el[assignKey] = getModelAssigner(vnode);
|
package/dist/runtime-dom.d.ts
CHANGED
|
@@ -87,8 +87,10 @@ type VOnDirective = Directive<any, any, VOnModifiers>;
|
|
|
87
87
|
//#region temp/packages/runtime-dom/src/directives/vModel.d.ts
|
|
88
88
|
type AssignerFn = (value: any) => void;
|
|
89
89
|
declare const assignKey: unique symbol;
|
|
90
|
+
declare const initialValueKey: unique symbol;
|
|
90
91
|
type ModelDirective<T, Modifiers extends string = string> = ObjectDirective<T & {
|
|
91
92
|
[assignKey]: AssignerFn;
|
|
93
|
+
[initialValueKey]?: string;
|
|
92
94
|
_assigning?: boolean;
|
|
93
95
|
}, any, Modifiers>;
|
|
94
96
|
export declare const vModelText: ModelDirective<HTMLInputElement | HTMLTextAreaElement, "trim" | "number" | "lazy">;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/runtime-dom v3.6.0-rc.
|
|
2
|
+
* @vue/runtime-dom v3.6.0-rc.3
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -228,7 +228,7 @@ const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
|
|
|
228
228
|
/**
|
|
229
229
|
* The full list is needed during SSR to produce the correct initial markup.
|
|
230
230
|
*/
|
|
231
|
-
const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,
|
|
231
|
+
const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
|
|
232
232
|
/**
|
|
233
233
|
* Boolean attributes should be included if the value is truthy or ''.
|
|
234
234
|
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
@@ -2510,7 +2510,7 @@ function queueFlush() {
|
|
|
2510
2510
|
function queuePostFlushCb(jobs, id = Infinity) {
|
|
2511
2511
|
if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
|
|
2512
2512
|
else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
|
|
2513
|
-
else for (
|
|
2513
|
+
else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
|
|
2514
2514
|
queueFlush();
|
|
2515
2515
|
}
|
|
2516
2516
|
function flushPreFlushCbs(instance, seen) {
|
|
@@ -2531,7 +2531,7 @@ function flushPreFlushCbs(instance, seen) {
|
|
|
2531
2531
|
function flushPostFlushCbs(seen) {
|
|
2532
2532
|
if (postJobs.length) {
|
|
2533
2533
|
if (activePostJobs) {
|
|
2534
|
-
activePostJobs.push(
|
|
2534
|
+
for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
|
|
2535
2535
|
postJobs.length = 0;
|
|
2536
2536
|
return;
|
|
2537
2537
|
}
|
|
@@ -3071,7 +3071,7 @@ function instanceWatch(source, value, options) {
|
|
|
3071
3071
|
}
|
|
3072
3072
|
const prev = setCurrentInstance(this);
|
|
3073
3073
|
const res = doWatch(getter, cb.bind(publicThis), options);
|
|
3074
|
-
|
|
3074
|
+
restoreCurrentInstance(prev);
|
|
3075
3075
|
return res;
|
|
3076
3076
|
}
|
|
3077
3077
|
function createPathGetter(ctx, path) {
|
|
@@ -3344,49 +3344,16 @@ const BaseTransitionImpl = {
|
|
|
3344
3344
|
setup(props, { slots }) {
|
|
3345
3345
|
const instance = getCurrentInstance();
|
|
3346
3346
|
const state = useTransitionState();
|
|
3347
|
+
let resumeAfterLeave;
|
|
3347
3348
|
return () => {
|
|
3348
|
-
const
|
|
3349
|
-
const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
|
|
3349
|
+
const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
|
|
3350
3350
|
if (!child) return;
|
|
3351
3351
|
const rawProps = /* @__PURE__ */ toRaw(props);
|
|
3352
3352
|
const { mode } = rawProps;
|
|
3353
3353
|
checkTransitionMode(mode);
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
|
|
3358
|
-
if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
|
|
3359
|
-
let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
|
|
3360
|
-
if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
|
|
3361
|
-
let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
|
|
3362
|
-
setTransitionHooks(oldInnerChild, leavingHooks);
|
|
3363
|
-
if (mode === "out-in" && innerChild.type !== Comment) {
|
|
3364
|
-
state.isLeaving = true;
|
|
3365
|
-
leavingHooks.afterLeave = () => {
|
|
3366
|
-
state.isLeaving = false;
|
|
3367
|
-
if (!(instance.job.flags & 4)) instance.update();
|
|
3368
|
-
delete leavingHooks.afterLeave;
|
|
3369
|
-
oldInnerChild = void 0;
|
|
3370
|
-
};
|
|
3371
|
-
return emptyPlaceholder(child);
|
|
3372
|
-
} else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3373
|
-
const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
|
|
3374
|
-
leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
|
|
3375
|
-
el[leaveCbKey] = () => {
|
|
3376
|
-
earlyRemove();
|
|
3377
|
-
el[leaveCbKey] = void 0;
|
|
3378
|
-
delete enterHooks.delayedLeave;
|
|
3379
|
-
oldInnerChild = void 0;
|
|
3380
|
-
};
|
|
3381
|
-
enterHooks.delayedLeave = () => {
|
|
3382
|
-
delayedLeave();
|
|
3383
|
-
delete enterHooks.delayedLeave;
|
|
3384
|
-
oldInnerChild = void 0;
|
|
3385
|
-
};
|
|
3386
|
-
};
|
|
3387
|
-
else oldInnerChild = void 0;
|
|
3388
|
-
} else if (oldInnerChild) oldInnerChild = void 0;
|
|
3389
|
-
return child;
|
|
3354
|
+
return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
|
|
3355
|
+
if (!(instance.job.flags & 4)) instance.update();
|
|
3356
|
+
}) : NOOP);
|
|
3390
3357
|
};
|
|
3391
3358
|
}
|
|
3392
3359
|
};
|
|
@@ -3528,16 +3495,91 @@ function getInnerChild$1(vnode) {
|
|
|
3528
3495
|
if (shapeFlag & 32 && isFunction(children.default)) return children.default();
|
|
3529
3496
|
}
|
|
3530
3497
|
}
|
|
3498
|
+
function resolveTransitionChild(children, renderEmpty = false) {
|
|
3499
|
+
const branches = children && getTransitionRawChildren(children, true);
|
|
3500
|
+
return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
|
|
3501
|
+
}
|
|
3502
|
+
/**
|
|
3503
|
+
* @internal
|
|
3504
|
+
*/
|
|
3505
|
+
function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
|
|
3506
|
+
if (state.isLeaving) return emptyPlaceholder(next);
|
|
3507
|
+
const nextInner = getInnerChild$1(next);
|
|
3508
|
+
if (!nextInner) return emptyPlaceholder(next);
|
|
3509
|
+
let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
|
|
3510
|
+
if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
|
|
3511
|
+
enterHooks = hooks;
|
|
3512
|
+
});
|
|
3513
|
+
if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
|
|
3514
|
+
if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
|
|
3515
|
+
const mode = props.mode;
|
|
3516
|
+
const previousInner = previous && getInnerChild$1(previous);
|
|
3517
|
+
if (previous && previousInner && previousInner.type !== Comment && !isSameVNodeType(previousInner, nextInner) && (!previous.component || recursiveGetSubtree(previous.component).type !== Comment)) {
|
|
3518
|
+
const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
|
|
3519
|
+
if (nextInner.type !== Comment && (mode === "out-in" || mode === "in-out") && applyTransitionModeSwitch(previousInner, leavingHooks, mode === "in-out" ? () => enterHooks : void 0, props, state, resumeAfterLeave)) return emptyPlaceholder(next);
|
|
3520
|
+
}
|
|
3521
|
+
return next;
|
|
3522
|
+
}
|
|
3523
|
+
function forwardDelayedLeave(hooks, source) {
|
|
3524
|
+
const delayedLeave = source && source.delayedLeave;
|
|
3525
|
+
if (!delayedLeave) return;
|
|
3526
|
+
hooks.delayedLeave = () => {
|
|
3527
|
+
if (source.delayedLeave === delayedLeave) delayedLeave();
|
|
3528
|
+
delete hooks.delayedLeave;
|
|
3529
|
+
};
|
|
3530
|
+
}
|
|
3531
|
+
function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
|
|
3532
|
+
return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
|
|
3533
|
+
}
|
|
3534
|
+
function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
|
|
3535
|
+
if (props.mode === "out-in") {
|
|
3536
|
+
state.isLeaving = true;
|
|
3537
|
+
leavingHooks.afterLeave = () => {
|
|
3538
|
+
state.isLeaving = false;
|
|
3539
|
+
resumeAfterLeave();
|
|
3540
|
+
delete leavingHooks.afterLeave;
|
|
3541
|
+
};
|
|
3542
|
+
return true;
|
|
3543
|
+
} else if (props.mode === "in-out" && getEnterHooks) {
|
|
3544
|
+
let delayedLeavingVNode = leavingVNode;
|
|
3545
|
+
leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3546
|
+
const enterHooks = getEnterHooks();
|
|
3547
|
+
if (!enterHooks) {
|
|
3548
|
+
delayedLeave();
|
|
3549
|
+
return;
|
|
3550
|
+
}
|
|
3551
|
+
const vnode = delayedLeavingVNode;
|
|
3552
|
+
const leavingVNodesCache = getLeavingNodesForType(state, vnode);
|
|
3553
|
+
leavingVNodesCache[String(vnode.key)] = vnode;
|
|
3554
|
+
el[leaveCbKey] = () => {
|
|
3555
|
+
earlyRemove();
|
|
3556
|
+
el[leaveCbKey] = void 0;
|
|
3557
|
+
delete enterHooks.delayedLeave;
|
|
3558
|
+
delayedLeavingVNode = void 0;
|
|
3559
|
+
};
|
|
3560
|
+
enterHooks.delayedLeave = () => {
|
|
3561
|
+
delayedLeave();
|
|
3562
|
+
delete enterHooks.delayedLeave;
|
|
3563
|
+
delayedLeavingVNode = void 0;
|
|
3564
|
+
};
|
|
3565
|
+
};
|
|
3566
|
+
}
|
|
3567
|
+
return false;
|
|
3568
|
+
}
|
|
3531
3569
|
function setTransitionHooks(vnode, hooks) {
|
|
3532
|
-
if (vnode.shapeFlag & 6 && vnode.component)
|
|
3533
|
-
else {
|
|
3570
|
+
if (vnode.shapeFlag & 6 && vnode.component) {
|
|
3534
3571
|
vnode.transition = hooks;
|
|
3535
|
-
setTransitionHooks(vnode.component
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3572
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
|
|
3573
|
+
else {
|
|
3574
|
+
const subTree = vnode.component.subTree;
|
|
3575
|
+
return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
|
|
3576
|
+
}
|
|
3577
|
+
} else if (vnode.shapeFlag & 128) {
|
|
3578
|
+
const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
|
|
3579
|
+
const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
|
|
3580
|
+
return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
|
|
3540
3581
|
} else vnode.transition = hooks;
|
|
3582
|
+
return hooks;
|
|
3541
3583
|
}
|
|
3542
3584
|
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
3543
3585
|
let ret = [];
|
|
@@ -3889,7 +3931,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
3889
3931
|
const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
|
|
3890
3932
|
for (const key in props) {
|
|
3891
3933
|
if (!(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
|
|
3892
|
-
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key))
|
|
3934
|
+
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
|
|
3935
|
+
if (isUnchangedResourceProp(el, key, props[key])) continue;
|
|
3936
|
+
patchProp(el, key, null, props[key], namespace, parentComponent);
|
|
3937
|
+
}
|
|
3893
3938
|
}
|
|
3894
3939
|
}
|
|
3895
3940
|
let vnodeHooks;
|
|
@@ -3998,6 +4043,16 @@ const isTemplateNode = (node) => {
|
|
|
3998
4043
|
/**
|
|
3999
4044
|
* Dev only
|
|
4000
4045
|
*/
|
|
4046
|
+
const resourceProps = /* @__PURE__ */ new Set([
|
|
4047
|
+
"src",
|
|
4048
|
+
"srcset",
|
|
4049
|
+
"href",
|
|
4050
|
+
"poster"
|
|
4051
|
+
]);
|
|
4052
|
+
function isUnchangedResourceProp(el, key, clientValue) {
|
|
4053
|
+
if (!resourceProps.has(key)) return false;
|
|
4054
|
+
return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
|
|
4055
|
+
}
|
|
4001
4056
|
function propHasMismatch(el, key, clientValue, vnode, instance) {
|
|
4002
4057
|
let mismatchType;
|
|
4003
4058
|
let mismatchKey;
|
|
@@ -4038,7 +4093,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
|
|
|
4038
4093
|
function getAttributeMismatch(el, key, clientValue) {
|
|
4039
4094
|
let actual;
|
|
4040
4095
|
let expected;
|
|
4041
|
-
if (
|
|
4096
|
+
if (key === "hidden") {
|
|
4097
|
+
actual = normalizeHiddenValue(el.getAttribute(key));
|
|
4098
|
+
expected = normalizeHiddenValue(clientValue);
|
|
4099
|
+
} else if (isBooleanAttr(key)) {
|
|
4042
4100
|
actual = el.hasAttribute(key);
|
|
4043
4101
|
expected = includeBooleanAttr(clientValue);
|
|
4044
4102
|
} else if (clientValue == null) {
|
|
@@ -4066,6 +4124,11 @@ function warnPropMismatch(el, mismatchKey, mismatchType, actual, expected) {
|
|
|
4066
4124
|
}
|
|
4067
4125
|
return false;
|
|
4068
4126
|
}
|
|
4127
|
+
function normalizeHiddenValue(value) {
|
|
4128
|
+
if (!isRenderableAttrValue(value)) return false;
|
|
4129
|
+
if (isString(value)) return value.toLowerCase() === "until-found" ? "until-found" : "";
|
|
4130
|
+
return includeBooleanAttr(value) ? "" : false;
|
|
4131
|
+
}
|
|
4069
4132
|
function toClassSet(str) {
|
|
4070
4133
|
return new Set(str.trim().split(/\s+/));
|
|
4071
4134
|
}
|
|
@@ -4597,7 +4660,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
|
|
|
4597
4660
|
try {
|
|
4598
4661
|
return callWithAsyncErrorHandling(hook, target, type, args);
|
|
4599
4662
|
} finally {
|
|
4600
|
-
|
|
4663
|
+
restoreCurrentInstance(prev);
|
|
4601
4664
|
setActiveSub(prevSub);
|
|
4602
4665
|
}
|
|
4603
4666
|
});
|
|
@@ -4726,7 +4789,8 @@ function createSlots(slots, dynamicSlots) {
|
|
|
4726
4789
|
* Compiler runtime helper for rendering `<slot/>`
|
|
4727
4790
|
* @private
|
|
4728
4791
|
*/
|
|
4729
|
-
function renderSlot(slots, name, props
|
|
4792
|
+
function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
|
|
4793
|
+
if (props == null) props = {};
|
|
4730
4794
|
let slot = slots[name];
|
|
4731
4795
|
if (fallback) fallback.__vdom = true;
|
|
4732
4796
|
const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
|
|
@@ -5779,8 +5843,9 @@ function renderComponentRoot(instance) {
|
|
|
5779
5843
|
root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
|
|
5780
5844
|
}
|
|
5781
5845
|
if (vnode.transition) {
|
|
5782
|
-
|
|
5783
|
-
|
|
5846
|
+
const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
|
|
5847
|
+
if (!isElementRoot(child)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
|
|
5848
|
+
setTransitionHooks(child, vnode.transition);
|
|
5784
5849
|
}
|
|
5785
5850
|
if (setRoot) setRoot(root);
|
|
5786
5851
|
else result = root;
|
|
@@ -5840,9 +5905,10 @@ function filterSingleRoot(children, recurse = true) {
|
|
|
5840
5905
|
}
|
|
5841
5906
|
return singleRoot;
|
|
5842
5907
|
}
|
|
5908
|
+
const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
|
|
5843
5909
|
const getFunctionalFallthrough = (attrs) => {
|
|
5844
5910
|
let res;
|
|
5845
|
-
for (const key in attrs) if (
|
|
5911
|
+
for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
|
|
5846
5912
|
return res;
|
|
5847
5913
|
};
|
|
5848
5914
|
const filterModelListeners = (attrs, props) => {
|
|
@@ -6042,7 +6108,7 @@ function baseResolveDefault(factory, instance, key) {
|
|
|
6042
6108
|
const prev = setCurrentInstance(instance);
|
|
6043
6109
|
const props = /* @__PURE__ */ toRaw(instance.props);
|
|
6044
6110
|
value = factory.call(null, props);
|
|
6045
|
-
|
|
6111
|
+
restoreCurrentInstance(prev);
|
|
6046
6112
|
return value;
|
|
6047
6113
|
}
|
|
6048
6114
|
const mixinPropsCache = /* @__PURE__ */ new WeakMap();
|
|
@@ -6602,7 +6668,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6602
6668
|
};
|
|
6603
6669
|
const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
6604
6670
|
n2.slotScopeIds = slotScopeIds;
|
|
6605
|
-
if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
|
|
6671
|
+
if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
|
|
6606
6672
|
else {
|
|
6607
6673
|
const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
|
|
6608
6674
|
getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
|
|
@@ -6945,7 +7011,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6945
7011
|
const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
|
|
6946
7012
|
const { el, type, transition, children, shapeFlag } = vnode;
|
|
6947
7013
|
if (isVaporComponent(type) || type === VaporSlot) {
|
|
6948
|
-
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
|
|
7014
|
+
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
|
|
6949
7015
|
return;
|
|
6950
7016
|
}
|
|
6951
7017
|
if (shapeFlag & 6) {
|
|
@@ -7001,7 +7067,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7001
7067
|
}
|
|
7002
7068
|
if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
|
|
7003
7069
|
if (shapeFlag & 256) {
|
|
7004
|
-
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
|
|
7070
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
|
|
7005
7071
|
else parentComponent.ctx.deactivate(vnode);
|
|
7006
7072
|
return;
|
|
7007
7073
|
}
|
|
@@ -7011,7 +7077,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7011
7077
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
7012
7078
|
if (shapeFlag & 6) if (isVaporComponent(type)) {
|
|
7013
7079
|
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
|
|
7014
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
7080
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
7015
7081
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
|
|
7016
7082
|
dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
|
|
7017
7083
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
@@ -7028,7 +7094,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7028
7094
|
else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
|
|
7029
7095
|
else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
|
|
7030
7096
|
if (type === VaporSlot) {
|
|
7031
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
7097
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
7032
7098
|
return;
|
|
7033
7099
|
}
|
|
7034
7100
|
if (doRemove) remove(vnode);
|
|
@@ -7327,6 +7393,10 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
7327
7393
|
suspense.activeBranch = pendingBranch;
|
|
7328
7394
|
} else unmount(pendingBranch, parentComponent, suspense);
|
|
7329
7395
|
suspense.deps = 0;
|
|
7396
|
+
for (let i = 0; i < suspense.effects.length; i++) {
|
|
7397
|
+
const effect = suspense.effects[i];
|
|
7398
|
+
if (effect.flags & 8) queuePostFlushCb(effect);
|
|
7399
|
+
}
|
|
7330
7400
|
suspense.effects.length = 0;
|
|
7331
7401
|
suspense.hiddenContainer = createElement("div");
|
|
7332
7402
|
if (isInFallback) {
|
|
@@ -7434,7 +7504,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
7434
7504
|
let hasUnresolvedAncestor = false;
|
|
7435
7505
|
while (parent) {
|
|
7436
7506
|
if (parent.pendingBranch) {
|
|
7437
|
-
parent.effects.push(
|
|
7507
|
+
for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
|
|
7438
7508
|
hasUnresolvedAncestor = true;
|
|
7439
7509
|
break;
|
|
7440
7510
|
}
|
|
@@ -7704,9 +7774,24 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
|
|
|
7704
7774
|
if (shapeFlag & 128) type.normalize(vnode);
|
|
7705
7775
|
} else if (children) vnode.shapeFlag |= isString(children) ? 8 : 16;
|
|
7706
7776
|
if (vnode.key !== vnode.key) warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
|
|
7777
|
+
if (props && vnode.shapeFlag & 1) {
|
|
7778
|
+
const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
|
|
7779
|
+
if (overwritingProp && hasContentChildren(vnode.children)) warn$1(`The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`);
|
|
7780
|
+
}
|
|
7707
7781
|
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) currentBlock.push(vnode);
|
|
7708
7782
|
return vnode;
|
|
7709
7783
|
}
|
|
7784
|
+
/**
|
|
7785
|
+
* dev only
|
|
7786
|
+
* Whether children would actually render something. Empty text and empty
|
|
7787
|
+
* arrays are ignored, mirroring the compiler's `node.children.length` check
|
|
7788
|
+
* for `v-html` / `v-text`.
|
|
7789
|
+
*/
|
|
7790
|
+
function hasContentChildren(children) {
|
|
7791
|
+
if (isString(children)) return children !== "";
|
|
7792
|
+
if (isArray(children)) return children.length > 0;
|
|
7793
|
+
return false;
|
|
7794
|
+
}
|
|
7710
7795
|
const createVNode = createVNodeWithArgsTransform;
|
|
7711
7796
|
function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
|
|
7712
7797
|
if (!type || type === NULL_DYNAMIC_COMPONENT) {
|
|
@@ -7926,6 +8011,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
|
|
|
7926
8011
|
simpleSetCurrentInstance(instance);
|
|
7927
8012
|
}
|
|
7928
8013
|
};
|
|
8014
|
+
/**
|
|
8015
|
+
* Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
|
|
8016
|
+
* `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
|
|
8017
|
+
* verbatim instead of re-triggering the `instance.scope` default.
|
|
8018
|
+
* @internal
|
|
8019
|
+
*/
|
|
8020
|
+
const restoreCurrentInstance = (prev) => {
|
|
8021
|
+
setCurrentScope(prev[1]);
|
|
8022
|
+
simpleSetCurrentInstance(prev[0]);
|
|
8023
|
+
};
|
|
7929
8024
|
const internalOptions = [
|
|
7930
8025
|
"ce",
|
|
7931
8026
|
"type",
|
|
@@ -8077,7 +8172,7 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
8077
8172
|
const setupResult = callWithErrorHandling(setup, instance, 0, [/* @__PURE__ */ shallowReadonly(instance.props), setupContext]);
|
|
8078
8173
|
const isAsyncSetup = isPromise(setupResult);
|
|
8079
8174
|
setActiveSub(prevSub);
|
|
8080
|
-
|
|
8175
|
+
restoreCurrentInstance(prev);
|
|
8081
8176
|
if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
|
|
8082
8177
|
if (isAsyncSetup) {
|
|
8083
8178
|
const unsetCurrentInstance = () => {
|
|
@@ -8085,7 +8180,12 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
8085
8180
|
};
|
|
8086
8181
|
setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
|
|
8087
8182
|
if (isSSR) return setupResult.then((resolvedResult) => {
|
|
8088
|
-
|
|
8183
|
+
setInSSRSetupState(true);
|
|
8184
|
+
try {
|
|
8185
|
+
handleSetupResult(instance, resolvedResult, isSSR);
|
|
8186
|
+
} finally {
|
|
8187
|
+
setInSSRSetupState(false);
|
|
8188
|
+
}
|
|
8089
8189
|
}).catch((e) => {
|
|
8090
8190
|
handleError(e, instance, 0);
|
|
8091
8191
|
});
|
|
@@ -8146,7 +8246,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
|
|
|
8146
8246
|
applyOptions(instance);
|
|
8147
8247
|
} finally {
|
|
8148
8248
|
setActiveSub(prevSub);
|
|
8149
|
-
|
|
8249
|
+
restoreCurrentInstance(prevInstance);
|
|
8150
8250
|
}
|
|
8151
8251
|
}
|
|
8152
8252
|
if (!Component.render && instance.render === NOOP && !isSSR) if (!compile && Component.template)
|
|
@@ -8456,7 +8556,7 @@ function isMemoSame(cached, memo) {
|
|
|
8456
8556
|
}
|
|
8457
8557
|
//#endregion
|
|
8458
8558
|
//#region packages/runtime-core/src/index.ts
|
|
8459
|
-
const version = "3.6.0-rc.
|
|
8559
|
+
const version = "3.6.0-rc.3";
|
|
8460
8560
|
const warn = warn$1;
|
|
8461
8561
|
/**
|
|
8462
8562
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -9177,7 +9277,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
9177
9277
|
if (!this._instance) if (this._resolved) this._mountComponent(this._def);
|
|
9178
9278
|
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
9179
9279
|
this._pendingResolve = void 0;
|
|
9180
|
-
this._resolveDef();
|
|
9280
|
+
if (this.isConnected) return this._resolveDef();
|
|
9181
9281
|
});
|
|
9182
9282
|
else this._resolveDef();
|
|
9183
9283
|
}
|
|
@@ -9213,7 +9313,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
9213
9313
|
* resolve inner component definition (handle possible async component)
|
|
9214
9314
|
*/
|
|
9215
9315
|
_resolveDef() {
|
|
9216
|
-
if (this._pendingResolve) return;
|
|
9316
|
+
if (this._pendingResolve) return this._pendingResolve;
|
|
9217
9317
|
for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
|
|
9218
9318
|
this._ob = new MutationObserver(this._processMutations.bind(this));
|
|
9219
9319
|
this._ob.observe(this, { attributes: true });
|
|
@@ -9243,6 +9343,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
9243
9343
|
this._def = def;
|
|
9244
9344
|
resolve(def);
|
|
9245
9345
|
});
|
|
9346
|
+
return this._pendingResolve;
|
|
9246
9347
|
} else resolve(this._def);
|
|
9247
9348
|
}
|
|
9248
9349
|
_mountComponent(def) {
|
|
@@ -9281,14 +9382,17 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
9281
9382
|
const { props } = def;
|
|
9282
9383
|
const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
|
|
9283
9384
|
for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
|
|
9284
|
-
for (const key of declaredPropKeys.map(camelize))
|
|
9285
|
-
|
|
9286
|
-
|
|
9287
|
-
|
|
9288
|
-
|
|
9289
|
-
|
|
9290
|
-
|
|
9291
|
-
|
|
9385
|
+
for (const key of declaredPropKeys.map(camelize)) {
|
|
9386
|
+
if (key in Object.getPrototypeOf(this)) warn(`Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`);
|
|
9387
|
+
Object.defineProperty(this, key, {
|
|
9388
|
+
get() {
|
|
9389
|
+
return this._getProp(key);
|
|
9390
|
+
},
|
|
9391
|
+
set(val) {
|
|
9392
|
+
this._setProp(key, val, true, !this._patching);
|
|
9393
|
+
}
|
|
9394
|
+
});
|
|
9395
|
+
}
|
|
9292
9396
|
}
|
|
9293
9397
|
_setAttr(key) {
|
|
9294
9398
|
if (key.startsWith("data-v-")) return;
|
|
@@ -9704,13 +9808,22 @@ function onCompositionEnd(e) {
|
|
|
9704
9808
|
}
|
|
9705
9809
|
}
|
|
9706
9810
|
const assignKey = Symbol("_assign");
|
|
9811
|
+
const initialValueKey = Symbol("_initialValue");
|
|
9707
9812
|
const vModelText = {
|
|
9708
9813
|
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
9814
|
+
if (el.parentNode) {
|
|
9815
|
+
if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
|
|
9816
|
+
else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
|
|
9817
|
+
}
|
|
9709
9818
|
el[assignKey] = getModelAssigner(vnode);
|
|
9710
9819
|
vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
|
|
9711
9820
|
},
|
|
9712
|
-
mounted(el, { value }) {
|
|
9713
|
-
|
|
9821
|
+
mounted(el, { value, modifiers: { trim, number } }) {
|
|
9822
|
+
const newValue = value == null ? "" : value;
|
|
9823
|
+
const initialValue = el[initialValueKey];
|
|
9824
|
+
delete el[initialValueKey];
|
|
9825
|
+
if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
|
|
9826
|
+
else el.value = newValue;
|
|
9714
9827
|
},
|
|
9715
9828
|
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
9716
9829
|
el[assignKey] = getModelAssigner(vnode);
|