@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.
@@ -283,7 +283,7 @@ var Vue = (function () {
283
283
  return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
284
284
  };
285
285
 
286
- function warn$1(msg, ...args) {
286
+ function warn$2(msg, ...args) {
287
287
  console.warn(`[Vue warn] ${msg}`, ...args);
288
288
  }
289
289
 
@@ -323,7 +323,7 @@ var Vue = (function () {
323
323
  activeEffectScope = currentEffectScope;
324
324
  }
325
325
  } else {
326
- warn$1(`cannot run an inactive effect scope.`);
326
+ warn$2(`cannot run an inactive effect scope.`);
327
327
  }
328
328
  }
329
329
  /**
@@ -381,7 +381,7 @@ var Vue = (function () {
381
381
  if (activeEffectScope) {
382
382
  activeEffectScope.cleanups.push(fn);
383
383
  } else {
384
- warn$1(
384
+ warn$2(
385
385
  `onScopeDispose() is called when there is no active effect scope to be associated with.`
386
386
  );
387
387
  }
@@ -829,7 +829,7 @@ var Vue = (function () {
829
829
  }
830
830
  set(target, key) {
831
831
  {
832
- warn$1(
832
+ warn$2(
833
833
  `Set operation on key "${String(key)}" failed: target is readonly.`,
834
834
  target
835
835
  );
@@ -838,7 +838,7 @@ var Vue = (function () {
838
838
  }
839
839
  deleteProperty(target, key) {
840
840
  {
841
- warn$1(
841
+ warn$2(
842
842
  `Delete operation on key "${String(key)}" failed: target is readonly.`,
843
843
  target
844
844
  );
@@ -1496,7 +1496,7 @@ var Vue = (function () {
1496
1496
  function popWarningContext() {
1497
1497
  stack.pop();
1498
1498
  }
1499
- function warn(msg, ...args) {
1499
+ function warn$1(msg, ...args) {
1500
1500
  pauseTracking();
1501
1501
  const instance = stack.length ? stack[stack.length - 1].component : null;
1502
1502
  const appWarnHandler = instance && instance.appContext.config.warnHandler;
@@ -1597,9 +1597,9 @@ var Vue = (function () {
1597
1597
  if (val === void 0) {
1598
1598
  return;
1599
1599
  } else if (typeof val !== "number") {
1600
- warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1600
+ warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
1601
1601
  } else if (isNaN(val)) {
1602
- warn(`${type} is NaN - the duration expression might be incorrect.`);
1602
+ warn$1(`${type} is NaN - the duration expression might be incorrect.`);
1603
1603
  }
1604
1604
  }
1605
1605
 
@@ -1664,7 +1664,7 @@ var Vue = (function () {
1664
1664
  [11]: "app warnHandler",
1665
1665
  [12]: "ref function",
1666
1666
  [13]: "async component loader",
1667
- [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core"
1667
+ [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
1668
1668
  };
1669
1669
  function callWithErrorHandling(fn, instance, type, args) {
1670
1670
  let res;
@@ -1727,7 +1727,7 @@ var Vue = (function () {
1727
1727
  if (contextVNode) {
1728
1728
  pushWarningContext(contextVNode);
1729
1729
  }
1730
- warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1730
+ warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
1731
1731
  if (contextVNode) {
1732
1732
  popWarningContext();
1733
1733
  }
@@ -2025,22 +2025,22 @@ var Vue = (function () {
2025
2025
  };
2026
2026
  }
2027
2027
 
2028
- let devtools;
2028
+ let devtools$1;
2029
2029
  let buffer = [];
2030
2030
  let devtoolsNotInstalled = false;
2031
2031
  function emit$2(event, ...args) {
2032
- if (devtools) {
2033
- devtools.emit(event, ...args);
2032
+ if (devtools$1) {
2033
+ devtools$1.emit(event, ...args);
2034
2034
  } else if (!devtoolsNotInstalled) {
2035
2035
  buffer.push({ event, args });
2036
2036
  }
2037
2037
  }
2038
- function setDevtoolsHook(hook, target) {
2038
+ function setDevtoolsHook$1(hook, target) {
2039
2039
  var _a, _b;
2040
- devtools = hook;
2041
- if (devtools) {
2042
- devtools.enabled = true;
2043
- buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
2040
+ devtools$1 = hook;
2041
+ if (devtools$1) {
2042
+ devtools$1.enabled = true;
2043
+ buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
2044
2044
  buffer = [];
2045
2045
  } else if (
2046
2046
  // handle late devtools injection - only do this if we are in an actual
@@ -2052,10 +2052,10 @@ var Vue = (function () {
2052
2052
  ) {
2053
2053
  const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
2054
2054
  replay.push((newHook) => {
2055
- setDevtoolsHook(newHook, target);
2055
+ setDevtoolsHook$1(newHook, target);
2056
2056
  });
2057
2057
  setTimeout(() => {
2058
- if (!devtools) {
2058
+ if (!devtools$1) {
2059
2059
  target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
2060
2060
  devtoolsNotInstalled = true;
2061
2061
  buffer = [];
@@ -2085,8 +2085,8 @@ var Vue = (function () {
2085
2085
  "component:removed" /* COMPONENT_REMOVED */
2086
2086
  );
2087
2087
  const devtoolsComponentRemoved = (component) => {
2088
- if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2089
- !devtools.cleanupBuffer(component)) {
2088
+ if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered
2089
+ !devtools$1.cleanupBuffer(component)) {
2090
2090
  _devtoolsComponentRemoved(component);
2091
2091
  }
2092
2092
  };
