@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.cjs.js
CHANGED
|
@@ -414,13 +414,15 @@ function looseIndexOf(arr, val) {
|
|
|
414
414
|
* @private
|
|
415
415
|
*/
|
|
416
416
|
const toDisplayString = (val) => {
|
|
417
|
-
return val
|
|
418
|
-
?
|
|
419
|
-
:
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
417
|
+
return isString(val)
|
|
418
|
+
? val
|
|
419
|
+
: val == null
|
|
420
|
+
? ''
|
|
421
|
+
: isArray(val) ||
|
|
422
|
+
(isObject(val) &&
|
|
423
|
+
(val.toString === objectToString || !isFunction(val.toString)))
|
|
424
|
+
? JSON.stringify(val, replacer, 2)
|
|
425
|
+
: String(val);
|
|
424
426
|
};
|
|
425
427
|
const replacer = (_key, val) => {
|
|
426
428
|
// can't use isRef here since @vue/shared has no deps
|
|
@@ -494,6 +496,7 @@ const isReservedProp = /*#__PURE__*/ makeMap(
|
|
|
494
496
|
'onVnodeBeforeMount,onVnodeMounted,' +
|
|
495
497
|
'onVnodeBeforeUpdate,onVnodeUpdated,' +
|
|
496
498
|
'onVnodeBeforeUnmount,onVnodeUnmounted');
|
|
499
|
+
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
497
500
|
const cacheStringFunction = (fn) => {
|
|
498
501
|
const cache = Object.create(null);
|
|
499
502
|
return ((str) => {
|
|
@@ -559,7 +562,6 @@ function warn(msg, ...args) {
|
|
|
559
562
|
}
|
|
560
563
|
|
|
561
564
|
let activeEffectScope;
|
|
562
|
-
const effectScopeStack = [];
|
|
563
565
|
class EffectScope {
|
|
564
566
|
constructor(detached = false) {
|
|
565
567
|
this.active = true;
|
|
@@ -574,11 +576,11 @@ class EffectScope {
|
|
|
574
576
|
run(fn) {
|
|
575
577
|
if (this.active) {
|
|
576
578
|
try {
|
|
577
|
-
this
|
|
579
|
+
activeEffectScope = this;
|
|
578
580
|
return fn();
|
|
579
581
|
}
|
|
580
582
|
finally {
|
|
581
|
-
this.
|
|
583
|
+
activeEffectScope = this.parent;
|
|
582
584
|
}
|
|
583
585
|
}
|
|
584
586
|
else {
|
|
@@ -586,23 +588,24 @@ class EffectScope {
|
|
|
586
588
|
}
|
|
587
589
|
}
|
|
588
590
|
on() {
|
|
589
|
-
|
|
590
|
-
effectScopeStack.push(this);
|
|
591
|
-
activeEffectScope = this;
|
|
592
|
-
}
|
|
591
|
+
activeEffectScope = this;
|
|
593
592
|
}
|
|
594
593
|
off() {
|
|
595
|
-
|
|
596
|
-
effectScopeStack.pop();
|
|
597
|
-
activeEffectScope = effectScopeStack[effectScopeStack.length - 1];
|
|
598
|
-
}
|
|
594
|
+
activeEffectScope = this.parent;
|
|
599
595
|
}
|
|
600
596
|
stop(fromParent) {
|
|
601
597
|
if (this.active) {
|
|
602
|
-
|
|
603
|
-
this.
|
|
598
|
+
let i, l;
|
|
599
|
+
for (i = 0, l = this.effects.length; i < l; i++) {
|
|
600
|
+
this.effects[i].stop();
|
|
601
|
+
}
|
|
602
|
+
for (i = 0, l = this.cleanups.length; i < l; i++) {
|
|
603
|
+
this.cleanups[i]();
|
|
604
|
+
}
|
|
604
605
|
if (this.scopes) {
|
|
605
|
-
this.scopes.
|
|
606
|
+
for (i = 0, l = this.scopes.length; i < l; i++) {
|
|
607
|
+
this.scopes[i].stop(true);
|
|
608
|
+
}
|
|
606
609
|
}
|
|
607
610
|
// nested scope, dereference from parent to avoid memory leaks
|
|
608
611
|
if (this.parent && !fromParent) {
|
|
@@ -620,8 +623,7 @@ class EffectScope {
|
|
|
620
623
|
function effectScope(detached) {
|
|
621
624
|
return new EffectScope(detached);
|
|
622
625
|
}
|
|
623
|
-
function recordEffectScope(effect, scope) {
|
|
624
|
-
scope = scope || activeEffectScope;
|
|
626
|
+
function recordEffectScope(effect, scope = activeEffectScope) {
|
|
625
627
|
if (scope && scope.active) {
|
|
626
628
|
scope.effects.push(effect);
|
|
627
629
|
}
|
|
@@ -684,7 +686,6 @@ let trackOpBit = 1;
|
|
|
684
686
|
* When recursion depth is greater, fall back to using a full cleanup.
|
|
685
687
|
*/
|
|
686
688
|
const maxMarkerBits = 30;
|
|
687
|
-
const effectStack = [];
|
|
688
689
|
let activeEffect;
|
|
689
690
|
const ITERATE_KEY = Symbol('iterate' );
|
|
690
691
|
const MAP_KEY_ITERATE_KEY = Symbol('Map key iterate' );
|
|
@@ -694,35 +695,42 @@ class ReactiveEffect {
|
|
|
694
695
|
this.scheduler = scheduler;
|
|
695
696
|
this.active = true;
|
|
696
697
|
this.deps = [];
|
|
698
|
+
this.parent = undefined;
|
|
697
699
|
recordEffectScope(this, scope);
|
|
698
700
|
}
|
|
699
701
|
run() {
|
|
700
702
|
if (!this.active) {
|
|
701
703
|
return this.fn();
|
|
702
704
|
}
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
if (effectTrackDepth <= maxMarkerBits) {
|
|
709
|
-
initDepMarkers(this);
|
|
710
|
-
}
|
|
711
|
-
else {
|
|
712
|
-
cleanupEffect(this);
|
|
713
|
-
}
|
|
714
|
-
return this.fn();
|
|
705
|
+
let parent = activeEffect;
|
|
706
|
+
let lastShouldTrack = shouldTrack;
|
|
707
|
+
while (parent) {
|
|
708
|
+
if (parent === this) {
|
|
709
|
+
return;
|
|
715
710
|
}
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
711
|
+
parent = parent.parent;
|
|
712
|
+
}
|
|
713
|
+
try {
|
|
714
|
+
this.parent = activeEffect;
|
|
715
|
+
activeEffect = this;
|
|
716
|
+
shouldTrack = true;
|
|
717
|
+
trackOpBit = 1 << ++effectTrackDepth;
|
|
718
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
719
|
+
initDepMarkers(this);
|
|
725
720
|
}
|
|
721
|
+
else {
|
|
722
|
+
cleanupEffect(this);
|
|
723
|
+
}
|
|
724
|
+
return this.fn();
|
|
725
|
+
}
|
|
726
|
+
finally {
|
|
727
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
728
|
+
finalizeDepMarkers(this);
|
|
729
|
+
}
|
|
730
|
+
trackOpBit = 1 << --effectTrackDepth;
|
|
731
|
+
activeEffect = this.parent;
|
|
732
|
+
shouldTrack = lastShouldTrack;
|
|
733
|
+
this.parent = undefined;
|
|
726
734
|
}
|
|
727
735
|
}
|
|
728
736
|
stop() {
|
|
@@ -770,32 +778,24 @@ function pauseTracking() {
|
|
|
770
778
|
trackStack.push(shouldTrack);
|
|
771
779
|
shouldTrack = false;
|
|
772
780
|
}
|
|
773
|
-
function enableTracking() {
|
|
774
|
-
trackStack.push(shouldTrack);
|
|
775
|
-
shouldTrack = true;
|
|
776
|
-
}
|
|
777
781
|
function resetTracking() {
|
|
778
782
|
const last = trackStack.pop();
|
|
779
783
|
shouldTrack = last === undefined ? true : last;
|
|
780
784
|
}
|
|
781
785
|
function track(target, type, key) {
|
|
782
|
-
if (
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
786
|
+
if (shouldTrack && activeEffect) {
|
|
787
|
+
let depsMap = targetMap.get(target);
|
|
788
|
+
if (!depsMap) {
|
|
789
|
+
targetMap.set(target, (depsMap = new Map()));
|
|
790
|
+
}
|
|
791
|
+
let dep = depsMap.get(key);
|
|
792
|
+
if (!dep) {
|
|
793
|
+
depsMap.set(key, (dep = createDep()));
|
|
794
|
+
}
|
|
795
|
+
const eventInfo = { effect: activeEffect, target, type, key }
|
|
796
|
+
;
|
|
797
|
+
trackEffects(dep, eventInfo);
|
|
792
798
|
}
|
|
793
|
-
const eventInfo = { effect: activeEffect, target, type, key }
|
|
794
|
-
;
|
|
795
|
-
trackEffects(dep, eventInfo);
|
|
796
|
-
}
|
|
797
|
-
function isTracking() {
|
|
798
|
-
return shouldTrack && activeEffect !== undefined;
|
|
799
799
|
}
|
|
800
800
|
function trackEffects(dep, debuggerEventExtraInfo) {
|
|
801
801
|
let shouldTrack = false;
|
|
@@ -1480,13 +1480,10 @@ const toReactive = (value) => isObject(value) ? reactive(value) : value;
|
|
|
1480
1480
|
const toReadonly = (value) => isObject(value) ? readonly(value) : value;
|
|
1481
1481
|
|
|
1482
1482
|
function trackRefValue(ref) {
|
|
1483
|
-
if (
|
|
1483
|
+
if (shouldTrack && activeEffect) {
|
|
1484
1484
|
ref = toRaw(ref);
|
|
1485
|
-
if (!ref.dep) {
|
|
1486
|
-
ref.dep = createDep();
|
|
1487
|
-
}
|
|
1488
1485
|
{
|
|
1489
|
-
trackEffects(ref.dep, {
|
|
1486
|
+
trackEffects(ref.dep || (ref.dep = createDep()), {
|
|
1490
1487
|
target: ref,
|
|
1491
1488
|
type: "get" /* GET */,
|
|
1492
1489
|
key: 'value'
|
|
@@ -1508,7 +1505,7 @@ function triggerRefValue(ref, newVal) {
|
|
|
1508
1505
|
}
|
|
1509
1506
|
}
|
|
1510
1507
|
function isRef(r) {
|
|
1511
|
-
return
|
|
1508
|
+
return !!(r && r.__v_isRef === true);
|
|
1512
1509
|
}
|
|
1513
1510
|
function ref(value) {
|
|
1514
1511
|
return createRef(value, false);
|
|
@@ -2319,23 +2316,23 @@ const deprecationData = {
|
|
|
2319
2316
|
["GLOBAL_MOUNT" /* GLOBAL_MOUNT */]: {
|
|
2320
2317
|
message: `The global app bootstrapping API has changed: vm.$mount() and the "el" ` +
|
|
2321
2318
|
`option have been removed. Use createApp(RootComponent).mount() instead.`,
|
|
2322
|
-
link: `https://v3.vuejs.org/
|
|
2319
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`
|
|
2323
2320
|
},
|
|
2324
2321
|
["GLOBAL_MOUNT_CONTAINER" /* GLOBAL_MOUNT_CONTAINER */]: {
|
|
2325
2322
|
message: `Vue detected directives on the mount container. ` +
|
|
2326
2323
|
`In Vue 3, the container is no longer considered part of the template ` +
|
|
2327
2324
|
`and will not be processed/replaced.`,
|
|
2328
|
-
link: `https://v3.vuejs.org/
|
|
2325
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`
|
|
2329
2326
|
},
|
|
2330
2327
|
["GLOBAL_EXTEND" /* GLOBAL_EXTEND */]: {
|
|
2331
2328
|
message: `Vue.extend() has been removed in Vue 3. ` +
|
|
2332
2329
|
`Use defineComponent() instead.`,
|
|
2333
|
-
link: `https://
|
|
2330
|
+
link: `https://vuejs.org/api/general.html#definecomponent`
|
|
2334
2331
|
},
|
|
2335
2332
|
["GLOBAL_PROTOTYPE" /* GLOBAL_PROTOTYPE */]: {
|
|
2336
2333
|
message: `Vue.prototype is no longer available in Vue 3. ` +
|
|
2337
2334
|
`Use app.config.globalProperties instead.`,
|
|
2338
|
-
link: `https://v3.vuejs.org/
|
|
2335
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`
|
|
2339
2336
|
},
|
|
2340
2337
|
["GLOBAL_SET" /* GLOBAL_SET */]: {
|
|
2341
2338
|
message: `Vue.set() has been removed as it is no longer needed in Vue 3. ` +
|
|
@@ -2348,7 +2345,7 @@ const deprecationData = {
|
|
|
2348
2345
|
["GLOBAL_OBSERVABLE" /* GLOBAL_OBSERVABLE */]: {
|
|
2349
2346
|
message: `Vue.observable() has been removed. ` +
|
|
2350
2347
|
`Use \`import { reactive } from "vue"\` from Composition API instead.`,
|
|
2351
|
-
link: `https://
|
|
2348
|
+
link: `https://vuejs.org/api/reactivity-core.html#reactive`
|
|
2352
2349
|
},
|
|
2353
2350
|
["GLOBAL_PRIVATE_UTIL" /* GLOBAL_PRIVATE_UTIL */]: {
|
|
2354
2351
|
message: `Vue.util has been removed. Please refactor to avoid its usage ` +
|
|
@@ -2367,11 +2364,11 @@ const deprecationData = {
|
|
|
2367
2364
|
["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
|
|
2368
2365
|
message: `config.keyCodes has been removed. ` +
|
|
2369
2366
|
`In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,
|
|
2370
|
-
link: `https://v3.vuejs.org/
|
|
2367
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2371
2368
|
},
|
|
2372
2369
|
["CONFIG_PRODUCTION_TIP" /* CONFIG_PRODUCTION_TIP */]: {
|
|
2373
2370
|
message: `config.productionTip has been removed.`,
|
|
2374
|
-
link: `https://v3.vuejs.org/
|
|
2371
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`
|
|
2375
2372
|
},
|
|
2376
2373
|
["CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */]: {
|
|
2377
2374
|
message: () => {
|
|
@@ -2384,7 +2381,7 @@ const deprecationData = {
|
|
|
2384
2381
|
}
|
|
2385
2382
|
return msg;
|
|
2386
2383
|
},
|
|
2387
|
-
link: `https://v3.vuejs.org/
|
|
2384
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
|
|
2388
2385
|
},
|
|
2389
2386
|
["CONFIG_WHITESPACE" /* CONFIG_WHITESPACE */]: {
|
|
2390
2387
|
// this warning is only relevant in the full build when using runtime
|
|
@@ -2407,12 +2404,12 @@ const deprecationData = {
|
|
|
2407
2404
|
},
|
|
2408
2405
|
["INSTANCE_DESTROY" /* INSTANCE_DESTROY */]: {
|
|
2409
2406
|
message: `vm.$destroy() has been removed. Use app.unmount() instead.`,
|
|
2410
|
-
link: `https://
|
|
2407
|
+
link: `https://vuejs.org/api/application.html#app-unmount`
|
|
2411
2408
|
},
|
|
2412
2409
|
["INSTANCE_EVENT_EMITTER" /* INSTANCE_EVENT_EMITTER */]: {
|
|
2413
2410
|
message: `vm.$on/$once/$off() have been removed. ` +
|
|
2414
2411
|
`Use an external event emitter library instead.`,
|
|
2415
|
-
link: `https://v3.vuejs.org/
|
|
2412
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`
|
|
2416
2413
|
},
|
|
2417
2414
|
["INSTANCE_EVENT_HOOKS" /* INSTANCE_EVENT_HOOKS */]: {
|
|
2418
2415
|
message: event => `"${event}" lifecycle events are no longer supported. From templates, ` +
|
|
@@ -2420,23 +2417,23 @@ const deprecationData = {
|
|
|
2420
2417
|
`should be changed to @vnode-${event.slice(5)}. ` +
|
|
2421
2418
|
`From JavaScript, use Composition API to dynamically register lifecycle ` +
|
|
2422
2419
|
`hooks.`,
|
|
2423
|
-
link: `https://v3.vuejs.org/
|
|
2420
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`
|
|
2424
2421
|
},
|
|
2425
2422
|
["INSTANCE_CHILDREN" /* INSTANCE_CHILDREN */]: {
|
|
2426
2423
|
message: `vm.$children has been removed. Consider refactoring your logic ` +
|
|
2427
2424
|
`to avoid relying on direct access to child components.`,
|
|
2428
|
-
link: `https://v3.vuejs.org/
|
|
2425
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/children.html`
|
|
2429
2426
|
},
|
|
2430
2427
|
["INSTANCE_LISTENERS" /* INSTANCE_LISTENERS */]: {
|
|
2431
2428
|
message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are ` +
|
|
2432
2429
|
`included in vm.$attrs and it is no longer necessary to separately use ` +
|
|
2433
2430
|
`v-on="$listeners" if you are already using v-bind="$attrs". ` +
|
|
2434
2431
|
`(Note: the Vue 3 behavior only applies if this compat config is disabled)`,
|
|
2435
|
-
link: `https://v3.vuejs.org/
|
|
2432
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`
|
|
2436
2433
|
},
|
|
2437
2434
|
["INSTANCE_SCOPED_SLOTS" /* INSTANCE_SCOPED_SLOTS */]: {
|
|
2438
2435
|
message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,
|
|
2439
|
-
link: `https://v3.vuejs.org/
|
|
2436
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`
|
|
2440
2437
|
},
|
|
2441
2438
|
["INSTANCE_ATTRS_CLASS_STYLE" /* INSTANCE_ATTRS_CLASS_STYLE */]: {
|
|
2442
2439
|
message: componentName => `Component <${componentName || 'Anonymous'}> has \`inheritAttrs: false\` but is ` +
|
|
@@ -2447,17 +2444,17 @@ const deprecationData = {
|
|
|
2447
2444
|
`If you are binding $attrs to a non-root element and expecting ` +
|
|
2448
2445
|
`class/style to fallthrough on root, you will need to now manually bind ` +
|
|
2449
2446
|
`them on root via :class="$attrs.class".`,
|
|
2450
|
-
link: `https://v3.vuejs.org/
|
|
2447
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`
|
|
2451
2448
|
},
|
|
2452
2449
|
["OPTIONS_DATA_FN" /* OPTIONS_DATA_FN */]: {
|
|
2453
2450
|
message: `The "data" option can no longer be a plain object. ` +
|
|
2454
2451
|
`Always use a function.`,
|
|
2455
|
-
link: `https://v3.vuejs.org/
|
|
2452
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`
|
|
2456
2453
|
},
|
|
2457
2454
|
["OPTIONS_DATA_MERGE" /* OPTIONS_DATA_MERGE */]: {
|
|
2458
2455
|
message: (key) => `Detected conflicting key "${key}" when merging data option values. ` +
|
|
2459
2456
|
`In Vue 3, data keys are merged shallowly and will override one another.`,
|
|
2460
|
-
link: `https://v3.vuejs.org/
|
|
2457
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`
|
|
2461
2458
|
},
|
|
2462
2459
|
["OPTIONS_BEFORE_DESTROY" /* OPTIONS_BEFORE_DESTROY */]: {
|
|
2463
2460
|
message: `\`beforeDestroy\` has been renamed to \`beforeUnmount\`.`
|
|
@@ -2471,23 +2468,23 @@ const deprecationData = {
|
|
|
2471
2468
|
`If current usage is intended, you can disable the compat behavior and ` +
|
|
2472
2469
|
`suppress this warning with:` +
|
|
2473
2470
|
`\n\n configureCompat({ ${"WATCH_ARRAY" /* WATCH_ARRAY */}: false })\n`,
|
|
2474
|
-
link: `https://v3.vuejs.org/
|
|
2471
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`
|
|
2475
2472
|
},
|
|
2476
2473
|
["PROPS_DEFAULT_THIS" /* PROPS_DEFAULT_THIS */]: {
|
|
2477
2474
|
message: (key) => `props default value function no longer has access to "this". The compat ` +
|
|
2478
2475
|
`build only offers access to this.$options.` +
|
|
2479
2476
|
`(found in prop "${key}")`,
|
|
2480
|
-
link: `https://v3.vuejs.org/
|
|
2477
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`
|
|
2481
2478
|
},
|
|
2482
2479
|
["CUSTOM_DIR" /* CUSTOM_DIR */]: {
|
|
2483
2480
|
message: (legacyHook, newHook) => `Custom directive hook "${legacyHook}" has been removed. ` +
|
|
2484
2481
|
`Use "${newHook}" instead.`,
|
|
2485
|
-
link: `https://v3.vuejs.org/
|
|
2482
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`
|
|
2486
2483
|
},
|
|
2487
2484
|
["V_ON_KEYCODE_MODIFIER" /* V_ON_KEYCODE_MODIFIER */]: {
|
|
2488
2485
|
message: `Using keyCode as v-on modifier is no longer supported. ` +
|
|
2489
2486
|
`Use kebab-case key name modifiers instead.`,
|
|
2490
|
-
link: `https://v3.vuejs.org/
|
|
2487
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2491
2488
|
},
|
|
2492
2489
|
["ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */]: {
|
|
2493
2490
|
message: (name) => `Attribute "${name}" with v-bind value \`false\` will render ` +
|
|
@@ -2495,7 +2492,7 @@ const deprecationData = {
|
|
|
2495
2492
|
`use \`null\` or \`undefined\` instead. If the usage is intended, ` +
|
|
2496
2493
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2497
2494
|
`\n\n configureCompat({ ${"ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */}: false })\n`,
|
|
2498
|
-
link: `https://v3.vuejs.org/
|
|
2495
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2499
2496
|
},
|
|
2500
2497
|
["ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */]: {
|
|
2501
2498
|
message: (name, value, coerced) => `Enumerated attribute "${name}" with v-bind value \`${value}\` will ` +
|
|
@@ -2504,7 +2501,7 @@ const deprecationData = {
|
|
|
2504
2501
|
`If the usage is intended, ` +
|
|
2505
2502
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2506
2503
|
`\n\n configureCompat({ ${"ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */}: false })\n`,
|
|
2507
|
-
link: `https://v3.vuejs.org/
|
|
2504
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2508
2505
|
},
|
|
2509
2506
|
["TRANSITION_CLASSES" /* TRANSITION_CLASSES */]: {
|
|
2510
2507
|
message: `` // this feature cannot be runtime-detected
|
|
@@ -2515,7 +2512,7 @@ const deprecationData = {
|
|
|
2515
2512
|
`for styling, you can disable the compat behavior and suppress this ` +
|
|
2516
2513
|
`warning with:` +
|
|
2517
2514
|
`\n\n configureCompat({ ${"TRANSITION_GROUP_ROOT" /* TRANSITION_GROUP_ROOT */}: false })\n`,
|
|
2518
|
-
link: `https://v3.vuejs.org/
|
|
2515
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`
|
|
2519
2516
|
},
|
|
2520
2517
|
["COMPONENT_ASYNC" /* COMPONENT_ASYNC */]: {
|
|
2521
2518
|
message: (comp) => {
|
|
@@ -2528,7 +2525,7 @@ const deprecationData = {
|
|
|
2528
2525
|
`warning with:` +
|
|
2529
2526
|
`\n\n configureCompat({ ${"COMPONENT_ASYNC" /* COMPONENT_ASYNC */}: false })\n`);
|
|
2530
2527
|
},
|
|
2531
|
-
link: `https://v3.vuejs.org/
|
|
2528
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`
|
|
2532
2529
|
},
|
|
2533
2530
|
["COMPONENT_FUNCTIONAL" /* COMPONENT_FUNCTIONAL */]: {
|
|
2534
2531
|
message: (comp) => {
|
|
@@ -2539,7 +2536,7 @@ const deprecationData = {
|
|
|
2539
2536
|
`components usage have been migrated and its compat behavior has ` +
|
|
2540
2537
|
`been disabled.`);
|
|
2541
2538
|
},
|
|
2542
|
-
link: `https://v3.vuejs.org/
|
|
2539
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`
|
|
2543
2540
|
},
|
|
2544
2541
|
["COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */]: {
|
|
2545
2542
|
message: (comp) => {
|
|
@@ -2556,20 +2553,20 @@ const deprecationData = {
|
|
|
2556
2553
|
`to work with v-model should now use the "modelValue" prop and emit the ` +
|
|
2557
2554
|
`"update:modelValue" event. You can update the usage and then ${configMsg}`);
|
|
2558
2555
|
},
|
|
2559
|
-
link: `https://v3.vuejs.org/
|
|
2556
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
2560
2557
|
},
|
|
2561
2558
|
["RENDER_FUNCTION" /* RENDER_FUNCTION */]: {
|
|
2562
2559
|
message: `Vue 3's render function API has changed. ` +
|
|
2563
2560
|
`You can opt-in to the new API with:` +
|
|
2564
2561
|
`\n\n configureCompat({ ${"RENDER_FUNCTION" /* RENDER_FUNCTION */}: false })\n` +
|
|
2565
2562
|
`\n (This can also be done per-component via the "compatConfig" option.)`,
|
|
2566
|
-
link: `https://v3.vuejs.org/
|
|
2563
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`
|
|
2567
2564
|
},
|
|
2568
2565
|
["FILTERS" /* FILTERS */]: {
|
|
2569
2566
|
message: `filters have been removed in Vue 3. ` +
|
|
2570
2567
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
2571
2568
|
`Use method calls or computed properties instead.`,
|
|
2572
|
-
link: `https://v3.vuejs.org/
|
|
2569
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
2573
2570
|
},
|
|
2574
2571
|
["PRIVATE_APIS" /* PRIVATE_APIS */]: {
|
|
2575
2572
|
message: name => `"${name}" is a Vue 2 private API that no longer exists in Vue 3. ` +
|
|
@@ -2637,7 +2634,7 @@ function validateCompatConfig(config, instance) {
|
|
|
2637
2634
|
warn$1(`Deprecation config "${key}" is compiler-specific and you are ` +
|
|
2638
2635
|
`running a runtime-only build of Vue. This deprecation should be ` +
|
|
2639
2636
|
`configured via compiler options in your build setup instead.\n` +
|
|
2640
|
-
`Details: https://v3.vuejs.org/
|
|
2637
|
+
`Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`);
|
|
2641
2638
|
}
|
|
2642
2639
|
}
|
|
2643
2640
|
else {
|
|
@@ -6055,7 +6052,6 @@ return withDirectives(h(comp), [
|
|
|
6055
6052
|
[bar, this.y]
|
|
6056
6053
|
])
|
|
6057
6054
|
*/
|
|
6058
|
-
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
6059
6055
|
function validateDirectiveName(name) {
|
|
6060
6056
|
if (isBuiltInDirective(name)) {
|
|
6061
6057
|
warn$1('Do not use built-in directive ids as custom directive id: ' + name);
|
|
@@ -6190,7 +6186,7 @@ function createCompatVue(createApp, createSingletonApp) {
|
|
|
6190
6186
|
return vm;
|
|
6191
6187
|
}
|
|
6192
6188
|
}
|
|
6193
|
-
Vue.version = `2.6.14-compat:${"3.2.
|
|
6189
|
+
Vue.version = `2.6.14-compat:${"3.2.30"}`;
|
|
6194
6190
|
Vue.config = singletonApp.config;
|
|
6195
6191
|
Vue.use = (p, ...options) => {
|
|
6196
6192
|
if (p && isFunction(p.install)) {
|
|
@@ -11098,7 +11094,7 @@ function isMemoSame(cached, memo) {
|
|
|
11098
11094
|
}
|
|
11099
11095
|
|
|
11100
11096
|
// Core API ------------------------------------------------------------------
|
|
11101
|
-
const version = "3.2.
|
|
11097
|
+
const version = "3.2.30";
|
|
11102
11098
|
const _ssrUtils = {
|
|
11103
11099
|
createComponentInstance,
|
|
11104
11100
|
setupComponent,
|
|
@@ -13648,13 +13644,13 @@ const deprecationData$1 = {
|
|
|
13648
13644
|
message: `Platform-native elements with "is" prop will no longer be ` +
|
|
13649
13645
|
`treated as components in Vue 3 unless the "is" value is explicitly ` +
|
|
13650
13646
|
`prefixed with "vue:".`,
|
|
13651
|
-
link: `https://v3.vuejs.org/
|
|
13647
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
|
|
13652
13648
|
},
|
|
13653
13649
|
["COMPILER_V_BIND_SYNC" /* COMPILER_V_BIND_SYNC */]: {
|
|
13654
13650
|
message: key => `.sync modifier for v-bind has been removed. Use v-model with ` +
|
|
13655
13651
|
`argument instead. \`v-bind:${key}.sync\` should be changed to ` +
|
|
13656
13652
|
`\`v-model:${key}\`.`,
|
|
13657
|
-
link: `https://v3.vuejs.org/
|
|
13653
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
13658
13654
|
},
|
|
13659
13655
|
["COMPILER_V_BIND_PROP" /* COMPILER_V_BIND_PROP */]: {
|
|
13660
13656
|
message: `.prop modifier for v-bind has been removed and no longer necessary. ` +
|
|
@@ -13666,11 +13662,11 @@ const deprecationData$1 = {
|
|
|
13666
13662
|
`that appears before v-bind in the case of conflict. ` +
|
|
13667
13663
|
`To retain 2.x behavior, move v-bind to make it the first attribute. ` +
|
|
13668
13664
|
`You can also suppress this warning if the usage is intended.`,
|
|
13669
|
-
link: `https://v3.vuejs.org/
|
|
13665
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
|
|
13670
13666
|
},
|
|
13671
13667
|
["COMPILER_V_ON_NATIVE" /* COMPILER_V_ON_NATIVE */]: {
|
|
13672
13668
|
message: `.native modifier for v-on has been removed as is no longer necessary.`,
|
|
13673
|
-
link: `https://v3.vuejs.org/
|
|
13669
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
|
|
13674
13670
|
},
|
|
13675
13671
|
["COMPILER_V_IF_V_FOR_PRECEDENCE" /* COMPILER_V_IF_V_FOR_PRECEDENCE */]: {
|
|
13676
13672
|
message: `v-if / v-for precedence when used on the same element has changed ` +
|
|
@@ -13678,7 +13674,7 @@ const deprecationData$1 = {
|
|
|
13678
13674
|
`access to v-for scope variables. It is best to avoid the ambiguity ` +
|
|
13679
13675
|
`with <template> tags or use a computed property that filters v-for ` +
|
|
13680
13676
|
`data source.`,
|
|
13681
|
-
link: `https://v3.vuejs.org/
|
|
13677
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
|
|
13682
13678
|
},
|
|
13683
13679
|
["COMPILER_NATIVE_TEMPLATE" /* COMPILER_NATIVE_TEMPLATE */]: {
|
|
13684
13680
|
message: `<template> with no special directives will render as a native template ` +
|
|
@@ -13686,13 +13682,13 @@ const deprecationData$1 = {
|
|
|
13686
13682
|
},
|
|
13687
13683
|
["COMPILER_INLINE_TEMPLATE" /* COMPILER_INLINE_TEMPLATE */]: {
|
|
13688
13684
|
message: `"inline-template" has been removed in Vue 3.`,
|
|
13689
|
-
link: `https://v3.vuejs.org/
|
|
13685
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
|
|
13690
13686
|
},
|
|
13691
13687
|
["COMPILER_FILTER" /* COMPILER_FILTERS */]: {
|
|
13692
13688
|
message: `filters have been removed in Vue 3. ` +
|
|
13693
13689
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
13694
13690
|
`Use method calls or computed properties instead.`,
|
|
13695
|
-
link: `https://v3.vuejs.org/
|
|
13691
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
13696
13692
|
}
|
|
13697
13693
|
};
|
|
13698
13694
|
function getCompatValue(key, context) {
|
|
@@ -17659,7 +17655,7 @@ function buildProps(node, context, props = node.props, ssr = false) {
|
|
|
17659
17655
|
}
|
|
17660
17656
|
}
|
|
17661
17657
|
}
|
|
17662
|
-
else {
|
|
17658
|
+
else if (!isBuiltInDirective(name)) {
|
|
17663
17659
|
// no built-in transform, this is a user custom directive.
|
|
17664
17660
|
runtimeDirectives.push(prop);
|
|
17665
17661
|
// custom dirs may use beforeUpdate so they need to force blocks
|