@vue/compat 3.3.7 → 3.3.9

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.
@@ -940,7 +940,7 @@ function createReadonlyMethod(type) {
940
940
  toRaw(this)
941
941
  );
942
942
  }
943
- return type === "delete" ? false : this;
943
+ return type === "delete" ? false : type === "clear" ? void 0 : this;
944
944
  };
945
945
  }
946
946
  function createInstrumentations() {
@@ -2681,9 +2681,19 @@ function renderComponentRoot(instance) {
2681
2681
  try {
2682
2682
  if (vnode.shapeFlag & 4) {
2683
2683
  const proxyToUse = withProxy || proxy;
2684
+ const thisProxy = !!(process.env.NODE_ENV !== "production") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {
2685
+ get(target, key, receiver) {
2686
+ warn(
2687
+ `Property '${String(
2688
+ key
2689
+ )}' was accessed via 'this'. Avoid using 'this' in templates.`
2690
+ );
2691
+ return Reflect.get(target, key, receiver);
2692
+ }
2693
+ }) : proxyToUse;
2684
2694
  result = normalizeVNode(
2685
2695
  render.call(
2686
- proxyToUse,
2696
+ thisProxy,
2687
2697
  proxyToUse,
2688
2698
  renderCache,
2689
2699
  props,
@@ -2934,6 +2944,65 @@ function updateHOCHostEl({ vnode, parent }, el) {
2934
2944
  }
2935
2945
  }
2936
2946
 
2947
+ const COMPONENTS = "components";
2948
+ const DIRECTIVES = "directives";
2949
+ const FILTERS = "filters";
2950
+ function resolveComponent(name, maybeSelfReference) {
2951
+ return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
2952
+ }
2953
+ const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
2954
+ function resolveDynamicComponent(component) {
2955
+ if (isString(component)) {
2956
+ return resolveAsset(COMPONENTS, component, false) || component;
2957
+ } else {
2958
+ return component || NULL_DYNAMIC_COMPONENT;
2959
+ }
2960
+ }
2961
+ function resolveDirective(name) {
2962
+ return resolveAsset(DIRECTIVES, name);
2963
+ }
2964
+ function resolveFilter$1(name) {
2965
+ return resolveAsset(FILTERS, name);
2966
+ }
2967
+ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
2968
+ const instance = currentRenderingInstance || currentInstance;
2969
+ if (instance) {
2970
+ const Component = instance.type;
2971
+ if (type === COMPONENTS) {
2972
+ const selfName = getComponentName(
2973
+ Component,
2974
+ false
2975
+ /* do not include inferred name to avoid breaking existing code */
2976
+ );
2977
+ if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
2978
+ return Component;
2979
+ }
2980
+ }
2981
+ const res = (
2982
+ // local registration
2983
+ // check instance[type] first which is resolved for options API
2984
+ resolve(instance[type] || Component[type], name) || // global registration
2985
+ resolve(instance.appContext[type], name)
2986
+ );
2987
+ if (!res && maybeSelfReference) {
2988
+ return Component;
2989
+ }
2990
+ if (!!(process.env.NODE_ENV !== "production") && warnMissing && !res) {
2991
+ const extra = type === COMPONENTS ? `
2992
+ If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
2993
+ warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
2994
+ }
2995
+ return res;
2996
+ } else if (!!(process.env.NODE_ENV !== "production")) {
2997
+ warn(
2998
+ `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
2999
+ );
3000
+ }
3001
+ }
3002
+ function resolve(registry, name) {
3003
+ return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
3004
+ }
3005
+
2937
3006
  const isSuspense = (type) => type.__isSuspense;
2938
3007
  const SuspenseImpl = {
2939
3008
  name: "Suspense",
@@ -3468,7 +3537,7 @@ function normalizeSuspenseSlot(s) {
3468
3537
  }
3469
3538
  if (isArray(s)) {
3470
3539
  const singleChild = filterSingleRoot(s);
3471
- if (!!(process.env.NODE_ENV !== "production") && !singleChild) {
3540
+ if (!!(process.env.NODE_ENV !== "production") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
3472
3541
  warn(`<Suspense> slots expect a single root node.`);
3473
3542
  }
3474
3543
  s = singleChild;
@@ -3654,6 +3723,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
3654
3723
  let onCleanup = (fn) => {
3655
3724
  cleanup = effect.onStop = () => {
3656
3725
  callWithErrorHandling(fn, instance, 4);
3726
+ cleanup = effect.onStop = void 0;
3657
3727
  };
3658
3728
  };
3659
3729
  let ssrCleanup;
@@ -4153,7 +4223,11 @@ function emptyPlaceholder(vnode) {
4153
4223
  }
4154
4224
  }
4155
4225
  function getKeepAliveChild(vnode) {
4156
- return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;
4226
+ return isKeepAlive(vnode) ? (
4227
+ // #7121 ensure get the child component subtree in case
4228
+ // it's been replaced during HMR
4229
+ !!(process.env.NODE_ENV !== "production") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0
4230
+ ) : vnode;
4157
4231
  }
4158
4232
  function setTransitionHooks(vnode, hooks) {
4159
4233
  if (vnode.shapeFlag & 6 && vnode.component) {
@@ -4674,65 +4748,6 @@ function getCompatListeners(instance) {
4674
4748
  return listeners;
4675
4749
  }
4676
4750
 
4677
- const COMPONENTS = "components";
4678
- const DIRECTIVES = "directives";
4679
- const FILTERS = "filters";
4680
- function resolveComponent(name, maybeSelfReference) {
4681
- return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
4682
- }
4683
- const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
4684
- function resolveDynamicComponent(component) {
4685
- if (isString(component)) {
4686
- return resolveAsset(COMPONENTS, component, false) || component;
4687
- } else {
4688
- return component || NULL_DYNAMIC_COMPONENT;
4689
- }
4690
- }
4691
- function resolveDirective(name) {
4692
- return resolveAsset(DIRECTIVES, name);
4693
- }
4694
- function resolveFilter$1(name) {
4695
- return resolveAsset(FILTERS, name);
4696
- }
4697
- function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
4698
- const instance = currentRenderingInstance || currentInstance;
4699
- if (instance) {
4700
- const Component = instance.type;
4701
- if (type === COMPONENTS) {
4702
- const selfName = getComponentName(
4703
- Component,
4704
- false
4705
- /* do not include inferred name to avoid breaking existing code */
4706
- );
4707
- if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
4708
- return Component;
4709
- }
4710
- }
4711
- const res = (
4712
- // local registration
4713
- // check instance[type] first which is resolved for options API
4714
- resolve(instance[type] || Component[type], name) || // global registration
4715
- resolve(instance.appContext[type], name)
4716
- );
4717
- if (!res && maybeSelfReference) {
4718
- return Component;
4719
- }
4720
- if (!!(process.env.NODE_ENV !== "production") && warnMissing && !res) {
4721
- const extra = type === COMPONENTS ? `
4722
- If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
4723
- warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
4724
- }
4725
- return res;
4726
- } else if (!!(process.env.NODE_ENV !== "production")) {
4727
- warn(
4728
- `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
4729
- );
4730
- }
4731
- }
4732
- function resolve(registry, name) {
4733
- return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
4734
- }
4735
-
4736
4751
  function convertLegacyRenderFn(instance) {
4737
4752
  const Component2 = instance.type;
4738
4753
  const render = Component2.render;
@@ -6237,7 +6252,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6237
6252
  return vm;
6238
6253
  }
6239
6254
  }
6240
- Vue.version = `2.6.14-compat:${"3.3.7"}`;
6255
+ Vue.version = `2.6.14-compat:${"3.3.9"}`;
6241
6256
  Vue.config = singletonApp.config;
6242
6257
  Vue.use = (p, ...options) => {
6243
6258
  if (p && isFunction(p.install)) {
@@ -7268,6 +7283,9 @@ function assertType(value, type) {
7268
7283
  };
7269
7284
  }
7270
7285
  function getInvalidTypeMessage(name, value, expectedTypes) {
7286
+ if (expectedTypes.length === 0) {
7287
+ return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`;
7288
+ }
7271
7289
  let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`;
7272
7290
  const expectedType = expectedTypes[0];
7273
7291
  const receivedType = toRawType(value);
@@ -7539,6 +7557,20 @@ function createHydrationFunctions(rendererInternals) {
7539
7557
  const { type, ref, shapeFlag, patchFlag } = vnode;
7540
7558
  let domType = node.nodeType;
7541
7559
  vnode.el = node;
7560
+ if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) {
7561
+ if (!("__vnode" in node)) {
7562
+ Object.defineProperty(node, "__vnode", {
7563
+ value: vnode,
7564
+ enumerable: false
7565
+ });
7566
+ }
7567
+ if (!("__vueParentComponent" in node)) {
7568
+ Object.defineProperty(node, "__vueParentComponent", {
7569
+ value: parentComponent,
7570
+ enumerable: false
7571
+ });
7572
+ }
7573
+ }
7542
7574
  if (patchFlag === -2) {
7543
7575
  optimized = false;
7544
7576
  vnode.dynamicChildren = null;
@@ -7569,15 +7601,15 @@ function createHydrationFunctions(rendererInternals) {
7569
7601
  }
7570
7602
  break;
7571
7603
  case Comment:
7572
- if (domType !== 8 /* COMMENT */ || isFragmentStart) {
7573
- if (node.tagName.toLowerCase() === "template") {
7574
- const content = vnode.el.content.firstChild;
7575
- replaceNode(content, node, parentComponent);
7576
- vnode.el = node = content;
7577
- nextNode = nextSibling(node);
7578
- } else {
7579
- nextNode = onMismatch();
7580
- }
7604
+ if (isTemplateNode(node)) {
7605
+ nextNode = nextSibling(node);
7606
+ replaceNode(
7607
+ vnode.el = node.content.firstChild,
7608
+ node,
7609
+ parentComponent
7610
+ );
7611
+ } else if (domType !== 8 /* COMMENT */ || isFragmentStart) {
7612
+ nextNode = onMismatch();
7581
7613
  } else {
7582
7614
  nextNode = nextSibling(node);
7583
7615
  }
@@ -7700,15 +7732,16 @@ function createHydrationFunctions(rendererInternals) {
7700
7732
  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
7701
7733
  optimized = optimized || !!vnode.dynamicChildren;
7702
7734
  const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;
7703
- const forcePatchValue = type === "input" && dirs || type === "option";
7704
- if (!!(process.env.NODE_ENV !== "production") || forcePatchValue || patchFlag !== -1) {
7735
+ const forcePatch = type === "input" || type === "option";
7736
+ if (!!(process.env.NODE_ENV !== "production") || forcePatch || patchFlag !== -1) {
7705
7737
  if (dirs) {
7706
7738
  invokeDirectiveHook(vnode, null, parentComponent, "created");
7707
7739
  }
7708
7740
  if (props) {
7709
- if (forcePatchValue || !optimized || patchFlag & (16 | 32)) {
7741
+ if (forcePatch || !optimized || patchFlag & (16 | 32)) {
7710
7742
  for (const key in props) {
7711
- if (forcePatchValue && key.endsWith("value") || isOn(key) && !isReservedProp(key)) {
7743
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
7744
+ key[0] === ".") {
7712
7745
  patchProp(
7713
7746
  el,
7714
7747
  key,
@@ -7921,8 +7954,7 @@ function createHydrationFunctions(rendererInternals) {
7921
7954
  let parent = parentComponent;
7922
7955
  while (parent) {
7923
7956
  if (parent.vnode.el === oldNode) {
7924
- parent.vnode.el = newNode;
7925
- parent.subTree.el = newNode;
7957
+ parent.vnode.el = parent.subTree.el = newNode;
7926
7958
  }
7927
7959
  parent = parent.parent;
7928
7960
  }
@@ -9534,6 +9566,7 @@ const resolveTarget = (props, select) => {
9534
9566
  }
9535
9567
  };
9536
9568
  const TeleportImpl = {
9569
+ name: "Teleport",
9537
9570
  __isTeleport: true,
9538
9571
  process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {
9539
9572
  const {
@@ -10013,7 +10046,7 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
10013
10046
  if (!!(process.env.NODE_ENV !== "production") && shapeFlag & 4 && isProxy(type)) {
10014
10047
  type = toRaw(type);
10015
10048
  warn(
10016
- `Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`,
10049
+ `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`,
10017
10050
  `
10018
10051
  Component that was made reactive: `,
10019
10052
  type
@@ -10877,7 +10910,7 @@ function isMemoSame(cached, memo) {
10877
10910
  return true;
10878
10911
  }
10879
10912
 
10880
- const version = "3.3.7";
10913
+ const version = "3.3.9";
10881
10914
  const _ssrUtils = {
10882
10915
  createComponentInstance,
10883
10916
  setupComponent,
@@ -12133,21 +12166,20 @@ const vModelText = {
12133
12166
  el[assignKey] = getModelAssigner(vnode);
12134
12167
  if (el.composing)
12135
12168
  return;
12169
+ const elValue = number || el.type === "number" ? looseToNumber(el.value) : el.value;
12170
+ const newValue = value == null ? "" : value;
12171
+ if (elValue === newValue) {
12172
+ return;
12173
+ }
12136
12174
  if (document.activeElement === el && el.type !== "range") {
12137
12175
  if (lazy) {
12138
12176
  return;
12139
12177
  }
12140
- if (trim && el.value.trim() === value) {
12178
+ if (trim && el.value.trim() === newValue) {
12141
12179
  return;
12142
12180
  }
12143
- if ((number || el.type === "number") && looseToNumber(el.value) === value) {
12144
- return;
12145
- }
12146
- }
12147
- const newValue = value == null ? "" : value;
12148
- if (el.value !== newValue) {
12149
- el.value = newValue;
12150
12181
  }
12182
+ el.value = newValue;
12151
12183
  }
12152
12184
  };
12153
12185
  const vModelCheckbox = {
@@ -939,7 +939,7 @@ var Vue = (function () {
939
939
  toRaw(this)
940
940
  );
941
941
  }
942
- return type === "delete" ? false : this;
942
+ return type === "delete" ? false : type === "clear" ? void 0 : this;
943
943
  };
944
944
  }
945
945
  function createInstrumentations() {
@@ -2667,9 +2667,19 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2667
2667
  try {
2668
2668
  if (vnode.shapeFlag & 4) {
2669
2669
  const proxyToUse = withProxy || proxy;
2670
+ const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, {
2671
+ get(target, key, receiver) {
2672
+ warn(
2673
+ `Property '${String(
2674
+ key
2675
+ )}' was accessed via 'this'. Avoid using 'this' in templates.`
2676
+ );
2677
+ return Reflect.get(target, key, receiver);
2678
+ }
2679
+ }) : proxyToUse;
2670
2680
  result = normalizeVNode(
2671
2681
  render.call(
2672
- proxyToUse,
2682
+ thisProxy,
2673
2683
  proxyToUse,
2674
2684
  renderCache,
2675
2685
  props,
@@ -2920,6 +2930,65 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2920
2930
  }
2921
2931
  }
2922
2932
 
2933
+ const COMPONENTS = "components";
2934
+ const DIRECTIVES = "directives";
2935
+ const FILTERS = "filters";
2936
+ function resolveComponent(name, maybeSelfReference) {
2937
+ return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
2938
+ }
2939
+ const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
2940
+ function resolveDynamicComponent(component) {
2941
+ if (isString(component)) {
2942
+ return resolveAsset(COMPONENTS, component, false) || component;
2943
+ } else {
2944
+ return component || NULL_DYNAMIC_COMPONENT;
2945
+ }
2946
+ }
2947
+ function resolveDirective(name) {
2948
+ return resolveAsset(DIRECTIVES, name);
2949
+ }
2950
+ function resolveFilter$1(name) {
2951
+ return resolveAsset(FILTERS, name);
2952
+ }
2953
+ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
2954
+ const instance = currentRenderingInstance || currentInstance;
2955
+ if (instance) {
2956
+ const Component = instance.type;
2957
+ if (type === COMPONENTS) {
2958
+ const selfName = getComponentName(
2959
+ Component,
2960
+ false
2961
+ /* do not include inferred name to avoid breaking existing code */
2962
+ );
2963
+ if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
2964
+ return Component;
2965
+ }
2966
+ }
2967
+ const res = (
2968
+ // local registration
2969
+ // check instance[type] first which is resolved for options API
2970
+ resolve(instance[type] || Component[type], name) || // global registration
2971
+ resolve(instance.appContext[type], name)
2972
+ );
2973
+ if (!res && maybeSelfReference) {
2974
+ return Component;
2975
+ }
2976
+ if (warnMissing && !res) {
2977
+ const extra = type === COMPONENTS ? `
2978
+ If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
2979
+ warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
2980
+ }
2981
+ return res;
2982
+ } else {
2983
+ warn(
2984
+ `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
2985
+ );
2986
+ }
2987
+ }
2988
+ function resolve(registry, name) {
2989
+ return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
2990
+ }
2991
+
2923
2992
  const isSuspense = (type) => type.__isSuspense;
2924
2993
  const SuspenseImpl = {
2925
2994
  name: "Suspense",
@@ -3454,7 +3523,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3454
3523
  }
3455
3524
  if (isArray(s)) {
3456
3525
  const singleChild = filterSingleRoot(s);
3457
- if (!singleChild) {
3526
+ if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
3458
3527
  warn(`<Suspense> slots expect a single root node.`);
3459
3528
  }
3460
3529
  s = singleChild;
@@ -3640,6 +3709,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3640
3709
  let onCleanup = (fn) => {
3641
3710
  cleanup = effect.onStop = () => {
3642
3711
  callWithErrorHandling(fn, instance, 4);
3712
+ cleanup = effect.onStop = void 0;
3643
3713
  };
3644
3714
  };
3645
3715
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -4116,7 +4186,11 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4116
4186
  }
4117
4187
  }
4118
4188
  function getKeepAliveChild(vnode) {
4119
- return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;
4189
+ return isKeepAlive(vnode) ? (
4190
+ // #7121 ensure get the child component subtree in case
4191
+ // it's been replaced during HMR
4192
+ vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0
4193
+ ) : vnode;
4120
4194
  }
4121
4195
  function setTransitionHooks(vnode, hooks) {
4122
4196
  if (vnode.shapeFlag & 6 && vnode.component) {
@@ -4631,65 +4705,6 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4631
4705
  return listeners;
4632
4706
  }
4633
4707
 
4634
- const COMPONENTS = "components";
4635
- const DIRECTIVES = "directives";
4636
- const FILTERS = "filters";
4637
- function resolveComponent(name, maybeSelfReference) {
4638
- return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
4639
- }
4640
- const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
4641
- function resolveDynamicComponent(component) {
4642
- if (isString(component)) {
4643
- return resolveAsset(COMPONENTS, component, false) || component;
4644
- } else {
4645
- return component || NULL_DYNAMIC_COMPONENT;
4646
- }
4647
- }
4648
- function resolveDirective(name) {
4649
- return resolveAsset(DIRECTIVES, name);
4650
- }
4651
- function resolveFilter$1(name) {
4652
- return resolveAsset(FILTERS, name);
4653
- }
4654
- function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
4655
- const instance = currentRenderingInstance || currentInstance;
4656
- if (instance) {
4657
- const Component = instance.type;
4658
- if (type === COMPONENTS) {
4659
- const selfName = getComponentName(
4660
- Component,
4661
- false
4662
- /* do not include inferred name to avoid breaking existing code */
4663
- );
4664
- if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
4665
- return Component;
4666
- }
4667
- }
4668
- const res = (
4669
- // local registration
4670
- // check instance[type] first which is resolved for options API
4671
- resolve(instance[type] || Component[type], name) || // global registration
4672
- resolve(instance.appContext[type], name)
4673
- );
4674
- if (!res && maybeSelfReference) {
4675
- return Component;
4676
- }
4677
- if (warnMissing && !res) {
4678
- const extra = type === COMPONENTS ? `
4679
- If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
4680
- warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
4681
- }
4682
- return res;
4683
- } else {
4684
- warn(
4685
- `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
4686
- );
4687
- }
4688
- }
4689
- function resolve(registry, name) {
4690
- return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
4691
- }
4692
-
4693
4708
  function convertLegacyRenderFn(instance) {
4694
4709
  const Component2 = instance.type;
4695
4710
  const render = Component2.render;
@@ -6192,7 +6207,7 @@ If this is a native custom element, make sure to exclude it from component resol
6192
6207
  return vm;
6193
6208
  }
6194
6209
  }
6195
- Vue.version = `2.6.14-compat:${"3.3.7"}`;
6210
+ Vue.version = `2.6.14-compat:${"3.3.9"}`;
6196
6211
  Vue.config = singletonApp.config;
6197
6212
  Vue.use = (p, ...options) => {
6198
6213
  if (p && isFunction(p.install)) {
@@ -7220,6 +7235,9 @@ If you want to remount the same app, move your app creation logic into a factory
7220
7235
  };
7221
7236
  }
7222
7237
  function getInvalidTypeMessage(name, value, expectedTypes) {
7238
+ if (expectedTypes.length === 0) {
7239
+ return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`;
7240
+ }
7223
7241
  let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`;
7224
7242
  const expectedType = expectedTypes[0];
7225
7243
  const receivedType = toRawType(value);
@@ -7491,6 +7509,20 @@ If you want to remount the same app, move your app creation logic into a factory
7491
7509
  const { type, ref, shapeFlag, patchFlag } = vnode;
7492
7510
  let domType = node.nodeType;
7493
7511
  vnode.el = node;
7512
+ {
7513
+ if (!("__vnode" in node)) {
7514
+ Object.defineProperty(node, "__vnode", {
7515
+ value: vnode,
7516
+ enumerable: false
7517
+ });
7518
+ }
7519
+ if (!("__vueParentComponent" in node)) {
7520
+ Object.defineProperty(node, "__vueParentComponent", {
7521
+ value: parentComponent,
7522
+ enumerable: false
7523
+ });
7524
+ }
7525
+ }
7494
7526
  if (patchFlag === -2) {
7495
7527
  optimized = false;
7496
7528
  vnode.dynamicChildren = null;
@@ -7521,15 +7553,15 @@ If you want to remount the same app, move your app creation logic into a factory
7521
7553
  }
7522
7554
  break;
7523
7555
  case Comment:
7524
- if (domType !== 8 /* COMMENT */ || isFragmentStart) {
7525
- if (node.tagName.toLowerCase() === "template") {
7526
- const content = vnode.el.content.firstChild;
7527
- replaceNode(content, node, parentComponent);
7528
- vnode.el = node = content;
7529
- nextNode = nextSibling(node);
7530
- } else {
7531
- nextNode = onMismatch();
7532
- }
7556
+ if (isTemplateNode(node)) {
7557
+ nextNode = nextSibling(node);
7558
+ replaceNode(
7559
+ vnode.el = node.content.firstChild,
7560
+ node,
7561
+ parentComponent
7562
+ );
7563
+ } else if (domType !== 8 /* COMMENT */ || isFragmentStart) {
7564
+ nextNode = onMismatch();
7533
7565
  } else {
7534
7566
  nextNode = nextSibling(node);
7535
7567
  }
@@ -7652,15 +7684,16 @@ If you want to remount the same app, move your app creation logic into a factory
7652
7684
  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
7653
7685
  optimized = optimized || !!vnode.dynamicChildren;
7654
7686
  const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;
7655
- const forcePatchValue = type === "input" && dirs || type === "option";
7687
+ const forcePatch = type === "input" || type === "option";
7656
7688
  {
7657
7689
  if (dirs) {
7658
7690
  invokeDirectiveHook(vnode, null, parentComponent, "created");
7659
7691
  }
7660
7692
  if (props) {
7661
- if (forcePatchValue || !optimized || patchFlag & (16 | 32)) {
7693
+ if (forcePatch || !optimized || patchFlag & (16 | 32)) {
7662
7694
  for (const key in props) {
7663
- if (forcePatchValue && key.endsWith("value") || isOn(key) && !isReservedProp(key)) {
7695
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
7696
+ key[0] === ".") {
7664
7697
  patchProp(
7665
7698
  el,
7666
7699
  key,
@@ -7873,8 +7906,7 @@ If you want to remount the same app, move your app creation logic into a factory
7873
7906
  let parent = parentComponent;
7874
7907
  while (parent) {
7875
7908
  if (parent.vnode.el === oldNode) {
7876
- parent.vnode.el = newNode;
7877
- parent.subTree.el = newNode;
7909
+ parent.vnode.el = parent.subTree.el = newNode;
7878
7910
  }
7879
7911
  parent = parent.parent;
7880
7912
  }
@@ -9452,6 +9484,7 @@ If you want to remount the same app, move your app creation logic into a factory
9452
9484
  }
9453
9485
  };
9454
9486
  const TeleportImpl = {
9487
+ name: "Teleport",
9455
9488
  __isTeleport: true,
9456
9489
  process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {
9457
9490
  const {
@@ -9931,7 +9964,7 @@ If you want to remount the same app, move your app creation logic into a factory
9931
9964
  if (shapeFlag & 4 && isProxy(type)) {
9932
9965
  type = toRaw(type);
9933
9966
  warn(
9934
- `Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`,
9967
+ `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`,
9935
9968
  `
9936
9969
  Component that was made reactive: `,
9937
9970
  type
@@ -10761,7 +10794,7 @@ Component that was made reactive: `,
10761
10794
  return true;
10762
10795
  }
10763
10796
 
10764
- const version = "3.3.7";
10797
+ const version = "3.3.9";
10765
10798
  const ssrUtils = null;
10766
10799
  const resolveFilter = resolveFilter$1 ;
10767
10800
  const _compatUtils = {
@@ -11990,21 +12023,20 @@ Component that was made reactive: `,
11990
12023
  el[assignKey] = getModelAssigner(vnode);
11991
12024
  if (el.composing)
11992
12025
  return;
12026
+ const elValue = number || el.type === "number" ? looseToNumber(el.value) : el.value;
12027
+ const newValue = value == null ? "" : value;
12028
+ if (elValue === newValue) {
12029
+ return;
12030
+ }
11993
12031
  if (document.activeElement === el && el.type !== "range") {
11994
12032
  if (lazy) {
11995
12033
  return;
11996
12034
  }
11997
- if (trim && el.value.trim() === value) {
12035
+ if (trim && el.value.trim() === newValue) {
11998
12036
  return;
11999
12037
  }
12000
- if ((number || el.type === "number") && looseToNumber(el.value) === value) {
12001
- return;
12002
- }
12003
- }
12004
- const newValue = value == null ? "" : value;
12005
- if (el.value !== newValue) {
12006
- el.value = newValue;
12007
12038
  }
12039
+ el.value = newValue;
12008
12040
  }
12009
12041
  };
12010
12042
  const vModelCheckbox = {