@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
package/dist/vue.esm-browser.js
CHANGED
|
@@ -277,13 +277,15 @@ function looseIndexOf(arr, val) {
|
|
|
277
277
|
* @private
|
|
278
278
|
*/
|
|
279
279
|
const toDisplayString = (val) => {
|
|
280
|
-
return val
|
|
281
|
-
?
|
|
282
|
-
:
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
280
|
+
return isString(val)
|
|
281
|
+
? val
|
|
282
|
+
: val == null
|
|
283
|
+
? ''
|
|
284
|
+
: isArray(val) ||
|
|
285
|
+
(isObject(val) &&
|
|
286
|
+
(val.toString === objectToString || !isFunction(val.toString)))
|
|
287
|
+
? JSON.stringify(val, replacer, 2)
|
|
288
|
+
: String(val);
|
|
287
289
|
};
|
|
288
290
|
const replacer = (_key, val) => {
|
|
289
291
|
// can't use isRef here since @vue/shared has no deps
|
|
@@ -357,6 +359,7 @@ const isReservedProp = /*#__PURE__*/ makeMap(
|
|
|
357
359
|
'onVnodeBeforeMount,onVnodeMounted,' +
|
|
358
360
|
'onVnodeBeforeUpdate,onVnodeUpdated,' +
|
|
359
361
|
'onVnodeBeforeUnmount,onVnodeUnmounted');
|
|
362
|
+
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
360
363
|
const cacheStringFunction = (fn) => {
|
|
361
364
|
const cache = Object.create(null);
|
|
362
365
|
return ((str) => {
|
|
@@ -422,7 +425,6 @@ function warn(msg, ...args) {
|
|
|
422
425
|
}
|
|
423
426
|
|
|
424
427
|
let activeEffectScope;
|
|
425
|
-
const effectScopeStack = [];
|
|
426
428
|
class EffectScope {
|
|
427
429
|
constructor(detached = false) {
|
|
428
430
|
this.active = true;
|
|
@@ -437,11 +439,11 @@ class EffectScope {
|
|
|
437
439
|
run(fn) {
|
|
438
440
|
if (this.active) {
|
|
439
441
|
try {
|
|
440
|
-
this
|
|
442
|
+
activeEffectScope = this;
|
|
441
443
|
return fn();
|
|
442
444
|
}
|
|
443
445
|
finally {
|
|
444
|
-
this.
|
|
446
|
+
activeEffectScope = this.parent;
|
|
445
447
|
}
|
|
446
448
|
}
|
|
447
449
|
else {
|
|
@@ -449,23 +451,24 @@ class EffectScope {
|
|
|
449
451
|
}
|
|
450
452
|
}
|
|
451
453
|
on() {
|
|
452
|
-
|
|
453
|
-
effectScopeStack.push(this);
|
|
454
|
-
activeEffectScope = this;
|
|
455
|
-
}
|
|
454
|
+
activeEffectScope = this;
|
|
456
455
|
}
|
|
457
456
|
off() {
|
|
458
|
-
|
|
459
|
-
effectScopeStack.pop();
|
|
460
|
-
activeEffectScope = effectScopeStack[effectScopeStack.length - 1];
|
|
461
|
-
}
|
|
457
|
+
activeEffectScope = this.parent;
|
|
462
458
|
}
|
|
463
459
|
stop(fromParent) {
|
|
464
460
|
if (this.active) {
|
|
465
|
-
|
|
466
|
-
this.
|
|
461
|
+
let i, l;
|
|
462
|
+
for (i = 0, l = this.effects.length; i < l; i++) {
|
|
463
|
+
this.effects[i].stop();
|
|
464
|
+
}
|
|
465
|
+
for (i = 0, l = this.cleanups.length; i < l; i++) {
|
|
466
|
+
this.cleanups[i]();
|
|
467
|
+
}
|
|
467
468
|
if (this.scopes) {
|
|
468
|
-
this.scopes.
|
|
469
|
+
for (i = 0, l = this.scopes.length; i < l; i++) {
|
|
470
|
+
this.scopes[i].stop(true);
|
|
471
|
+
}
|
|
469
472
|
}
|
|
470
473
|
// nested scope, dereference from parent to avoid memory leaks
|
|
471
474
|
if (this.parent && !fromParent) {
|
|
@@ -483,8 +486,7 @@ class EffectScope {
|
|
|
483
486
|
function effectScope(detached) {
|
|
484
487
|
return new EffectScope(detached);
|
|
485
488
|
}
|
|
486
|
-
function recordEffectScope(effect, scope) {
|
|
487
|
-
scope = scope || activeEffectScope;
|
|
489
|
+
function recordEffectScope(effect, scope = activeEffectScope) {
|
|
488
490
|
if (scope && scope.active) {
|
|
489
491
|
scope.effects.push(effect);
|
|
490
492
|
}
|
|
@@ -547,7 +549,6 @@ let trackOpBit = 1;
|
|
|
547
549
|
* When recursion depth is greater, fall back to using a full cleanup.
|
|
548
550
|
*/
|
|
549
551
|
const maxMarkerBits = 30;
|
|
550
|
-
const effectStack = [];
|
|
551
552
|
let activeEffect;
|
|
552
553
|
const ITERATE_KEY = Symbol('iterate' );
|
|
553
554
|
const MAP_KEY_ITERATE_KEY = Symbol('Map key iterate' );
|
|
@@ -557,35 +558,42 @@ class ReactiveEffect {
|
|
|
557
558
|
this.scheduler = scheduler;
|
|
558
559
|
this.active = true;
|
|
559
560
|
this.deps = [];
|
|
561
|
+
this.parent = undefined;
|
|
560
562
|
recordEffectScope(this, scope);
|
|
561
563
|
}
|
|
562
564
|
run() {
|
|
563
565
|
if (!this.active) {
|
|
564
566
|
return this.fn();
|
|
565
567
|
}
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
if (effectTrackDepth <= maxMarkerBits) {
|
|
572
|
-
initDepMarkers(this);
|
|
573
|
-
}
|
|
574
|
-
else {
|
|
575
|
-
cleanupEffect(this);
|
|
576
|
-
}
|
|
577
|
-
return this.fn();
|
|
568
|
+
let parent = activeEffect;
|
|
569
|
+
let lastShouldTrack = shouldTrack;
|
|
570
|
+
while (parent) {
|
|
571
|
+
if (parent === this) {
|
|
572
|
+
return;
|
|
578
573
|
}
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
574
|
+
parent = parent.parent;
|
|
575
|
+
}
|
|
576
|
+
try {
|
|
577
|
+
this.parent = activeEffect;
|
|
578
|
+
activeEffect = this;
|
|
579
|
+
shouldTrack = true;
|
|
580
|
+
trackOpBit = 1 << ++effectTrackDepth;
|
|
581
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
582
|
+
initDepMarkers(this);
|
|
588
583
|
}
|
|
584
|
+
else {
|
|
585
|
+
cleanupEffect(this);
|
|
586
|
+
}
|
|
587
|
+
return this.fn();
|
|
588
|
+
}
|
|
589
|
+
finally {
|
|
590
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
591
|
+
finalizeDepMarkers(this);
|
|
592
|
+
}
|
|
593
|
+
trackOpBit = 1 << --effectTrackDepth;
|
|
594
|
+
activeEffect = this.parent;
|
|
595
|
+
shouldTrack = lastShouldTrack;
|
|
596
|
+
this.parent = undefined;
|
|
589
597
|
}
|
|
590
598
|
}
|
|
591
599
|
stop() {
|
|
@@ -633,32 +641,24 @@ function pauseTracking() {
|
|
|
633
641
|
trackStack.push(shouldTrack);
|
|
634
642
|
shouldTrack = false;
|
|
635
643
|
}
|
|
636
|
-
function enableTracking() {
|
|
637
|
-
trackStack.push(shouldTrack);
|
|
638
|
-
shouldTrack = true;
|
|
639
|
-
}
|
|
640
644
|
function resetTracking() {
|
|
641
645
|
const last = trackStack.pop();
|
|
642
646
|
shouldTrack = last === undefined ? true : last;
|
|
643
647
|
}
|
|
644
648
|
function track(target, type, key) {
|
|
645
|
-
if (
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
649
|
+
if (shouldTrack && activeEffect) {
|
|
650
|
+
let depsMap = targetMap.get(target);
|
|
651
|
+
if (!depsMap) {
|
|
652
|
+
targetMap.set(target, (depsMap = new Map()));
|
|
653
|
+
}
|
|
654
|
+
let dep = depsMap.get(key);
|
|
655
|
+
if (!dep) {
|
|
656
|
+
depsMap.set(key, (dep = createDep()));
|
|
657
|
+
}
|
|
658
|
+
const eventInfo = { effect: activeEffect, target, type, key }
|
|
659
|
+
;
|
|
660
|
+
trackEffects(dep, eventInfo);
|
|
655
661
|
}
|
|
656
|
-
const eventInfo = { effect: activeEffect, target, type, key }
|
|
657
|
-
;
|
|
658
|
-
trackEffects(dep, eventInfo);
|
|
659
|
-
}
|
|
660
|
-
function isTracking() {
|
|
661
|
-
return shouldTrack && activeEffect !== undefined;
|
|
662
662
|
}
|
|
663
663
|
function trackEffects(dep, debuggerEventExtraInfo) {
|
|
664
664
|
let shouldTrack = false;
|
|
@@ -1343,13 +1343,10 @@ const toReactive = (value) => isObject(value) ? reactive(value) : value;
|
|
|
1343
1343
|
const toReadonly = (value) => isObject(value) ? readonly(value) : value;
|
|
1344
1344
|
|
|
1345
1345
|
function trackRefValue(ref) {
|
|
1346
|
-
if (
|
|
1346
|
+
if (shouldTrack && activeEffect) {
|
|
1347
1347
|
ref = toRaw(ref);
|
|
1348
|
-
if (!ref.dep) {
|
|
1349
|
-
ref.dep = createDep();
|
|
1350
|
-
}
|
|
1351
1348
|
{
|
|
1352
|
-
trackEffects(ref.dep, {
|
|
1349
|
+
trackEffects(ref.dep || (ref.dep = createDep()), {
|
|
1353
1350
|
target: ref,
|
|
1354
1351
|
type: "get" /* GET */,
|
|
1355
1352
|
key: 'value'
|
|
@@ -1371,7 +1368,7 @@ function triggerRefValue(ref, newVal) {
|
|
|
1371
1368
|
}
|
|
1372
1369
|
}
|
|
1373
1370
|
function isRef(r) {
|
|
1374
|
-
return
|
|
1371
|
+
return !!(r && r.__v_isRef === true);
|
|
1375
1372
|
}
|
|
1376
1373
|
function ref(value) {
|
|
1377
1374
|
return createRef(value, false);
|
|
@@ -2182,23 +2179,23 @@ const deprecationData = {
|
|
|
2182
2179
|
["GLOBAL_MOUNT" /* GLOBAL_MOUNT */]: {
|
|
2183
2180
|
message: `The global app bootstrapping API has changed: vm.$mount() and the "el" ` +
|
|
2184
2181
|
`option have been removed. Use createApp(RootComponent).mount() instead.`,
|
|
2185
|
-
link: `https://v3.vuejs.org/
|
|
2182
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`
|
|
2186
2183
|
},
|
|
2187
2184
|
["GLOBAL_MOUNT_CONTAINER" /* GLOBAL_MOUNT_CONTAINER */]: {
|
|
2188
2185
|
message: `Vue detected directives on the mount container. ` +
|
|
2189
2186
|
`In Vue 3, the container is no longer considered part of the template ` +
|
|
2190
2187
|
`and will not be processed/replaced.`,
|
|
2191
|
-
link: `https://v3.vuejs.org/
|
|
2188
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`
|
|
2192
2189
|
},
|
|
2193
2190
|
["GLOBAL_EXTEND" /* GLOBAL_EXTEND */]: {
|
|
2194
2191
|
message: `Vue.extend() has been removed in Vue 3. ` +
|
|
2195
2192
|
`Use defineComponent() instead.`,
|
|
2196
|
-
link: `https://
|
|
2193
|
+
link: `https://vuejs.org/api/general.html#definecomponent`
|
|
2197
2194
|
},
|
|
2198
2195
|
["GLOBAL_PROTOTYPE" /* GLOBAL_PROTOTYPE */]: {
|
|
2199
2196
|
message: `Vue.prototype is no longer available in Vue 3. ` +
|
|
2200
2197
|
`Use app.config.globalProperties instead.`,
|
|
2201
|
-
link: `https://v3.vuejs.org/
|
|
2198
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`
|
|
2202
2199
|
},
|
|
2203
2200
|
["GLOBAL_SET" /* GLOBAL_SET */]: {
|
|
2204
2201
|
message: `Vue.set() has been removed as it is no longer needed in Vue 3. ` +
|
|
@@ -2211,7 +2208,7 @@ const deprecationData = {
|
|
|
2211
2208
|
["GLOBAL_OBSERVABLE" /* GLOBAL_OBSERVABLE */]: {
|
|
2212
2209
|
message: `Vue.observable() has been removed. ` +
|
|
2213
2210
|
`Use \`import { reactive } from "vue"\` from Composition API instead.`,
|
|
2214
|
-
link: `https://
|
|
2211
|
+
link: `https://vuejs.org/api/reactivity-core.html#reactive`
|
|
2215
2212
|
},
|
|
2216
2213
|
["GLOBAL_PRIVATE_UTIL" /* GLOBAL_PRIVATE_UTIL */]: {
|
|
2217
2214
|
message: `Vue.util has been removed. Please refactor to avoid its usage ` +
|
|
@@ -2230,11 +2227,11 @@ const deprecationData = {
|
|
|
2230
2227
|
["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
|
|
2231
2228
|
message: `config.keyCodes has been removed. ` +
|
|
2232
2229
|
`In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,
|
|
2233
|
-
link: `https://v3.vuejs.org/
|
|
2230
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2234
2231
|
},
|
|
2235
2232
|
["CONFIG_PRODUCTION_TIP" /* CONFIG_PRODUCTION_TIP */]: {
|
|
2236
2233
|
message: `config.productionTip has been removed.`,
|
|
2237
|
-
link: `https://v3.vuejs.org/
|
|
2234
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`
|
|
2238
2235
|
},
|
|
2239
2236
|
["CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */]: {
|
|
2240
2237
|
message: () => {
|
|
@@ -2247,7 +2244,7 @@ const deprecationData = {
|
|
|
2247
2244
|
}
|
|
2248
2245
|
return msg;
|
|
2249
2246
|
},
|
|
2250
|
-
link: `https://v3.vuejs.org/
|
|
2247
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
|
|
2251
2248
|
},
|
|
2252
2249
|
["CONFIG_WHITESPACE" /* CONFIG_WHITESPACE */]: {
|
|
2253
2250
|
// this warning is only relevant in the full build when using runtime
|
|
@@ -2270,12 +2267,12 @@ const deprecationData = {
|
|
|
2270
2267
|
},
|
|
2271
2268
|
["INSTANCE_DESTROY" /* INSTANCE_DESTROY */]: {
|
|
2272
2269
|
message: `vm.$destroy() has been removed. Use app.unmount() instead.`,
|
|
2273
|
-
link: `https://
|
|
2270
|
+
link: `https://vuejs.org/api/application.html#app-unmount`
|
|
2274
2271
|
},
|
|
2275
2272
|
["INSTANCE_EVENT_EMITTER" /* INSTANCE_EVENT_EMITTER */]: {
|
|
2276
2273
|
message: `vm.$on/$once/$off() have been removed. ` +
|
|
2277
2274
|
`Use an external event emitter library instead.`,
|
|
2278
|
-
link: `https://v3.vuejs.org/
|
|
2275
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`
|
|
2279
2276
|
},
|
|
2280
2277
|
["INSTANCE_EVENT_HOOKS" /* INSTANCE_EVENT_HOOKS */]: {
|
|
2281
2278
|
message: event => `"${event}" lifecycle events are no longer supported. From templates, ` +
|
|
@@ -2283,23 +2280,23 @@ const deprecationData = {
|
|
|
2283
2280
|
`should be changed to @vnode-${event.slice(5)}. ` +
|
|
2284
2281
|
`From JavaScript, use Composition API to dynamically register lifecycle ` +
|
|
2285
2282
|
`hooks.`,
|
|
2286
|
-
link: `https://v3.vuejs.org/
|
|
2283
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`
|
|
2287
2284
|
},
|
|
2288
2285
|
["INSTANCE_CHILDREN" /* INSTANCE_CHILDREN */]: {
|
|
2289
2286
|
message: `vm.$children has been removed. Consider refactoring your logic ` +
|
|
2290
2287
|
`to avoid relying on direct access to child components.`,
|
|
2291
|
-
link: `https://v3.vuejs.org/
|
|
2288
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/children.html`
|
|
2292
2289
|
},
|
|
2293
2290
|
["INSTANCE_LISTENERS" /* INSTANCE_LISTENERS */]: {
|
|
2294
2291
|
message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are ` +
|
|
2295
2292
|
`included in vm.$attrs and it is no longer necessary to separately use ` +
|
|
2296
2293
|
`v-on="$listeners" if you are already using v-bind="$attrs". ` +
|
|
2297
2294
|
`(Note: the Vue 3 behavior only applies if this compat config is disabled)`,
|
|
2298
|
-
link: `https://v3.vuejs.org/
|
|
2295
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`
|
|
2299
2296
|
},
|
|
2300
2297
|
["INSTANCE_SCOPED_SLOTS" /* INSTANCE_SCOPED_SLOTS */]: {
|
|
2301
2298
|
message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,
|
|
2302
|
-
link: `https://v3.vuejs.org/
|
|
2299
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`
|
|
2303
2300
|
},
|
|
2304
2301
|
["INSTANCE_ATTRS_CLASS_STYLE" /* INSTANCE_ATTRS_CLASS_STYLE */]: {
|
|
2305
2302
|
message: componentName => `Component <${componentName || 'Anonymous'}> has \`inheritAttrs: false\` but is ` +
|
|
@@ -2310,17 +2307,17 @@ const deprecationData = {
|
|
|
2310
2307
|
`If you are binding $attrs to a non-root element and expecting ` +
|
|
2311
2308
|
`class/style to fallthrough on root, you will need to now manually bind ` +
|
|
2312
2309
|
`them on root via :class="$attrs.class".`,
|
|
2313
|
-
link: `https://v3.vuejs.org/
|
|
2310
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`
|
|
2314
2311
|
},
|
|
2315
2312
|
["OPTIONS_DATA_FN" /* OPTIONS_DATA_FN */]: {
|
|
2316
2313
|
message: `The "data" option can no longer be a plain object. ` +
|
|
2317
2314
|
`Always use a function.`,
|
|
2318
|
-
link: `https://v3.vuejs.org/
|
|
2315
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`
|
|
2319
2316
|
},
|
|
2320
2317
|
["OPTIONS_DATA_MERGE" /* OPTIONS_DATA_MERGE */]: {
|
|
2321
2318
|
message: (key) => `Detected conflicting key "${key}" when merging data option values. ` +
|
|
2322
2319
|
`In Vue 3, data keys are merged shallowly and will override one another.`,
|
|
2323
|
-
link: `https://v3.vuejs.org/
|
|
2320
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`
|
|
2324
2321
|
},
|
|
2325
2322
|
["OPTIONS_BEFORE_DESTROY" /* OPTIONS_BEFORE_DESTROY */]: {
|
|
2326
2323
|
message: `\`beforeDestroy\` has been renamed to \`beforeUnmount\`.`
|
|
@@ -2334,23 +2331,23 @@ const deprecationData = {
|
|
|
2334
2331
|
`If current usage is intended, you can disable the compat behavior and ` +
|
|
2335
2332
|
`suppress this warning with:` +
|
|
2336
2333
|
`\n\n configureCompat({ ${"WATCH_ARRAY" /* WATCH_ARRAY */}: false })\n`,
|
|
2337
|
-
link: `https://v3.vuejs.org/
|
|
2334
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`
|
|
2338
2335
|
},
|
|
2339
2336
|
["PROPS_DEFAULT_THIS" /* PROPS_DEFAULT_THIS */]: {
|
|
2340
2337
|
message: (key) => `props default value function no longer has access to "this". The compat ` +
|
|
2341
2338
|
`build only offers access to this.$options.` +
|
|
2342
2339
|
`(found in prop "${key}")`,
|
|
2343
|
-
link: `https://v3.vuejs.org/
|
|
2340
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`
|
|
2344
2341
|
},
|
|
2345
2342
|
["CUSTOM_DIR" /* CUSTOM_DIR */]: {
|
|
2346
2343
|
message: (legacyHook, newHook) => `Custom directive hook "${legacyHook}" has been removed. ` +
|
|
2347
2344
|
`Use "${newHook}" instead.`,
|
|
2348
|
-
link: `https://v3.vuejs.org/
|
|
2345
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`
|
|
2349
2346
|
},
|
|
2350
2347
|
["V_ON_KEYCODE_MODIFIER" /* V_ON_KEYCODE_MODIFIER */]: {
|
|
2351
2348
|
message: `Using keyCode as v-on modifier is no longer supported. ` +
|
|
2352
2349
|
`Use kebab-case key name modifiers instead.`,
|
|
2353
|
-
link: `https://v3.vuejs.org/
|
|
2350
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2354
2351
|
},
|
|
2355
2352
|
["ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */]: {
|
|
2356
2353
|
message: (name) => `Attribute "${name}" with v-bind value \`false\` will render ` +
|
|
@@ -2358,7 +2355,7 @@ const deprecationData = {
|
|
|
2358
2355
|
`use \`null\` or \`undefined\` instead. If the usage is intended, ` +
|
|
2359
2356
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2360
2357
|
`\n\n configureCompat({ ${"ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */}: false })\n`,
|
|
2361
|
-
link: `https://v3.vuejs.org/
|
|
2358
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2362
2359
|
},
|
|
2363
2360
|
["ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */]: {
|
|
2364
2361
|
message: (name, value, coerced) => `Enumerated attribute "${name}" with v-bind value \`${value}\` will ` +
|
|
@@ -2367,7 +2364,7 @@ const deprecationData = {
|
|
|
2367
2364
|
`If the usage is intended, ` +
|
|
2368
2365
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2369
2366
|
`\n\n configureCompat({ ${"ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */}: false })\n`,
|
|
2370
|
-
link: `https://v3.vuejs.org/
|
|
2367
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2371
2368
|
},
|
|
2372
2369
|
["TRANSITION_CLASSES" /* TRANSITION_CLASSES */]: {
|
|
2373
2370
|
message: `` // this feature cannot be runtime-detected
|
|
@@ -2378,7 +2375,7 @@ const deprecationData = {
|
|
|
2378
2375
|
`for styling, you can disable the compat behavior and suppress this ` +
|
|
2379
2376
|
`warning with:` +
|
|
2380
2377
|
`\n\n configureCompat({ ${"TRANSITION_GROUP_ROOT" /* TRANSITION_GROUP_ROOT */}: false })\n`,
|
|
2381
|
-
link: `https://v3.vuejs.org/
|
|
2378
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`
|
|
2382
2379
|
},
|
|
2383
2380
|
["COMPONENT_ASYNC" /* COMPONENT_ASYNC */]: {
|
|
2384
2381
|
message: (comp) => {
|
|
@@ -2391,7 +2388,7 @@ const deprecationData = {
|
|
|
2391
2388
|
`warning with:` +
|
|
2392
2389
|
`\n\n configureCompat({ ${"COMPONENT_ASYNC" /* COMPONENT_ASYNC */}: false })\n`);
|
|
2393
2390
|
},
|
|
2394
|
-
link: `https://v3.vuejs.org/
|
|
2391
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`
|
|
2395
2392
|
},
|
|
2396
2393
|
["COMPONENT_FUNCTIONAL" /* COMPONENT_FUNCTIONAL */]: {
|
|
2397
2394
|
message: (comp) => {
|
|
@@ -2402,7 +2399,7 @@ const deprecationData = {
|
|
|
2402
2399
|
`components usage have been migrated and its compat behavior has ` +
|
|
2403
2400
|
`been disabled.`);
|
|
2404
2401
|
},
|
|
2405
|
-
link: `https://v3.vuejs.org/
|
|
2402
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`
|
|
2406
2403
|
},
|
|
2407
2404
|
["COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */]: {
|
|
2408
2405
|
message: (comp) => {
|
|
@@ -2419,20 +2416,20 @@ const deprecationData = {
|
|
|
2419
2416
|
`to work with v-model should now use the "modelValue" prop and emit the ` +
|
|
2420
2417
|
`"update:modelValue" event. You can update the usage and then ${configMsg}`);
|
|
2421
2418
|
},
|
|
2422
|
-
link: `https://v3.vuejs.org/
|
|
2419
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
2423
2420
|
},
|
|
2424
2421
|
["RENDER_FUNCTION" /* RENDER_FUNCTION */]: {
|
|
2425
2422
|
message: `Vue 3's render function API has changed. ` +
|
|
2426
2423
|
`You can opt-in to the new API with:` +
|
|
2427
2424
|
`\n\n configureCompat({ ${"RENDER_FUNCTION" /* RENDER_FUNCTION */}: false })\n` +
|
|
2428
2425
|
`\n (This can also be done per-component via the "compatConfig" option.)`,
|
|
2429
|
-
link: `https://v3.vuejs.org/
|
|
2426
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`
|
|
2430
2427
|
},
|
|
2431
2428
|
["FILTERS" /* FILTERS */]: {
|
|
2432
2429
|
message: `filters have been removed in Vue 3. ` +
|
|
2433
2430
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
2434
2431
|
`Use method calls or computed properties instead.`,
|
|
2435
|
-
link: `https://v3.vuejs.org/
|
|
2432
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
2436
2433
|
},
|
|
2437
2434
|
["PRIVATE_APIS" /* PRIVATE_APIS */]: {
|
|
2438
2435
|
message: name => `"${name}" is a Vue 2 private API that no longer exists in Vue 3. ` +
|
|
@@ -2500,7 +2497,7 @@ function validateCompatConfig(config, instance) {
|
|
|
2500
2497
|
warn$1(`Deprecation config "${key}" is compiler-specific and you are ` +
|
|
2501
2498
|
`running a runtime-only build of Vue. This deprecation should be ` +
|
|
2502
2499
|
`configured via compiler options in your build setup instead.\n` +
|
|
2503
|
-
`Details: https://v3.vuejs.org/
|
|
2500
|
+
`Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`);
|
|
2504
2501
|
}
|
|
2505
2502
|
}
|
|
2506
2503
|
else {
|
|
@@ -5901,7 +5898,6 @@ return withDirectives(h(comp), [
|
|
|
5901
5898
|
[bar, this.y]
|
|
5902
5899
|
])
|
|
5903
5900
|
*/
|
|
5904
|
-
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
5905
5901
|
function validateDirectiveName(name) {
|
|
5906
5902
|
if (isBuiltInDirective(name)) {
|
|
5907
5903
|
warn$1('Do not use built-in directive ids as custom directive id: ' + name);
|
|
@@ -6036,7 +6032,7 @@ function createCompatVue(createApp, createSingletonApp) {
|
|
|
6036
6032
|
return vm;
|
|
6037
6033
|
}
|
|
6038
6034
|
}
|
|
6039
|
-
Vue.version = `2.6.14-compat:${"3.2.
|
|
6035
|
+
Vue.version = `2.6.14-compat:${"3.2.30"}`;
|
|
6040
6036
|
Vue.config = singletonApp.config;
|
|
6041
6037
|
Vue.use = (p, ...options) => {
|
|
6042
6038
|
if (p && isFunction(p.install)) {
|
|
@@ -10940,7 +10936,7 @@ function isMemoSame(cached, memo) {
|
|
|
10940
10936
|
}
|
|
10941
10937
|
|
|
10942
10938
|
// Core API ------------------------------------------------------------------
|
|
10943
|
-
const version = "3.2.
|
|
10939
|
+
const version = "3.2.30";
|
|
10944
10940
|
/**
|
|
10945
10941
|
* SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
|
|
10946
10942
|
* @internal
|
|
@@ -13524,13 +13520,13 @@ const deprecationData$1 = {
|
|
|
13524
13520
|
message: `Platform-native elements with "is" prop will no longer be ` +
|
|
13525
13521
|
`treated as components in Vue 3 unless the "is" value is explicitly ` +
|
|
13526
13522
|
`prefixed with "vue:".`,
|
|
13527
|
-
link: `https://v3.vuejs.org/
|
|
13523
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
|
|
13528
13524
|
},
|
|
13529
13525
|
["COMPILER_V_BIND_SYNC" /* COMPILER_V_BIND_SYNC */]: {
|
|
13530
13526
|
message: key => `.sync modifier for v-bind has been removed. Use v-model with ` +
|
|
13531
13527
|
`argument instead. \`v-bind:${key}.sync\` should be changed to ` +
|
|
13532
13528
|
`\`v-model:${key}\`.`,
|
|
13533
|
-
link: `https://v3.vuejs.org/
|
|
13529
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
13534
13530
|
},
|
|
13535
13531
|
["COMPILER_V_BIND_PROP" /* COMPILER_V_BIND_PROP */]: {
|
|
13536
13532
|
message: `.prop modifier for v-bind has been removed and no longer necessary. ` +
|
|
@@ -13542,11 +13538,11 @@ const deprecationData$1 = {
|
|
|
13542
13538
|
`that appears before v-bind in the case of conflict. ` +
|
|
13543
13539
|
`To retain 2.x behavior, move v-bind to make it the first attribute. ` +
|
|
13544
13540
|
`You can also suppress this warning if the usage is intended.`,
|
|
13545
|
-
link: `https://v3.vuejs.org/
|
|
13541
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
|
|
13546
13542
|
},
|
|
13547
13543
|
["COMPILER_V_ON_NATIVE" /* COMPILER_V_ON_NATIVE */]: {
|
|
13548
13544
|
message: `.native modifier for v-on has been removed as is no longer necessary.`,
|
|
13549
|
-
link: `https://v3.vuejs.org/
|
|
13545
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
|
|
13550
13546
|
},
|
|
13551
13547
|
["COMPILER_V_IF_V_FOR_PRECEDENCE" /* COMPILER_V_IF_V_FOR_PRECEDENCE */]: {
|
|
13552
13548
|
message: `v-if / v-for precedence when used on the same element has changed ` +
|
|
@@ -13554,7 +13550,7 @@ const deprecationData$1 = {
|
|
|
13554
13550
|
`access to v-for scope variables. It is best to avoid the ambiguity ` +
|
|
13555
13551
|
`with <template> tags or use a computed property that filters v-for ` +
|
|
13556
13552
|
`data source.`,
|
|
13557
|
-
link: `https://v3.vuejs.org/
|
|
13553
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
|
|
13558
13554
|
},
|
|
13559
13555
|
["COMPILER_NATIVE_TEMPLATE" /* COMPILER_NATIVE_TEMPLATE */]: {
|
|
13560
13556
|
message: `<template> with no special directives will render as a native template ` +
|
|
@@ -13562,13 +13558,13 @@ const deprecationData$1 = {
|
|
|
13562
13558
|
},
|
|
13563
13559
|
["COMPILER_INLINE_TEMPLATE" /* COMPILER_INLINE_TEMPLATE */]: {
|
|
13564
13560
|
message: `"inline-template" has been removed in Vue 3.`,
|
|
13565
|
-
link: `https://v3.vuejs.org/
|
|
13561
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
|
|
13566
13562
|
},
|
|
13567
13563
|
["COMPILER_FILTER" /* COMPILER_FILTERS */]: {
|
|
13568
13564
|
message: `filters have been removed in Vue 3. ` +
|
|
13569
13565
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
13570
13566
|
`Use method calls or computed properties instead.`,
|
|
13571
|
-
link: `https://v3.vuejs.org/
|
|
13567
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
13572
13568
|
}
|
|
13573
13569
|
};
|
|
13574
13570
|
function getCompatValue(key, context) {
|
|
@@ -16676,7 +16672,7 @@ function buildProps(node, context, props = node.props, ssr = false) {
|
|
|
16676
16672
|
}
|
|
16677
16673
|
}
|
|
16678
16674
|
}
|
|
16679
|
-
else {
|
|
16675
|
+
else if (!isBuiltInDirective(name)) {
|
|
16680
16676
|
// no built-in transform, this is a user custom directive.
|
|
16681
16677
|
runtimeDirectives.push(prop);
|
|
16682
16678
|
// custom dirs may use beforeUpdate so they need to force blocks
|