@@ -2385,12 +2385,12 @@ var Vue = (function () {
2385
2385
  }
2386
2386
  instanceWarned[componentDupKey] = true;
2387
2387
  if (dupKey in warnCount) {
2388
- warn(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);
2388
+ warn$1(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);
2389
2389
  return;
2390
2390
  }
2391
2391
  warnCount[dupKey] = 0;
2392
2392
  const { message, link } = deprecationData[key];
2393
- warn(
2393
+ warn$1(
2394
2394
  `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? `
2395
2395
  Details: ${link}` : ``}`
2396
2396
  );
@@ -2420,19 +2420,19 @@ var Vue = (function () {
2420
2420
  if (key !== "MODE" && !(key in deprecationData) && !(key in warnedInvalidKeys)) {
2421
2421
  if (key.startsWith("COMPILER_")) {
2422
2422
  if (isRuntimeOnly()) {
2423
- warn(
2423
+ warn$1(
2424
2424
  `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.
2425
2425
  Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2426
2426
  );
2427
2427
  }
2428
2428
  } else {
2429
- warn(`Invalid deprecation config "${key}".`);
2429
+ warn$1(`Invalid deprecation config "${key}".`);
2430
2430
  }
2431
2431
  warnedInvalidKeys[key] = true;
2432
2432
  }
2433
2433
  }
2434
2434
  if (instance && config["OPTIONS_DATA_MERGE"] != null) {
2435
- warn(
2435
+ warn$1(
2436
2436
  `Deprecation config "${"OPTIONS_DATA_MERGE"}" can only be configured globally.`
2437
2437
  );
2438
2438
  }
@@ -2622,7 +2622,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2622
2622
  if (emitsOptions) {
2623
2623
  if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
2624
2624
  if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
2625
- warn(
2625
+ warn$1(
2626
2626
  `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
2627
2627
  );
2628
2628
  }
@@ -2631,7 +2631,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2631
2631
  if (isFunction(validator)) {
2632
2632
  const isValid = validator(...rawArgs);
2633
2633
  if (!isValid) {
2634
- warn(
2634
+ warn$1(
2635
2635
  `Invalid event arguments: event validation failed for event "${event}".`
2636
2636
  );
2637
2637
  }
@@ -2658,11 +2658,13 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2658
2658
  {
2659
2659
  const lowerCaseEvent = event.toLowerCase();
2660
2660
  if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
2661
- warn(
2661
+ warn$1(
2662
2662
  `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
2663
2663
  instance,
2664
2664
  instance.type
2665
- )} 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}".`
2665
+ )} 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(
2666
+ event
2667
+ )}" instead of "${event}".`
2666
2668
  );
2667
2669
  }
2668
2670
  }
@@ -2839,7 +2841,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2839
2841
  const proxyToUse = withProxy || proxy;
2840
2842
  const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, {
2841
2843
  get(target, key, receiver) {
2842
- warn(
2844
+ warn$1(
2843
2845
  `Property '${String(
2844
2846
  key
2845
2847
  )}' was accessed via 'this'. Avoid using 'this' in templates.`
@@ -2920,12 +2922,12 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2920
2922
  }
2921
2923
  }
2922
2924
  if (extraAttrs.length) {
2923
- warn(
2925
+ warn$1(
2924
2926
  `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`
2925
2927
  );
2926
2928
  }
2927
2929
  if (eventAttrs.length) {
2928
- warn(
2930
+ warn$1(
2929
2931
  `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.`
2930
2932
  );
2931
2933
  }
@@ -2950,7 +2952,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2950
2952
  }
2951
2953
  if (vnode.dirs) {
2952
2954
  if (!isElementRoot(root)) {
2953
- warn(
2955
+ warn$1(
2954
2956
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
2955
2957
  );
2956
2958
  }
@@ -2959,7 +2961,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2959
2961
  }
2960
2962
  if (vnode.transition) {
2961
2963
  if (!isElementRoot(root)) {
2962
- warn(
2964
+ warn$1(
2963
2965
  `Component inside <Transition> renders non-element root node that cannot be animated.`
2964
2966
  );
2965
2967
  }
@@ -3138,7 +3140,6 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3138
3140
  const selfName = getComponentName(
3139
3141
  Component,
3140
3142
  false
3141
- /* do not include inferred name to avoid breaking existing code */
3142
3143
  );
3143
3144
  if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
3144
3145
  return Component;
@@ -3156,11 +3157,11 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3156
3157
  if (warnMissing && !res) {
3157
3158
  const extra = type === COMPONENTS ? `
3158
3159
  If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
3159
- warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
3160
+ warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
3160
3161
  }
3161
3162
  return res;
3162
3163
  } else {
3163
- warn(
3164
+ warn$1(
3164
3165
  `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`
3165
3166
  );
3166
3167
  }
@@ -3668,6 +3669,7 @@ If this is a native custom element, make sure to exclude it from component resol
3668
3669
  parentSuspense,
3669
3670
  parentComponent,
3670
3671
  node.parentNode,
3672
+ // eslint-disable-next-line no-restricted-globals
3671
3673
  document.createElement("div"),
3672
3674
  null,
3673
3675
  namespace,
@@ -3675,7 +3677,6 @@ If this is a native custom element, make sure to exclude it from component resol
3675
3677
  optimized,
3676
3678
  rendererInternals,
3677
3679
  true
3678
- /* hydrating */
3679
3680
  );
3680
3681
  const result = hydrateNode(
3681
3682
  node,
@@ -3716,7 +3717,7 @@ If this is a native custom element, make sure to exclude it from component resol
3716
3717
  if (isArray(s)) {
3717
3718
  const singleChild = filterSingleRoot(s);
3718
3719
  if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {
3719
- warn(`<Suspense> slots expect a single root node.`);
3720
+ warn$1(`<Suspense> slots expect a single root node.`);
3720
3721
  }
3721
3722
  s = singleChild;
3722
3723
  }
@@ -3809,13 +3810,20 @@ If this is a native custom element, make sure to exclude it from component resol
3809
3810
  const INITIAL_WATCHER_VALUE = {};
3810
3811
  function watch(source, cb, options) {
3811
3812
  if (!isFunction(cb)) {
3812
- warn(
3813
+ warn$1(
3813
3814
  `\`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.`
3814
3815
  );
3815
3816
  }
3816
3817
  return doWatch(source, cb, options);
3817
3818
  }
3818
- function doWatch(source, cb, { immediate, deep, flush, once, onTrack, onTrigger } = EMPTY_OBJ) {
3819
+ function doWatch(source, cb, {
3820
+ immediate,
3821
+ deep,
3822
+ flush,
3823
+ once,
3824
+ onTrack,
3825
+ onTrigger
3826
+ } = EMPTY_OBJ) {
3819
3827
  var _a;
3820
3828
  if (cb && once) {
3821
3829
  const _cb = cb;
@@ -3826,23 +3834,23 @@ If this is a native custom element, make sure to exclude it from component resol
3826
3834
  }
3827
3835
  if (!cb) {
3828
3836
  if (immediate !== void 0) {
3829
- warn(
3837
+ warn$1(
3830
3838
  `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
3831
3839
  );
3832
3840
  }
3833
3841
  if (deep !== void 0) {
3834
- warn(
3842
+ warn$1(
3835
3843
  `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
3836
3844
  );
3837
3845
  }
3838
3846
  if (once !== void 0) {
3839
- warn(
3847
+ warn$1(
3840
3848
  `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
3841
3849
  );
3842
3850
  }
3843
3851
  }
3844
3852
  const warnInvalidSource = (s) => {
3845
- warn(
3853
+ warn$1(
3846
3854
  `Invalid watch source: `,
3847
3855
  s,
3848
3856
  `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
@@ -4037,13 +4045,13 @@ If this is a native custom element, make sure to exclude it from component resol
4037
4045
 
4038
4046
  function validateDirectiveName(name) {
4039
4047
  if (isBuiltInDirective(name)) {
4040
- warn("Do not use built-in directive ids as custom directive id: " + name);
4048
+ warn$1("Do not use built-in directive ids as custom directive id: " + name);
4041
4049
  }
4042
4050
  }
4043
4051
  function withDirectives(vnode, directives) {
4044
4052
  const internalInstance = currentRenderingInstance;
4045
4053
  if (internalInstance === null) {
4046
- warn(`withDirectives can only be used inside render functions.`);
4054
+ warn$1(`withDirectives can only be used inside render functions.`);
4047
4055
  return vnode;
4048
4056
  }
4049
4057
  const instance = getExposeProxy(internalInstance) || internalInstance.proxy;
@@ -4153,7 +4161,7 @@ If this is a native custom element, make sure to exclude it from component resol
4153
4161
  for (const c of children) {
4154
4162
  if (c.type !== Comment) {
4155
4163
  if (hasFound) {
4156
- warn(
4164
+ warn$1(
4157
4165
  "<transition> can only be used on a single element or component. Use <transition-group> for lists."
4158
4166
  );
4159
4167
  break;
@@ -4166,7 +4174,7 @@ If this is a native custom element, make sure to exclude it from component resol
4166
4174
  const rawProps = toRaw(props);
4167
4175
  const { mode } = rawProps;
4168
4176
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
4169
- warn(`invalid <transition> mode: ${mode}`);
4177
+ warn$1(`invalid <transition> mode: ${mode}`);
4170
4178
  }
4171
4179
  if (state.isLeaving) {
4172
4180
  return emptyPlaceholder(child);
@@ -4484,7 +4492,7 @@ If this is a native custom element, make sure to exclude it from component resol
4484
4492
  return pendingRequest;
4485
4493
  }
4486
4494
  if (!comp) {
4487
- warn(
4495
+ warn$1(
4488
4496
  `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`
4489
4497
  );
4490
4498
  }
@@ -4516,7 +4524,6 @@ If this is a native custom element, make sure to exclude it from component resol
4516
4524
  instance,
4517
4525
  13,
4518
4526
  !errorComponent
4519
- /* do not throw in dev if user provided error component */
4520
4527
  );
4521
4528
  };
4522
4529
  if (suspensible && instance.suspense || false) {
@@ -4718,7 +4725,7 @@ If this is a native custom element, make sure to exclude it from component resol
4718
4725
  const rawVNode = children[0];
4719
4726
  if (children.length > 1) {
4720
4727
  {
4721
- warn(`KeepAlive should contain exactly one component child.`);
4728
+ warn$1(`KeepAlive should contain exactly one component child.`);
4722
4729
  }
4723
4730
  current = null;
4724
4731
  return children;
@@ -4850,7 +4857,7 @@ If this is a native custom element, make sure to exclude it from component resol
4850
4857
  return wrappedHook;
4851
4858
  } else {
4852
4859
  const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
4853
- warn(
4860
+ warn$1(
4854
4861
  `${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.` )
4855
4862
  );
4856
4863
  }
@@ -4912,8 +4919,8 @@ If this is a native custom element, make sure to exclude it from component resol
4912
4919
  }
4913
4920
 
4914
4921
  function convertLegacyRenderFn(instance) {
4915
- const Component2 = instance.type;
4916
- const render = Component2.render;
4922
+ const Component = instance.type;
4923
+ const render = Component.render;
4917
4924
  if (!render || render._rc || render._compatChecked || render._compatWrapped) {
4918
4925
  return;
4919
4926
  }
@@ -4922,7 +4929,7 @@ If this is a native custom element, make sure to exclude it from component resol
4922
4929
  return;
4923
4930
  }
4924
4931
  if (checkCompatEnabled("RENDER_FUNCTION", instance)) {
4925
- const wrapped = Component2.render = function compatRender() {
4932
+ const wrapped = Component.render = function compatRender() {
4926
4933
  return render.call(this, compatH);
4927
4934
  };
4928
4935
  wrapped._compatWrapped = true;
@@ -5081,12 +5088,10 @@ If this is a native custom element, make sure to exclude it from component resol
5081
5088
  "RENDER_FUNCTION",
5082
5089
  currentRenderingInstance,
5083
5090
  true
5084
- /* enable for built-ins */
5085
5091
  ) && isCompatEnabled(
5086
5092
  "PRIVATE_APIS",
5087
5093
  currentRenderingInstance,
5088
5094
  true
5089
- /* enable for built-ins */
5090
5095
  )) {
5091
5096
  const context = currentRenderingInstance;
5092
5097
  const getInstance = () => vnode.component && vnode.component.proxy;
@@ -5172,7 +5177,7 @@ If this is a native custom element, make sure to exclude it from component resol
5172
5177
  }
5173
5178
  } else if (typeof source === "number") {
5174
5179
  if (!Number.isInteger(source)) {
5175
- warn(`The v-for range expect an integer value but got ${source}.`);
5180
+ warn$1(`The v-for range expect an integer value but got ${source}.`);
5176
5181
  }
5177
5182
  ret = new Array(source);
5178
5183
  for (let i = 0; i < source; i++) {
@@ -5228,7 +5233,7 @@ If this is a native custom element, make sure to exclude it from component resol
5228
5233
  }
5229
5234
  let slot = slots[name];
5230
5235
  if (slot && slot.length > 1) {
5231
- warn(
5236
+ warn$1(
5232
5237
  `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.`
5233
5238
  );
5234
5239
  slot = () => [];
@@ -5271,7 +5276,7 @@ If this is a native custom element, make sure to exclude it from component resol
5271
5276
  function toHandlers(obj, preserveCaseIfNecessary) {
5272
5277
  const ret = {};
5273
5278
  if (!isObject(obj)) {
5274
- warn(`v-on with no argument expects an object value.`);
5279
+ warn$1(`v-on with no argument expects an object value.`);
5275
5280
  return ret;
5276
5281
  }
5277
5282
  for (const key in obj) {
@@ -5416,7 +5421,6 @@ If this is a native custom element, make sure to exclude it from component resol
5416
5421
  assertCompatEnabled(
5417
5422
  "GLOBAL_MOUNT",
5418
5423
  null
5419
- /* this warning is global */
5420
5424
  );
5421
5425
  return i.ctx._compat_mount || NOOP;
5422
5426
  },
@@ -5600,13 +5604,13 @@ If this is a native custom element, make sure to exclude it from component resol
5600
5604
  // to infinite warning loop
5601
5605
  key.indexOf("__v") !== 0)) {
5602
5606
  if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {
5603
- warn(
5607
+ warn$1(
5604
5608
  `Property ${JSON.stringify(
5605
5609
  key
5606
5610
  )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
5607
5611
  );
5608
5612
  } else if (instance === currentRenderingInstance) {
5609
- warn(
5613
+ warn$1(
5610
5614
  `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
5611
5615
  );
5612
5616
  }
@@ -5618,17 +5622,17 @@ If this is a native custom element, make sure to exclude it from component resol
5618
5622
  setupState[key] = value;
5619
5623
  return true;
5620
5624
  } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) {
5621
- warn(`Cannot mutate <script setup> binding "${key}" from Options API.`);
5625
+ warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
5622
5626
  return false;
5623
5627
  } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
5624
5628
  data[key] = value;
5625
5629
  return true;
5626
5630
  } else if (hasOwn(instance.props, key)) {
5627
- warn(`Attempting to mutate prop "${key}". Props are readonly.`);
5631
+ warn$1(`Attempting to mutate prop "${key}". Props are readonly.`);
5628
5632
  return false;
5629
5633
  }
5630
5634
  if (key[0] === "$" && key.slice(1) in instance) {
5631
- warn(
5635
+ warn$1(
5632
5636
  `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.`
5633
5637
  );
5634
5638
  return false;
@@ -5662,7 +5666,7 @@ If this is a native custom element, make sure to exclude it from component resol
5662
5666
  };
5663
5667
  {
5664
5668
  PublicInstanceProxyHandlers.ownKeys = (target) => {
5665
- warn(
5669
+ warn$1(
5666
5670
  `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
5667
5671
  );
5668
5672
  return Reflect.ownKeys(target);
@@ -5681,7 +5685,7 @@ If this is a native custom element, make sure to exclude it from component resol
5681
5685
  has(_, key) {
5682
5686
  const has = key[0] !== "_" && !isGloballyAllowed(key);
5683
5687
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
5684
- warn(
5688
+ warn$1(
5685
5689
  `Property ${JSON.stringify(
5686
5690
  key
5687
5691
  )} should not start with _ which is a reserved prefix for Vue internals.`
@@ -5731,7 +5735,7 @@ If this is a native custom element, make sure to exclude it from component resol
5731
5735
  Object.keys(toRaw(setupState)).forEach((key) => {
5732
5736
  if (!setupState.__isScriptSetup) {
5733
5737
  if (isReservedPrefix(key[0])) {
5734
- warn(
5738
+ warn$1(
5735
5739
  `setup() return property ${JSON.stringify(
5736
5740
  key
5737
5741
  )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
@@ -5762,7 +5766,7 @@ If this is a native custom element, make sure to exclude it from component resol
5762
5766
  return to;
5763
5767
  }
5764
5768
 
5765
- const warnRuntimeUsage = (method) => warn(
5769
+ const warnRuntimeUsage = (method) => warn$1(
5766
5770
  `${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.`
5767
5771
  );
5768
5772
  function defineProps() {
@@ -5810,17 +5814,17 @@ If this is a native custom element, make sure to exclude it from component resol
5810
5814
  function useAttrs() {
5811
5815
  return getContext().attrs;
5812
5816
  }
5813
- function useModel(props, name) {
5817
+ function useModel(props, name, options = EMPTY_OBJ) {
5814
5818
  const i = getCurrentInstance();
5815
5819
  if (!i) {
5816
- warn(`useModel() called without active instance.`);
5820
+ warn$1(`useModel() called without active instance.`);
5817
5821
  return ref();
5818
5822
  }
5819
5823
  if (!i.propsOptions[0][name]) {
5820
- warn(`useModel() called with prop "${name}" which is not declared.`);
5824
+ warn$1(`useModel() called with prop "${name}" which is not declared.`);
5821
5825
  return ref();
5822
5826
  }
5823
- return customRef((track, trigger) => {
5827
+ const res = customRef((track, trigger) => {
5824
5828
  let localValue;
5825
5829
  watchSyncEffect(() => {
5826
5830
  const propValue = props[name];
@@ -5832,7 +5836,7 @@ If this is a native custom element, make sure to exclude it from component resol
5832
5836
  return {
5833
5837
  get() {
5834
5838
  track();
5835
- return localValue;
5839
+ return options.get ? options.get(localValue) : localValue;
5836
5840
  },
5837
5841
  set(value) {
5838
5842
  const rawProps = i.vnode.props;
@@ -5840,15 +5844,29 @@ If this is a native custom element, make sure to exclude it from component resol
5840
5844
  localValue = value;
5841
5845
  trigger();
5842
5846
  }
5843
- i.emit(`update:${name}`, value);
5847
+ i.emit(`update:${name}`, options.set ? options.set(value) : value);
5844
5848
  }
5845
5849
  };
5846
5850
  });
5851
+ const modifierKey = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
5852
+ res[Symbol.iterator] = () => {
5853
+ let i2 = 0;
5854
+ return {
5855
+ next() {
5856
+ if (i2 < 2) {
5857
+ return { value: i2++ ? props[modifierKey] : res, done: false };
5858
+ } else {
5859
+ return { done: true };
5860
+ }
5861
+ }
5862
+ };
5863
+ };
5864
+ return res;
5847
5865
  }
5848
5866
  function getContext() {
5849
5867
  const i = getCurrentInstance();
5850
5868
  if (!i) {
5851
- warn(`useContext() called without active instance.`);
5869
+ warn$1(`useContext() called without active instance.`);
5852
5870
  }
5853
5871
  return i.setupContext || (i.setupContext = createSetupContext(i));
5854
5872
  }
@@ -5873,7 +5891,7 @@ If this is a native custom element, make sure to exclude it from component resol
5873
5891
  } else if (opt === null) {
5874
5892
  opt = props[key] = { default: defaults[key] };
5875
5893
  } else {
5876
- warn(`props default key "${key}" has no corresponding declaration.`);
5894
+ warn$1(`props default key "${key}" has no corresponding declaration.`);
5877
5895
  }
5878
5896
  if (opt && defaults[`__skip_${key}`]) {
5879
5897
  opt.skipFactory = true;
@@ -5903,7 +5921,7 @@ If this is a native custom element, make sure to exclude it from component resol
5903
5921
  function withAsyncContext(getAwaitable) {
5904
5922
  const ctx = getCurrentInstance();
5905
5923
  if (!ctx) {
5906
- warn(
5924
+ warn$1(
5907
5925
  `withAsyncContext called without active current instance. This is likely a bug.`
5908
5926
  );
5909
5927
  }
@@ -5922,7 +5940,7 @@ If this is a native custom element, make sure to exclude it from component resol
5922
5940
  const cache = /* @__PURE__ */ Object.create(null);
5923
5941
  return (type, key) => {
5924
5942
  if (cache[key]) {
5925
- warn(`${type} property "${key}" is already defined in ${cache[key]}.`);
5943
+ warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
5926
5944
  } else {
5927
5945
  cache[key] = type;
5928
5946
  }
@@ -5998,7 +6016,7 @@ If this is a native custom element, make sure to exclude it from component resol
5998
6016
  checkDuplicateProperties("Methods" /* METHODS */, key);
5999
6017
  }
6000
6018
  } else {
6001
- warn(
6019
+ warn$1(
6002
6020
  `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
6003
6021
  );
6004
6022
  }
@@ -6006,18 +6024,18 @@ If this is a native custom element, make sure to exclude it from component resol
6006
6024
  }
6007
6025
  if (dataOptions) {
6008
6026
  if (!isFunction(dataOptions)) {
6009
- warn(
6027
+ warn$1(
6010
6028
  `The data option must be a function. Plain object usage is no longer supported.`
6011
6029
  );
6012
6030
  }
6013
6031
  const data = dataOptions.call(publicThis, publicThis);
6014
6032
  if (isPromise(data)) {
6015
- warn(
6033
+ warn$1(
6016
6034
  `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
6017
6035
  );
6018
6036
  }
6019
6037
  if (!isObject(data)) {
6020
- warn(`data() should return an object.`);
6038
+ warn$1(`data() should return an object.`);
6021
6039
  } else {
6022
6040
  instance.data = reactive(data);
6023
6041
  {
@@ -6041,10 +6059,10 @@ If this is a native custom element, make sure to exclude it from component resol
6041
6059
  const opt = computedOptions[key];
6042
6060
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
6043
6061
  if (get === NOOP) {
6044
- warn(`Computed property "${key}" has no getter.`);
6062
+ warn$1(`Computed property "${key}" has no getter.`);
6045
6063
  }
6046
6064
  const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
6047
- warn(
6065
+ warn$1(
6048
6066
  `Write operation failed: computed property "${key}" is readonly.`
6049
6067
  );
6050
6068
  } ;
@@ -6144,7 +6162,6 @@ If this is a native custom element, make sure to exclude it from component resol
6144
6162
  opt.from || key,
6145
6163
  opt.default,
6146
6164
  true
6147
- /* treat default function as factory */
6148
6165
  );
6149
6166
  } else {
6150
6167
  injected = inject(opt.from || key);
@@ -6181,7 +6198,7 @@ If this is a native custom element, make sure to exclude it from component resol
6181
6198
  if (isFunction(handler)) {
6182
6199
  watch(getter, handler);
6183
6200
  } else {
6184
- warn(`Invalid watch handler specified by key "${raw}"`, handler);
6201
+ warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
6185
6202
  }
6186
6203
  } else if (isFunction(raw)) {
6187
6204
  watch(getter, raw.bind(publicThis));
@@ -6193,11 +6210,11 @@ If this is a native custom element, make sure to exclude it from component resol
6193
6210
  if (isFunction(handler)) {
6194
6211
  watch(getter, handler, raw);
6195
6212
  } else {
6196
- warn(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6213
+ warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6197
6214
  }
6198
6215
  }
6199
6216
  } else {
6200
- warn(`Invalid watch option: "${key}"`, raw);
6217
+ warn$1(`Invalid watch option: "${key}"`, raw);
6201
6218
  }
6202
6219
  }
6203
6220
  function resolveMergedOptions(instance) {
@@ -6249,7 +6266,7 @@ If this is a native custom element, make sure to exclude it from component resol
6249
6266
  }
6250
6267
  for (const key in from) {
6251
6268
  if (asMixin && key === "expose") {
6252
- warn(
6269
+ warn$1(
6253
6270
  `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`
6254
6271
  );
6255
6272
  } else {
@@ -6417,7 +6434,7 @@ If this is a native custom element, make sure to exclude it from component resol
6417
6434
  return vm;
6418
6435
  }
6419
6436
  }
6420
- Vue.version = `2.6.14-compat:${"3.4.0-rc.1"}`;
6437
+ Vue.version = `2.6.14-compat:${"3.4.0-rc.3"}`;
6421
6438
  Vue.config = singletonApp.config;
6422
6439
  Vue.use = (p, ...options) => {
6423
6440
  if (p && isFunction(p.install)) {
@@ -6518,7 +6535,7 @@ If this is a native custom element, make sure to exclude it from component resol
6518
6535
  }
6519
6536
  };
6520
6537
  const util = {
6521
- warn: warn ,
6538
+ warn: warn$1 ,
6522
6539
  extend,
6523
6540
  mergeOptions: (parent, child, vm) => mergeOptions(
6524
6541
  parent,
@@ -6555,7 +6572,7 @@ If this is a native custom element, make sure to exclude it from component resol
6555
6572
  return context.filters[name];
6556
6573
  }
6557
6574
  if (context.filters[name]) {
6558
- warn(`Filter "${name}" has already been registered.`);
6575
+ warn$1(`Filter "${name}" has already been registered.`);
6559
6576
  }
6560
6577
  context.filters[name] = filter;
6561
6578
  return app;
@@ -6646,14 +6663,14 @@ If this is a native custom element, make sure to exclude it from component resol
6646
6663
  vnode.isCompatRoot = true;
6647
6664
  instance.ctx._compat_mount = (selectorOrEl) => {
6648
6665
  if (isMounted) {
6649
- warn(`Root instance is already mounted.`);
6666
+ warn$1(`Root instance is already mounted.`);
6650
6667
  return;
6651
6668
  }
6652
6669
  let container;
6653
6670
  if (typeof selectorOrEl === "string") {
6654
6671
  const result = document.querySelector(selectorOrEl);
6655
6672
  if (!result) {
6656
- warn(
6673
+ warn$1(
6657
6674
  `Failed to mount root instance: selector "${selectorOrEl}" returned null.`
6658
6675
  );
6659
6676
  return;
@@ -6818,7 +6835,7 @@ If this is a native custom element, make sure to exclude it from component resol
6818
6835
  rootComponent = extend({}, rootComponent);
6819
6836
  }
6820
6837
  if (rootProps != null && !isObject(rootProps)) {
6821
- warn(`root props passed to app.mount() must be an object.`);
6838
+ warn$1(`root props passed to app.mount() must be an object.`);
6822
6839
  rootProps = null;
6823
6840
  }
6824
6841
  const context = createAppContext();
@@ -6837,14 +6854,14 @@ If this is a native custom element, make sure to exclude it from component resol
6837
6854
  },
6838
6855
  set config(v) {
6839
6856
  {
6840
- warn(
6857
+ warn$1(
6841
6858
  `app.config cannot be replaced. Modify individual options instead.`
6842
6859
  );
6843
6860
  }
6844
6861
  },
6845
6862
  use(plugin, ...options) {
6846
6863
  if (installedPlugins.has(plugin)) {
6847
- warn(`Plugin has already been applied to target app.`);
6864
+ warn$1(`Plugin has already been applied to target app.`);
6848
6865
  } else if (plugin && isFunction(plugin.install)) {
6849
6866
  installedPlugins.add(plugin);
6850
6867
  plugin.install(app, ...options);
@@ -6852,7 +6869,7 @@ If this is a native custom element, make sure to exclude it from component resol
6852
6869
  installedPlugins.add(plugin);
6853
6870
  plugin(app, ...options);
6854
6871
  } else {
6855
- warn(
6872
+ warn$1(
6856
6873
  `A plugin must either be a function or an object with an "install" function.`
6857
6874
  );
6858
6875
  }
@@ -6863,7 +6880,7 @@ If this is a native custom element, make sure to exclude it from component resol
6863
6880
  if (!context.mixins.includes(mixin)) {
6864
6881
  context.mixins.push(mixin);
6865
6882
  } else {
6866
- warn(
6883
+ warn$1(
6867
6884
  "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
6868
6885
  );
6869
6886
  }
@@ -6878,7 +6895,7 @@ If this is a native custom element, make sure to exclude it from component resol
6878
6895
  return context.components[name];
6879
6896
  }
6880
6897
  if (context.components[name]) {
6881
- warn(`Component "${name}" has already been registered in target app.`);
6898
+ warn$1(`Component "${name}" has already been registered in target app.`);
6882
6899
  }
6883
6900
  context.components[name] = component;
6884
6901
  return app;
@@ -6891,7 +6908,7 @@ If this is a native custom element, make sure to exclude it from component resol
6891
6908
  return context.directives[name];
6892
6909
  }
6893
6910
  if (context.directives[name]) {
6894
- warn(`Directive "${name}" has already been registered in target app.`);
6911
+ warn$1(`Directive "${name}" has already been registered in target app.`);
6895
6912
  }
6896
6913
  context.directives[name] = directive;
6897
6914
  return app;
@@ -6899,7 +6916,7 @@ If this is a native custom element, make sure to exclude it from component resol
6899
6916
  mount(rootContainer, isHydrate, namespace) {
6900
6917
  if (!isMounted) {
6901
6918
  if (rootContainer.__vue_app__) {
6902
- warn(
6919
+ warn$1(
6903
6920
  `There is already an app instance mounted on the host container.
6904
6921
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6905
6922
  );
@@ -6934,7 +6951,7 @@ If this is a native custom element, make sure to exclude it from component resol
6934
6951
  }
6935
6952
  return getExposeProxy(vnode.component) || vnode.component.proxy;
6936
6953
  } else {
6937
- warn(
6954
+ warn$1(
6938
6955
  `App has already been mounted.
6939
6956
  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)\``
6940
6957
  );
@@ -6949,12 +6966,12 @@ If you want to remount the same app, move your app creation logic into a factory
6949
6966
  }
6950
6967
  delete app._container.__vue_app__;
6951
6968
  } else {
6952
- warn(`Cannot unmount an app that is not mounted.`);
6969
+ warn$1(`Cannot unmount an app that is not mounted.`);
6953
6970
  }
6954
6971
  },
6955
6972
  provide(key, value) {
6956
6973
  if (key in context.provides) {
6957
- warn(
6974
+ warn$1(
6958
6975
  `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
6959
6976
  );
6960
6977
  }
@@ -6981,7 +6998,7 @@ If you want to remount the same app, move your app creation logic into a factory
6981
6998
  function provide(key, value) {
6982
6999
  if (!currentInstance) {
6983
7000
  {
6984
- warn(`provide() can only be used inside setup().`);
7001
+ warn$1(`provide() can only be used inside setup().`);
6985
7002
  }
6986
7003
  } else {
6987
7004
  let provides = currentInstance.provides;
@@ -7001,10 +7018,10 @@ If you want to remount the same app, move your app creation logic into a factory
7001
7018
  } else if (arguments.length > 1) {
7002
7019
  return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
7003
7020
  } else {
7004
- warn(`injection "${String(key)}" not found.`);
7021
+ warn$1(`injection "${String(key)}" not found.`);
7005
7022
  }
7006
7023
  } else {
7007
- warn(`inject() can only be used inside setup() or functional components.`);
7024
+ warn$1(`inject() can only be used inside setup() or functional components.`);
7008
7025
  }
7009
7026
  }
7010
7027
  function hasInjectionContext() {
@@ -7124,7 +7141,6 @@ If you want to remount the same app, move your app creation logic into a factory
7124
7141
  value,
7125
7142
  instance,
7126
7143
  false
7127
- /* isAbsent */
7128
7144
  );
7129
7145
  }
7130
7146
  } else {
@@ -7163,7 +7179,6 @@ If you want to remount the same app, move your app creation logic into a factory
7163
7179
  void 0,
7164
7180
  instance,
7165
7181
  true
7166
- /* isAbsent */
7167
7182
  );
7168
7183
  }
7169
7184
  } else {
@@ -7320,7 +7335,7 @@ If you want to remount the same app, move your app creation logic into a factory
7320
7335
  if (isArray(raw)) {
7321
7336
  for (let i = 0; i < raw.length; i++) {
7322
7337
  if (!isString(raw[i])) {
7323
- warn(`props must be strings when using array syntax.`, raw[i]);
7338
+ warn$1(`props must be strings when using array syntax.`, raw[i]);
7324
7339
  }
7325
7340
  const normalizedKey = camelize(raw[i]);
7326
7341
  if (validatePropName(normalizedKey)) {
@@ -7329,7 +7344,7 @@ If you want to remount the same app, move your app creation logic into a factory
7329
7344
  }
7330
7345
  } else if (raw) {
7331
7346
  if (!isObject(raw)) {
7332
- warn(`invalid props options`, raw);
7347
+ warn$1(`invalid props options`, raw);
7333
7348
  }
7334
7349
  for (const key in raw) {
7335
7350
  const normalizedKey = camelize(key);
@@ -7358,7 +7373,7 @@ If you want to remount the same app, move your app creation logic into a factory
7358
7373
  if (key[0] !== "$") {
7359
7374
  return true;
7360
7375
  } else {
7361
- warn(`Invalid prop name: "${key}" is a reserved property.`);
7376
+ warn$1(`Invalid prop name: "${key}" is a reserved property.`);
7362
7377
  }
7363
7378
  return false;
7364
7379
  }
@@ -7396,7 +7411,7 @@ If you want to remount the same app, move your app creation logic into a factory
7396
7411
  function validateProp(name, value, prop, props, isAbsent) {
7397
7412
  const { type, required, validator, skipCheck } = prop;
7398
7413
  if (required && isAbsent) {
7399
- warn('Missing required prop: "' + name + '"');
7414
+ warn$1('Missing required prop: "' + name + '"');
7400
7415
  return;
7401
7416
  }
7402
7417
  if (value == null && !required) {
@@ -7412,12 +7427,12 @@ If you want to remount the same app, move your app creation logic into a factory
7412
7427
  isValid = valid;
7413
7428
  }
7414
7429
  if (!isValid) {
7415
- warn(getInvalidTypeMessage(name, value, expectedTypes));
7430
+ warn$1(getInvalidTypeMessage(name, value, expectedTypes));
7416
7431
  return;
7417
7432
  }
7418
7433
  }
7419
7434
  if (validator && !validator(value, props)) {
7420
- warn('Invalid prop: custom validator check failed for prop "' + name + '".');
7435
+ warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
7421
7436
  }
7422
7437
  }
7423
7438
  const isSimpleType = /* @__PURE__ */ makeMap(
@@ -7489,7 +7504,7 @@ If you want to remount the same app, move your app creation logic into a factory
7489
7504
  }
7490
7505
  const normalized = withCtx((...args) => {
7491
7506
  if (currentInstance) {
7492
- warn(
7507
+ warn$1(
7493
7508
  `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.`
7494
7509
  );
7495
7510
  }
@@ -7508,7 +7523,7 @@ If you want to remount the same app, move your app creation logic into a factory
7508
7523
  slots[key] = normalizeSlot(key, value, ctx);
7509
7524
  } else if (value != null) {
7510
7525
  if (!isCompatEnabled("RENDER_FUNCTION", instance)) {
7511
- warn(
7526
+ warn$1(
7512
7527
  `Non-function value encountered for slot "${key}". Prefer function slots for better performance.`
7513
7528
  );
7514
7529
  }
@@ -7519,7 +7534,7 @@ If you want to remount the same app, move your app creation logic into a factory
7519
7534
  };
7520
7535
  const normalizeVNodeSlots = (instance, children) => {
7521
7536
  if (!isKeepAlive(instance.vnode) && !isCompatEnabled("RENDER_FUNCTION", instance)) {
7522
- warn(
7537
+ warn$1(
7523
7538
  `Non-function value encountered for default slot. Prefer function slots for better performance.`
7524
7539
  );
7525
7540
  }
@@ -7603,7 +7618,7 @@ If you want to remount the same app, move your app creation logic into a factory
7603
7618
  const value = isUnmount ? null : refValue;
7604
7619
  const { i: owner, r: ref } = rawRef;
7605
7620
  if (!owner) {
7606
- warn(
7621
+ warn$1(
7607
7622
  `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`
7608
7623
  );
7609
7624
  return;
@@ -7658,7 +7673,7 @@ If you want to remount the same app, move your app creation logic into a factory
7658
7673
  if (rawRef.k)
7659
7674
  refs[rawRef.k] = value;
7660
7675
  } else {
7661
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
7676
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7662
7677
  }
7663
7678
  };
7664
7679
  if (value) {
@@ -7668,7 +7683,7 @@ If you want to remount the same app, move your app creation logic into a factory
7668
7683
  doSet();
7669
7684
  }
7670
7685
  } else {
7671
- warn("Invalid template ref type:", ref, `(${typeof ref})`);
7686
+ warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
7672
7687
  }
7673
7688
  }
7674
7689
  }
@@ -7700,7 +7715,7 @@ If you want to remount the same app, move your app creation logic into a factory
7700
7715
  } = rendererInternals;
7701
7716
  const hydrate = (vnode, container) => {
7702
7717
  if (!container.hasChildNodes()) {
7703
- warn(
7718
+ warn$1(
7704
7719
  `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
7705
7720
  );
7706
7721
  patch(null, vnode, container);
@@ -7760,7 +7775,7 @@ If you want to remount the same app, move your app creation logic into a factory
7760
7775
  } else {
7761
7776
  if (node.data !== vnode.children) {
7762
7777
  hasMismatch = true;
7763
- warn(
7778
+ warn$1(
7764
7779
  `Hydration text mismatch in`,
7765
7780
  node.parentNode,
7766
7781
  `
@@ -7895,7 +7910,7 @@ If you want to remount the same app, move your app creation logic into a factory
7895
7910
  hydrateNode
7896
7911
  );
7897
7912
  } else {
7898
- warn("Invalid HostVNode type:", type, `(${typeof type})`);
7913
+ warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
7899
7914
  }
7900
7915
  }
7901
7916
  if (ref != null) {
@@ -7936,7 +7951,7 @@ If you want to remount the same app, move your app creation logic into a factory
7936
7951
  while (next) {
7937
7952
  hasMismatch = true;
7938
7953
  if (!hasWarned) {
7939
- warn(
7954
+ warn$1(
7940
7955
  `Hydration children mismatch on`,
7941
7956
  el,
7942
7957
  `
@@ -7951,7 +7966,7 @@ Server rendered element contains more child nodes than client vdom.`
7951
7966
  } else if (shapeFlag & 8) {
7952
7967
  if (el.textContent !== vnode.children) {
7953
7968
  hasMismatch = true;
7954
- warn(
7969
+ warn$1(
7955
7970
  `Hydration text content mismatch on`,
7956
7971
  el,
7957
7972
  `
@@ -8020,7 +8035,7 @@ Server rendered element contains more child nodes than client vdom.`
8020
8035
  } else {
8021
8036
  hasMismatch = true;
8022
8037
  if (!hasWarned) {
8023
- warn(
8038
+ warn$1(
8024
8039
  `Hydration children mismatch on`,
8025
8040
  container,
8026
8041
  `
@@ -8067,7 +8082,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8067
8082
  };
8068
8083
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
8069
8084
  hasMismatch = true;
8070
- warn(
8085
+ warn$1(
8071
8086
  `Hydration node mismatch:
8072
8087
  - rendered on server:`,
8073
8088
  node,
@@ -8166,7 +8181,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8166
8181
  }
8167
8182
  if (mismatchType) {
8168
8183
  const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
8169
- warn(
8184
+ warn$1(
8170
8185
  `Hydration ${mismatchType} mismatch on`,
8171
8186
  el,
8172
8187
  `
@@ -8245,7 +8260,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8245
8260
  const target = getGlobalThis();
8246
8261
  target.__VUE__ = true;
8247
8262
  {
8248
- setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
8263
+ setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
8249
8264
  }
8250
8265
  const {
8251
8266
  insert: hostInsert,
@@ -8354,7 +8369,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8354
8369
  internals
8355
8370
  );
8356
8371
  } else {
8357
- warn("Invalid VNode type:", type, `(${typeof type})`);
8372
+ warn$1("Invalid VNode type:", type, `(${typeof type})`);
8358
8373
  }
8359
8374
  }
8360
8375
  if (ref != null && parentComponent) {
@@ -9348,7 +9363,7 @@ Server rendered element contains fewer child nodes than client vdom.`
9348
9363
  const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
9349
9364
  if (nextChild.key != null) {
9350
9365
  if (keyToNewIndexMap.has(nextChild.key)) {
9351
- warn(
9366
+ warn$1(
9352
9367
  `Duplicate keys found during update:`,
9353
9368
  JSON.stringify(nextChild.key),
9354
9369
  `Make sure keys are unique.`
@@ -9786,14 +9801,14 @@ Server rendered element contains fewer child nodes than client vdom.`
9786
9801
  const targetSelector = props && props.to;
9787
9802
  if (isString(targetSelector)) {
9788
9803
  if (!select) {
9789
- warn(
9804
+ warn$1(
9790
9805
  `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`
9791
9806
  );
9792
9807
  return null;
9793
9808
  } else {
9794
9809
  const target = select(targetSelector);
9795
9810
  if (!target) {
9796
- warn(
9811
+ warn$1(
9797
9812
  `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.`
9798
9813
  );
9799
9814
  }
@@ -9801,7 +9816,7 @@ Server rendered element contains fewer child nodes than client vdom.`
9801
9816
  }
9802
9817
  } else {
9803
9818
  if (!targetSelector && !isTeleportDisabled(props)) {
9804
- warn(`Invalid Teleport target: ${targetSelector}`);
9819
+ warn$1(`Invalid Teleport target: ${targetSelector}`);
9805
9820
  }
9806
9821
  return targetSelector;
9807
9822
  }
@@ -9837,7 +9852,7 @@ Server rendered element contains fewer child nodes than client vdom.`
9837
9852
  namespace = "mathml";
9838
9853
  }
9839
9854
  } else if (!disabled) {
9840
- warn("Invalid Teleport target on mount:", target, `(${typeof target})`);
9855
+ warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
9841
9856
  }
9842
9857
  const mount = (container2, anchor2) => {
9843
9858
  if (shapeFlag & 16) {
@@ -9924,7 +9939,7 @@ Server rendered element contains fewer child nodes than client vdom.`
9924
9939
  0
9925
9940
  );
9926
9941
  } else {
9927
- warn(
9942
+ warn$1(
9928
9943
  "Invalid Teleport target on update:",
9929
9944
  target,
9930
9945
  `(${typeof target})`
@@ -10138,7 +10153,6 @@ Server rendered element contains fewer child nodes than client vdom.`
10138
10153
  dynamicProps,
10139
10154
  shapeFlag,
10140
10155
  true
10141
- /* isBlock */
10142
10156
  )
10143
10157
  );
10144
10158
  }
@@ -10151,7 +10165,6 @@ Server rendered element contains fewer child nodes than client vdom.`
10151
10165
  patchFlag,
10152
10166
  dynamicProps,
10153
10167
  true
10154
- /* isBlock: prevent a block from tracking itself */
10155
10168
  )
10156
10169
  );
10157
10170
  }
@@ -10225,7 +10238,7 @@ Server rendered element contains fewer child nodes than client vdom.`
10225
10238
  vnode.shapeFlag |= isString(children) ? 8 : 16;
10226
10239
  }
10227
10240
  if (vnode.key !== vnode.key) {
10228
- warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
10241
+ warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
10229
10242
  }
10230
10243
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
10231
10244
  !isBlockNode && // has current parent block
@@ -10248,7 +10261,7 @@ Server rendered element contains fewer child nodes than client vdom.`
10248
10261
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
10249
10262
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
10250
10263
  if (!type) {
10251
- warn(`Invalid vnode type when creating vnode: ${type}.`);
10264
+ warn$1(`Invalid vnode type when creating vnode: ${type}.`);
10252
10265
  }
10253
10266
  type = Comment;
10254
10267
  }
@@ -10294,7 +10307,7 @@ Server rendered element contains fewer child nodes than client vdom.`
10294
10307
  const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;
10295
10308
  if (shapeFlag & 4 && isProxy(type)) {
10296
10309
  type = toRaw(type);
10297
- warn(
10310
+ warn$1(
10298
10311
  `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\`.`,
10299
10312
  `
10300
10313
  Component that was made reactive: `,
@@ -10595,7 +10608,7 @@ Component that was made reactive: `,
10595
10608
  function validateComponentName(name, config) {
10596
10609
  const appIsNativeTag = config.isNativeTag || NO;
10597
10610
  if (isBuiltInTag(name) || appIsNativeTag(name)) {
10598
- warn(
10611
+ warn$1(
10599
10612
  "Do not use built-in or reserved HTML elements as component id: " + name
10600
10613
  );
10601
10614
  }
@@ -10634,7 +10647,7 @@ Component that was made reactive: `,
10634
10647
  }
10635
10648
  }
10636
10649
  if (Component.compilerOptions && isRuntimeOnly()) {
10637
- warn(
10650
+ warn$1(
10638
10651
  `"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.`
10639
10652
  );
10640
10653
  }
@@ -10653,7 +10666,10 @@ Component that was made reactive: `,
10653
10666
  setup,
10654
10667
  instance,
10655
10668
  0,
10656
- [shallowReadonly(instance.props) , setupContext]
10669
+ [
10670
+ shallowReadonly(instance.props) ,
10671
+ setupContext
10672
+ ]
10657
10673
  );
10658
10674
  resetTracking();
10659
10675
  unsetCurrentInstance();
@@ -10669,7 +10685,7 @@ Component that was made reactive: `,
10669
10685
  instance.asyncDep = setupResult;
10670
10686
  if (!instance.suspense) {
10671
10687
  const name = (_a = Component.name) != null ? _a : "Anonymous";
10672
- warn(
10688
+ warn$1(
10673
10689
  `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.`
10674
10690
  );
10675
10691
  }
@@ -10688,7 +10704,7 @@ Component that was made reactive: `,
10688
10704
  }
10689
10705
  } else if (isObject(setupResult)) {
10690
10706
  if (isVNode(setupResult)) {
10691
- warn(
10707
+ warn$1(
10692
10708
  `setup() should not return VNodes directly - return a render function instead.`
10693
10709
  );
10694
10710
  }
@@ -10700,7 +10716,7 @@ Component that was made reactive: `,
10700
10716
  exposeSetupStateOnRenderContext(instance);
10701
10717
  }
10702
10718
  } else if (setupResult !== void 0) {
10703
- warn(
10719
+ warn$1(
10704
10720
  `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
10705
10721
  );
10706
10722
  }
@@ -10773,12 +10789,11 @@ Component that was made reactive: `,
10773
10789
  }
10774
10790
  if (!Component.render && instance.render === NOOP && !isSSR) {
10775
10791
  if (!compile && Component.template) {
10776
- warn(
10792
+ warn$1(
10777
10793
  `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` )
10778
- /* should not happen */
10779
10794
  );
10780
10795
  } else {
10781
- warn(`Component is missing template or render function.`);
10796
+ warn$1(`Component is missing template or render function.`);
10782
10797
  }
10783
10798
  }
10784
10799
  }
@@ -10792,11 +10807,11 @@ Component that was made reactive: `,
10792
10807
  return target[key];
10793
10808
  },
10794
10809
  set() {
10795
- warn(`setupContext.attrs is readonly.`);
10810
+ warn$1(`setupContext.attrs is readonly.`);
10796
10811
  return false;
10797
10812
  },
10798
10813
  deleteProperty() {
10799
- warn(`setupContext.attrs is readonly.`);
10814
+ warn$1(`setupContext.attrs is readonly.`);
10800
10815
  return false;
10801
10816
  }
10802
10817
  }
@@ -10814,7 +10829,7 @@ Component that was made reactive: `,
10814
10829
  const expose = (exposed) => {
10815
10830
  {
10816
10831
  if (instance.exposed) {
10817
- warn(`expose() should be called only once per setup().`);
10832
+ warn$1(`expose() should be called only once per setup().`);
10818
10833
  }
10819
10834
  if (exposed != null) {
10820
10835
  let exposedType = typeof exposed;
@@ -10826,7 +10841,7 @@ Component that was made reactive: `,
10826
10841
  }
10827
10842
  }
10828
10843
  if (exposedType !== "object") {
10829
- warn(
10844
+ warn$1(
10830
10845
  `expose() should be passed a plain object, received ${exposedType}.`
10831
10846
  );
10832
10847
  }
@@ -10924,7 +10939,7 @@ Component that was made reactive: `,
10924
10939
  const ssrContextKey = Symbol.for("v-scx");
10925
10940
  const useSSRContext = () => {
10926
10941
  {
10927
- warn(`useSSRContext() is not supported in the global build.`);
10942
+ warn$1(`useSSRContext() is not supported in the global build.`);
10928
10943
  }
10929
10944
  };
10930
10945
 
@@ -11129,8 +11144,11 @@ Component that was made reactive: `,
11129
11144
  return true;
11130
11145
  }
11131
11146
 
11132
- const version = "3.4.0-rc.1";
11147
+ const version = "3.4.0-rc.3";
11148
+ const warn = warn$1 ;
11133
11149
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11150
+ const devtools = devtools$1 ;
11151
+ const setDevtoolsHook = setDevtoolsHook$1 ;
11134
11152
  const ssrUtils = null;
11135
11153
  const resolveFilter = resolveFilter$1 ;
11136
11154
  const _compatUtils = {
@@ -12830,7 +12848,7 @@ Component that was made reactive: `,
12830
12848
  defineProps: defineProps,
12831
12849
  defineSSRCustomElement: defineSSRCustomElement,
12832
12850
  defineSlots: defineSlots,
12833
- get devtools () { return devtools; },
12851
+ devtools: devtools,
12834
12852
  effect: effect,
12835
12853
  effectScope: effectScope,
12836
12854
  getCurrentInstance: getCurrentInstance,
@@ -12976,7 +12994,6 @@ Make sure to use the production build (*.prod.js) when deploying for production.
12976
12994
  {
12977
12995
  warn(
12978
12996
  `Runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` )
12979
- /* should not happen */
12980
12997
  );
12981
12998
  }
12982
12999
  };