@vue/runtime-core 3.6.0-beta.7 → 3.6.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,14 @@
1
1
  /**
2
- * @vue/runtime-core v3.6.0-beta.7
2
+ * @vue/runtime-core v3.6.0-beta.9
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
6
+ Object.defineProperties(exports, {
7
+ __esModule: { value: true },
8
+ [Symbol.toStringTag]: { value: "Module" }
9
+ });
7
10
  let _vue_reactivity = require("@vue/reactivity");
8
11
  let _vue_shared = require("@vue/shared");
9
-
10
12
  //#region packages/runtime-core/src/warning.ts
11
13
  const stack = [];
12
14
  /**
@@ -32,8 +34,8 @@ function warn$1(msg, ...args) {
32
34
  const trace = getComponentTrace();
33
35
  if (appWarnHandler) callWithErrorHandling(appWarnHandler, instance, 11, [
34
36
  msg + args.map((a) => {
35
- var _a$toString, _a$toString2;
36
- return (_a$toString = (_a$toString2 = a.toString) === null || _a$toString2 === void 0 ? void 0 : _a$toString2.call(a)) !== null && _a$toString !== void 0 ? _a$toString : JSON.stringify(a);
37
+ const toString = a.toString;
38
+ return toString == null ? JSON.stringify(a) : toString.call(a);
37
39
  }).join(""),
38
40
  instance && instance.proxy || instance,
39
41
  trace.map(({ ctx }) => `at <${formatComponentName(instance, ctx.type)}>`).join("\n"),
@@ -123,7 +125,6 @@ function assertNumber(val, type) {
123
125
  else if (isNaN(val)) warn$1(`${type} is NaN - the duration expression might be incorrect.`);
124
126
  }
125
127
  /* v8 ignore stop */
126
-
127
128
  //#endregion
128
129
  //#region packages/runtime-core/src/errorHandling.ts
129
130
  const ErrorCodes = {
@@ -246,7 +247,6 @@ function logError(err, type, instance, throwInDev = true, throwInProd = false) {
246
247
  else console.error(err);
247
248
  }
248
249
  }
249
-
250
250
  //#endregion
251
251
  //#region packages/runtime-core/src/scheduler.ts
252
252
  const jobs = [];
@@ -399,10 +399,16 @@ function checkRecursiveUpdates(seen, fn) {
399
399
  seen.set(fn, count + 1);
400
400
  return false;
401
401
  }
402
-
403
402
  //#endregion
404
403
  //#region packages/runtime-core/src/hmr.ts
405
404
  let isHmrUpdating = false;
405
+ const setHmrUpdating = (v) => {
406
+ try {
407
+ return isHmrUpdating;
408
+ } finally {
409
+ isHmrUpdating = v;
410
+ }
411
+ };
406
412
  const hmrDirtyComponents = /* @__PURE__ */ new Map();
407
413
  const hmrDirtyComponentsMode = /* @__PURE__ */ new Map();
408
414
  (0, _vue_shared.getGlobalThis)().__VUE_HMR_RUNTIME__ = {
@@ -521,7 +527,6 @@ function tryWrap(fn) {
521
527
  }
522
528
  };
523
529
  }
524
-
525
530
  //#endregion
526
531
  //#region packages/runtime-core/src/devtools.ts
527
532
  let devtools$1;
