@vue/compat 3.4.0-rc.1 → 3.4.0-rc.3

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.
@@ -348,7 +348,7 @@ var Vue = (function () {
348
348
  return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
349
349
  };
350
350
 
351
- function warn$1(msg, ...args) {
351
+ function warn$2(msg, ...args) {
352
352
  console.warn(`[Vue warn] ${msg}`, ...args);
353
353
  }
354
354
 
@@ -388,7 +388,7 @@ var Vue = (function () {
388
388
  activeEffectScope = currentEffectScope;
389
389
  }
390
390
  } else {
391
- warn$1(`cannot run an inactive effect scope.`);
391
+ warn$2(`cannot run an inactive effect scope.`);
392
392
  }
393
393
  }
394
394
  /**
@@ -446,7 +446,7 @@ var Vue = (function () {
446
446
  if (activeEffectScope) {
447
447
  activeEffectScope.cleanups.push(fn);
448
448
  } else {
449
- warn$1(
449
+ warn$2(
450
450
  `onScopeDispose() is called when there is no active effect scope to be associated with.`
451
451
  );
452
452
  }
@@ -894,7 +894,7 @@ var Vue = (function () {
894
894
  }
895
895
  set(target, key) {
896
896
  {
897
- warn$1(
897
+ warn$2(
898
898
  `Set operation on key "${String(key)}" failed: target is readonly.`,
899
899
  target
900
900
  );
@@ -903,7 +903,7 @@ var Vue = (function () {
903
903
  }
904
904
  deleteProperty(target, key) {
905
905
  {
906
- warn$1(
906
+ warn$2(
907
907
  `Delete operation on key "${String(key)}" failed: target is readonly.`,
908
908
  target
909
909
  );
@@ -1561,7 +1561,7 @@ var Vue = (function () {
1561
1561
  function popWarningContext() {
1562
1562
  stack$1.pop();
1563
1563
  }
1564
- function warn(msg, ...args) {
1564
+ function warn$1(msg, ...args) {
1565
1565
  pauseTracking();
1566
1566
  const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null;
1567
1567
  const appWarnHandler = instance && instance.appContext.config.warnHandler;
@@ -1662,9 +1662,9 @@ var Vue = (function () {
1662
1662
  if (val === void 0) {
1663
1663
  return;
1664
1664
  } else if (typeof val !== "number") {
1665
- warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1665
+ warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1666
1666
  } else if (isNaN(val)) {
1667
- warn(`${type} is NaN - the duration expression might be incorrect.`);
1667
+ warn$1(`${type} is NaN - the duration expression might be incorrect.`);
1668
1668
  }
1669
1669
  }
1670
1670
 
@@ -1729,7 +1729,7 @@ var Vue = (function () {
1729
1729
  [11]: "app warnHandler",
1730
1730
  [12]: "ref function",
1731
1731
  [13]: "async component loader",
1732
- [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"
1732
+ [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
1733
1733
  };
1734
1734
  function callWithErrorHandling(fn, instance, type, args) {
1735
1735
  let res;
@@ -1792,7 +1792,7 @@ var Vue = (function () {
1792
1792
  if (contextVNode) {
1793
1793
  pushWarningContext(contextVNode);
1794
1794
  }
1795
- warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1795
+ warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1796
1796
  if (contextVNode) {
1797
1797
  popWarningContext();
1798
1798
  }
@@ -2090,22 +2090,22 @@ var Vue = (function () {
2090
2090
  };
2091
2091
  }
2092
2092
 
2093
- let devtools;
2093
+ let devtools$1;
2094
2094
  let buffer = [];
2095
2095
  let devtoolsNotInstalled = false;
2096
2096
  function emit$2(event, ...args) {
2097
- if (devtools) {
2098
- devtools.emit(event, ...args);
2097
+ if (devtools$1) {
2098
+ devtools$1.emit(event, ...args);
2099
2099
  } else if (!devtoolsNotInstalled) {
2100
2100
  buffer.push({ event, args });
2101
2101
  }
2102
2102
  }
2103
- function setDevtoolsHook(hook, target) {
2103
+ function setDevtoolsHook$1(hook, target) {
2104
2104
  var _a, _b;
2105
- devtools = hook;
2106
- if (devtools) {
2107
- devtools.enabled = true;
2108
- buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
2105
+ devtools$1 = hook;
2106
+ if (devtools$1) {
2107
+ devtools$1.enabled = true;
2108
+ buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
2109
2109
  buffer = [];
2110
2110
  } else if (
2111
2111
  // handle late devtools injection - only do this if we are in an actual
@@ -2117,10 +2117,10 @@ var Vue = (function () {
2117
2117
  ) {
2118
2118
  const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
2119
2119
  replay.push((newHook) => {
2120
- setDevtoolsHook(newHook, target);
2120
+ setDevtoolsHook$1(newHook, target);
2121
2121
  });
2122
2122
  setTimeout(() => {
2123
- if (!devtools) {
2123
+ if (!devtools$1) {
2124
2124
  target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
2125
2125
  devtoolsNotInstalled = true;
2126
2126
  buffer = [];
@@ -2150,8 +2150,8 @@ var Vue = (function () {
2150
2150
  "component:removed" /* COMPONENT_REMOVED */
2151
2151
  );
2152
2152
  const devtoolsComponentRemoved = (component) => {
2153
- if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2154
- !devtools.cleanupBuffer(component)) {
2153
+ if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2154
+ !devtools$1.cleanupBuffer(component)) {
2155
2155
  _devtoolsComponentRemoved(component);
2156
2156
  }
2157
2157
  };
