@vue/compat 3.2.30 → 3.2.33
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/README.md +0 -1
- package/dist/vue.cjs.js +179 -79
- package/dist/vue.cjs.prod.js +141 -62
- package/dist/vue.esm-browser.js +179 -79
- package/dist/vue.esm-browser.prod.js +1 -1
- package/dist/vue.esm-bundler.js +184 -81
- package/dist/vue.global.js +179 -79
- package/dist/vue.global.prod.js +1 -1
- package/dist/vue.runtime.esm-browser.js +179 -79
- package/dist/vue.runtime.esm-browser.prod.js +1 -1
- package/dist/vue.runtime.esm-bundler.js +184 -81
- package/dist/vue.runtime.global.js +179 -79
- package/dist/vue.runtime.global.prod.js +1 -1
- package/package.json +2 -2
|
@@ -351,8 +351,17 @@ var Vue = (function () {
|
|
|
351
351
|
let activeEffectScope;
|
|
352
352
|
class EffectScope {
|
|
353
353
|
constructor(detached = false) {
|
|
354
|
+
/**
|
|
355
|
+
* @internal
|
|
356
|
+
*/
|
|
354
357
|
this.active = true;
|
|
358
|
+
/**
|
|
359
|
+
* @internal
|
|
360
|
+
*/
|
|
355
361
|
this.effects = [];
|
|
362
|
+
/**
|
|
363
|
+
* @internal
|
|
364
|
+
*/
|
|
356
365
|
this.cleanups = [];
|
|
357
366
|
if (!detached && activeEffectScope) {
|
|
358
367
|
this.parent = activeEffectScope;
|
|
@@ -362,21 +371,30 @@ var Vue = (function () {
|
|
|
362
371
|
}
|
|
363
372
|
run(fn) {
|
|
364
373
|
if (this.active) {
|
|
374
|
+
const currentEffectScope = activeEffectScope;
|
|
365
375
|
try {
|
|
366
376
|
activeEffectScope = this;
|
|
367
377
|
return fn();
|
|
368
378
|
}
|
|
369
379
|
finally {
|
|
370
|
-
activeEffectScope =
|
|
380
|
+
activeEffectScope = currentEffectScope;
|
|
371
381
|
}
|
|
372
382
|
}
|
|
373
383
|
else {
|
|
374
384
|
warn(`cannot run an inactive effect scope.`);
|
|
375
385
|
}
|
|
376
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* This should only be called on non-detached scopes
|
|
389
|
+
* @internal
|
|
390
|
+
*/
|
|
377
391
|
on() {
|
|
378
392
|
activeEffectScope = this;
|
|
379
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* This should only be called on non-detached scopes
|
|
396
|
+
* @internal
|
|
397
|
+
*/
|
|
380
398
|
off() {
|
|
381
399
|
activeEffectScope = this.parent;
|
|
382
400
|
}
|
|
@@ -518,10 +536,17 @@ var Vue = (function () {
|
|
|
518
536
|
activeEffect = this.parent;
|
|
519
537
|
shouldTrack = lastShouldTrack;
|
|
520
538
|
this.parent = undefined;
|
|
539
|
+
if (this.deferStop) {
|
|
540
|
+
this.stop();
|
|
541
|
+
}
|
|
521
542
|
}
|
|
522
543
|
}
|
|
523
544
|
stop() {
|
|
524
|
-
|
|
545
|
+
// stopped while running itself - defer the cleanup
|
|
546
|
+
if (activeEffect === this) {
|
|
547
|
+
this.deferStop = true;
|
|
548
|
+
}
|
|
549
|
+
else if (this.active) {
|
|
525
550
|
cleanupEffect(this);
|
|
526
551
|
if (this.onStop) {
|
|
527
552
|
this.onStop();
|
|
@@ -600,9 +625,7 @@ var Vue = (function () {
|
|
|
600
625
|
dep.add(activeEffect);
|
|
601
626
|
activeEffect.deps.push(dep);
|
|
602
627
|
if (activeEffect.onTrack) {
|
|
603
|
-
activeEffect.onTrack(Object.assign({
|
|
604
|
-
effect: activeEffect
|
|
605
|
-
}, debuggerEventExtraInfo));
|
|
628
|
+
activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));
|
|
606
629
|
}
|
|
607
630
|
}
|
|
608
631
|
}
|
|
@@ -698,7 +721,9 @@ var Vue = (function () {
|
|
|
698
721
|
}
|
|
699
722
|
|
|
700
723
|
const isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
|
|
701
|
-
const builtInSymbols = new Set(
|
|
724
|
+
const builtInSymbols = new Set(
|
|
725
|
+
/*#__PURE__*/
|
|
726
|
+
Object.getOwnPropertyNames(Symbol)
|
|
702
727
|
.map(key => Symbol[key])
|
|
703
728
|
.filter(isSymbol));
|
|
704
729
|
const get = /*#__PURE__*/ createGetter();
|
|
@@ -850,13 +875,13 @@ var Vue = (function () {
|
|
|
850
875
|
get: readonlyGet,
|
|
851
876
|
set(target, key) {
|
|
852
877
|
{
|
|
853
|
-
|
|
878
|
+
warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target);
|
|
854
879
|
}
|
|
855
880
|
return true;
|
|
856
881
|
},
|
|
857
882
|
deleteProperty(target, key) {
|
|
858
883
|
{
|
|
859
|
-
|
|
884
|
+
warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target);
|
|
860
885
|
}
|
|
861
886
|
return true;
|
|
862
887
|
}
|
|
@@ -1684,7 +1709,7 @@ var Vue = (function () {
|
|
|
1684
1709
|
const pendingPostFlushCbs = [];
|
|
1685
1710
|
let activePostFlushCbs = null;
|
|
1686
1711
|
let postFlushIndex = 0;
|
|
1687
|
-
const resolvedPromise = Promise.resolve();
|
|
1712
|
+
const resolvedPromise = /*#__PURE__*/ Promise.resolve();
|
|
1688
1713
|
let currentFlushPromise = null;
|
|
1689
1714
|
let currentPreFlushParentJob = null;
|
|
1690
1715
|
const RECURSION_LIMIT = 100;
|
|
@@ -2618,6 +2643,8 @@ var Vue = (function () {
|
|
|
2618
2643
|
}
|
|
2619
2644
|
|
|
2620
2645
|
function emit$2(instance, event, ...rawArgs) {
|
|
2646
|
+
if (instance.isUnmounted)
|
|
2647
|
+
return;
|
|
2621
2648
|
const props = instance.vnode.props || EMPTY_OBJ;
|
|
2622
2649
|
{
|
|
2623
2650
|
const { emitsOptions, propsOptions: [propsOptions] } = instance;
|
|
@@ -3635,12 +3662,10 @@ var Vue = (function () {
|
|
|
3635
3662
|
return doWatch(effect, null, options);
|
|
3636
3663
|
}
|
|
3637
3664
|
function watchPostEffect(effect, options) {
|
|
3638
|
-
return doWatch(effect, null, (Object.assign(
|
|
3639
|
-
));
|
|
3665
|
+
return doWatch(effect, null, (Object.assign(Object.assign({}, options), { flush: 'post' }) ));
|
|
3640
3666
|
}
|
|
3641
3667
|
function watchSyncEffect(effect, options) {
|
|
3642
|
-
return doWatch(effect, null, (Object.assign(
|
|
3643
|
-
));
|
|
3668
|
+
return doWatch(effect, null, (Object.assign(Object.assign({}, options), { flush: 'sync' }) ));
|
|
3644
3669
|
}
|
|
3645
3670
|
// initial value for watchers to trigger on undefined initial values
|
|
3646
3671
|
const INITIAL_WATCHER_VALUE = {};
|
|
@@ -3939,10 +3964,22 @@ var Vue = (function () {
|
|
|
3939
3964
|
if (!children || !children.length) {
|
|
3940
3965
|
return;
|
|
3941
3966
|
}
|
|
3942
|
-
|
|
3967
|
+
let child = children[0];
|
|
3943
3968
|
if (children.length > 1) {
|
|
3944
|
-
|
|
3945
|
-
|
|
3969
|
+
let hasFound = false;
|
|
3970
|
+
// locate first non-comment child
|
|
3971
|
+
for (const c of children) {
|
|
3972
|
+
if (c.type !== Comment) {
|
|
3973
|
+
if (hasFound) {
|
|
3974
|
+
// warn more than one non-comment child
|
|
3975
|
+
warn$1('<transition> can only be used on a single element or component. ' +
|
|
3976
|
+
'Use <transition-group> for lists.');
|
|
3977
|
+
break;
|
|
3978
|
+
}
|
|
3979
|
+
child = c;
|
|
3980
|
+
hasFound = true;
|
|
3981
|
+
}
|
|
3982
|
+
}
|
|
3946
3983
|
}
|
|
3947
3984
|
// there's no need to track reactivity for these props so use the raw
|
|
3948
3985
|
// props for a bit better perf
|
|
@@ -3950,11 +3987,11 @@ var Vue = (function () {
|
|
|
3950
3987
|
const { mode } = rawProps;
|
|
3951
3988
|
// check mode
|
|
3952
3989
|
if (mode &&
|
|
3953
|
-
mode !== 'in-out' &&
|
|
3990
|
+
mode !== 'in-out' &&
|
|
3991
|
+
mode !== 'out-in' &&
|
|
3992
|
+
mode !== 'default') {
|
|
3954
3993
|
warn$1(`invalid <transition> mode: ${mode}`);
|
|
3955
3994
|
}
|
|
3956
|
-
// at this point children has a guaranteed length of 1.
|
|
3957
|
-
const child = children[0];
|
|
3958
3995
|
if (state.isLeaving) {
|
|
3959
3996
|
return emptyPlaceholder(child);
|
|
3960
3997
|
}
|
|
@@ -4180,20 +4217,24 @@ var Vue = (function () {
|
|
|
4180
4217
|
vnode.transition = hooks;
|
|
4181
4218
|
}
|
|
4182
4219
|
}
|
|
4183
|
-
function getTransitionRawChildren(children, keepComment = false) {
|
|
4220
|
+
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
4184
4221
|
let ret = [];
|
|
4185
4222
|
let keyedFragmentCount = 0;
|
|
4186
4223
|
for (let i = 0; i < children.length; i++) {
|
|
4187
|
-
|
|
4224
|
+
let child = children[i];
|
|
4225
|
+
// #5360 inherit parent key in case of <template v-for>
|
|
4226
|
+
const key = parentKey == null
|
|
4227
|
+
? child.key
|
|
4228
|
+
: String(parentKey) + String(child.key != null ? child.key : i);
|
|
4188
4229
|
// handle fragment children case, e.g. v-for
|
|
4189
4230
|
if (child.type === Fragment) {
|
|
4190
4231
|
if (child.patchFlag & 128 /* KEYED_FRAGMENT */)
|
|
4191
4232
|
keyedFragmentCount++;
|
|
4192
|
-
ret = ret.concat(getTransitionRawChildren(child.children, keepComment));
|
|
4233
|
+
ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));
|
|
4193
4234
|
}
|
|
4194
4235
|
// comment placeholders should be skipped, e.g. v-if
|
|
4195
4236
|
else if (keepComment || child.type !== Comment) {
|
|
4196
|
-
ret.push(child);
|
|
4237
|
+
ret.push(key != null ? cloneVNode(child, { key }) : child);
|
|
4197
4238
|
}
|
|
4198
4239
|
}
|
|
4199
4240
|
// #1126 if a transition children list contains multiple sub fragments, these
|
|
@@ -5251,6 +5292,10 @@ var Vue = (function () {
|
|
|
5251
5292
|
const propsToUpdate = instance.vnode.dynamicProps;
|
|
5252
5293
|
for (let i = 0; i < propsToUpdate.length; i++) {
|
|
5253
5294
|
let key = propsToUpdate[i];
|
|
5295
|
+
// skip if the prop key is a declared emit event listener
|
|
5296
|
+
if (isEmitListener(instance.emitsOptions, key)) {
|
|
5297
|
+
continue;
|
|
5298
|
+
}
|
|
5254
5299
|
// PROPS flag guarantees rawProps to be non-null
|
|
5255
5300
|
const value = rawProps[key];
|
|
5256
5301
|
if (options) {
|
|
@@ -5836,7 +5881,8 @@ var Vue = (function () {
|
|
|
5836
5881
|
warn$1(`withDirectives can only be used inside render functions.`);
|
|
5837
5882
|
return vnode;
|
|
5838
5883
|
}
|
|
5839
|
-
const instance = internalInstance
|
|
5884
|
+
const instance = getExposeProxy(internalInstance) ||
|
|
5885
|
+
internalInstance.proxy;
|
|
5840
5886
|
const bindings = vnode.dirs || (vnode.dirs = []);
|
|
5841
5887
|
for (let i = 0; i < directives.length; i++) {
|
|
5842
5888
|
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
|
|
@@ -5956,7 +6002,7 @@ var Vue = (function () {
|
|
|
5956
6002
|
return vm;
|
|
5957
6003
|
}
|
|
5958
6004
|
}
|
|
5959
|
-
Vue.version = `2.6.14-compat:${"3.2.
|
|
6005
|
+
Vue.version = `2.6.14-compat:${"3.2.33"}`;
|
|
5960
6006
|
Vue.config = singletonApp.config;
|
|
5961
6007
|
Vue.use = (p, ...options) => {
|
|
5962
6008
|
if (p && isFunction(p.install)) {
|
|
@@ -6383,6 +6429,9 @@ var Vue = (function () {
|
|
|
6383
6429
|
let uid = 0;
|
|
6384
6430
|
function createAppAPI(render, hydrate) {
|
|
6385
6431
|
return function createApp(rootComponent, rootProps = null) {
|
|
6432
|
+
if (!isFunction(rootComponent)) {
|
|
6433
|
+
rootComponent = Object.assign({}, rootComponent);
|
|
6434
|
+
}
|
|
6386
6435
|
if (rootProps != null && !isObject(rootProps)) {
|
|
6387
6436
|
warn$1(`root props passed to app.mount() must be an object.`);
|
|
6388
6437
|
rootProps = null;
|
|
@@ -6582,6 +6631,9 @@ var Vue = (function () {
|
|
|
6582
6631
|
if (!isArray(existing)) {
|
|
6583
6632
|
if (_isString) {
|
|
6584
6633
|
refs[ref] = [refValue];
|
|
6634
|
+
if (hasOwn(setupState, ref)) {
|
|
6635
|
+
setupState[ref] = refs[ref];
|
|
6636
|
+
}
|
|
6585
6637
|
}
|
|
6586
6638
|
else {
|
|
6587
6639
|
ref.value = [refValue];
|
|
@@ -6780,7 +6832,8 @@ var Vue = (function () {
|
|
|
6780
6832
|
// e.g. <option :value="obj">, <input type="checkbox" :true-value="1">
|
|
6781
6833
|
const forcePatchValue = (type === 'input' && dirs) || type === 'option';
|
|
6782
6834
|
// skip props & children if this is hoisted static nodes
|
|
6783
|
-
|
|
6835
|
+
// #5405 in dev, always hydrate children for HMR
|
|
6836
|
+
{
|
|
6784
6837
|
if (dirs) {
|
|
6785
6838
|
invokeDirectiveHook(vnode, null, parentComponent, 'created');
|
|
6786
6839
|
}
|
|
@@ -6953,7 +7006,7 @@ var Vue = (function () {
|
|
|
6953
7006
|
perf.mark(`vue-${type}-${instance.uid}`);
|
|
6954
7007
|
}
|
|
6955
7008
|
{
|
|
6956
|
-
devtoolsPerfStart(instance, type,
|
|
7009
|
+
devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());
|
|
6957
7010
|
}
|
|
6958
7011
|
}
|
|
6959
7012
|
function endMeasure(instance, type) {
|
|
@@ -6966,7 +7019,7 @@ var Vue = (function () {
|
|
|
6966
7019
|
perf.clearMarks(endTag);
|
|
6967
7020
|
}
|
|
6968
7021
|
{
|
|
6969
|
-
devtoolsPerfEnd(instance, type,
|
|
7022
|
+
devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());
|
|
6970
7023
|
}
|
|
6971
7024
|
}
|
|
6972
7025
|
function isSupported() {
|
|
@@ -8113,7 +8166,22 @@ var Vue = (function () {
|
|
|
8113
8166
|
const remove = vnode => {
|
|
8114
8167
|
const { type, el, anchor, transition } = vnode;
|
|
8115
8168
|
if (type === Fragment) {
|
|
8116
|
-
|
|
8169
|
+
if (vnode.patchFlag > 0 &&
|
|
8170
|
+
vnode.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */ &&
|
|
8171
|
+
transition &&
|
|
8172
|
+
!transition.persisted) {
|
|
8173
|
+
vnode.children.forEach(child => {
|
|
8174
|
+
if (child.type === Comment) {
|
|
8175
|
+
hostRemove(child.el);
|
|
8176
|
+
}
|
|
8177
|
+
else {
|
|
8178
|
+
remove(child);
|
|
8179
|
+
}
|
|
8180
|
+
});
|
|
8181
|
+
}
|
|
8182
|
+
else {
|
|
8183
|
+
removeFragment(el, anchor);
|
|
8184
|
+
}
|
|
8117
8185
|
return;
|
|
8118
8186
|
}
|
|
8119
8187
|
if (type === Static) {
|
|
@@ -9506,7 +9574,10 @@ var Vue = (function () {
|
|
|
9506
9574
|
// this is not a user-facing function, so the fallback is always generated by
|
|
9507
9575
|
// the compiler and guaranteed to be a function returning an array
|
|
9508
9576
|
fallback, noSlotted) {
|
|
9509
|
-
if (currentRenderingInstance.isCE
|
|
9577
|
+
if (currentRenderingInstance.isCE ||
|
|
9578
|
+
(currentRenderingInstance.parent &&
|
|
9579
|
+
isAsyncWrapper(currentRenderingInstance.parent) &&
|
|
9580
|
+
currentRenderingInstance.parent.isCE)) {
|
|
9510
9581
|
return createVNode('slot', name === 'default' ? null : { name }, fallback && fallback());
|
|
9511
9582
|
}
|
|
9512
9583
|
let slot = slots[name];
|
|
@@ -9796,7 +9867,10 @@ var Vue = (function () {
|
|
|
9796
9867
|
return getExposeProxy(i) || i.proxy;
|
|
9797
9868
|
return getPublicInstance(i.parent);
|
|
9798
9869
|
};
|
|
9799
|
-
const publicPropertiesMap =
|
|
9870
|
+
const publicPropertiesMap =
|
|
9871
|
+
// Move PURE marker to new line to workaround compiler discarding it
|
|
9872
|
+
// due to type annotation
|
|
9873
|
+
/*#__PURE__*/ extend(Object.create(null), {
|
|
9800
9874
|
$: i => i,
|
|
9801
9875
|
$el: i => i.vnode.el,
|
|
9802
9876
|
$data: i => i.data,
|
|
@@ -9909,7 +9983,9 @@ var Vue = (function () {
|
|
|
9909
9983
|
}
|
|
9910
9984
|
else {
|
|
9911
9985
|
const val = globalProperties[key];
|
|
9912
|
-
return isFunction(val)
|
|
9986
|
+
return isFunction(val)
|
|
9987
|
+
? Object.assign(val.bind(instance.proxy), val)
|
|
9988
|
+
: val;
|
|
9913
9989
|
}
|
|
9914
9990
|
}
|
|
9915
9991
|
}
|
|
@@ -9934,9 +10010,11 @@ var Vue = (function () {
|
|
|
9934
10010
|
const { data, setupState, ctx } = instance;
|
|
9935
10011
|
if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {
|
|
9936
10012
|
setupState[key] = value;
|
|
10013
|
+
return true;
|
|
9937
10014
|
}
|
|
9938
10015
|
else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
|
|
9939
10016
|
data[key] = value;
|
|
10017
|
+
return true;
|
|
9940
10018
|
}
|
|
9941
10019
|
else if (hasOwn(instance.props, key)) {
|
|
9942
10020
|
warn$1(`Attempting to mutate prop "${key}". Props are readonly.`, instance);
|
|
@@ -9970,6 +10048,16 @@ var Vue = (function () {
|
|
|
9970
10048
|
hasOwn(ctx, key) ||
|
|
9971
10049
|
hasOwn(publicPropertiesMap, key) ||
|
|
9972
10050
|
hasOwn(appContext.config.globalProperties, key));
|
|
10051
|
+
},
|
|
10052
|
+
defineProperty(target, key, descriptor) {
|
|
10053
|
+
if (descriptor.get != null) {
|
|
10054
|
+
// invalidate key cache of a getter based property #5417
|
|
10055
|
+
target._.accessCache[key] = 0;
|
|
10056
|
+
}
|
|
10057
|
+
else if (hasOwn(descriptor, 'value')) {
|
|
10058
|
+
this.set(target, key, descriptor.value, null);
|
|
10059
|
+
}
|
|
10060
|
+
return Reflect.defineProperty(target, key, descriptor);
|
|
9973
10061
|
}
|
|
9974
10062
|
};
|
|
9975
10063
|
{
|
|
@@ -10172,6 +10260,7 @@ var Vue = (function () {
|
|
|
10172
10260
|
return setupResult;
|
|
10173
10261
|
}
|
|
10174
10262
|
function setupStatefulComponent(instance, isSSR) {
|
|
10263
|
+
var _a;
|
|
10175
10264
|
const Component = instance.type;
|
|
10176
10265
|
{
|
|
10177
10266
|
if (Component.name) {
|
|
@@ -10229,6 +10318,13 @@ var Vue = (function () {
|
|
|
10229
10318
|
// async setup returned Promise.
|
|
10230
10319
|
// bail here and wait for re-entry.
|
|
10231
10320
|
instance.asyncDep = setupResult;
|
|
10321
|
+
if (!instance.suspense) {
|
|
10322
|
+
const name = (_a = Component.name) !== null && _a !== void 0 ? _a : 'Anonymous';
|
|
10323
|
+
warn$1(`Component <${name}>: setup function returned a promise, but no ` +
|
|
10324
|
+
`<Suspense> boundary was found in the parent component tree. ` +
|
|
10325
|
+
`A component with async setup() must be nested in a <Suspense> ` +
|
|
10326
|
+
`in order to be rendered.`);
|
|
10327
|
+
}
|
|
10232
10328
|
}
|
|
10233
10329
|
}
|
|
10234
10330
|
else {
|
|
@@ -10855,7 +10951,7 @@ var Vue = (function () {
|
|
|
10855
10951
|
}
|
|
10856
10952
|
|
|
10857
10953
|
// Core API ------------------------------------------------------------------
|
|
10858
|
-
const version = "3.2.
|
|
10954
|
+
const version = "3.2.33";
|
|
10859
10955
|
/**
|
|
10860
10956
|
* SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
|
|
10861
10957
|
* @internal
|
|
@@ -10879,7 +10975,7 @@ var Vue = (function () {
|
|
|
10879
10975
|
|
|
10880
10976
|
const svgNS = 'http://www.w3.org/2000/svg';
|
|
10881
10977
|
const doc = (typeof document !== 'undefined' ? document : null);
|
|
10882
|
-
const templateContainer = doc && doc.createElement('template');
|
|
10978
|
+
const templateContainer = doc && /*#__PURE__*/ doc.createElement('template');
|
|
10883
10979
|
const nodeOps = {
|
|
10884
10980
|
insert: (child, parent, anchor) => {
|
|
10885
10981
|
parent.insertBefore(child, anchor || null);
|
|
@@ -11030,6 +11126,8 @@ var Vue = (function () {
|
|
|
11030
11126
|
val.forEach(v => setStyle(style, name, v));
|
|
11031
11127
|
}
|
|
11032
11128
|
else {
|
|
11129
|
+
if (val == null)
|
|
11130
|
+
val = '';
|
|
11033
11131
|
if (name.startsWith('--')) {
|
|
11034
11132
|
// custom property definition
|
|
11035
11133
|
style.setProperty(name, val);
|
|
@@ -11151,41 +11249,39 @@ var Vue = (function () {
|
|
|
11151
11249
|
}
|
|
11152
11250
|
return;
|
|
11153
11251
|
}
|
|
11252
|
+
let needRemove = false;
|
|
11154
11253
|
if (value === '' || value == null) {
|
|
11155
11254
|
const type = typeof el[key];
|
|
11156
11255
|
if (type === 'boolean') {
|
|
11157
11256
|
// e.g. <select multiple> compiles to { multiple: '' }
|
|
11158
|
-
|
|
11159
|
-
return;
|
|
11257
|
+
value = includeBooleanAttr(value);
|
|
11160
11258
|
}
|
|
11161
11259
|
else if (value == null && type === 'string') {
|
|
11162
11260
|
// e.g. <div :id="null">
|
|
11163
|
-
|
|
11164
|
-
|
|
11165
|
-
return;
|
|
11261
|
+
value = '';
|
|
11262
|
+
needRemove = true;
|
|
11166
11263
|
}
|
|
11167
11264
|
else if (type === 'number') {
|
|
11168
11265
|
// e.g. <img :width="null">
|
|
11169
11266
|
// the value of some IDL attr must be greater than 0, e.g. input.size = 0 -> error
|
|
11170
|
-
|
|
11171
|
-
|
|
11172
|
-
}
|
|
11173
|
-
catch (_a) { }
|
|
11174
|
-
el.removeAttribute(key);
|
|
11175
|
-
return;
|
|
11267
|
+
value = 0;
|
|
11268
|
+
needRemove = true;
|
|
11176
11269
|
}
|
|
11177
11270
|
}
|
|
11178
|
-
|
|
11179
|
-
|
|
11180
|
-
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
|
|
11184
|
-
|
|
11185
|
-
|
|
11271
|
+
else {
|
|
11272
|
+
if (value === false &&
|
|
11273
|
+
compatUtils.isCompatEnabled("ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */, parentComponent)) {
|
|
11274
|
+
const type = typeof el[key];
|
|
11275
|
+
if (type === 'string' || type === 'number') {
|
|
11276
|
+
compatUtils.warnDeprecation("ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */, parentComponent, key);
|
|
11277
|
+
value = type === 'number' ? 0 : '';
|
|
11278
|
+
needRemove = true;
|
|
11279
|
+
}
|
|
11186
11280
|
}
|
|
11187
11281
|
}
|
|
11188
|
-
// some properties perform value validation and throw
|
|
11282
|
+
// some properties perform value validation and throw,
|
|
11283
|
+
// some properties has getter, no setter, will error in 'use strict'
|
|
11284
|
+
// eg. <select :type="null"></select> <select :willValidate="null"></select>
|
|
11189
11285
|
try {
|
|
11190
11286
|
el[key] = value;
|
|
11191
11287
|
}
|
|
@@ -11195,31 +11291,35 @@ var Vue = (function () {
|
|
|
11195
11291
|
`value ${value} is invalid.`, e);
|
|
11196
11292
|
}
|
|
11197
11293
|
}
|
|
11294
|
+
needRemove && el.removeAttribute(key);
|
|
11198
11295
|
}
|
|
11199
11296
|
|
|
11200
11297
|
// Async edge case fix requires storing an event listener's attach timestamp.
|
|
11201
|
-
|
|
11202
|
-
|
|
11203
|
-
|
|
11204
|
-
|
|
11205
|
-
|
|
11206
|
-
|
|
11207
|
-
|
|
11208
|
-
|
|
11209
|
-
|
|
11210
|
-
|
|
11211
|
-
|
|
11212
|
-
|
|
11213
|
-
|
|
11214
|
-
|
|
11215
|
-
|
|
11216
|
-
|
|
11217
|
-
|
|
11218
|
-
|
|
11298
|
+
const [_getNow, skipTimestampCheck] = /*#__PURE__*/ (() => {
|
|
11299
|
+
let _getNow = Date.now;
|
|
11300
|
+
let skipTimestampCheck = false;
|
|
11301
|
+
if (typeof window !== 'undefined') {
|
|
11302
|
+
// Determine what event timestamp the browser is using. Annoyingly, the
|
|
11303
|
+
// timestamp can either be hi-res (relative to page load) or low-res
|
|
11304
|
+
// (relative to UNIX epoch), so in order to compare time we have to use the
|
|
11305
|
+
// same timestamp type when saving the flush timestamp.
|
|
11306
|
+
if (Date.now() > document.createEvent('Event').timeStamp) {
|
|
11307
|
+
// if the low-res timestamp which is bigger than the event timestamp
|
|
11308
|
+
// (which is evaluated AFTER) it means the event is using a hi-res timestamp,
|
|
11309
|
+
// and we need to use the hi-res version for event listeners as well.
|
|
11310
|
+
_getNow = () => performance.now();
|
|
11311
|
+
}
|
|
11312
|
+
// #3485: Firefox <= 53 has incorrect Event.timeStamp implementation
|
|
11313
|
+
// and does not fire microtasks in between event propagation, so safe to exclude.
|
|
11314
|
+
const ffMatch = navigator.userAgent.match(/firefox\/(\d+)/i);
|
|
11315
|
+
skipTimestampCheck = !!(ffMatch && Number(ffMatch[1]) <= 53);
|
|
11316
|
+
}
|
|
11317
|
+
return [_getNow, skipTimestampCheck];
|
|
11318
|
+
})();
|
|
11219
11319
|
// To avoid the overhead of repeatedly calling performance.now(), we cache
|
|
11220
11320
|
// and use the same timestamp for all event listeners attached in the same tick.
|
|
11221
11321
|
let cachedNow = 0;
|
|
11222
|
-
const p = Promise.resolve();
|
|
11322
|
+
const p = /*#__PURE__*/ Promise.resolve();
|
|
11223
11323
|
const reset = () => {
|
|
11224
11324
|
cachedNow = 0;
|
|
11225
11325
|
};
|
|
@@ -11344,13 +11444,13 @@ var Vue = (function () {
|
|
|
11344
11444
|
}
|
|
11345
11445
|
return false;
|
|
11346
11446
|
}
|
|
11347
|
-
//
|
|
11348
|
-
//
|
|
11349
|
-
//
|
|
11350
|
-
//
|
|
11447
|
+
// these are enumerated attrs, however their corresponding DOM properties
|
|
11448
|
+
// are actually booleans - this leads to setting it with a string "false"
|
|
11449
|
+
// value leading it to be coerced to `true`, so we need to always treat
|
|
11450
|
+
// them as attributes.
|
|
11351
11451
|
// Note that `contentEditable` doesn't have this problem: its DOM
|
|
11352
11452
|
// property is also enumerated string values.
|
|
11353
|
-
if (key === 'spellcheck' || key === 'draggable') {
|
|
11453
|
+
if (key === 'spellcheck' || key === 'draggable' || key === 'translate') {
|
|
11354
11454
|
return false;
|
|
11355
11455
|
}
|
|
11356
11456
|
// #1787, #2840 form property on form elements is readonly and must be set as
|
|
@@ -12480,7 +12580,7 @@ var Vue = (function () {
|
|
|
12480
12580
|
el.style.display = value ? el._vod : 'none';
|
|
12481
12581
|
}
|
|
12482
12582
|
|
|
12483
|
-
const rendererOptions = extend({ patchProp }, nodeOps);
|
|
12583
|
+
const rendererOptions = /*#__PURE__*/ extend({ patchProp }, nodeOps);
|
|
12484
12584
|
// lazy create the renderer - this makes core renderer logic tree-shakable
|
|
12485
12585
|
// in case the user only imports reactivity utilities from Vue.
|
|
12486
12586
|
let renderer;
|