@vue/compat 3.2.27 → 3.2.28
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 +2 -2
- package/dist/vue.cjs.js +93 -51
- package/dist/vue.cjs.prod.js +83 -40
- package/dist/vue.esm-browser.js +82 -42
- package/dist/vue.esm-browser.prod.js +1 -1
- package/dist/vue.esm-bundler.js +82 -42
- package/dist/vue.global.js +81 -41
- package/dist/vue.global.prod.js +1 -1
- package/dist/vue.runtime.esm-browser.js +75 -39
- package/dist/vue.runtime.esm-browser.prod.js +1 -1
- package/dist/vue.runtime.esm-bundler.js +75 -39
- package/dist/vue.runtime.global.js +74 -38
- package/dist/vue.runtime.global.prod.js +1 -1
- package/package.json +5 -5
package/dist/vue.esm-browser.js
CHANGED
|
@@ -206,8 +206,20 @@ const SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,col
|
|
|
206
206
|
'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +
|
|
207
207
|
'text,textPath,title,tspan,unknown,use,view';
|
|
208
208
|
const VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';
|
|
209
|
+
/**
|
|
210
|
+
* Compiler only.
|
|
211
|
+
* Do NOT use in runtime code paths unless behind `true` flag.
|
|
212
|
+
*/
|
|
209
213
|
const isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);
|
|
214
|
+
/**
|
|
215
|
+
* Compiler only.
|
|
216
|
+
* Do NOT use in runtime code paths unless behind `true` flag.
|
|
217
|
+
*/
|
|
210
218
|
const isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);
|
|
219
|
+
/**
|
|
220
|
+
* Compiler only.
|
|
221
|
+
* Do NOT use in runtime code paths unless behind `true` flag.
|
|
222
|
+
*/
|
|
211
223
|
const isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);
|
|
212
224
|
|
|
213
225
|
function looseCompareArrays(a, b) {
|
|
@@ -551,7 +563,7 @@ class ReactiveEffect {
|
|
|
551
563
|
if (!this.active) {
|
|
552
564
|
return this.fn();
|
|
553
565
|
}
|
|
554
|
-
if (!effectStack.includes(this)) {
|
|
566
|
+
if (!effectStack.length || !effectStack.includes(this)) {
|
|
555
567
|
try {
|
|
556
568
|
effectStack.push((activeEffect = this));
|
|
557
569
|
enableTracking();
|
|
@@ -807,6 +819,9 @@ function createGetter(isReadonly = false, shallow = false) {
|
|
|
807
819
|
else if (key === "__v_isReadonly" /* IS_READONLY */) {
|
|
808
820
|
return isReadonly;
|
|
809
821
|
}
|
|
822
|
+
else if (key === "__v_isShallow" /* IS_SHALLOW */) {
|
|
823
|
+
return shallow;
|
|
824
|
+
}
|
|
810
825
|
else if (key === "__v_raw" /* RAW */ &&
|
|
811
826
|
receiver ===
|
|
812
827
|
(isReadonly
|
|
@@ -851,9 +866,14 @@ const shallowSet = /*#__PURE__*/ createSetter(true);
|
|
|
851
866
|
function createSetter(shallow = false) {
|
|
852
867
|
return function set(target, key, value, receiver) {
|
|
853
868
|
let oldValue = target[key];
|
|
869
|
+
if (isReadonly(oldValue) && isRef(oldValue)) {
|
|
870
|
+
return false;
|
|
871
|
+
}
|
|
854
872
|
if (!shallow && !isReadonly(value)) {
|
|
855
|
-
|
|
856
|
-
|
|
873
|
+
if (!isShallow(value)) {
|
|
874
|
+
value = toRaw(value);
|
|
875
|
+
oldValue = toRaw(oldValue);
|
|
876
|
+
}
|
|
857
877
|
if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
|
|
858
878
|
oldValue.value = value;
|
|
859
879
|
return true;
|
|
@@ -1240,7 +1260,7 @@ function getTargetType(value) {
|
|
|
1240
1260
|
}
|
|
1241
1261
|
function reactive(target) {
|
|
1242
1262
|
// if trying to observe a readonly proxy, return the readonly version.
|
|
1243
|
-
if (target
|
|
1263
|
+
if (isReadonly(target)) {
|
|
1244
1264
|
return target;
|
|
1245
1265
|
}
|
|
1246
1266
|
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
|
|
@@ -1305,6 +1325,9 @@ function isReactive(value) {
|
|
|
1305
1325
|
function isReadonly(value) {
|
|
1306
1326
|
return !!(value && value["__v_isReadonly" /* IS_READONLY */]);
|
|
1307
1327
|
}
|
|
1328
|
+
function isShallow(value) {
|
|
1329
|
+
return !!(value && value["__v_isShallow" /* IS_SHALLOW */]);
|
|
1330
|
+
}
|
|
1308
1331
|
function isProxy(value) {
|
|
1309
1332
|
return isReactive(value) || isReadonly(value);
|
|
1310
1333
|
}
|
|
@@ -1363,22 +1386,22 @@ function createRef(rawValue, shallow) {
|
|
|
1363
1386
|
return new RefImpl(rawValue, shallow);
|
|
1364
1387
|
}
|
|
1365
1388
|
class RefImpl {
|
|
1366
|
-
constructor(value,
|
|
1367
|
-
this.
|
|
1389
|
+
constructor(value, __v_isShallow) {
|
|
1390
|
+
this.__v_isShallow = __v_isShallow;
|
|
1368
1391
|
this.dep = undefined;
|
|
1369
1392
|
this.__v_isRef = true;
|
|
1370
|
-
this._rawValue =
|
|
1371
|
-
this._value =
|
|
1393
|
+
this._rawValue = __v_isShallow ? value : toRaw(value);
|
|
1394
|
+
this._value = __v_isShallow ? value : toReactive(value);
|
|
1372
1395
|
}
|
|
1373
1396
|
get value() {
|
|
1374
1397
|
trackRefValue(this);
|
|
1375
1398
|
return this._value;
|
|
1376
1399
|
}
|
|
1377
1400
|
set value(newVal) {
|
|
1378
|
-
newVal = this.
|
|
1401
|
+
newVal = this.__v_isShallow ? newVal : toRaw(newVal);
|
|
1379
1402
|
if (hasChanged(newVal, this._rawValue)) {
|
|
1380
1403
|
this._rawValue = newVal;
|
|
1381
|
-
this._value = this.
|
|
1404
|
+
this._value = this.__v_isShallow ? newVal : toReactive(newVal);
|
|
1382
1405
|
triggerRefValue(this, newVal);
|
|
1383
1406
|
}
|
|
1384
1407
|
}
|
|
@@ -1461,22 +1484,23 @@ class ComputedRefImpl {
|
|
|
1461
1484
|
constructor(getter, _setter, isReadonly, isSSR) {
|
|
1462
1485
|
this._setter = _setter;
|
|
1463
1486
|
this.dep = undefined;
|
|
1464
|
-
this._dirty = true;
|
|
1465
1487
|
this.__v_isRef = true;
|
|
1488
|
+
this._dirty = true;
|
|
1466
1489
|
this.effect = new ReactiveEffect(getter, () => {
|
|
1467
1490
|
if (!this._dirty) {
|
|
1468
1491
|
this._dirty = true;
|
|
1469
1492
|
triggerRefValue(this);
|
|
1470
1493
|
}
|
|
1471
1494
|
});
|
|
1472
|
-
this.effect.
|
|
1495
|
+
this.effect.computed = this;
|
|
1496
|
+
this.effect.active = this._cacheable = !isSSR;
|
|
1473
1497
|
this["__v_isReadonly" /* IS_READONLY */] = isReadonly;
|
|
1474
1498
|
}
|
|
1475
1499
|
get value() {
|
|
1476
1500
|
// the computed ref may get wrapped by other proxies e.g. readonly() #3376
|
|
1477
1501
|
const self = toRaw(this);
|
|
1478
1502
|
trackRefValue(self);
|
|
1479
|
-
if (self._dirty) {
|
|
1503
|
+
if (self._dirty || !self._cacheable) {
|
|
1480
1504
|
self._dirty = false;
|
|
1481
1505
|
self._value = self.effect.run();
|
|
1482
1506
|
}
|
|
@@ -1653,7 +1677,7 @@ const ErrorTypeStrings = {
|
|
|
1653
1677
|
[12 /* FUNCTION_REF */]: 'ref function',
|
|
1654
1678
|
[13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',
|
|
1655
1679
|
[14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +
|
|
1656
|
-
'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'
|
|
1657
1681
|
};
|
|
1658
1682
|
function callWithErrorHandling(fn, instance, type, args) {
|
|
1659
1683
|
let res;
|
|
@@ -2201,7 +2225,7 @@ const deprecationData = {
|
|
|
2201
2225
|
["CONFIG_DEVTOOLS" /* CONFIG_DEVTOOLS */]: {
|
|
2202
2226
|
message: `config.devtools has been removed. To enable devtools for ` +
|
|
2203
2227
|
`production, configure the __VUE_PROD_DEVTOOLS__ compile-time flag.`,
|
|
2204
|
-
link: `https://github.com/vuejs/
|
|
2228
|
+
link: `https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags`
|
|
2205
2229
|
},
|
|
2206
2230
|
["CONFIG_KEY_CODES" /* CONFIG_KEY_CODES */]: {
|
|
2207
2231
|
message: `config.keyCodes has been removed. ` +
|
|
@@ -2388,7 +2412,7 @@ const deprecationData = {
|
|
|
2388
2412
|
(isArray(comp.props)
|
|
2389
2413
|
? comp.props.includes('modelValue')
|
|
2390
2414
|
: hasOwn(comp.props, 'modelValue'))) {
|
|
2391
|
-
return (`Component
|
|
2415
|
+
return (`Component declares "modelValue" prop, which is Vue 3 usage, but ` +
|
|
2392
2416
|
`is running under Vue 2 compat v-model behavior. You can ${configMsg}`);
|
|
2393
2417
|
}
|
|
2394
2418
|
return (`v-model usage on component has changed in Vue 3. Component that expects ` +
|
|
@@ -2618,6 +2642,7 @@ const compatModelEventPrefix = `onModelCompat:`;
|
|
|
2618
2642
|
const warnedTypes = new WeakSet();
|
|
2619
2643
|
function convertLegacyVModelProps(vnode) {
|
|
2620
2644
|
const { type, shapeFlag, props, dynamicProps } = vnode;
|
|
2645
|
+
const comp = type;
|
|
2621
2646
|
if (shapeFlag & 6 /* COMPONENT */ && props && 'modelValue' in props) {
|
|
2622
2647
|
if (!isCompatEnabled("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */,
|
|
2623
2648
|
// this is a special case where we want to use the vnode component's
|
|
@@ -2626,16 +2651,18 @@ function convertLegacyVModelProps(vnode) {
|
|
|
2626
2651
|
{ type })) {
|
|
2627
2652
|
return;
|
|
2628
2653
|
}
|
|
2629
|
-
if (!warnedTypes.has(
|
|
2654
|
+
if (!warnedTypes.has(comp)) {
|
|
2630
2655
|
pushWarningContext(vnode);
|
|
2631
|
-
warnDeprecation("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, { type },
|
|
2656
|
+
warnDeprecation("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, { type }, comp);
|
|
2632
2657
|
popWarningContext();
|
|
2633
|
-
warnedTypes.add(
|
|
2658
|
+
warnedTypes.add(comp);
|
|
2634
2659
|
}
|
|
2635
2660
|
// v3 compiled model code -> v2 compat props
|
|
2636
2661
|
// modelValue -> value
|
|
2637
2662
|
// onUpdate:modelValue -> onModelCompat:input
|
|
2638
|
-
const
|
|
2663
|
+
const model = comp.model || {};
|
|
2664
|
+
applyModelFromMixins(model, comp.mixins);
|
|
2665
|
+
const { prop = 'value', event = 'input' } = model;
|
|
2639
2666
|
if (prop !== 'modelValue') {
|
|
2640
2667
|
props[prop] = props.modelValue;
|
|
2641
2668
|
delete props.modelValue;
|
|
@@ -2648,6 +2675,16 @@ function convertLegacyVModelProps(vnode) {
|
|
|
2648
2675
|
delete props['onUpdate:modelValue'];
|
|
2649
2676
|
}
|
|
2650
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
|
+
}
|
|
2651
2688
|
function compatModelEmit(instance, event, args) {
|
|
2652
2689
|
if (!isCompatEnabled("COMPONENT_V_MODEL" /* COMPONENT_V_MODEL */, instance)) {
|
|
2653
2690
|
return;
|
|
@@ -3650,7 +3687,7 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
|
|
|
3650
3687
|
if (instance) {
|
|
3651
3688
|
// #2400
|
|
3652
3689
|
// to support `app.use` plugins,
|
|
3653
|
-
// fallback to appContext's `provides` if the
|
|
3690
|
+
// fallback to appContext's `provides` if the instance is at root
|
|
3654
3691
|
const provides = instance.parent == null
|
|
3655
3692
|
? instance.vnode.appContext && instance.vnode.appContext.provides
|
|
3656
3693
|
: instance.parent.provides;
|
|
@@ -3716,7 +3753,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
|
|
|
3716
3753
|
let isMultiSource = false;
|
|
3717
3754
|
if (isRef(source)) {
|
|
3718
3755
|
getter = () => source.value;
|
|
3719
|
-
forceTrigger =
|
|
3756
|
+
forceTrigger = isShallow(source);
|
|
3720
3757
|
}
|
|
3721
3758
|
else if (isReactive(source)) {
|
|
3722
3759
|
getter = () => source;
|
|
@@ -4610,7 +4647,7 @@ function matches(pattern, name) {
|
|
|
4610
4647
|
return pattern.some((p) => matches(p, name));
|
|
4611
4648
|
}
|
|
4612
4649
|
else if (isString(pattern)) {
|
|
4613
|
-
return pattern.split(',').
|
|
4650
|
+
return pattern.split(',').includes(name);
|
|
4614
4651
|
}
|
|
4615
4652
|
else if (pattern.test) {
|
|
4616
4653
|
return pattern.test(name);
|
|
@@ -4878,7 +4915,7 @@ function applyOptions(instance) {
|
|
|
4878
4915
|
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
4879
4916
|
}
|
|
4880
4917
|
;
|
|
4881
|
-
const c = computed({
|
|
4918
|
+
const c = computed$1({
|
|
4882
4919
|
get,
|
|
4883
4920
|
set
|
|
4884
4921
|
});
|
|
@@ -5359,7 +5396,9 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
5359
5396
|
// attrs point to the same object so it should already have been updated.
|
|
5360
5397
|
if (attrs !== rawCurrentProps) {
|
|
5361
5398
|
for (const key in attrs) {
|
|
5362
|
-
if (!rawProps ||
|
|
5399
|
+
if (!rawProps ||
|
|
5400
|
+
(!hasOwn(rawProps, key) &&
|
|
5401
|
+
(!hasOwn(rawProps, key + 'Native')))) {
|
|
5363
5402
|
delete attrs[key];
|
|
5364
5403
|
hasAttrsChanged = true;
|
|
5365
5404
|
}
|
|
@@ -5997,7 +6036,7 @@ function createCompatVue(createApp, createSingletonApp) {
|
|
|
5997
6036
|
return vm;
|
|
5998
6037
|
}
|
|
5999
6038
|
}
|
|
6000
|
-
Vue.version = "3.2.
|
|
6039
|
+
Vue.version = `2.6.14-compat:${"3.2.28"}`;
|
|
6001
6040
|
Vue.config = singletonApp.config;
|
|
6002
6041
|
Vue.use = (p, ...options) => {
|
|
6003
6042
|
if (p && isFunction(p.install)) {
|
|
@@ -6986,6 +7025,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
6986
7025
|
return [hydrate, hydrateNode];
|
|
6987
7026
|
}
|
|
6988
7027
|
|
|
7028
|
+
/* eslint-disable no-restricted-globals */
|
|
6989
7029
|
let supported;
|
|
6990
7030
|
let perf;
|
|
6991
7031
|
function startMeasure(instance, type) {
|
|
@@ -7013,7 +7053,6 @@ function isSupported() {
|
|
|
7013
7053
|
if (supported !== undefined) {
|
|
7014
7054
|
return supported;
|
|
7015
7055
|
}
|
|
7016
|
-
/* eslint-disable no-restricted-globals */
|
|
7017
7056
|
if (typeof window !== 'undefined' && window.performance) {
|
|
7018
7057
|
supported = true;
|
|
7019
7058
|
perf = window.performance;
|
|
@@ -7021,7 +7060,6 @@ function isSupported() {
|
|
|
7021
7060
|
else {
|
|
7022
7061
|
supported = false;
|
|
7023
7062
|
}
|
|
7024
|
-
/* eslint-enable no-restricted-globals */
|
|
7025
7063
|
return supported;
|
|
7026
7064
|
}
|
|
7027
7065
|
|
|
@@ -9267,7 +9305,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false) {
|
|
|
9267
9305
|
shapeFlag: vnode.shapeFlag,
|
|
9268
9306
|
// if the vnode is cloned with extra props, we can no longer assume its
|
|
9269
9307
|
// existing patch flag to be reliable and need to add the FULL_PROPS flag.
|
|
9270
|
-
// note:
|
|
9308
|
+
// note: preserve flag for fragments since they use the flag for children
|
|
9271
9309
|
// fast paths only.
|
|
9272
9310
|
patchFlag: extraProps && vnode.type !== Fragment
|
|
9273
9311
|
? patchFlag === -1 // hoisted node
|
|
@@ -9432,7 +9470,8 @@ function mergeProps(...args) {
|
|
|
9432
9470
|
else if (isOn(key)) {
|
|
9433
9471
|
const existing = ret[key];
|
|
9434
9472
|
const incoming = toMerge[key];
|
|
9435
|
-
if (
|
|
9473
|
+
if (incoming &&
|
|
9474
|
+
existing !== incoming &&
|
|
9436
9475
|
!(isArray(existing) && existing.includes(incoming))) {
|
|
9437
9476
|
ret[key] = existing
|
|
9438
9477
|
? [].concat(existing, incoming)
|
|
@@ -9708,7 +9747,7 @@ function legacyCheckKeyCodes(instance, eventKeyCode, key, builtInKeyCode, eventK
|
|
|
9708
9747
|
}
|
|
9709
9748
|
function isKeyNotMatch(expect, actual) {
|
|
9710
9749
|
if (isArray(expect)) {
|
|
9711
|
-
return expect.
|
|
9750
|
+
return !expect.includes(actual);
|
|
9712
9751
|
}
|
|
9713
9752
|
else {
|
|
9714
9753
|
return expect !== actual;
|
|
@@ -9787,7 +9826,7 @@ function installCompatInstanceProperties(map) {
|
|
|
9787
9826
|
extend(map, {
|
|
9788
9827
|
// needed by many libs / render fns
|
|
9789
9828
|
$vnode: i => i.vnode,
|
|
9790
|
-
// inject
|
|
9829
|
+
// inject additional properties into $options for compat
|
|
9791
9830
|
// e.g. vuex needs this.$options.parent
|
|
9792
9831
|
$options: i => {
|
|
9793
9832
|
const res = extend({}, resolveMergedOptions(i));
|
|
@@ -10515,7 +10554,7 @@ function defineEmits() {
|
|
|
10515
10554
|
* instance properties when it is accessed by a parent component via template
|
|
10516
10555
|
* refs.
|
|
10517
10556
|
*
|
|
10518
|
-
* `<script setup>` components are closed by default - i.e.
|
|
10557
|
+
* `<script setup>` components are closed by default - i.e. variables inside
|
|
10519
10558
|
* the `<script setup>` scope is not exposed to parent unless explicitly exposed
|
|
10520
10559
|
* via `defineExpose`.
|
|
10521
10560
|
*
|
|
@@ -10718,7 +10757,7 @@ function initCustomFormatter() {
|
|
|
10718
10757
|
return [
|
|
10719
10758
|
'div',
|
|
10720
10759
|
{},
|
|
10721
|
-
['span', vueStyle, 'Reactive'],
|
|
10760
|
+
['span', vueStyle, isShallow(obj) ? 'ShallowReactive' : 'Reactive'],
|
|
10722
10761
|
'<',
|
|
10723
10762
|
formatValue(obj),
|
|
10724
10763
|
`>${isReadonly(obj) ? ` (readonly)` : ``}`
|
|
@@ -10728,7 +10767,7 @@ function initCustomFormatter() {
|
|
|
10728
10767
|
return [
|
|
10729
10768
|
'div',
|
|
10730
10769
|
{},
|
|
10731
|
-
['span', vueStyle, 'Readonly'],
|
|
10770
|
+
['span', vueStyle, isShallow(obj) ? 'ShallowReadonly' : 'Readonly'],
|
|
10732
10771
|
'<',
|
|
10733
10772
|
formatValue(obj),
|
|
10734
10773
|
'>'
|
|
@@ -10857,7 +10896,7 @@ function initCustomFormatter() {
|
|
|
10857
10896
|
}
|
|
10858
10897
|
}
|
|
10859
10898
|
function genRefFlag(v) {
|
|
10860
|
-
if (v
|
|
10899
|
+
if (isShallow(v)) {
|
|
10861
10900
|
return `ShallowRef`;
|
|
10862
10901
|
}
|
|
10863
10902
|
if (v.effect) {
|
|
@@ -10901,7 +10940,7 @@ function isMemoSame(cached, memo) {
|
|
|
10901
10940
|
}
|
|
10902
10941
|
|
|
10903
10942
|
// Core API ------------------------------------------------------------------
|
|
10904
|
-
const version = "3.2.
|
|
10943
|
+
const version = "3.2.28";
|
|
10905
10944
|
/**
|
|
10906
10945
|
* SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
|
|
10907
10946
|
* @internal
|
|
@@ -11332,7 +11371,7 @@ function patchStopImmediatePropagation(e, value) {
|
|
|
11332
11371
|
originalStop.call(e);
|
|
11333
11372
|
e._stopped = true;
|
|
11334
11373
|
};
|
|
11335
|
-
return value.map(fn => (e) => !e._stopped && fn(e));
|
|
11374
|
+
return value.map(fn => (e) => !e._stopped && fn && fn(e));
|
|
11336
11375
|
}
|
|
11337
11376
|
else {
|
|
11338
11377
|
return value;
|
|
@@ -12706,6 +12745,7 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
|
|
|
12706
12745
|
isProxy: isProxy,
|
|
12707
12746
|
isReactive: isReactive,
|
|
12708
12747
|
isReadonly: isReadonly,
|
|
12748
|
+
isShallow: isShallow,
|
|
12709
12749
|
customRef: customRef,
|
|
12710
12750
|
triggerRef: triggerRef,
|
|
12711
12751
|
shallowRef: shallowRef,
|
|
@@ -14055,7 +14095,7 @@ function parseAttributes(context, type) {
|
|
|
14055
14095
|
}
|
|
14056
14096
|
const attr = parseAttribute(context, attributeNames);
|
|
14057
14097
|
// Trim whitespace between class
|
|
14058
|
-
// https://github.com/vuejs/
|
|
14098
|
+
// https://github.com/vuejs/core/issues/4251
|
|
14059
14099
|
if (attr.type === 6 /* ATTRIBUTE */ &&
|
|
14060
14100
|
attr.value &&
|
|
14061
14101
|
attr.name === 'class') {
|
|
@@ -14291,7 +14331,7 @@ function parseTextData(context, length, mode) {
|
|
|
14291
14331
|
advanceBy(context, length);
|
|
14292
14332
|
if (mode === 2 /* RAWTEXT */ ||
|
|
14293
14333
|
mode === 3 /* CDATA */ ||
|
|
14294
|
-
rawText.
|
|
14334
|
+
!rawText.includes('&')) {
|
|
14295
14335
|
return rawText;
|
|
14296
14336
|
}
|
|
14297
14337
|
else {
|
|
@@ -15812,6 +15852,7 @@ const transformFor = createStructuralDirectiveTransform('for', (node, dir, conte
|
|
|
15812
15852
|
const renderExp = createCallExpression(helper(RENDER_LIST), [
|
|
15813
15853
|
forNode.source
|
|
15814
15854
|
]);
|
|
15855
|
+
const isTemplate = isTemplateNode(node);
|
|
15815
15856
|
const memo = findDir(node, 'memo');
|
|
15816
15857
|
const keyProp = findProp(node, `key`);
|
|
15817
15858
|
const keyExp = keyProp &&
|
|
@@ -15831,7 +15872,6 @@ const transformFor = createStructuralDirectiveTransform('for', (node, dir, conte
|
|
|
15831
15872
|
return () => {
|
|
15832
15873
|
// finish the codegen now that all children have been traversed
|
|
15833
15874
|
let childBlock;
|
|
15834
|
-
const isTemplate = isTemplateNode(node);
|
|
15835
15875
|
const { children } = forNode;
|
|
15836
15876
|
// check <template v-for> key placement
|
|
15837
15877
|
if (isTemplate) {
|
|
@@ -17979,4 +18019,4 @@ Vue.compile = compileToFunction;
|
|
|
17979
18019
|
const { configureCompat: configureCompat$1 } = Vue;
|
|
17980
18020
|
|
|
17981
18021
|
export default Vue;
|
|
17982
|
-
export { BaseTransition, Comment, EffectScope, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, Transition, TransitionGroup, VueElement, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed$1 as computed, configureCompat$1 as configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineProps, defineSSRCustomElement, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isVNode, markRaw, mergeDefaults, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter$1 as resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn$1 as warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
|
|
18022
|
+
export { BaseTransition, Comment, EffectScope, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, Transition, TransitionGroup, VueElement, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed$1 as computed, configureCompat$1 as configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineProps, defineSSRCustomElement, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter$1 as resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn$1 as warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
|