@@ -590,7 +595,6 @@ function createDevtoolsPerformanceHook(hook) {
590
595
  function devtoolsComponentEmit(component, event, params) {
591
596
  emit$1("component:emit", component.appContext.app, component, event, params);
592
597
  }
593
-
594
598
  //#endregion
595
599
  //#region packages/runtime-core/src/componentRenderContext.ts
596
600
  /**
@@ -660,7 +664,6 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
660
664
  renderFnWithContext._d = true;
661
665
  return renderFnWithContext;
662
666
  }
663
-
664
667
  //#endregion
665
668
  //#region packages/runtime-core/src/directives.ts
666
669
  function validateDirectiveName(name) {
@@ -715,7 +718,6 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
715
718
  }
716
719
  }
717
720
  }
718
-
719
721
  //#endregion
720
722
  //#region packages/runtime-core/src/apiInject.ts
721
723
  function provide(key, value) {
@@ -744,7 +746,6 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
744
746
  function hasInjectionContext() {
745
747
  return !!(getCurrentGenericInstance() || currentApp);
746
748
  }
747
-
748
749
  //#endregion
749
750
  //#region packages/runtime-core/src/helpers/useSsrContext.ts
750
751
  const ssrContextKey = Symbol.for("v-scx");
@@ -755,7 +756,6 @@ const useSSRContext = () => {
755
756
  return ctx;
756
757
  }
757
758
  };
758
-
759
759
  //#endregion
760
760
  //#region packages/runtime-core/src/apiWatch.ts
761
761
  function watchEffect(effect, options) {
@@ -856,7 +856,6 @@ function createPathGetter(ctx, path) {
856
856
  return cur;
857
857
  };
858
858
  }
859
-
860
859
  //#endregion
861
860
  //#region packages/runtime-core/src/components/Teleport.ts
862
861
  const TeleportEndKey = Symbol("_vte");
@@ -916,25 +915,26 @@ const TeleportImpl = {
916
915
  mount(container, mainAnchor);
917
916
  updateCssVars(n2, true);
918
917
  }
919
- if (isTeleportDeferred(n2.props)) {
918
+ if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
920
919
  n2.el.__isMounted = false;
921
920
  queuePostRenderEffect(() => {
921
+ if (n2.el.__isMounted !== false) return;
922
922
  mountToTarget();
923
923
  delete n2.el.__isMounted;
924
924
  }, void 0, parentSuspense);
925
925
  } else mountToTarget();
926
926
  } else {
927
- if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
928
- queuePostRenderEffect(() => {
929
- TeleportImpl.process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals);
930
- }, void 0, parentSuspense);
931
- return;
932
- }
933
927
  n2.el = n1.el;
934
928
  n2.targetStart = n1.targetStart;
935
929
  const mainAnchor = n2.anchor = n1.anchor;
936
930
  const target = n2.target = n1.target;
937
931
  const targetAnchor = n2.targetAnchor = n1.targetAnchor;
932
+ if (n1.el.__isMounted === false) {
933
+ queuePostRenderEffect(() => {
934
+ TeleportImpl.process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals);
935
+ }, void 0, parentSuspense);
936
+ return;
937
+ }
938
938
  const wasDisabled = isTeleportDisabled(n1.props);
939
939
  const currentContainer = wasDisabled ? container : target;
940
940
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
@@ -956,11 +956,9 @@ const TeleportImpl = {
956
956
  }
957
957
  },
958
958
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
959
- const { shapeFlag, children, anchor, targetStart, targetAnchor, target, props } = vnode;
960
- if (target) {
961
- hostRemove(targetStart);
962
- hostRemove(targetAnchor);
963
- }
959
+ const { shapeFlag, children, anchor, targetStart, targetAnchor, props } = vnode;
960
+ if (targetStart) hostRemove(targetStart);
961
+ if (targetAnchor) hostRemove(targetAnchor);
964
962
  doRemove && hostRemove(anchor);
965
963
  if (shapeFlag & 16) {
966
964
  const shouldRemove = doRemove || !isTeleportDisabled(props);
@@ -1054,7 +1052,6 @@ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
1054
1052
  }
1055
1053
  return targetAnchor;
1056
1054
  }
1057
-
1058
1055
  //#endregion
1059
1056
  //#region packages/runtime-core/src/components/BaseTransition.ts
1060
1057
  const leaveCbKey = Symbol("_leaveCb");
@@ -1220,7 +1217,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
1220
1217
  callHook(hook, [el]);
1221
1218
  },
1222
1219
  enter(el) {
1223
- if (isLeaving()) return;
1220
+ if (!isHmrUpdating && isLeaving()) return;
1224
1221
  let hook = onEnter;
1225
1222
  let afterHook = onAfterEnter;
1226
1223
  let cancelHook = onEnterCancelled;
@@ -1317,14 +1314,12 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
1317
1314
  function checkTransitionMode(mode) {
1318
1315
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") warn$1(`invalid <transition> mode: ${mode}`);
1319
1316
  }
1320
-
1321
1317
  //#endregion
1322
1318
  //#region packages/runtime-core/src/apiDefineComponent.ts
1323
1319
  /* @__NO_SIDE_EFFECTS__ */
1324
1320
  function defineComponent(options, extraOptions) {
1325
1321
  return (0, _vue_shared.isFunction)(options) ? (0, _vue_shared.extend)({ name: options.name }, extraOptions, { setup: options }) : options;
1326
1322
  }
1327
-
1328
1323
  //#endregion
1329
1324
  //#region packages/runtime-core/src/helpers/useId.ts
1330
1325
  function useId() {
@@ -1346,7 +1341,6 @@ function markAsyncBoundary(instance) {
1346
1341
  0
1347
1342
  ];
1348
1343
  }
1349
-
1350
1344
  //#endregion
1351
1345
  //#region packages/runtime-core/src/helpers/useTemplateRef.ts
1352
1346
  const knownTemplateRefs = /* @__PURE__ */ new WeakSet();
@@ -1370,7 +1364,6 @@ function isTemplateRefKey(refs, key) {
1370
1364
  let desc;
1371
1365
  return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
1372
1366
  }
1373
-
1374
1367
  //#endregion
1375
1368
  //#region packages/runtime-core/src/rendererTemplateRef.ts
1376
1369
  const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
@@ -1469,20 +1462,12 @@ function invalidatePendingSetRef(rawRef) {
1469
1462
  pendingSetRefMap.delete(rawRef);
1470
1463
  }
1471
1464
  }
