@vue/compat 3.4.36 → 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 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 | Docs |
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 | ✔ | 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) | |
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.36
2
+ * @vue/compat v3.4.37
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -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 reciever is a user proxy of the reactive proxy
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.36"}`;
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 : currentApp._context.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) {
@@ -8885,13 +8889,13 @@ function baseCreateRenderer(options, createHydrationFns) {
8885
8889
  namespace
8886
8890
  );
8887
8891
  }
8892
+ container._vnode = vnode;
8888
8893
  if (!isFlushing) {
8889
8894
  isFlushing = true;
8890
8895
  flushPreFlushCbs();
8891
8896
  flushPostFlushCbs();
8892
8897
  isFlushing = false;
8893
8898
  }
8894
- container._vnode = vnode;
8895
8899
  };
8896
8900
  const internals = {
8897
8901
  p: patch,
@@ -9329,7 +9333,8 @@ function useModel(props, name, options = EMPTY_OBJ) {
9329
9333
  return options.get ? options.get(localValue) : localValue;
9330
9334
  },
9331
9335
  set(value) {
9332
- if (!hasChanged(value, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
9336
+ const emittedValue = options.set ? options.set(value) : value;
9337
+ if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
9333
9338
  return;
9334
9339
  }
9335
9340
  const rawProps = i.vnode.props;
@@ -9338,7 +9343,6 @@ function useModel(props, name, options = EMPTY_OBJ) {
9338
9343
  localValue = value;
9339
9344
  trigger();
9340
9345
  }
9341
- const emittedValue = options.set ? options.set(value) : value;
9342
9346
  i.emit(`update:${name}`, emittedValue);
9343
9347
  if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
9344
9348
  trigger();
@@ -9376,9 +9380,9 @@ function emit(instance, event, ...rawArgs) {
9376
9380
  } = instance;
9377
9381
  if (emitsOptions) {
9378
9382
  if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
9379
- if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
9383
+ if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {
9380
9384
  warn$1(
9381
- `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.`
9382
9386
  );
9383
9387
  }
9384
9388
  } else {
@@ -11525,7 +11529,7 @@ function isMemoSame(cached, memo) {
11525
11529
  return true;
11526
11530
  }
11527
11531
 
11528
- const version = "3.4.36";
11532
+ const version = "3.4.37";
11529
11533
  const warn = warn$1 ;
11530
11534
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11531
11535
  const devtools = devtools$1 ;
@@ -11537,7 +11541,8 @@ const _ssrUtils = {
11537
11541
  setCurrentRenderingInstance,
11538
11542
  isVNode: isVNode,
11539
11543
  normalizeVNode,
11540
- getComponentPublicInstance
11544
+ getComponentPublicInstance,
11545
+ ensureValidVNode
11541
11546
  };
11542
11547
  const ssrUtils = _ssrUtils ;
11543
11548
  const resolveFilter = resolveFilter$1 ;
@@ -18465,7 +18470,7 @@ function resolveComponentType(node, context, ssr = false) {
18465
18470
  } else {
18466
18471
  exp = isProp.exp;
18467
18472
  if (!exp) {
18468
- exp = createSimpleExpression(`is`, false, isProp.loc);
18473
+ exp = createSimpleExpression(`is`, false, isProp.arg.loc);
18469
18474
  {
18470
18475
  exp = isProp.exp = processExpression(exp, context);
18471
18476
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.4.36
2
+ * @vue/compat v3.4.37
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -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 reciever is a user proxy of the reactive proxy
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.36"}`;
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 : currentApp._context.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) {
@@ -7103,13 +7107,13 @@ function baseCreateRenderer(options, createHydrationFns) {
7103
7107
  namespace
7104
7108
  );
7105
7109
  }
7110
+ container._vnode = vnode;
7106
7111
  if (!isFlushing) {
7107
7112
  isFlushing = true;
7108
7113
  flushPreFlushCbs();
7109
7114
  flushPostFlushCbs();
7110
7115
  isFlushing = false;
7111
7116
  }
7112
- container._vnode = vnode;
7113
7117
  };
7114
7118
  const internals = {
7115
7119
  p: patch,
@@ -7490,7 +7494,8 @@ function useModel(props, name, options = EMPTY_OBJ) {
7490
7494
  return options.get ? options.get(localValue) : localValue;
7491
7495
  },
7492
7496
  set(value) {
7493
- if (!hasChanged(value, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
7497
+ const emittedValue = options.set ? options.set(value) : value;
7498
+ if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
7494
7499
  return;
7495
7500
  }
7496
7501
  const rawProps = i.vnode.props;
@@ -7499,7 +7504,6 @@ function useModel(props, name, options = EMPTY_OBJ) {
7499
7504
  localValue = value;
7500
7505
  trigger();
7501
7506
  }
7502
- const emittedValue = options.set ? options.set(value) : value;
7503
7507
  i.emit(`update:${name}`, emittedValue);
7504
7508
  if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
7505
7509
  trigger();
@@ -9172,7 +9176,7 @@ function isMemoSame(cached, memo) {
9172
9176
  return true;
9173
9177
  }
9174
9178
 
9175
- const version = "3.4.36";
9179
+ const version = "3.4.37";
9176
9180
  const warn$1 = NOOP;
9177
9181
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
9178
9182
  const devtools = void 0;
@@ -9184,7 +9188,8 @@ const _ssrUtils = {
9184
9188
  setCurrentRenderingInstance,
9185
9189
  isVNode: isVNode,
9186
9190
  normalizeVNode,
9187
- getComponentPublicInstance
9191
+ getComponentPublicInstance,
9192
+ ensureValidVNode
9188
9193
  };
9189
9194
  const ssrUtils = _ssrUtils ;
9190
9195
  const resolveFilter = resolveFilter$1 ;
@@ -15831,7 +15836,7 @@ function resolveComponentType(node, context, ssr = false) {
15831
15836
  } else {
15832
15837
  exp = isProp.exp;
15833
15838
  if (!exp) {
15834
- exp = createSimpleExpression(`is`, false, isProp.loc);
15839
+ exp = createSimpleExpression(`is`, false, isProp.arg.loc);
15835
15840
  {
15836
15841
  exp = isProp.exp = processExpression(exp, context);
15837
15842
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.4.36
2
+ * @vue/compat v3.4.37
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -817,7 +817,7 @@ class BaseReactiveHandler {
817
817
  return isShallow2;
818
818
  } else if (key === "__v_raw") {
819
819
  if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
820
- // this means the reciever is a user proxy of the reactive proxy
820
+ // this means the receiver is a user proxy of the reactive proxy
821
821
  Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
822
822
  return target;
823
823
  }
@@ -3467,7 +3467,7 @@ const KeepAliveImpl = {
3467
3467
  }
3468
3468
  function pruneCacheEntry(key) {
3469
3469
  const cached = cache.get(key);
3470
- if (!current || !isSameVNodeType(cached, current)) {
3470
+ if (cached && (!current || !isSameVNodeType(cached, current))) {
3471
3471
  unmount(cached);
3472
3472
  } else if (current) {
3473
3473
  resetShapeFlag(current);
@@ -3529,6 +3529,10 @@ const KeepAliveImpl = {
3529
3529
  return rawVNode;
3530
3530
  }
3531
3531
  let vnode = getInnerChild(rawVNode);
3532
+ if (vnode.type === Comment) {
3533
+ current = null;
3534
+ return vnode;
3535
+ }
3532
3536
  const comp = vnode.type;
3533
3537
  const name = getComponentName(
3534
3538
  isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp
@@ -5246,7 +5250,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5246
5250
  return vm;
5247
5251
  }
5248
5252
  }
5249
- Vue.version = `2.6.14-compat:${"3.4.36"}`;
5253
+ Vue.version = `2.6.14-compat:${"3.4.37"}`;
5250
5254
  Vue.config = singletonApp.config;
5251
5255
  Vue.use = (plugin, ...options) => {
5252
5256
  if (plugin && isFunction(plugin.install)) {
@@ -5822,7 +5826,7 @@ function provide(key, value) {
5822
5826
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
5823
5827
  const instance = currentInstance || currentRenderingInstance;
5824
5828
  if (instance || currentApp) {
5825
- const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;
5829
+ const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
5826
5830
  if (provides && key in provides) {
5827
5831
  return provides[key];
5828
5832
  } else if (arguments.length > 1) {
@@ -8828,13 +8832,13 @@ function baseCreateRenderer(options, createHydrationFns) {
8828
8832
  namespace
8829
8833
  );
8830
8834
  }
8835
+ container._vnode = vnode;
8831
8836
  if (!isFlushing) {
8832
8837
  isFlushing = true;
8833
8838
  flushPreFlushCbs();
8834
8839
  flushPostFlushCbs();
8835
8840
  isFlushing = false;
8836
8841
  }
8837
- container._vnode = vnode;
8838
8842
  };
8839
8843
  const internals = {
8840
8844
  p: patch,
@@ -9252,7 +9256,8 @@ function useModel(props, name, options = EMPTY_OBJ) {
9252
9256
  return options.get ? options.get(localValue) : localValue;
9253
9257
  },
9254
9258
  set(value) {
9255
- if (!hasChanged(value, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
9259
+ const emittedValue = options.set ? options.set(value) : value;
9260
+ if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
9256
9261
  return;
9257
9262
  }
9258
9263
  const rawProps = i.vnode.props;
@@ -9261,7 +9266,6 @@ function useModel(props, name, options = EMPTY_OBJ) {
9261
9266
  localValue = value;
9262
9267
  trigger();
9263
9268
  }
9264
- const emittedValue = options.set ? options.set(value) : value;
9265
9269
  i.emit(`update:${name}`, emittedValue);
9266
9270
  if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
9267
9271
  trigger();
@@ -9299,9 +9303,9 @@ function emit(instance, event, ...rawArgs) {
9299
9303
  } = instance;
9300
9304
  if (emitsOptions) {
9301
9305
  if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
9302
- if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
9306
+ if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {
9303
9307
  warn$1(
9304
- `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
9308
+ `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`
9305
9309
  );
9306
9310
  }
9307
9311
  } else {
@@ -11434,7 +11438,7 @@ function isMemoSame(cached, memo) {
11434
11438
  return true;
11435
11439
  }
11436
11440
 
11437
- const version = "3.4.36";
11441
+ const version = "3.4.37";
11438
11442
  const warn = warn$1 ;
11439
11443
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11440
11444
  const devtools = devtools$1 ;
@@ -11901,8 +11905,10 @@ function useCssVars(getter) {
11901
11905
  setVarsOnVNode(instance.subTree, vars);
11902
11906
  updateTeleports(vars);
11903
11907
  };
11904
- onMounted(() => {
11908
+ onBeforeMount(() => {
11905
11909
  watchPostEffect(setVars);
11910
+ });
11911
+ onMounted(() => {
11906
11912
  const ob = new MutationObserver(setVars);
11907
11913
  ob.observe(instance.subTree.el.parentNode, { childList: true });
11908
11914
  onUnmounted(() => ob.disconnect());
@@ -17534,7 +17540,7 @@ function resolveComponentType(node, context, ssr = false) {
17534
17540
  } else {
17535
17541
  exp = isProp.exp;
17536
17542
  if (!exp) {
17537
- exp = createSimpleExpression(`is`, false, isProp.loc);
17543
+ exp = createSimpleExpression(`is`, false, isProp.arg.loc);
17538
17544
  }
17539
17545
  }
17540
17546
  if (exp) {