@vue/compat 3.2.27 → 3.2.31
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 +43 -43
- package/dist/vue.cjs.js +215 -162
- package/dist/vue.cjs.prod.js +165 -110
- package/dist/vue.esm-browser.js +204 -153
- package/dist/vue.esm-browser.prod.js +1 -1
- package/dist/vue.esm-bundler.js +206 -155
- package/dist/vue.global.js +203 -152
- package/dist/vue.global.prod.js +1 -1
- package/dist/vue.runtime.esm-browser.js +189 -142
- package/dist/vue.runtime.esm-browser.prod.js +1 -1
- package/dist/vue.runtime.esm-bundler.js +191 -144
- package/dist/vue.runtime.global.js +188 -141
- package/dist/vue.runtime.global.prod.js +1 -1
- package/package.json +5 -5
package/dist/vue.global.js
CHANGED
|
@@ -209,8 +209,20 @@ var Vue = (function () {
|
|
|
209
209
|
'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +
|
|
210
210
|
'text,textPath,title,tspan,unknown,use,view';
|
|
211
211
|
const VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';
|
|
212
|
+
/**
|
|
213
|
+
* Compiler only.
|
|
214
|
+
* Do NOT use in runtime code paths unless behind `true` flag.
|
|
215
|
+
*/
|
|
212
216
|
const isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);
|
|
217
|
+
/**
|
|
218
|
+
* Compiler only.
|
|
219
|
+
* Do NOT use in runtime code paths unless behind `true` flag.
|
|
220
|
+
*/
|
|
213
221
|
const isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);
|
|
222
|
+
/**
|
|
223
|
+
* Compiler only.
|
|
224
|
+
* Do NOT use in runtime code paths unless behind `true` flag.
|
|
225
|
+
*/
|
|
214
226
|
const isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);
|
|
215
227
|
|
|
216
228
|
function looseCompareArrays(a, b) {
|
|
@@ -268,13 +280,15 @@ var Vue = (function () {
|
|
|
268
280
|
* @private
|
|
269
281
|
*/
|
|
270
282
|
const toDisplayString = (val) => {
|
|
271
|
-
return val
|
|
272
|
-
?
|
|
273
|
-
:
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
283
|
+
return isString(val)
|
|
284
|
+
? val
|
|
285
|
+
: val == null
|
|
286
|
+
? ''
|
|
287
|
+
: isArray(val) ||
|
|
288
|
+
(isObject(val) &&
|
|
289
|
+
(val.toString === objectToString || !isFunction(val.toString)))
|
|
290
|
+
? JSON.stringify(val, replacer, 2)
|
|
291
|
+
: String(val);
|
|
278
292
|
};
|
|
279
293
|
const replacer = (_key, val) => {
|
|
280
294
|
// can't use isRef here since @vue/shared has no deps
|
|
@@ -348,6 +362,7 @@ var Vue = (function () {
|
|
|
348
362
|
'onVnodeBeforeMount,onVnodeMounted,' +
|
|
349
363
|
'onVnodeBeforeUpdate,onVnodeUpdated,' +
|
|
350
364
|
'onVnodeBeforeUnmount,onVnodeUnmounted');
|
|
365
|
+
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
351
366
|
const cacheStringFunction = (fn) => {
|
|
352
367
|
const cache = Object.create(null);
|
|
353
368
|
return ((str) => {
|
|
@@ -413,7 +428,6 @@ var Vue = (function () {
|
|
|
413
428
|
}
|
|
414
429
|
|
|
415
430
|
let activeEffectScope;
|
|
416
|
-
const effectScopeStack = [];
|
|
417
431
|
class EffectScope {
|
|
418
432
|
constructor(detached = false) {
|
|
419
433
|
this.active = true;
|
|
@@ -428,11 +442,11 @@ var Vue = (function () {
|
|
|
428
442
|
run(fn) {
|
|
429
443
|
if (this.active) {
|
|
430
444
|
try {
|
|
431
|
-
this
|
|
445
|
+
activeEffectScope = this;
|
|
432
446
|
return fn();
|
|
433
447
|
}
|
|
434
448
|
finally {
|
|
435
|
-
this.
|
|
449
|
+
activeEffectScope = this.parent;
|
|
436
450
|
}
|
|
437
451
|
}
|
|
438
452
|
else {
|
|
@@ -440,23 +454,24 @@ var Vue = (function () {
|
|
|
440
454
|
}
|
|
441
455
|
}
|
|
442
456
|
on() {
|
|
443
|
-
|
|
444
|
-
effectScopeStack.push(this);
|
|
445
|
-
activeEffectScope = this;
|
|
446
|
-
}
|
|
457
|
+
activeEffectScope = this;
|
|
447
458
|
}
|
|
448
459
|
off() {
|
|
449
|
-
|
|
450
|
-
effectScopeStack.pop();
|
|
451
|
-
activeEffectScope = effectScopeStack[effectScopeStack.length - 1];
|
|
452
|
-
}
|
|
460
|
+
activeEffectScope = this.parent;
|
|
453
461
|
}
|
|
454
462
|
stop(fromParent) {
|
|
455
463
|
if (this.active) {
|
|
456
|
-
|
|
457
|
-
this.
|
|
464
|
+
let i, l;
|
|
465
|
+
for (i = 0, l = this.effects.length; i < l; i++) {
|
|
466
|
+
this.effects[i].stop();
|
|
467
|
+
}
|
|
468
|
+
for (i = 0, l = this.cleanups.length; i < l; i++) {
|
|
469
|
+
this.cleanups[i]();
|
|
470
|
+
}
|
|
458
471
|
if (this.scopes) {
|
|
459
|
-
this.scopes.
|
|
472
|
+
for (i = 0, l = this.scopes.length; i < l; i++) {
|
|
473
|
+
this.scopes[i].stop(true);
|
|
474
|
+
}
|
|
460
475
|
}
|
|
461
476
|
// nested scope, dereference from parent to avoid memory leaks
|
|
462
477
|
if (this.parent && !fromParent) {
|
|
@@ -474,8 +489,7 @@ var Vue = (function () {
|
|
|
474
489
|
function effectScope(detached) {
|
|
475
490
|
return new EffectScope(detached);
|
|
476
491
|
}
|
|
477
|
-
function recordEffectScope(effect, scope) {
|
|
478
|
-
scope = scope || activeEffectScope;
|
|
492
|
+
function recordEffectScope(effect, scope = activeEffectScope) {
|
|
479
493
|
if (scope && scope.active) {
|
|
480
494
|
scope.effects.push(effect);
|
|
481
495
|
}
|
|
@@ -538,7 +552,6 @@ var Vue = (function () {
|
|
|
538
552
|
* When recursion depth is greater, fall back to using a full cleanup.
|
|
539
553
|
*/
|
|
540
554
|
const maxMarkerBits = 30;
|
|
541
|
-
const effectStack = [];
|
|
542
555
|
let activeEffect;
|
|
543
556
|
const ITERATE_KEY = Symbol('iterate' );
|
|
544
557
|
const MAP_KEY_ITERATE_KEY = Symbol('Map key iterate' );
|
|
@@ -548,35 +561,42 @@ var Vue = (function () {
|
|
|
548
561
|
this.scheduler = scheduler;
|
|
549
562
|
this.active = true;
|
|
550
563
|
this.deps = [];
|
|
564
|
+
this.parent = undefined;
|
|
551
565
|
recordEffectScope(this, scope);
|
|
552
566
|
}
|
|
553
567
|
run() {
|
|
554
568
|
if (!this.active) {
|
|
555
569
|
return this.fn();
|
|
556
570
|
}
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
if (effectTrackDepth <= maxMarkerBits) {
|
|
563
|
-
initDepMarkers(this);
|
|
564
|
-
}
|
|
565
|
-
else {
|
|
566
|
-
cleanupEffect(this);
|
|
567
|
-
}
|
|
568
|
-
return this.fn();
|
|
571
|
+
let parent = activeEffect;
|
|
572
|
+
let lastShouldTrack = shouldTrack;
|
|
573
|
+
while (parent) {
|
|
574
|
+
if (parent === this) {
|
|
575
|
+
return;
|
|
569
576
|
}
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
577
|
+
parent = parent.parent;
|
|
578
|
+
}
|
|
579
|
+
try {
|
|
580
|
+
this.parent = activeEffect;
|
|
581
|
+
activeEffect = this;
|
|
582
|
+
shouldTrack = true;
|
|
583
|
+
trackOpBit = 1 << ++effectTrackDepth;
|
|
584
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
585
|
+
initDepMarkers(this);
|
|
579
586
|
}
|
|
587
|
+
else {
|
|
588
|
+
cleanupEffect(this);
|
|
589
|
+
}
|
|
590
|
+
return this.fn();
|
|
591
|
+
}
|
|
592
|
+
finally {
|
|
593
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
594
|
+
finalizeDepMarkers(this);
|
|
595
|
+
}
|
|
596
|
+
trackOpBit = 1 << --effectTrackDepth;
|
|
597
|
+
activeEffect = this.parent;
|
|
598
|
+
shouldTrack = lastShouldTrack;
|
|
599
|
+
this.parent = undefined;
|
|
580
600
|
}
|
|
581
601
|
}
|
|
582
602
|
stop() {
|
|
@@ -624,32 +644,24 @@ var Vue = (function () {
|
|
|
624
644
|
trackStack.push(shouldTrack);
|
|
625
645
|
shouldTrack = false;
|
|
626
646
|
}
|
|
627
|
-
function enableTracking() {
|
|
628
|
-
trackStack.push(shouldTrack);
|
|
629
|
-
shouldTrack = true;
|
|
630
|
-
}
|
|
631
647
|
function resetTracking() {
|
|
632
648
|
const last = trackStack.pop();
|
|
633
649
|
shouldTrack = last === undefined ? true : last;
|
|
634
650
|
}
|
|
635
651
|
function track(target, type, key) {
|
|
636
|
-
if (
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
652
|
+
if (shouldTrack && activeEffect) {
|
|
653
|
+
let depsMap = targetMap.get(target);
|
|
654
|
+
if (!depsMap) {
|
|
655
|
+
targetMap.set(target, (depsMap = new Map()));
|
|
656
|
+
}
|
|
657
|
+
let dep = depsMap.get(key);
|
|
658
|
+
if (!dep) {
|
|
659
|
+
depsMap.set(key, (dep = createDep()));
|
|
660
|
+
}
|
|
661
|
+
const eventInfo = { effect: activeEffect, target, type, key }
|
|
662
|
+
;
|
|
663
|
+
trackEffects(dep, eventInfo);
|
|
646
664
|
}
|
|
647
|
-
const eventInfo = { effect: activeEffect, target, type, key }
|
|
648
|
-
;
|
|
649
|
-
trackEffects(dep, eventInfo);
|
|
650
|
-
}
|
|
651
|
-
function isTracking() {
|
|
652
|
-
return shouldTrack && activeEffect !== undefined;
|
|
653
665
|
}
|
|
654
666
|
function trackEffects(dep, debuggerEventExtraInfo) {
|
|
655
667
|
let shouldTrack = false;
|
|
@@ -810,6 +822,9 @@ var Vue = (function () {
|
|
|
810
822
|
else if (key === "__v_isReadonly" /* IS_READONLY */) {
|
|
811
823
|
return isReadonly;
|
|
812
824
|
}
|
|
825
|
+
else if (key === "__v_isShallow" /* IS_SHALLOW */) {
|
|
826
|
+
return shallow;
|
|
827
|
+
}
|
|
813
828
|
else if (key === "__v_raw" /* RAW */ &&
|
|
814
829
|
receiver ===
|
|
815
830
|
(isReadonly
|
|
@@ -854,9 +869,14 @@ var Vue = (function () {
|
|
|
854
869
|
function createSetter(shallow = false) {
|
|
855
870
|
return function set(target, key, value, receiver) {
|
|
856
871
|
let oldValue = target[key];
|
|
872
|
+
if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
|
|
873
|
+
return false;
|
|
874
|
+
}
|
|
857
875
|
if (!shallow && !isReadonly(value)) {
|
|
858
|
-
|
|
859
|
-
|
|
876
|
+
if (!isShallow(value)) {
|
|
877
|
+
value = toRaw(value);
|
|
878
|
+
oldValue = toRaw(oldValue);
|
|
879
|
+
}
|
|
860
880
|
if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
|
|
861
881
|
oldValue.value = value;
|
|
862
882
|
return true;
|
|
@@ -1243,7 +1263,7 @@ var Vue = (function () {
|
|
|
1243
1263
|
}
|
|
1244
1264
|
function reactive(target) {
|
|
1245
1265
|
// if trying to observe a readonly proxy, return the readonly version.
|
|
1246
|
-
if (target
|
|
1266
|
+
if (isReadonly(target)) {
|
|
1247
1267
|
return target;
|
|
1248
1268
|
}
|
|
1249
1269
|
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
|
|
@@ -1308,6 +1328,9 @@ var Vue = (function () {
|
|
|
1308
1328
|
function isReadonly(value) {
|
|
1309
1329
|
return !!(value && value["__v_isReadonly" /* IS_READONLY */]);
|
|
1310
1330
|
}
|
|
1331
|
+
function isShallow(value) {
|
|
1332
|
+
return !!(value && value["__v_isShallow" /* IS_SHALLOW */]);
|
|
1333
|
+
}
|
|
1311
1334
|
function isProxy(value) {
|
|
1312
1335
|
return isReactive(value) || isReadonly(value);
|
|
1313
1336
|
}
|
|
@@ -1323,13 +1346,10 @@ var Vue = (function () {
|
|
|
1323
1346
|
const toReadonly = (value) => isObject(value) ? readonly(value) : value;
|
|
1324
1347
|
|
|
1325
1348
|
function trackRefValue(ref) {
|
|
1326
|
-
if (
|
|
1349
|
+
if (shouldTrack && activeEffect) {
|
|
1327
1350
|
ref = toRaw(ref);
|
|
1328
|
-
if (!ref.dep) {
|
|
1329
|
-
ref.dep = createDep();
|
|
1330
|
-
}
|
|
1331
1351
|
{
|
|
1332
|
-
trackEffects(ref.dep, {
|
|
1352
|
+
trackEffects(ref.dep || (ref.dep = createDep()), {
|
|
1333
1353
|
target: ref,
|
|
1334
1354
|
type: "get" /* GET */,
|
|
1335
1355
|
key: 'value'
|
|
@@ -1351,7 +1371,7 @@ var Vue = (function () {
|
|
|
1351
1371
|
}
|
|
1352
1372
|
}
|
|
1353
1373
|
function isRef(r) {
|
|
1354
|
-
return
|
|
1374
|
+
return !!(r && r.__v_isRef === true);
|
|
1355
1375
|
}
|
|
1356
1376
|
function ref(value) {
|
|
1357
1377
|
return createRef(value, false);
|
|
@@ -1366,22 +1386,22 @@ var Vue = (function () {
|
|
|
1366
1386
|
return new RefImpl(rawValue, shallow);
|
|
1367
1387
|
}
|
|
1368
1388
|
class RefImpl {
|
|
1369
|
-
constructor(value,
|
|
1370
|
-
this.
|
|
1389
|
+
constructor(value, __v_isShallow) {
|
|
1390
|
+
this.__v_isShallow = __v_isShallow;
|
|
1371
1391
|
this.dep = undefined;
|
|
1372
1392
|
this.__v_isRef = true;
|
|
1373
|
-
this._rawValue =
|
|
1374
|
-
this._value =
|
|
1393
|
+
this._rawValue = __v_isShallow ? value : toRaw(value);
|
|
1394
|
+
this._value = __v_isShallow ? value : toReactive(value);
|
|
1375
1395
|
}
|
|
1376
1396
|
get value() {
|
|
1377
1397
|
trackRefValue(this);
|
|
1378
1398
|
return this._value;
|
|
1379
1399
|
}
|
|
1380
1400
|
set value(newVal) {
|
|
1381
|
-
newVal = this.
|
|
1401
|
+
newVal = this.__v_isShallow ? newVal : toRaw(newVal);
|
|
1382
1402
|
if (hasChanged(newVal, this._rawValue)) {
|
|
1383
1403
|
this._rawValue = newVal;
|
|
1384
|
-
this._value = this.
|
|
1404
|
+
this._value = this.__v_isShallow ? newVal : toReactive(newVal);
|
|
1385
1405
|
triggerRefValue(this, newVal);
|
|
1386
1406
|
}
|
|
1387
1407
|
}
|
|
@@ -1464,22 +1484,23 @@ var Vue = (function () {
|
|
|
1464
1484
|
constructor(getter, _setter, isReadonly, isSSR) {
|
|
1465
1485
|
this._setter = _setter;
|
|
1466
1486
|
this.dep = undefined;
|
|
1467
|
-
this._dirty = true;
|
|
1468
1487
|
this.__v_isRef = true;
|
|
1488
|
+
this._dirty = true;
|
|
1469
1489
|
this.effect = new ReactiveEffect(getter, () => {
|
|
1470
1490
|
if (!this._dirty) {
|
|
1471
1491
|
this._dirty = true;
|
|
1472
1492
|
triggerRefValue(this);
|
|
1473
1493
|
}
|
|
1474
1494
|
});
|
|
1475
|
-
this.effect.
|
|
1495
|
+
this.effect.computed = this;
|
|
1496
|
+
this.effect.active = this._cacheable = !isSSR;
|
|
1476
1497
|
this["__v_isReadonly" /* IS_READONLY */] = isReadonly;
|
|
1477
1498
|
}
|
|
1478
1499
|
get value() {
|
|
1479
1500
|
// the computed ref may get wrapped by other proxies e.g. readonly() #3376
|
|
1480
1501
|
const self = toRaw(this);
|
|
1481
1502
|
trackRefValue(self);
|
|
1482
|
-
if (self._dirty) {
|
|
1503
|
+
if (self._dirty || !self._cacheable) {
|
|
1483
1504
|
self._dirty = false;
|
|
1484
1505
|
self._value = self.effect.run();
|
|
1485
1506
|
}
|
|
@@ -1656,7 +1677,7 @@ var Vue = (function () {
|
|
|
1656
1677
|
[12 /* FUNCTION_REF */]: 'ref function',
|
|
1657
1678
|
[13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',
|
|
1658
1679
|
[14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +
|
|
1659
|
-
'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/
|
|
1680
|
+
'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'
|
|
1660
1681
|
};
|
|
1661
1682
|
function callWithErrorHandling(fn, instance, type, args) {
|
|
1662
1683
|
let res;
|
|
@@ -2161,23 +2182,23 @@ var Vue = (function () {
|
|
|
2161
2182
|
["GLOBAL_MOUNT" /* GLOBAL_MOUNT */]: {
|
|
2162
2183
|
message: `The global app bootstrapping API has changed: vm.$mount() and the "el" ` +
|
|
2163
2184
|
`option have been removed. Use createApp(RootComponent).mount() instead.`,
|
|
2164
|
-
link: `https://v3.vuejs.org/
|
|
2185
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`
|
|
2165
2186
|
},
|
|
2166
2187
|
["GLOBAL_MOUNT_CONTAINER" /* GLOBAL_MOUNT_CONTAINER */]: {
|
|
2167
2188
|
message: `Vue detected directives on the mount container. ` +
|
|
2168
2189
|
`In Vue 3, the container is no longer considered part of the template ` +
|
|
2169
2190
|
`and will not be processed/replaced.`,
|
|
2170
|
-
link: `https://v3.vuejs.org/
|
|
2191
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`
|
|
2171
2192
|
},
|
|
2172
2193
|
["GLOBAL_EXTEND" /* GLOBAL_EXTEND */]: {
|
|
2173
2194
|
message: `Vue.extend() has been removed in Vue 3. ` +
|
|
2174
2195
|
`Use defineComponent() instead.`,
|
|
2175
|
-
link: `https://
|
|
2196
|
+
link: `https://vuejs.org/api/general.html#definecomponent`
|
|
2176
2197
|
},
|
|
2177
2198
|
["GLOBAL_PROTOTYPE" /* GLOBAL_PROTOTYPE */]: {
|
|
2178
2199
|
message: `Vue.prototype is no longer available in Vue 3. ` +
|
|
2179
2200
|
`Use app.config.globalProperties instead.`,
|
|
2180
|
-
link: `https://v3.vuejs.org/
|
|
2201
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`
|
|
2181
2202
|
},
|
|
2182
2203
|
["GLOBAL_SET" /* GLOBAL_SET */]: {
|
|
2183
2204
|
message: `Vue.set() has been removed as it is no longer needed in Vue 3. ` +
|
|
@@ -2190,7 +2211,7 @@ var Vue = (function () {
|
|
|
2190
2211
|
["GLOBAL_OBSERVABLE" /* GLOBAL_OBSERVABLE */]: {
|
|
2191
2212
|
message: `Vue.observable() has been removed. ` +
|
|
2192
2213
|
`Use \`import { reactive } from "vue"\` from Composition API instead.`,
|
|
2193
|
-
link: `https://
|
|
2214
|
+
link: `https://vuejs.org/api/reactivity-core.html#reactive`
|
|
2194
2215
|
},
|
|
2195
2216
|
["GLOBAL_PRIVATE_UTIL" /* GLOBAL_PRIVATE_UTIL */]: {
|
|
2196
2217
|
message: `Vue.util has been removed. Please refactor to avoid its usage ` +
|
|
@@ -2204,16 +2225,16 @@ var Vue = (function () {
|
|
|
2204
2225
|
["CONFIG_DEVTOOLS" /* CONFIG_DEVTOOLS */]: {
|
|
2205
2226
|
message: `config.devtools has been removed. To enable devtools for ` +
|
|
2206
2227
|
`production, configure the __VUE_PROD_DEVTOOLS__ compile-time flag.`,
|
|
2207
|
-
link: `https://github.com/vuejs/
|
|
2228
|
+
link: `https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags`
|
|
2208
2229
|
},
|
|
2209
2230
|
["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
|
|
2210
2231
|
message: `config.keyCodes has been removed. ` +
|
|
2211
2232
|
`In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,
|
|
2212
|
-
link: `https://v3.vuejs.org/
|
|
2233
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2213
2234
|
},
|
|
2214
2235
|
["CONFIG_PRODUCTION_TIP" /* CONFIG_PRODUCTION_TIP */]: {
|
|
2215
2236
|
message: `config.productionTip has been removed.`,
|
|
2216
|
-
link: `https://v3.vuejs.org/
|
|
2237
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`
|
|
2217
2238
|
},
|
|
2218
2239
|
["CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */]: {
|
|
2219
2240
|
message: () => {
|
|
@@ -2226,7 +2247,7 @@ var Vue = (function () {
|
|
|
2226
2247
|
}
|
|
2227
2248
|
return msg;
|
|
2228
2249
|
},
|
|
2229
|
-
link: `https://v3.vuejs.org/
|
|
2250
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
|
|
2230
2251
|
},
|
|
2231
2252
|
["CONFIG_WHITESPACE" /* CONFIG_WHITESPACE */]: {
|
|
2232
2253
|
// this warning is only relevant in the full build when using runtime
|
|
@@ -2249,12 +2270,12 @@ var Vue = (function () {
|
|
|
2249
2270
|
},
|
|
2250
2271
|
["INSTANCE_DESTROY" /* INSTANCE_DESTROY */]: {
|
|
2251
2272
|
message: `vm.$destroy() has been removed. Use app.unmount() instead.`,
|
|
2252
|
-
link: `https://
|
|
2273
|
+
link: `https://vuejs.org/api/application.html#app-unmount`
|
|
2253
2274
|
},
|
|
2254
2275
|
["INSTANCE_EVENT_EMITTER" /* INSTANCE_EVENT_EMITTER */]: {
|
|
2255
2276
|
message: `vm.$on/$once/$off() have been removed. ` +
|
|
2256
2277
|
`Use an external event emitter library instead.`,
|
|
2257
|
-
link: `https://v3.vuejs.org/
|
|
2278
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`
|
|
2258
2279
|
},
|
|
2259
2280
|
["INSTANCE_EVENT_HOOKS" /* INSTANCE_EVENT_HOOKS */]: {
|
|
2260
2281
|
message: event => `"${event}" lifecycle events are no longer supported. From templates, ` +
|
|
@@ -2262,23 +2283,23 @@ var Vue = (function () {
|
|
|
2262
2283
|
`should be changed to @vnode-${event.slice(5)}. ` +
|
|
2263
2284
|
`From JavaScript, use Composition API to dynamically register lifecycle ` +
|
|
2264
2285
|
`hooks.`,
|
|
2265
|
-
link: `https://v3.vuejs.org/
|
|
2286
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`
|
|
2266
2287
|
},
|
|
2267
2288
|
["INSTANCE_CHILDREN" /* INSTANCE_CHILDREN */]: {
|
|
2268
2289
|
message: `vm.$children has been removed. Consider refactoring your logic ` +
|
|
2269
2290
|
`to avoid relying on direct access to child components.`,
|
|
2270
|
-
link: `https://v3.vuejs.org/
|
|
2291
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/children.html`
|
|
2271
2292
|
},
|
|
2272
2293
|
["INSTANCE_LISTENERS" /* INSTANCE_LISTENERS */]: {
|
|
2273
2294
|
message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are ` +
|
|
2274
2295
|
`included in vm.$attrs and it is no longer necessary to separately use ` +
|
|
2275
2296
|
`v-on="$listeners" if you are already using v-bind="$attrs". ` +
|
|
2276
2297
|
`(Note: the Vue 3 behavior only applies if this compat config is disabled)`,
|
|
2277
|
-
link: `https://v3.vuejs.org/
|
|
2298
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`
|
|
2278
2299
|
},
|
|
2279
2300
|
["INSTANCE_SCOPED_SLOTS" /* INSTANCE_SCOPED_SLOTS */]: {
|
|
2280
2301
|
message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,
|
|
2281
|
-
link: `https://v3.vuejs.org/
|
|
2302
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`
|
|
2282
2303
|
},
|
|
2283
2304
|
["INSTANCE_ATTRS_CLASS_STYLE" /* INSTANCE_ATTRS_CLASS_STYLE */]: {
|
|
2284
2305
|
message: componentName => `Component <${componentName || 'Anonymous'}> has \`inheritAttrs: false\` but is ` +
|
|
@@ -2289,17 +2310,17 @@ var Vue = (function () {
|
|
|
2289
2310
|
`If you are binding $attrs to a non-root element and expecting ` +
|
|
2290
2311
|
`class/style to fallthrough on root, you will need to now manually bind ` +
|
|
2291
2312
|
`them on root via :class="$attrs.class".`,
|
|
2292
|
-
link: `https://v3.vuejs.org/
|
|
2313
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`
|
|
2293
2314
|
},
|
|
2294
2315
|
["OPTIONS_DATA_FN" /* OPTIONS_DATA_FN */]: {
|
|
2295
2316
|
message: `The "data" option can no longer be a plain object. ` +
|
|
2296
2317
|
`Always use a function.`,
|
|
2297
|
-
link: `https://v3.vuejs.org/
|
|
2318
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`
|
|
2298
2319
|
},
|
|
2299
2320
|
["OPTIONS_DATA_MERGE" /* OPTIONS_DATA_MERGE */]: {
|
|
2300
2321
|
message: (key) => `Detected conflicting key "${key}" when merging data option values. ` +
|
|
2301
2322
|
`In Vue 3, data keys are merged shallowly and will override one another.`,
|
|
2302
|
-
link: `https://v3.vuejs.org/
|
|
2323
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`
|
|
2303
2324
|
},
|
|
2304
2325
|
["OPTIONS_BEFORE_DESTROY" /* OPTIONS_BEFORE_DESTROY */]: {
|
|
2305
2326
|
message: `\`beforeDestroy\` has been renamed to \`beforeUnmount\`.`
|
|
@@ -2313,23 +2334,23 @@ var Vue = (function () {
|
|
|
2313
2334
|
`If current usage is intended, you can disable the compat behavior and ` +
|
|
2314
2335
|
`suppress this warning with:` +
|
|
2315
2336
|
`\n\n configureCompat({ ${"WATCH_ARRAY" /* WATCH_ARRAY */}: false })\n`,
|
|
2316
|
-
link: `https://v3.vuejs.org/
|
|
2337
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`
|
|
2317
2338
|
},
|
|
2318
2339
|
["PROPS_DEFAULT_THIS" /* PROPS_DEFAULT_THIS */]: {
|
|
2319
2340
|
message: (key) => `props default value function no longer has access to "this". The compat ` +
|
|
2320
2341
|
`build only offers access to this.$options.` +
|
|
2321
2342
|
`(found in prop "${key}")`,
|
|
2322
|
-
link: `https://v3.vuejs.org/
|
|
2343
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`
|
|
2323
2344
|
},
|
|
2324
2345
|
["CUSTOM_DIR" /* CUSTOM_DIR */]: {
|
|
2325
2346
|
message: (legacyHook, newHook) => `Custom directive hook "${legacyHook}" has been removed. ` +
|
|
2326
2347
|
`Use "${newHook}" instead.`,
|
|
2327
|
-
link: `https://v3.vuejs.org/
|
|
2348
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`
|
|
2328
2349
|
},
|
|
2329
2350
|
["V_ON_KEYCODE_MODIFIER" /* V_ON_KEYCODE_MODIFIER */]: {
|
|
2330
2351
|
message: `Using keyCode as v-on modifier is no longer supported. ` +
|
|
2331
2352
|
`Use kebab-case key name modifiers instead.`,
|
|
2332
|
-
link: `https://v3.vuejs.org/
|
|
2353
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2333
2354
|
},
|
|
2334
2355
|
["ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */]: {
|
|
2335
2356
|
message: (name) => `Attribute "${name}" with v-bind value \`false\` will render ` +
|
|
@@ -2337,7 +2358,7 @@ var Vue = (function () {
|
|
|
2337
2358
|
`use \`null\` or \`undefined\` instead. If the usage is intended, ` +
|
|
2338
2359
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2339
2360
|
`\n\n configureCompat({ ${"ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */}: false })\n`,
|
|
2340
|
-
link: `https://v3.vuejs.org/
|
|
2361
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2341
2362
|
},
|
|
2342
2363
|
["ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */]: {
|
|
2343
2364
|
message: (name, value, coerced) => `Enumerated attribute "${name}" with v-bind value \`${value}\` will ` +
|
|
@@ -2346,7 +2367,7 @@ var Vue = (function () {
|
|
|
2346
2367
|
`If the usage is intended, ` +
|
|
2347
2368
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2348
2369
|
`\n\n configureCompat({ ${"ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */}: false })\n`,
|
|
2349
|
-
link: `https://v3.vuejs.org/
|
|
2370
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2350
2371
|
},
|
|
2351
2372
|
["TRANSITION_CLASSES" /* TRANSITION_CLASSES */]: {
|
|
2352
2373
|
message: `` // this feature cannot be runtime-detected
|
|
@@ -2357,7 +2378,7 @@ var Vue = (function () {
|
|
|
2357
2378
|
`for styling, you can disable the compat behavior and suppress this ` +
|
|
2358
2379
|
`warning with:` +
|
|
2359
2380
|
`\n\n configureCompat({ ${"TRANSITION_GROUP_ROOT" /* TRANSITION_GROUP_ROOT */}: false })\n`,
|
|
2360
|
-
link: `https://v3.vuejs.org/
|
|
2381
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`
|
|
2361
2382
|
},
|
|
2362
2383
|
["COMPONENT_ASYNC" /* COMPONENT_ASYNC */]: {
|
|
2363
2384
|
message: (comp) => {
|
|
@@ -2370,7 +2391,7 @@ var Vue = (function () {
|
|
|
2370
2391
|
`warning with:` +
|
|
2371
2392
|
`\n\n configureCompat({ ${"COMPONENT_ASYNC" /* COMPONENT_ASYNC */}: false })\n`);
|
|
2372
2393
|
},
|
|
2373
|
-
link: `https://v3.vuejs.org/
|
|
2394
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`
|
|
2374
2395
|
},
|
|
2375
2396
|
["COMPONENT_FUNCTIONAL" /* COMPONENT_FUNCTIONAL */]: {
|
|
2376
2397
|
message: (comp) => {
|
|
@@ -2381,7 +2402,7 @@ var Vue = (function () {
|
|
|
2381
2402
|
`components usage have been migrated and its compat behavior has ` +
|
|
2382
2403
|
`been disabled.`);
|
|
2383
2404
|
},
|
|
2384
|
-
link: `https://v3.vuejs.org/
|
|
2405
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`
|
|
2385
2406
|
},
|
|
2386
2407
|
["COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */]: {
|
|
2387
2408
|
message: (comp) => {
|
|
@@ -2391,27 +2412,27 @@ var Vue = (function () {
|
|
|
2391
2412
|
(isArray(comp.props)
|
|
2392
2413
|
? comp.props.includes('modelValue')
|
|
2393
2414
|
: hasOwn(comp.props, 'modelValue'))) {
|
|
2394
|
-
return (`Component
|
|
2415
|
+
return (`Component declares "modelValue" prop, which is Vue 3 usage, but ` +
|
|
2395
2416
|
`is running under Vue 2 compat v-model behavior. You can ${configMsg}`);
|
|
2396
2417
|
}
|
|
2397
2418
|
return (`v-model usage on component has changed in Vue 3. Component that expects ` +
|
|
2398
2419
|
`to work with v-model should now use the "modelValue" prop and emit the ` +
|
|
2399
2420
|
`"update:modelValue" event. You can update the usage and then ${configMsg}`);
|
|
2400
2421
|
},
|
|
2401
|
-
link: `https://v3.vuejs.org/
|
|
2422
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
2402
2423
|
},
|
|
2403
2424
|
["RENDER_FUNCTION" /* RENDER_FUNCTION */]: {
|
|
2404
2425
|
message: `Vue 3's render function API has changed. ` +
|
|
2405
2426
|
`You can opt-in to the new API with:` +
|
|
2406
2427
|
`\n\n configureCompat({ ${"RENDER_FUNCTION" /* RENDER_FUNCTION */}: false })\n` +
|
|
2407
2428
|
`\n (This can also be done per-component via the "compatConfig" option.)`,
|
|
2408
|
-
link: `https://v3.vuejs.org/
|
|
2429
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`
|
|
2409
2430
|
},
|
|
2410
2431
|
["FILTERS" /* FILTERS */]: {
|
|
2411
2432
|
message: `filters have been removed in Vue 3. ` +
|
|
2412
2433
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
2413
2434
|
`Use method calls or computed properties instead.`,
|
|
2414
|
-
link: `https://v3.vuejs.org/
|
|
2435
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
2415
2436
|
},
|
|
2416
2437
|
["PRIVATE_APIS" /* PRIVATE_APIS */]: {
|
|
2417
2438
|
message: name => `"${name}" is a Vue 2 private API that no longer exists in Vue 3. ` +
|
|
@@ -2479,7 +2500,7 @@ var Vue = (function () {
|
|
|
2479
2500
|
warn$1(`Deprecation config "${key}" is compiler-specific and you are ` +
|
|
2480
2501
|
`running a runtime-only build of Vue. This deprecation should be ` +
|
|
2481
2502
|
`configured via compiler options in your build setup instead.\n` +
|
|
2482
|
-
`Details: https://v3.vuejs.org/
|
|
2503
|
+
`Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`);
|
|
2483
2504
|
}
|
|
2484
2505
|
}
|
|
2485
2506
|
else {
|
|
@@ -2621,6 +2642,7 @@ var Vue = (function () {
|
|
|
2621
2642
|
const warnedTypes = new WeakSet();
|
|
2622
2643
|
function convertLegacyVModelProps(vnode) {
|
|
2623
2644
|
const { type, shapeFlag, props, dynamicProps } = vnode;
|
|
2645
|
+
const comp = type;
|
|
2624
2646
|
if (shapeFlag & 6 /* COMPONENT */ && props && 'modelValue' in props) {
|
|
2625
2647
|
if (!isCompatEnabled("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */,
|
|
2626
2648
|
// this is a special case where we want to use the vnode component's
|
|
@@ -2629,16 +2651,18 @@ var Vue = (function () {
|
|
|
2629
2651
|
{ type })) {
|
|
2630
2652
|
return;
|
|
2631
2653
|
}
|
|
2632
|
-
if (!warnedTypes.has(
|
|
2654
|
+
if (!warnedTypes.has(comp)) {
|
|
2633
2655
|
pushWarningContext(vnode);
|
|
2634
|
-
warnDeprecation("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, { type },
|
|
2656
|
+
warnDeprecation("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, { type }, comp);
|
|
2635
2657
|
popWarningContext();
|
|
2636
|
-
warnedTypes.add(
|
|
2658
|
+
warnedTypes.add(comp);
|
|
2637
2659
|
}
|
|
2638
2660
|
// v3 compiled model code -> v2 compat props
|
|
2639
2661
|
// modelValue -> value
|
|
2640
2662
|
// onUpdate:modelValue -> onModelCompat:input
|
|
2641
|
-
const
|
|
2663
|
+
const model = comp.model || {};
|
|
2664
|
+
applyModelFromMixins(model, comp.mixins);
|
|
2665
|
+
const { prop = 'value', event = 'input' } = model;
|
|
2642
2666
|
if (prop !== 'modelValue') {
|
|
2643
2667
|
props[prop] = props.modelValue;
|
|
2644
2668
|
delete props.modelValue;
|
|
@@ -2651,6 +2675,16 @@ var Vue = (function () {
|
|
|
2651
2675
|
delete props['onUpdate:modelValue'];
|
|
2652
2676
|
}
|
|
2653
2677
|
}
|
|
2678
|
+
function applyModelFromMixins(model, mixins) {
|
|
2679
|
+
if (mixins) {
|
|
2680
|
+
mixins.forEach(m => {
|
|
2681
|
+
if (m.model)
|
|
2682
|
+
extend(model, m.model);
|
|
2683
|
+
if (m.mixins)
|
|
2684
|
+
applyModelFromMixins(model, m.mixins);
|
|
2685
|
+
});
|
|
2686
|
+
}
|
|
2687
|
+
}
|
|
2654
2688
|
function compatModelEmit(instance, event, args) {
|
|
2655
2689
|
if (!isCompatEnabled("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, instance)) {
|
|
2656
2690
|
return;
|
|
@@ -3653,7 +3687,7 @@ var Vue = (function () {
|
|
|
3653
3687
|
if (instance) {
|
|
3654
3688
|
// #2400
|
|
3655
3689
|
// to support `app.use` plugins,
|
|
3656
|
-
// fallback to appContext's `provides` if the
|
|
3690
|
+
// fallback to appContext's `provides` if the instance is at root
|
|
3657
3691
|
const provides = instance.parent == null
|
|
3658
3692
|
? instance.vnode.appContext && instance.vnode.appContext.provides
|
|
3659
3693
|
: instance.parent.provides;
|
|
@@ -3719,7 +3753,7 @@ var Vue = (function () {
|
|
|
3719
3753
|
let isMultiSource = false;
|
|
3720
3754
|
if (isRef(source)) {
|
|
3721
3755
|
getter = () => source.value;
|
|
3722
|
-
forceTrigger =
|
|
3756
|
+
forceTrigger = isShallow(source);
|
|
3723
3757
|
}
|
|
3724
3758
|
else if (isReactive(source)) {
|
|
3725
3759
|
getter = () => source;
|
|
@@ -4613,7 +4647,7 @@ var Vue = (function () {
|
|
|
4613
4647
|
return pattern.some((p) => matches(p, name));
|
|
4614
4648
|
}
|
|
4615
4649
|
else if (isString(pattern)) {
|
|
4616
|
-
return pattern.split(',').
|
|
4650
|
+
return pattern.split(',').includes(name);
|
|
4617
4651
|
}
|
|
4618
4652
|
else if (pattern.test) {
|
|
4619
4653
|
return pattern.test(name);
|
|
@@ -4881,7 +4915,7 @@ var Vue = (function () {
|
|
|
4881
4915
|
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
4882
4916
|
}
|
|
4883
4917
|
;
|
|
4884
|
-
const c = computed({
|
|
4918
|
+
const c = computed$1({
|
|
4885
4919
|
get,
|
|
4886
4920
|
set
|
|
4887
4921
|
});
|
|
@@ -5362,7 +5396,9 @@ var Vue = (function () {
|
|
|
5362
5396
|
// attrs point to the same object so it should already have been updated.
|
|
5363
5397
|
if (attrs !== rawCurrentProps) {
|
|
5364
5398
|
for (const key in attrs) {
|
|
5365
|
-
if (!rawProps ||
|
|
5399
|
+
if (!rawProps ||
|
|
5400
|
+
(!hasOwn(rawProps, key) &&
|
|
5401
|
+
(!hasOwn(rawProps, key + 'Native')))) {
|
|
5366
5402
|
delete attrs[key];
|
|
5367
5403
|
hasAttrsChanged = true;
|
|
5368
5404
|
}
|
|
@@ -5865,7 +5901,6 @@ var Vue = (function () {
|
|
|
5865
5901
|
[bar, this.y]
|
|
5866
5902
|
])
|
|
5867
5903
|
*/
|
|
5868
|
-
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
5869
5904
|
function validateDirectiveName(name) {
|
|
5870
5905
|
if (isBuiltInDirective(name)) {
|
|
5871
5906
|
warn$1('Do not use built-in directive ids as custom directive id: ' + name);
|
|
@@ -6000,7 +6035,7 @@ var Vue = (function () {
|
|
|
6000
6035
|
return vm;
|
|
6001
6036
|
}
|
|
6002
6037
|
}
|
|
6003
|
-
Vue.version = "3.2.
|
|
6038
|
+
Vue.version = `2.6.14-compat:${"3.2.31"}`;
|
|
6004
6039
|
Vue.config = singletonApp.config;
|
|
6005
6040
|
Vue.use = (p, ...options) => {
|
|
6006
6041
|
if (p && isFunction(p.install)) {
|
|
@@ -6824,7 +6859,8 @@ var Vue = (function () {
|
|
|
6824
6859
|
// e.g. <option :value="obj">, <input type="checkbox" :true-value="1">
|
|
6825
6860
|
const forcePatchValue = (type === 'input' && dirs) || type === 'option';
|
|
6826
6861
|
// skip props & children if this is hoisted static nodes
|
|
6827
|
-
|
|
6862
|
+
// #5405 in dev, always hydrate children for HMR
|
|
6863
|
+
{
|
|
6828
6864
|
if (dirs) {
|
|
6829
6865
|
invokeDirectiveHook(vnode, null, parentComponent, 'created');
|
|
6830
6866
|
}
|
|
@@ -6989,6 +7025,7 @@ var Vue = (function () {
|
|
|
6989
7025
|
return [hydrate, hydrateNode];
|
|
6990
7026
|
}
|
|
6991
7027
|
|
|
7028
|
+
/* eslint-disable no-restricted-globals */
|
|
6992
7029
|
let supported;
|
|
6993
7030
|
let perf;
|
|
6994
7031
|
function startMeasure(instance, type) {
|
|
@@ -7016,7 +7053,6 @@ var Vue = (function () {
|
|
|
7016
7053
|
if (supported !== undefined) {
|
|
7017
7054
|
return supported;
|
|
7018
7055
|
}
|
|
7019
|
-
/* eslint-disable no-restricted-globals */
|
|
7020
7056
|
if (typeof window !== 'undefined' && window.performance) {
|
|
7021
7057
|
supported = true;
|
|
7022
7058
|
perf = window.performance;
|
|
@@ -7024,7 +7060,6 @@ var Vue = (function () {
|
|
|
7024
7060
|
else {
|
|
7025
7061
|
supported = false;
|
|
7026
7062
|
}
|
|
7027
|
-
/* eslint-enable no-restricted-globals */
|
|
7028
7063
|
return supported;
|
|
7029
7064
|
}
|
|
7030
7065
|
|
|
@@ -9270,7 +9305,7 @@ var Vue = (function () {
|
|
|
9270
9305
|
shapeFlag: vnode.shapeFlag,
|
|
9271
9306
|
// if the vnode is cloned with extra props, we can no longer assume its
|
|
9272
9307
|
// existing patch flag to be reliable and need to add the FULL_PROPS flag.
|
|
9273
|
-
// note:
|
|
9308
|
+
// note: preserve flag for fragments since they use the flag for children
|
|
9274
9309
|
// fast paths only.
|
|
9275
9310
|
patchFlag: extraProps && vnode.type !== Fragment
|
|
9276
9311
|
? patchFlag === -1 // hoisted node
|
|
@@ -9435,7 +9470,8 @@ var Vue = (function () {
|
|
|
9435
9470
|
else if (isOn(key)) {
|
|
9436
9471
|
const existing = ret[key];
|
|
9437
9472
|
const incoming = toMerge[key];
|
|
9438
|
-
if (
|
|
9473
|
+
if (incoming &&
|
|
9474
|
+
existing !== incoming &&
|
|
9439
9475
|
!(isArray(existing) && existing.includes(incoming))) {
|
|
9440
9476
|
ret[key] = existing
|
|
9441
9477
|
? [].concat(existing, incoming)
|
|
@@ -9711,7 +9747,7 @@ var Vue = (function () {
|
|
|
9711
9747
|
}
|
|
9712
9748
|
function isKeyNotMatch(expect, actual) {
|
|
9713
9749
|
if (isArray(expect)) {
|
|
9714
|
-
return expect.
|
|
9750
|
+
return !expect.includes(actual);
|
|
9715
9751
|
}
|
|
9716
9752
|
else {
|
|
9717
9753
|
return expect !== actual;
|
|
@@ -9790,7 +9826,7 @@ var Vue = (function () {
|
|
|
9790
9826
|
extend(map, {
|
|
9791
9827
|
// needed by many libs / render fns
|
|
9792
9828
|
$vnode: i => i.vnode,
|
|
9793
|
-
// inject
|
|
9829
|
+
// inject additional properties into $options for compat
|
|
9794
9830
|
// e.g. vuex needs this.$options.parent
|
|
9795
9831
|
$options: i => {
|
|
9796
9832
|
const res = extend({}, resolveMergedOptions(i));
|
|
@@ -9978,9 +10014,11 @@ var Vue = (function () {
|
|
|
9978
10014
|
const { data, setupState, ctx } = instance;
|
|
9979
10015
|
if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {
|
|
9980
10016
|
setupState[key] = value;
|
|
10017
|
+
return true;
|
|
9981
10018
|
}
|
|
9982
10019
|
else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
|
|
9983
10020
|
data[key] = value;
|
|
10021
|
+
return true;
|
|
9984
10022
|
}
|
|
9985
10023
|
else if (hasOwn(instance.props, key)) {
|
|
9986
10024
|
warn$1(`Attempting to mutate prop "${key}". Props are readonly.`, instance);
|
|
@@ -10014,6 +10052,15 @@ var Vue = (function () {
|
|
|
10014
10052
|
hasOwn(ctx, key) ||
|
|
10015
10053
|
hasOwn(publicPropertiesMap, key) ||
|
|
10016
10054
|
hasOwn(appContext.config.globalProperties, key));
|
|
10055
|
+
},
|
|
10056
|
+
defineProperty(target, key, descriptor) {
|
|
10057
|
+
if (descriptor.get != null) {
|
|
10058
|
+
this.set(target, key, descriptor.get(), null);
|
|
10059
|
+
}
|
|
10060
|
+
else if (descriptor.value != null) {
|
|
10061
|
+
this.set(target, key, descriptor.value, null);
|
|
10062
|
+
}
|
|
10063
|
+
return Reflect.defineProperty(target, key, descriptor);
|
|
10017
10064
|
}
|
|
10018
10065
|
};
|
|
10019
10066
|
{
|
|
@@ -10518,7 +10565,7 @@ var Vue = (function () {
|
|
|
10518
10565
|
* instance properties when it is accessed by a parent component via template
|
|
10519
10566
|
* refs.
|
|
10520
10567
|
*
|
|
10521
|
-
* `<script setup>` components are closed by default - i.e.
|
|
10568
|
+
* `<script setup>` components are closed by default - i.e. variables inside
|
|
10522
10569
|
* the `<script setup>` scope is not exposed to parent unless explicitly exposed
|
|
10523
10570
|
* via `defineExpose`.
|
|
10524
10571
|
*
|
|
@@ -10716,7 +10763,7 @@ var Vue = (function () {
|
|
|
10716
10763
|
return [
|
|
10717
10764
|
'div',
|
|
10718
10765
|
{},
|
|
10719
|
-
['span', vueStyle, 'Reactive'],
|
|
10766
|
+
['span', vueStyle, isShallow(obj) ? 'ShallowReactive' : 'Reactive'],
|
|
10720
10767
|
'<',
|
|
10721
10768
|
formatValue(obj),
|
|
10722
10769
|
`>${isReadonly(obj) ? ` (readonly)` : ``}`
|
|
@@ -10726,7 +10773,7 @@ var Vue = (function () {
|
|
|
10726
10773
|
return [
|
|
10727
10774
|
'div',
|
|
10728
10775
|
{},
|
|
10729
|
-
['span', vueStyle, 'Readonly'],
|
|
10776
|
+
['span', vueStyle, isShallow(obj) ? 'ShallowReadonly' : 'Readonly'],
|
|
10730
10777
|
'<',
|
|
10731
10778
|
formatValue(obj),
|
|
10732
10779
|
'>'
|
|
@@ -10855,7 +10902,7 @@ var Vue = (function () {
|
|
|
10855
10902
|
}
|
|
10856
10903
|
}
|
|
10857
10904
|
function genRefFlag(v) {
|
|
10858
|
-
if (v
|
|
10905
|
+
if (isShallow(v)) {
|
|
10859
10906
|
return `ShallowRef`;
|
|
10860
10907
|
}
|
|
10861
10908
|
if (v.effect) {
|
|
@@ -10899,7 +10946,7 @@ var Vue = (function () {
|
|
|
10899
10946
|
}
|
|
10900
10947
|
|
|
10901
10948
|
// Core API ------------------------------------------------------------------
|
|
10902
|
-
const version = "3.2.
|
|
10949
|
+
const version = "3.2.31";
|
|
10903
10950
|
/**
|
|
10904
10951
|
* SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
|
|
10905
10952
|
* @internal
|
|
@@ -10980,7 +11027,10 @@ var Vue = (function () {
|
|
|
10980
11027
|
insertStaticContent(content, parent, anchor, isSVG, start, end) {
|
|
10981
11028
|
// <parent> before | first ... last | anchor </parent>
|
|
10982
11029
|
const before = anchor ? anchor.previousSibling : parent.lastChild;
|
|
10983
|
-
|
|
11030
|
+
// #5308 can only take cached path if:
|
|
11031
|
+
// - has a single root node
|
|
11032
|
+
// - nextSibling info is still available
|
|
11033
|
+
if (start && (start === end || start.nextSibling)) {
|
|
10984
11034
|
// cached
|
|
10985
11035
|
while (true) {
|
|
10986
11036
|
parent.insertBefore(start.cloneNode(true), anchor);
|
|
@@ -11330,7 +11380,7 @@ var Vue = (function () {
|
|
|
11330
11380
|
originalStop.call(e);
|
|
11331
11381
|
e._stopped = true;
|
|
11332
11382
|
};
|
|
11333
|
-
return value.map(fn => (e) => !e._stopped && fn(e));
|
|
11383
|
+
return value.map(fn => (e) => !e._stopped && fn && fn(e));
|
|
11334
11384
|
}
|
|
11335
11385
|
else {
|
|
11336
11386
|
return value;
|
|
@@ -12692,6 +12742,7 @@ var Vue = (function () {
|
|
|
12692
12742
|
isProxy: isProxy,
|
|
12693
12743
|
isReactive: isReactive,
|
|
12694
12744
|
isReadonly: isReadonly,
|
|
12745
|
+
isShallow: isShallow,
|
|
12695
12746
|
customRef: customRef,
|
|
12696
12747
|
triggerRef: triggerRef,
|
|
12697
12748
|
shallowRef: shallowRef,
|
|
@@ -13467,13 +13518,13 @@ var Vue = (function () {
|
|
|
13467
13518
|
message: `Platform-native elements with "is" prop will no longer be ` +
|
|
13468
13519
|
`treated as components in Vue 3 unless the "is" value is explicitly ` +
|
|
13469
13520
|
`prefixed with "vue:".`,
|
|
13470
|
-
link: `https://v3.vuejs.org/
|
|
13521
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
|
|
13471
13522
|
},
|
|
13472
13523
|
["COMPILER_V_BIND_SYNC" /* COMPILER_V_BIND_SYNC */]: {
|
|
13473
13524
|
message: key => `.sync modifier for v-bind has been removed. Use v-model with ` +
|
|
13474
13525
|
`argument instead. \`v-bind:${key}.sync\` should be changed to ` +
|
|
13475
13526
|
`\`v-model:${key}\`.`,
|
|
13476
|
-
link: `https://v3.vuejs.org/
|
|
13527
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
13477
13528
|
},
|
|
13478
13529
|
["COMPILER_V_BIND_PROP" /* COMPILER_V_BIND_PROP */]: {
|
|
13479
13530
|
message: `.prop modifier for v-bind has been removed and no longer necessary. ` +
|
|
@@ -13485,11 +13536,11 @@ var Vue = (function () {
|
|
|
13485
13536
|
`that appears before v-bind in the case of conflict. ` +
|
|
13486
13537
|
`To retain 2.x behavior, move v-bind to make it the first attribute. ` +
|
|
13487
13538
|
`You can also suppress this warning if the usage is intended.`,
|
|
13488
|
-
link: `https://v3.vuejs.org/
|
|
13539
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
|
|
13489
13540
|
},
|
|
13490
13541
|
["COMPILER_V_ON_NATIVE" /* COMPILER_V_ON_NATIVE */]: {
|
|
13491
13542
|
message: `.native modifier for v-on has been removed as is no longer necessary.`,
|
|
13492
|
-
link: `https://v3.vuejs.org/
|
|
13543
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
|
|
13493
13544
|
},
|
|
13494
13545
|
["COMPILER_V_IF_V_FOR_PRECEDENCE" /* COMPILER_V_IF_V_FOR_PRECEDENCE */]: {
|
|
13495
13546
|
message: `v-if / v-for precedence when used on the same element has changed ` +
|
|
@@ -13497,7 +13548,7 @@ var Vue = (function () {
|
|
|
13497
13548
|
`access to v-for scope variables. It is best to avoid the ambiguity ` +
|
|
13498
13549
|
`with <template> tags or use a computed property that filters v-for ` +
|
|
13499
13550
|
`data source.`,
|
|
13500
|
-
link: `https://v3.vuejs.org/
|
|
13551
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
|
|
13501
13552
|
},
|
|
13502
13553
|
["COMPILER_NATIVE_TEMPLATE" /* COMPILER_NATIVE_TEMPLATE */]: {
|
|
13503
13554
|
message: `<template> with no special directives will render as a native template ` +
|
|
@@ -13505,13 +13556,13 @@ var Vue = (function () {
|
|
|
13505
13556
|
},
|
|
13506
13557
|
["COMPILER_INLINE_TEMPLATE" /* COMPILER_INLINE_TEMPLATE */]: {
|
|
13507
13558
|
message: `"inline-template" has been removed in Vue 3.`,
|
|
13508
|
-
link: `https://v3.vuejs.org/
|
|
13559
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
|
|
13509
13560
|
},
|
|
13510
13561
|
["COMPILER_FILTER" /* COMPILER_FILTERS */]: {
|
|
13511
13562
|
message: `filters have been removed in Vue 3. ` +
|
|
13512
13563
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
13513
13564
|
`Use method calls or computed properties instead.`,
|
|
13514
|
-
link: `https://v3.vuejs.org/
|
|
13565
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
13515
13566
|
}
|
|
13516
13567
|
};
|
|
13517
13568
|
function getCompatValue(key, context) {
|
|
@@ -14041,7 +14092,7 @@ var Vue = (function () {
|
|
|
14041
14092
|
}
|
|
14042
14093
|
const attr = parseAttribute(context, attributeNames);
|
|
14043
14094
|
// Trim whitespace between class
|
|
14044
|
-
// https://github.com/vuejs/
|
|
14095
|
+
// https://github.com/vuejs/core/issues/4251
|
|
14045
14096
|
if (attr.type === 6 /* ATTRIBUTE */ &&
|
|
14046
14097
|
attr.value &&
|
|
14047
14098
|
attr.name === 'class') {
|
|
@@ -14277,7 +14328,7 @@ var Vue = (function () {
|
|
|
14277
14328
|
advanceBy(context, length);
|
|
14278
14329
|
if (mode === 2 /* RAWTEXT */ ||
|
|
14279
14330
|
mode === 3 /* CDATA */ ||
|
|
14280
|
-
rawText.
|
|
14331
|
+
!rawText.includes('&')) {
|
|
14281
14332
|
return rawText;
|
|
14282
14333
|
}
|
|
14283
14334
|
else {
|
|
@@ -15798,6 +15849,7 @@ var Vue = (function () {
|
|
|
15798
15849
|
const renderExp = createCallExpression(helper(RENDER_LIST), [
|
|
15799
15850
|
forNode.source
|
|
15800
15851
|
]);
|
|
15852
|
+
const isTemplate = isTemplateNode(node);
|
|
15801
15853
|
const memo = findDir(node, 'memo');
|
|
15802
15854
|
const keyProp = findProp(node, `key`);
|
|
15803
15855
|
const keyExp = keyProp &&
|
|
@@ -15817,7 +15869,6 @@ var Vue = (function () {
|
|
|
15817
15869
|
return () => {
|
|
15818
15870
|
// finish the codegen now that all children have been traversed
|
|
15819
15871
|
let childBlock;
|
|
15820
|
-
const isTemplate = isTemplateNode(node);
|
|
15821
15872
|
const { children } = forNode;
|
|
15822
15873
|
// check <template v-for> key placement
|
|
15823
15874
|
if (isTemplate) {
|
|
@@ -16619,7 +16670,7 @@ var Vue = (function () {
|
|
|
16619
16670
|
}
|
|
16620
16671
|
}
|
|
16621
16672
|
}
|
|
16622
|
-
else {
|
|
16673
|
+
else if (!isBuiltInDirective(name)) {
|
|
16623
16674
|
// no built-in transform, this is a user custom directive.
|
|
16624
16675
|
runtimeDirectives.push(prop);
|
|
16625
16676
|
// custom dirs may use beforeUpdate so they need to force blocks
|