@vue/compat 3.5.25 → 3.5.26

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,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.25
2
+ * @vue/compat v3.5.26
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -929,13 +929,13 @@ function addSub(link) {
929
929
  }
930
930
  }
931
931
  const targetMap = /* @__PURE__ */ new WeakMap();
932
- const ITERATE_KEY = Symbol(
932
+ const ITERATE_KEY = /* @__PURE__ */ Symbol(
933
933
  "Object iterate"
934
934
  );
935
- const MAP_KEY_ITERATE_KEY = Symbol(
935
+ const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(
936
936
  "Map keys iterate"
937
937
  );
938
- const ARRAY_ITERATE_KEY = Symbol(
938
+ const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(
939
939
  "Array iterate"
940
940
  );
941
941
  function track(target, type, key) {
@@ -3303,65 +3303,6 @@ function emit$1(instance, event, args) {
3303
3303
  return instance.proxy;
3304
3304
  }
3305
3305
 
3306
- const compatModelEventPrefix = `onModelCompat:`;
3307
- const warnedTypes = /* @__PURE__ */ new WeakSet();
3308
- function convertLegacyVModelProps(vnode) {
3309
- const { type, shapeFlag, props, dynamicProps } = vnode;
3310
- const comp = type;
3311
- if (shapeFlag & 6 && props && "modelValue" in props) {
3312
- if (!isCompatEnabled(
3313
- "COMPONENT_V_MODEL",
3314
- // this is a special case where we want to use the vnode component's
3315
- // compat config instead of the current rendering instance (which is the
3316
- // parent of the component that exposes v-model)
3317
- { type }
3318
- )) {
3319
- return;
3320
- }
3321
- if (!warnedTypes.has(comp)) {
3322
- pushWarningContext(vnode);
3323
- warnDeprecation("COMPONENT_V_MODEL", { type }, comp);
3324
- popWarningContext();
3325
- warnedTypes.add(comp);
3326
- }
3327
- const model = comp.model || {};
3328
- applyModelFromMixins(model, comp.mixins);
3329
- const { prop = "value", event = "input" } = model;
3330
- if (prop !== "modelValue") {
3331
- props[prop] = props.modelValue;
3332
- delete props.modelValue;
3333
- }
3334
- if (dynamicProps) {
3335
- dynamicProps[dynamicProps.indexOf("modelValue")] = prop;
3336
- }
3337
- props[compatModelEventPrefix + event] = props["onUpdate:modelValue"];
3338
- delete props["onUpdate:modelValue"];
3339
- }
3340
- }
3341
- function applyModelFromMixins(model, mixins) {
3342
- if (mixins) {
3343
- mixins.forEach((m) => {
3344
- if (m.model) extend(model, m.model);
3345
- if (m.mixins) applyModelFromMixins(model, m.mixins);
3346
- });
3347
- }
3348
- }
3349
- function compatModelEmit(instance, event, args) {
3350
- if (!isCompatEnabled("COMPONENT_V_MODEL", instance)) {
3351
- return;
3352
- }
3353
- const props = instance.vnode.props;
3354
- const modelHandler = props && props[compatModelEventPrefix + event];
3355
- if (modelHandler) {
3356
- callWithErrorHandling(
3357
- modelHandler,
3358
- instance,
3359
- 6,
3360
- args
3361
- );
3362
- }
3363
- }
3364
-
3365
3306
  let currentRenderingInstance = null;
3366
3307
  let currentScopeId = null;
3367
3308
  function setCurrentRenderingInstance(instance) {
@@ -3512,7 +3453,180 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
3512
3453
  }
3513
3454
  }
3514
3455
 
3515
- const TeleportEndKey = Symbol("_vte");
3456
+ function provide(key, value) {
3457
+ {
3458
+ if (!currentInstance || currentInstance.isMounted) {
3459
+ warn$1(`provide() can only be used inside setup().`);
3460
+ }
3461
+ }
3462
+ if (currentInstance) {
3463
+ let provides = currentInstance.provides;
3464
+ const parentProvides = currentInstance.parent && currentInstance.parent.provides;
3465
+ if (parentProvides === provides) {
3466
+ provides = currentInstance.provides = Object.create(parentProvides);
3467
+ }
3468
+ provides[key] = value;
3469
+ }
3470
+ }
3471
+ function inject(key, defaultValue, treatDefaultAsFactory = false) {
3472
+ const instance = getCurrentInstance();
3473
+ if (instance || currentApp) {
3474
+ let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
3475
+ if (provides && key in provides) {
3476
+ return provides[key];
3477
+ } else if (arguments.length > 1) {
3478
+ return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
3479
+ } else {
3480
+ warn$1(`injection "${String(key)}" not found.`);
3481
+ }
3482
+ } else {
3483
+ warn$1(`inject() can only be used inside setup() or functional components.`);
3484
+ }
3485
+ }
3486
+ function hasInjectionContext() {
3487
+ return !!(getCurrentInstance() || currentApp);
3488
+ }
3489
+
3490
+ const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx");
3491
+ const useSSRContext = () => {
3492
+ {
3493
+ const ctx = inject(ssrContextKey);
3494
+ if (!ctx) {
3495
+ warn$1(
3496
+ `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
3497
+ );
3498
+ }
3499
+ return ctx;
3500
+ }
3501
+ };
3502
+
3503
+ function watchEffect(effect, options) {
3504
+ return doWatch(effect, null, options);
3505
+ }
3506
+ function watchPostEffect(effect, options) {
3507
+ return doWatch(
3508
+ effect,
3509
+ null,
3510
+ extend({}, options, { flush: "post" })
3511
+ );
3512
+ }
3513
+ function watchSyncEffect(effect, options) {
3514
+ return doWatch(
3515
+ effect,
3516
+ null,
3517
+ extend({}, options, { flush: "sync" })
3518
+ );
3519
+ }
3520
+ function watch(source, cb, options) {
3521
+ if (!isFunction(cb)) {
3522
+ warn$1(
3523
+ `\`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.`
3524
+ );
3525
+ }
3526
+ return doWatch(source, cb, options);
3527
+ }
3528
+ function doWatch(source, cb, options = EMPTY_OBJ) {
3529
+ const { immediate, deep, flush, once } = options;
3530
+ if (!cb) {
3531
+ if (immediate !== void 0) {
3532
+ warn$1(
3533
+ `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
3534
+ );
3535
+ }
3536
+ if (deep !== void 0) {
3537
+ warn$1(
3538
+ `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
3539
+ );
3540
+ }
3541
+ if (once !== void 0) {
3542
+ warn$1(
3543
+ `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
3544
+ );
3545
+ }
3546
+ }
3547
+ const baseWatchOptions = extend({}, options);
3548
+ baseWatchOptions.onWarn = warn$1;
3549
+ const runsImmediately = cb && immediate || !cb && flush !== "post";
3550
+ let ssrCleanup;
3551
+ if (isInSSRComponentSetup) {
3552
+ if (flush === "sync") {
3553
+ const ctx = useSSRContext();
3554
+ ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
3555
+ } else if (!runsImmediately) {
3556
+ const watchStopHandle = () => {
3557
+ };
3558
+ watchStopHandle.stop = NOOP;
3559
+ watchStopHandle.resume = NOOP;
3560
+ watchStopHandle.pause = NOOP;
3561
+ return watchStopHandle;
3562
+ }
3563
+ }
3564
+ const instance = currentInstance;
3565
+ baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
3566
+ let isPre = false;
3567
+ if (flush === "post") {
3568
+ baseWatchOptions.scheduler = (job) => {
3569
+ queuePostRenderEffect(job, instance && instance.suspense);
3570
+ };
3571
+ } else if (flush !== "sync") {
3572
+ isPre = true;
3573
+ baseWatchOptions.scheduler = (job, isFirstRun) => {
3574
+ if (isFirstRun) {
3575
+ job();
3576
+ } else {
3577
+ queueJob(job);
3578
+ }
3579
+ };
3580
+ }
3581
+ baseWatchOptions.augmentJob = (job) => {
3582
+ if (cb) {
3583
+ job.flags |= 4;
3584
+ }
3585
+ if (isPre) {
3586
+ job.flags |= 2;
3587
+ if (instance) {
3588
+ job.id = instance.uid;
3589
+ job.i = instance;
3590
+ }
3591
+ }
3592
+ };
3593
+ const watchHandle = watch$1(source, cb, baseWatchOptions);
3594
+ if (isInSSRComponentSetup) {
3595
+ if (ssrCleanup) {
3596
+ ssrCleanup.push(watchHandle);
3597
+ } else if (runsImmediately) {
3598
+ watchHandle();
3599
+ }
3600
+ }
3601
+ return watchHandle;
3602
+ }
3603
+ function instanceWatch(source, value, options) {
3604
+ const publicThis = this.proxy;
3605
+ const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
3606
+ let cb;
3607
+ if (isFunction(value)) {
3608
+ cb = value;
3609
+ } else {
3610
+ cb = value.handler;
3611
+ options = value;
3612
+ }
3613
+ const reset = setCurrentInstance(this);
3614
+ const res = doWatch(getter, cb.bind(publicThis), options);
3615
+ reset();
3616
+ return res;
3617
+ }
3618
+ function createPathGetter(ctx, path) {
3619
+ const segments = path.split(".");
3620
+ return () => {
3621
+ let cur = ctx;
3622
+ for (let i = 0; i < segments.length && cur; i++) {
3623
+ cur = cur[segments[i]];
3624
+ }
3625
+ return cur;
3626
+ };
3627
+ }
3628
+
3629
+ const TeleportEndKey = /* @__PURE__ */ Symbol("_vte");
3516
3630
  const isTeleport = (type) => type.__isTeleport;
3517
3631
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
3518
3632
  const isTeleportDeferred = (props) => props && (props.defer || props.defer === "");
@@ -3872,8 +3986,8 @@ function prepareAnchor(target, vnode, createText, insert) {
3872
3986
  return targetAnchor;
3873
3987
  }
3874
3988
 
3875
- const leaveCbKey = Symbol("_leaveCb");
3876
- const enterCbKey$1 = Symbol("_enterCb");
3989
+ const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb");
3990
+ const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb");
3877
3991
  function useTransitionState() {
3878
3992
  const state = {
3879
3993
  isMounted: false,
@@ -5413,7 +5527,9 @@ const KeepAliveImpl = {
5413
5527
  }
5414
5528
  function pruneCache(filter) {
5415
5529
  cache.forEach((vnode, key) => {
5416
- const name = getComponentName(vnode.type);
5530
+ const name = getComponentName(
5531
+ isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type
5532
+ );
5417
5533
  if (name && !filter(name)) {
5418
5534
  pruneCacheEntry(key);
5419
5535
  }
@@ -5680,7 +5796,7 @@ const FILTERS = "filters";
5680
5796
  function resolveComponent(name, maybeSelfReference) {
5681
5797
  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
5682
5798
  }
5683
- const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
5799
+ const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc");
5684
5800
  function resolveDynamicComponent(component) {
5685
5801
  if (isString(component)) {
5686
5802
  return resolveAsset(COMPONENTS, component, false) || component;
@@ -7245,7 +7361,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7245
7361
  return vm;
7246
7362
  }
7247
7363
  }
7248
- Vue.version = `2.6.14-compat:${"3.5.25"}`;
7364
+ Vue.version = `2.6.14-compat:${"3.5.26"}`;
7249
7365
  Vue.config = singletonApp.config;
7250
7366
  Vue.use = (plugin, ...options) => {
7251
7367
  if (plugin && isFunction(plugin.install)) {
@@ -7822,177 +7938,70 @@ If you want to remount the same app, move your app creation logic into a factory
7822
7938
  }
7823
7939
  let currentApp = null;
7824
7940
 
7825
- function provide(key, value) {
7826
- {
7827
- if (!currentInstance || currentInstance.isMounted) {
7828
- warn$1(`provide() can only be used inside setup().`);
7941
+ const compatModelEventPrefix = `onModelCompat:`;
7942
+ const warnedTypes = /* @__PURE__ */ new WeakSet();
7943
+ function convertLegacyVModelProps(vnode) {
7944
+ const { type, shapeFlag, props, dynamicProps } = vnode;
7945
+ const comp = type;
7946
+ if (shapeFlag & 6 && props && "modelValue" in props) {
7947
+ if (!isCompatEnabled(
7948
+ "COMPONENT_V_MODEL",
7949
+ // this is a special case where we want to use the vnode component's
7950
+ // compat config instead of the current rendering instance (which is the
7951
+ // parent of the component that exposes v-model)
7952
+ { type }
7953
+ )) {
7954
+ return;
7829
7955
  }
7830
- }
7831
- if (currentInstance) {
7832
- let provides = currentInstance.provides;
7833
- const parentProvides = currentInstance.parent && currentInstance.parent.provides;
7834
- if (parentProvides === provides) {
7835
- provides = currentInstance.provides = Object.create(parentProvides);
7956
+ if (!warnedTypes.has(comp)) {
7957
+ pushWarningContext(vnode);
7958
+ warnDeprecation(
7959
+ "COMPONENT_V_MODEL",
7960
+ {
7961
+ type,
7962
+ appContext: vnode.ctx && vnode.ctx.appContext || createAppContext()
7963
+ },
7964
+ comp
7965
+ );
7966
+ popWarningContext();
7967
+ warnedTypes.add(comp);
7836
7968
  }
7837
- provides[key] = value;
7838
- }
7839
- }
7840
- function inject(key, defaultValue, treatDefaultAsFactory = false) {
7841
- const instance = getCurrentInstance();
7842
- if (instance || currentApp) {
7843
- let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
7844
- if (provides && key in provides) {
7845
- return provides[key];
7846
- } else if (arguments.length > 1) {
7847
- return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
7848
- } else {
7849
- warn$1(`injection "${String(key)}" not found.`);
7969
+ const model = comp.model || {};
7970
+ applyModelFromMixins(model, comp.mixins);
7971
+ const { prop = "value", event = "input" } = model;
7972
+ if (prop !== "modelValue") {
7973
+ props[prop] = props.modelValue;
7974
+ delete props.modelValue;
7850
7975
  }
7851
- } else {
7852
- warn$1(`inject() can only be used inside setup() or functional components.`);
7853
- }
7854
- }
7855
- function hasInjectionContext() {
7856
- return !!(getCurrentInstance() || currentApp);
7857
- }
7858
-
7859
- const ssrContextKey = Symbol.for("v-scx");
7860
- const useSSRContext = () => {
7861
- {
7862
- const ctx = inject(ssrContextKey);
7863
- if (!ctx) {
7864
- warn$1(
7865
- `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`
7866
- );
7976
+ if (dynamicProps) {
7977
+ dynamicProps[dynamicProps.indexOf("modelValue")] = prop;
7867
7978
  }
7868
- return ctx;
7979
+ props[compatModelEventPrefix + event] = props["onUpdate:modelValue"];
7980
+ delete props["onUpdate:modelValue"];
7869
7981
  }
7870
- };
7871
-
7872
- function watchEffect(effect, options) {
7873
- return doWatch(effect, null, options);
7874
- }
7875
- function watchPostEffect(effect, options) {
7876
- return doWatch(
7877
- effect,
7878
- null,
7879
- extend({}, options, { flush: "post" })
7880
- );
7881
- }
7882
- function watchSyncEffect(effect, options) {
7883
- return doWatch(
7884
- effect,
7885
- null,
7886
- extend({}, options, { flush: "sync" })
7887
- );
7888
7982
  }
7889
- function watch(source, cb, options) {
7890
- if (!isFunction(cb)) {
7891
- warn$1(
7892
- `\`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.`
7893
- );
7983
+ function applyModelFromMixins(model, mixins) {
7984
+ if (mixins) {
7985
+ mixins.forEach((m) => {
7986
+ if (m.model) extend(model, m.model);
7987
+ if (m.mixins) applyModelFromMixins(model, m.mixins);
7988
+ });
7894
7989
  }
7895
- return doWatch(source, cb, options);
7896
7990
  }
7897
- function doWatch(source, cb, options = EMPTY_OBJ) {
7898
- const { immediate, deep, flush, once } = options;
7899
- if (!cb) {
7900
- if (immediate !== void 0) {
7901
- warn$1(
7902
- `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
7903
- );
7904
- }
7905
- if (deep !== void 0) {
7906
- warn$1(
7907
- `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
7908
- );
7909
- }
7910
- if (once !== void 0) {
7911
- warn$1(
7912
- `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
7913
- );
7914
- }
7915
- }
7916
- const baseWatchOptions = extend({}, options);
7917
- baseWatchOptions.onWarn = warn$1;
7918
- const runsImmediately = cb && immediate || !cb && flush !== "post";
7919
- let ssrCleanup;
7920
- if (isInSSRComponentSetup) {
7921
- if (flush === "sync") {
7922
- const ctx = useSSRContext();
7923
- ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
7924
- } else if (!runsImmediately) {
7925
- const watchStopHandle = () => {
7926
- };
7927
- watchStopHandle.stop = NOOP;
7928
- watchStopHandle.resume = NOOP;
7929
- watchStopHandle.pause = NOOP;
7930
- return watchStopHandle;
7931
- }
7932
- }
7933
- const instance = currentInstance;
7934
- baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
7935
- let isPre = false;
7936
- if (flush === "post") {
7937
- baseWatchOptions.scheduler = (job) => {
7938
- queuePostRenderEffect(job, instance && instance.suspense);
7939
- };
7940
- } else if (flush !== "sync") {
7941
- isPre = true;
7942
- baseWatchOptions.scheduler = (job, isFirstRun) => {
7943
- if (isFirstRun) {
7944
- job();
7945
- } else {
7946
- queueJob(job);
7947
- }
7948
- };
7949
- }
7950
- baseWatchOptions.augmentJob = (job) => {
7951
- if (cb) {
7952
- job.flags |= 4;
7953
- }
7954
- if (isPre) {
7955
- job.flags |= 2;
7956
- if (instance) {
7957
- job.id = instance.uid;
7958
- job.i = instance;
7959
- }
7960
- }
7961
- };
7962
- const watchHandle = watch$1(source, cb, baseWatchOptions);
7963
- if (isInSSRComponentSetup) {
7964
- if (ssrCleanup) {
7965
- ssrCleanup.push(watchHandle);
7966
- } else if (runsImmediately) {
7967
- watchHandle();
7968
- }
7991
+ function compatModelEmit(instance, event, args) {
7992
+ if (!isCompatEnabled("COMPONENT_V_MODEL", instance)) {
7993
+ return;
7969
7994
  }
7970
- return watchHandle;
7971
- }
7972
- function instanceWatch(source, value, options) {
7973
- const publicThis = this.proxy;
7974
- const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
7975
- let cb;
7976
- if (isFunction(value)) {
7977
- cb = value;
7978
- } else {
7979
- cb = value.handler;
7980
- options = value;
7995
+ const props = instance.vnode.props;
7996
+ const modelHandler = props && props[compatModelEventPrefix + event];
7997
+ if (modelHandler) {
7998
+ callWithErrorHandling(
7999
+ modelHandler,
8000
+ instance,
8001
+ 6,
8002
+ args
8003
+ );
7981
8004
  }
7982
- const reset = setCurrentInstance(this);
7983
- const res = doWatch(getter, cb.bind(publicThis), options);
7984
- reset();
7985
- return res;
7986
- }
7987
- function createPathGetter(ctx, path) {
7988
- const segments = path.split(".");
7989
- return () => {
7990
- let cur = ctx;
7991
- for (let i = 0; i < segments.length && cur; i++) {
7992
- cur = cur[segments[i]];
7993
- }
7994
- return cur;
7995
- };
7996
8005
  }
7997
8006
 
7998
8007
  function useModel(props, name, options = EMPTY_OBJ) {
@@ -9278,7 +9287,15 @@ function baseCreateRenderer(options, createHydrationFns) {
9278
9287
  } else {
9279
9288
  const el = n2.el = n1.el;
9280
9289
  if (n2.children !== n1.children) {
9281
- hostSetText(el, n2.children);
9290
+ if (isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
9291
+ const childNodes = container.childNodes;
9292
+ const newChild = hostCreateText(n2.children);
9293
+ const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
9294
+ hostInsert(newChild, container, oldChild);
9295
+ hostRemove(oldChild);
9296
+ } else {
9297
+ hostSetText(el, n2.children);
9298
+ }
9282
9299
  }
9283
9300
  }
9284
9301
  };
@@ -9664,7 +9681,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9664
9681
  } else {
9665
9682
  if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
9666
9683
  // of renderSlot() with no valid children
9667
- n1.dynamicChildren) {
9684
+ n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) {
9668
9685
  patchBlockChildren(
9669
9686
  n1.dynamicChildren,
9670
9687
  dynamicChildren,
@@ -10278,8 +10295,8 @@ function baseCreateRenderer(options, createHydrationFns) {
10278
10295
  const nextChild = c2[nextIndex];
10279
10296
  const anchorVNode = c2[nextIndex + 1];
10280
10297
  const anchor = nextIndex + 1 < l2 ? (
10281
- // #13559, fallback to el placeholder for unresolved async component
10282
- anchorVNode.el || anchorVNode.placeholder
10298
+ // #13559, #14173 fallback to el placeholder for unresolved async component
10299
+ anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode)
10283
10300
  ) : parentAnchor;
10284
10301
  if (newIndexToOldIndexMap[i] === 0) {
10285
10302
  patch(
@@ -10544,9 +10561,11 @@ function baseCreateRenderer(options, createHydrationFns) {
10544
10561
  };
10545
10562
  let isFlushing = false;
10546
10563
  const render = (vnode, container, namespace) => {
10564
+ let instance;
10547
10565
  if (vnode == null) {
10548
10566
  if (container._vnode) {
10549
10567
  unmount(container._vnode, null, null, true);
10568
+ instance = container._vnode.component;
10550
10569
  }
10551
10570
  } else {
10552
10571
  patch(
@@ -10562,7 +10581,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10562
10581
  container._vnode = vnode;
10563
10582
  if (!isFlushing) {
10564
10583
  isFlushing = true;
10565
- flushPreFlushCbs();
10584
+ flushPreFlushCbs(instance);
10566
10585
  flushPostFlushCbs();
10567
10586
  isFlushing = false;
10568
10587
  }
@@ -10622,9 +10641,13 @@ function traverseStaticChildren(n1, n2, shallow = false) {
10622
10641
  if (!shallow && c2.patchFlag !== -2)
10623
10642
  traverseStaticChildren(c1, c2);
10624
10643
  }
10625
- if (c2.type === Text && // avoid cached text nodes retaining detached dom nodes
10626
- c2.patchFlag !== -1) {
10627
- c2.el = c1.el;
10644
+ if (c2.type === Text) {
10645
+ if (c2.patchFlag !== -1) {
10646
+ c2.el = c1.el;
10647
+ } else {
10648
+ c2.__elIndex = i + // take fragment start anchor into account
10649
+ (n1.type === Fragment ? 1 : 0);
10650
+ }
10628
10651
  }
10629
10652
  if (c2.type === Comment && !c2.el) {
10630
10653
  c2.el = c1.el;
@@ -10691,6 +10714,16 @@ function invalidateMount(hooks) {
10691
10714
  hooks[i].flags |= 8;
10692
10715
  }
10693
10716
  }
10717
+ function resolveAsyncComponentPlaceholder(anchorVnode) {
10718
+ if (anchorVnode.placeholder) {
10719
+ return anchorVnode.placeholder;
10720
+ }
10721
+ const instance = anchorVnode.component;
10722
+ if (instance) {
10723
+ return resolveAsyncComponentPlaceholder(instance.subTree);
10724
+ }
10725
+ return null;
10726
+ }
10694
10727
 
10695
10728
  const isSuspense = (type) => type.__isSuspense;
10696
10729
  let suspenseId = 0;
@@ -11350,10 +11383,10 @@ function convertLegacyComponent(comp, instance) {
11350
11383
  return comp;
11351
11384
  }
11352
11385
 
11353
- const Fragment = Symbol.for("v-fgt");
11354
- const Text = Symbol.for("v-txt");
11355
- const Comment = Symbol.for("v-cmt");
11356
- const Static = Symbol.for("v-stc");
11386
+ const Fragment = /* @__PURE__ */ Symbol.for("v-fgt");
11387
+ const Text = /* @__PURE__ */ Symbol.for("v-txt");
11388
+ const Comment = /* @__PURE__ */ Symbol.for("v-cmt");
11389
+ const Static = /* @__PURE__ */ Symbol.for("v-stc");
11357
11390
  const blockStack = [];
11358
11391
  let currentBlock = null;
11359
11392
  function openBlock(disableTracking = false) {
@@ -12419,7 +12452,7 @@ function isMemoSame(cached, memo) {
12419
12452
  return true;
12420
12453
  }
12421
12454
 
12422
- const version = "3.5.25";
12455
+ const version = "3.5.26";
12423
12456
  const warn = warn$1 ;
12424
12457
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12425
12458
  const devtools = devtools$1 ;
@@ -12531,7 +12564,7 @@ const nodeOps = {
12531
12564
 
12532
12565
  const TRANSITION = "transition";
12533
12566
  const ANIMATION = "animation";
12534
- const vtcKey = Symbol("_vtc");
12567
+ const vtcKey = /* @__PURE__ */ Symbol("_vtc");
12535
12568
  const DOMTransitionPropsValidators = {
12536
12569
  name: String,
12537
12570
  type: String,
@@ -12861,8 +12894,8 @@ function patchClass(el, value, isSVG) {
12861
12894
  }
12862
12895
  }
12863
12896
 
12864
- const vShowOriginalDisplay = Symbol("_vod");
12865
- const vShowHidden = Symbol("_vsh");
12897
+ const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod");
12898
+ const vShowHidden = /* @__PURE__ */ Symbol("_vsh");
12866
12899
  const vShow = {
12867
12900
  // used for prop mismatch check during hydration
12868
12901
  name: "show",
@@ -12911,7 +12944,7 @@ function initVShowForSSR() {
12911
12944
  };
12912
12945
  }
12913
12946
 
12914
- const CSS_VAR_TEXT = Symbol("CSS_VAR_TEXT" );
12947
+ const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("CSS_VAR_TEXT" );
12915
12948
  function useCssVars(getter) {
12916
12949
  const instance = getCurrentInstance();
12917
12950
  if (!instance) {
@@ -13109,7 +13142,7 @@ function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBoolean
13109
13142
  const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
13110
13143
  function compatCoerceAttr(el, key, value, instance = null) {
13111
13144
  if (isEnumeratedAttr(key)) {
13112
- const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
13145
+ const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
13113
13146
  if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
13114
13147
  "ATTR_ENUMERATED_COERCION",
13115
13148
  instance,
@@ -13205,7 +13238,7 @@ function addEventListener(el, event, handler, options) {
13205
13238
  function removeEventListener(el, event, handler, options) {
13206
13239
  el.removeEventListener(event, handler, options);
13207
13240
  }
13208
- const veiKey = Symbol("_vei");
13241
+ const veiKey = /* @__PURE__ */ Symbol("_vei");
13209
13242
  function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
13210
13243
  const invokers = el[veiKey] || (el[veiKey] = {});
13211
13244
  const existingInvoker = invokers[rawName];
@@ -13843,8 +13876,8 @@ function useCssModule(name = "$style") {
13843
13876
 
13844
13877
  const positionMap = /* @__PURE__ */ new WeakMap();
13845
13878
  const newPositionMap = /* @__PURE__ */ new WeakMap();
13846
- const moveCbKey = Symbol("_moveCb");
13847
- const enterCbKey = Symbol("_enterCb");
13879
+ const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
13880
+ const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
13848
13881
  const decorate = (t) => {
13849
13882
  delete t.props.mode;
13850
13883
  {
@@ -14006,7 +14039,7 @@ function onCompositionEnd(e) {
14006
14039
  target.dispatchEvent(new Event("input"));
14007
14040
  }
14008
14041
  }
14009
- const assignKey = Symbol("_assign");
14042
+ const assignKey = /* @__PURE__ */ Symbol("_assign");
14010
14043
  function castValue(value, trim, number) {
14011
14044
  if (trim) value = value.trim();
14012
14045
  if (number) value = looseToNumber(value);