@vue/compat 3.2.41 → 3.2.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 +195 -163
- package/dist/vue.cjs.prod.js +199 -163
- package/dist/vue.esm-browser.js +105 -72
- package/dist/vue.esm-browser.prod.js +1 -1
- package/dist/vue.esm-bundler.js +118 -76
- package/dist/vue.global.js +105 -72
- package/dist/vue.global.prod.js +1 -1
- package/dist/vue.runtime.esm-browser.js +79 -57
- package/dist/vue.runtime.esm-browser.prod.js +1 -1
- package/dist/vue.runtime.esm-bundler.js +90 -59
- package/dist/vue.runtime.global.js +79 -57
- package/dist/vue.runtime.global.prod.js +1 -1
- package/package.json +2 -2
|
@@ -19,27 +19,6 @@ const GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,p
|
|
|
19
19
|
'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';
|
|
20
20
|
const isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);
|
|
21
21
|
|
|
22
|
-
/**
|
|
23
|
-
* On the client we only need to offer special cases for boolean attributes that
|
|
24
|
-
* have different names from their corresponding dom properties:
|
|
25
|
-
* - itemscope -> N/A
|
|
26
|
-
* - allowfullscreen -> allowFullscreen
|
|
27
|
-
* - formnovalidate -> formNoValidate
|
|
28
|
-
* - ismap -> isMap
|
|
29
|
-
* - nomodule -> noModule
|
|
30
|
-
* - novalidate -> noValidate
|
|
31
|
-
* - readonly -> readOnly
|
|
32
|
-
*/
|
|
33
|
-
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
34
|
-
const isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);
|
|
35
|
-
/**
|
|
36
|
-
* Boolean attributes should be included if the value is truthy or ''.
|
|
37
|
-
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
38
|
-
*/
|
|
39
|
-
function includeBooleanAttr(value) {
|
|
40
|
-
return !!value || value === '';
|
|
41
|
-
}
|
|
42
|
-
|
|
43
22
|
function normalizeStyle(value) {
|
|
44
23
|
if (isArray(value)) {
|
|
45
24
|
const res = {};
|
|
@@ -64,10 +43,14 @@ function normalizeStyle(value) {
|
|
|
64
43
|
}
|
|
65
44
|
}
|
|
66
45
|
const listDelimiterRE = /;(?![^(]*\))/g;
|
|
67
|
-
const propertyDelimiterRE = /:(
|
|
46
|
+
const propertyDelimiterRE = /:([^]+)/;
|
|
47
|
+
const styleCommentRE = /\/\*.*?\*\//gs;
|
|
68
48
|
function parseStringStyle(cssText) {
|
|
69
49
|
const ret = {};
|
|
70
|
-
cssText
|
|
50
|
+
cssText
|
|
51
|
+
.replace(styleCommentRE, '')
|
|
52
|
+
.split(listDelimiterRE)
|
|
53
|
+
.forEach(item => {
|
|
71
54
|
if (item) {
|
|
72
55
|
const tmp = item.split(propertyDelimiterRE);
|
|
73
56
|
tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
|
|
@@ -143,6 +126,27 @@ const isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);
|
|
|
143
126
|
*/
|
|
144
127
|
const isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);
|
|
145
128
|
|
|
129
|
+
/**
|
|
130
|
+
* On the client we only need to offer special cases for boolean attributes that
|
|
131
|
+
* have different names from their corresponding dom properties:
|
|
132
|
+
* - itemscope -> N/A
|
|
133
|
+
* - allowfullscreen -> allowFullscreen
|
|
134
|
+
* - formnovalidate -> formNoValidate
|
|
135
|
+
* - ismap -> isMap
|
|
136
|
+
* - nomodule -> noModule
|
|
137
|
+
* - novalidate -> noValidate
|
|
138
|
+
* - readonly -> readOnly
|
|
139
|
+
*/
|
|
140
|
+
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
141
|
+
const isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);
|
|
142
|
+
/**
|
|
143
|
+
* Boolean attributes should be included if the value is truthy or ''.
|
|
144
|
+
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
145
|
+
*/
|
|
146
|
+
function includeBooleanAttr(value) {
|
|
147
|
+
return !!value || value === '';
|
|
148
|
+
}
|
|
149
|
+
|
|
146
150
|
function looseCompareArrays(a, b) {
|
|
147
151
|
if (a.length !== b.length)
|
|
148
152
|
return false;
|
|
@@ -648,8 +652,9 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
|
648
652
|
deps = [...depsMap.values()];
|
|
649
653
|
}
|
|
650
654
|
else if (key === 'length' && isArray(target)) {
|
|
655
|
+
const newLength = toNumber(newValue);
|
|
651
656
|
depsMap.forEach((dep, key) => {
|
|
652
|
-
if (key === 'length' || key >=
|
|
657
|
+
if (key === 'length' || key >= newLength) {
|
|
653
658
|
deps.push(dep);
|
|
654
659
|
}
|
|
655
660
|
});
|
|
@@ -2727,7 +2732,7 @@ function emit$2(instance, event, ...rawArgs) {
|
|
|
2727
2732
|
const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;
|
|
2728
2733
|
const { number, trim } = props[modifiersKey] || EMPTY_OBJ;
|
|
2729
2734
|
if (trim) {
|
|
2730
|
-
args = rawArgs.map(a => a.trim());
|
|
2735
|
+
args = rawArgs.map(a => (isString(a) ? a.trim() : a));
|
|
2731
2736
|
}
|
|
2732
2737
|
if (number) {
|
|
2733
2738
|
args = rawArgs.map(toNumber);
|
|
@@ -3834,7 +3839,8 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3834
3839
|
};
|
|
3835
3840
|
};
|
|
3836
3841
|
// in SSR there is no need to setup an actual effect, and it should be noop
|
|
3837
|
-
// unless it's eager
|
|
3842
|
+
// unless it's eager or sync flush
|
|
3843
|
+
let ssrCleanup;
|
|
3838
3844
|
if (isInSSRComponentSetup) {
|
|
3839
3845
|
// we will also not call the invalidate callback (+ runner is not set up)
|
|
3840
3846
|
onCleanup = NOOP;
|
|
@@ -3848,9 +3854,17 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3848
3854
|
onCleanup
|
|
3849
3855
|
]);
|
|
3850
3856
|
}
|
|
3851
|
-
|
|
3857
|
+
if (flush === 'sync') {
|
|
3858
|
+
const ctx = useSSRContext();
|
|
3859
|
+
ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
|
|
3860
|
+
}
|
|
3861
|
+
else {
|
|
3862
|
+
return NOOP;
|
|
3863
|
+
}
|
|
3852
3864
|
}
|
|
3853
|
-
let oldValue = isMultiSource
|
|
3865
|
+
let oldValue = isMultiSource
|
|
3866
|
+
? new Array(source.length).fill(INITIAL_WATCHER_VALUE)
|
|
3867
|
+
: INITIAL_WATCHER_VALUE;
|
|
3854
3868
|
const job = () => {
|
|
3855
3869
|
if (!effect.active) {
|
|
3856
3870
|
return;
|
|
@@ -3872,7 +3886,10 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3872
3886
|
callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [
|
|
3873
3887
|
newValue,
|
|
3874
3888
|
// pass undefined as the old value when it's changed for the first time
|
|
3875
|
-
oldValue === INITIAL_WATCHER_VALUE
|
|
3889
|
+
oldValue === INITIAL_WATCHER_VALUE ||
|
|
3890
|
+
(isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE)
|
|
3891
|
+
? undefined
|
|
3892
|
+
: oldValue,
|
|
3876
3893
|
onCleanup
|
|
3877
3894
|
]);
|
|
3878
3895
|
oldValue = newValue;
|
|
@@ -3920,12 +3937,15 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3920
3937
|
else {
|
|
3921
3938
|
effect.run();
|
|
3922
3939
|
}
|
|
3923
|
-
|
|
3940
|
+
const unwatch = () => {
|
|
3924
3941
|
effect.stop();
|
|
3925
3942
|
if (instance && instance.scope) {
|
|
3926
3943
|
remove(instance.scope.effects, effect);
|
|
3927
3944
|
}
|
|
3928
3945
|
};
|
|
3946
|
+
if (ssrCleanup)
|
|
3947
|
+
ssrCleanup.push(unwatch);
|
|
3948
|
+
return unwatch;
|
|
3929
3949
|
}
|
|
3930
3950
|
// this.$watch
|
|
3931
3951
|
function instanceWatch(source, value, options) {
|
|
@@ -4110,7 +4130,11 @@ const BaseTransitionImpl = {
|
|
|
4110
4130
|
// return placeholder node and queue update when leave finishes
|
|
4111
4131
|
leavingHooks.afterLeave = () => {
|
|
4112
4132
|
state.isLeaving = false;
|
|
4113
|
-
|
|
4133
|
+
// #6835
|
|
4134
|
+
// it also needs to be updated when active is undefined
|
|
4135
|
+
if (instance.update.active !== false) {
|
|
4136
|
+
instance.update();
|
|
4137
|
+
}
|
|
4114
4138
|
};
|
|
4115
4139
|
return emptyPlaceholder(child);
|
|
4116
4140
|
}
|
|
@@ -4639,7 +4663,8 @@ const KeepAliveImpl = {
|
|
|
4639
4663
|
: comp);
|
|
4640
4664
|
const { include, exclude, max } = props;
|
|
4641
4665
|
if ((include && (!name || !matches(include, name))) ||
|
|
4642
|
-
(exclude && name && matches(exclude, name))
|
|
4666
|
+
(exclude && name && matches(exclude, name)) ||
|
|
4667
|
+
((process.env.NODE_ENV !== 'production') && hmrDirtyComponents.has(comp))) {
|
|
4643
4668
|
current = vnode;
|
|
4644
4669
|
return rawVNode;
|
|
4645
4670
|
}
|
|
@@ -4919,23 +4944,25 @@ function withDirectives(vnode, directives) {
|
|
|
4919
4944
|
const bindings = vnode.dirs || (vnode.dirs = []);
|
|
4920
4945
|
for (let i = 0; i < directives.length; i++) {
|
|
4921
4946
|
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
|
|
4922
|
-
if (
|
|
4923
|
-
dir
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4947
|
+
if (dir) {
|
|
4948
|
+
if (isFunction(dir)) {
|
|
4949
|
+
dir = {
|
|
4950
|
+
mounted: dir,
|
|
4951
|
+
updated: dir
|
|
4952
|
+
};
|
|
4953
|
+
}
|
|
4954
|
+
if (dir.deep) {
|
|
4955
|
+
traverse(value);
|
|
4956
|
+
}
|
|
4957
|
+
bindings.push({
|
|
4958
|
+
dir,
|
|
4959
|
+
instance,
|
|
4960
|
+
value,
|
|
4961
|
+
oldValue: void 0,
|
|
4962
|
+
arg,
|
|
4963
|
+
modifiers
|
|
4964
|
+
});
|
|
4930
4965
|
}
|
|
4931
|
-
bindings.push({
|
|
4932
|
-
dir,
|
|
4933
|
-
instance,
|
|
4934
|
-
value,
|
|
4935
|
-
oldValue: void 0,
|
|
4936
|
-
arg,
|
|
4937
|
-
modifiers
|
|
4938
|
-
});
|
|
4939
4966
|
}
|
|
4940
4967
|
return vnode;
|
|
4941
4968
|
}
|
|
@@ -6772,7 +6799,7 @@ function normalizePropsOptions(comp, appContext, asMixin = false) {
|
|
|
6772
6799
|
if (validatePropName(normalizedKey)) {
|
|
6773
6800
|
const opt = raw[key];
|
|
6774
6801
|
const prop = (normalized[normalizedKey] =
|
|
6775
|
-
isArray(opt) || isFunction(opt) ? { type: opt } : opt);
|
|
6802
|
+
isArray(opt) || isFunction(opt) ? { type: opt } : Object.assign({}, opt));
|
|
6776
6803
|
if (prop) {
|
|
6777
6804
|
const booleanIndex = getTypeIndex(Boolean, prop.type);
|
|
6778
6805
|
const stringIndex = getTypeIndex(String, prop.type);
|
|
@@ -7144,7 +7171,7 @@ function createCompatVue(createApp, createSingletonApp) {
|
|
|
7144
7171
|
return vm;
|
|
7145
7172
|
}
|
|
7146
7173
|
}
|
|
7147
|
-
Vue.version = `2.6.14-compat:${"3.2.
|
|
7174
|
+
Vue.version = `2.6.14-compat:${"3.2.42"}`;
|
|
7148
7175
|
Vue.config = singletonApp.config;
|
|
7149
7176
|
Vue.use = (p, ...options) => {
|
|
7150
7177
|
if (p && isFunction(p.install)) {
|
|
@@ -10772,6 +10799,9 @@ function getExposeProxy(instance) {
|
|
|
10772
10799
|
else if (key in publicPropertiesMap) {
|
|
10773
10800
|
return publicPropertiesMap[key](instance);
|
|
10774
10801
|
}
|
|
10802
|
+
},
|
|
10803
|
+
has(target, key) {
|
|
10804
|
+
return key in target || key in publicPropertiesMap;
|
|
10775
10805
|
}
|
|
10776
10806
|
})));
|
|
10777
10807
|
}
|
|
@@ -11225,7 +11255,7 @@ function isMemoSame(cached, memo) {
|
|
|
11225
11255
|
}
|
|
11226
11256
|
|
|
11227
11257
|
// Core API ------------------------------------------------------------------
|
|
11228
|
-
const version = "3.2.
|
|
11258
|
+
const version = "3.2.42";
|
|
11229
11259
|
const _ssrUtils = {
|
|
11230
11260
|
createComponentInstance,
|
|
11231
11261
|
setupComponent,
|
|
@@ -11798,7 +11828,7 @@ class VueElement extends BaseClass {
|
|
|
11798
11828
|
}
|
|
11799
11829
|
}).observe(this, { attributes: true });
|
|
11800
11830
|
const resolve = (def) => {
|
|
11801
|
-
const { props, styles } = def;
|
|
11831
|
+
const { props = {}, styles } = def;
|
|
11802
11832
|
const hasOptions = !isArray(props);
|
|
11803
11833
|
const rawKeys = props ? (hasOptions ? Object.keys(props) : props) : [];
|
|
11804
11834
|
// cast Number-type props set before resolve
|
|
@@ -11845,10 +11875,11 @@ class VueElement extends BaseClass {
|
|
|
11845
11875
|
}
|
|
11846
11876
|
_setAttr(key) {
|
|
11847
11877
|
let value = this.getAttribute(key);
|
|
11848
|
-
|
|
11878
|
+
const camelKey = camelize(key);
|
|
11879
|
+
if (this._numberProps && this._numberProps[camelKey]) {
|
|
11849
11880
|
value = toNumber(value);
|
|
11850
11881
|
}
|
|
11851
|
-
this._setProp(
|
|
11882
|
+
this._setProp(camelKey, value, false);
|
|
11852
11883
|
}
|
|
11853
11884
|
/**
|
|
11854
11885
|
* @internal
|
|
@@ -12279,11 +12310,11 @@ function getTransitionInfo(el, expectedType) {
|
|
|
12279
12310
|
const styles = window.getComputedStyle(el);
|
|
12280
12311
|
// JSDOM may return undefined for transition properties
|
|
12281
12312
|
const getStyleProperties = (key) => (styles[key] || '').split(', ');
|
|
12282
|
-
const transitionDelays = getStyleProperties(TRANSITION
|
|
12283
|
-
const transitionDurations = getStyleProperties(TRANSITION
|
|
12313
|
+
const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
|
|
12314
|
+
const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
|
|
12284
12315
|
const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
|
|
12285
|
-
const animationDelays = getStyleProperties(ANIMATION
|
|
12286
|
-
const animationDurations = getStyleProperties(ANIMATION
|
|
12316
|
+
const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
|
|
12317
|
+
const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
|
|
12287
12318
|
const animationTimeout = getTimeout(animationDelays, animationDurations);
|
|
12288
12319
|
let type = null;
|
|
12289
12320
|
let timeout = 0;
|
|
@@ -12318,7 +12349,7 @@ function getTransitionInfo(el, expectedType) {
|
|
|
12318
12349
|
: 0;
|
|
12319
12350
|
}
|
|
12320
12351
|
const hasTransform = type === TRANSITION &&
|
|
12321
|
-
/\b(transform|all)(,|$)/.test(
|
|
12352
|
+
/\b(transform|all)(,|$)/.test(getStyleProperties(`${TRANSITION}Property`).toString());
|
|
12322
12353
|
return {
|
|
12323
12354
|
type,
|
|
12324
12355
|
timeout,
|
|
@@ -22,27 +22,6 @@ var Vue = (function () {
|
|
|
22
22
|
'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';
|
|
23
23
|
const isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);
|
|
24
24
|
|
|
25
|
-
/**
|
|
26
|
-
* On the client we only need to offer special cases for boolean attributes that
|
|
27
|
-
* have different names from their corresponding dom properties:
|
|
28
|
-
* - itemscope -> N/A
|
|
29
|
-
* - allowfullscreen -> allowFullscreen
|
|
30
|
-
* - formnovalidate -> formNoValidate
|
|
31
|
-
* - ismap -> isMap
|
|
32
|
-
* - nomodule -> noModule
|
|
33
|
-
* - novalidate -> noValidate
|
|
34
|
-
* - readonly -> readOnly
|
|
35
|
-
*/
|
|
36
|
-
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
37
|
-
const isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);
|
|
38
|
-
/**
|
|
39
|
-
* Boolean attributes should be included if the value is truthy or ''.
|
|
40
|
-
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
41
|
-
*/
|
|
42
|
-
function includeBooleanAttr(value) {
|
|
43
|
-
return !!value || value === '';
|
|
44
|
-
}
|
|
45
|
-
|
|
46
25
|
function normalizeStyle(value) {
|
|
47
26
|
if (isArray(value)) {
|
|
48
27
|
const res = {};
|
|
@@ -67,10 +46,14 @@ var Vue = (function () {
|
|
|
67
46
|
}
|
|
68
47
|
}
|
|
69
48
|
const listDelimiterRE = /;(?![^(]*\))/g;
|
|
70
|
-
const propertyDelimiterRE = /:(
|
|
49
|
+
const propertyDelimiterRE = /:([^]+)/;
|
|
50
|
+
const styleCommentRE = /\/\*.*?\*\//gs;
|
|
71
51
|
function parseStringStyle(cssText) {
|
|
72
52
|
const ret = {};
|
|
73
|
-
cssText
|
|
53
|
+
cssText
|
|
54
|
+
.replace(styleCommentRE, '')
|
|
55
|
+
.split(listDelimiterRE)
|
|
56
|
+
.forEach(item => {
|
|
74
57
|
if (item) {
|
|
75
58
|
const tmp = item.split(propertyDelimiterRE);
|
|
76
59
|
tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
|
|
@@ -146,6 +129,27 @@ var Vue = (function () {
|
|
|
146
129
|
*/
|
|
147
130
|
const isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);
|
|
148
131
|
|
|
132
|
+
/**
|
|
133
|
+
* On the client we only need to offer special cases for boolean attributes that
|
|
134
|
+
* have different names from their corresponding dom properties:
|
|
135
|
+
* - itemscope -> N/A
|
|
136
|
+
* - allowfullscreen -> allowFullscreen
|
|
137
|
+
* - formnovalidate -> formNoValidate
|
|
138
|
+
* - ismap -> isMap
|
|
139
|
+
* - nomodule -> noModule
|
|
140
|
+
* - novalidate -> noValidate
|
|
141
|
+
* - readonly -> readOnly
|
|
142
|
+
*/
|
|
143
|
+
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
144
|
+
const isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);
|
|
145
|
+
/**
|
|
146
|
+
* Boolean attributes should be included if the value is truthy or ''.
|
|
147
|
+
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
148
|
+
*/
|
|
149
|
+
function includeBooleanAttr(value) {
|
|
150
|
+
return !!value || value === '';
|
|
151
|
+
}
|
|
152
|
+
|
|
149
153
|
function looseCompareArrays(a, b) {
|
|
150
154
|
if (a.length !== b.length)
|
|
151
155
|
return false;
|
|
@@ -649,8 +653,9 @@ var Vue = (function () {
|
|
|
649
653
|
deps = [...depsMap.values()];
|
|
650
654
|
}
|
|
651
655
|
else if (key === 'length' && isArray(target)) {
|
|
656
|
+
const newLength = toNumber(newValue);
|
|
652
657
|
depsMap.forEach((dep, key) => {
|
|
653
|
-
if (key === 'length' || key >=
|
|
658
|
+
if (key === 'length' || key >= newLength) {
|
|
654
659
|
deps.push(dep);
|
|
655
660
|
}
|
|
656
661
|
});
|
|
@@ -2704,7 +2709,7 @@ var Vue = (function () {
|
|
|
2704
2709
|
const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;
|
|
2705
2710
|
const { number, trim } = props[modifiersKey] || EMPTY_OBJ;
|
|
2706
2711
|
if (trim) {
|
|
2707
|
-
args = rawArgs.map(a => a.trim());
|
|
2712
|
+
args = rawArgs.map(a => (isString(a) ? a.trim() : a));
|
|
2708
2713
|
}
|
|
2709
2714
|
if (number) {
|
|
2710
2715
|
args = rawArgs.map(toNumber);
|
|
@@ -3807,7 +3812,9 @@ var Vue = (function () {
|
|
|
3807
3812
|
callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);
|
|
3808
3813
|
};
|
|
3809
3814
|
};
|
|
3810
|
-
let oldValue = isMultiSource
|
|
3815
|
+
let oldValue = isMultiSource
|
|
3816
|
+
? new Array(source.length).fill(INITIAL_WATCHER_VALUE)
|
|
3817
|
+
: INITIAL_WATCHER_VALUE;
|
|
3811
3818
|
const job = () => {
|
|
3812
3819
|
if (!effect.active) {
|
|
3813
3820
|
return;
|
|
@@ -3829,7 +3836,10 @@ var Vue = (function () {
|
|
|
3829
3836
|
callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [
|
|
3830
3837
|
newValue,
|
|
3831
3838
|
// pass undefined as the old value when it's changed for the first time
|
|
3832
|
-
oldValue === INITIAL_WATCHER_VALUE
|
|
3839
|
+
oldValue === INITIAL_WATCHER_VALUE ||
|
|
3840
|
+
(isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE)
|
|
3841
|
+
? undefined
|
|
3842
|
+
: oldValue,
|
|
3833
3843
|
onCleanup
|
|
3834
3844
|
]);
|
|
3835
3845
|
oldValue = newValue;
|
|
@@ -3877,12 +3887,13 @@ var Vue = (function () {
|
|
|
3877
3887
|
else {
|
|
3878
3888
|
effect.run();
|
|
3879
3889
|
}
|
|
3880
|
-
|
|
3890
|
+
const unwatch = () => {
|
|
3881
3891
|
effect.stop();
|
|
3882
3892
|
if (instance && instance.scope) {
|
|
3883
3893
|
remove(instance.scope.effects, effect);
|
|
3884
3894
|
}
|
|
3885
3895
|
};
|
|
3896
|
+
return unwatch;
|
|
3886
3897
|
}
|
|
3887
3898
|
// this.$watch
|
|
3888
3899
|
function instanceWatch(source, value, options) {
|
|
@@ -4064,7 +4075,11 @@ var Vue = (function () {
|
|
|
4064
4075
|
// return placeholder node and queue update when leave finishes
|
|
4065
4076
|
leavingHooks.afterLeave = () => {
|
|
4066
4077
|
state.isLeaving = false;
|
|
4067
|
-
|
|
4078
|
+
// #6835
|
|
4079
|
+
// it also needs to be updated when active is undefined
|
|
4080
|
+
if (instance.update.active !== false) {
|
|
4081
|
+
instance.update();
|
|
4082
|
+
}
|
|
4068
4083
|
};
|
|
4069
4084
|
return emptyPlaceholder(child);
|
|
4070
4085
|
}
|
|
@@ -4585,7 +4600,8 @@ var Vue = (function () {
|
|
|
4585
4600
|
: comp);
|
|
4586
4601
|
const { include, exclude, max } = props;
|
|
4587
4602
|
if ((include && (!name || !matches(include, name))) ||
|
|
4588
|
-
(exclude && name && matches(exclude, name))
|
|
4603
|
+
(exclude && name && matches(exclude, name)) ||
|
|
4604
|
+
(hmrDirtyComponents.has(comp))) {
|
|
4589
4605
|
current = vnode;
|
|
4590
4606
|
return rawVNode;
|
|
4591
4607
|
}
|
|
@@ -4865,23 +4881,25 @@ var Vue = (function () {
|
|
|
4865
4881
|
const bindings = vnode.dirs || (vnode.dirs = []);
|
|
4866
4882
|
for (let i = 0; i < directives.length; i++) {
|
|
4867
4883
|
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
|
|
4868
|
-
if (
|
|
4869
|
-
dir
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4884
|
+
if (dir) {
|
|
4885
|
+
if (isFunction(dir)) {
|
|
4886
|
+
dir = {
|
|
4887
|
+
mounted: dir,
|
|
4888
|
+
updated: dir
|
|
4889
|
+
};
|
|
4890
|
+
}
|
|
4891
|
+
if (dir.deep) {
|
|
4892
|
+
traverse(value);
|
|
4893
|
+
}
|
|
4894
|
+
bindings.push({
|
|
4895
|
+
dir,
|
|
4896
|
+
instance,
|
|
4897
|
+
value,
|
|
4898
|
+
oldValue: void 0,
|
|
4899
|
+
arg,
|
|
4900
|
+
modifiers
|
|
4901
|
+
});
|
|
4876
4902
|
}
|
|
4877
|
-
bindings.push({
|
|
4878
|
-
dir,
|
|
4879
|
-
instance,
|
|
4880
|
-
value,
|
|
4881
|
-
oldValue: void 0,
|
|
4882
|
-
arg,
|
|
4883
|
-
modifiers
|
|
4884
|
-
});
|
|
4885
4903
|
}
|
|
4886
4904
|
return vnode;
|
|
4887
4905
|
}
|
|
@@ -6708,7 +6726,7 @@ var Vue = (function () {
|
|
|
6708
6726
|
if (validatePropName(normalizedKey)) {
|
|
6709
6727
|
const opt = raw[key];
|
|
6710
6728
|
const prop = (normalized[normalizedKey] =
|
|
6711
|
-
isArray(opt) || isFunction(opt) ? { type: opt } : opt);
|
|
6729
|
+
isArray(opt) || isFunction(opt) ? { type: opt } : Object.assign({}, opt));
|
|
6712
6730
|
if (prop) {
|
|
6713
6731
|
const booleanIndex = getTypeIndex(Boolean, prop.type);
|
|
6714
6732
|
const stringIndex = getTypeIndex(String, prop.type);
|
|
@@ -7078,7 +7096,7 @@ var Vue = (function () {
|
|
|
7078
7096
|
return vm;
|
|
7079
7097
|
}
|
|
7080
7098
|
}
|
|
7081
|
-
Vue.version = `2.6.14-compat:${"3.2.
|
|
7099
|
+
Vue.version = `2.6.14-compat:${"3.2.42"}`;
|
|
7082
7100
|
Vue.config = singletonApp.config;
|
|
7083
7101
|
Vue.use = (p, ...options) => {
|
|
7084
7102
|
if (p && isFunction(p.install)) {
|
|
@@ -10634,6 +10652,9 @@ var Vue = (function () {
|
|
|
10634
10652
|
else if (key in publicPropertiesMap) {
|
|
10635
10653
|
return publicPropertiesMap[key](instance);
|
|
10636
10654
|
}
|
|
10655
|
+
},
|
|
10656
|
+
has(target, key) {
|
|
10657
|
+
return key in target || key in publicPropertiesMap;
|
|
10637
10658
|
}
|
|
10638
10659
|
})));
|
|
10639
10660
|
}
|
|
@@ -11082,7 +11103,7 @@ var Vue = (function () {
|
|
|
11082
11103
|
}
|
|
11083
11104
|
|
|
11084
11105
|
// Core API ------------------------------------------------------------------
|
|
11085
|
-
const version = "3.2.
|
|
11106
|
+
const version = "3.2.42";
|
|
11086
11107
|
/**
|
|
11087
11108
|
* SSR utils for \@vue/server-renderer. Only exposed in ssr-possible builds.
|
|
11088
11109
|
* @internal
|
|
@@ -11646,7 +11667,7 @@ var Vue = (function () {
|
|
|
11646
11667
|
}
|
|
11647
11668
|
}).observe(this, { attributes: true });
|
|
11648
11669
|
const resolve = (def) => {
|
|
11649
|
-
const { props, styles } = def;
|
|
11670
|
+
const { props = {}, styles } = def;
|
|
11650
11671
|
const hasOptions = !isArray(props);
|
|
11651
11672
|
const rawKeys = props ? (hasOptions ? Object.keys(props) : props) : [];
|
|
11652
11673
|
// cast Number-type props set before resolve
|
|
@@ -11693,10 +11714,11 @@ var Vue = (function () {
|
|
|
11693
11714
|
}
|
|
11694
11715
|
_setAttr(key) {
|
|
11695
11716
|
let value = this.getAttribute(key);
|
|
11696
|
-
|
|
11717
|
+
const camelKey = camelize(key);
|
|
11718
|
+
if (this._numberProps && this._numberProps[camelKey]) {
|
|
11697
11719
|
value = toNumber(value);
|
|
11698
11720
|
}
|
|
11699
|
-
this._setProp(
|
|
11721
|
+
this._setProp(camelKey, value, false);
|
|
11700
11722
|
}
|
|
11701
11723
|
/**
|
|
11702
11724
|
* @internal
|
|
@@ -12112,11 +12134,11 @@ var Vue = (function () {
|
|
|
12112
12134
|
const styles = window.getComputedStyle(el);
|
|
12113
12135
|
// JSDOM may return undefined for transition properties
|
|
12114
12136
|
const getStyleProperties = (key) => (styles[key] || '').split(', ');
|
|
12115
|
-
const transitionDelays = getStyleProperties(TRANSITION
|
|
12116
|
-
const transitionDurations = getStyleProperties(TRANSITION
|
|
12137
|
+
const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
|
|
12138
|
+
const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
|
|
12117
12139
|
const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
|
|
12118
|
-
const animationDelays = getStyleProperties(ANIMATION
|
|
12119
|
-
const animationDurations = getStyleProperties(ANIMATION
|
|
12140
|
+
const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
|
|
12141
|
+
const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
|
|
12120
12142
|
const animationTimeout = getTimeout(animationDelays, animationDurations);
|
|
12121
12143
|
let type = null;
|
|
12122
12144
|
let timeout = 0;
|
|
@@ -12151,7 +12173,7 @@ var Vue = (function () {
|
|
|
12151
12173
|
: 0;
|
|
12152
12174
|
}
|
|
12153
12175
|
const hasTransform = type === TRANSITION &&
|
|
12154
|
-
/\b(transform|all)(,|$)/.test(
|
|
12176
|
+
/\b(transform|all)(,|$)/.test(getStyleProperties(`${TRANSITION}Property`).toString());
|
|
12155
12177
|
return {
|
|
12156
12178
|
type,
|
|
12157
12179
|
timeout,
|