1472
-
1473
1465
  //#endregion
1474
1466
  //#region packages/runtime-core/src/hydration.ts
1475
1467
  let isHydratingEnabled = false;
1476
1468
  function setIsHydratingEnabled(value) {
1477
1469
  isHydratingEnabled = value;
1478
1470
  }
1479
- /**
1480
- * VDOM hydration state.
1481
- * Also used by vapor interop plugin for tree-shaking:
1482
- * In non-hydration builds, this is never set to true, so the logic in
1483
- * vaporInteropImpl's hydrate/hydrateSlot can be tree-shaken.
1484
- */
1485
- let isHydrating = false;
1486
1471
  let hasLoggedMismatchError = false;
1487
1472
  const logMismatchError = () => {
1488
1473
  if (hasLoggedMismatchError) return;
@@ -1508,9 +1493,7 @@ function createHydrationFunctions(rendererInternals) {
1508
1493
  container._vnode = vnode;
1509
1494
  return;
1510
1495
  }
1511
- isHydrating = true;
1512
1496
  hydrateNode(container.firstChild, vnode, null, null, null);
1513
- isHydrating = false;
1514
1497
  flushPostFlushCbs();
1515
1498
  container._vnode = vnode;
1516
1499
  };
@@ -1879,7 +1862,6 @@ function isMismatchAllowed(el, allowedType) {
1879
1862
  return list.includes(MismatchTypeString[allowedType]);
1880
1863
  }
1881
1864
  }
1882
-
1883
1865
  //#endregion
1884
1866
  //#region packages/runtime-core/src/hydrationStrategies.ts
1885
1867
  let requestIdleCallback;
@@ -1968,7 +1950,6 @@ function forEachElement(node, cb) {
1968
1950
  }
1969
1951
  } else cb(node);
1970
1952
  }
1971
-
1972
1953
  //#endregion
1973
1954
  //#region packages/runtime-core/src/apiAsyncComponent.ts
1974
1955
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
@@ -2105,11 +2086,10 @@ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydra
2105
2086
  if (getResolvedComp()) doHydrate();
2106
2087
  else load().then(() => !instance.isUnmounted && doHydrate());
2107
2088
  }
2108
-
2109
2089
  //#endregion
2110
2090
  //#region packages/runtime-core/src/components/KeepAlive.ts
2111
2091
  const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
2112
- const KeepAliveImpl = {
2092
+ const KeepAlive = {
2113
2093
  name: `KeepAlive`,
2114
2094
  __isKeepAlive: true,
2115
2095
  props: {
@@ -2247,7 +2227,6 @@ const KeepAliveImpl = {
2247
2227
  };
2248
2228
  }
2249
2229
  };
2250
- const KeepAlive = KeepAliveImpl;
2251
2230
  function matches(pattern, name) {
2252
2231
  if ((0, _vue_shared.isArray)(pattern)) return pattern.some((p) => matches(p, name));
2253
2232
  else if ((0, _vue_shared.isString)(pattern)) return pattern.split(",").includes(name);
@@ -2327,7 +2306,6 @@ function deactivate(vnode, container, { m: move }, parentComponent, parentSuspen
2327
2306
  }, void 0, parentSuspense);
2328
2307
  devtoolsComponentAdded(instance);
2329
2308
  }
2330
-
2331
2309
  //#endregion
2332
2310
  //#region packages/runtime-core/src/apiLifecycle.ts
