@vue/compat 3.2.29 → 3.2.30
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 +41 -41
- package/dist/vue.cjs.js +108 -112
- package/dist/vue.cjs.prod.js +69 -72
- package/dist/vue.esm-browser.js +108 -112
- package/dist/vue.esm-browser.prod.js +1 -1
- package/dist/vue.esm-bundler.js +110 -114
- package/dist/vue.global.js +108 -112
- package/dist/vue.global.prod.js +1 -1
- package/dist/vue.runtime.esm-browser.js +100 -104
- package/dist/vue.runtime.esm-browser.prod.js +1 -1
- package/dist/vue.runtime.esm-bundler.js +102 -106
- package/dist/vue.runtime.global.js +100 -104
- package/dist/vue.runtime.global.prod.js +1 -1
- package/package.json +2 -2
|
@@ -198,13 +198,15 @@ function looseIndexOf(arr, val) {
|
|
|
198
198
|
* @private
|
|
199
199
|
*/
|
|
200
200
|
const toDisplayString = (val) => {
|
|
201
|
-
return val
|
|
202
|
-
?
|
|
203
|
-
:
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
201
|
+
return isString(val)
|
|
202
|
+
? val
|
|
203
|
+
: val == null
|
|
204
|
+
? ''
|
|
205
|
+
: isArray(val) ||
|
|
206
|
+
(isObject(val) &&
|
|
207
|
+
(val.toString === objectToString || !isFunction(val.toString)))
|
|
208
|
+
? JSON.stringify(val, replacer, 2)
|
|
209
|
+
: String(val);
|
|
208
210
|
};
|
|
209
211
|
const replacer = (_key, val) => {
|
|
210
212
|
// can't use isRef here since @vue/shared has no deps
|
|
@@ -278,6 +280,7 @@ const isReservedProp = /*#__PURE__*/ makeMap(
|
|
|
278
280
|
'onVnodeBeforeMount,onVnodeMounted,' +
|
|
279
281
|
'onVnodeBeforeUpdate,onVnodeUpdated,' +
|
|
280
282
|
'onVnodeBeforeUnmount,onVnodeUnmounted');
|
|
283
|
+
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
281
284
|
const cacheStringFunction = (fn) => {
|
|
282
285
|
const cache = Object.create(null);
|
|
283
286
|
return ((str) => {
|
|
@@ -343,7 +346,6 @@ function warn(msg, ...args) {
|
|
|
343
346
|
}
|
|
344
347
|
|
|
345
348
|
let activeEffectScope;
|
|
346
|
-
const effectScopeStack = [];
|
|
347
349
|
class EffectScope {
|
|
348
350
|
constructor(detached = false) {
|
|
349
351
|
this.active = true;
|
|
@@ -358,11 +360,11 @@ class EffectScope {
|
|
|
358
360
|
run(fn) {
|
|
359
361
|
if (this.active) {
|
|
360
362
|
try {
|
|
361
|
-
this
|
|
363
|
+
activeEffectScope = this;
|
|
362
364
|
return fn();
|
|
363
365
|
}
|
|
364
366
|
finally {
|
|
365
|
-
this.
|
|
367
|
+
activeEffectScope = this.parent;
|
|
366
368
|
}
|
|
367
369
|
}
|
|
368
370
|
else {
|
|
@@ -370,23 +372,24 @@ class EffectScope {
|
|
|
370
372
|
}
|
|
371
373
|
}
|
|
372
374
|
on() {
|
|
373
|
-
|
|
374
|
-
effectScopeStack.push(this);
|
|
375
|
-
activeEffectScope = this;
|
|
376
|
-
}
|
|
375
|
+
activeEffectScope = this;
|
|
377
376
|
}
|
|
378
377
|
off() {
|
|
379
|
-
|
|
380
|
-
effectScopeStack.pop();
|
|
381
|
-
activeEffectScope = effectScopeStack[effectScopeStack.length - 1];
|
|
382
|
-
}
|
|
378
|
+
activeEffectScope = this.parent;
|
|
383
379
|
}
|
|
384
380
|
stop(fromParent) {
|
|
385
381
|
if (this.active) {
|
|
386
|
-
|
|
387
|
-
this.
|
|
382
|
+
let i, l;
|
|
383
|
+
for (i = 0, l = this.effects.length; i < l; i++) {
|
|
384
|
+
this.effects[i].stop();
|
|
385
|
+
}
|
|
386
|
+
for (i = 0, l = this.cleanups.length; i < l; i++) {
|
|
387
|
+
this.cleanups[i]();
|
|
388
|
+
}
|
|
388
389
|
if (this.scopes) {
|
|
389
|
-
this.scopes.
|
|
390
|
+
for (i = 0, l = this.scopes.length; i < l; i++) {
|
|
391
|
+
this.scopes[i].stop(true);
|
|
392
|
+
}
|
|
390
393
|
}
|
|
391
394
|
// nested scope, dereference from parent to avoid memory leaks
|
|
392
395
|
if (this.parent && !fromParent) {
|
|
@@ -404,8 +407,7 @@ class EffectScope {
|
|
|
404
407
|
function effectScope(detached) {
|
|
405
408
|
return new EffectScope(detached);
|
|
406
409
|
}
|
|
407
|
-
function recordEffectScope(effect, scope) {
|
|
408
|
-
scope = scope || activeEffectScope;
|
|
410
|
+
function recordEffectScope(effect, scope = activeEffectScope) {
|
|
409
411
|
if (scope && scope.active) {
|
|
410
412
|
scope.effects.push(effect);
|
|
411
413
|
}
|
|
@@ -468,7 +470,6 @@ let trackOpBit = 1;
|
|
|
468
470
|
* When recursion depth is greater, fall back to using a full cleanup.
|
|
469
471
|
*/
|
|
470
472
|
const maxMarkerBits = 30;
|
|
471
|
-
const effectStack = [];
|
|
472
473
|
let activeEffect;
|
|
473
474
|
const ITERATE_KEY = Symbol('iterate' );
|
|
474
475
|
const MAP_KEY_ITERATE_KEY = Symbol('Map key iterate' );
|
|
@@ -478,35 +479,42 @@ class ReactiveEffect {
|
|
|
478
479
|
this.scheduler = scheduler;
|
|
479
480
|
this.active = true;
|
|
480
481
|
this.deps = [];
|
|
482
|
+
this.parent = undefined;
|
|
481
483
|
recordEffectScope(this, scope);
|
|
482
484
|
}
|
|
483
485
|
run() {
|
|
484
486
|
if (!this.active) {
|
|
485
487
|
return this.fn();
|
|
486
488
|
}
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
if (effectTrackDepth <= maxMarkerBits) {
|
|
493
|
-
initDepMarkers(this);
|
|
494
|
-
}
|
|
495
|
-
else {
|
|
496
|
-
cleanupEffect(this);
|
|
497
|
-
}
|
|
498
|
-
return this.fn();
|
|
489
|
+
let parent = activeEffect;
|
|
490
|
+
let lastShouldTrack = shouldTrack;
|
|
491
|
+
while (parent) {
|
|
492
|
+
if (parent === this) {
|
|
493
|
+
return;
|
|
499
494
|
}
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
495
|
+
parent = parent.parent;
|
|
496
|
+
}
|
|
497
|
+
try {
|
|
498
|
+
this.parent = activeEffect;
|
|
499
|
+
activeEffect = this;
|
|
500
|
+
shouldTrack = true;
|
|
501
|
+
trackOpBit = 1 << ++effectTrackDepth;
|
|
502
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
503
|
+
initDepMarkers(this);
|
|
509
504
|
}
|
|
505
|
+
else {
|
|
506
|
+
cleanupEffect(this);
|
|
507
|
+
}
|
|
508
|
+
return this.fn();
|
|
509
|
+
}
|
|
510
|
+
finally {
|
|
511
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
512
|
+
finalizeDepMarkers(this);
|
|
513
|
+
}
|
|
514
|
+
trackOpBit = 1 << --effectTrackDepth;
|
|
515
|
+
activeEffect = this.parent;
|
|
516
|
+
shouldTrack = lastShouldTrack;
|
|
517
|
+
this.parent = undefined;
|
|
510
518
|
}
|
|
511
519
|
}
|
|
512
520
|
stop() {
|
|
@@ -554,32 +562,24 @@ function pauseTracking() {
|
|
|
554
562
|
trackStack.push(shouldTrack);
|
|
555
563
|
shouldTrack = false;
|
|
556
564
|
}
|
|
557
|
-
function enableTracking() {
|
|
558
|
-
trackStack.push(shouldTrack);
|
|
559
|
-
shouldTrack = true;
|
|
560
|
-
}
|
|
561
565
|
function resetTracking() {
|
|
562
566
|
const last = trackStack.pop();
|
|
563
567
|
shouldTrack = last === undefined ? true : last;
|
|
564
568
|
}
|
|
565
569
|
function track(target, type, key) {
|
|
566
|
-
if (
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
570
|
+
if (shouldTrack && activeEffect) {
|
|
571
|
+
let depsMap = targetMap.get(target);
|
|
572
|
+
if (!depsMap) {
|
|
573
|
+
targetMap.set(target, (depsMap = new Map()));
|
|
574
|
+
}
|
|
575
|
+
let dep = depsMap.get(key);
|
|
576
|
+
if (!dep) {
|
|
577
|
+
depsMap.set(key, (dep = createDep()));
|
|
578
|
+
}
|
|
579
|
+
const eventInfo = { effect: activeEffect, target, type, key }
|
|
580
|
+
;
|
|
581
|
+
trackEffects(dep, eventInfo);
|
|
576
582
|
}
|
|
577
|
-
const eventInfo = { effect: activeEffect, target, type, key }
|
|
578
|
-
;
|
|
579
|
-
trackEffects(dep, eventInfo);
|
|
580
|
-
}
|
|
581
|
-
function isTracking() {
|
|
582
|
-
return shouldTrack && activeEffect !== undefined;
|
|
583
583
|
}
|
|
584
584
|
function trackEffects(dep, debuggerEventExtraInfo) {
|
|
585
585
|
let shouldTrack = false;
|
|
@@ -1264,13 +1264,10 @@ const toReactive = (value) => isObject(value) ? reactive(value) : value;
|
|
|
1264
1264
|
const toReadonly = (value) => isObject(value) ? readonly(value) : value;
|
|
1265
1265
|
|
|
1266
1266
|
function trackRefValue(ref) {
|
|
1267
|
-
if (
|
|
1267
|
+
if (shouldTrack && activeEffect) {
|
|
1268
1268
|
ref = toRaw(ref);
|
|
1269
|
-
if (!ref.dep) {
|
|
1270
|
-
ref.dep = createDep();
|
|
1271
|
-
}
|
|
1272
1269
|
{
|
|
1273
|
-
trackEffects(ref.dep, {
|
|
1270
|
+
trackEffects(ref.dep || (ref.dep = createDep()), {
|
|
1274
1271
|
target: ref,
|
|
1275
1272
|
type: "get" /* GET */,
|
|
1276
1273
|
key: 'value'
|
|
@@ -1292,7 +1289,7 @@ function triggerRefValue(ref, newVal) {
|
|
|
1292
1289
|
}
|
|
1293
1290
|
}
|
|
1294
1291
|
function isRef(r) {
|
|
1295
|
-
return
|
|
1292
|
+
return !!(r && r.__v_isRef === true);
|
|
1296
1293
|
}
|
|
1297
1294
|
function ref(value) {
|
|
1298
1295
|
return createRef(value, false);
|
|
@@ -2103,23 +2100,23 @@ const deprecationData = {
|
|
|
2103
2100
|
["GLOBAL_MOUNT" /* GLOBAL_MOUNT */]: {
|
|
2104
2101
|
message: `The global app bootstrapping API has changed: vm.$mount() and the "el" ` +
|
|
2105
2102
|
`option have been removed. Use createApp(RootComponent).mount() instead.`,
|
|
2106
|
-
link: `https://v3.vuejs.org/
|
|
2103
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`
|
|
2107
2104
|
},
|
|
2108
2105
|
["GLOBAL_MOUNT_CONTAINER" /* GLOBAL_MOUNT_CONTAINER */]: {
|
|
2109
2106
|
message: `Vue detected directives on the mount container. ` +
|
|
2110
2107
|
`In Vue 3, the container is no longer considered part of the template ` +
|
|
2111
2108
|
`and will not be processed/replaced.`,
|
|
2112
|
-
link: `https://v3.vuejs.org/
|
|
2109
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`
|
|
2113
2110
|
},
|
|
2114
2111
|
["GLOBAL_EXTEND" /* GLOBAL_EXTEND */]: {
|
|
2115
2112
|
message: `Vue.extend() has been removed in Vue 3. ` +
|
|
2116
2113
|
`Use defineComponent() instead.`,
|
|
2117
|
-
link: `https://
|
|
2114
|
+
link: `https://vuejs.org/api/general.html#definecomponent`
|
|
2118
2115
|
},
|
|
2119
2116
|
["GLOBAL_PROTOTYPE" /* GLOBAL_PROTOTYPE */]: {
|
|
2120
2117
|
message: `Vue.prototype is no longer available in Vue 3. ` +
|
|
2121
2118
|
`Use app.config.globalProperties instead.`,
|
|
2122
|
-
link: `https://v3.vuejs.org/
|
|
2119
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`
|
|
2123
2120
|
},
|
|
2124
2121
|
["GLOBAL_SET" /* GLOBAL_SET */]: {
|
|
2125
2122
|
message: `Vue.set() has been removed as it is no longer needed in Vue 3. ` +
|
|
@@ -2132,7 +2129,7 @@ const deprecationData = {
|
|
|
2132
2129
|
["GLOBAL_OBSERVABLE" /* GLOBAL_OBSERVABLE */]: {
|
|
2133
2130
|
message: `Vue.observable() has been removed. ` +
|
|
2134
2131
|
`Use \`import { reactive } from "vue"\` from Composition API instead.`,
|
|
2135
|
-
link: `https://
|
|
2132
|
+
link: `https://vuejs.org/api/reactivity-core.html#reactive`
|
|
2136
2133
|
},
|
|
2137
2134
|
["GLOBAL_PRIVATE_UTIL" /* GLOBAL_PRIVATE_UTIL */]: {
|
|
2138
2135
|
message: `Vue.util has been removed. Please refactor to avoid its usage ` +
|
|
@@ -2151,11 +2148,11 @@ const deprecationData = {
|
|
|
2151
2148
|
["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
|
|
2152
2149
|
message: `config.keyCodes has been removed. ` +
|
|
2153
2150
|
`In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,
|
|
2154
|
-
link: `https://v3.vuejs.org/
|
|
2151
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2155
2152
|
},
|
|
2156
2153
|
["CONFIG_PRODUCTION_TIP" /* CONFIG_PRODUCTION_TIP */]: {
|
|
2157
2154
|
message: `config.productionTip has been removed.`,
|
|
2158
|
-
link: `https://v3.vuejs.org/
|
|
2155
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`
|
|
2159
2156
|
},
|
|
2160
2157
|
["CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */]: {
|
|
2161
2158
|
message: () => {
|
|
@@ -2168,7 +2165,7 @@ const deprecationData = {
|
|
|
2168
2165
|
}
|
|
2169
2166
|
return msg;
|
|
2170
2167
|
},
|
|
2171
|
-
link: `https://v3.vuejs.org/
|
|
2168
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
|
|
2172
2169
|
},
|
|
2173
2170
|
["CONFIG_WHITESPACE" /* CONFIG_WHITESPACE */]: {
|
|
2174
2171
|
// this warning is only relevant in the full build when using runtime
|
|
@@ -2191,12 +2188,12 @@ const deprecationData = {
|
|
|
2191
2188
|
},
|
|
2192
2189
|
["INSTANCE_DESTROY" /* INSTANCE_DESTROY */]: {
|
|
2193
2190
|
message: `vm.$destroy() has been removed. Use app.unmount() instead.`,
|
|
2194
|
-
link: `https://
|
|
2191
|
+
link: `https://vuejs.org/api/application.html#app-unmount`
|
|
2195
2192
|
},
|
|
2196
2193
|
["INSTANCE_EVENT_EMITTER" /* INSTANCE_EVENT_EMITTER */]: {
|
|
2197
2194
|
message: `vm.$on/$once/$off() have been removed. ` +
|
|
2198
2195
|
`Use an external event emitter library instead.`,
|
|
2199
|
-
link: `https://v3.vuejs.org/
|
|
2196
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`
|
|
2200
2197
|
},
|
|
2201
2198
|
["INSTANCE_EVENT_HOOKS" /* INSTANCE_EVENT_HOOKS */]: {
|
|
2202
2199
|
message: event => `"${event}" lifecycle events are no longer supported. From templates, ` +
|
|
@@ -2204,23 +2201,23 @@ const deprecationData = {
|
|
|
2204
2201
|
`should be changed to @vnode-${event.slice(5)}. ` +
|
|
2205
2202
|
`From JavaScript, use Composition API to dynamically register lifecycle ` +
|
|
2206
2203
|
`hooks.`,
|
|
2207
|
-
link: `https://v3.vuejs.org/
|
|
2204
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`
|
|
2208
2205
|
},
|
|
2209
2206
|
["INSTANCE_CHILDREN" /* INSTANCE_CHILDREN */]: {
|
|
2210
2207
|
message: `vm.$children has been removed. Consider refactoring your logic ` +
|
|
2211
2208
|
`to avoid relying on direct access to child components.`,
|
|
2212
|
-
link: `https://v3.vuejs.org/
|
|
2209
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/children.html`
|
|
2213
2210
|
},
|
|
2214
2211
|
["INSTANCE_LISTENERS" /* INSTANCE_LISTENERS */]: {
|
|
2215
2212
|
message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are ` +
|
|
2216
2213
|
`included in vm.$attrs and it is no longer necessary to separately use ` +
|
|
2217
2214
|
`v-on="$listeners" if you are already using v-bind="$attrs". ` +
|
|
2218
2215
|
`(Note: the Vue 3 behavior only applies if this compat config is disabled)`,
|
|
2219
|
-
link: `https://v3.vuejs.org/
|
|
2216
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`
|
|
2220
2217
|
},
|
|
2221
2218
|
["INSTANCE_SCOPED_SLOTS" /* INSTANCE_SCOPED_SLOTS */]: {
|
|
2222
2219
|
message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,
|
|
2223
|
-
link: `https://v3.vuejs.org/
|
|
2220
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`
|
|
2224
2221
|
},
|
|
2225
2222
|
["INSTANCE_ATTRS_CLASS_STYLE" /* INSTANCE_ATTRS_CLASS_STYLE */]: {
|
|
2226
2223
|
message: componentName => `Component <${componentName || 'Anonymous'}> has \`inheritAttrs: false\` but is ` +
|
|
@@ -2231,17 +2228,17 @@ const deprecationData = {
|
|
|
2231
2228
|
`If you are binding $attrs to a non-root element and expecting ` +
|
|
2232
2229
|
`class/style to fallthrough on root, you will need to now manually bind ` +
|
|
2233
2230
|
`them on root via :class="$attrs.class".`,
|
|
2234
|
-
link: `https://v3.vuejs.org/
|
|
2231
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`
|
|
2235
2232
|
},
|
|
2236
2233
|
["OPTIONS_DATA_FN" /* OPTIONS_DATA_FN */]: {
|
|
2237
2234
|
message: `The "data" option can no longer be a plain object. ` +
|
|
2238
2235
|
`Always use a function.`,
|
|
2239
|
-
link: `https://v3.vuejs.org/
|
|
2236
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`
|
|
2240
2237
|
},
|
|
2241
2238
|
["OPTIONS_DATA_MERGE" /* OPTIONS_DATA_MERGE */]: {
|
|
2242
2239
|
message: (key) => `Detected conflicting key "${key}" when merging data option values. ` +
|
|
2243
2240
|
`In Vue 3, data keys are merged shallowly and will override one another.`,
|
|
2244
|
-
link: `https://v3.vuejs.org/
|
|
2241
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`
|
|
2245
2242
|
},
|
|
2246
2243
|
["OPTIONS_BEFORE_DESTROY" /* OPTIONS_BEFORE_DESTROY */]: {
|
|
2247
2244
|
message: `\`beforeDestroy\` has been renamed to \`beforeUnmount\`.`
|
|
@@ -2255,23 +2252,23 @@ const deprecationData = {
|
|
|
2255
2252
|
`If current usage is intended, you can disable the compat behavior and ` +
|
|
2256
2253
|
`suppress this warning with:` +
|
|
2257
2254
|
`\n\n configureCompat({ ${"WATCH_ARRAY" /* WATCH_ARRAY */}: false })\n`,
|
|
2258
|
-
link: `https://v3.vuejs.org/
|
|
2255
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`
|
|
2259
2256
|
},
|
|
2260
2257
|
["PROPS_DEFAULT_THIS" /* PROPS_DEFAULT_THIS */]: {
|
|
2261
2258
|
message: (key) => `props default value function no longer has access to "this". The compat ` +
|
|
2262
2259
|
`build only offers access to this.$options.` +
|
|
2263
2260
|
`(found in prop "${key}")`,
|
|
2264
|
-
link: `https://v3.vuejs.org/
|
|
2261
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`
|
|
2265
2262
|
},
|
|
2266
2263
|
["CUSTOM_DIR" /* CUSTOM_DIR */]: {
|
|
2267
2264
|
message: (legacyHook, newHook) => `Custom directive hook "${legacyHook}" has been removed. ` +
|
|
2268
2265
|
`Use "${newHook}" instead.`,
|
|
2269
|
-
link: `https://v3.vuejs.org/
|
|
2266
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`
|
|
2270
2267
|
},
|
|
2271
2268
|
["V_ON_KEYCODE_MODIFIER" /* V_ON_KEYCODE_MODIFIER */]: {
|
|
2272
2269
|
message: `Using keyCode as v-on modifier is no longer supported. ` +
|
|
2273
2270
|
`Use kebab-case key name modifiers instead.`,
|
|
2274
|
-
link: `https://v3.vuejs.org/
|
|
2271
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2275
2272
|
},
|
|
2276
2273
|
["ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */]: {
|
|
2277
2274
|
message: (name) => `Attribute "${name}" with v-bind value \`false\` will render ` +
|
|
@@ -2279,7 +2276,7 @@ const deprecationData = {
|
|
|
2279
2276
|
`use \`null\` or \`undefined\` instead. If the usage is intended, ` +
|
|
2280
2277
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2281
2278
|
`\n\n configureCompat({ ${"ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */}: false })\n`,
|
|
2282
|
-
link: `https://v3.vuejs.org/
|
|
2279
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2283
2280
|
},
|
|
2284
2281
|
["ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */]: {
|
|
2285
2282
|
message: (name, value, coerced) => `Enumerated attribute "${name}" with v-bind value \`${value}\` will ` +
|
|
@@ -2288,7 +2285,7 @@ const deprecationData = {
|
|
|
2288
2285
|
`If the usage is intended, ` +
|
|
2289
2286
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2290
2287
|
`\n\n configureCompat({ ${"ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */}: false })\n`,
|
|
2291
|
-
link: `https://v3.vuejs.org/
|
|
2288
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2292
2289
|
},
|
|
2293
2290
|
["TRANSITION_CLASSES" /* TRANSITION_CLASSES */]: {
|
|
2294
2291
|
message: `` // this feature cannot be runtime-detected
|
|
@@ -2299,7 +2296,7 @@ const deprecationData = {
|
|
|
2299
2296
|
`for styling, you can disable the compat behavior and suppress this ` +
|
|
2300
2297
|
`warning with:` +
|
|
2301
2298
|
`\n\n configureCompat({ ${"TRANSITION_GROUP_ROOT" /* TRANSITION_GROUP_ROOT */}: false })\n`,
|
|
2302
|
-
link: `https://v3.vuejs.org/
|
|
2299
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`
|
|
2303
2300
|
},
|
|
2304
2301
|
["COMPONENT_ASYNC" /* COMPONENT_ASYNC */]: {
|
|
2305
2302
|
message: (comp) => {
|
|
@@ -2312,7 +2309,7 @@ const deprecationData = {
|
|
|
2312
2309
|
`warning with:` +
|
|
2313
2310
|
`\n\n configureCompat({ ${"COMPONENT_ASYNC" /* COMPONENT_ASYNC */}: false })\n`);
|
|
2314
2311
|
},
|
|
2315
|
-
link: `https://v3.vuejs.org/
|
|
2312
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`
|
|
2316
2313
|
},
|
|
2317
2314
|
["COMPONENT_FUNCTIONAL" /* COMPONENT_FUNCTIONAL */]: {
|
|
2318
2315
|
message: (comp) => {
|
|
@@ -2323,7 +2320,7 @@ const deprecationData = {
|
|
|
2323
2320
|
`components usage have been migrated and its compat behavior has ` +
|
|
2324
2321
|
`been disabled.`);
|
|
2325
2322
|
},
|
|
2326
|
-
link: `https://v3.vuejs.org/
|
|
2323
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`
|
|
2327
2324
|
},
|
|
2328
2325
|
["COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */]: {
|
|
2329
2326
|
message: (comp) => {
|
|
@@ -2340,20 +2337,20 @@ const deprecationData = {
|
|
|
2340
2337
|
`to work with v-model should now use the "modelValue" prop and emit the ` +
|
|
2341
2338
|
`"update:modelValue" event. You can update the usage and then ${configMsg}`);
|
|
2342
2339
|
},
|
|
2343
|
-
link: `https://v3.vuejs.org/
|
|
2340
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
2344
2341
|
},
|
|
2345
2342
|
["RENDER_FUNCTION" /* RENDER_FUNCTION */]: {
|
|
2346
2343
|
message: `Vue 3's render function API has changed. ` +
|
|
2347
2344
|
`You can opt-in to the new API with:` +
|
|
2348
2345
|
`\n\n configureCompat({ ${"RENDER_FUNCTION" /* RENDER_FUNCTION */}: false })\n` +
|
|
2349
2346
|
`\n (This can also be done per-component via the "compatConfig" option.)`,
|
|
2350
|
-
link: `https://v3.vuejs.org/
|
|
2347
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`
|
|
2351
2348
|
},
|
|
2352
2349
|
["FILTERS" /* FILTERS */]: {
|
|
2353
2350
|
message: `filters have been removed in Vue 3. ` +
|
|
2354
2351
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
2355
2352
|
`Use method calls or computed properties instead.`,
|
|
2356
|
-
link: `https://v3.vuejs.org/
|
|
2353
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
2357
2354
|
},
|
|
2358
2355
|
["PRIVATE_APIS" /* PRIVATE_APIS */]: {
|
|
2359
2356
|
message: name => `"${name}" is a Vue 2 private API that no longer exists in Vue 3. ` +
|
|
@@ -2421,7 +2418,7 @@ function validateCompatConfig(config, instance) {
|
|
|
2421
2418
|
warn$1(`Deprecation config "${key}" is compiler-specific and you are ` +
|
|
2422
2419
|
`running a runtime-only build of Vue. This deprecation should be ` +
|
|
2423
2420
|
`configured via compiler options in your build setup instead.\n` +
|
|
2424
|
-
`Details: https://v3.vuejs.org/
|
|
2421
|
+
`Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`);
|
|
2425
2422
|
}
|
|
2426
2423
|
}
|
|
2427
2424
|
else {
|
|
@@ -5822,7 +5819,6 @@ return withDirectives(h(comp), [
|
|
|
5822
5819
|
[bar, this.y]
|
|
5823
5820
|
])
|
|
5824
5821
|
*/
|
|
5825
|
-
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
5826
5822
|
function validateDirectiveName(name) {
|
|
5827
5823
|
if (isBuiltInDirective(name)) {
|
|
5828
5824
|
warn$1('Do not use built-in directive ids as custom directive id: ' + name);
|
|
@@ -5957,7 +5953,7 @@ function createCompatVue(createApp, createSingletonApp) {
|
|
|
5957
5953
|
return vm;
|
|
5958
5954
|
}
|
|
5959
5955
|
}
|
|
5960
|
-
Vue.version = `2.6.14-compat:${"3.2.
|
|
5956
|
+
Vue.version = `2.6.14-compat:${"3.2.30"}`;
|
|
5961
5957
|
Vue.config = singletonApp.config;
|
|
5962
5958
|
Vue.use = (p, ...options) => {
|
|
5963
5959
|
if (p && isFunction(p.install)) {
|
|
@@ -10861,7 +10857,7 @@ function isMemoSame(cached, memo) {
|
|
|
10861
10857
|
}
|
|
10862
10858
|
|
|
10863
10859
|
// Core API ------------------------------------------------------------------
|
|
10864
|
-
const version = "3.2.
|
|
10860
|
+
const version = "3.2.30";
|
|
10865
10861
|
/**
|
|
10866
10862
|
* SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
|
|
10867
10863
|
* @internal
|