@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.
@@ -345,7 +345,7 @@ const stringifySymbol = (v, i = "") => {
345
345
  return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
346
346
  };
347
347
 
348
- function warn$1(msg, ...args) {
348
+ function warn$2(msg, ...args) {
349
349
  console.warn(`[Vue warn] ${msg}`, ...args);
350
350
  }
351
351
 
@@ -385,7 +385,7 @@ class EffectScope {
385
385
  activeEffectScope = currentEffectScope;
386
386
  }
387
387
  } else {
388
- warn$1(`cannot run an inactive effect scope.`);
388
+ warn$2(`cannot run an inactive effect scope.`);
389
389
  }
390
390
  }
391
391
  /**
@@ -443,7 +443,7 @@ function onScopeDispose(fn) {
443
443
  if (activeEffectScope) {
444
444
  activeEffectScope.cleanups.push(fn);
445
445
  } else {
446
- warn$1(
446
+ warn$2(
447
447
  `onScopeDispose() is called when there is no active effect scope to be associated with.`
448
448
  );
449
449
  }
@@ -891,7 +891,7 @@ class ReadonlyReactiveHandler extends BaseReactiveHandler {
891
891
  }
892
892
  set(target, key) {
893
893
  {
894
- warn$1(
894
+ warn$2(
895
895
  `Set operation on key "${String(key)}" failed: target is readonly.`,
896
896
  target
897
897
  );
@@ -900,7 +900,7 @@ class ReadonlyReactiveHandler extends BaseReactiveHandler {
900
900
  }
901
901
  deleteProperty(target, key) {
902
902
  {
903
- warn$1(
903
+ warn$2(
904
904
  `Delete operation on key "${String(key)}" failed: target is readonly.`,
905
905
  target
906
906
  );
@@ -1558,7 +1558,7 @@ function pushWarningContext(vnode) {
1558
1558
  function popWarningContext() {
1559
1559
  stack$1.pop();
1560
1560
  }
1561
- function warn(msg, ...args) {
1561
+ function warn$1(msg, ...args) {
1562
1562
  pauseTracking();
1563
1563
  const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null;
1564
1564
  const appWarnHandler = instance && instance.appContext.config.warnHandler;
@@ -1659,9 +1659,9 @@ function assertNumber(val, type) {
1659
1659
  if (val === void 0) {
1660
1660
  return;
1661
1661
  } else if (typeof val !== "number") {
1662
- warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1662
+ warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1663
1663
  } else if (isNaN(val)) {
1664
- warn(`${type} is NaN - the duration expression might be incorrect.`);
1664
+ warn$1(`${type} is NaN - the duration expression might be incorrect.`);
1665
1665
  }
1666
1666
  }
1667
1667
 
@@ -1726,7 +1726,7 @@ const ErrorTypeStrings$1 = {
1726
1726
  [11]: "app warnHandler",
1727
1727
  [12]: "ref function",
1728
1728
  [13]: "async component loader",
1729
- [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"
1729
+ [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
1730
1730
  };
1731
1731
  function callWithErrorHandling(fn, instance, type, args) {
1732
1732
  let res;
@@ -1789,7 +1789,7 @@ function logError(err, type, contextVNode, throwInDev = true) {
1789
1789
  if (contextVNode) {
1790
1790
  pushWarningContext(contextVNode);
1791
1791
  }
1792
- warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1792
+ warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1793
1793
  if (contextVNode) {
1794
1794
  popWarningContext();
1795
1795
  }
@@ -2087,22 +2087,22 @@ function tryWrap(fn) {
2087
2087
  };
2088
2088
  }
2089
2089
 
2090
- let devtools;
2090
+ let devtools$1;
2091
2091
  let buffer = [];
2092
2092
  let devtoolsNotInstalled = false;
2093
2093
  function emit$2(event, ...args) {
2094
- if (devtools) {
2095
- devtools.emit(event, ...args);
2094
+ if (devtools$1) {
2095
+ devtools$1.emit(event, ...args);
2096
2096
  } else if (!devtoolsNotInstalled) {
2097
2097
  buffer.push({ event, args });
2098
2098
  }
2099
2099
  }
2100
- function setDevtoolsHook(hook, target) {
2100
+ function setDevtoolsHook$1(hook, target) {
2101
2101
  var _a, _b;
2102
- devtools = hook;
2103
- if (devtools) {
2104
- devtools.enabled = true;
2105
- buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
2102
+ devtools$1 = hook;
2103
+ if (devtools$1) {
2104
+ devtools$1.enabled = true;
2105
+ buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
2106
2106
  buffer = [];
2107
2107
  } else if (
2108
2108
  // handle late devtools injection - only do this if we are in an actual
@@ -2114,10 +2114,10 @@ function setDevtoolsHook(hook, target) {
2114
2114
  ) {
2115
2115
  const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
2116
2116
  replay.push((newHook) => {
2117
- setDevtoolsHook(newHook, target);
2117
+ setDevtoolsHook$1(newHook, target);
2118
2118
  });
2119
2119
  setTimeout(() => {
2120
- if (!devtools) {
2120
+ if (!devtools$1) {
2121
2121
  target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
2122
2122
  devtoolsNotInstalled = true;
2123
2123
  buffer = [];
@@ -2147,8 +2147,8 @@ const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(
2147
2147
  "component:removed" /* COMPONENT_REMOVED */
2148
2148
  );
2149
2149
  const devtoolsComponentRemoved = (component) => {
2150
- if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2151
- !devtools.cleanupBuffer(component)) {
2150
+ if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2151
+ !devtools$1.cleanupBuffer(component)) {
2152
2152
  _devtoolsComponentRemoved(component);
2153
2153
  }
2154
2154
  };
@@ -2447,12 +2447,12 @@ function warnDeprecation$1(key, instance, ...args) {
2447
2447
  }
2448
2448
  instanceWarned[componentDupKey] = true;
2449
2449
  if (dupKey in warnCount) {
2450
- warn(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);
2450
+ warn$1(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);
2451
2451
  return;
2452
2452
  }
2453
2453
  warnCount[dupKey] = 0;
2454
2454
  const { message, link } = deprecationData$1[key];