@@ -2450,12 +2450,12 @@ var Vue = (function () {
2450
2450
  }
2451
2451
  instanceWarned[componentDupKey] = true;
2452
2452
  if (dupKey in warnCount) {
2453
- warn(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);
2453
+ warn$1(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);
2454
2454
  return;
2455
2455
  }
2456
2456
  warnCount[dupKey] = 0;
2457
2457
  const { message, link } = deprecationData$1[key];
2458
- warn(
2458
+ warn$1(
2459
2459
  `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? `
2460
2460
  Details: ${link}` : ``}`
2461
2461
  );
@@ -2485,19 +2485,19 @@ var Vue = (function () {
2485
2485
  if (key !== "MODE" && !(key in deprecationData$1) && !(key in warnedInvalidKeys)) {
2486
2486
  if (key.startsWith("COMPILER_")) {
2487
2487
  if (isRuntimeOnly()) {
2488
- warn(
2488
+ warn$1(
2489
2489
  `Deprecation config "${key}" is compiler-specific and you are running a runtime-only build of Vue. This deprecation should be configured via compiler options in your build setup instead.
2490
2490
  Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2491
2491
  );
2492
2492
  }
2493
2493
  } else {
2494
- warn(`Invalid deprecation config "${key}".`);
2494
+ warn$1(`Invalid deprecation config "${key}".`);
2495
2495
  }
2496
2496
  warnedInvalidKeys[key] = true;
2497
2497
  }
2498
2498
  }
2499
2499
  if (instance && config["OPTIONS_DATA_MERGE"] != null) {
2500
- warn(
2500
+ warn$1(
2501
2501
  `Deprecation config "${"OPTIONS_DATA_MERGE"}" can only be configured globally.`
2502
2502
  );
2503
2503
  }
@@ -2687,7 +2687,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2687
2687
  if (emitsOptions) {
2688
2688
  if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
2689
2689
  if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
2690
- warn(
2690
+ warn$1(
2691
2691
  `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
2692
2692
  );
2693
2693
  }
@@ -2696,7 +2696,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2696
2696
  if (isFunction(validator)) {
2697
2697
  const isValid = validator(...rawArgs);
2698
2698
  if (!isValid) {
2699
- warn(
2699
+ warn$1(
2700
2700
  `Invalid event arguments: event validation failed for event "${event}".`
2701
2701
  );
2702
2702
  }
@@ -2723,11 +2723,13 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2723
2723
  {
2724
2724
  const lowerCaseEvent = event.toLowerCase();
2725
2725
  if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
2726
- warn(
2726
+ warn$1(
2727
2727
  `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
2728
2728
  instance,
2729
2729
  instance.type
2730
- )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".`
2730
+ )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(
2731
+ event
2732
+ )}" instead of "${event}".`
2731
2733
  );
2732
2734
  }
2733
2735
  }
@@ -2904,7 +2906,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2904
2906
  const proxyToUse = withProxy || proxy;
2905
2907
  const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, {
2906
2908
  get(target, key, receiver) {
2907
- warn(
2909
+ warn$1(
2908
2910
  `Property '${String(
2909
2911
  key
2910
2912
  )}' was accessed via 'this'. Avoid using 'this' in templates.`
@@ -2985,12 +2987,12 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2985
2987
  }
2986
2988
  }
2987
2989
  if (extraAttrs.length) {
2988
- warn(
2990
+ warn$1(
2989
2991
  `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
2990
2992
  );
2991
2993
  }
2992
2994
  if (eventAttrs.length) {
2993
- warn(
2995
+ warn$1(
2994
2996
  `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`
2995
2997
  );
2996
2998
  }
@@ -3015,7 +3017,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3015
3017
  }
3016
3018
  if (vnode.dirs) {
3017
3019
  if (!isElementRoot(root)) {
3018
- warn(
3020
+ warn$1(
3019
3021
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
3020
3022
  );
3021
3023
  }
@@ -3024,7 +3026,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3024
3026
  }
3025
3027
  if (vnode.transition) {
3026
3028
  if (!isElementRoot(root)) {
3027
- warn(
3029
+ warn$1(
3028
3030
  `Component inside <Transition> renders non-element root node that cannot be animated.`
3029
3031
  );
3030
3032
  }
@@ -3203,7 +3205,6 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3203
3205
  const selfName = getComponentName(
3204
3206
  Component,
3205
3207
  false
3206
- /* do not include inferred name to avoid breaking existing code */
3207
3208
  );
3208
3209
  if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
3209
3210
  return Component;
@@ -3221,11 +3222,11 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3221
3222
  if (warnMissing && !res) {
3222
3223
  const extra = type === COMPONENTS ? `
3223
3224
  If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
3224
- warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
3225
+ warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
3225
3226
  }
3226
3227
  return res;
3227
3228
  } else {
3228
- warn(
3229
+ warn$1(
3229
3230
  `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
3230
3231
  );
3231
3232
  }
@@ -3733,6 +3734,7 @@ If this is a native custom element, make sure to exclude it from component resol
3733
3734
  parentSuspense,
3734
3735
  parentComponent,
3735
3736
  node.parentNode,
3737
+ // eslint-disable-next-line no-restricted-globals
3736
3738
  document.createElement("div"),
3737
3739
  null,
3738
3740
  namespace,
@@ -3740,7 +3742,6 @@ If this is a native custom element, make sure to exclude it from component resol
3740
3742
  optimized,
3741
3743
  rendererInternals,
3742
3744
  true
3743
- /* hydrating */
3744
3745
  );
3745
3746
  const result = hydrateNode(
3746
3747
  node,
@@ -3781,7 +3782,7 @@ If this is a native custom element, make sure to exclude it from component resol
3781
3782
  if (isArray(s)) {
3782
3783
  const singleChild = filterSingleRoot(s);
3783
3784
  if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
3784
- warn(`<Suspense> slots expect a single root node.`);
3785
+ warn$1(`<Suspense> slots expect a single root node.`);
3785
3786
  }
3786
3787
  s = singleChild;
3787
3788
  }
@@ -3874,13 +3875,20 @@ If this is a native custom element, make sure to exclude it from component resol
3874
3875
  const INITIAL_WATCHER_VALUE = {};
3875
3876
  function watch(source, cb, options) {
3876
3877
  if (!isFunction(cb)) {
3877
- warn(
3878
+ warn$1(
3878
3879
  `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`
3879
3880
  );
3880
3881
  }
3881
3882
  return doWatch(source, cb, options);
3882
3883
  }
3883
- function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger } = EMPTY_OBJ) {
3884
+ function doWatch(source, cb, {
3885
+ immediate,
3886
+ deep,
3887
+ flush,
3888
+ once,
3889
+ onTrack,
3890
+ onTrigger
3891
+ } = EMPTY_OBJ) {
3884
3892
  var _a;
3885
3893
  if (cb && once) {
3886
3894
  const _cb = cb;
@@ -3891,23 +3899,23 @@ If this is a native custom element, make sure to exclude it from component resol
3891
3899
  }
3892
3900
  if (!cb) {
3893
3901
  if (immediate !== void 0) {
3894
- warn(
3902
+ warn$1(
3895
3903
  `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
3896
3904
  );
3897
3905
  }
3898
3906
  if (deep !== void 0) {
3899
- warn(
3907
+ warn$1(
3900
3908
  `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
3901
3909
  );
3902
3910
  }
3903
3911
  if (once !== void 0) {
3904
- warn(
3912
+ warn$1(
3905
3913
  `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
3906
3914
  );
3907
3915
  }
3908
3916
  }
3909
3917
  const warnInvalidSource = (s) => {
3910
- warn(
3918
+ warn$1(
3911
3919
  `Invalid watch source: `,
3912
3920
  s,
3913
3921
  `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
@@ -4102,13 +4110,13 @@ If this is a native custom element, make sure to exclude it from component resol
4102
4110
 
4103
4111
  function validateDirectiveName(name) {
4104
4112
  if (isBuiltInDirective(name)) {
4105
- warn("Do not use built-in directive ids as custom directive id: " + name);
4113
+ warn$1("Do not use built-in directive ids as custom directive id: " + name);
4106
4114
  }
4107
4115
  }
4108
4116
  function withDirectives(vnode, directives) {
4109
4117
  const internalInstance = currentRenderingInstance;
4110
4118
  if (internalInstance === null) {
4111
- warn(`withDirectives can only be used inside render functions.`);
4119
+ warn$1(`withDirectives can only be used inside render functions.`);
4112
4120
  return vnode;
4113
4121
  }
4114
4122
  const instance = getExposeProxy(internalInstance) || internalInstance.proxy;
@@ -4218,7 +4226,7 @@ If this is a native custom element, make sure to exclude it from component resol
4218
4226
  for (const c of children) {
4219
4227
  if (c.type !== Comment) {
4220
4228
  if (hasFound) {
4221
- warn(
4229
+ warn$1(
4222
4230
  "<transition> can only be used on a single element or component. Use <transition-group> for lists."
4223
4231
  );
4224
4232
  break;
@@ -4231,7 +4239,7 @@ If this is a native custom element, make sure to exclude it from component resol
4231
4239
  const rawProps = toRaw(props);
4232
4240
  const { mode } = rawProps;
4233
4241
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
4234
- warn(`invalid <transition> mode: ${mode}`);
4242
+ warn$1(`invalid <transition> mode: ${mode}`);
4235
4243
  }
4236
4244
  if (state.isLeaving) {
4237
4245
  return emptyPlaceholder(child);
@@ -4549,7 +4557,7 @@ If this is a native custom element, make sure to exclude it from component resol
4549
4557
  return pendingRequest;
4550
4558
  }
4551
4559
  if (!comp) {
4552
- warn(
4560
+ warn$1(
4553
4561
  `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`
4554
4562
  );
4555
4563
  }
@@ -4581,7 +4589,6 @@ If this is a native custom element, make sure to exclude it from component resol
4581
4589
  instance,
4582
4590
  13,
4583
4591
  !errorComponent
4584
- /* do not throw in dev if user provided error component */
4585
4592
  );
4586
4593
  };
4587
4594
  if (suspensible && instance.suspense || false) {
@@ -4783,7 +4790,7 @@ If this is a native custom element, make sure to exclude it from component resol
4783
4790
  const rawVNode = children[0];
4784
4791
  if (children.length > 1) {
4785
4792
  {
4786
- warn(`KeepAlive should contain exactly one component child.`);
4793
+ warn$1(`KeepAlive should contain exactly one component child.`);
4787
4794
  }
4788
4795
  current = null;
4789
4796
  return children;
@@ -4915,7 +4922,7 @@ If this is a native custom element, make sure to exclude it from component resol
4915
4922
  return wrappedHook;
4916
4923
  } else {
4917
4924
  const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
4918
- warn(
4925
+ warn$1(
4919
4926
  `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )
4920
4927
  );
4921
4928
  }
@@ -4977,8 +4984,8 @@ If this is a native custom element, make sure to exclude it from component resol
4977
4984
  }
4978
4985
 
4979
4986
  function convertLegacyRenderFn(instance) {
4980
- const Component2 = instance.type;
4981
- const render = Component2.render;
4987
+ const Component = instance.type;
4988
+ const render = Component.render;
4982
4989
  if (!render || render._rc || render._compatChecked || render._compatWrapped) {
4983
4990
  return;
4984
4991
  }
@@ -4987,7 +4994,7 @@ If this is a native custom element, make sure to exclude it from component resol
4987
4994
  return;
4988
4995
  }
4989
4996
  if (checkCompatEnabled$1("RENDER_FUNCTION", instance)) {
4990
- const wrapped = Component2.render = function compatRender() {
4997
+ const wrapped = Component.render = function compatRender() {
4991
4998
  return render.call(this, compatH);
4992
4999
  };
4993
5000
  wrapped._compatWrapped = true;
@@ -5146,12 +5153,10 @@ If this is a native custom element, make sure to exclude it from component resol
5146
5153
  "RENDER_FUNCTION",
5147
5154
  currentRenderingInstance,
5148
5155
  true
5149
- /* enable for built-ins */
5150
5156
  ) && isCompatEnabled$1(
5151
5157
  "PRIVATE_APIS",
5152
5158
  currentRenderingInstance,
5153
5159
  true
5154
- /* enable for built-ins */
5155
5160
  )) {
5156
5161
  const context = currentRenderingInstance;
5157
5162
  const getInstance = () => vnode.component && vnode.component.proxy;
@@ -5237,7 +5242,7 @@ If this is a native custom element, make sure to exclude it from component resol
5237
5242
  }
5238
5243
  } else if (typeof source === "number") {
5239
5244
  if (!Number.isInteger(source)) {
5240
- warn(`The v-for range expect an integer value but got ${source}.`);
5245
+ warn$1(`The v-for range expect an integer value but got ${source}.`);
5241
5246
  }
5242
5247
  ret = new Array(source);
5243
5248
  for (let i = 0; i < source; i++) {
@@ -5293,7 +5298,7 @@ If this is a native custom element, make sure to exclude it from component resol
5293
5298
  }
5294
5299
  let slot = slots[name];
5295
5300
  if (slot && slot.length > 1) {
5296
- warn(
5301
+ warn$1(
5297
5302
  `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`
5298
5303
  );
5299
5304
  slot = () => [];
@@ -5336,7 +5341,7 @@ If this is a native custom element, make sure to exclude it from component resol
5336
5341
  function toHandlers(obj, preserveCaseIfNecessary) {
5337
5342
  const ret = {};
5338
5343
  if (!isObject(obj)) {
5339
- warn(`v-on with no argument expects an object value.`);
5344
+ warn$1(`v-on with no argument expects an object value.`);
5340
5345
  return ret;
5341
5346
  }
5342
5347
  for (const key in obj) {
@@ -5481,7 +5486,6 @@ If this is a native custom element, make sure to exclude it from component resol
5481
5486
  assertCompatEnabled(
5482
5487
  "GLOBAL_MOUNT",
5483
5488
  null
5484
- /* this warning is global */
5485
5489
  );
5486
5490
  return i.ctx._compat_mount || NOOP;
5487
5491
  },
@@ -5665,13 +5669,13 @@ If this is a native custom element, make sure to exclude it from component resol
5665
5669
  // to infinite warning loop
5666
5670
  key.indexOf("__v") !== 0)) {
5667
5671
  if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {
5668
- warn(
5672
+ warn$1(
5669
5673
  `Property ${JSON.stringify(
5670
5674
  key
5671
5675
  )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
5672
5676
  );
5673
5677
  } else if (instance === currentRenderingInstance) {
5674
- warn(
5678
+ warn$1(
5675
5679
  `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
5676
5680
  );
5677
5681
  }
@@ -5683,17 +5687,17 @@ If this is a native custom element, make sure to exclude it from component resol
5683
5687
  setupState[key] = value;
5684
5688
  return true;
5685
5689
  } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) {
5686
- warn(`Cannot mutate <script setup> binding "${key}" from Options API.`);
5690
+ warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
5687
5691
  return false;
5688
5692
  } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
5689
5693
  data[key] = value;
5690
5694
  return true;
5691
5695
  } else if (hasOwn(instance.props, key)) {
5692
- warn(`Attempting to mutate prop "${key}". Props are readonly.`);
5696
+ warn$1(`Attempting to mutate prop "${key}". Props are readonly.`);
5693
5697
  return false;
5694
5698
  }
5695
5699
  if (key[0] === "$" && key.slice(1) in instance) {
5696
- warn(
5700
+ warn$1(
5697
5701
  `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.`
5698
5702
  );
5699
5703
  return false;
@@ -5727,7 +5731,7 @@ If this is a native custom element, make sure to exclude it from component resol
5727
5731
  };
5728
5732
  {
5729
5733
  PublicInstanceProxyHandlers.ownKeys = (target) => {
5730
- warn(
5734
+ warn$1(
5731
5735
  `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
5732
5736
  );
5733
5737
  return Reflect.ownKeys(target);
@@ -5746,7 +5750,7 @@ If this is a native custom element, make sure to exclude it from component resol
5746
5750
  has(_, key) {
5747
5751
  const has = key[0] !== "_" && !isGloballyAllowed(key);
5748
5752
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
5749
- warn(
5753
+ warn$1(
5750
5754
  `Property ${JSON.stringify(
5751
5755
  key
5752
5756
  )} should not start with _ which is a reserved prefix for Vue internals.`
@@ -5796,7 +5800,7 @@ If this is a native custom element, make sure to exclude it from component resol
5796
5800
  Object.keys(toRaw(setupState)).forEach((key) => {
5797
5801
  if (!setupState.__isScriptSetup) {
5798
5802
  if (isReservedPrefix(key[0])) {
5799
- warn(
5803
+ warn$1(
5800
5804
  `setup() return property ${JSON.stringify(
5801
5805
  key
5802
5806
  )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
@@ -5827,7 +5831,7 @@ If this is a native custom element, make sure to exclude it from component resol
5827
5831
  return to;
5828
5832
  }
5829
5833
 
5830
- const warnRuntimeUsage = (method) => warn(
5834
+ const warnRuntimeUsage = (method) => warn$1(
5831
5835
  `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`
5832
5836
  );
5833
5837
  function defineProps() {
@@ -5875,17 +5879,17 @@ If this is a native custom element, make sure to exclude it from component resol
5875
5879
  function useAttrs() {
5876
5880
  return getContext().attrs;
5877
5881
  }
5878
- function useModel(props, name) {
5882
+ function useModel(props, name, options = EMPTY_OBJ) {
5879
5883
  const i = getCurrentInstance();
5880
5884
  if (!i) {
5881
- warn(`useModel() called without active instance.`);
5885
+ warn$1(`useModel() called without active instance.`);
5882
5886
  return ref();
5883
5887
  }
5884
5888
  if (!i.propsOptions[0][name]) {
5885
- warn(`useModel() called with prop "${name}" which is not declared.`);
5889
+ warn$1(`useModel() called with prop "${name}" which is not declared.`);
5886
5890
  return ref();
5887
5891
  }
5888
- return customRef((track, trigger) => {
5892
+ const res = customRef((track, trigger) => {
5889
5893
  let localValue;
5890
5894
  watchSyncEffect(() => {
5891
5895
  const propValue = props[name];
@@ -5897,7 +5901,7 @@ If this is a native custom element, make sure to exclude it from component resol
5897
5901
  return {
5898
5902
  get() {
5899
5903
  track();
5900
- return localValue;
5904
+ return options.get ? options.get(localValue) : localValue;
5901
5905
  },
5902
5906
  set(value) {
5903
5907
  const rawProps = i.vnode.props;
@@ -5905,15 +5909,29 @@ If this is a native custom element, make sure to exclude it from component resol
5905
5909
  localValue = value;
5906
5910
  trigger();
5907
5911
  }
5908
- i.emit(`update:${name}`, value);
5912
+ i.emit(`update:${name}`, options.set ? options.set(value) : value);
5909
5913
  }
5910
5914
  };
5911
5915
  });
5916
+ const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
5917
+ res[Symbol.iterator] = () => {
5918
+ let i2 = 0;
5919
+ return {
5920
+ next() {
5921
+ if (i2 < 2) {
5922
+ return { value: i2++ ? props[modifierKey] : res, done: false };
5923
+ } else {
5924
+ return { done: true };
5925
+ }
5926
+ }
5927
+ };
5928
+ };
5929
+ return res;
5912
5930
  }
5913
5931
  function getContext() {
5914
5932
  const i = getCurrentInstance();
5915
5933
  if (!i) {
5916
- warn(`useContext() called without active instance.`);
5934
+ warn$1(`useContext() called without active instance.`);
5917
5935
  }
5918
5936
  return i.setupContext || (i.setupContext = createSetupContext(i));
5919
5937
  }
@@ -5938,7 +5956,7 @@ If this is a native custom element, make sure to exclude it from component resol
5938
5956
  } else if (opt === null) {
5939
5957
  opt = props[key] = { default: defaults[key] };
5940
5958
  } else {
5941
- warn(`props default key "${key}" has no corresponding declaration.`);
5959
+ warn$1(`props default key "${key}" has no corresponding declaration.`);
5942
5960
  }
5943
5961
  if (opt && defaults[`__skip_${key}`]) {
5944
5962
  opt.skipFactory = true;
@@ -5968,7 +5986,7 @@ If this is a native custom element, make sure to exclude it from component resol
5968
5986
  function withAsyncContext(getAwaitable) {
5969
5987
  const ctx = getCurrentInstance();
5970
5988
  if (!ctx) {
5971
- warn(
5989
+ warn$1(
5972
5990
  `withAsyncContext called without active current instance. This is likely a bug.`
5973
5991
  );
5974
5992
  }
@@ -5987,7 +6005,7 @@ If this is a native custom element, make sure to exclude it from component resol
5987
6005
  const cache = /* @__PURE__ */ Object.create(null);
5988
6006
  return (type, key) => {
5989
6007
  if (cache[key]) {
5990
- warn(`${type} property "${key}" is already defined in ${cache[key]}.`);
6008
+ warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
5991
6009
  } else {
5992
6010
  cache[key] = type;
5993
6011
  }
@@ -6063,7 +6081,7 @@ If this is a native custom element, make sure to exclude it from component resol
6063
6081
  checkDuplicateProperties("Methods" /* METHODS */, key);
6064
6082
  }
6065
6083
  } else {
6066
- warn(
6084
+ warn$1(
6067
6085
  `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
6068
6086
  );
6069
6087
  }
@@ -6071,18 +6089,18 @@ If this is a native custom element, make sure to exclude it from component resol
6071
6089
  }
6072
6090
  if (dataOptions) {
6073
6091
  if (!isFunction(dataOptions)) {
6074
- warn(
6092
+ warn$1(
6075
6093
  `The data option must be a function. Plain object usage is no longer supported.`
6076
6094
  );
6077
6095
  }
6078
6096
  const data = dataOptions.call(publicThis, publicThis);
6079
6097
  if (isPromise(data)) {
6080
- warn(
6098
+ warn$1(
6081
6099
  `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
6082
6100
  );
6083
6101
  }
6084
6102
  if (!isObject(data)) {
6085
- warn(`data() should return an object.`);
6103
+ warn$1(`data() should return an object.`);
6086
6104
  } else {
6087
6105
  instance.data = reactive(data);
6088
6106
  {
@@ -6106,10 +6124,10 @@ If this is a native custom element, make sure to exclude it from component resol
6106
6124
  const opt = computedOptions[key];
6107
6125
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
6108
6126
  if (get === NOOP) {
6109
- warn(`Computed property "${key}" has no getter.`);
6127
+ warn$1(`Computed property "${key}" has no getter.`);
6110
6128
  }
6111
6129
  const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
6112
- warn(
6130
+ warn$1(
6113
6131
  `Write operation failed: computed property "${key}" is readonly.`
6114
6132
  );
6115
6133
  } ;
@@ -6209,7 +6227,6 @@ If this is a native custom element, make sure to exclude it from component resol
6209
6227
  opt.from || key,
6210
6228
  opt.default,
6211
6229
  true
6212
- /* treat default function as factory */
6213
6230
  );
6214
6231
  } else {
6215
6232
  injected = inject(opt.from || key);
@@ -6246,7 +6263,7 @@ If this is a native custom element, make sure to exclude it from component resol
6246
6263
  if (isFunction(handler)) {
6247
6264
  watch(getter, handler);
6248
6265
  } else {
6249
- warn(`Invalid watch handler specified by key "${raw}"`, handler);
6266
+ warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
6250
6267
  }
6251
6268
  } else if (isFunction(raw)) {
6252
6269
  watch(getter, raw.bind(publicThis));
@@ -6258,11 +6275,11 @@ If this is a native custom element, make sure to exclude it from component resol
6258
6275
  if (isFunction(handler)) {
6259
6276
  watch(getter, handler, raw);
6260
6277
  } else {
6261
- warn(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6278
+ warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6262
6279
  }
6263
6280
  }
6264
6281
  } else {
6265
- warn(`Invalid watch option: "${key}"`, raw);
6282
+ warn$1(`Invalid watch option: "${key}"`, raw);
6266
6283
  }
6267
6284
  }
6268
6285
  function resolveMergedOptions(instance) {
@@ -6314,7 +6331,7 @@ If this is a native custom element, make sure to exclude it from component resol
6314
6331
  }
6315
6332
  for (const key in from) {
6316
6333
  if (asMixin && key === "expose") {
6317
- warn(
6334
+ warn$1(
6318
6335
  `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`
6319
6336
  );
6320
6337
  } else {
@@ -6482,7 +6499,7 @@ If this is a native custom element, make sure to exclude it from component resol
6482
6499
  return vm;
6483
6500
  }
6484
6501
  }
6485
- Vue.version = `2.6.14-compat:${"3.4.0-rc.1"}`;
6502
+ Vue.version = `2.6.14-compat:${"3.4.0-rc.3"}`;
6486
6503
  Vue.config = singletonApp.config;
6487
6504
  Vue.use = (p, ...options) => {
6488
6505
  if (p && isFunction(p.install)) {
@@ -6583,7 +6600,7 @@ If this is a native custom element, make sure to exclude it from component resol
6583
6600
  }
6584
6601
  };
6585
6602
  const util = {
6586
- warn: warn ,
6603
+ warn: warn$1 ,
6587
6604
  extend,
6588
6605
  mergeOptions: (parent, child, vm) => mergeOptions(
6589
6606
  parent,
@@ -6620,7 +6637,7 @@ If this is a native custom element, make sure to exclude it from component resol
6620
6637
  return context.filters[name];
6621
6638
  }
6622
6639
  if (context.filters[name]) {
6623
- warn(`Filter "${name}" has already been registered.`);
6640
+ warn$1(`Filter "${name}" has already been registered.`);
6624
6641
  }
6625
6642
  context.filters[name] = filter;
6626
6643
  return app;
@@ -6711,14 +6728,14 @@ If this is a native custom element, make sure to exclude it from component resol
6711
6728
  vnode.isCompatRoot = true;
6712
6729
  instance.ctx._compat_mount = (selectorOrEl) => {
6713
6730
  if (isMounted) {
6714
- warn(`Root instance is already mounted.`);
6731
+ warn$1(`Root instance is already mounted.`);
6715
6732
  return;
6716
6733
  }
6717
6734
  let container;
6718
6735
  if (typeof selectorOrEl === "string") {
6719
6736
  const result = document.querySelector(selectorOrEl);
6720
6737
  if (!result) {
6721
- warn(
6738
+ warn$1(
6722
6739
  `Failed to mount root instance: selector "${selectorOrEl}" returned null.`
6723
6740
  );
6724
6741
  return;
@@ -6883,7 +6900,7 @@ If this is a native custom element, make sure to exclude it from component resol
6883
6900
  rootComponent = extend({}, rootComponent);
6884
6901
  }
6885
6902
  if (rootProps != null && !isObject(rootProps)) {
6886
- warn(`root props passed to app.mount() must be an object.`);
6903
+ warn$1(`root props passed to app.mount() must be an object.`);
6887
6904
  rootProps = null;
6888
6905
  }
6889
6906
  const context = createAppContext();
@@ -6902,14 +6919,14 @@ If this is a native custom element, make sure to exclude it from component resol
6902
6919
  },
6903
6920
  set config(v) {
6904
6921
  {
6905
- warn(
6922
+ warn$1(
6906
6923
  `app.config cannot be replaced. Modify individual options instead.`
6907
6924
  );
6908
6925
  }
6909
6926
  },
6910
6927
  use(plugin, ...options) {
6911
6928
  if (installedPlugins.has(plugin)) {
6912
- warn(`Plugin has already been applied to target app.`);
6929
+ warn$1(`Plugin has already been applied to target app.`);
6913
6930
  } else if (plugin && isFunction(plugin.install)) {
6914
6931
  installedPlugins.add(plugin);
6915
6932
  plugin.install(app, ...options);
@@ -6917,7 +6934,7 @@ If this is a native custom element, make sure to exclude it from component resol
6917
6934
  installedPlugins.add(plugin);
6918
6935
  plugin(app, ...options);
6919
6936
  } else {
6920
- warn(
6937
+ warn$1(
6921
6938
  `A plugin must either be a function or an object with an "install" function.`
6922
6939
  );
6923
6940
  }
@@ -6928,7 +6945,7 @@ If this is a native custom element, make sure to exclude it from component resol
6928
6945
  if (!context.mixins.includes(mixin)) {
6929
6946
  context.mixins.push(mixin);
6930
6947
  } else {
6931
- warn(
6948
+ warn$1(
6932
6949
  "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
6933
6950
  );
6934
6951
  }
@@ -6943,7 +6960,7 @@ If this is a native custom element, make sure to exclude it from component resol
6943
6960
  return context.components[name];
6944
6961
  }
6945
6962
  if (context.components[name]) {
6946
- warn(`Component "${name}" has already been registered in target app.`);
6963
+ warn$1(`Component "${name}" has already been registered in target app.`);
6947
6964
  }
6948
6965
  context.components[name] = component;
6949
6966
  return app;
@@ -6956,7 +6973,7 @@ If this is a native custom element, make sure to exclude it from component resol
6956
6973
  return context.directives[name];
6957
6974
  }
6958
6975
  if (context.directives[name]) {
6959
- warn(`Directive "${name}" has already been registered in target app.`);
6976
+ warn$1(`Directive "${name}" has already been registered in target app.`);
6960
6977
  }
6961
6978
  context.directives[name] = directive;
6962
6979
  return app;
@@ -6964,7 +6981,7 @@ If this is a native custom element, make sure to exclude it from component resol
6964
6981
  mount(rootContainer, isHydrate, namespace) {
6965
6982
  if (!isMounted) {
6966
6983
  if (rootContainer.__vue_app__) {
6967
- warn(
6984
+ warn$1(
6968
6985
  `There is already an app instance mounted on the host container.
6969
6986
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6970
6987
  );
@@ -6999,7 +7016,7 @@ If this is a native custom element, make sure to exclude it from component resol
6999
7016
  }
7000
7017
  return getExposeProxy(vnode.component) || vnode.component.proxy;
7001
7018
  } else {
7002
- warn(
7019
+ warn$1(
7003
7020
  `App has already been mounted.
7004
7021
  If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\``
7005
7022
  );
@@ -7014,12 +7031,12 @@ If you want to remount the same app, move your app creation logic into a factory
7014
7031
  }
7015
7032
  delete app._container.__vue_app__;
7016
7033
  } else {
7017
- warn(`Cannot unmount an app that is not mounted.`);
7034
+ warn$1(`Cannot unmount an app that is not mounted.`);
7018
7035
  }
7019
7036
  },
7020
7037
  provide(key, value) {
7021
7038
  if (key in context.provides) {
7022
- warn(
7039
+ warn$1(
7023
7040
  `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
7024
7041
  );
7025
7042
  }
@@ -7046,7 +7063,7 @@ If you want to remount the same app, move your app creation logic into a factory
7046
7063
  function provide(key, value) {
7047
7064
  if (!currentInstance) {
7048
7065
  {
7049
- warn(`provide() can only be used inside setup().`);
7066
+ warn$1(`provide() can only be used inside setup().`);
7050
7067
  }
7051
7068
  } else {
7052
7069
  let provides = currentInstance.provides;
@@ -7066,10 +7083,10 @@ If you want to remount the same app, move your app creation logic into a factory
7066
7083
  } else if (arguments.length > 1) {
7067
7084
  return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
7068
7085
  } else {
7069
- warn(`injection "${String(key)}" not found.`);
7086
+ warn$1(`injection "${String(key)}" not found.`);
7070
7087
  }
7071
7088
  } else {
7072
- warn(`inject() can only be used inside setup() or functional components.`);
7089
+ warn$1(`inject() can only be used inside setup() or functional components.`);
7073
7090
  }
7074
7091
  }
7075
7092
  function hasInjectionContext() {
@@ -7189,7 +7206,6 @@ If you want to remount the same app, move your app creation logic into a factory
7189
7206
  value,
7190
7207
  instance,
7191
7208
  false
7192
- /* isAbsent */
7193
7209
  );
7194
7210
  }
7195
7211
  } else {
@@ -7228,7 +7244,6 @@ If you want to remount the same app, move your app creation logic into a factory
7228
7244
  void 0,
7229
7245
  instance,
7230
7246
  true
7231
- /* isAbsent */
7232
7247
  );
7233
7248
  }
7234
7249
  } else {
@@ -7385,7 +7400,7 @@ If you want to remount the same app, move your app creation logic into a factory
7385
7400
  if (isArray(raw)) {
7386
7401
  for (let i = 0; i < raw.length; i++) {
7387
7402
  if (!isString(raw[i])) {
7388
- warn(`props must be strings when using array syntax.`, raw[i]);
7403
+ warn$1(`props must be strings when using array syntax.`, raw[i]);
7389
7404
  }
7390
7405
  const normalizedKey = camelize(raw[i]);
7391
7406
  if (validatePropName(normalizedKey)) {
@@ -7394,7 +7409,7 @@ If you want to remount the same app, move your app creation logic into a factory
7394
7409
  }
7395
7410
  } else if (raw) {
7396
7411
  if (!isObject(raw)) {
7397
- warn(`invalid props options`, raw);
7412
+ warn$1(`invalid props options`, raw);
7398
7413
  }
7399
7414
  for (const key in raw) {
7400
7415
  const normalizedKey = camelize(key);
@@ -7423,7 +7438,7 @@ If you want to remount the same app, move your app creation logic into a factory
7423
7438
  if (key[0] !== "$") {
7424
7439
  return true;
7425
7440
  } else {
7426
- warn(`Invalid prop name: "${key}" is a reserved property.`);
7441
+ warn$1(`Invalid prop name: "${key}" is a reserved property.`);
7427
7442
  }
7428
7443
  return false;
7429
7444
  }
@@ -7461,7 +7476,7 @@ If you want to remount the same app, move your app creation logic into a factory
7461
7476
  function validateProp(name, value, prop, props, isAbsent) {
7462
7477
  const { type, required, validator, skipCheck } = prop;
7463
7478
  if (required && isAbsent) {
7464
- warn('Missing required prop: "' + name + '"');
7479
+ warn$1('Missing required prop: "' + name + '"');
7465
7480
  return;
7466
7481
  }
7467
7482
  if (value == null && !required) {
@@ -7477,12 +7492,12 @@ If you want to remount the same app, move your app creation logic into a factory
7477
7492
  isValid = valid;
7478
7493
  }
7479
7494
  if (!isValid) {
7480
- warn(getInvalidTypeMessage(name, value, expectedTypes));
7495
+ warn$1(getInvalidTypeMessage(name, value, expectedTypes));
7481
7496
  return;
7482
7497
  }
7483
7498
  }
7484
7499
  if (validator && !validator(value, props)) {
7485
- warn('Invalid prop: custom validator check failed for prop "' + name + '".');
7500
+ warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
7486
7501
  }
7487
7502
  }
7488
7503
  const isSimpleType = /* @__PURE__ */ makeMap(
@@ -7554,7 +7569,7 @@ If you want to remount the same app, move your app creation logic into a factory
7554
7569
  }
7555
7570
  const normalized = withCtx((...args) => {
7556
7571
  if (currentInstance) {
7557
- warn(
7572
+ warn$1(
7558
7573
  `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
7559
7574
  );
7560
7575
  }
@@ -7573,7 +7588,7 @@ If you want to remount the same app, move your app creation logic into a factory
7573
7588
  slots[key] = normalizeSlot(key, value, ctx);
7574
7589
  } else if (value != null) {
7575
7590
  if (!isCompatEnabled$1("RENDER_FUNCTION", instance)) {
7576
- warn(
7591
+ warn$1(
7577
7592
  `Non-function value encountered for slot "${key}". Prefer function slots for better performance.`
7578
7593
  );
7579
7594
  }
@@ -7584,7 +7599,7 @@ If you want to remount the same app, move your app creation logic into a factory
7584
7599
  };
7585
7600
  const normalizeVNodeSlots = (instance, children) => {
7586
7601
  if (!isKeepAlive(instance.vnode) && !isCompatEnabled$1("RENDER_FUNCTION", instance)) {
7587
- warn(
7602
+ warn$1(
7588
7603
  `Non-function value encountered for default slot. Prefer function slots for better performance.`
7589
7604
  );
7590
7605
  }
@@ -7668,7 +7683,7 @@ If you want to remount the same app, move your app creation logic into a factory
7668
7683
  const value = isUnmount ? null : refValue;
7669
7684
  const { i: owner, r: ref } = rawRef;
7670
7685
  if (!owner) {
7671
- warn(
7686
+ warn$1(
7672
7687
  `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`
7673
7688
  );
7674
7689
  return;
@@ -7723,7 +7738,7 @@ If you want to remount the same app, move your app creation logic into a factory
7723
7738
  if (rawRef.k)
7724
7739
  refs[rawRef.k] = value;
7725
7740
  } else {
7726
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
7741
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7727
7742
  }
7728
7743
  };
7729
7744
  if (value) {
@@ -7733,7 +7748,7 @@ If you want to remount the same app, move your app creation logic into a factory
7733
7748
  doSet();
7734
7749
  }
7735
7750
  } else {
7736
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
7751
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7737
7752
  }
7738
7753
  }
7739
7754
  }
@@ -7765,7 +7780,7 @@ If you want to remount the same app, move your app creation logic into a factory
7765
7780
  } = rendererInternals;
7766
7781
  const hydrate = (vnode, container) => {
7767
7782
  if (!container.hasChildNodes()) {
7768
- warn(
7783
+ warn$1(
7769
7784
  `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
7770
7785
  );
7771
7786
  patch(null, vnode, container);
@@ -7825,7 +7840,7 @@ If you want to remount the same app, move your app creation logic into a factory
7825
7840
  } else {
7826
7841
  if (node.data !== vnode.children) {
7827
7842
  hasMismatch = true;
7828
- warn(
7843
+ warn$1(
7829
7844
  `Hydration text mismatch in`,
7830
7845
  node.parentNode,
7831
7846
  `
@@ -7960,7 +7975,7 @@ If you want to remount the same app, move your app creation logic into a factory
7960
7975
  hydrateNode
7961
7976
  );
7962
7977
  } else {
7963
- warn("Invalid HostVNode type:", type, `(${typeof type})`);
7978
+ warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
7964
7979
  }
7965
7980
  }
7966
7981
  if (ref != null) {
@@ -8001,7 +8016,7 @@ If you want to remount the same app, move your app creation logic into a factory
8001
8016
  while (next) {
8002
8017
  hasMismatch = true;
8003
8018
  if (!hasWarned) {
8004
- warn(
8019
+ warn$1(
8005
8020
  `Hydration children mismatch on`,
8006
8021
  el,
8007
8022
  `
@@ -8016,7 +8031,7 @@ Server rendered element contains more child nodes than client vdom.`
8016
8031
  } else if (shapeFlag & 8) {
8017
8032
  if (el.textContent !== vnode.children) {
8018
8033
  hasMismatch = true;
8019
- warn(
8034
+ warn$1(
8020
8035
  `Hydration text content mismatch on`,
8021
8036
  el,
8022
8037
  `
@@ -8085,7 +8100,7 @@ Server rendered element contains more child nodes than client vdom.`
8085
8100
  } else {
8086
8101
  hasMismatch = true;
8087
8102
  if (!hasWarned) {
8088
- warn(
8103
+ warn$1(
8089
8104
  `Hydration children mismatch on`,
8090
8105
  container,
8091
8106
  `
@@ -8132,7 +8147,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8132
8147
  };
8133
8148
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
8134
8149
  hasMismatch = true;
8135
- warn(
8150
+ warn$1(
8136
8151
  `Hydration node mismatch:
8137
8152
  - rendered on server:`,
8138
8153
  node,
@@ -8231,7 +8246,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8231
8246
  }
8232
8247
  if (mismatchType) {
8233
8248
  const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
8234
- warn(
8249
+ warn$1(
8235
8250
  `Hydration ${mismatchType} mismatch on`,
8236
8251
  el,
8237
8252
  `
@@ -8310,7 +8325,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8310
8325
  const target = getGlobalThis();
8311
8326
  target.__VUE__ = true;
8312
8327
  {
8313
- setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
8328
+ setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
8314
8329
  }
8315
8330
  const {
8316
8331
  insert: hostInsert,
@@ -8419,7 +8434,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8419
8434
  internals
8420
8435
  );
8421
8436
  } else {
8422
- warn("Invalid VNode type:", type, `(${typeof type})`);
8437
+ warn$1("Invalid VNode type:", type, `(${typeof type})`);
8423
8438
  }
8424
8439
  }
8425
8440
  if (ref != null && parentComponent) {
@@ -9413,7 +9428,7 @@ Server rendered element contains fewer child nodes than client vdom.`
9413
9428
  const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
9414
9429
  if (nextChild.key != null) {
9415
9430
  if (keyToNewIndexMap.has(nextChild.key)) {
9416
- warn(
9431
+ warn$1(
9417
9432
  `Duplicate keys found during update:`,
9418
9433
  JSON.stringify(nextChild.key),
9419
9434
  `Make sure keys are unique.`
@@ -9851,14 +9866,14 @@ Server rendered element contains fewer child nodes than client vdom.`
9851
9866
  const targetSelector = props && props.to;
9852
9867
  if (isString(targetSelector)) {
9853
9868
  if (!select) {
9854
- warn(
9869
+ warn$1(
9855
9870
  `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`
9856
9871
  );
9857
9872
  return null;
9858
9873
  } else {
9859
9874
  const target = select(targetSelector);
9860
9875
  if (!target) {
9861
- warn(
9876
+ warn$1(
9862
9877
  `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`
9863
9878
  );
9864
9879
  }
@@ -9866,7 +9881,7 @@ Server rendered element contains fewer child nodes than client vdom.`
9866
9881
  }
9867
9882
  } else {
9868
9883
  if (!targetSelector && !isTeleportDisabled(props)) {
9869
- warn(`Invalid Teleport target: ${targetSelector}`);
9884
+ warn$1(`Invalid Teleport target: ${targetSelector}`);
9870
9885
  }
9871
9886
  return targetSelector;
9872
9887
  }
@@ -9902,7 +9917,7 @@ Server rendered element contains fewer child nodes than client vdom.`
9902
9917
  namespace = "mathml";
9903
9918
  }
9904
9919
  } else if (!disabled) {
9905
- warn("Invalid Teleport target on mount:", target, `(${typeof target})`);
9920
+ warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
9906
9921
  }
9907
9922
  const mount = (container2, anchor2) => {
9908
9923
  if (shapeFlag & 16) {
@@ -9989,7 +10004,7 @@ Server rendered element contains fewer child nodes than client vdom.`
9989
10004
  0
9990
10005
  );
9991
10006
  } else {
9992
- warn(
10007
+ warn$1(
9993
10008
  "Invalid Teleport target on update:",
9994
10009
  target,
9995
10010
  `(${typeof target})`
@@ -10203,7 +10218,6 @@ Server rendered element contains fewer child nodes than client vdom.`
10203
10218
  dynamicProps,
10204
10219
  shapeFlag,
10205
10220
  true
10206
- /* isBlock */
10207
10221
  )
10208
10222
  );
10209
10223
  }
@@ -10216,7 +10230,6 @@ Server rendered element contains fewer child nodes than client vdom.`
10216
10230
  patchFlag,
10217
10231
  dynamicProps,
10218
10232
  true
10219
- /* isBlock: prevent a block from tracking itself */
10220
10233
  )
10221
10234
  );
10222
10235
  }
@@ -10290,7 +10303,7 @@ Server rendered element contains fewer child nodes than client vdom.`
10290
10303
  vnode.shapeFlag |= isString(children) ? 8 : 16;
10291
10304
  }
10292
10305
  if (vnode.key !== vnode.key) {
10293
- warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
10306
+ warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
10294
10307
  }
10295
10308
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
10296
10309
  !isBlockNode && // has current parent block
@@ -10313,7 +10326,7 @@ Server rendered element contains fewer child nodes than client vdom.`
10313
10326
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
10314
10327
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
10315
10328
  if (!type) {
10316
- warn(`Invalid vnode type when creating vnode: ${type}.`);
10329
+ warn$1(`Invalid vnode type when creating vnode: ${type}.`);
10317
10330
  }
10318
10331
  type = Comment;
10319
10332
  }
@@ -10359,7 +10372,7 @@ Server rendered element contains fewer child nodes than client vdom.`
10359
10372
  const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;
10360
10373
  if (shapeFlag & 4 && isProxy(type)) {
10361
10374
  type = toRaw(type);
10362
- warn(
10375
+ warn$1(
10363
10376
  `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\`.`,
10364
10377
  `
10365
10378
  Component that was made reactive: `,
@@ -10660,7 +10673,7 @@ Component that was made reactive: `,
10660
10673
  function validateComponentName(name, config) {
10661
10674
  const appIsNativeTag = config.isNativeTag || NO;
10662
10675
  if (isBuiltInTag(name) || appIsNativeTag(name)) {
10663
- warn(
10676
+ warn$1(
10664
10677
  "Do not use built-in or reserved HTML elements as component id: " + name
10665
10678
  );
10666
10679
  }
@@ -10699,7 +10712,7 @@ Component that was made reactive: `,
10699
10712
  }
10700
10713
  }
10701
10714
  if (Component.compilerOptions && isRuntimeOnly()) {
10702
- warn(
10715
+ warn$1(
10703
10716
  `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`
10704
10717
  );
10705
10718
  }
@@ -10718,7 +10731,10 @@ Component that was made reactive: `,
10718
10731
  setup,
10719
10732
  instance,
10720
10733
  0,
10721
- [shallowReadonly(instance.props) , setupContext]
10734
+ [
10735
+ shallowReadonly(instance.props) ,
10736
+ setupContext
10737
+ ]
10722
10738
  );
10723
10739
  resetTracking();
10724
10740
  unsetCurrentInstance();
@@ -10734,7 +10750,7 @@ Component that was made reactive: `,
10734
10750
  instance.asyncDep = setupResult;
10735
10751
  if (!instance.suspense) {
10736
10752
  const name = (_a = Component.name) != null ? _a : "Anonymous";
10737
- warn(
10753
+ warn$1(
10738
10754
  `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`
10739
10755
  );
10740
10756
  }
@@ -10753,7 +10769,7 @@ Component that was made reactive: `,
10753
10769
  }
10754
10770
  } else if (isObject(setupResult)) {
10755
10771
  if (isVNode(setupResult)) {
10756
- warn(
10772
+ warn$1(
10757
10773
  `setup() should not return VNodes directly - return a render function instead.`
10758
10774
  );
10759
10775
  }
@@ -10765,7 +10781,7 @@ Component that was made reactive: `,
10765
10781
  exposeSetupStateOnRenderContext(instance);
10766
10782
  }
10767
10783
  } else if (setupResult !== void 0) {
10768
- warn(
10784
+ warn$1(
10769
10785
  `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
10770
10786
  );
10771
10787
  }
@@ -10838,12 +10854,11 @@ Component that was made reactive: `,
10838
10854
  }
10839
10855
  if (!Component.render && instance.render === NOOP && !isSSR) {
10840
10856
  if (!compile$1 && Component.template) {
10841
- warn(
10857
+ warn$1(
10842
10858
  `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` )
10843
- /* should not happen */
10844
10859
  );
10845
10860
  } else {
10846
- warn(`Component is missing template or render function.`);
10861
+ warn$1(`Component is missing template or render function.`);
10847
10862
  }
10848
10863
  }
10849
10864
  }
@@ -10857,11 +10872,11 @@ Component that was made reactive: `,
10857
10872
  return target[key];
10858
10873
  },
10859
10874
  set() {
10860
- warn(`setupContext.attrs is readonly.`);
10875
+ warn$1(`setupContext.attrs is readonly.`);
10861
10876
  return false;
10862
10877
  },
10863
10878
  deleteProperty() {
10864
- warn(`setupContext.attrs is readonly.`);
10879
+ warn$1(`setupContext.attrs is readonly.`);
10865
10880
  return false;
10866
10881
  }
10867
10882
  }
@@ -10879,7 +10894,7 @@ Component that was made reactive: `,
10879
10894
  const expose = (exposed) => {
10880
10895
  {
10881
10896
  if (instance.exposed) {
10882
- warn(`expose() should be called only once per setup().`);
10897
+ warn$1(`expose() should be called only once per setup().`);
10883
10898
  }
10884
10899
  if (exposed != null) {
10885
10900
  let exposedType = typeof exposed;
@@ -10891,7 +10906,7 @@ Component that was made reactive: `,
10891
10906
  }
10892
10907
  }
10893
10908
  if (exposedType !== "object") {
10894
- warn(
10909
+ warn$1(
10895
10910
  `expose() should be passed a plain object, received ${exposedType}.`
10896
10911
  );
10897
10912
  }
@@ -10989,7 +11004,7 @@ Component that was made reactive: `,
10989
11004
  const ssrContextKey = Symbol.for("v-scx");
10990
11005
  const useSSRContext = () => {
10991
11006
  {
10992
- warn(`useSSRContext() is not supported in the global build.`);
11007
+ warn$1(`useSSRContext() is not supported in the global build.`);
10993
11008
  }
10994
11009
  };
10995
11010
 
@@ -11194,8 +11209,11 @@ Component that was made reactive: `,
11194
11209
  return true;
11195
11210
  }
11196
11211
 
11197
- const version = "3.4.0-rc.1";
11212
+ const version = "3.4.0-rc.3";
11213
+ const warn = warn$1 ;
11198
11214
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11215
+ const devtools = devtools$1 ;
11216
+ const setDevtoolsHook = setDevtoolsHook$1 ;
11199
11217
  const ssrUtils = null;
11200
11218
  const resolveFilter = resolveFilter$1 ;
11201
11219
  const _compatUtils = {
@@ -12895,7 +12913,7 @@ Component that was made reactive: `,
12895
12913
  defineProps: defineProps,
12896
12914
  defineSSRCustomElement: defineSSRCustomElement,
12897
12915
  defineSlots: defineSlots,
12898
- get devtools () { return devtools; },
12916
+ devtools: devtools,
12899
12917
  effect: effect,
12900
12918
  effectScope: effectScope,
12901
12919
  getCurrentInstance: getCurrentInstance,
@@ -15642,7 +15660,6 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
15642
15660
  true,
15643
15661
  void 0,
15644
15662
  false
15645
- /* isComponent */
15646
15663
  );
15647
15664
  } else ;
15648
15665
  }
@@ -16653,7 +16670,6 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
16653
16670
  true,
16654
16671
  void 0,
16655
16672
  false
16656
- /* isComponent */
16657
16673
  );
16658
16674
  } else {
16659
16675
  childBlock = children[0].codegenNode;
@@ -16710,7 +16726,6 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
16710
16726
  createForLoopParams(forNode.parseResult),
16711
16727
  childBlock,
16712
16728
  true
16713
- /* force newline */
16714
16729
  )
16715
16730
  );
16716
16731
  }
@@ -16927,13 +16942,15 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
16927
16942
  createForLoopParams(parseResult),
16928
16943
  buildDynamicSlot(slotName, slotFunction),
16929
16944
  true
16930
- /* force newline */
16931
16945
  )
16932
16946
  ])
16933
16947
  );
16934
16948
  } else {
16935
16949
  context.onError(
16936
- createCompilerError(32, vFor.loc)
16950
+ createCompilerError(
16951
+ 32,
16952
+ vFor.loc
16953
+ )
16937
16954
  );
16938
16955
  }
16939
16956
  } else {