@vue/compat 3.2.29 → 3.2.32
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 +40 -41
- package/dist/vue.cjs.js +168 -128
- package/dist/vue.cjs.prod.js +120 -77
- package/dist/vue.esm-browser.js +168 -128
- package/dist/vue.esm-browser.prod.js +1 -1
- package/dist/vue.esm-bundler.js +170 -130
- package/dist/vue.global.js +168 -128
- package/dist/vue.global.prod.js +1 -1
- package/dist/vue.runtime.esm-browser.js +160 -120
- package/dist/vue.runtime.esm-browser.prod.js +1 -1
- package/dist/vue.runtime.esm-bundler.js +162 -122
- package/dist/vue.runtime.global.js +160 -120
- package/dist/vue.runtime.global.prod.js +1 -1
- package/package.json +2 -2
package/dist/vue.esm-bundler.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
|
|
@@ -358,6 +360,7 @@ const isReservedProp = /*#__PURE__*/ makeMap(
|
|
|
358
360
|
'onVnodeBeforeMount,onVnodeMounted,' +
|
|
359
361
|
'onVnodeBeforeUpdate,onVnodeUpdated,' +
|
|
360
362
|
'onVnodeBeforeUnmount,onVnodeUnmounted');
|
|
363
|
+
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
361
364
|
const cacheStringFunction = (fn) => {
|
|
362
365
|
const cache = Object.create(null);
|
|
363
366
|
return ((str) => {
|
|
@@ -423,11 +426,19 @@ function warn(msg, ...args) {
|
|
|
423
426
|
}
|
|
424
427
|
|
|
425
428
|
let activeEffectScope;
|
|
426
|
-
const effectScopeStack = [];
|
|
427
429
|
class EffectScope {
|
|
428
430
|
constructor(detached = false) {
|
|
431
|
+
/**
|
|
432
|
+
* @internal
|
|
433
|
+
*/
|
|
429
434
|
this.active = true;
|
|
435
|
+
/**
|
|
436
|
+
* @internal
|
|
437
|
+
*/
|
|
430
438
|
this.effects = [];
|
|
439
|
+
/**
|
|
440
|
+
* @internal
|
|
441
|
+
*/
|
|
431
442
|
this.cleanups = [];
|
|
432
443
|
if (!detached && activeEffectScope) {
|
|
433
444
|
this.parent = activeEffectScope;
|
|
@@ -437,36 +448,46 @@ class EffectScope {
|
|
|
437
448
|
}
|
|
438
449
|
run(fn) {
|
|
439
450
|
if (this.active) {
|
|
451
|
+
const currentEffectScope = activeEffectScope;
|
|
440
452
|
try {
|
|
441
|
-
this
|
|
453
|
+
activeEffectScope = this;
|
|
442
454
|
return fn();
|
|
443
455
|
}
|
|
444
456
|
finally {
|
|
445
|
-
|
|
457
|
+
activeEffectScope = currentEffectScope;
|
|
446
458
|
}
|
|
447
459
|
}
|
|
448
460
|
else if ((process.env.NODE_ENV !== 'production')) {
|
|
449
461
|
warn(`cannot run an inactive effect scope.`);
|
|
450
462
|
}
|
|
451
463
|
}
|
|
464
|
+
/**
|
|
465
|
+
* This should only be called on non-detached scopes
|
|
466
|
+
* @internal
|
|
467
|
+
*/
|
|
452
468
|
on() {
|
|
453
|
-
|
|
454
|
-
effectScopeStack.push(this);
|
|
455
|
-
activeEffectScope = this;
|
|
456
|
-
}
|
|
469
|
+
activeEffectScope = this;
|
|
457
470
|
}
|
|
471
|
+
/**
|
|
472
|
+
* This should only be called on non-detached scopes
|
|
473
|
+
* @internal
|
|
474
|
+
*/
|
|
458
475
|
off() {
|
|
459
|
-
|
|
460
|
-
effectScopeStack.pop();
|
|
461
|
-
activeEffectScope = effectScopeStack[effectScopeStack.length - 1];
|
|
462
|
-
}
|
|
476
|
+
activeEffectScope = this.parent;
|
|
463
477
|
}
|
|
464
478
|
stop(fromParent) {
|
|
465
479
|
if (this.active) {
|
|
466
|
-
|
|
467
|
-
this.
|
|
480
|
+
let i, l;
|
|
481
|
+
for (i = 0, l = this.effects.length; i < l; i++) {
|
|
482
|
+
this.effects[i].stop();
|
|
483
|
+
}
|
|
484
|
+
for (i = 0, l = this.cleanups.length; i < l; i++) {
|
|
485
|
+
this.cleanups[i]();
|
|
486
|
+
}
|
|
468
487
|
if (this.scopes) {
|
|
469
|
-
this.scopes.
|
|
488
|
+
for (i = 0, l = this.scopes.length; i < l; i++) {
|
|
489
|
+
this.scopes[i].stop(true);
|
|
490
|
+
}
|
|
470
491
|
}
|
|
471
492
|
// nested scope, dereference from parent to avoid memory leaks
|
|
472
493
|
if (this.parent && !fromParent) {
|
|
@@ -484,8 +505,7 @@ class EffectScope {
|
|
|
484
505
|
function effectScope(detached) {
|
|
485
506
|
return new EffectScope(detached);
|
|
486
507
|
}
|
|
487
|
-
function recordEffectScope(effect, scope) {
|
|
488
|
-
scope = scope || activeEffectScope;
|
|
508
|
+
function recordEffectScope(effect, scope = activeEffectScope) {
|
|
489
509
|
if (scope && scope.active) {
|
|
490
510
|
scope.effects.push(effect);
|
|
491
511
|
}
|
|
@@ -548,7 +568,6 @@ let trackOpBit = 1;
|
|
|
548
568
|
* When recursion depth is greater, fall back to using a full cleanup.
|
|
549
569
|
*/
|
|
550
570
|
const maxMarkerBits = 30;
|
|
551
|
-
const effectStack = [];
|
|
552
571
|
let activeEffect;
|
|
553
572
|
const ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');
|
|
554
573
|
const MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');
|
|
@@ -558,35 +577,42 @@ class ReactiveEffect {
|
|
|
558
577
|
this.scheduler = scheduler;
|
|
559
578
|
this.active = true;
|
|
560
579
|
this.deps = [];
|
|
580
|
+
this.parent = undefined;
|
|
561
581
|
recordEffectScope(this, scope);
|
|
562
582
|
}
|
|
563
583
|
run() {
|
|
564
584
|
if (!this.active) {
|
|
565
585
|
return this.fn();
|
|
566
586
|
}
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
if (effectTrackDepth <= maxMarkerBits) {
|
|
573
|
-
initDepMarkers(this);
|
|
574
|
-
}
|
|
575
|
-
else {
|
|
576
|
-
cleanupEffect(this);
|
|
577
|
-
}
|
|
578
|
-
return this.fn();
|
|
587
|
+
let parent = activeEffect;
|
|
588
|
+
let lastShouldTrack = shouldTrack;
|
|
589
|
+
while (parent) {
|
|
590
|
+
if (parent === this) {
|
|
591
|
+
return;
|
|
579
592
|
}
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
593
|
+
parent = parent.parent;
|
|
594
|
+
}
|
|
595
|
+
try {
|
|
596
|
+
this.parent = activeEffect;
|
|
597
|
+
activeEffect = this;
|
|
598
|
+
shouldTrack = true;
|
|
599
|
+
trackOpBit = 1 << ++effectTrackDepth;
|
|
600
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
601
|
+
initDepMarkers(this);
|
|
602
|
+
}
|
|
603
|
+
else {
|
|
604
|
+
cleanupEffect(this);
|
|
589
605
|
}
|
|
606
|
+
return this.fn();
|
|
607
|
+
}
|
|
608
|
+
finally {
|
|
609
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
610
|
+
finalizeDepMarkers(this);
|
|
611
|
+
}
|
|
612
|
+
trackOpBit = 1 << --effectTrackDepth;
|
|
613
|
+
activeEffect = this.parent;
|
|
614
|
+
shouldTrack = lastShouldTrack;
|
|
615
|
+
this.parent = undefined;
|
|
590
616
|
}
|
|
591
617
|
}
|
|
592
618
|
stop() {
|
|
@@ -634,33 +660,25 @@ function pauseTracking() {
|
|
|
634
660
|
trackStack.push(shouldTrack);
|
|
635
661
|
shouldTrack = false;
|
|
636
662
|
}
|
|
637
|
-
function enableTracking() {
|
|
638
|
-
trackStack.push(shouldTrack);
|
|
639
|
-
shouldTrack = true;
|
|
640
|
-
}
|
|
641
663
|
function resetTracking() {
|
|
642
664
|
const last = trackStack.pop();
|
|
643
665
|
shouldTrack = last === undefined ? true : last;
|
|
644
666
|
}
|
|
645
667
|
function track(target, type, key) {
|
|
646
|
-
if (
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
668
|
+
if (shouldTrack && activeEffect) {
|
|
669
|
+
let depsMap = targetMap.get(target);
|
|
670
|
+
if (!depsMap) {
|
|
671
|
+
targetMap.set(target, (depsMap = new Map()));
|
|
672
|
+
}
|
|
673
|
+
let dep = depsMap.get(key);
|
|
674
|
+
if (!dep) {
|
|
675
|
+
depsMap.set(key, (dep = createDep()));
|
|
676
|
+
}
|
|
677
|
+
const eventInfo = (process.env.NODE_ENV !== 'production')
|
|
678
|
+
? { effect: activeEffect, target, type, key }
|
|
679
|
+
: undefined;
|
|
680
|
+
trackEffects(dep, eventInfo);
|
|
656
681
|
}
|
|
657
|
-
const eventInfo = (process.env.NODE_ENV !== 'production')
|
|
658
|
-
? { effect: activeEffect, target, type, key }
|
|
659
|
-
: undefined;
|
|
660
|
-
trackEffects(dep, eventInfo);
|
|
661
|
-
}
|
|
662
|
-
function isTracking() {
|
|
663
|
-
return shouldTrack && activeEffect !== undefined;
|
|
664
682
|
}
|
|
665
683
|
function trackEffects(dep, debuggerEventExtraInfo) {
|
|
666
684
|
let shouldTrack = false;
|
|
@@ -678,9 +696,7 @@ function trackEffects(dep, debuggerEventExtraInfo) {
|
|
|
678
696
|
dep.add(activeEffect);
|
|
679
697
|
activeEffect.deps.push(dep);
|
|
680
698
|
if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {
|
|
681
|
-
activeEffect.onTrack(Object.assign({
|
|
682
|
-
effect: activeEffect
|
|
683
|
-
}, debuggerEventExtraInfo));
|
|
699
|
+
activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));
|
|
684
700
|
}
|
|
685
701
|
}
|
|
686
702
|
}
|
|
@@ -1353,20 +1369,17 @@ const toReactive = (value) => isObject(value) ? reactive(value) : value;
|
|
|
1353
1369
|
const toReadonly = (value) => isObject(value) ? readonly(value) : value;
|
|
1354
1370
|
|
|
1355
1371
|
function trackRefValue(ref) {
|
|
1356
|
-
if (
|
|
1372
|
+
if (shouldTrack && activeEffect) {
|
|
1357
1373
|
ref = toRaw(ref);
|
|
1358
|
-
if (!ref.dep) {
|
|
1359
|
-
ref.dep = createDep();
|
|
1360
|
-
}
|
|
1361
1374
|
if ((process.env.NODE_ENV !== 'production')) {
|
|
1362
|
-
trackEffects(ref.dep, {
|
|
1375
|
+
trackEffects(ref.dep || (ref.dep = createDep()), {
|
|
1363
1376
|
target: ref,
|
|
1364
1377
|
type: "get" /* GET */,
|
|
1365
1378
|
key: 'value'
|
|
1366
1379
|
});
|
|
1367
1380
|
}
|
|
1368
1381
|
else {
|
|
1369
|
-
trackEffects(ref.dep);
|
|
1382
|
+
trackEffects(ref.dep || (ref.dep = createDep()));
|
|
1370
1383
|
}
|
|
1371
1384
|
}
|
|
1372
1385
|
}
|
|
@@ -1387,7 +1400,7 @@ function triggerRefValue(ref, newVal) {
|
|
|
1387
1400
|
}
|
|
1388
1401
|
}
|
|
1389
1402
|
function isRef(r) {
|
|
1390
|
-
return
|
|
1403
|
+
return !!(r && r.__v_isRef === true);
|
|
1391
1404
|
}
|
|
1392
1405
|
function ref(value) {
|
|
1393
1406
|
return createRef(value, false);
|
|
@@ -2206,23 +2219,23 @@ const deprecationData = {
|
|
|
2206
2219
|
["GLOBAL_MOUNT" /* GLOBAL_MOUNT */]: {
|
|
2207
2220
|
message: `The global app bootstrapping API has changed: vm.$mount() and the "el" ` +
|
|
2208
2221
|
`option have been removed. Use createApp(RootComponent).mount() instead.`,
|
|
2209
|
-
link: `https://v3.vuejs.org/
|
|
2222
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`
|
|
2210
2223
|
},
|
|
2211
2224
|
["GLOBAL_MOUNT_CONTAINER" /* GLOBAL_MOUNT_CONTAINER */]: {
|
|
2212
2225
|
message: `Vue detected directives on the mount container. ` +
|
|
2213
2226
|
`In Vue 3, the container is no longer considered part of the template ` +
|
|
2214
2227
|
`and will not be processed/replaced.`,
|
|
2215
|
-
link: `https://v3.vuejs.org/
|
|
2228
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`
|
|
2216
2229
|
},
|
|
2217
2230
|
["GLOBAL_EXTEND" /* GLOBAL_EXTEND */]: {
|
|
2218
2231
|
message: `Vue.extend() has been removed in Vue 3. ` +
|
|
2219
2232
|
`Use defineComponent() instead.`,
|
|
2220
|
-
link: `https://
|
|
2233
|
+
link: `https://vuejs.org/api/general.html#definecomponent`
|
|
2221
2234
|
},
|
|
2222
2235
|
["GLOBAL_PROTOTYPE" /* GLOBAL_PROTOTYPE */]: {
|
|
2223
2236
|
message: `Vue.prototype is no longer available in Vue 3. ` +
|
|
2224
2237
|
`Use app.config.globalProperties instead.`,
|
|
2225
|
-
link: `https://v3.vuejs.org/
|
|
2238
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`
|
|
2226
2239
|
},
|
|
2227
2240
|
["GLOBAL_SET" /* GLOBAL_SET */]: {
|
|
2228
2241
|
message: `Vue.set() has been removed as it is no longer needed in Vue 3. ` +
|
|
@@ -2235,7 +2248,7 @@ const deprecationData = {
|
|
|
2235
2248
|
["GLOBAL_OBSERVABLE" /* GLOBAL_OBSERVABLE */]: {
|
|
2236
2249
|
message: `Vue.observable() has been removed. ` +
|
|
2237
2250
|
`Use \`import { reactive } from "vue"\` from Composition API instead.`,
|
|
2238
|
-
link: `https://
|
|
2251
|
+
link: `https://vuejs.org/api/reactivity-core.html#reactive`
|
|
2239
2252
|
},
|
|
2240
2253
|
["GLOBAL_PRIVATE_UTIL" /* GLOBAL_PRIVATE_UTIL */]: {
|
|
2241
2254
|
message: `Vue.util has been removed. Please refactor to avoid its usage ` +
|
|
@@ -2254,11 +2267,11 @@ const deprecationData = {
|
|
|
2254
2267
|
["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
|
|
2255
2268
|
message: `config.keyCodes has been removed. ` +
|
|
2256
2269
|
`In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,
|
|
2257
|
-
link: `https://v3.vuejs.org/
|
|
2270
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2258
2271
|
},
|
|
2259
2272
|
["CONFIG_PRODUCTION_TIP" /* CONFIG_PRODUCTION_TIP */]: {
|
|
2260
2273
|
message: `config.productionTip has been removed.`,
|
|
2261
|
-
link: `https://v3.vuejs.org/
|
|
2274
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`
|
|
2262
2275
|
},
|
|
2263
2276
|
["CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */]: {
|
|
2264
2277
|
message: () => {
|
|
@@ -2271,7 +2284,7 @@ const deprecationData = {
|
|
|
2271
2284
|
}
|
|
2272
2285
|
return msg;
|
|
2273
2286
|
},
|
|
2274
|
-
link: `https://v3.vuejs.org/
|
|
2287
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
|
|
2275
2288
|
},
|
|
2276
2289
|
["CONFIG_WHITESPACE" /* CONFIG_WHITESPACE */]: {
|
|
2277
2290
|
// this warning is only relevant in the full build when using runtime
|
|
@@ -2294,12 +2307,12 @@ const deprecationData = {
|
|
|
2294
2307
|
},
|
|
2295
2308
|
["INSTANCE_DESTROY" /* INSTANCE_DESTROY */]: {
|
|
2296
2309
|
message: `vm.$destroy() has been removed. Use app.unmount() instead.`,
|
|
2297
|
-
link: `https://
|
|
2310
|
+
link: `https://vuejs.org/api/application.html#app-unmount`
|
|
2298
2311
|
},
|
|
2299
2312
|
["INSTANCE_EVENT_EMITTER" /* INSTANCE_EVENT_EMITTER */]: {
|
|
2300
2313
|
message: `vm.$on/$once/$off() have been removed. ` +
|
|
2301
2314
|
`Use an external event emitter library instead.`,
|
|
2302
|
-
link: `https://v3.vuejs.org/
|
|
2315
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`
|
|
2303
2316
|
},
|
|
2304
2317
|
["INSTANCE_EVENT_HOOKS" /* INSTANCE_EVENT_HOOKS */]: {
|
|
2305
2318
|
message: event => `"${event}" lifecycle events are no longer supported. From templates, ` +
|
|
@@ -2307,23 +2320,23 @@ const deprecationData = {
|
|
|
2307
2320
|
`should be changed to @vnode-${event.slice(5)}. ` +
|
|
2308
2321
|
`From JavaScript, use Composition API to dynamically register lifecycle ` +
|
|
2309
2322
|
`hooks.`,
|
|
2310
|
-
link: `https://v3.vuejs.org/
|
|
2323
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`
|
|
2311
2324
|
},
|
|
2312
2325
|
["INSTANCE_CHILDREN" /* INSTANCE_CHILDREN */]: {
|
|
2313
2326
|
message: `vm.$children has been removed. Consider refactoring your logic ` +
|
|
2314
2327
|
`to avoid relying on direct access to child components.`,
|
|
2315
|
-
link: `https://v3.vuejs.org/
|
|
2328
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/children.html`
|
|
2316
2329
|
},
|
|
2317
2330
|
["INSTANCE_LISTENERS" /* INSTANCE_LISTENERS */]: {
|
|
2318
2331
|
message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are ` +
|
|
2319
2332
|
`included in vm.$attrs and it is no longer necessary to separately use ` +
|
|
2320
2333
|
`v-on="$listeners" if you are already using v-bind="$attrs". ` +
|
|
2321
2334
|
`(Note: the Vue 3 behavior only applies if this compat config is disabled)`,
|
|
2322
|
-
link: `https://v3.vuejs.org/
|
|
2335
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`
|
|
2323
2336
|
},
|
|
2324
2337
|
["INSTANCE_SCOPED_SLOTS" /* INSTANCE_SCOPED_SLOTS */]: {
|
|
2325
2338
|
message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,
|
|
2326
|
-
link: `https://v3.vuejs.org/
|
|
2339
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`
|
|
2327
2340
|
},
|
|
2328
2341
|
["INSTANCE_ATTRS_CLASS_STYLE" /* INSTANCE_ATTRS_CLASS_STYLE */]: {
|
|
2329
2342
|
message: componentName => `Component <${componentName || 'Anonymous'}> has \`inheritAttrs: false\` but is ` +
|
|
@@ -2334,17 +2347,17 @@ const deprecationData = {
|
|
|
2334
2347
|
`If you are binding $attrs to a non-root element and expecting ` +
|
|
2335
2348
|
`class/style to fallthrough on root, you will need to now manually bind ` +
|
|
2336
2349
|
`them on root via :class="$attrs.class".`,
|
|
2337
|
-
link: `https://v3.vuejs.org/
|
|
2350
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`
|
|
2338
2351
|
},
|
|
2339
2352
|
["OPTIONS_DATA_FN" /* OPTIONS_DATA_FN */]: {
|
|
2340
2353
|
message: `The "data" option can no longer be a plain object. ` +
|
|
2341
2354
|
`Always use a function.`,
|
|
2342
|
-
link: `https://v3.vuejs.org/
|
|
2355
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`
|
|
2343
2356
|
},
|
|
2344
2357
|
["OPTIONS_DATA_MERGE" /* OPTIONS_DATA_MERGE */]: {
|
|
2345
2358
|
message: (key) => `Detected conflicting key "${key}" when merging data option values. ` +
|
|
2346
2359
|
`In Vue 3, data keys are merged shallowly and will override one another.`,
|
|
2347
|
-
link: `https://v3.vuejs.org/
|
|
2360
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`
|
|
2348
2361
|
},
|
|
2349
2362
|
["OPTIONS_BEFORE_DESTROY" /* OPTIONS_BEFORE_DESTROY */]: {
|
|
2350
2363
|
message: `\`beforeDestroy\` has been renamed to \`beforeUnmount\`.`
|
|
@@ -2358,23 +2371,23 @@ const deprecationData = {
|
|
|
2358
2371
|
`If current usage is intended, you can disable the compat behavior and ` +
|
|
2359
2372
|
`suppress this warning with:` +
|
|
2360
2373
|
`\n\n configureCompat({ ${"WATCH_ARRAY" /* WATCH_ARRAY */}: false })\n`,
|
|
2361
|
-
link: `https://v3.vuejs.org/
|
|
2374
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`
|
|
2362
2375
|
},
|
|
2363
2376
|
["PROPS_DEFAULT_THIS" /* PROPS_DEFAULT_THIS */]: {
|
|
2364
2377
|
message: (key) => `props default value function no longer has access to "this". The compat ` +
|
|
2365
2378
|
`build only offers access to this.$options.` +
|
|
2366
2379
|
`(found in prop "${key}")`,
|
|
2367
|
-
link: `https://v3.vuejs.org/
|
|
2380
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`
|
|
2368
2381
|
},
|
|
2369
2382
|
["CUSTOM_DIR" /* CUSTOM_DIR */]: {
|
|
2370
2383
|
message: (legacyHook, newHook) => `Custom directive hook "${legacyHook}" has been removed. ` +
|
|
2371
2384
|
`Use "${newHook}" instead.`,
|
|
2372
|
-
link: `https://v3.vuejs.org/
|
|
2385
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`
|
|
2373
2386
|
},
|
|
2374
2387
|
["V_ON_KEYCODE_MODIFIER" /* V_ON_KEYCODE_MODIFIER */]: {
|
|
2375
2388
|
message: `Using keyCode as v-on modifier is no longer supported. ` +
|
|
2376
2389
|
`Use kebab-case key name modifiers instead.`,
|
|
2377
|
-
link: `https://v3.vuejs.org/
|
|
2390
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2378
2391
|
},
|
|
2379
2392
|
["ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */]: {
|
|
2380
2393
|
message: (name) => `Attribute "${name}" with v-bind value \`false\` will render ` +
|
|
@@ -2382,7 +2395,7 @@ const deprecationData = {
|
|
|
2382
2395
|
`use \`null\` or \`undefined\` instead. If the usage is intended, ` +
|
|
2383
2396
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2384
2397
|
`\n\n configureCompat({ ${"ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */}: false })\n`,
|
|
2385
|
-
link: `https://v3.vuejs.org/
|
|
2398
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2386
2399
|
},
|
|
2387
2400
|
["ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */]: {
|
|
2388
2401
|
message: (name, value, coerced) => `Enumerated attribute "${name}" with v-bind value \`${value}\` will ` +
|
|
@@ -2391,7 +2404,7 @@ const deprecationData = {
|
|
|
2391
2404
|
`If the usage is intended, ` +
|
|
2392
2405
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2393
2406
|
`\n\n configureCompat({ ${"ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */}: false })\n`,
|
|
2394
|
-
link: `https://v3.vuejs.org/
|
|
2407
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2395
2408
|
},
|
|
2396
2409
|
["TRANSITION_CLASSES" /* TRANSITION_CLASSES */]: {
|
|
2397
2410
|
message: `` // this feature cannot be runtime-detected
|
|
@@ -2402,7 +2415,7 @@ const deprecationData = {
|
|
|
2402
2415
|
`for styling, you can disable the compat behavior and suppress this ` +
|
|
2403
2416
|
`warning with:` +
|
|
2404
2417
|
`\n\n configureCompat({ ${"TRANSITION_GROUP_ROOT" /* TRANSITION_GROUP_ROOT */}: false })\n`,
|
|
2405
|
-
link: `https://v3.vuejs.org/
|
|
2418
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`
|
|
2406
2419
|
},
|
|
2407
2420
|
["COMPONENT_ASYNC" /* COMPONENT_ASYNC */]: {
|
|
2408
2421
|
message: (comp) => {
|
|
@@ -2415,7 +2428,7 @@ const deprecationData = {
|
|
|
2415
2428
|
`warning with:` +
|
|
2416
2429
|
`\n\n configureCompat({ ${"COMPONENT_ASYNC" /* COMPONENT_ASYNC */}: false })\n`);
|
|
2417
2430
|
},
|
|
2418
|
-
link: `https://v3.vuejs.org/
|
|
2431
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`
|
|
2419
2432
|
},
|
|
2420
2433
|
["COMPONENT_FUNCTIONAL" /* COMPONENT_FUNCTIONAL */]: {
|
|
2421
2434
|
message: (comp) => {
|
|
@@ -2426,7 +2439,7 @@ const deprecationData = {
|
|
|
2426
2439
|
`components usage have been migrated and its compat behavior has ` +
|
|
2427
2440
|
`been disabled.`);
|
|
2428
2441
|
},
|
|
2429
|
-
link: `https://v3.vuejs.org/
|
|
2442
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`
|
|
2430
2443
|
},
|
|
2431
2444
|
["COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */]: {
|
|
2432
2445
|
message: (comp) => {
|
|
@@ -2443,20 +2456,20 @@ const deprecationData = {
|
|
|
2443
2456
|
`to work with v-model should now use the "modelValue" prop and emit the ` +
|
|
2444
2457
|
`"update:modelValue" event. You can update the usage and then ${configMsg}`);
|
|
2445
2458
|
},
|
|
2446
|
-
link: `https://v3.vuejs.org/
|
|
2459
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
2447
2460
|
},
|
|
2448
2461
|
["RENDER_FUNCTION" /* RENDER_FUNCTION */]: {
|
|
2449
2462
|
message: `Vue 3's render function API has changed. ` +
|
|
2450
2463
|
`You can opt-in to the new API with:` +
|
|
2451
2464
|
`\n\n configureCompat({ ${"RENDER_FUNCTION" /* RENDER_FUNCTION */}: false })\n` +
|
|
2452
2465
|
`\n (This can also be done per-component via the "compatConfig" option.)`,
|
|
2453
|
-
link: `https://v3.vuejs.org/
|
|
2466
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`
|
|
2454
2467
|
},
|
|
2455
2468
|
["FILTERS" /* FILTERS */]: {
|
|
2456
2469
|
message: `filters have been removed in Vue 3. ` +
|
|
2457
2470
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
2458
2471
|
`Use method calls or computed properties instead.`,
|
|
2459
|
-
link: `https://v3.vuejs.org/
|
|
2472
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
2460
2473
|
},
|
|
2461
2474
|
["PRIVATE_APIS" /* PRIVATE_APIS */]: {
|
|
2462
2475
|
message: name => `"${name}" is a Vue 2 private API that no longer exists in Vue 3. ` +
|
|
@@ -2527,7 +2540,7 @@ function validateCompatConfig(config, instance) {
|
|
|
2527
2540
|
warn$1(`Deprecation config "${key}" is compiler-specific and you are ` +
|
|
2528
2541
|
`running a runtime-only build of Vue. This deprecation should be ` +
|
|
2529
2542
|
`configured via compiler options in your build setup instead.\n` +
|
|
2530
|
-
`Details: https://v3.vuejs.org/
|
|
2543
|
+
`Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`);
|
|
2531
2544
|
}
|
|
2532
2545
|
}
|
|
2533
2546
|
else {
|
|
@@ -3743,13 +3756,11 @@ function watchEffect(effect, options) {
|
|
|
3743
3756
|
}
|
|
3744
3757
|
function watchPostEffect(effect, options) {
|
|
3745
3758
|
return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')
|
|
3746
|
-
? Object.assign(options
|
|
3747
|
-
: { flush: 'post' }));
|
|
3759
|
+
? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));
|
|
3748
3760
|
}
|
|
3749
3761
|
function watchSyncEffect(effect, options) {
|
|
3750
3762
|
return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')
|
|
3751
|
-
? Object.assign(options
|
|
3752
|
-
: { flush: 'sync' }));
|
|
3763
|
+
? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));
|
|
3753
3764
|
}
|
|
3754
3765
|
// initial value for watchers to trigger on undefined initial values
|
|
3755
3766
|
const INITIAL_WATCHER_VALUE = {};
|
|
@@ -4077,7 +4088,9 @@ const BaseTransitionImpl = {
|
|
|
4077
4088
|
// check mode
|
|
4078
4089
|
if ((process.env.NODE_ENV !== 'production') &&
|
|
4079
4090
|
mode &&
|
|
4080
|
-
mode !== 'in-out' &&
|
|
4091
|
+
mode !== 'in-out' &&
|
|
4092
|
+
mode !== 'out-in' &&
|
|
4093
|
+
mode !== 'default') {
|
|
4081
4094
|
warn$1(`invalid <transition> mode: ${mode}`);
|
|
4082
4095
|
}
|
|
4083
4096
|
// at this point children has a guaranteed length of 1.
|
|
@@ -4307,20 +4320,24 @@ function setTransitionHooks(vnode, hooks) {
|
|
|
4307
4320
|
vnode.transition = hooks;
|
|
4308
4321
|
}
|
|
4309
4322
|
}
|
|
4310
|
-
function getTransitionRawChildren(children, keepComment = false) {
|
|
4323
|
+
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
4311
4324
|
let ret = [];
|
|
4312
4325
|
let keyedFragmentCount = 0;
|
|
4313
4326
|
for (let i = 0; i < children.length; i++) {
|
|
4314
|
-
|
|
4327
|
+
let child = children[i];
|
|
4328
|
+
// #5360 inherit parent key in case of <template v-for>
|
|
4329
|
+
const key = parentKey == null
|
|
4330
|
+
? child.key
|
|
4331
|
+
: String(parentKey) + String(child.key != null ? child.key : i);
|
|
4315
4332
|
// handle fragment children case, e.g. v-for
|
|
4316
4333
|
if (child.type === Fragment) {
|
|
4317
4334
|
if (child.patchFlag & 128 /* KEYED_FRAGMENT */)
|
|
4318
4335
|
keyedFragmentCount++;
|
|
4319
|
-
ret = ret.concat(getTransitionRawChildren(child.children, keepComment));
|
|
4336
|
+
ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));
|
|
4320
4337
|
}
|
|
4321
4338
|
// comment placeholders should be skipped, e.g. v-if
|
|
4322
4339
|
else if (keepComment || child.type !== Comment) {
|
|
4323
|
-
ret.push(child);
|
|
4340
|
+
ret.push(key != null ? cloneVNode(child, { key }) : child);
|
|
4324
4341
|
}
|
|
4325
4342
|
}
|
|
4326
4343
|
// #1126 if a transition children list contains multiple sub fragments, these
|
|
@@ -5385,6 +5402,10 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
5385
5402
|
const propsToUpdate = instance.vnode.dynamicProps;
|
|
5386
5403
|
for (let i = 0; i < propsToUpdate.length; i++) {
|
|
5387
5404
|
let key = propsToUpdate[i];
|
|
5405
|
+
// skip if the prop key is a declared emit event listener
|
|
5406
|
+
if (isEmitListener(instance.emitsOptions, key)) {
|
|
5407
|
+
continue;
|
|
5408
|
+
}
|
|
5388
5409
|
// PROPS flag guarantees rawProps to be non-null
|
|
5389
5410
|
const value = rawProps[key];
|
|
5390
5411
|
if (options) {
|
|
@@ -5958,7 +5979,6 @@ return withDirectives(h(comp), [
|
|
|
5958
5979
|
[bar, this.y]
|
|
5959
5980
|
])
|
|
5960
5981
|
*/
|
|
5961
|
-
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
5962
5982
|
function validateDirectiveName(name) {
|
|
5963
5983
|
if (isBuiltInDirective(name)) {
|
|
5964
5984
|
warn$1('Do not use built-in directive ids as custom directive id: ' + name);
|
|
@@ -5973,7 +5993,8 @@ function withDirectives(vnode, directives) {
|
|
|
5973
5993
|
(process.env.NODE_ENV !== 'production') && warn$1(`withDirectives can only be used inside render functions.`);
|
|
5974
5994
|
return vnode;
|
|
5975
5995
|
}
|
|
5976
|
-
const instance = internalInstance
|
|
5996
|
+
const instance = getExposeProxy(internalInstance) ||
|
|
5997
|
+
internalInstance.proxy;
|
|
5977
5998
|
const bindings = vnode.dirs || (vnode.dirs = []);
|
|
5978
5999
|
for (let i = 0; i < directives.length; i++) {
|
|
5979
6000
|
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
|
|
@@ -6093,7 +6114,7 @@ function createCompatVue(createApp, createSingletonApp) {
|
|
|
6093
6114
|
return vm;
|
|
6094
6115
|
}
|
|
6095
6116
|
}
|
|
6096
|
-
Vue.version = `2.6.14-compat:${"3.2.
|
|
6117
|
+
Vue.version = `2.6.14-compat:${"3.2.32"}`;
|
|
6097
6118
|
Vue.config = singletonApp.config;
|
|
6098
6119
|
Vue.use = (p, ...options) => {
|
|
6099
6120
|
if (p && isFunction(p.install)) {
|
|
@@ -6522,6 +6543,9 @@ function createAppContext() {
|
|
|
6522
6543
|
let uid = 0;
|
|
6523
6544
|
function createAppAPI(render, hydrate) {
|
|
6524
6545
|
return function createApp(rootComponent, rootProps = null) {
|
|
6546
|
+
if (!isFunction(rootComponent)) {
|
|
6547
|
+
rootComponent = Object.assign({}, rootComponent);
|
|
6548
|
+
}
|
|
6525
6549
|
if (rootProps != null && !isObject(rootProps)) {
|
|
6526
6550
|
(process.env.NODE_ENV !== 'production') && warn$1(`root props passed to app.mount() must be an object.`);
|
|
6527
6551
|
rootProps = null;
|
|
@@ -6724,6 +6748,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
6724
6748
|
if (!isArray(existing)) {
|
|
6725
6749
|
if (_isString) {
|
|
6726
6750
|
refs[ref] = [refValue];
|
|
6751
|
+
if (hasOwn(setupState, ref)) {
|
|
6752
|
+
setupState[ref] = refs[ref];
|
|
6753
|
+
}
|
|
6727
6754
|
}
|
|
6728
6755
|
else {
|
|
6729
6756
|
ref.value = [refValue];
|
|
@@ -6924,7 +6951,8 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
6924
6951
|
// e.g. <option :value="obj">, <input type="checkbox" :true-value="1">
|
|
6925
6952
|
const forcePatchValue = (type === 'input' && dirs) || type === 'option';
|
|
6926
6953
|
// skip props & children if this is hoisted static nodes
|
|
6927
|
-
|
|
6954
|
+
// #5405 in dev, always hydrate children for HMR
|
|
6955
|
+
if ((process.env.NODE_ENV !== 'production') || forcePatchValue || patchFlag !== -1 /* HOISTED */) {
|
|
6928
6956
|
if (dirs) {
|
|
6929
6957
|
invokeDirectiveHook(vnode, null, parentComponent, 'created');
|
|
6930
6958
|
}
|
|
@@ -7099,7 +7127,7 @@ function startMeasure(instance, type) {
|
|
|
7099
7127
|
perf.mark(`vue-${type}-${instance.uid}`);
|
|
7100
7128
|
}
|
|
7101
7129
|
if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {
|
|
7102
|
-
devtoolsPerfStart(instance, type,
|
|
7130
|
+
devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());
|
|
7103
7131
|
}
|
|
7104
7132
|
}
|
|
7105
7133
|
function endMeasure(instance, type) {
|
|
@@ -7112,7 +7140,7 @@ function endMeasure(instance, type) {
|
|
|
7112
7140
|
perf.clearMarks(endTag);
|
|
7113
7141
|
}
|
|
7114
7142
|
if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {
|
|
7115
|
-
devtoolsPerfEnd(instance, type,
|
|
7143
|
+
devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());
|
|
7116
7144
|
}
|
|
7117
7145
|
}
|
|
7118
7146
|
function isSupported() {
|
|
@@ -10129,9 +10157,11 @@ const PublicInstanceProxyHandlers = {
|
|
|
10129
10157
|
const { data, setupState, ctx } = instance;
|
|
10130
10158
|
if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {
|
|
10131
10159
|
setupState[key] = value;
|
|
10160
|
+
return true;
|
|
10132
10161
|
}
|
|
10133
10162
|
else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
|
|
10134
10163
|
data[key] = value;
|
|
10164
|
+
return true;
|
|
10135
10165
|
}
|
|
10136
10166
|
else if (hasOwn(instance.props, key)) {
|
|
10137
10167
|
(process.env.NODE_ENV !== 'production') &&
|
|
@@ -10167,6 +10197,16 @@ const PublicInstanceProxyHandlers = {
|
|
|
10167
10197
|
hasOwn(ctx, key) ||
|
|
10168
10198
|
hasOwn(publicPropertiesMap, key) ||
|
|
10169
10199
|
hasOwn(appContext.config.globalProperties, key));
|
|
10200
|
+
},
|
|
10201
|
+
defineProperty(target, key, descriptor) {
|
|
10202
|
+
if (descriptor.get != null) {
|
|
10203
|
+
// invalidate key cache of a getter based property #5417
|
|
10204
|
+
target.$.accessCache[key] = 0;
|
|
10205
|
+
}
|
|
10206
|
+
else if (hasOwn(descriptor, 'value')) {
|
|
10207
|
+
this.set(target, key, descriptor.value, null);
|
|
10208
|
+
}
|
|
10209
|
+
return Reflect.defineProperty(target, key, descriptor);
|
|
10170
10210
|
}
|
|
10171
10211
|
};
|
|
10172
10212
|
if ((process.env.NODE_ENV !== 'production') && !false) {
|
|
@@ -11081,7 +11121,7 @@ function isMemoSame(cached, memo) {
|
|
|
11081
11121
|
}
|
|
11082
11122
|
|
|
11083
11123
|
// Core API ------------------------------------------------------------------
|
|
11084
|
-
const version = "3.2.
|
|
11124
|
+
const version = "3.2.32";
|
|
11085
11125
|
const _ssrUtils = {
|
|
11086
11126
|
createComponentInstance,
|
|
11087
11127
|
setupComponent,
|
|
@@ -13718,13 +13758,13 @@ const deprecationData$1 = {
|
|
|
13718
13758
|
message: `Platform-native elements with "is" prop will no longer be ` +
|
|
13719
13759
|
`treated as components in Vue 3 unless the "is" value is explicitly ` +
|
|
13720
13760
|
`prefixed with "vue:".`,
|
|
13721
|
-
link: `https://v3.vuejs.org/
|
|
13761
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
|
|
13722
13762
|
},
|
|
13723
13763
|
["COMPILER_V_BIND_SYNC" /* COMPILER_V_BIND_SYNC */]: {
|
|
13724
13764
|
message: key => `.sync modifier for v-bind has been removed. Use v-model with ` +
|
|
13725
13765
|
`argument instead. \`v-bind:${key}.sync\` should be changed to ` +
|
|
13726
13766
|
`\`v-model:${key}\`.`,
|
|
13727
|
-
link: `https://v3.vuejs.org/
|
|
13767
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
13728
13768
|
},
|
|
13729
13769
|
["COMPILER_V_BIND_PROP" /* COMPILER_V_BIND_PROP */]: {
|
|
13730
13770
|
message: `.prop modifier for v-bind has been removed and no longer necessary. ` +
|
|
@@ -13736,11 +13776,11 @@ const deprecationData$1 = {
|
|
|
13736
13776
|
`that appears before v-bind in the case of conflict. ` +
|
|
13737
13777
|
`To retain 2.x behavior, move v-bind to make it the first attribute. ` +
|
|
13738
13778
|
`You can also suppress this warning if the usage is intended.`,
|
|
13739
|
-
link: `https://v3.vuejs.org/
|
|
13779
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
|
|
13740
13780
|
},
|
|
13741
13781
|
["COMPILER_V_ON_NATIVE" /* COMPILER_V_ON_NATIVE */]: {
|
|
13742
13782
|
message: `.native modifier for v-on has been removed as is no longer necessary.`,
|
|
13743
|
-
link: `https://v3.vuejs.org/
|
|
13783
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
|
|
13744
13784
|
},
|
|
13745
13785
|
["COMPILER_V_IF_V_FOR_PRECEDENCE" /* COMPILER_V_IF_V_FOR_PRECEDENCE */]: {
|
|
13746
13786
|
message: `v-if / v-for precedence when used on the same element has changed ` +
|
|
@@ -13748,7 +13788,7 @@ const deprecationData$1 = {
|
|
|
13748
13788
|
`access to v-for scope variables. It is best to avoid the ambiguity ` +
|
|
13749
13789
|
`with <template> tags or use a computed property that filters v-for ` +
|
|
13750
13790
|
`data source.`,
|
|
13751
|
-
link: `https://v3.vuejs.org/
|
|
13791
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
|
|
13752
13792
|
},
|
|
13753
13793
|
["COMPILER_NATIVE_TEMPLATE" /* COMPILER_NATIVE_TEMPLATE */]: {
|
|
13754
13794
|
message: `<template> with no special directives will render as a native template ` +
|
|
@@ -13756,13 +13796,13 @@ const deprecationData$1 = {
|
|
|
13756
13796
|
},
|
|
13757
13797
|
["COMPILER_INLINE_TEMPLATE" /* COMPILER_INLINE_TEMPLATE */]: {
|
|
13758
13798
|
message: `"inline-template" has been removed in Vue 3.`,
|
|
13759
|
-
link: `https://v3.vuejs.org/
|
|
13799
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
|
|
13760
13800
|
},
|
|
13761
13801
|
["COMPILER_FILTER" /* COMPILER_FILTERS */]: {
|
|
13762
13802
|
message: `filters have been removed in Vue 3. ` +
|
|
13763
13803
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
13764
13804
|
`Use method calls or computed properties instead.`,
|
|
13765
|
-
link: `https://v3.vuejs.org/
|
|
13805
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
13766
13806
|
}
|
|
13767
13807
|
};
|
|
13768
13808
|
function getCompatValue(key, context) {
|
|
@@ -16882,7 +16922,7 @@ function buildProps(node, context, props = node.props, ssr = false) {
|
|
|
16882
16922
|
}
|
|
16883
16923
|
}
|
|
16884
16924
|
}
|
|
16885
|
-
else {
|
|
16925
|
+
else if (!isBuiltInDirective(name)) {
|
|
16886
16926
|
// no built-in transform, this is a user custom directive.
|
|
16887
16927
|
runtimeDirectives.push(prop);
|
|
16888
16928
|
// custom dirs may use beforeUpdate so they need to force blocks
|