2455
- warn(
2455
+ warn$1(
2456
2456
  `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? `
2457
2457
  Details: ${link}` : ``}`
2458
2458
  );
@@ -2482,19 +2482,19 @@ function validateCompatConfig(config, instance) {
2482
2482
  if (key !== "MODE" && !(key in deprecationData$1) && !(key in warnedInvalidKeys)) {
2483
2483
  if (key.startsWith("COMPILER_")) {
2484
2484
  if (isRuntimeOnly()) {
2485
- warn(
2485
+ warn$1(
2486
2486
  `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.
2487
2487
  Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2488
2488
  );
2489
2489
  }
2490
2490
  } else {
2491
- warn(`Invalid deprecation config "${key}".`);
2491
+ warn$1(`Invalid deprecation config "${key}".`);
2492
2492
  }
2493
2493
  warnedInvalidKeys[key] = true;
2494
2494
  }
2495
2495
  }
2496
2496
  if (instance && config["OPTIONS_DATA_MERGE"] != null) {
2497
- warn(
2497
+ warn$1(
2498
2498
  `Deprecation config "${"OPTIONS_DATA_MERGE"}" can only be configured globally.`
2499
2499
  );
2500
2500
  }
@@ -2684,7 +2684,7 @@ function emit(instance, event, ...rawArgs) {
2684
2684
  if (emitsOptions) {
2685
2685
  if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
2686
2686
  if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
2687
- warn(
2687
+ warn$1(
2688
2688
  `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
2689
2689
  );
2690
2690
  }
@@ -2693,7 +2693,7 @@ function emit(instance, event, ...rawArgs) {
2693
2693
  if (isFunction(validator)) {
2694
2694
  const isValid = validator(...rawArgs);
2695
2695
  if (!isValid) {
2696
- warn(
2696
+ warn$1(
2697
2697
  `Invalid event arguments: event validation failed for event "${event}".`
2698
2698
  );
2699
2699
  }
@@ -2720,11 +2720,13 @@ function emit(instance, event, ...rawArgs) {
2720
2720
  {
2721
2721
  const lowerCaseEvent = event.toLowerCase();
2722
2722
  if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
2723
- warn(
2723
+ warn$1(
2724
2724
  `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
2725
2725
  instance,
2726
2726
  instance.type
2727
- )} 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}".`
2727
+ )} 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(
2728
+ event
2729
+ )}" instead of "${event}".`
2728
2730
  );
2729
2731
  }
2730
2732
  }
@@ -2901,7 +2903,7 @@ function renderComponentRoot(instance) {
2901
2903
  const proxyToUse = withProxy || proxy;
2902
2904
  const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, {
2903
2905
  get(target, key, receiver) {
2904
- warn(
2906
+ warn$1(
2905
2907
  `Property '${String(
2906
2908
  key
2907
2909
  )}' was accessed via 'this'. Avoid using 'this' in templates.`
@@ -2982,12 +2984,12 @@ function renderComponentRoot(instance) {
2982
2984
  }
2983
2985
  }
2984
2986
  if (extraAttrs.length) {
2985
- warn(
2987
+ warn$1(
2986
2988
  `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
2987
2989
  );
2988
2990
  }
2989
2991
  if (eventAttrs.length) {
2990
- warn(
2992
+ warn$1(
2991
2993
  `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.`
2992
2994
  );
2993
2995
  }
@@ -3012,7 +3014,7 @@ function renderComponentRoot(instance) {
3012
3014
  }
3013
3015
  if (vnode.dirs) {
3014
3016
  if (!isElementRoot(root)) {
3015
- warn(
3017
+ warn$1(
3016
3018
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
3017
3019
  );
3018
3020
  }
@@ -3021,7 +3023,7 @@ function renderComponentRoot(instance) {
3021
3023
  }
3022
3024
  if (vnode.transition) {
3023
3025
  if (!isElementRoot(root)) {
3024
- warn(
3026
+ warn$1(
3025
3027
  `Component inside <Transition> renders non-element root node that cannot be animated.`
3026
3028
  );
3027
3029
  }
@@ -3200,7 +3202,6 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
3200
3202
  const selfName = getComponentName(
3201
3203
  Component,
3202
3204
  false
3203
- /* do not include inferred name to avoid breaking existing code */
3204
3205
  );
3205
3206
  if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
3206
3207
  return Component;
@@ -3218,11 +3219,11 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
3218
3219
  if (warnMissing && !res) {
3219
3220
  const extra = type === COMPONENTS ? `
3220
3221
  If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
3221
- warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
3222
+ warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
3222
3223
  }
3223
3224
  return res;
3224
3225
  } else {
3225
- warn(
3226
+ warn$1(
3226
3227
  `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
3227
3228
  );
3228
3229
  }
@@ -3730,6 +3731,7 @@ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace
3730
3731
  parentSuspense,
3731
3732
  parentComponent,
3732
3733
  node.parentNode,
3734
+ // eslint-disable-next-line no-restricted-globals
3733
3735
  document.createElement("div"),
3734
3736
  null,
3735
3737
  namespace,
@@ -3737,7 +3739,6 @@ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace
3737
3739
  optimized,
3738
3740
  rendererInternals,
3739
3741
  true
3740
- /* hydrating */
3741
3742
  );
3742
3743
  const result = hydrateNode(
3743
3744
  node,
@@ -3778,7 +3779,7 @@ function normalizeSuspenseSlot(s) {
3778
3779
  if (isArray(s)) {
3779
3780
  const singleChild = filterSingleRoot(s);
3780
3781
  if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
3781
- warn(`<Suspense> slots expect a single root node.`);
3782
+ warn$1(`<Suspense> slots expect a single root node.`);
3782
3783
  }
3783
3784
  s = singleChild;
3784
3785
  }
@@ -3871,13 +3872,20 @@ function watchSyncEffect(effect, options) {
3871
3872
  const INITIAL_WATCHER_VALUE = {};
3872
3873
  function watch(source, cb, options) {
3873
3874
  if (!isFunction(cb)) {
3874
- warn(
3875
+ warn$1(
3875
3876
  `\`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.`
3876
3877
  );
3877
3878
  }
3878
3879
  return doWatch(source, cb, options);
3879
3880
  }
3880
- function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger } = EMPTY_OBJ) {
3881
+ function doWatch(source, cb, {
3882
+ immediate,
3883
+ deep,
3884
+ flush,
3885
+ once,
3886
+ onTrack,
3887
+ onTrigger
3888
+ } = EMPTY_OBJ) {
3881
3889
  var _a;
3882
3890
  if (cb && once) {
3883
3891
  const _cb = cb;
@@ -3888,23 +3896,23 @@ function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger
3888
3896
  }
3889
3897
  if (!cb) {
3890
3898
  if (immediate !== void 0) {
3891
- warn(
3899
+ warn$1(
3892
3900
  `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
3893
3901
  );
3894
3902
  }
3895
3903
  if (deep !== void 0) {
3896
- warn(
3904
+ warn$1(
3897
3905
  `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
3898
3906
  );
3899
3907
  }
3900
3908
  if (once !== void 0) {
3901
- warn(
3909
+ warn$1(
3902
3910
  `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
3903
3911
  );
3904
3912
  }
3905
3913
  }
3906
3914
  const warnInvalidSource = (s) => {
3907
- warn(
3915
+ warn$1(
3908
3916
  `Invalid watch source: `,
3909
3917
  s,
3910
3918
  `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
@@ -4099,13 +4107,13 @@ function traverse(value, seen) {
4099
4107
 
4100
4108
  function validateDirectiveName(name) {
4101
4109
  if (isBuiltInDirective(name)) {
4102
- warn("Do not use built-in directive ids as custom directive id: " + name);
4110
+ warn$1("Do not use built-in directive ids as custom directive id: " + name);
4103
4111
  }
4104
4112
  }
4105
4113
  function withDirectives(vnode, directives) {
4106
4114
  const internalInstance = currentRenderingInstance;
4107
4115
  if (internalInstance === null) {
4108
- warn(`withDirectives can only be used inside render functions.`);
4116
+ warn$1(`withDirectives can only be used inside render functions.`);
4109
4117
  return vnode;
4110
4118
  }
4111
4119
  const instance = getExposeProxy(internalInstance) || internalInstance.proxy;
@@ -4215,7 +4223,7 @@ const BaseTransitionImpl = {
4215
4223
  for (const c of children) {
4216
4224
  if (c.type !== Comment) {
4217
4225
  if (hasFound) {
4218
- warn(
4226
+ warn$1(
4219
4227
  "<transition> can only be used on a single element or component. Use <transition-group> for lists."
4220
4228
  );
4221
4229
  break;
@@ -4228,7 +4236,7 @@ const BaseTransitionImpl = {
4228
4236
  const rawProps = toRaw(props);
4229
4237
  const { mode } = rawProps;
4230
4238
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
4231
- warn(`invalid <transition> mode: ${mode}`);
4239
+ warn$1(`invalid <transition> mode: ${mode}`);
4232
4240
  }
4233
4241
  if (state.isLeaving) {
4234
4242
  return emptyPlaceholder(child);
@@ -4546,7 +4554,7 @@ function defineAsyncComponent(source) {
4546
4554
  return pendingRequest;
4547
4555
  }
4548
4556
  if (!comp) {
4549
- warn(
4557
+ warn$1(
4550
4558
  `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`
4551
4559
  );
4552
4560
  }
@@ -4578,7 +4586,6 @@ function defineAsyncComponent(source) {
4578
4586
  instance,
4579
4587
  13,
4580
4588
  !errorComponent
4581
- /* do not throw in dev if user provided error component */
4582
4589
  );
4583
4590
  };
4584
4591
  if (suspensible && instance.suspense || false) {
@@ -4780,7 +4787,7 @@ const KeepAliveImpl = {
4780
4787
  const rawVNode = children[0];
4781
4788
  if (children.length > 1) {
4782
4789
  {
4783
- warn(`KeepAlive should contain exactly one component child.`);
4790
+ warn$1(`KeepAlive should contain exactly one component child.`);
4784
4791
  }
4785
4792
  current = null;
4786
4793
  return children;
@@ -4912,7 +4919,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
4912
4919
  return wrappedHook;
4913
4920
  } else {
4914
4921
  const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
4915
- warn(
4922
+ warn$1(
4916
4923
  `${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.` )
4917
4924
  );
4918
4925
  }
@@ -4974,8 +4981,8 @@ function getCompatListeners(instance) {
4974
4981
  }
4975
4982
 
4976
4983
  function convertLegacyRenderFn(instance) {
4977
- const Component2 = instance.type;
4978
- const render = Component2.render;
4984
+ const Component = instance.type;
4985
+ const render = Component.render;
4979
4986
  if (!render || render._rc || render._compatChecked || render._compatWrapped) {
4980
4987
  return;
4981
4988
  }
@@ -4984,7 +4991,7 @@ function convertLegacyRenderFn(instance) {
4984
4991
  return;
4985
4992
  }
4986
4993
  if (checkCompatEnabled$1("RENDER_FUNCTION", instance)) {
4987
- const wrapped = Component2.render = function compatRender() {
4994
+ const wrapped = Component.render = function compatRender() {
4988
4995
  return render.call(this, compatH);
4989
4996
  };
4990
4997
  wrapped._compatWrapped = true;
@@ -5143,12 +5150,10 @@ function defineLegacyVNodeProperties(vnode) {
5143
5150
  "RENDER_FUNCTION",
5144
5151
  currentRenderingInstance,
5145
5152
  true
5146
- /* enable for built-ins */
5147
5153
  ) && isCompatEnabled$1(
5148
5154
  "PRIVATE_APIS",
5149
5155
  currentRenderingInstance,
5150
5156
  true
5151
- /* enable for built-ins */
5152
5157
  )) {
5153
5158
  const context = currentRenderingInstance;
5154
5159
  const getInstance = () => vnode.component && vnode.component.proxy;
@@ -5234,7 +5239,7 @@ function renderList(source, renderItem, cache, index) {
5234
5239
  }
5235
5240
  } else if (typeof source === "number") {
5236
5241
  if (!Number.isInteger(source)) {
5237
- warn(`The v-for range expect an integer value but got ${source}.`);
5242
+ warn$1(`The v-for range expect an integer value but got ${source}.`);
5238
5243
  }
5239
5244
  ret = new Array(source);
5240
5245
  for (let i = 0; i < source; i++) {
@@ -5290,7 +5295,7 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5290
5295
  }
5291
5296
  let slot = slots[name];
5292
5297
  if (slot && slot.length > 1) {
5293
- warn(
5298
+ warn$1(
5294
5299
  `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.`
5295
5300
  );
5296
5301
  slot = () => [];
@@ -5333,7 +5338,7 @@ function ensureValidVNode(vnodes) {
5333
5338
  function toHandlers(obj, preserveCaseIfNecessary) {
5334
5339
  const ret = {};
5335
5340
  if (!isObject(obj)) {
5336
- warn(`v-on with no argument expects an object value.`);
5341
+ warn$1(`v-on with no argument expects an object value.`);
5337
5342
  return ret;
5338
5343
  }
5339
5344
  for (const key in obj) {
@@ -5478,7 +5483,6 @@ function installCompatInstanceProperties(map) {
5478
5483
  assertCompatEnabled(
5479
5484
  "GLOBAL_MOUNT",
5480
5485
  null
5481
- /* this warning is global */
5482
5486
  );
5483
5487
  return i.ctx._compat_mount || NOOP;
5484
5488
  },
@@ -5662,13 +5666,13 @@ const PublicInstanceProxyHandlers = {
5662
5666
  // to infinite warning loop
5663
5667
  key.indexOf("__v") !== 0)) {
5664
5668
  if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {
5665
- warn(
5669
+ warn$1(
5666
5670
  `Property ${JSON.stringify(
5667
5671
  key
5668
5672
  )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
5669
5673
  );
5670
5674
  } else if (instance === currentRenderingInstance) {
5671
- warn(
5675
+ warn$1(
5672
5676
  `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
5673
5677
  );
5674
5678
  }
@@ -5680,17 +5684,17 @@ const PublicInstanceProxyHandlers = {
5680
5684
  setupState[key] = value;
5681
5685
  return true;
5682
5686
  } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) {
5683
- warn(`Cannot mutate <script setup> binding "${key}" from Options API.`);
5687
+ warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
5684
5688
  return false;
5685
5689
  } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
5686
5690
  data[key] = value;
5687
5691
  return true;
5688
5692
  } else if (hasOwn(instance.props, key)) {
5689
- warn(`Attempting to mutate prop "${key}". Props are readonly.`);
5693
+ warn$1(`Attempting to mutate prop "${key}". Props are readonly.`);
5690
5694
  return false;
5691
5695
  }
5692
5696
  if (key[0] === "$" && key.slice(1) in instance) {
5693
- warn(
5697
+ warn$1(
5694
5698
  `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.`
5695
5699
  );
5696
5700
  return false;
@@ -5724,7 +5728,7 @@ const PublicInstanceProxyHandlers = {
5724
5728
  };
5725
5729
  {
5726
5730
  PublicInstanceProxyHandlers.ownKeys = (target) => {
5727
- warn(
5731
+ warn$1(
5728
5732
  `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
5729
5733
  );
5730
5734
  return Reflect.ownKeys(target);
@@ -5743,7 +5747,7 @@ const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(
5743
5747
  has(_, key) {
5744
5748
  const has = key[0] !== "_" && !isGloballyAllowed(key);
5745
5749
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
5746
- warn(
5750
+ warn$1(
5747
5751
  `Property ${JSON.stringify(
5748
5752
  key
5749
5753
  )} should not start with _ which is a reserved prefix for Vue internals.`
@@ -5793,7 +5797,7 @@ function exposeSetupStateOnRenderContext(instance) {
5793
5797
  Object.keys(toRaw(setupState)).forEach((key) => {
5794
5798
  if (!setupState.__isScriptSetup) {
5795
5799
  if (isReservedPrefix(key[0])) {
5796
- warn(
5800
+ warn$1(
5797
5801
  `setup() return property ${JSON.stringify(
5798
5802
  key
5799
5803
  )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
@@ -5824,7 +5828,7 @@ function deepMergeData(to, from) {
5824
5828
  return to;
5825
5829
  }
5826
5830
 
5827
- const warnRuntimeUsage = (method) => warn(
5831
+ const warnRuntimeUsage = (method) => warn$1(
5828
5832
  `${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.`
5829
5833
  );
5830
5834
  function defineProps() {
@@ -5872,17 +5876,17 @@ function useSlots() {
5872
5876
  function useAttrs() {
5873
5877
  return getContext().attrs;
5874
5878
  }
5875
- function useModel(props, name) {
5879
+ function useModel(props, name, options = EMPTY_OBJ) {
5876
5880
  const i = getCurrentInstance();
5877
5881
  if (!i) {
5878
- warn(`useModel() called without active instance.`);
5882
+ warn$1(`useModel() called without active instance.`);
5879
5883
  return ref();
5880
5884
  }
5881
5885
  if (!i.propsOptions[0][name]) {
5882
- warn(`useModel() called with prop "${name}" which is not declared.`);
5886
+ warn$1(`useModel() called with prop "${name}" which is not declared.`);
5883
5887
  return ref();
5884
5888
  }
5885
- return customRef((track, trigger) => {
5889
+ const res = customRef((track, trigger) => {
5886
5890
  let localValue;
5887
5891
  watchSyncEffect(() => {
5888
5892
  const propValue = props[name];
@@ -5894,7 +5898,7 @@ function useModel(props, name) {
5894
5898
  return {
5895
5899
  get() {
5896
5900
  track();
5897
- return localValue;
5901
+ return options.get ? options.get(localValue) : localValue;
5898
5902
  },
5899
5903
  set(value) {
5900
5904
  const rawProps = i.vnode.props;
@@ -5902,15 +5906,29 @@ function useModel(props, name) {
5902
5906
  localValue = value;
5903
5907
  trigger();
5904
5908
  }
5905
- i.emit(`update:${name}`, value);
5909
+ i.emit(`update:${name}`, options.set ? options.set(value) : value);
5906
5910
  }
5907
5911
  };
5908
5912
  });
5913
+ const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
5914
+ res[Symbol.iterator] = () => {
5915
+ let i2 = 0;
5916
+ return {
5917
+ next() {
5918
+ if (i2 < 2) {
5919
+ return { value: i2++ ? props[modifierKey] : res, done: false };
5920
+ } else {
5921
+ return { done: true };
5922
+ }
5923
+ }
5924
+ };
5925
+ };
5926
+ return res;
5909
5927
  }
5910
5928
  function getContext() {
5911
5929
  const i = getCurrentInstance();
5912
5930
  if (!i) {
5913
- warn(`useContext() called without active instance.`);
5931
+ warn$1(`useContext() called without active instance.`);
5914
5932
  }
5915
5933
  return i.setupContext || (i.setupContext = createSetupContext(i));
5916
5934
  }
@@ -5935,7 +5953,7 @@ function mergeDefaults(raw, defaults) {
5935
5953
  } else if (opt === null) {
5936
5954
  opt = props[key] = { default: defaults[key] };
5937
5955
  } else {
5938
- warn(`props default key "${key}" has no corresponding declaration.`);
5956
+ warn$1(`props default key "${key}" has no corresponding declaration.`);
5939
5957
  }
5940
5958
  if (opt && defaults[`__skip_${key}`]) {
5941
5959
  opt.skipFactory = true;
@@ -5965,7 +5983,7 @@ function createPropsRestProxy(props, excludedKeys) {
5965
5983
  function withAsyncContext(getAwaitable) {
5966
5984
  const ctx = getCurrentInstance();
5967
5985
  if (!ctx) {
5968
- warn(
5986
+ warn$1(
5969
5987
  `withAsyncContext called without active current instance. This is likely a bug.`
5970
5988
  );
5971
5989
  }
@@ -5984,7 +6002,7 @@ function createDuplicateChecker() {
5984
6002
  const cache = /* @__PURE__ */ Object.create(null);
5985
6003
  return (type, key) => {
5986
6004
  if (cache[key]) {
5987
- warn(`${type} property "${key}" is already defined in ${cache[key]}.`);
6005
+ warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
5988
6006
  } else {
5989
6007
  cache[key] = type;
5990
6008
  }
@@ -6060,7 +6078,7 @@ function applyOptions(instance) {
6060
6078
  checkDuplicateProperties("Methods" /* METHODS */, key);
6061
6079
  }
6062
6080
  } else {
6063
- warn(
6081
+ warn$1(
6064
6082
  `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
6065
6083
  );
6066
6084
  }
@@ -6068,18 +6086,18 @@ function applyOptions(instance) {
6068
6086
  }
6069
6087
  if (dataOptions) {
6070
6088
  if (!isFunction(dataOptions)) {
6071
- warn(
6089
+ warn$1(
6072
6090
  `The data option must be a function. Plain object usage is no longer supported.`
6073
6091
  );
6074
6092
  }
6075
6093
  const data = dataOptions.call(publicThis, publicThis);
6076
6094
  if (isPromise(data)) {
6077
- warn(
6095
+ warn$1(
6078
6096
  `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
6079
6097
  );
6080
6098
  }
6081
6099
  if (!isObject(data)) {
6082
- warn(`data() should return an object.`);
6100
+ warn$1(`data() should return an object.`);
6083
6101
  } else {
6084
6102
  instance.data = reactive(data);
6085
6103
  {
@@ -6103,10 +6121,10 @@ function applyOptions(instance) {
6103
6121
  const opt = computedOptions[key];
6104
6122
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
6105
6123
  if (get === NOOP) {
6106
- warn(`Computed property "${key}" has no getter.`);
6124
+ warn$1(`Computed property "${key}" has no getter.`);
6107
6125
  }
6108
6126
  const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
6109
- warn(
6127
+ warn$1(
6110
6128
  `Write operation failed: computed property "${key}" is readonly.`
6111
6129
  );
6112
6130
  } ;
@@ -6206,7 +6224,6 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
6206
6224
  opt.from || key,
6207
6225
  opt.default,
6208
6226
  true
6209
- /* treat default function as factory */
6210
6227
  );
6211
6228
  } else {
6212
6229
  injected = inject(opt.from || key);
@@ -6243,7 +6260,7 @@ function createWatcher(raw, ctx, publicThis, key) {
6243
6260
  if (isFunction(handler)) {
6244
6261
  watch(getter, handler);
6245
6262
  } else {
6246
- warn(`Invalid watch handler specified by key "${raw}"`, handler);
6263
+ warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
6247
6264
  }
6248
6265
  } else if (isFunction(raw)) {
6249
6266
  watch(getter, raw.bind(publicThis));
@@ -6255,11 +6272,11 @@ function createWatcher(raw, ctx, publicThis, key) {
6255
6272
  if (isFunction(handler)) {
6256
6273
  watch(getter, handler, raw);
6257
6274
  } else {
6258
- warn(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6275
+ warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6259
6276
  }
6260
6277
  }
6261
6278
  } else {
6262
- warn(`Invalid watch option: "${key}"`, raw);
6279
+ warn$1(`Invalid watch option: "${key}"`, raw);
6263
6280
  }
6264
6281
  }
6265
6282
  function resolveMergedOptions(instance) {
@@ -6311,7 +6328,7 @@ function mergeOptions(to, from, strats, asMixin = false) {
6311
6328
  }
6312
6329
  for (const key in from) {
6313
6330
  if (asMixin && key === "expose") {
6314
- warn(
6331
+ warn$1(
6315
6332
  `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`
6316
6333
  );
6317
6334
  } else {
@@ -6479,7 +6496,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6479
6496
  return vm;
6480
6497
  }
6481
6498
  }
6482
- Vue.version = `2.6.14-compat:${"3.4.0-rc.1"}`;
6499
+ Vue.version = `2.6.14-compat:${"3.4.0-rc.3"}`;
6483
6500
  Vue.config = singletonApp.config;
6484
6501
  Vue.use = (p, ...options) => {
6485
6502
  if (p && isFunction(p.install)) {
@@ -6580,7 +6597,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6580
6597
  }
6581
6598
  };
6582
6599
  const util = {
6583
- warn: warn ,
6600
+ warn: warn$1 ,
6584
6601
  extend,
6585
6602
  mergeOptions: (parent, child, vm) => mergeOptions(
6586
6603
  parent,
@@ -6617,7 +6634,7 @@ function installFilterMethod(app, context) {
6617
6634
  return context.filters[name];
6618
6635
  }
6619
6636
  if (context.filters[name]) {
6620
- warn(`Filter "${name}" has already been registered.`);
6637
+ warn$1(`Filter "${name}" has already been registered.`);
6621
6638
  }
6622
6639
  context.filters[name] = filter;
6623
6640
  return app;
@@ -6708,14 +6725,14 @@ function installCompatMount(app, context, render) {
6708
6725
  vnode.isCompatRoot = true;
6709
6726
  instance.ctx._compat_mount = (selectorOrEl) => {
6710
6727
  if (isMounted) {
6711
- warn(`Root instance is already mounted.`);
6728
+ warn$1(`Root instance is already mounted.`);
6712
6729
  return;
6713
6730
  }
6714
6731
  let container;
6715
6732
  if (typeof selectorOrEl === "string") {
6716
6733
  const result = document.querySelector(selectorOrEl);
6717
6734
  if (!result) {
6718
- warn(
6735
+ warn$1(
6719
6736
  `Failed to mount root instance: selector "${selectorOrEl}" returned null.`
6720
6737
  );
6721
6738
  return;
@@ -6880,7 +6897,7 @@ function createAppAPI(render, hydrate) {
6880
6897
  rootComponent = extend({}, rootComponent);
6881
6898
  }
6882
6899
  if (rootProps != null && !isObject(rootProps)) {
6883
- warn(`root props passed to app.mount() must be an object.`);
6900
+ warn$1(`root props passed to app.mount() must be an object.`);
6884
6901
  rootProps = null;
6885
6902
  }
6886
6903
  const context = createAppContext();
@@ -6899,14 +6916,14 @@ function createAppAPI(render, hydrate) {
6899
6916
  },
6900
6917
  set config(v) {
6901
6918
  {
6902
- warn(
6919
+ warn$1(
6903
6920
  `app.config cannot be replaced. Modify individual options instead.`
6904
6921
  );
6905
6922
  }
6906
6923
  },
6907
6924
  use(plugin, ...options) {
6908
6925
  if (installedPlugins.has(plugin)) {
6909
- warn(`Plugin has already been applied to target app.`);
6926
+ warn$1(`Plugin has already been applied to target app.`);
6910
6927
  } else if (plugin && isFunction(plugin.install)) {
6911
6928
  installedPlugins.add(plugin);
6912
6929
  plugin.install(app, ...options);
@@ -6914,7 +6931,7 @@ function createAppAPI(render, hydrate) {
6914
6931
  installedPlugins.add(plugin);
6915
6932
  plugin(app, ...options);
6916
6933
  } else {
6917
- warn(
6934
+ warn$1(
6918
6935
  `A plugin must either be a function or an object with an "install" function.`
6919
6936
  );
6920
6937
  }
@@ -6925,7 +6942,7 @@ function createAppAPI(render, hydrate) {
6925
6942
  if (!context.mixins.includes(mixin)) {
6926
6943
  context.mixins.push(mixin);
6927
6944
  } else {
6928
- warn(
6945
+ warn$1(
6929
6946
  "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
6930
6947
  );
6931
6948
  }
@@ -6940,7 +6957,7 @@ function createAppAPI(render, hydrate) {
6940
6957
  return context.components[name];
6941
6958
  }
6942
6959
  if (context.components[name]) {
6943
- warn(`Component "${name}" has already been registered in target app.`);
6960
+ warn$1(`Component "${name}" has already been registered in target app.`);
6944
6961
  }
6945
6962
  context.components[name] = component;
6946
6963
  return app;
@@ -6953,7 +6970,7 @@ function createAppAPI(render, hydrate) {
6953
6970
  return context.directives[name];
6954
6971
  }
6955
6972
  if (context.directives[name]) {
6956
- warn(`Directive "${name}" has already been registered in target app.`);
6973
+ warn$1(`Directive "${name}" has already been registered in target app.`);
6957
6974
  }
6958
6975
  context.directives[name] = directive;
6959
6976
  return app;
@@ -6961,7 +6978,7 @@ function createAppAPI(render, hydrate) {
6961
6978
  mount(rootContainer, isHydrate, namespace) {
6962
6979
  if (!isMounted) {
6963
6980
  if (rootContainer.__vue_app__) {
6964
- warn(
6981
+ warn$1(
6965
6982
  `There is already an app instance mounted on the host container.
6966
6983
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6967
6984
  );
@@ -6996,7 +7013,7 @@ function createAppAPI(render, hydrate) {
6996
7013
  }
6997
7014
  return getExposeProxy(vnode.component) || vnode.component.proxy;
6998
7015
  } else {
6999
- warn(
7016
+ warn$1(
7000
7017
  `App has already been mounted.
7001
7018
  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)\``
7002
7019
  );
@@ -7011,12 +7028,12 @@ If you want to remount the same app, move your app creation logic into a factory
7011
7028
  }
7012
7029
  delete app._container.__vue_app__;
7013
7030
  } else {
7014
- warn(`Cannot unmount an app that is not mounted.`);
7031
+ warn$1(`Cannot unmount an app that is not mounted.`);
7015
7032
  }
7016
7033
  },
7017
7034
  provide(key, value) {
7018
7035
  if (key in context.provides) {
7019
- warn(
7036
+ warn$1(
7020
7037
  `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
7021
7038
  );
7022
7039
  }
@@ -7043,7 +7060,7 @@ let currentApp = null;
7043
7060
  function provide(key, value) {
7044
7061
  if (!currentInstance) {
7045
7062
  {
7046
- warn(`provide() can only be used inside setup().`);
7063
+ warn$1(`provide() can only be used inside setup().`);
7047
7064
  }
7048
7065
  } else {
7049
7066
  let provides = currentInstance.provides;
@@ -7063,10 +7080,10 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
7063
7080
  } else if (arguments.length > 1) {
7064
7081
  return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
7065
7082
  } else {
7066
- warn(`injection "${String(key)}" not found.`);
7083
+ warn$1(`injection "${String(key)}" not found.`);
7067
7084
  }
7068
7085
  } else {
7069
- warn(`inject() can only be used inside setup() or functional components.`);
7086
+ warn$1(`inject() can only be used inside setup() or functional components.`);
7070
7087
  }
7071
7088
  }
7072
7089
  function hasInjectionContext() {
@@ -7186,7 +7203,6 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7186
7203
  value,
7187
7204
  instance,
7188
7205
  false
7189
- /* isAbsent */
7190
7206
  );
7191
7207
  }
7192
7208
  } else {
@@ -7225,7 +7241,6 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7225
7241
  void 0,
7226
7242
  instance,
7227
7243
  true
7228
- /* isAbsent */
7229
7244
  );
7230
7245
  }
7231
7246
  } else {
@@ -7382,7 +7397,7 @@ function normalizePropsOptions(comp, appContext, asMixin = false) {
7382
7397
  if (isArray(raw)) {
7383
7398
  for (let i = 0; i < raw.length; i++) {
7384
7399
  if (!isString(raw[i])) {
7385
- warn(`props must be strings when using array syntax.`, raw[i]);
7400
+ warn$1(`props must be strings when using array syntax.`, raw[i]);
7386
7401
  }
7387
7402
  const normalizedKey = camelize(raw[i]);
7388
7403
  if (validatePropName(normalizedKey)) {
@@ -7391,7 +7406,7 @@ function normalizePropsOptions(comp, appContext, asMixin = false) {
7391
7406
  }
7392
7407
  } else if (raw) {
7393
7408
  if (!isObject(raw)) {
7394
- warn(`invalid props options`, raw);
7409
+ warn$1(`invalid props options`, raw);
7395
7410
  }
7396
7411
  for (const key in raw) {
7397
7412
  const normalizedKey = camelize(key);
@@ -7420,7 +7435,7 @@ function validatePropName(key) {
7420
7435
  if (key[0] !== "$") {
7421
7436
  return true;
7422
7437
  } else {
7423
- warn(`Invalid prop name: "${key}" is a reserved property.`);
7438
+ warn$1(`Invalid prop name: "${key}" is a reserved property.`);
7424
7439
  }
7425
7440
  return false;
7426
7441
  }
@@ -7458,7 +7473,7 @@ function validateProps(rawProps, props, instance) {
7458
7473
  function validateProp(name, value, prop, props, isAbsent) {
7459
7474
  const { type, required, validator, skipCheck } = prop;
7460
7475
  if (required && isAbsent) {
7461
- warn('Missing required prop: "' + name + '"');
7476
+ warn$1('Missing required prop: "' + name + '"');
7462
7477
  return;
7463
7478
  }
7464
7479
  if (value == null && !required) {
@@ -7474,12 +7489,12 @@ function validateProp(name, value, prop, props, isAbsent) {
7474
7489
  isValid = valid;
7475
7490
  }
7476
7491
  if (!isValid) {
7477
- warn(getInvalidTypeMessage(name, value, expectedTypes));
7492
+ warn$1(getInvalidTypeMessage(name, value, expectedTypes));
7478
7493
  return;
7479
7494
  }
7480
7495
  }
7481
7496
  if (validator && !validator(value, props)) {
7482
- warn('Invalid prop: custom validator check failed for prop "' + name + '".');
7497
+ warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
7483
7498
  }
7484
7499
  }
7485
7500
  const isSimpleType = /* @__PURE__ */ makeMap(
@@ -7551,7 +7566,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
7551
7566
  }
7552
7567
  const normalized = withCtx((...args) => {
7553
7568
  if (currentInstance) {
7554
- warn(
7569
+ warn$1(
7555
7570
  `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.`
7556
7571
  );
7557
7572
  }
@@ -7570,7 +7585,7 @@ const normalizeObjectSlots = (rawSlots, slots, instance) => {
7570
7585
  slots[key] = normalizeSlot(key, value, ctx);
7571
7586
  } else if (value != null) {
7572
7587
  if (!isCompatEnabled$1("RENDER_FUNCTION", instance)) {
7573
- warn(
7588
+ warn$1(
7574
7589
  `Non-function value encountered for slot "${key}". Prefer function slots for better performance.`
7575
7590
  );
7576
7591
  }
@@ -7581,7 +7596,7 @@ const normalizeObjectSlots = (rawSlots, slots, instance) => {
7581
7596
  };
7582
7597
  const normalizeVNodeSlots = (instance, children) => {
7583
7598
  if (!isKeepAlive(instance.vnode) && !isCompatEnabled$1("RENDER_FUNCTION", instance)) {
7584
- warn(
7599
+ warn$1(
7585
7600
  `Non-function value encountered for default slot. Prefer function slots for better performance.`
7586
7601
  );
7587
7602
  }
@@ -7665,7 +7680,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7665
7680
  const value = isUnmount ? null : refValue;
7666
7681
  const { i: owner, r: ref } = rawRef;
7667
7682
  if (!owner) {
7668
- warn(
7683
+ warn$1(
7669
7684
  `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`
7670
7685
  );
7671
7686
  return;
@@ -7720,7 +7735,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7720
7735
  if (rawRef.k)
7721
7736
  refs[rawRef.k] = value;
7722
7737
  } else {
7723
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
7738
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7724
7739
  }
7725
7740
  };
7726
7741
  if (value) {
@@ -7730,7 +7745,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
7730
7745
  doSet();
7731
7746
  }
7732
7747
  } else {
7733
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
7748
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7734
7749
  }
7735
7750
  }
7736
7751
  }
@@ -7762,7 +7777,7 @@ function createHydrationFunctions(rendererInternals) {
7762
7777
  } = rendererInternals;
7763
7778
  const hydrate = (vnode, container) => {
7764
7779
  if (!container.hasChildNodes()) {
7765
- warn(
7780
+ warn$1(
7766
7781
  `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
7767
7782
  );
7768
7783
  patch(null, vnode, container);
@@ -7822,7 +7837,7 @@ function createHydrationFunctions(rendererInternals) {
7822
7837
  } else {
7823
7838
  if (node.data !== vnode.children) {
7824
7839
  hasMismatch = true;
7825
- warn(
7840
+ warn$1(
7826
7841
  `Hydration text mismatch in`,
7827
7842
  node.parentNode,
7828
7843
  `
@@ -7957,7 +7972,7 @@ function createHydrationFunctions(rendererInternals) {
7957
7972
  hydrateNode
7958
7973
  );
7959
7974
  } else {
7960
- warn("Invalid HostVNode type:", type, `(${typeof type})`);
7975
+ warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
7961
7976
  }
7962
7977
  }
7963
7978
  if (ref != null) {
@@ -7998,7 +8013,7 @@ function createHydrationFunctions(rendererInternals) {
7998
8013
  while (next) {
7999
8014
  hasMismatch = true;
8000
8015
  if (!hasWarned) {
8001
- warn(
8016
+ warn$1(
8002
8017
  `Hydration children mismatch on`,
8003
8018
  el,
8004
8019
  `
@@ -8013,7 +8028,7 @@ Server rendered element contains more child nodes than client vdom.`
8013
8028
  } else if (shapeFlag & 8) {
8014
8029
  if (el.textContent !== vnode.children) {
8015
8030
  hasMismatch = true;
8016
- warn(
8031
+ warn$1(
8017
8032
  `Hydration text content mismatch on`,
8018
8033
  el,
8019
8034
  `
@@ -8082,7 +8097,7 @@ Server rendered element contains more child nodes than client vdom.`
8082
8097
  } else {
8083
8098
  hasMismatch = true;
8084
8099
  if (!hasWarned) {
8085
- warn(
8100
+ warn$1(
8086
8101
  `Hydration children mismatch on`,
8087
8102
  container,
8088
8103
  `
@@ -8129,7 +8144,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8129
8144
  };
8130
8145
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
8131
8146
  hasMismatch = true;
8132
- warn(
8147
+ warn$1(
8133
8148
  `Hydration node mismatch:
8134
8149
  - rendered on server:`,
8135
8150
  node,
@@ -8228,7 +8243,7 @@ function propHasMismatch(el, key, clientValue) {
8228
8243
  }
8229
8244
  if (mismatchType) {
8230
8245
  const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
8231
- warn(
8246
+ warn$1(
8232
8247
  `Hydration ${mismatchType} mismatch on`,
8233
8248
  el,
8234
8249
  `
@@ -8307,7 +8322,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8307
8322
  const target = getGlobalThis();
8308
8323
  target.__VUE__ = true;
8309
8324
  {
8310
- setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
8325
+ setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
8311
8326
  }
8312
8327
  const {
8313
8328
  insert: hostInsert,
@@ -8416,7 +8431,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8416
8431
  internals
8417
8432
  );
8418
8433
  } else {
8419
- warn("Invalid VNode type:", type, `(${typeof type})`);
8434
+ warn$1("Invalid VNode type:", type, `(${typeof type})`);
8420
8435
  }
8421
8436
  }
8422
8437
  if (ref != null && parentComponent) {
@@ -9410,7 +9425,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9410
9425
  const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
9411
9426
  if (nextChild.key != null) {
9412
9427
  if (keyToNewIndexMap.has(nextChild.key)) {
9413
- warn(
9428
+ warn$1(
9414
9429
  `Duplicate keys found during update:`,
9415
9430
  JSON.stringify(nextChild.key),
9416
9431
  `Make sure keys are unique.`
@@ -9848,14 +9863,14 @@ const resolveTarget = (props, select) => {
9848
9863
  const targetSelector = props && props.to;
9849
9864
  if (isString(targetSelector)) {
9850
9865
  if (!select) {
9851
- warn(
9866
+ warn$1(
9852
9867
  `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`
9853
9868
  );
9854
9869
  return null;
9855
9870
  } else {
9856
9871
  const target = select(targetSelector);
9857
9872
  if (!target) {
9858
- warn(
9873
+ warn$1(
9859
9874
  `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.`
9860
9875
  );
9861
9876
  }
@@ -9863,7 +9878,7 @@ const resolveTarget = (props, select) => {
9863
9878
  }
9864
9879
  } else {
9865
9880
  if (!targetSelector && !isTeleportDisabled(props)) {
9866
- warn(`Invalid Teleport target: ${targetSelector}`);
9881
+ warn$1(`Invalid Teleport target: ${targetSelector}`);
9867
9882
  }
9868
9883
  return targetSelector;
9869
9884
  }
@@ -9899,7 +9914,7 @@ const TeleportImpl = {
9899
9914
  namespace = "mathml";
9900
9915
  }
9901
9916
  } else if (!disabled) {
9902
- warn("Invalid Teleport target on mount:", target, `(${typeof target})`);
9917
+ warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
9903
9918
  }
9904
9919
  const mount = (container2, anchor2) => {
9905
9920
  if (shapeFlag & 16) {
@@ -9986,7 +10001,7 @@ const TeleportImpl = {
9986
10001
  0
9987
10002
  );
9988
10003
  } else {
9989
- warn(
10004
+ warn$1(
9990
10005
  "Invalid Teleport target on update:",
9991
10006
  target,
9992
10007
  `(${typeof target})`
@@ -10200,7 +10215,6 @@ function createElementBlock(type, props, children, patchFlag, dynamicProps, shap
10200
10215
  dynamicProps,
10201
10216
  shapeFlag,
10202
10217
  true
10203
- /* isBlock */
10204
10218
  )
10205
10219
  );
10206
10220
  }
@@ -10213,7 +10227,6 @@ function createBlock(type, props, children, patchFlag, dynamicProps) {
10213
10227
  patchFlag,
10214
10228
  dynamicProps,
10215
10229
  true
10216
- /* isBlock: prevent a block from tracking itself */
10217
10230
  )
10218
10231
  );
10219
10232
  }
@@ -10287,7 +10300,7 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
10287
10300
  vnode.shapeFlag |= isString(children) ? 8 : 16;
10288
10301
  }
10289
10302
  if (vnode.key !== vnode.key) {
10290
- warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
10303
+ warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
10291
10304
  }
10292
10305
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
10293
10306
  !isBlockNode && // has current parent block
@@ -10310,7 +10323,7 @@ const createVNode = createVNodeWithArgsTransform ;
10310
10323
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
10311
10324
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
10312
10325
  if (!type) {
10313
- warn(`Invalid vnode type when creating vnode: ${type}.`);
10326
+ warn$1(`Invalid vnode type when creating vnode: ${type}.`);
10314
10327
  }
10315
10328
  type = Comment;
10316
10329
  }
@@ -10356,7 +10369,7 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
10356
10369
  const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;
10357
10370
  if (shapeFlag & 4 && isProxy(type)) {
10358
10371
  type = toRaw(type);
10359
- warn(
10372
+ warn$1(
10360
10373
  `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\`.`,
10361
10374
  `
10362
10375
  Component that was made reactive: `,
@@ -10657,7 +10670,7 @@ const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
10657
10670
  function validateComponentName(name, config) {
10658
10671
  const appIsNativeTag = config.isNativeTag || NO;
10659
10672
  if (isBuiltInTag(name) || appIsNativeTag(name)) {
10660
- warn(
10673
+ warn$1(
10661
10674
  "Do not use built-in or reserved HTML elements as component id: " + name
10662
10675
  );
10663
10676
  }
@@ -10696,7 +10709,7 @@ function setupStatefulComponent(instance, isSSR) {
10696
10709
  }
10697
10710
  }
10698
10711
  if (Component.compilerOptions && isRuntimeOnly()) {
10699
- warn(
10712
+ warn$1(
10700
10713
  `"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.`
10701
10714
  );
10702
10715
  }
@@ -10715,7 +10728,10 @@ function setupStatefulComponent(instance, isSSR) {
10715
10728
  setup,
10716
10729
  instance,
10717
10730
  0,
10718
- [shallowReadonly(instance.props) , setupContext]
10731
+ [
10732
+ shallowReadonly(instance.props) ,
10733
+ setupContext
10734
+ ]
10719
10735
  );
10720
10736
  resetTracking();
10721
10737
  unsetCurrentInstance();
@@ -10731,7 +10747,7 @@ function setupStatefulComponent(instance, isSSR) {
10731
10747
  instance.asyncDep = setupResult;
10732
10748
  if (!instance.suspense) {
10733
10749
  const name = (_a = Component.name) != null ? _a : "Anonymous";
10734
- warn(
10750
+ warn$1(
10735
10751
  `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.`
10736
10752
  );
10737
10753
  }
@@ -10750,7 +10766,7 @@ function handleSetupResult(instance, setupResult, isSSR) {
10750
10766
  }
10751
10767
  } else if (isObject(setupResult)) {
10752
10768
  if (isVNode(setupResult)) {
10753
- warn(
10769
+ warn$1(
10754
10770
  `setup() should not return VNodes directly - return a render function instead.`
10755
10771
  );
10756
10772
  }
@@ -10762,7 +10778,7 @@ function handleSetupResult(instance, setupResult, isSSR) {
10762
10778
  exposeSetupStateOnRenderContext(instance);
10763
10779
  }
10764
10780
  } else if (setupResult !== void 0) {
10765
- warn(
10781
+ warn$1(
10766
10782
  `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
10767
10783
  );
10768
10784
  }
@@ -10835,12 +10851,11 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
10835
10851
  }
10836
10852
  if (!Component.render && instance.render === NOOP && !isSSR) {
10837
10853
  if (!compile$1 && Component.template) {
10838
- warn(
10854
+ warn$1(
10839
10855
  `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.esm-browser.js" instead.` )
10840
- /* should not happen */
10841
10856
  );
10842
10857
  } else {
10843
- warn(`Component is missing template or render function.`);
10858
+ warn$1(`Component is missing template or render function.`);
10844
10859
  }
10845
10860
  }
10846
10861
  }
@@ -10854,11 +10869,11 @@ function getAttrsProxy(instance) {
10854
10869
  return target[key];
10855
10870
  },
10856
10871
  set() {
10857
- warn(`setupContext.attrs is readonly.`);
10872
+ warn$1(`setupContext.attrs is readonly.`);
10858
10873
  return false;
10859
10874
  },
10860
10875
  deleteProperty() {
10861
- warn(`setupContext.attrs is readonly.`);
10876
+ warn$1(`setupContext.attrs is readonly.`);
10862
10877
  return false;
10863
10878
  }
10864
10879
  }
@@ -10876,7 +10891,7 @@ function createSetupContext(instance) {
10876
10891
  const expose = (exposed) => {
10877
10892
  {
10878
10893
  if (instance.exposed) {
10879
- warn(`expose() should be called only once per setup().`);
10894
+ warn$1(`expose() should be called only once per setup().`);
10880
10895
  }
10881
10896
  if (exposed != null) {
10882
10897
  let exposedType = typeof exposed;
@@ -10888,7 +10903,7 @@ function createSetupContext(instance) {
10888
10903
  }
10889
10904
  }
10890
10905
  if (exposedType !== "object") {
10891
- warn(
10906
+ warn$1(
10892
10907
  `expose() should be passed a plain object, received ${exposedType}.`
10893
10908
  );
10894
10909
  }
@@ -10988,7 +11003,7 @@ const useSSRContext = () => {
10988
11003
  {
10989
11004
  const ctx = inject(ssrContextKey);
10990
11005
  if (!ctx) {
10991
- warn(
11006
+ warn$1(
10992
11007
  `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
10993
11008
  );
10994
11009
  }
@@ -11197,8 +11212,11 @@ function isMemoSame(cached, memo) {
11197
11212
  return true;
11198
11213
  }
11199
11214
 
11200
- const version = "3.4.0-rc.1";
11215
+ const version = "3.4.0-rc.3";
11216
+ const warn = warn$1 ;
11201
11217
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11218
+ const devtools = devtools$1 ;
11219
+ const setDevtoolsHook = setDevtoolsHook$1 ;
11202
11220
  const ssrUtils = null;
11203
11221
  const resolveFilter = resolveFilter$1 ;
11204
11222
  const _compatUtils = {
@@ -12910,7 +12928,7 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
12910
12928
  defineProps: defineProps,
12911
12929
  defineSSRCustomElement: defineSSRCustomElement,
12912
12930
  defineSlots: defineSlots,
12913
- get devtools () { return devtools; },
12931
+ devtools: devtools,
12914
12932
  effect: effect,
12915
12933
  effectScope: effectScope,
12916
12934
  getCurrentInstance: getCurrentInstance,
@@ -15657,7 +15675,6 @@ function createRootCodegen(root, context) {
15657
15675
  true,
15658
15676
  void 0,
15659
15677
  false
15660
- /* isComponent */
15661
15678
  );
15662
15679
  } else ;
15663
15680
  }
@@ -16668,7 +16685,6 @@ const transformFor = createStructuralDirectiveTransform(
16668
16685
  true,
16669
16686
  void 0,
16670
16687
  false
16671
- /* isComponent */
16672
16688
  );
16673
16689
  } else {
16674
16690
  childBlock = children[0].codegenNode;
@@ -16725,7 +16741,6 @@ const transformFor = createStructuralDirectiveTransform(
16725
16741
  createForLoopParams(forNode.parseResult),
16726
16742
  childBlock,
16727
16743
  true
16728
- /* force newline */
16729
16744
  )
16730
16745
  );
16731
16746
  }
@@ -16942,13 +16957,15 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
16942
16957
  createForLoopParams(parseResult),
16943
16958
  buildDynamicSlot(slotName, slotFunction),
16944
16959
  true
16945
- /* force newline */
16946
16960
  )
16947
16961
  ])
16948
16962
  );
16949
16963
  } else {
16950
16964
  context.onError(
16951
- createCompilerError(32, vFor.loc)
16965
+ createCompilerError(
16966
+ 32,
16967
+ vFor.loc
16968
+ )
16952
16969
  );
16953
16970
  }
16954
16971
  } else {