@vue/compat 3.4.35 → 3.4.37
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 +80 -80
- package/dist/vue.cjs.js +45 -23
- package/dist/vue.cjs.prod.js +43 -21
- package/dist/vue.esm-browser.js +21 -14
- package/dist/vue.esm-browser.prod.js +2 -2
- package/dist/vue.esm-bundler.js +23 -15
- package/dist/vue.global.js +21 -14
- package/dist/vue.global.prod.js +2 -2
- package/dist/vue.runtime.esm-browser.js +20 -13
- package/dist/vue.runtime.esm-browser.prod.js +2 -2
- package/dist/vue.runtime.esm-bundler.js +22 -14
- package/dist/vue.runtime.global.js +20 -13
- package/dist/vue.runtime.global.prod.js +2 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -84,12 +84,12 @@ The following workflow walks through the steps of migrating an actual Vue 2 app
|
|
|
84
84
|
...options,
|
|
85
85
|
compilerOptions: {
|
|
86
86
|
compatConfig: {
|
|
87
|
-
MODE: 2
|
|
88
|
-
}
|
|
89
|
-
}
|
|
87
|
+
MODE: 2,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
90
|
}
|
|
91
91
|
})
|
|
92
|
-
}
|
|
92
|
+
},
|
|
93
93
|
}
|
|
94
94
|
```
|
|
95
95
|
|
|
@@ -103,8 +103,8 @@ The following workflow walks through the steps of migrating an actual Vue 2 app
|
|
|
103
103
|
module.exports = {
|
|
104
104
|
resolve: {
|
|
105
105
|
alias: {
|
|
106
|
-
vue: '@vue/compat'
|
|
107
|
-
}
|
|
106
|
+
vue: '@vue/compat',
|
|
107
|
+
},
|
|
108
108
|
},
|
|
109
109
|
module: {
|
|
110
110
|
rules: [
|
|
@@ -114,13 +114,13 @@ The following workflow walks through the steps of migrating an actual Vue 2 app
|
|
|
114
114
|
options: {
|
|
115
115
|
compilerOptions: {
|
|
116
116
|
compatConfig: {
|
|
117
|
-
MODE: 2
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
}
|
|
117
|
+
MODE: 2,
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
124
|
}
|
|
125
125
|
```
|
|
126
126
|
|
|
@@ -134,20 +134,20 @@ The following workflow walks through the steps of migrating an actual Vue 2 app
|
|
|
134
134
|
export default {
|
|
135
135
|
resolve: {
|
|
136
136
|
alias: {
|
|
137
|
-
vue: '@vue/compat'
|
|
138
|
-
}
|
|
137
|
+
vue: '@vue/compat',
|
|
138
|
+
},
|
|
139
139
|
},
|
|
140
140
|
plugins: [
|
|
141
141
|
vue({
|
|
142
142
|
template: {
|
|
143
143
|
compilerOptions: {
|
|
144
144
|
compatConfig: {
|
|
145
|
-
MODE: 2
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
})
|
|
150
|
-
]
|
|
145
|
+
MODE: 2,
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
}),
|
|
150
|
+
],
|
|
151
151
|
}
|
|
152
152
|
```
|
|
153
153
|
|
|
@@ -207,7 +207,7 @@ import { configureCompat } from 'vue'
|
|
|
207
207
|
// disable compat for certain features
|
|
208
208
|
configureCompat({
|
|
209
209
|
FEATURE_ID_A: false,
|
|
210
|
-
FEATURE_ID_B: false
|
|
210
|
+
FEATURE_ID_B: false,
|
|
211
211
|
})
|
|
212
212
|
```
|
|
213
213
|
|
|
@@ -221,7 +221,7 @@ import { configureCompat } from 'vue'
|
|
|
221
221
|
configureCompat({
|
|
222
222
|
MODE: 3,
|
|
223
223
|
FEATURE_ID_A: true,
|
|
224
|
-
FEATURE_ID_B: true
|
|
224
|
+
FEATURE_ID_B: true,
|
|
225
225
|
})
|
|
226
226
|
```
|
|
227
227
|
|
|
@@ -233,8 +233,8 @@ A component can use the `compatConfig` option, which expects the same options as
|
|
|
233
233
|
export default {
|
|
234
234
|
compatConfig: {
|
|
235
235
|
MODE: 3, // opt-in to Vue 3 behavior for this component only
|
|
236
|
-
FEATURE_ID_A: true // features can also be toggled at component level
|
|
237
|
-
}
|
|
236
|
+
FEATURE_ID_A: true, // features can also be toggled at component level
|
|
237
|
+
},
|
|
238
238
|
// ...
|
|
239
239
|
}
|
|
240
240
|
```
|
|
@@ -256,73 +256,73 @@ Features that start with `COMPILER_` are compiler-specific: if you are using the
|
|
|
256
256
|
|
|
257
257
|
> Should be fixed upfront or will likely lead to errors
|
|
258
258
|
|
|
259
|
-
| ID | Type | Description | Docs
|
|
260
|
-
| ------------------------------------- | ---- | ----------------------------------------------------------------------- |
|
|
261
|
-
| GLOBAL_MOUNT_CONTAINER | ⨂ | Mounted application does not replace the element it's mounted to | [link](https://v3-migration.vuejs.org/breaking-changes/mount-changes.html)
|
|
262
|
-
| CONFIG_DEVTOOLS | ⨂ | production devtools is now a build-time flag | [link](https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags)
|
|
263
|
-
| COMPILER_V_IF_V_FOR_PRECEDENCE | ⨂ | `v-if` and `v-for` precedence when used on the same element has changed | [link](https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html)
|
|
264
|
-
| COMPILER_V_IF_SAME_KEY | ⨂ | `v-if` branches can no longer have the same key | [link](https://v3-migration.vuejs.org/breaking-changes/key-attribute.html#on-conditional-branches)
|
|
265
|
-
| COMPILER_V_FOR_TEMPLATE_KEY_PLACEMENT | ⨂ | `<template v-for>` key should now be placed on `<template>` | [link](https://v3-migration.vuejs.org/breaking-changes/key-attribute.html#with-template-v-for)
|
|
266
|
-
| COMPILER_SFC_FUNCTIONAL | ⨂ | `<template functional>` is no longer supported in SFCs | [link](https://v3-migration.vuejs.org/breaking-changes/functional-components.html#single-file-components-sfcs)
|
|
259
|
+
| ID | Type | Description | Docs |
|
|
260
|
+
| ------------------------------------- | ---- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
261
|
+
| GLOBAL_MOUNT_CONTAINER | ⨂ | Mounted application does not replace the element it's mounted to | [link](https://v3-migration.vuejs.org/breaking-changes/mount-changes.html) |
|
|
262
|
+
| CONFIG_DEVTOOLS | ⨂ | production devtools is now a build-time flag | [link](https://github.com/vuejs/core/tree/main/packages/vue#bundler-build-feature-flags) |
|
|
263
|
+
| COMPILER_V_IF_V_FOR_PRECEDENCE | ⨂ | `v-if` and `v-for` precedence when used on the same element has changed | [link](https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html) |
|
|
264
|
+
| COMPILER_V_IF_SAME_KEY | ⨂ | `v-if` branches can no longer have the same key | [link](https://v3-migration.vuejs.org/breaking-changes/key-attribute.html#on-conditional-branches) |
|
|
265
|
+
| COMPILER_V_FOR_TEMPLATE_KEY_PLACEMENT | ⨂ | `<template v-for>` key should now be placed on `<template>` | [link](https://v3-migration.vuejs.org/breaking-changes/key-attribute.html#with-template-v-for) |
|
|
266
|
+
| COMPILER_SFC_FUNCTIONAL | ⨂ | `<template functional>` is no longer supported in SFCs | [link](https://v3-migration.vuejs.org/breaking-changes/functional-components.html#single-file-components-sfcs) |
|
|
267
267
|
|
|
268
268
|
### Partially Compatible with Caveats
|
|
269
269
|
|
|
270
|
-
| ID | Type | Description | Docs
|
|
271
|
-
| ------------------------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
270
|
+
| ID | Type | Description | Docs |
|
|
271
|
+
| ------------------------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
272
272
|
| CONFIG_IGNORED_ELEMENTS | ◐ | `config.ignoredElements` is now `config.compilerOptions.isCustomElement` (only in browser compiler build). If using build setup, `isCustomElement` must be passed via build configuration. | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-ignoredelements-is-now-config-iscustomelement) |
|
|
273
273
|
| COMPILER_INLINE_TEMPLATE | ◐ | `inline-template` removed (compat only supported in browser compiler build) | [link](https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html) |
|
|
274
274
|
| PROPS_DEFAULT_THIS | ◐ | props default factory no longer have access to `this` (in compat mode, `this` is not a real instance - it only exposes props, `$options` and injections) | [link](https://v3-migration.vuejs.org/breaking-changes/props-default-this.html) |
|
|
275
|
-
| INSTANCE_DESTROY | ◐ | `$destroy` instance method removed (in compat mode, only supported on root instance) |
|
|
276
|
-
| GLOBAL_PRIVATE_UTIL | ◐ | `Vue.util` is private and no longer available |
|
|
275
|
+
| INSTANCE_DESTROY | ◐ | `$destroy` instance method removed (in compat mode, only supported on root instance) | |
|
|
276
|
+
| GLOBAL_PRIVATE_UTIL | ◐ | `Vue.util` is private and no longer available | |
|
|
277
277
|
| CONFIG_PRODUCTION_TIP | ◐ | `config.productionTip` no longer necessary | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#config-productiontip-removed) |
|
|
278
278
|
| CONFIG_SILENT | ◐ | `config.silent` removed |
|
|
279
279
|
|
|
280
280
|
### Compat only (no warning)
|
|
281
281
|
|
|
282
|
-
| ID | Type | Description
|
|
283
|
-
| ------------------ | ---- |
|
|
282
|
+
| ID | Type | Description | Docs |
|
|
283
|
+
| ------------------ | ---- | -------------------------------------- | ----------------------------------------------------------------------- |
|
|
284
284
|
| TRANSITION_CLASSES | ⭘ | Transition enter/leave classes changed | [link](https://v3-migration.vuejs.org/breaking-changes/transition.html) |
|
|
285
285
|
|
|
286
286
|
### Fully Compatible
|
|
287
287
|
|
|
288
|
-
| ID | Type | Description | Docs
|
|
289
|
-
| ---------------------------- | ---- | --------------------------------------------------------------------- |
|
|
290
|
-
| GLOBAL_MOUNT | ✔
|
|
291
|
-
| GLOBAL_EXTEND | ✔
|
|
292
|
-
| GLOBAL_PROTOTYPE | ✔
|
|
293
|
-
| GLOBAL_SET | ✔
|
|
294
|
-
| GLOBAL_DELETE | ✔
|
|
295
|
-
| GLOBAL_OBSERVABLE | ✔
|
|
296
|
-
| CONFIG_KEY_CODES | ✔
|
|
297
|
-
| CONFIG_WHITESPACE | ✔
|
|
298
|
-
| INSTANCE_SET | ✔
|
|
299
|
-
| INSTANCE_DELETE | ✔
|
|
300
|
-
| INSTANCE_EVENT_EMITTER | ✔
|
|
301
|
-
| INSTANCE_EVENT_HOOKS | ✔
|
|
302
|
-
| INSTANCE_CHILDREN | ✔
|
|
303
|
-
| INSTANCE_LISTENERS | ✔
|
|
304
|
-
| INSTANCE_SCOPED_SLOTS | ✔
|
|
305
|
-
| INSTANCE_ATTRS_CLASS_STYLE | ✔
|
|
306
|
-
| OPTIONS_DATA_FN | ✔
|
|
307
|
-
| OPTIONS_DATA_MERGE | ✔
|
|
308
|
-
| OPTIONS_BEFORE_DESTROY | ✔
|
|
309
|
-
| OPTIONS_DESTROYED | ✔
|
|
310
|
-
| WATCH_ARRAY | ✔
|
|
311
|
-
| V_ON_KEYCODE_MODIFIER | ✔
|
|
312
|
-
| CUSTOM_DIR | ✔
|
|
313
|
-
| ATTR_FALSE_VALUE | ✔
|
|
314
|
-
| ATTR_ENUMERATED_COERCION | ✔
|
|
315
|
-
| TRANSITION_GROUP_ROOT | ✔
|
|
316
|
-
| COMPONENT_ASYNC | ✔
|
|
317
|
-
| COMPONENT_FUNCTIONAL | ✔
|
|
318
|
-
| COMPONENT_V_MODEL | ✔
|
|
319
|
-
| RENDER_FUNCTION | ✔
|
|
320
|
-
| FILTERS | ✔
|
|
321
|
-
| COMPILER_IS_ON_ELEMENT | ✔
|
|
322
|
-
| COMPILER_V_BIND_SYNC | ✔
|
|
323
|
-
| COMPILER_V_BIND_PROP | ✔
|
|
324
|
-
| COMPILER_V_BIND_OBJECT_ORDER | ✔
|
|
325
|
-
| COMPILER_V_ON_NATIVE | ✔
|
|
326
|
-
| COMPILER_V_FOR_REF | ✔
|
|
327
|
-
| COMPILER_NATIVE_TEMPLATE | ✔
|
|
328
|
-
| COMPILER_FILTERS | ✔
|
|
288
|
+
| ID | Type | Description | Docs |
|
|
289
|
+
| ---------------------------- | ---- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
290
|
+
| GLOBAL_MOUNT | ✔ | new Vue() -> createApp | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#mounting-app-instance) |
|
|
291
|
+
| GLOBAL_EXTEND | ✔ | Vue.extend removed (use `defineComponent` or `extends` option) | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-extend-replaced-by-definecomponent) |
|
|
292
|
+
| GLOBAL_PROTOTYPE | ✔ | `Vue.prototype` -> `app.config.globalProperties` | [link](https://v3-migration.vuejs.org/breaking-changes/global-api.html#vue-prototype-replaced-by-config-globalproperties) |
|
|
293
|
+
| GLOBAL_SET | ✔ | `Vue.set` removed (no longer needed) | |
|
|
294
|
+
| GLOBAL_DELETE | ✔ | `Vue.delete` removed (no longer needed) | |
|
|
295
|
+
| GLOBAL_OBSERVABLE | ✔ | `Vue.observable` removed (use `reactive`) | [link](https://vuejs.org/api/reactivity-core.html#reactive) |
|
|
296
|
+
| CONFIG_KEY_CODES | ✔ | config.keyCodes removed | [link](https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html) |
|
|
297
|
+
| CONFIG_WHITESPACE | ✔ | In Vue 3 whitespace defaults to `"condense"` | |
|
|
298
|
+
| INSTANCE_SET | ✔ | `vm.$set` removed (no longer needed) | |
|
|
299
|
+
| INSTANCE_DELETE | ✔ | `vm.$delete` removed (no longer needed) | |
|
|
300
|
+
| INSTANCE_EVENT_EMITTER | ✔ | `vm.$on`, `vm.$off`, `vm.$once` removed | [link](https://v3-migration.vuejs.org/breaking-changes/events-api.html) |
|
|
301
|
+
| INSTANCE_EVENT_HOOKS | ✔ | Instance no longer emits `hook:x` events | [link](https://v3-migration.vuejs.org/breaking-changes/vnode-lifecycle-events.html) |
|
|
302
|
+
| INSTANCE_CHILDREN | ✔ | `vm.$children` removed | [link](https://v3-migration.vuejs.org/breaking-changes/children.html) |
|
|
303
|
+
| INSTANCE_LISTENERS | ✔ | `vm.$listeners` removed | [link](https://v3-migration.vuejs.org/breaking-changes/listeners-removed.html) |
|
|
304
|
+
| INSTANCE_SCOPED_SLOTS | ✔ | `vm.$scopedSlots` removed; `vm.$slots` now exposes functions | [link](https://v3-migration.vuejs.org/breaking-changes/slots-unification.html) |
|
|
305
|
+
| INSTANCE_ATTRS_CLASS_STYLE | ✔ | `$attrs` now includes `class` and `style` | [link](https://v3-migration.vuejs.org/breaking-changes/attrs-includes-class-style.html) |
|
|
306
|
+
| OPTIONS_DATA_FN | ✔ | `data` must be a function in all cases | [link](https://v3-migration.vuejs.org/breaking-changes/data-option.html) |
|
|
307
|
+
| OPTIONS_DATA_MERGE | ✔ | `data` from mixin or extension is now shallow merged | [link](https://v3-migration.vuejs.org/breaking-changes/data-option.html) |
|
|
308
|
+
| OPTIONS_BEFORE_DESTROY | ✔ | `beforeDestroy` -> `beforeUnmount` | |
|
|
309
|
+
| OPTIONS_DESTROYED | ✔ | `destroyed` -> `unmounted` | |
|
|
310
|
+
| WATCH_ARRAY | ✔ | watching an array no longer triggers on mutation unless deep | [link](https://v3-migration.vuejs.org/breaking-changes/watch.html) |
|
|
311
|
+
| V_ON_KEYCODE_MODIFIER | ✔ | `v-on` no longer supports keyCode modifiers | [link](https://v3-migration.vuejs.org/breaking-changes/keycode-modifiers.html) |
|
|
312
|
+
| CUSTOM_DIR | ✔ | Custom directive hook names changed | [link](https://v3-migration.vuejs.org/breaking-changes/custom-directives.html) |
|
|
313
|
+
| ATTR_FALSE_VALUE | ✔ | No longer removes attribute if binding value is boolean `false` | [link](https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html) |
|
|
314
|
+
| ATTR_ENUMERATED_COERCION | ✔ | No longer special case enumerated attributes | [link](https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html) |
|
|
315
|
+
| TRANSITION_GROUP_ROOT | ✔ | `<transition-group>` no longer renders a root element by default | [link](https://v3-migration.vuejs.org/breaking-changes/transition-group.html) |
|
|
316
|
+
| COMPONENT_ASYNC | ✔ | Async component API changed (now requires `defineAsyncComponent`) | [link](https://v3-migration.vuejs.org/breaking-changes/async-components.html) |
|
|
317
|
+
| COMPONENT_FUNCTIONAL | ✔ | Functional component API changed (now must be plain functions) | [link](https://v3-migration.vuejs.org/breaking-changes/functional-components.html) |
|
|
318
|
+
| COMPONENT_V_MODEL | ✔ | Component v-model reworked | [link](https://v3-migration.vuejs.org/breaking-changes/v-model.html) |
|
|
319
|
+
| RENDER_FUNCTION | ✔ | Render function API changed | [link](https://v3-migration.vuejs.org/breaking-changes/render-function-api.html) |
|
|
320
|
+
| FILTERS | ✔ | Filters removed (this option affects only runtime filter APIs) | [link](https://v3-migration.vuejs.org/breaking-changes/filters.html) |
|
|
321
|
+
| COMPILER_IS_ON_ELEMENT | ✔ | `is` usage is now restricted to `<component>` only | [link](https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html) |
|
|
322
|
+
| COMPILER_V_BIND_SYNC | ✔ | `v-bind.sync` replaced by `v-model` with arguments | [link](https://v3-migration.vuejs.org/breaking-changes/v-model.html) |
|
|
323
|
+
| COMPILER_V_BIND_PROP | ✔ | `v-bind.prop` modifier removed | |
|
|
324
|
+
| COMPILER_V_BIND_OBJECT_ORDER | ✔ | `v-bind="object"` is now order sensitive | [link](https://v3-migration.vuejs.org/breaking-changes/v-bind.html) |
|
|
325
|
+
| COMPILER_V_ON_NATIVE | ✔ | `v-on.native` modifier removed | [link](https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html) |
|
|
326
|
+
| COMPILER_V_FOR_REF | ✔ | `ref` in `v-for` (compiler support) | |
|
|
327
|
+
| COMPILER_NATIVE_TEMPLATE | ✔ | `<template>` with no special directives now renders as native element | |
|
|
328
|
+
| COMPILER_FILTERS | ✔ | filters (compiler support) | |
|
package/dist/vue.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/compat v3.4.
|
|
2
|
+
* @vue/compat v3.4.37
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
var parser = require('@babel/parser');
|
|
9
9
|
var estreeWalker = require('estree-walker');
|
|
10
|
-
var decode_js = require('entities/
|
|
10
|
+
var decode_js = require('entities/dist/decode.js');
|
|
11
11
|
var sourceMapJs = require('source-map-js');
|
|
12
12
|
|
|
13
13
|
/*! #__NO_SIDE_EFFECTS__ */
|
|
@@ -868,7 +868,7 @@ class BaseReactiveHandler {
|
|
|
868
868
|
return isShallow2;
|
|
869
869
|
} else if (key === "__v_raw") {
|
|
870
870
|
if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
|
|
871
|
-
// this means the
|
|
871
|
+
// this means the receiver is a user proxy of the reactive proxy
|
|
872
872
|
Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
|
|
873
873
|
return target;
|
|
874
874
|
}
|
|
@@ -3524,7 +3524,7 @@ const KeepAliveImpl = {
|
|
|
3524
3524
|
}
|
|
3525
3525
|
function pruneCacheEntry(key) {
|
|
3526
3526
|
const cached = cache.get(key);
|
|
3527
|
-
if (!current || !isSameVNodeType(cached, current)) {
|
|
3527
|
+
if (cached && (!current || !isSameVNodeType(cached, current))) {
|
|
3528
3528
|
unmount(cached);
|
|
3529
3529
|
} else if (current) {
|
|
3530
3530
|
resetShapeFlag(current);
|
|
@@ -3586,6 +3586,10 @@ const KeepAliveImpl = {
|
|
|
3586
3586
|
return rawVNode;
|
|
3587
3587
|
}
|
|
3588
3588
|
let vnode = getInnerChild(rawVNode);
|
|
3589
|
+
if (vnode.type === Comment) {
|
|
3590
|
+
current = null;
|
|
3591
|
+
return vnode;
|
|
3592
|
+
}
|
|
3589
3593
|
const comp = vnode.type;
|
|
3590
3594
|
const name = getComponentName(
|
|
3591
3595
|
isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp
|
|
@@ -5303,7 +5307,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
5303
5307
|
return vm;
|
|
5304
5308
|
}
|
|
5305
5309
|
}
|
|
5306
|
-
Vue.version = `2.6.14-compat:${"3.4.
|
|
5310
|
+
Vue.version = `2.6.14-compat:${"3.4.37"}`;
|
|
5307
5311
|
Vue.config = singletonApp.config;
|
|
5308
5312
|
Vue.use = (plugin, ...options) => {
|
|
5309
5313
|
if (plugin && isFunction(plugin.install)) {
|
|
@@ -5879,7 +5883,7 @@ function provide(key, value) {
|
|
|
5879
5883
|
function inject(key, defaultValue, treatDefaultAsFactory = false) {
|
|
5880
5884
|
const instance = currentInstance || currentRenderingInstance;
|
|
5881
5885
|
if (instance || currentApp) {
|
|
5882
|
-
const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides :
|
|
5886
|
+
const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
|
|
5883
5887
|
if (provides && key in provides) {
|
|
5884
5888
|
return provides[key];
|
|
5885
5889
|
} else if (arguments.length > 1) {
|
|
@@ -7145,6 +7149,7 @@ Server rendered element contains more child nodes than client vdom.`
|
|
|
7145
7149
|
}
|
|
7146
7150
|
if (props) {
|
|
7147
7151
|
{
|
|
7152
|
+
const isCustomElement = el.tagName.includes("-");
|
|
7148
7153
|
for (const key in props) {
|
|
7149
7154
|
if (// #11189 skip if this node has directives that have created hooks
|
|
7150
7155
|
// as it could have mutated the DOM in any possible way
|
|
@@ -7152,7 +7157,7 @@ Server rendered element contains more child nodes than client vdom.`
|
|
|
7152
7157
|
logMismatchError();
|
|
7153
7158
|
}
|
|
7154
7159
|
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
|
|
7155
|
-
key[0] === ".") {
|
|
7160
|
+
key[0] === "." || isCustomElement) {
|
|
7156
7161
|
patchProp(el, key, null, props[key], void 0, parentComponent);
|
|
7157
7162
|
}
|
|
7158
7163
|
}
|
|
@@ -8884,13 +8889,13 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8884
8889
|
namespace
|
|
8885
8890
|
);
|
|
8886
8891
|
}
|
|
8892
|
+
container._vnode = vnode;
|
|
8887
8893
|
if (!isFlushing) {
|
|
8888
8894
|
isFlushing = true;
|
|
8889
8895
|
flushPreFlushCbs();
|
|
8890
8896
|
flushPostFlushCbs();
|
|
8891
8897
|
isFlushing = false;
|
|
8892
8898
|
}
|
|
8893
|
-
container._vnode = vnode;
|
|
8894
8899
|
};
|
|
8895
8900
|
const internals = {
|
|
8896
8901
|
p: patch,
|
|
@@ -9328,7 +9333,8 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
9328
9333
|
return options.get ? options.get(localValue) : localValue;
|
|
9329
9334
|
},
|
|
9330
9335
|
set(value) {
|
|
9331
|
-
|
|
9336
|
+
const emittedValue = options.set ? options.set(value) : value;
|
|
9337
|
+
if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
|
|
9332
9338
|
return;
|
|
9333
9339
|
}
|
|
9334
9340
|
const rawProps = i.vnode.props;
|
|
@@ -9337,7 +9343,6 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
9337
9343
|
localValue = value;
|
|
9338
9344
|
trigger();
|
|
9339
9345
|
}
|
|
9340
|
-
const emittedValue = options.set ? options.set(value) : value;
|
|
9341
9346
|
i.emit(`update:${name}`, emittedValue);
|
|
9342
9347
|
if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
|
|
9343
9348
|
trigger();
|
|
@@ -9375,9 +9380,9 @@ function emit(instance, event, ...rawArgs) {
|
|
|
9375
9380
|
} = instance;
|
|
9376
9381
|
if (emitsOptions) {
|
|
9377
9382
|
if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
|
|
9378
|
-
if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
|
|
9383
|
+
if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {
|
|
9379
9384
|
warn$1(
|
|
9380
|
-
`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
|
|
9385
|
+
`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`
|
|
9381
9386
|
);
|
|
9382
9387
|
}
|
|
9383
9388
|
} else {
|
|
@@ -11524,7 +11529,7 @@ function isMemoSame(cached, memo) {
|
|
|
11524
11529
|
return true;
|
|
11525
11530
|
}
|
|
11526
11531
|
|
|
11527
|
-
const version = "3.4.
|
|
11532
|
+
const version = "3.4.37";
|
|
11528
11533
|
const warn = warn$1 ;
|
|
11529
11534
|
const ErrorTypeStrings = ErrorTypeStrings$1 ;
|
|
11530
11535
|
const devtools = devtools$1 ;
|
|
@@ -11536,7 +11541,8 @@ const _ssrUtils = {
|
|
|
11536
11541
|
setCurrentRenderingInstance,
|
|
11537
11542
|
isVNode: isVNode,
|
|
11538
11543
|
normalizeVNode,
|
|
11539
|
-
getComponentPublicInstance
|
|
11544
|
+
getComponentPublicInstance,
|
|
11545
|
+
ensureValidVNode
|
|
11540
11546
|
};
|
|
11541
11547
|
const ssrUtils = _ssrUtils ;
|
|
11542
11548
|
const resolveFilter = resolveFilter$1 ;
|
|
@@ -14686,6 +14692,16 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
14686
14692
|
(id) => markScopeIdentifier(node, id, knownIds)
|
|
14687
14693
|
);
|
|
14688
14694
|
}
|
|
14695
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
14696
|
+
for (const id of extractIdentifiers(node.param)) {
|
|
14697
|
+
markScopeIdentifier(node, id, knownIds);
|
|
14698
|
+
}
|
|
14699
|
+
} else if (isForStatement(node)) {
|
|
14700
|
+
walkForStatement(
|
|
14701
|
+
node,
|
|
14702
|
+
false,
|
|
14703
|
+
(id) => markScopeIdentifier(node, id, knownIds)
|
|
14704
|
+
);
|
|
14689
14705
|
}
|
|
14690
14706
|
},
|
|
14691
14707
|
leave(node, parent) {
|
|
@@ -14766,14 +14782,20 @@ function walkBlockDeclarations(block, onIdent) {
|
|
|
14766
14782
|
} else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") {
|
|
14767
14783
|
if (stmt.declare || !stmt.id) continue;
|
|
14768
14784
|
onIdent(stmt.id);
|
|
14769
|
-
} else if (stmt
|
|
14770
|
-
|
|
14771
|
-
|
|
14772
|
-
|
|
14773
|
-
|
|
14774
|
-
|
|
14775
|
-
|
|
14776
|
-
|
|
14785
|
+
} else if (isForStatement(stmt)) {
|
|
14786
|
+
walkForStatement(stmt, true, onIdent);
|
|
14787
|
+
}
|
|
14788
|
+
}
|
|
14789
|
+
}
|
|
14790
|
+
function isForStatement(stmt) {
|
|
14791
|
+
return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement";
|
|
14792
|
+
}
|
|
14793
|
+
function walkForStatement(stmt, isVar, onIdent) {
|
|
14794
|
+
const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left;
|
|
14795
|
+
if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) {
|
|
14796
|
+
for (const decl of variable.declarations) {
|
|
14797
|
+
for (const id of extractIdentifiers(decl.id)) {
|
|
14798
|
+
onIdent(id);
|
|
14777
14799
|
}
|
|
14778
14800
|
}
|
|
14779
14801
|
}
|
|
@@ -18448,7 +18470,7 @@ function resolveComponentType(node, context, ssr = false) {
|
|
|
18448
18470
|
} else {
|
|
18449
18471
|
exp = isProp.exp;
|
|
18450
18472
|
if (!exp) {
|
|
18451
|
-
exp = createSimpleExpression(`is`, false, isProp.loc);
|
|
18473
|
+
exp = createSimpleExpression(`is`, false, isProp.arg.loc);
|
|
18452
18474
|
{
|
|
18453
18475
|
exp = isProp.exp = processExpression(exp, context);
|
|
18454
18476
|
}
|
package/dist/vue.cjs.prod.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/compat v3.4.
|
|
2
|
+
* @vue/compat v3.4.37
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
var parser = require('@babel/parser');
|
|
9
9
|
var estreeWalker = require('estree-walker');
|
|
10
|
-
var decode_js = require('entities/
|
|
10
|
+
var decode_js = require('entities/dist/decode.js');
|
|
11
11
|
var sourceMapJs = require('source-map-js');
|
|
12
12
|
|
|
13
13
|
/*! #__NO_SIDE_EFFECTS__ */
|
|
@@ -763,7 +763,7 @@ class BaseReactiveHandler {
|
|
|
763
763
|
return isShallow2;
|
|
764
764
|
} else if (key === "__v_raw") {
|
|
765
765
|
if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
|
|
766
|
-
// this means the
|
|
766
|
+
// this means the receiver is a user proxy of the reactive proxy
|
|
767
767
|
Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
|
|
768
768
|
return target;
|
|
769
769
|
}
|
|
@@ -2651,7 +2651,7 @@ const KeepAliveImpl = {
|
|
|
2651
2651
|
}
|
|
2652
2652
|
function pruneCacheEntry(key) {
|
|
2653
2653
|
const cached = cache.get(key);
|
|
2654
|
-
if (!current || !isSameVNodeType(cached, current)) {
|
|
2654
|
+
if (cached && (!current || !isSameVNodeType(cached, current))) {
|
|
2655
2655
|
unmount(cached);
|
|
2656
2656
|
} else if (current) {
|
|
2657
2657
|
resetShapeFlag(current);
|
|
@@ -2710,6 +2710,10 @@ const KeepAliveImpl = {
|
|
|
2710
2710
|
return rawVNode;
|
|
2711
2711
|
}
|
|
2712
2712
|
let vnode = getInnerChild(rawVNode);
|
|
2713
|
+
if (vnode.type === Comment) {
|
|
2714
|
+
current = null;
|
|
2715
|
+
return vnode;
|
|
2716
|
+
}
|
|
2713
2717
|
const comp = vnode.type;
|
|
2714
2718
|
const name = getComponentName(
|
|
2715
2719
|
isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp
|
|
@@ -4151,7 +4155,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
4151
4155
|
return vm;
|
|
4152
4156
|
}
|
|
4153
4157
|
}
|
|
4154
|
-
Vue.version = `2.6.14-compat:${"3.4.
|
|
4158
|
+
Vue.version = `2.6.14-compat:${"3.4.37"}`;
|
|
4155
4159
|
Vue.config = singletonApp.config;
|
|
4156
4160
|
Vue.use = (plugin, ...options) => {
|
|
4157
4161
|
if (plugin && isFunction(plugin.install)) {
|
|
@@ -4622,7 +4626,7 @@ function provide(key, value) {
|
|
|
4622
4626
|
function inject(key, defaultValue, treatDefaultAsFactory = false) {
|
|
4623
4627
|
const instance = currentInstance || currentRenderingInstance;
|
|
4624
4628
|
if (instance || currentApp) {
|
|
4625
|
-
const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides :
|
|
4629
|
+
const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
|
|
4626
4630
|
if (provides && key in provides) {
|
|
4627
4631
|
return provides[key];
|
|
4628
4632
|
} else if (arguments.length > 1) {
|
|
@@ -5664,9 +5668,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
5664
5668
|
}
|
|
5665
5669
|
if (props) {
|
|
5666
5670
|
if (forcePatch || !optimized || patchFlag & (16 | 32)) {
|
|
5671
|
+
const isCustomElement = el.tagName.includes("-");
|
|
5667
5672
|
for (const key in props) {
|
|
5668
5673
|
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
|
|
5669
|
-
key[0] === ".") {
|
|
5674
|
+
key[0] === "." || isCustomElement) {
|
|
5670
5675
|
patchProp(el, key, null, props[key], void 0, parentComponent);
|
|
5671
5676
|
}
|
|
5672
5677
|
}
|
|
@@ -7102,13 +7107,13 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7102
7107
|
namespace
|
|
7103
7108
|
);
|
|
7104
7109
|
}
|
|
7110
|
+
container._vnode = vnode;
|
|
7105
7111
|
if (!isFlushing) {
|
|
7106
7112
|
isFlushing = true;
|
|
7107
7113
|
flushPreFlushCbs();
|
|
7108
7114
|
flushPostFlushCbs();
|
|
7109
7115
|
isFlushing = false;
|
|
7110
7116
|
}
|
|
7111
|
-
container._vnode = vnode;
|
|
7112
7117
|
};
|
|
7113
7118
|
const internals = {
|
|
7114
7119
|
p: patch,
|
|
@@ -7489,7 +7494,8 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
7489
7494
|
return options.get ? options.get(localValue) : localValue;
|
|
7490
7495
|
},
|
|
7491
7496
|
set(value) {
|
|
7492
|
-
|
|
7497
|
+
const emittedValue = options.set ? options.set(value) : value;
|
|
7498
|
+
if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
|
|
7493
7499
|
return;
|
|
7494
7500
|
}
|
|
7495
7501
|
const rawProps = i.vnode.props;
|
|
@@ -7498,7 +7504,6 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
7498
7504
|
localValue = value;
|
|
7499
7505
|
trigger();
|
|
7500
7506
|
}
|
|
7501
|
-
const emittedValue = options.set ? options.set(value) : value;
|
|
7502
7507
|
i.emit(`update:${name}`, emittedValue);
|
|
7503
7508
|
if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
|
|
7504
7509
|
trigger();
|
|
@@ -9171,7 +9176,7 @@ function isMemoSame(cached, memo) {
|
|
|
9171
9176
|
return true;
|
|
9172
9177
|
}
|
|
9173
9178
|
|
|
9174
|
-
const version = "3.4.
|
|
9179
|
+
const version = "3.4.37";
|
|
9175
9180
|
const warn$1 = NOOP;
|
|
9176
9181
|
const ErrorTypeStrings = ErrorTypeStrings$1 ;
|
|
9177
9182
|
const devtools = void 0;
|
|
@@ -9183,7 +9188,8 @@ const _ssrUtils = {
|
|
|
9183
9188
|
setCurrentRenderingInstance,
|
|
9184
9189
|
isVNode: isVNode,
|
|
9185
9190
|
normalizeVNode,
|
|
9186
|
-
getComponentPublicInstance
|
|
9191
|
+
getComponentPublicInstance,
|
|
9192
|
+
ensureValidVNode
|
|
9187
9193
|
};
|
|
9188
9194
|
const ssrUtils = _ssrUtils ;
|
|
9189
9195
|
const resolveFilter = resolveFilter$1 ;
|
|
@@ -12150,6 +12156,16 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
12150
12156
|
(id) => markScopeIdentifier(node, id, knownIds)
|
|
12151
12157
|
);
|
|
12152
12158
|
}
|
|
12159
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
12160
|
+
for (const id of extractIdentifiers(node.param)) {
|
|
12161
|
+
markScopeIdentifier(node, id, knownIds);
|
|
12162
|
+
}
|
|
12163
|
+
} else if (isForStatement(node)) {
|
|
12164
|
+
walkForStatement(
|
|
12165
|
+
node,
|
|
12166
|
+
false,
|
|
12167
|
+
(id) => markScopeIdentifier(node, id, knownIds)
|
|
12168
|
+
);
|
|
12153
12169
|
}
|
|
12154
12170
|
},
|
|
12155
12171
|
leave(node, parent) {
|
|
@@ -12230,14 +12246,20 @@ function walkBlockDeclarations(block, onIdent) {
|
|
|
12230
12246
|
} else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") {
|
|
12231
12247
|
if (stmt.declare || !stmt.id) continue;
|
|
12232
12248
|
onIdent(stmt.id);
|
|
12233
|
-
} else if (stmt
|
|
12234
|
-
|
|
12235
|
-
|
|
12236
|
-
|
|
12237
|
-
|
|
12238
|
-
|
|
12239
|
-
|
|
12240
|
-
|
|
12249
|
+
} else if (isForStatement(stmt)) {
|
|
12250
|
+
walkForStatement(stmt, true, onIdent);
|
|
12251
|
+
}
|
|
12252
|
+
}
|
|
12253
|
+
}
|
|
12254
|
+
function isForStatement(stmt) {
|
|
12255
|
+
return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement";
|
|
12256
|
+
}
|
|
12257
|
+
function walkForStatement(stmt, isVar, onIdent) {
|
|
12258
|
+
const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left;
|
|
12259
|
+
if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) {
|
|
12260
|
+
for (const decl of variable.declarations) {
|
|
12261
|
+
for (const id of extractIdentifiers(decl.id)) {
|
|
12262
|
+
onIdent(id);
|
|
12241
12263
|
}
|
|
12242
12264
|
}
|
|
12243
12265
|
}
|
|
@@ -15814,7 +15836,7 @@ function resolveComponentType(node, context, ssr = false) {
|
|
|
15814
15836
|
} else {
|
|
15815
15837
|
exp = isProp.exp;
|
|
15816
15838
|
if (!exp) {
|
|
15817
|
-
exp = createSimpleExpression(`is`, false, isProp.loc);
|
|
15839
|
+
exp = createSimpleExpression(`is`, false, isProp.arg.loc);
|
|
15818
15840
|
{
|
|
15819
15841
|
exp = isProp.exp = processExpression(exp, context);
|
|
15820
15842
|
}
|