@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-browser.js
CHANGED
|
@@ -277,13 +277,15 @@ function looseIndexOf(arr, val) {
|
|
|
277
277
|
* @private
|
|
278
278
|
*/
|
|
279
279
|
const toDisplayString = (val) => {
|
|
280
|
-
return val
|
|
281
|
-
?
|
|
282
|
-
:
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
280
|
+
return isString(val)
|
|
281
|
+
? val
|
|
282
|
+
: val == null
|
|
283
|
+
? ''
|
|
284
|
+
: isArray(val) ||
|
|
285
|
+
(isObject(val) &&
|
|
286
|
+
(val.toString === objectToString || !isFunction(val.toString)))
|
|
287
|
+
? JSON.stringify(val, replacer, 2)
|
|
288
|
+
: String(val);
|
|
287
289
|
};
|
|
288
290
|
const replacer = (_key, val) => {
|
|
289
291
|
// can't use isRef here since @vue/shared has no deps
|
|
@@ -357,6 +359,7 @@ const isReservedProp = /*#__PURE__*/ makeMap(
|
|
|
357
359
|
'onVnodeBeforeMount,onVnodeMounted,' +
|
|
358
360
|
'onVnodeBeforeUpdate,onVnodeUpdated,' +
|
|
359
361
|
'onVnodeBeforeUnmount,onVnodeUnmounted');
|
|
362
|
+
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
360
363
|
const cacheStringFunction = (fn) => {
|
|
361
364
|
const cache = Object.create(null);
|
|
362
365
|
return ((str) => {
|
|
@@ -422,11 +425,19 @@ function warn(msg, ...args) {
|
|
|
422
425
|
}
|
|
423
426
|
|
|
424
427
|
let activeEffectScope;
|
|
425
|
-
const effectScopeStack = [];
|
|
426
428
|
class EffectScope {
|
|
427
429
|
constructor(detached = false) {
|
|
430
|
+
/**
|
|
431
|
+
* @internal
|
|
432
|
+
*/
|
|
428
433
|
this.active = true;
|
|
434
|
+
/**
|
|
435
|
+
* @internal
|
|
436
|
+
*/
|
|
429
437
|
this.effects = [];
|
|
438
|
+
/**
|
|
439
|
+
* @internal
|
|
440
|
+
*/
|
|
430
441
|
this.cleanups = [];
|
|
431
442
|
if (!detached && activeEffectScope) {
|
|
432
443
|
this.parent = activeEffectScope;
|
|
@@ -436,36 +447,46 @@ class EffectScope {
|
|
|
436
447
|
}
|
|
437
448
|
run(fn) {
|
|
438
449
|
if (this.active) {
|
|
450
|
+
const currentEffectScope = activeEffectScope;
|
|
439
451
|
try {
|
|
440
|
-
this
|
|
452
|
+
activeEffectScope = this;
|
|
441
453
|
return fn();
|
|
442
454
|
}
|
|
443
455
|
finally {
|
|
444
|
-
|
|
456
|
+
activeEffectScope = currentEffectScope;
|
|
445
457
|
}
|
|
446
458
|
}
|
|
447
459
|
else {
|
|
448
460
|
warn(`cannot run an inactive effect scope.`);
|
|
449
461
|
}
|
|
450
462
|
}
|
|
463
|
+
/**
|
|
464
|
+
* This should only be called on non-detached scopes
|
|
465
|
+
* @internal
|
|
466
|
+
*/
|
|
451
467
|
on() {
|
|
452
|
-
|
|
453
|
-
effectScopeStack.push(this);
|
|
454
|
-
activeEffectScope = this;
|
|
455
|
-
}
|
|
468
|
+
activeEffectScope = this;
|
|
456
469
|
}
|
|
470
|
+
/**
|
|
471
|
+
* This should only be called on non-detached scopes
|
|
472
|
+
* @internal
|
|
473
|
+
*/
|
|
457
474
|
off() {
|
|
458
|
-
|
|
459
|
-
effectScopeStack.pop();
|
|
460
|
-
activeEffectScope = effectScopeStack[effectScopeStack.length - 1];
|
|
461
|
-
}
|
|
475
|
+
activeEffectScope = this.parent;
|
|
462
476
|
}
|
|
463
477
|
stop(fromParent) {
|
|
464
478
|
if (this.active) {
|
|
465
|
-
|
|
466
|
-
this.
|
|
479
|
+
let i, l;
|
|
480
|
+
for (i = 0, l = this.effects.length; i < l; i++) {
|
|
481
|
+
this.effects[i].stop();
|
|
482
|
+
}
|
|
483
|
+
for (i = 0, l = this.cleanups.length; i < l; i++) {
|
|
484
|
+
this.cleanups[i]();
|
|
485
|
+
}
|
|
467
486
|
if (this.scopes) {
|
|
468
|
-
this.scopes.
|
|
487
|
+
for (i = 0, l = this.scopes.length; i < l; i++) {
|
|
488
|
+
this.scopes[i].stop(true);
|
|
489
|
+
}
|
|
469
490
|
}
|
|
470
491
|
// nested scope, dereference from parent to avoid memory leaks
|
|
471
492
|
if (this.parent && !fromParent) {
|
|
@@ -483,8 +504,7 @@ class EffectScope {
|
|
|
483
504
|
function effectScope(detached) {
|
|
484
505
|
return new EffectScope(detached);
|
|
485
506
|
}
|
|
486
|
-
function recordEffectScope(effect, scope) {
|
|
487
|
-
scope = scope || activeEffectScope;
|
|
507
|
+
function recordEffectScope(effect, scope = activeEffectScope) {
|
|
488
508
|
if (scope && scope.active) {
|
|
489
509
|
scope.effects.push(effect);
|
|
490
510
|
}
|
|
@@ -547,7 +567,6 @@ let trackOpBit = 1;
|
|
|
547
567
|
* When recursion depth is greater, fall back to using a full cleanup.
|
|
548
568
|
*/
|
|
549
569
|
const maxMarkerBits = 30;
|
|
550
|
-
const effectStack = [];
|
|
551
570
|
let activeEffect;
|
|
552
571
|
const ITERATE_KEY = Symbol('iterate' );
|
|
553
572
|
const MAP_KEY_ITERATE_KEY = Symbol('Map key iterate' );
|
|
@@ -557,35 +576,42 @@ class ReactiveEffect {
|
|
|
557
576
|
this.scheduler = scheduler;
|
|
558
577
|
this.active = true;
|
|
559
578
|
this.deps = [];
|
|
579
|
+
this.parent = undefined;
|
|
560
580
|
recordEffectScope(this, scope);
|
|
561
581
|
}
|
|
562
582
|
run() {
|
|
563
583
|
if (!this.active) {
|
|
564
584
|
return this.fn();
|
|
565
585
|
}
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
if (effectTrackDepth <= maxMarkerBits) {
|
|
572
|
-
initDepMarkers(this);
|
|
573
|
-
}
|
|
574
|
-
else {
|
|
575
|
-
cleanupEffect(this);
|
|
576
|
-
}
|
|
577
|
-
return this.fn();
|
|
586
|
+
let parent = activeEffect;
|
|
587
|
+
let lastShouldTrack = shouldTrack;
|
|
588
|
+
while (parent) {
|
|
589
|
+
if (parent === this) {
|
|
590
|
+
return;
|
|
578
591
|
}
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
592
|
+
parent = parent.parent;
|
|
593
|
+
}
|
|
594
|
+
try {
|
|
595
|
+
this.parent = activeEffect;
|
|
596
|
+
activeEffect = this;
|
|
597
|
+
shouldTrack = true;
|
|
598
|
+
trackOpBit = 1 << ++effectTrackDepth;
|
|
599
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
600
|
+
initDepMarkers(this);
|
|
601
|
+
}
|
|
602
|
+
else {
|
|
603
|
+
cleanupEffect(this);
|
|
588
604
|
}
|
|
605
|
+
return this.fn();
|
|
606
|
+
}
|
|
607
|
+
finally {
|
|
608
|
+
if (effectTrackDepth <= maxMarkerBits) {
|
|
609
|
+
finalizeDepMarkers(this);
|
|
610
|
+
}
|
|
611
|
+
trackOpBit = 1 << --effectTrackDepth;
|
|
612
|
+
activeEffect = this.parent;
|
|
613
|
+
shouldTrack = lastShouldTrack;
|
|
614
|
+
this.parent = undefined;
|
|
589
615
|
}
|
|
590
616
|
}
|
|
591
617
|
stop() {
|
|
@@ -633,32 +659,24 @@ function pauseTracking() {
|
|
|
633
659
|
trackStack.push(shouldTrack);
|
|
634
660
|
shouldTrack = false;
|
|
635
661
|
}
|
|
636
|
-
function enableTracking() {
|
|
637
|
-
trackStack.push(shouldTrack);
|
|
638
|
-
shouldTrack = true;
|
|
639
|
-
}
|
|
640
662
|
function resetTracking() {
|
|
641
663
|
const last = trackStack.pop();
|
|
642
664
|
shouldTrack = last === undefined ? true : last;
|
|
643
665
|
}
|
|
644
666
|
function track(target, type, key) {
|
|
645
|
-
if (
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
667
|
+
if (shouldTrack && activeEffect) {
|
|
668
|
+
let depsMap = targetMap.get(target);
|
|
669
|
+
if (!depsMap) {
|
|
670
|
+
targetMap.set(target, (depsMap = new Map()));
|
|
671
|
+
}
|
|
672
|
+
let dep = depsMap.get(key);
|
|
673
|
+
if (!dep) {
|
|
674
|
+
depsMap.set(key, (dep = createDep()));
|
|
675
|
+
}
|
|
676
|
+
const eventInfo = { effect: activeEffect, target, type, key }
|
|
677
|
+
;
|
|
678
|
+
trackEffects(dep, eventInfo);
|
|
655
679
|
}
|
|
656
|
-
const eventInfo = { effect: activeEffect, target, type, key }
|
|
657
|
-
;
|
|
658
|
-
trackEffects(dep, eventInfo);
|
|
659
|
-
}
|
|
660
|
-
function isTracking() {
|
|
661
|
-
return shouldTrack && activeEffect !== undefined;
|
|
662
680
|
}
|
|
663
681
|
function trackEffects(dep, debuggerEventExtraInfo) {
|
|
664
682
|
let shouldTrack = false;
|
|
@@ -676,9 +694,7 @@ function trackEffects(dep, debuggerEventExtraInfo) {
|
|
|
676
694
|
dep.add(activeEffect);
|
|
677
695
|
activeEffect.deps.push(dep);
|
|
678
696
|
if (activeEffect.onTrack) {
|
|
679
|
-
activeEffect.onTrack(Object.assign({
|
|
680
|
-
effect: activeEffect
|
|
681
|
-
}, debuggerEventExtraInfo));
|
|
697
|
+
activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));
|
|
682
698
|
}
|
|
683
699
|
}
|
|
684
700
|
}
|
|
@@ -1343,13 +1359,10 @@ const toReactive = (value) => isObject(value) ? reactive(value) : value;
|
|
|
1343
1359
|
const toReadonly = (value) => isObject(value) ? readonly(value) : value;
|
|
1344
1360
|
|
|
1345
1361
|
function trackRefValue(ref) {
|
|
1346
|
-
if (
|
|
1362
|
+
if (shouldTrack && activeEffect) {
|
|
1347
1363
|
ref = toRaw(ref);
|
|
1348
|
-
if (!ref.dep) {
|
|
1349
|
-
ref.dep = createDep();
|
|
1350
|
-
}
|
|
1351
1364
|
{
|
|
1352
|
-
trackEffects(ref.dep, {
|
|
1365
|
+
trackEffects(ref.dep || (ref.dep = createDep()), {
|
|
1353
1366
|
target: ref,
|
|
1354
1367
|
type: "get" /* GET */,
|
|
1355
1368
|
key: 'value'
|
|
@@ -1371,7 +1384,7 @@ function triggerRefValue(ref, newVal) {
|
|
|
1371
1384
|
}
|
|
1372
1385
|
}
|
|
1373
1386
|
function isRef(r) {
|
|
1374
|
-
return
|
|
1387
|
+
return !!(r && r.__v_isRef === true);
|
|
1375
1388
|
}
|
|
1376
1389
|
function ref(value) {
|
|
1377
1390
|
return createRef(value, false);
|
|
@@ -2182,23 +2195,23 @@ const deprecationData = {
|
|
|
2182
2195
|
["GLOBAL_MOUNT" /* GLOBAL_MOUNT */]: {
|
|
2183
2196
|
message: `The global app bootstrapping API has changed: vm.$mount() and the "el" ` +
|
|
2184
2197
|
`option have been removed. Use createApp(RootComponent).mount() instead.`,
|
|
2185
|
-
link: `https://v3.vuejs.org/
|
|
2198
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance`
|
|
2186
2199
|
},
|
|
2187
2200
|
["GLOBAL_MOUNT_CONTAINER" /* GLOBAL_MOUNT_CONTAINER */]: {
|
|
2188
2201
|
message: `Vue detected directives on the mount container. ` +
|
|
2189
2202
|
`In Vue 3, the container is no longer considered part of the template ` +
|
|
2190
2203
|
`and will not be processed/replaced.`,
|
|
2191
|
-
link: `https://v3.vuejs.org/
|
|
2204
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/mount-changes.html`
|
|
2192
2205
|
},
|
|
2193
2206
|
["GLOBAL_EXTEND" /* GLOBAL_EXTEND */]: {
|
|
2194
2207
|
message: `Vue.extend() has been removed in Vue 3. ` +
|
|
2195
2208
|
`Use defineComponent() instead.`,
|
|
2196
|
-
link: `https://
|
|
2209
|
+
link: `https://vuejs.org/api/general.html#definecomponent`
|
|
2197
2210
|
},
|
|
2198
2211
|
["GLOBAL_PROTOTYPE" /* GLOBAL_PROTOTYPE */]: {
|
|
2199
2212
|
message: `Vue.prototype is no longer available in Vue 3. ` +
|
|
2200
2213
|
`Use app.config.globalProperties instead.`,
|
|
2201
|
-
link: `https://v3.vuejs.org/
|
|
2214
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties`
|
|
2202
2215
|
},
|
|
2203
2216
|
["GLOBAL_SET" /* GLOBAL_SET */]: {
|
|
2204
2217
|
message: `Vue.set() has been removed as it is no longer needed in Vue 3. ` +
|
|
@@ -2211,7 +2224,7 @@ const deprecationData = {
|
|
|
2211
2224
|
["GLOBAL_OBSERVABLE" /* GLOBAL_OBSERVABLE */]: {
|
|
2212
2225
|
message: `Vue.observable() has been removed. ` +
|
|
2213
2226
|
`Use \`import { reactive } from "vue"\` from Composition API instead.`,
|
|
2214
|
-
link: `https://
|
|
2227
|
+
link: `https://vuejs.org/api/reactivity-core.html#reactive`
|
|
2215
2228
|
},
|
|
2216
2229
|
["GLOBAL_PRIVATE_UTIL" /* GLOBAL_PRIVATE_UTIL */]: {
|
|
2217
2230
|
message: `Vue.util has been removed. Please refactor to avoid its usage ` +
|
|
@@ -2230,11 +2243,11 @@ const deprecationData = {
|
|
|
2230
2243
|
["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
|
|
2231
2244
|
message: `config.keyCodes has been removed. ` +
|
|
2232
2245
|
`In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,
|
|
2233
|
-
link: `https://v3.vuejs.org/
|
|
2246
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2234
2247
|
},
|
|
2235
2248
|
["CONFIG_PRODUCTION_TIP" /* CONFIG_PRODUCTION_TIP */]: {
|
|
2236
2249
|
message: `config.productionTip has been removed.`,
|
|
2237
|
-
link: `https://v3.vuejs.org/
|
|
2250
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed`
|
|
2238
2251
|
},
|
|
2239
2252
|
["CONFIG_IGNORED_ELEMENTS" /* CONFIG_IGNORED_ELEMENTS */]: {
|
|
2240
2253
|
message: () => {
|
|
@@ -2247,7 +2260,7 @@ const deprecationData = {
|
|
|
2247
2260
|
}
|
|
2248
2261
|
return msg;
|
|
2249
2262
|
},
|
|
2250
|
-
link: `https://v3.vuejs.org/
|
|
2263
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement`
|
|
2251
2264
|
},
|
|
2252
2265
|
["CONFIG_WHITESPACE" /* CONFIG_WHITESPACE */]: {
|
|
2253
2266
|
// this warning is only relevant in the full build when using runtime
|
|
@@ -2270,12 +2283,12 @@ const deprecationData = {
|
|
|
2270
2283
|
},
|
|
2271
2284
|
["INSTANCE_DESTROY" /* INSTANCE_DESTROY */]: {
|
|
2272
2285
|
message: `vm.$destroy() has been removed. Use app.unmount() instead.`,
|
|
2273
|
-
link: `https://
|
|
2286
|
+
link: `https://vuejs.org/api/application.html#app-unmount`
|
|
2274
2287
|
},
|
|
2275
2288
|
["INSTANCE_EVENT_EMITTER" /* INSTANCE_EVENT_EMITTER */]: {
|
|
2276
2289
|
message: `vm.$on/$once/$off() have been removed. ` +
|
|
2277
2290
|
`Use an external event emitter library instead.`,
|
|
2278
|
-
link: `https://v3.vuejs.org/
|
|
2291
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/events-api.html`
|
|
2279
2292
|
},
|
|
2280
2293
|
["INSTANCE_EVENT_HOOKS" /* INSTANCE_EVENT_HOOKS */]: {
|
|
2281
2294
|
message: event => `"${event}" lifecycle events are no longer supported. From templates, ` +
|
|
@@ -2283,23 +2296,23 @@ const deprecationData = {
|
|
|
2283
2296
|
`should be changed to @vnode-${event.slice(5)}. ` +
|
|
2284
2297
|
`From JavaScript, use Composition API to dynamically register lifecycle ` +
|
|
2285
2298
|
`hooks.`,
|
|
2286
|
-
link: `https://v3.vuejs.org/
|
|
2299
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html`
|
|
2287
2300
|
},
|
|
2288
2301
|
["INSTANCE_CHILDREN" /* INSTANCE_CHILDREN */]: {
|
|
2289
2302
|
message: `vm.$children has been removed. Consider refactoring your logic ` +
|
|
2290
2303
|
`to avoid relying on direct access to child components.`,
|
|
2291
|
-
link: `https://v3.vuejs.org/
|
|
2304
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/children.html`
|
|
2292
2305
|
},
|
|
2293
2306
|
["INSTANCE_LISTENERS" /* INSTANCE_LISTENERS */]: {
|
|
2294
2307
|
message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are ` +
|
|
2295
2308
|
`included in vm.$attrs and it is no longer necessary to separately use ` +
|
|
2296
2309
|
`v-on="$listeners" if you are already using v-bind="$attrs". ` +
|
|
2297
2310
|
`(Note: the Vue 3 behavior only applies if this compat config is disabled)`,
|
|
2298
|
-
link: `https://v3.vuejs.org/
|
|
2311
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html`
|
|
2299
2312
|
},
|
|
2300
2313
|
["INSTANCE_SCOPED_SLOTS" /* INSTANCE_SCOPED_SLOTS */]: {
|
|
2301
2314
|
message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,
|
|
2302
|
-
link: `https://v3.vuejs.org/
|
|
2315
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/slots-unification.html`
|
|
2303
2316
|
},
|
|
2304
2317
|
["INSTANCE_ATTRS_CLASS_STYLE" /* INSTANCE_ATTRS_CLASS_STYLE */]: {
|
|
2305
2318
|
message: componentName => `Component <${componentName || 'Anonymous'}> has \`inheritAttrs: false\` but is ` +
|
|
@@ -2310,17 +2323,17 @@ const deprecationData = {
|
|
|
2310
2323
|
`If you are binding $attrs to a non-root element and expecting ` +
|
|
2311
2324
|
`class/style to fallthrough on root, you will need to now manually bind ` +
|
|
2312
2325
|
`them on root via :class="$attrs.class".`,
|
|
2313
|
-
link: `https://v3.vuejs.org/
|
|
2326
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html`
|
|
2314
2327
|
},
|
|
2315
2328
|
["OPTIONS_DATA_FN" /* OPTIONS_DATA_FN */]: {
|
|
2316
2329
|
message: `The "data" option can no longer be a plain object. ` +
|
|
2317
2330
|
`Always use a function.`,
|
|
2318
|
-
link: `https://v3.vuejs.org/
|
|
2331
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html`
|
|
2319
2332
|
},
|
|
2320
2333
|
["OPTIONS_DATA_MERGE" /* OPTIONS_DATA_MERGE */]: {
|
|
2321
2334
|
message: (key) => `Detected conflicting key "${key}" when merging data option values. ` +
|
|
2322
2335
|
`In Vue 3, data keys are merged shallowly and will override one another.`,
|
|
2323
|
-
link: `https://v3.vuejs.org/
|
|
2336
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/data-option.html#mixin-merge-behavior-change`
|
|
2324
2337
|
},
|
|
2325
2338
|
["OPTIONS_BEFORE_DESTROY" /* OPTIONS_BEFORE_DESTROY */]: {
|
|
2326
2339
|
message: `\`beforeDestroy\` has been renamed to \`beforeUnmount\`.`
|
|
@@ -2334,23 +2347,23 @@ const deprecationData = {
|
|
|
2334
2347
|
`If current usage is intended, you can disable the compat behavior and ` +
|
|
2335
2348
|
`suppress this warning with:` +
|
|
2336
2349
|
`\n\n configureCompat({ ${"WATCH_ARRAY" /* WATCH_ARRAY */}: false })\n`,
|
|
2337
|
-
link: `https://v3.vuejs.org/
|
|
2350
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/watch.html`
|
|
2338
2351
|
},
|
|
2339
2352
|
["PROPS_DEFAULT_THIS" /* PROPS_DEFAULT_THIS */]: {
|
|
2340
2353
|
message: (key) => `props default value function no longer has access to "this". The compat ` +
|
|
2341
2354
|
`build only offers access to this.$options.` +
|
|
2342
2355
|
`(found in prop "${key}")`,
|
|
2343
|
-
link: `https://v3.vuejs.org/
|
|
2356
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/props-default-this.html`
|
|
2344
2357
|
},
|
|
2345
2358
|
["CUSTOM_DIR" /* CUSTOM_DIR */]: {
|
|
2346
2359
|
message: (legacyHook, newHook) => `Custom directive hook "${legacyHook}" has been removed. ` +
|
|
2347
2360
|
`Use "${newHook}" instead.`,
|
|
2348
|
-
link: `https://v3.vuejs.org/
|
|
2361
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-directives.html`
|
|
2349
2362
|
},
|
|
2350
2363
|
["V_ON_KEYCODE_MODIFIER" /* V_ON_KEYCODE_MODIFIER */]: {
|
|
2351
2364
|
message: `Using keyCode as v-on modifier is no longer supported. ` +
|
|
2352
2365
|
`Use kebab-case key name modifiers instead.`,
|
|
2353
|
-
link: `https://v3.vuejs.org/
|
|
2366
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html`
|
|
2354
2367
|
},
|
|
2355
2368
|
["ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */]: {
|
|
2356
2369
|
message: (name) => `Attribute "${name}" with v-bind value \`false\` will render ` +
|
|
@@ -2358,7 +2371,7 @@ const deprecationData = {
|
|
|
2358
2371
|
`use \`null\` or \`undefined\` instead. If the usage is intended, ` +
|
|
2359
2372
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2360
2373
|
`\n\n configureCompat({ ${"ATTR_FALSE_VALUE" /* ATTR_FALSE_VALUE */}: false })\n`,
|
|
2361
|
-
link: `https://v3.vuejs.org/
|
|
2374
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2362
2375
|
},
|
|
2363
2376
|
["ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */]: {
|
|
2364
2377
|
message: (name, value, coerced) => `Enumerated attribute "${name}" with v-bind value \`${value}\` will ` +
|
|
@@ -2367,7 +2380,7 @@ const deprecationData = {
|
|
|
2367
2380
|
`If the usage is intended, ` +
|
|
2368
2381
|
`you can disable the compat behavior and suppress this warning with:` +
|
|
2369
2382
|
`\n\n configureCompat({ ${"ATTR_ENUMERATED_COERCION" /* ATTR_ENUMERATED_COERCION */}: false })\n`,
|
|
2370
|
-
link: `https://v3.vuejs.org/
|
|
2383
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html`
|
|
2371
2384
|
},
|
|
2372
2385
|
["TRANSITION_CLASSES" /* TRANSITION_CLASSES */]: {
|
|
2373
2386
|
message: `` // this feature cannot be runtime-detected
|
|
@@ -2378,7 +2391,7 @@ const deprecationData = {
|
|
|
2378
2391
|
`for styling, you can disable the compat behavior and suppress this ` +
|
|
2379
2392
|
`warning with:` +
|
|
2380
2393
|
`\n\n configureCompat({ ${"TRANSITION_GROUP_ROOT" /* TRANSITION_GROUP_ROOT */}: false })\n`,
|
|
2381
|
-
link: `https://v3.vuejs.org/
|
|
2394
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/transition-group.html`
|
|
2382
2395
|
},
|
|
2383
2396
|
["COMPONENT_ASYNC" /* COMPONENT_ASYNC */]: {
|
|
2384
2397
|
message: (comp) => {
|
|
@@ -2391,7 +2404,7 @@ const deprecationData = {
|
|
|
2391
2404
|
`warning with:` +
|
|
2392
2405
|
`\n\n configureCompat({ ${"COMPONENT_ASYNC" /* COMPONENT_ASYNC */}: false })\n`);
|
|
2393
2406
|
},
|
|
2394
|
-
link: `https://v3.vuejs.org/
|
|
2407
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/async-components.html`
|
|
2395
2408
|
},
|
|
2396
2409
|
["COMPONENT_FUNCTIONAL" /* COMPONENT_FUNCTIONAL */]: {
|
|
2397
2410
|
message: (comp) => {
|
|
@@ -2402,7 +2415,7 @@ const deprecationData = {
|
|
|
2402
2415
|
`components usage have been migrated and its compat behavior has ` +
|
|
2403
2416
|
`been disabled.`);
|
|
2404
2417
|
},
|
|
2405
|
-
link: `https://v3.vuejs.org/
|
|
2418
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/functional-components.html`
|
|
2406
2419
|
},
|
|
2407
2420
|
["COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */]: {
|
|
2408
2421
|
message: (comp) => {
|
|
@@ -2419,20 +2432,20 @@ const deprecationData = {
|
|
|
2419
2432
|
`to work with v-model should now use the "modelValue" prop and emit the ` +
|
|
2420
2433
|
`"update:modelValue" event. You can update the usage and then ${configMsg}`);
|
|
2421
2434
|
},
|
|
2422
|
-
link: `https://v3.vuejs.org/
|
|
2435
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
2423
2436
|
},
|
|
2424
2437
|
["RENDER_FUNCTION" /* RENDER_FUNCTION */]: {
|
|
2425
2438
|
message: `Vue 3's render function API has changed. ` +
|
|
2426
2439
|
`You can opt-in to the new API with:` +
|
|
2427
2440
|
`\n\n configureCompat({ ${"RENDER_FUNCTION" /* RENDER_FUNCTION */}: false })\n` +
|
|
2428
2441
|
`\n (This can also be done per-component via the "compatConfig" option.)`,
|
|
2429
|
-
link: `https://v3.vuejs.org/
|
|
2442
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/render-function-api.html`
|
|
2430
2443
|
},
|
|
2431
2444
|
["FILTERS" /* FILTERS */]: {
|
|
2432
2445
|
message: `filters have been removed in Vue 3. ` +
|
|
2433
2446
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
2434
2447
|
`Use method calls or computed properties instead.`,
|
|
2435
|
-
link: `https://v3.vuejs.org/
|
|
2448
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
2436
2449
|
},
|
|
2437
2450
|
["PRIVATE_APIS" /* PRIVATE_APIS */]: {
|
|
2438
2451
|
message: name => `"${name}" is a Vue 2 private API that no longer exists in Vue 3. ` +
|
|
@@ -2500,7 +2513,7 @@ function validateCompatConfig(config, instance) {
|
|
|
2500
2513
|
warn$1(`Deprecation config "${key}" is compiler-specific and you are ` +
|
|
2501
2514
|
`running a runtime-only build of Vue. This deprecation should be ` +
|
|
2502
2515
|
`configured via compiler options in your build setup instead.\n` +
|
|
2503
|
-
`Details: https://v3.vuejs.org/
|
|
2516
|
+
`Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`);
|
|
2504
2517
|
}
|
|
2505
2518
|
}
|
|
2506
2519
|
else {
|
|
@@ -3714,12 +3727,10 @@ function watchEffect(effect, options) {
|
|
|
3714
3727
|
return doWatch(effect, null, options);
|
|
3715
3728
|
}
|
|
3716
3729
|
function watchPostEffect(effect, options) {
|
|
3717
|
-
return doWatch(effect, null, (Object.assign(
|
|
3718
|
-
));
|
|
3730
|
+
return doWatch(effect, null, (Object.assign(Object.assign({}, options), { flush: 'post' }) ));
|
|
3719
3731
|
}
|
|
3720
3732
|
function watchSyncEffect(effect, options) {
|
|
3721
|
-
return doWatch(effect, null, (Object.assign(
|
|
3722
|
-
));
|
|
3733
|
+
return doWatch(effect, null, (Object.assign(Object.assign({}, options), { flush: 'sync' }) ));
|
|
3723
3734
|
}
|
|
3724
3735
|
// initial value for watchers to trigger on undefined initial values
|
|
3725
3736
|
const INITIAL_WATCHER_VALUE = {};
|
|
@@ -4029,7 +4040,9 @@ const BaseTransitionImpl = {
|
|
|
4029
4040
|
const { mode } = rawProps;
|
|
4030
4041
|
// check mode
|
|
4031
4042
|
if (mode &&
|
|
4032
|
-
mode !== 'in-out' &&
|
|
4043
|
+
mode !== 'in-out' &&
|
|
4044
|
+
mode !== 'out-in' &&
|
|
4045
|
+
mode !== 'default') {
|
|
4033
4046
|
warn$1(`invalid <transition> mode: ${mode}`);
|
|
4034
4047
|
}
|
|
4035
4048
|
// at this point children has a guaranteed length of 1.
|
|
@@ -4259,20 +4272,24 @@ function setTransitionHooks(vnode, hooks) {
|
|
|
4259
4272
|
vnode.transition = hooks;
|
|
4260
4273
|
}
|
|
4261
4274
|
}
|
|
4262
|
-
function getTransitionRawChildren(children, keepComment = false) {
|
|
4275
|
+
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
4263
4276
|
let ret = [];
|
|
4264
4277
|
let keyedFragmentCount = 0;
|
|
4265
4278
|
for (let i = 0; i < children.length; i++) {
|
|
4266
|
-
|
|
4279
|
+
let child = children[i];
|
|
4280
|
+
// #5360 inherit parent key in case of <template v-for>
|
|
4281
|
+
const key = parentKey == null
|
|
4282
|
+
? child.key
|
|
4283
|
+
: String(parentKey) + String(child.key != null ? child.key : i);
|
|
4267
4284
|
// handle fragment children case, e.g. v-for
|
|
4268
4285
|
if (child.type === Fragment) {
|
|
4269
4286
|
if (child.patchFlag & 128 /* KEYED_FRAGMENT */)
|
|
4270
4287
|
keyedFragmentCount++;
|
|
4271
|
-
ret = ret.concat(getTransitionRawChildren(child.children, keepComment));
|
|
4288
|
+
ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));
|
|
4272
4289
|
}
|
|
4273
4290
|
// comment placeholders should be skipped, e.g. v-if
|
|
4274
4291
|
else if (keepComment || child.type !== Comment) {
|
|
4275
|
-
ret.push(child);
|
|
4292
|
+
ret.push(key != null ? cloneVNode(child, { key }) : child);
|
|
4276
4293
|
}
|
|
4277
4294
|
}
|
|
4278
4295
|
// #1126 if a transition children list contains multiple sub fragments, these
|
|
@@ -5330,6 +5347,10 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
5330
5347
|
const propsToUpdate = instance.vnode.dynamicProps;
|
|
5331
5348
|
for (let i = 0; i < propsToUpdate.length; i++) {
|
|
5332
5349
|
let key = propsToUpdate[i];
|
|
5350
|
+
// skip if the prop key is a declared emit event listener
|
|
5351
|
+
if (isEmitListener(instance.emitsOptions, key)) {
|
|
5352
|
+
continue;
|
|
5353
|
+
}
|
|
5333
5354
|
// PROPS flag guarantees rawProps to be non-null
|
|
5334
5355
|
const value = rawProps[key];
|
|
5335
5356
|
if (options) {
|
|
@@ -5901,7 +5922,6 @@ return withDirectives(h(comp), [
|
|
|
5901
5922
|
[bar, this.y]
|
|
5902
5923
|
])
|
|
5903
5924
|
*/
|
|
5904
|
-
const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
|
|
5905
5925
|
function validateDirectiveName(name) {
|
|
5906
5926
|
if (isBuiltInDirective(name)) {
|
|
5907
5927
|
warn$1('Do not use built-in directive ids as custom directive id: ' + name);
|
|
@@ -5916,7 +5936,8 @@ function withDirectives(vnode, directives) {
|
|
|
5916
5936
|
warn$1(`withDirectives can only be used inside render functions.`);
|
|
5917
5937
|
return vnode;
|
|
5918
5938
|
}
|
|
5919
|
-
const instance = internalInstance
|
|
5939
|
+
const instance = getExposeProxy(internalInstance) ||
|
|
5940
|
+
internalInstance.proxy;
|
|
5920
5941
|
const bindings = vnode.dirs || (vnode.dirs = []);
|
|
5921
5942
|
for (let i = 0; i < directives.length; i++) {
|
|
5922
5943
|
let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
|
|
@@ -6036,7 +6057,7 @@ function createCompatVue(createApp, createSingletonApp) {
|
|
|
6036
6057
|
return vm;
|
|
6037
6058
|
}
|
|
6038
6059
|
}
|
|
6039
|
-
Vue.version = `2.6.14-compat:${"3.2.
|
|
6060
|
+
Vue.version = `2.6.14-compat:${"3.2.32"}`;
|
|
6040
6061
|
Vue.config = singletonApp.config;
|
|
6041
6062
|
Vue.use = (p, ...options) => {
|
|
6042
6063
|
if (p && isFunction(p.install)) {
|
|
@@ -6463,6 +6484,9 @@ function createAppContext() {
|
|
|
6463
6484
|
let uid = 0;
|
|
6464
6485
|
function createAppAPI(render, hydrate) {
|
|
6465
6486
|
return function createApp(rootComponent, rootProps = null) {
|
|
6487
|
+
if (!isFunction(rootComponent)) {
|
|
6488
|
+
rootComponent = Object.assign({}, rootComponent);
|
|
6489
|
+
}
|
|
6466
6490
|
if (rootProps != null && !isObject(rootProps)) {
|
|
6467
6491
|
warn$1(`root props passed to app.mount() must be an object.`);
|
|
6468
6492
|
rootProps = null;
|
|
@@ -6662,6 +6686,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
6662
6686
|
if (!isArray(existing)) {
|
|
6663
6687
|
if (_isString) {
|
|
6664
6688
|
refs[ref] = [refValue];
|
|
6689
|
+
if (hasOwn(setupState, ref)) {
|
|
6690
|
+
setupState[ref] = refs[ref];
|
|
6691
|
+
}
|
|
6665
6692
|
}
|
|
6666
6693
|
else {
|
|
6667
6694
|
ref.value = [refValue];
|
|
@@ -6860,7 +6887,8 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
6860
6887
|
// e.g. <option :value="obj">, <input type="checkbox" :true-value="1">
|
|
6861
6888
|
const forcePatchValue = (type === 'input' && dirs) || type === 'option';
|
|
6862
6889
|
// skip props & children if this is hoisted static nodes
|
|
6863
|
-
|
|
6890
|
+
// #5405 in dev, always hydrate children for HMR
|
|
6891
|
+
{
|
|
6864
6892
|
if (dirs) {
|
|
6865
6893
|
invokeDirectiveHook(vnode, null, parentComponent, 'created');
|
|
6866
6894
|
}
|
|
@@ -7033,7 +7061,7 @@ function startMeasure(instance, type) {
|
|
|
7033
7061
|
perf.mark(`vue-${type}-${instance.uid}`);
|
|
7034
7062
|
}
|
|
7035
7063
|
{
|
|
7036
|
-
devtoolsPerfStart(instance, type,
|
|
7064
|
+
devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());
|
|
7037
7065
|
}
|
|
7038
7066
|
}
|
|
7039
7067
|
function endMeasure(instance, type) {
|
|
@@ -7046,7 +7074,7 @@ function endMeasure(instance, type) {
|
|
|
7046
7074
|
perf.clearMarks(endTag);
|
|
7047
7075
|
}
|
|
7048
7076
|
{
|
|
7049
|
-
devtoolsPerfEnd(instance, type,
|
|
7077
|
+
devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());
|
|
7050
7078
|
}
|
|
7051
7079
|
}
|
|
7052
7080
|
function isSupported() {
|
|
@@ -10014,9 +10042,11 @@ const PublicInstanceProxyHandlers = {
|
|
|
10014
10042
|
const { data, setupState, ctx } = instance;
|
|
10015
10043
|
if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {
|
|
10016
10044
|
setupState[key] = value;
|
|
10045
|
+
return true;
|
|
10017
10046
|
}
|
|
10018
10047
|
else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
|
|
10019
10048
|
data[key] = value;
|
|
10049
|
+
return true;
|
|
10020
10050
|
}
|
|
10021
10051
|
else if (hasOwn(instance.props, key)) {
|
|
10022
10052
|
warn$1(`Attempting to mutate prop "${key}". Props are readonly.`, instance);
|
|
@@ -10050,6 +10080,16 @@ const PublicInstanceProxyHandlers = {
|
|
|
10050
10080
|
hasOwn(ctx, key) ||
|
|
10051
10081
|
hasOwn(publicPropertiesMap, key) ||
|
|
10052
10082
|
hasOwn(appContext.config.globalProperties, key));
|
|
10083
|
+
},
|
|
10084
|
+
defineProperty(target, key, descriptor) {
|
|
10085
|
+
if (descriptor.get != null) {
|
|
10086
|
+
// invalidate key cache of a getter based property #5417
|
|
10087
|
+
target.$.accessCache[key] = 0;
|
|
10088
|
+
}
|
|
10089
|
+
else if (hasOwn(descriptor, 'value')) {
|
|
10090
|
+
this.set(target, key, descriptor.value, null);
|
|
10091
|
+
}
|
|
10092
|
+
return Reflect.defineProperty(target, key, descriptor);
|
|
10053
10093
|
}
|
|
10054
10094
|
};
|
|
10055
10095
|
{
|
|
@@ -10940,7 +10980,7 @@ function isMemoSame(cached, memo) {
|
|
|
10940
10980
|
}
|
|
10941
10981
|
|
|
10942
10982
|
// Core API ------------------------------------------------------------------
|
|
10943
|
-
const version = "3.2.
|
|
10983
|
+
const version = "3.2.32";
|
|
10944
10984
|
/**
|
|
10945
10985
|
* SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
|
|
10946
10986
|
* @internal
|
|
@@ -13524,13 +13564,13 @@ const deprecationData$1 = {
|
|
|
13524
13564
|
message: `Platform-native elements with "is" prop will no longer be ` +
|
|
13525
13565
|
`treated as components in Vue 3 unless the "is" value is explicitly ` +
|
|
13526
13566
|
`prefixed with "vue:".`,
|
|
13527
|
-
link: `https://v3.vuejs.org/
|
|
13567
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
|
|
13528
13568
|
},
|
|
13529
13569
|
["COMPILER_V_BIND_SYNC" /* COMPILER_V_BIND_SYNC */]: {
|
|
13530
13570
|
message: key => `.sync modifier for v-bind has been removed. Use v-model with ` +
|
|
13531
13571
|
`argument instead. \`v-bind:${key}.sync\` should be changed to ` +
|
|
13532
13572
|
`\`v-model:${key}\`.`,
|
|
13533
|
-
link: `https://v3.vuejs.org/
|
|
13573
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
|
|
13534
13574
|
},
|
|
13535
13575
|
["COMPILER_V_BIND_PROP" /* COMPILER_V_BIND_PROP */]: {
|
|
13536
13576
|
message: `.prop modifier for v-bind has been removed and no longer necessary. ` +
|
|
@@ -13542,11 +13582,11 @@ const deprecationData$1 = {
|
|
|
13542
13582
|
`that appears before v-bind in the case of conflict. ` +
|
|
13543
13583
|
`To retain 2.x behavior, move v-bind to make it the first attribute. ` +
|
|
13544
13584
|
`You can also suppress this warning if the usage is intended.`,
|
|
13545
|
-
link: `https://v3.vuejs.org/
|
|
13585
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
|
|
13546
13586
|
},
|
|
13547
13587
|
["COMPILER_V_ON_NATIVE" /* COMPILER_V_ON_NATIVE */]: {
|
|
13548
13588
|
message: `.native modifier for v-on has been removed as is no longer necessary.`,
|
|
13549
|
-
link: `https://v3.vuejs.org/
|
|
13589
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
|
|
13550
13590
|
},
|
|
13551
13591
|
["COMPILER_V_IF_V_FOR_PRECEDENCE" /* COMPILER_V_IF_V_FOR_PRECEDENCE */]: {
|
|
13552
13592
|
message: `v-if / v-for precedence when used on the same element has changed ` +
|
|
@@ -13554,7 +13594,7 @@ const deprecationData$1 = {
|
|
|
13554
13594
|
`access to v-for scope variables. It is best to avoid the ambiguity ` +
|
|
13555
13595
|
`with <template> tags or use a computed property that filters v-for ` +
|
|
13556
13596
|
`data source.`,
|
|
13557
|
-
link: `https://v3.vuejs.org/
|
|
13597
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
|
|
13558
13598
|
},
|
|
13559
13599
|
["COMPILER_NATIVE_TEMPLATE" /* COMPILER_NATIVE_TEMPLATE */]: {
|
|
13560
13600
|
message: `<template> with no special directives will render as a native template ` +
|
|
@@ -13562,13 +13602,13 @@ const deprecationData$1 = {
|
|
|
13562
13602
|
},
|
|
13563
13603
|
["COMPILER_INLINE_TEMPLATE" /* COMPILER_INLINE_TEMPLATE */]: {
|
|
13564
13604
|
message: `"inline-template" has been removed in Vue 3.`,
|
|
13565
|
-
link: `https://v3.vuejs.org/
|
|
13605
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
|
|
13566
13606
|
},
|
|
13567
13607
|
["COMPILER_FILTER" /* COMPILER_FILTERS */]: {
|
|
13568
13608
|
message: `filters have been removed in Vue 3. ` +
|
|
13569
13609
|
`The "|" symbol will be treated as native JavaScript bitwise OR operator. ` +
|
|
13570
13610
|
`Use method calls or computed properties instead.`,
|
|
13571
|
-
link: `https://v3.vuejs.org/
|
|
13611
|
+
link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
|
|
13572
13612
|
}
|
|
13573
13613
|
};
|
|
13574
13614
|
function getCompatValue(key, context) {
|
|
@@ -16676,7 +16716,7 @@ function buildProps(node, context, props = node.props, ssr = false) {
|
|
|
16676
16716
|
}
|
|
16677
16717
|
}
|
|
16678
16718
|
}
|
|
16679
|
-
else {
|
|
16719
|
+
else if (!isBuiltInDirective(name)) {
|
|
16680
16720
|
// no built-in transform, this is a user custom directive.
|
|
16681
16721
|
runtimeDirectives.push(prop);
|
|
16682
16722
|
// custom dirs may use beforeUpdate so they need to force blocks
|