2333
2311
  function injectHook(type, hook, target = currentInstance, prepend = false) {
@@ -2363,23 +2341,19 @@ const onRenderTracked = /* @__PURE__ */ createHook("rtc");
2363
2341
  function onErrorCaptured(hook, target = currentInstance) {
2364
2342
  injectHook("ec", hook, target);
2365
2343
  }
2366
-
2367
- //#endregion
2368
- //#region packages/runtime-core/src/helpers/resolveAssets.ts
2369
- const COMPONENTS = "components";
2370
2344
  const DIRECTIVES = "directives";
2371
2345
  /**
2372
2346
  * @private
2373
2347
  */
2374
2348
  function resolveComponent(name, maybeSelfReference) {
2375
- return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
2349
+ return resolveAsset("components", name, true, maybeSelfReference) || name;
2376
2350
  }
2377
2351
  const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
2378
2352
  /**
2379
2353
  * @private
2380
2354
  */
2381
2355
  function resolveDynamicComponent(component) {
2382
- if ((0, _vue_shared.isString)(component)) return resolveAsset(COMPONENTS, component, false) || component;
2356
+ if ((0, _vue_shared.isString)(component)) return resolveAsset("components", component, false) || component;
2383
2357
  else return component || NULL_DYNAMIC_COMPONENT;
2384
2358
  }
2385
2359
  /**
@@ -2392,14 +2366,14 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
2392
2366
  const instance = currentRenderingInstance || currentInstance;
2393
2367
  if (instance) {
2394
2368
  const Component = instance.type;
2395
- if (type === COMPONENTS) {
2369
+ if (type === "components") {
2396
2370
  const selfName = getComponentName(Component, false);
2397
2371
  if (selfName && (selfName === name || selfName === (0, _vue_shared.camelize)(name) || selfName === (0, _vue_shared.capitalize)((0, _vue_shared.camelize)(name)))) return Component;
2398
2372
  }
2399
2373
  const res = resolve(instance[type] || Component[type], name) || resolve(instance.appContext[type], name);
2400
2374
  if (!res && maybeSelfReference) return Component;
2401
2375
  if (warnMissing && !res) {
2402
- const extra = type === COMPONENTS ? "\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement." : ``;
2376
+ const extra = type === "components" ? "\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement." : ``;
2403
2377
  warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
2404
2378
  }
2405
2379
  return res;
@@ -2408,7 +2382,6 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
2408
2382
  function resolve(registry, name) {
2409
2383
  return registry && (registry[name] || registry[(0, _vue_shared.camelize)(name)] || registry[(0, _vue_shared.capitalize)((0, _vue_shared.camelize)(name))]);
2410
2384
  }
2411
-
2412
2385
  //#endregion
2413
2386
  //#region packages/runtime-core/src/helpers/renderList.ts
2414
2387
  /**
@@ -2429,11 +2402,14 @@ function renderList(source, renderItem, cache, index) {
2429
2402
  }
2430
2403
  ret = new Array(source.length);
2431
2404
  for (let i = 0, l = source.length; i < l; i++) ret[i] = renderItem(needsWrap ? isReadonlySource ? (0, _vue_reactivity.toReadonly)((0, _vue_reactivity.toReactive)(source[i])) : (0, _vue_reactivity.toReactive)(source[i]) : source[i], i, void 0, cached && cached[i]);
2432
- } else if (typeof source === "number") {
2433
- if (!Number.isInteger(source)) warn$1(`The v-for range expect an integer value but got ${source}.`);
2405
+ } else if (typeof source === "number") if (!Number.isInteger(source) || source < 0) {
2406
+ warn$1(`The v-for range expects a positive integer value but got ${source}.`);
2407
+ ret = [];
2408
+ } else {
2434
2409
  ret = new Array(source);
2435
2410
  for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
2436
- } else if ((0, _vue_shared.isObject)(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
2411
+ }
2412
+ else if ((0, _vue_shared.isObject)(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
2437
2413
  else {
2438
2414
  const keys = Object.keys(source);
2439
2415
  ret = new Array(keys.length);
@@ -2446,7 +2422,6 @@ function renderList(source, renderItem, cache, index) {
2446
2422
  if (cache) cache[index] = ret;
2447
2423
  return ret;
2448
2424
  }
2449
-
2450
2425
  //#endregion
2451
2426
  //#region packages/runtime-core/src/helpers/createSlots.ts
2452
2427
  /**
@@ -2465,7 +2440,6 @@ function createSlots(slots, dynamicSlots) {
2465
2440
  }
2466
2441
  return slots;
2467
2442
  }
2468
-
2469
2443
  //#endregion
2470
2444
  //#region packages/runtime-core/src/helpers/renderSlot.ts
2471
2445
  /**
@@ -2516,7 +2490,6 @@ function ensureVaporSlotFallback(vnodes, fallback) {
2516
2490
  if (!vaporSlot.fallback && fallback) vaporSlot.fallback = fallback;
2517
2491
  }
2518
2492
  }
2519
-
2520
2493
  //#endregion
2521
2494
  //#region packages/runtime-core/src/helpers/toHandlers.ts
2522
2495
  /**
@@ -2532,7 +2505,6 @@ function toHandlers(obj, preserveCaseIfNecessary) {
2532
2505
  for (const key in obj) ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : (0, _vue_shared.toHandlerKey)(key)] = obj[key];
2533
2506
  return ret;
2534
2507
  }
2535
-
2536
2508
  //#endregion
2537
2509
  //#region packages/runtime-core/src/componentPublicInstance.ts
2538
2510
  /**
@@ -2711,7 +2683,6 @@ function exposeSetupStateOnRenderContext(instance) {
2711
2683
  }
2712
2684
  });
2713
2685
  }
2714
-
2715
2686
  //#endregion
2716
2687
  //#region packages/runtime-core/src/apiSetupHelpers.ts
2717
2688
  const warnRuntimeUsage = (method) => warn$1(`${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.`);
@@ -2750,6 +2721,22 @@ function defineExpose(exposed) {
2750
2721
  function defineOptions(options) {
2751
2722
  warnRuntimeUsage(`defineOptions`);
2752
2723
  }
2724
+ /**
2725
+ * Vue `<script setup>` compiler macro for providing type hints to IDEs for
2726
+ * slot name and slot props type checking.
2727
+ *
2728
+ * Example usage:
2729
+ * ```ts
2730
+ * const slots = defineSlots<{
2731
+ * default(props: { msg: string }): any
2732
+ * }>()
2733
+ * ```
2734
+ *
2735
+ * This is only usable inside `<script setup>`, is compiled away in the
2736
+ * output and should **not** be actually called at runtime.
2737
+ *
2738
+ * @see {@link https://vuejs.org/api/sfc-script-setup.html#defineslots}
2739
+ */
2753
2740
  function defineSlots() {
2754
2741
  warnRuntimeUsage(`defineSlots`);
2755
2742
  return null;
@@ -2866,21 +2853,29 @@ function createPropsRestProxy(props, excludedKeys) {
2866
2853
  */
2867
2854
  function withAsyncContext(getAwaitable) {
2868
2855
  const ctx = getCurrentGenericInstance();
2856
+ const inSSRSetup = isInSSRComponentSetup;
2869
2857
  if (!ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
2870
2858
  let awaitable = getAwaitable();
2871
2859
  setCurrentInstance(null, void 0);
2872
- const cleanup = () => setCurrentInstance(null, void 0);
2873
- if ((0, _vue_shared.isPromise)(awaitable)) awaitable = awaitable.catch((e) => {
2860
+ if (inSSRSetup) setInSSRSetupState(false);
2861
+ const restore = () => {
2874
2862
  setCurrentInstance(ctx);
2863
+ if (inSSRSetup) setInSSRSetupState(true);
2864
+ };
2865
+ const cleanup = () => {
2866
+ setCurrentInstance(null, void 0);
2867
+ if (inSSRSetup) setInSSRSetupState(false);
2868
+ };
2869
+ if ((0, _vue_shared.isPromise)(awaitable)) awaitable = awaitable.catch((e) => {
2870
+ restore();
2875
2871
  Promise.resolve().then(() => Promise.resolve().then(cleanup));
2876
2872
  throw e;
2877
2873
  });
2878
2874
  return [awaitable, () => {
2879
- setCurrentInstance(ctx);
2875
+ restore();
2880
2876
  Promise.resolve().then(cleanup);
2881
2877
  }];
2882
2878
  }
2883
-
2884
2879
  //#endregion
2885
2880
  //#region packages/runtime-core/src/componentOptions.ts
2886
2881
  function createDuplicateChecker() {
@@ -3126,7 +3121,6 @@ function mergeWatchOptions(to, from) {
3126
3121
  for (const key in from) merged[key] = mergeAsArray(to[key], from[key]);
3127
3122
  return merged;
3128
3123
  }
3129
-
3130
3124
  //#endregion
3131
3125
  //#region packages/runtime-core/src/apiCreateApp.ts
3132
3126
  function createAppContext() {
@@ -3258,7 +3252,6 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
3258
3252
  * `app.runWithContext()`.
3259
3253
  */
3260
3254
  let currentApp = null;
3261
-
3262
3255
  //#endregion
3263
3256
  //#region packages/runtime-core/src/helpers/useModel.ts
3264
3257
  function useModel(props, name, options = _vue_shared.EMPTY_OBJ) {
@@ -3331,7 +3324,6 @@ function useModel(props, name, options = _vue_shared.EMPTY_OBJ) {
3331
3324
  const getModelModifiers = (props, modelName, getter) => {
3332
3325
  return getter(props, (0, _vue_shared.getModifierPropName)(modelName)) || getter(props, `${(0, _vue_shared.camelize)(modelName)}Modifiers`) || getter(props, `${(0, _vue_shared.hyphenate)(modelName)}Modifiers`);
3333
3326
  };
3334
-
3335
3327
  //#endregion
3336
3328
  //#region packages/runtime-core/src/componentEmits.ts
3337
3329
  function emit(instance, event, ...rawArgs) {
@@ -3421,7 +3413,6 @@ function isEmitListener(options, key) {
3421
3413
  key = key.slice(2).replace(/Once$/, "");
3422
3414
  return (0, _vue_shared.hasOwn)(options, key[0].toLowerCase() + key.slice(1)) || (0, _vue_shared.hasOwn)(options, (0, _vue_shared.hyphenate)(key)) || (0, _vue_shared.hasOwn)(options, key);
3423
3415
  }
3424
-
3425
3416
  //#endregion
3426
3417
  //#region packages/runtime-core/src/componentRenderUtils.ts
3427
3418
  /**
@@ -3603,17 +3594,20 @@ function hasPropValueChanged(nextProps, prevProps, key) {
3603
3594
  if (key === "style" && (0, _vue_shared.isObject)(nextProp) && (0, _vue_shared.isObject)(prevProp)) return !(0, _vue_shared.looseEqual)(nextProp, prevProp);
3604
3595
  return nextProp !== prevProp;
3605
3596
  }
3606
- function updateHOCHostEl({ vnode, parent }, el) {
3597
+ function updateHOCHostEl({ vnode, parent, suspense }, el) {
3607
3598
  while (parent && !parent.vapor) {
3608
3599
  const root = parent.subTree;
3609
- if (root.suspense && root.suspense.activeBranch === vnode) root.el = vnode.el;
3600
+ if (root.suspense && root.suspense.activeBranch === vnode) {
3601
+ root.suspense.vnode.el = root.el = el;
3602
+ vnode = root;
3603
+ }
3610
3604
  if (root === vnode) {
3611
3605
  (vnode = parent.vnode).el = el;
3612
3606
  parent = parent.parent;
3613
3607
  } else break;
3614
3608
  }
3609
+ if (suspense && suspense.activeBranch === vnode) suspense.vnode.el = el;
3615
3610
  }
3616
-
3617
3611
  //#endregion
3618
3612
  //#region packages/runtime-core/src/internalObject.ts
3619
3613
  /**
@@ -3625,7 +3619,6 @@ function updateHOCHostEl({ vnode, parent }, el) {
3625
3619
  const internalObjectProto = {};
3626
3620
  const createInternalObject = () => Object.create(internalObjectProto);
3627
3621
  const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
3628
-
3629
3622
  //#endregion
3630
3623
  //#region packages/runtime-core/src/componentProps.ts
3631
3624
  function initProps(instance, rawProps, isStateful, isSSR = false) {
@@ -3921,7 +3914,6 @@ function isExplicable(type) {
3921
3914
  function isBoolean(...args) {
3922
3915
  return args.some((elem) => elem.toLowerCase() === "boolean");
3923
3916
  }
3924
-
3925
3917
  //#endregion
3926
3918
  //#region packages/runtime-core/src/componentSlots.ts
3927
3919
  const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
@@ -3990,7 +3982,6 @@ const updateSlots = (instance, children, optimized) => {
3990
3982
  for (const key in slots) if (!isInternalKey(key) && deletionComparisonTarget[key] == null) delete slots[key];
3991
3983
  }
3992
3984
  };
3993
-
3994
3985
  //#endregion
3995
3986
  //#region packages/runtime-core/src/profiling.ts
3996
3987
  let supported;
@@ -4029,7 +4020,6 @@ function isSupported() {
4029
4020
  } else supported = false;
4030
4021
  return supported;
4031
4022
  }
4032
-
4033
4023
  //#endregion
4034
4024
  //#region packages/runtime-core/src/renderer.ts
4035
4025
  const MoveType = {
@@ -4192,10 +4182,19 @@ function baseCreateRenderer(options, createHydrationFns) {
4192
4182
  if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4193
4183
  if (transition) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense);
4194
4184
  else hostInsert(el, container, anchor);
4195
- if ((vnodeHook = props && props.onVnodeMounted) || dirs) queuePostRenderEffect(() => {
4196
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
4197
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
4198
- }, void 0, parentSuspense);
4185
+ if ((vnodeHook = props && props.onVnodeMounted) || dirs) {
4186
+ const isHmr = isHmrUpdating;
4187
+ queuePostRenderEffect(() => {
4188
+ let prev;
4189
+ prev = setHmrUpdating(isHmr);
4190
+ try {
4191
+ vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
4192
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
4193
+ } finally {
4194
+ setHmrUpdating(prev);
4195
+ }
4196
+ }, void 0, parentSuspense);
4197
+ }
4199
4198
  };
4200
4199
  const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
4201
4200
  if (scopeId) hostSetScopeId(el, scopeId);
@@ -4417,7 +4416,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4417
4416
  if (isAsyncWrapperVNode && type.__asyncHydrate) type.__asyncHydrate(el, instance, hydrateSubTree);
4418
4417
  else hydrateSubTree();
4419
4418
  } else {
4420
- if (root.ce && root.ce._hasShadowRoot()) root.ce._injectChildStyle(type);
4419
+ if (root.ce && root.ce._hasShadowRoot()) root.ce._injectChildStyle(type, instance.parent ? instance.parent.type : void 0);
4421
4420
  startMeasure(instance, `render`);
4422
4421
  const subTree = instance.subTree = renderComponentRoot(instance);
4423
4422
  endMeasure(instance, `render`);
@@ -4668,7 +4667,7 @@ function baseCreateRenderer(options, createHydrationFns) {
4668
4667
  else hostInsert(el, container, anchor);
4669
4668
  };
4670
4669
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
4671
- const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex } = vnode;
4670
+ const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
4672
4671
  if (patchFlag === -2) optimized = false;
4673
4672
  if (ref != null) {
4674
4673
  const prevSub = (0, _vue_reactivity.setActiveSub)();
@@ -4706,9 +4705,11 @@ function baseCreateRenderer(options, createHydrationFns) {
4706
4705
  }
4707
4706
  if (doRemove) remove(vnode);
4708
4707
  }
4709
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) queuePostRenderEffect(() => {
4708
+ const shouldInvalidateMemo = memo != null && cacheIndex == null;
4709
+ if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs || shouldInvalidateMemo) queuePostRenderEffect(() => {
4710
4710
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
4711
4711
  shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
4712
+ if (shouldInvalidateMemo) vnode.el = null;
4712
4713
  }, void 0, parentSuspense);
4713
4714
  };
4714
4715
  const remove = (vnode) => {
@@ -4931,12 +4932,11 @@ function resolveAsyncComponentPlaceholder(anchorVnode) {
4931
4932
  if (instance) return resolveAsyncComponentPlaceholder(instance.subTree);
4932
4933
  return null;
4933
4934
  }
4934
-
4935
4935
  //#endregion
4936
4936
  //#region packages/runtime-core/src/components/Suspense.ts
4937
4937
  const isSuspense = (type) => type.__isSuspense;
4938
4938
  let suspenseId = 0;
4939
- const SuspenseImpl = {
4939
+ const Suspense = {
4940
4940
  name: "Suspense",
4941
4941
  __isSuspense: true,
4942
4942
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
@@ -4954,7 +4954,6 @@ const SuspenseImpl = {
4954
4954
  hydrate: hydrateSuspense,
4955
4955
  normalize: normalizeSuspenseChildren
4956
4956
  };
4957
- const Suspense = SuspenseImpl;
4958
4957
  function triggerEvent(vnode, name) {
4959
4958
  const eventListener = vnode.props && vnode.props[name];
4960
4959
  if ((0, _vue_shared.isFunction)(eventListener)) eventListener();
@@ -5063,6 +5062,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5063
5062
  pendingId: suspenseId++,
5064
5063
  timeout: typeof timeout === "number" ? timeout : -1,
5065
5064
  activeBranch: null,
5065
+ isFallbackMountPending: false,
5066
5066
  pendingBranch: null,
5067
5067
  isInFallback: !isHydrating,
5068
5068
  isHydrating,
@@ -5083,13 +5083,14 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5083
5083
  if (isInFallback && vnode.ssFallback) vnode.ssFallback.el = null;
5084
5084
  }
5085
5085
  };
5086
- if (activeBranch) {
5086
+ if (activeBranch && !suspense.isFallbackMountPending) {
5087
5087
  if (parentNode(activeBranch.el) === container) anchor = next(activeBranch);
5088
5088
  unmount(activeBranch, parentComponent, suspense, true);
5089
5089
  if (!delayEnter && isInFallback && vnode.ssFallback) queuePostRenderEffect(() => vnode.ssFallback.el = null, void 0, suspense);
5090
5090
  }
5091
5091
  if (!delayEnter) move(pendingBranch, container, anchor, 0, parentComponent);
5092
5092
  }
5093
+ suspense.isFallbackMountPending = false;
5093
5094
  setActiveBranch(suspense, pendingBranch);
5094
5095
  suspense.pendingBranch = null;
5095
5096
  suspense.isInFallback = false;
@@ -5119,12 +5120,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
5119
5120
  triggerEvent(vnode, "onFallback");
5120
5121
  const anchor = next(activeBranch);
5121
5122
  const mountFallback = () => {
5123
+ suspense.isFallbackMountPending = false;
5122
5124
  if (!suspense.isInFallback) return;
5123
5125
  patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
5124
5126
  setActiveBranch(suspense, fallbackVNode);
5125
5127
  };
5126
5128
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
5127
- if (delayEnter) activeBranch.transition.afterLeave = mountFallback;
5129
+ if (delayEnter) {
5130
+ suspense.isFallbackMountPending = true;
5131
+ activeBranch.transition.afterLeave = mountFallback;
5132
+ }
5128
5133
  suspense.isInFallback = true;
5129
5134
  unmount(activeBranch, parentComponent, null, true);
5130
5135
  if (!delayEnter) mountFallback();
@@ -5215,7 +5220,6 @@ function isVNodeSuspensible(vnode) {
5215
5220
  const suspensible = vnode.props && vnode.props.suspensible;
5216
5221
  return suspensible != null && suspensible !== false;
5217
5222
  }
5218
-
5219
5223
  //#endregion
5220
5224
  //#region packages/runtime-core/src/vnode.ts
5221
5225
  const Fragment = Symbol.for("v-fgt");
@@ -5526,6 +5530,7 @@ function mergeProps(...args) {
5526
5530
  const existing = ret[key];
5527
5531
  const incoming = toMerge[key];
5528
5532
  if (incoming && existing !== incoming && !((0, _vue_shared.isArray)(existing) && existing.includes(incoming))) ret[key] = existing ? [].concat(existing, incoming) : incoming;
5533
+ else if (incoming == null && existing == null && !(0, _vue_shared.isModelListener)(key)) ret[key] = incoming;
5529
5534
  } else if (key !== "") ret[key] = toMerge[key];
5530
5535
  }
5531
5536
  return ret;
@@ -5533,7 +5538,6 @@ function mergeProps(...args) {
5533
5538
  function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
5534
5539
  callWithAsyncErrorHandling(hook, instance, 7, [vnode, prevVNode]);
5535
5540
  }
5536
-
5537
5541
  //#endregion
5538
5542
  //#region packages/runtime-core/src/componentCurrentInstance.ts
5539
5543
  /**
@@ -5601,7 +5605,6 @@ const useInstanceOption = (key, silent = false) => {
5601
5605
  value: instance[key]
5602
5606
  };
5603
5607
  };
5604
-
5605
5608
  //#endregion
5606
5609
  //#region packages/runtime-core/src/component.ts
5607
5610
  const emptyAppContext = /* @__PURE__ */ createAppContext();
@@ -5897,13 +5900,11 @@ function formatComponentName(instance, Component, isRoot = false) {
5897
5900
  function isClassComponent(value) {
5898
5901
  return (0, _vue_shared.isFunction)(value) && "__vccOpts" in value;
5899
5902
  }
5900
-
5901
5903
  //#endregion
5902
5904
  //#region packages/runtime-core/src/apiComputed.ts
5903
5905
  const computed = (getterOrOptions, debugOptions) => {
5904
5906
  return (0, _vue_reactivity.computed)(getterOrOptions, debugOptions, isInSSRComponentSetup);
5905
5907
  };
5906
-
5907
5908
  //#endregion
5908
5909
  //#region packages/runtime-core/src/h.ts
5909
5910
  function h(type, propsOrChildren, children) {
@@ -5923,7 +5924,6 @@ function h(type, propsOrChildren, children) {
5923
5924
  setBlockTracking(1);
5924
5925
  }
5925
5926
  }
5926
-
5927
5927
  //#endregion
5928
5928
  //#region packages/runtime-core/src/customFormatter.ts
5929
5929
  function initCustomFormatter() {
@@ -6088,7 +6088,6 @@ function initCustomFormatter() {
6088
6088
  if (window.devtoolsFormatters) window.devtoolsFormatters.push(formatter);
6089
6089
  else window.devtoolsFormatters = [formatter];
6090
6090
  }
6091
-
6092
6091
  //#endregion
6093
6092
  //#region packages/runtime-core/src/helpers/withMemo.ts
6094
6093
  function withMemo(memo, render, cache, index) {
@@ -6106,10 +6105,9 @@ function isMemoSame(cached, memo) {
6106
6105
  if (isBlockTreeEnabled > 0 && currentBlock) currentBlock.push(cached);
6107
6106
  return true;
6108
6107
  }
6109
-
6110
6108
  //#endregion
6111
6109
  //#region packages/runtime-core/src/index.ts
6112
- const version = "3.6.0-beta.7";
6110
+ const version = "3.6.0-beta.9";
6113
6111
  const warn = warn$1;
6114
6112
  /**
6115
6113
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -6118,7 +6116,11 @@ const warn = warn$1;
6118
6116
  const ErrorTypeStrings = ErrorTypeStrings$1;
6119
6117
  const devtools = devtools$1;
6120
6118
  const setDevtoolsHook = setDevtoolsHook$1;
6121
- const _ssrUtils = {
6119
+ /**
6120
+ * SSR utils for \@vue/server-renderer. Only exposed in ssr-possible builds.
6121
+ * @internal
6122
+ */
6123
+ const ssrUtils = {
6122
6124
  createComponentInstance,
6123
6125
  setupComponent,
6124
6126
  renderComponentRoot,
@@ -6131,11 +6133,6 @@ const _ssrUtils = {
6131
6133
  popWarningContext
6132
6134
  };
6133
6135
  /**
6134
- * SSR utils for \@vue/server-renderer. Only exposed in ssr-possible builds.
6135
- * @internal
6136
- */
6137
- const ssrUtils = _ssrUtils;
6138
- /**
6139
6136
  * @internal only exposed in compat builds
6140
6137
  */
6141
6138
  const resolveFilter = null;
@@ -6144,7 +6141,6 @@ const resolveFilter = null;
6144
6141
  */
6145
6142
  const compatUtils = null;
6146
6143
  const DeprecationTypes = null;
6147
-
6148
6144
  //#endregion
6149
6145
  exports.BaseTransition = BaseTransition;
6150
6146
  exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators;
@@ -6295,4 +6291,4 @@ exports.withCtx = withCtx;
6295
6291
  exports.withDefaults = withDefaults;
6296
6292
  exports.withDirectives = withDirectives;
6297
6293
  exports.withMemo = withMemo;
6298
- exports.withScopeId = withScopeId;
6294
+ exports.withScopeId = withScopeId;