@vue/compat 3.5.17 → 3.5.19

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.17
2
+ * @vue/compat v3.5.19
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -56,10 +56,10 @@ const isBuiltInDirective = /* @__PURE__ */ makeMap(
56
56
  );
57
57
  const cacheStringFunction = (fn) => {
58
58
  const cache = /* @__PURE__ */ Object.create(null);
59
- return (str) => {
59
+ return ((str) => {
60
60
  const hit = cache[str];
61
61
  return hit || (cache[str] = fn(str));
62
- };
62
+ });
63
63
  };
64
64
  const camelizeRE = /-(\w)/g;
65
65
  const camelize = cacheStringFunction(
@@ -384,6 +384,24 @@ const stringifySymbol = (v, i = "") => {
384
384
  );
385
385
  };
386
386
 
387
+ function normalizeCssVarValue(value) {
388
+ if (value == null) {
389
+ return "initial";
390
+ }
391
+ if (typeof value === "string") {
392
+ return value === "" ? " " : value;
393
+ }
394
+ if (typeof value !== "number" || !Number.isFinite(value)) {
395
+ if (!!(process.env.NODE_ENV !== "production")) {
396
+ console.warn(
397
+ "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:",
398
+ value
399
+ );
400
+ }
401
+ }
402
+ return String(value);
403
+ }
404
+
387
405
  function warn$2(msg, ...args) {
388
406
  console.warn(`[Vue warn] ${msg}`, ...args);
389
407
  }
@@ -1351,7 +1369,13 @@ class MutableReactiveHandler extends BaseReactiveHandler {
1351
1369
  }
1352
1370
  if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
1353
1371
  if (isOldValueReadonly) {
1354
- return false;
1372
+ if (!!(process.env.NODE_ENV !== "production")) {
1373
+ warn$2(
1374
+ `Set operation on key "${String(key)}" failed: target is readonly.`,
1375
+ target[key]
1376
+ );
1377
+ }
1378
+ return true;
1355
1379
  } else {
1356
1380
  oldValue.value = value;
1357
1381
  return true;
@@ -2729,7 +2753,9 @@ function rerender(id, newRender) {
2729
2753
  }
2730
2754
  instance.renderCache = [];
2731
2755
  isHmrUpdating = true;
2732
- instance.update();
2756
+ if (!(instance.job.flags & 8)) {
2757
+ instance.update();
2758
+ }
2733
2759
  isHmrUpdating = false;
2734
2760
  });
2735
2761
  }
@@ -4325,7 +4351,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4325
4351
  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
4326
4352
  const setupState = owner.setupState;
4327
4353
  const rawSetupState = toRaw(setupState);
4328
- const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
4354
+ const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {
4329
4355
  if (!!(process.env.NODE_ENV !== "production")) {
4330
4356
  if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {
4331
4357
  warn$1(
@@ -4338,6 +4364,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4338
4364
  }
4339
4365
  return hasOwn(rawSetupState, key);
4340
4366
  };
4367
+ const canSetRef = (ref2) => {
4368
+ return !!!(process.env.NODE_ENV !== "production") || !knownTemplateRefs.has(ref2);
4369
+ };
4341
4370
  if (oldRef != null && oldRef !== ref) {
4342
4371
  if (isString(oldRef)) {
4343
4372
  refs[oldRef] = null;
@@ -4345,7 +4374,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4345
4374
  setupState[oldRef] = null;
4346
4375
  }
4347
4376
  } else if (isRef(oldRef)) {
4348
- oldRef.value = null;
4377
+ if (canSetRef(oldRef)) {
4378
+ oldRef.value = null;
4379
+ }
4380
+ const oldRawRefAtom = oldRawRef;
4381
+ if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
4349
4382
  }
4350
4383
  }
4351
4384
  if (isFunction(ref)) {
@@ -4356,7 +4389,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4356
4389
  if (_isString || _isRef) {
4357
4390
  const doSet = () => {
4358
4391
  if (rawRef.f) {
4359
- const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;
4392
+ const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
4360
4393
  if (isUnmount) {
4361
4394
  isArray(existing) && remove(existing, refValue);
4362
4395
  } else {
@@ -4367,8 +4400,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4367
4400
  setupState[ref] = refs[ref];
4368
4401
  }
4369
4402
  } else {
4370
- ref.value = [refValue];
4371
- if (rawRef.k) refs[rawRef.k] = ref.value;
4403
+ const newVal = [refValue];
4404
+ if (canSetRef(ref)) {
4405
+ ref.value = newVal;
4406
+ }
4407
+ if (rawRef.k) refs[rawRef.k] = newVal;
4372
4408
  }
4373
4409
  } else if (!existing.includes(refValue)) {
4374
4410
  existing.push(refValue);
@@ -4380,7 +4416,9 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4380
4416
  setupState[ref] = value;
4381
4417
  }
4382
4418
  } else if (_isRef) {
4383
- ref.value = value;
4419
+ if (canSetRef(ref)) {
4420
+ ref.value = value;
4421
+ }
4384
4422
  if (rawRef.k) refs[rawRef.k] = value;
4385
4423
  } else if (!!(process.env.NODE_ENV !== "production")) {
4386
4424
  warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
@@ -5012,10 +5050,8 @@ function resolveCssVars(instance, vnode, expectedMap) {
5012
5050
  if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
5013
5051
  const cssVars = instance.getCssVars();
5014
5052
  for (const key in cssVars) {
5015
- expectedMap.set(
5016
- `--${getEscapedCssVarName(key)}`,
5017
- String(cssVars[key])
5018
- );
5053
+ const value = normalizeCssVarValue(cssVars[key]);
5054
+ expectedMap.set(`--${getEscapedCssVarName(key)}`, value);
5019
5055
  }
5020
5056
  }
5021
5057
  if (vnode === root && instance.parent) {
@@ -5204,16 +5240,19 @@ function defineAsyncComponent(source) {
5204
5240
  __asyncLoader: load,
5205
5241
  __asyncHydrate(el, instance, hydrate) {
5206
5242
  let patched = false;
5207
- const doHydrate = hydrateStrategy ? () => {
5208
- const performHydrate = () => {
5209
- if (!!(process.env.NODE_ENV !== "production") && patched) {
5243
+ (instance.bu || (instance.bu = [])).push(() => patched = true);
5244
+ const performHydrate = () => {
5245
+ if (patched) {
5246
+ if (!!(process.env.NODE_ENV !== "production")) {
5210
5247
  warn$1(
5211
- `Skipping lazy hydration for component '${getComponentName(resolvedComp)}': it was updated before lazy hydration performed.`
5248
+ `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`
5212
5249
  );
5213
- return;
5214
5250
  }
5215
- hydrate();
5216
- };
5251
+ return;
5252
+ }
5253
+ hydrate();
5254
+ };
5255
+ const doHydrate = hydrateStrategy ? () => {
5217
5256
  const teardown = hydrateStrategy(
5218
5257
  performHydrate,
5219
5258
  (cb) => forEachElement(el, cb)
@@ -5221,8 +5260,7 @@ function defineAsyncComponent(source) {
5221
5260
  if (teardown) {
5222
5261
  (instance.bum || (instance.bum = [])).push(teardown);
5223
5262
  }
5224
- (instance.u || (instance.u = [])).push(() => patched = true);
5225
- } : hydrate;
5263
+ } : performHydrate;
5226
5264
  if (resolvedComp) {
5227
5265
  doHydrate();
5228
5266
  } else {
@@ -6489,10 +6527,10 @@ const PublicInstanceProxyHandlers = {
6489
6527
  return true;
6490
6528
  },
6491
6529
  has({
6492
- _: { data, setupState, accessCache, ctx, appContext, propsOptions }
6530
+ _: { data, setupState, accessCache, ctx, appContext, propsOptions, type }
6493
6531
  }, key) {
6494
- let normalizedProps;
6495
- return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);
6532
+ let normalizedProps, cssModules;
6533
+ return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
6496
6534
  },
6497
6535
  defineProperty(target, key, descriptor) {
6498
6536
  if (descriptor.get != null) {
@@ -6644,15 +6682,15 @@ function withDefaults(props, defaults) {
6644
6682
  return null;
6645
6683
  }
6646
6684
  function useSlots() {
6647
- return getContext().slots;
6685
+ return getContext("useSlots").slots;
6648
6686
  }
6649
6687
  function useAttrs() {
6650
- return getContext().attrs;
6688
+ return getContext("useAttrs").attrs;
6651
6689
  }
6652
- function getContext() {
6690
+ function getContext(calledFunctionName) {
6653
6691
  const i = getCurrentInstance();
6654
6692
  if (!!(process.env.NODE_ENV !== "production") && !i) {
6655
- warn$1(`useContext() called without active instance.`);
6693
+ warn$1(`${calledFunctionName}() called without active instance.`);
6656
6694
  }
6657
6695
  return i.setupContext || (i.setupContext = createSetupContext(i));
6658
6696
  }
@@ -6913,7 +6951,8 @@ function applyOptions(instance) {
6913
6951
  expose.forEach((key) => {
6914
6952
  Object.defineProperty(exposed, key, {
6915
6953
  get: () => publicThis[key],
6916
- set: (val) => publicThis[key] = val
6954
+ set: (val) => publicThis[key] = val,
6955
+ enumerable: true
6917
6956
  });
6918
6957
  });
6919
6958
  } else if (!instance.exposed) {
@@ -7238,7 +7277,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7238
7277
  return vm;
7239
7278
  }
7240
7279
  }
7241
- Vue.version = `2.6.14-compat:${"3.5.17"}`;
7280
+ Vue.version = `2.6.14-compat:${"3.5.19"}`;
7242
7281
  Vue.config = singletonApp.config;
7243
7282
  Vue.use = (plugin, ...options) => {
7244
7283
  if (plugin && isFunction(plugin.install)) {
@@ -7252,22 +7291,22 @@ function createCompatVue$1(createApp, createSingletonApp) {
7252
7291
  singletonApp.mixin(m);
7253
7292
  return Vue;
7254
7293
  };
7255
- Vue.component = (name, comp) => {
7294
+ Vue.component = ((name, comp) => {
7256
7295
  if (comp) {
7257
7296
  singletonApp.component(name, comp);
7258
7297
  return Vue;
7259
7298
  } else {
7260
7299
  return singletonApp.component(name);
7261
7300
  }
7262
- };
7263
- Vue.directive = (name, dir) => {
7301
+ });
7302
+ Vue.directive = ((name, dir) => {
7264
7303
  if (dir) {
7265
7304
  singletonApp.directive(name, dir);
7266
7305
  return Vue;
7267
7306
  } else {
7268
7307
  return singletonApp.directive(name);
7269
7308
  }
7270
- };
7309
+ });
7271
7310
  Vue.options = { _base: Vue };
7272
7311
  let cid = 1;
7273
7312
  Vue.cid = cid;
@@ -7330,14 +7369,14 @@ function createCompatVue$1(createApp, createSingletonApp) {
7330
7369
  assertCompatEnabled("GLOBAL_OBSERVABLE", null);
7331
7370
  return reactive(target);
7332
7371
  };
7333
- Vue.filter = (name, filter) => {
7372
+ Vue.filter = ((name, filter) => {
7334
7373
  if (filter) {
7335
7374
  singletonApp.filter(name, filter);
7336
7375
  return Vue;
7337
7376
  } else {
7338
7377
  return singletonApp.filter(name);
7339
7378
  }
7340
- };
7379
+ });
7341
7380
  const util = {
7342
7381
  warn: !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP,
7343
7382
  extend,
@@ -7832,7 +7871,7 @@ function provide(key, value) {
7832
7871
  }
7833
7872
  }
7834
7873
  function inject(key, defaultValue, treatDefaultAsFactory = false) {
7835
- const instance = currentInstance || currentRenderingInstance;
7874
+ const instance = getCurrentInstance();
7836
7875
  if (instance || currentApp) {
7837
7876
  let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
7838
7877
  if (provides && key in provides) {
@@ -7847,7 +7886,7 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
7847
7886
  }
7848
7887
  }
7849
7888
  function hasInjectionContext() {
7850
- return !!(currentInstance || currentRenderingInstance || currentApp);
7889
+ return !!(getCurrentInstance() || currentApp);
7851
7890
  }
7852
7891
 
7853
7892
  function createPropsDefaultThis(instance, rawProps, propKey) {
@@ -8333,7 +8372,7 @@ function isBoolean(...args) {
8333
8372
  return args.some((elem) => elem.toLowerCase() === "boolean");
8334
8373
  }
8335
8374
 
8336
- const isInternalKey = (key) => key[0] === "_" || key === "$stable";
8375
+ const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
8337
8376
  const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
8338
8377
  const normalizeSlot = (key, rawSlot, ctx) => {
8339
8378
  if (rawSlot._n) {
@@ -8387,8 +8426,6 @@ const assignSlots = (slots, children, optimized) => {
8387
8426
  const initSlots = (instance, children, optimized) => {
8388
8427
  const slots = instance.slots = createInternalObject();
8389
8428
  if (instance.vnode.shapeFlag & 32) {
8390
- const cacheIndexes = children.__;
8391
- if (cacheIndexes) def(slots, "__", cacheIndexes, true);
8392
8429
  const type = children._;
8393
8430
  if (type) {
8394
8431
  assignSlots(slots, children, optimized);
@@ -8449,12 +8486,10 @@ function endMeasure(instance, type) {
8449
8486
  if (instance.appContext.config.performance && isSupported()) {
8450
8487
  const startTag = `vue-${type}-${instance.uid}`;
8451
8488
  const endTag = startTag + `:end`;
8489
+ const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`;
8452
8490
  perf.mark(endTag);
8453
- perf.measure(
8454
- `<${formatComponentName(instance, instance.type)}> ${type}`,
8455
- startTag,
8456
- endTag
8457
- );
8491
+ perf.measure(measureName, startTag, endTag);
8492
+ perf.clearMeasures(measureName);
8458
8493
  perf.clearMarks(startTag);
8459
8494
  perf.clearMarks(endTag);
8460
8495
  }
@@ -9114,6 +9149,7 @@ function baseCreateRenderer(options, createHydrationFns) {
9114
9149
  if (!initialVNode.el) {
9115
9150
  const placeholder = instance.subTree = createVNode(Comment);
9116
9151
  processCommentNode(null, placeholder, container, anchor);
9152
+ initialVNode.placeholder = placeholder.el;
9117
9153
  }
9118
9154
  } else {
9119
9155
  setupRenderEffect(
@@ -9639,7 +9675,11 @@ function baseCreateRenderer(options, createHydrationFns) {
9639
9675
  for (i = toBePatched - 1; i >= 0; i--) {
9640
9676
  const nextIndex = s2 + i;
9641
9677
  const nextChild = c2[nextIndex];
9642
- const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
9678
+ const anchorVNode = c2[nextIndex + 1];
9679
+ const anchor = nextIndex + 1 < l2 ? (
9680
+ // #13559, fallback to el placeholder for unresolved async component
9681
+ anchorVNode.el || anchorVNode.placeholder
9682
+ ) : parentAnchor;
9643
9683
  if (newIndexToOldIndexMap[i] === 0) {
9644
9684
  patch(
9645
9685
  null,
@@ -9704,6 +9744,12 @@ function baseCreateRenderer(options, createHydrationFns) {
9704
9744
  }
9705
9745
  };
9706
9746
  const performLeave = () => {
9747
+ if (el._isLeaving) {
9748
+ el[leaveCbKey](
9749
+ true
9750
+ /* cancelled */
9751
+ );
9752
+ }
9707
9753
  leave(el, () => {
9708
9754
  remove2();
9709
9755
  afterLeave && afterLeave();
@@ -9849,27 +9895,12 @@ function baseCreateRenderer(options, createHydrationFns) {
9849
9895
  if (!!(process.env.NODE_ENV !== "production") && instance.type.__hmrId) {
9850
9896
  unregisterHMR(instance);
9851
9897
  }
9852
- const {
9853
- bum,
9854
- scope,
9855
- job,
9856
- subTree,
9857
- um,
9858
- m,
9859
- a,
9860
- parent,
9861
- slots: { __: slotCacheKeys }
9862
- } = instance;
9898
+ const { bum, scope, job, subTree, um, m, a } = instance;
9863
9899
  invalidateMount(m);
9864
9900
  invalidateMount(a);
9865
9901
  if (bum) {
9866
9902
  invokeArrayFns(bum);
9867
9903
  }
9868
- if (parent && isArray(slotCacheKeys)) {
9869
- slotCacheKeys.forEach((v) => {
9870
- parent.renderCache[v] = void 0;
9871
- });
9872
- }
9873
9904
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) {
9874
9905
  instance.emit("hook:beforeDestroy");
9875
9906
  }
@@ -9890,12 +9921,6 @@ function baseCreateRenderer(options, createHydrationFns) {
9890
9921
  queuePostRenderEffect(() => {
9891
9922
  instance.isUnmounted = true;
9892
9923
  }, parentSuspense);
9893
- if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {
9894
- parentSuspense.deps--;
9895
- if (parentSuspense.deps === 0) {
9896
- parentSuspense.resolve();
9897
- }
9898
- }
9899
9924
  if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) {
9900
9925
  devtoolsComponentRemoved(instance);
9901
9926
  }
@@ -9996,7 +10021,8 @@ function traverseStaticChildren(n1, n2, shallow = false) {
9996
10021
  if (!shallow && c2.patchFlag !== -2)
9997
10022
  traverseStaticChildren(c1, c2);
9998
10023
  }
9999
- if (c2.type === Text) {
10024
+ if (c2.type === Text && // avoid cached text nodes retaining detached dom nodes
10025
+ c2.patchFlag !== -1) {
10000
10026
  c2.el = c1.el;
10001
10027
  }
10002
10028
  if (c2.type === Comment && !c2.el) {
@@ -11634,6 +11660,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
11634
11660
  suspense: vnode.suspense,
11635
11661
  ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
11636
11662
  ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
11663
+ placeholder: vnode.placeholder,
11637
11664
  el: vnode.el,
11638
11665
  anchor: vnode.anchor,
11639
11666
  ctx: vnode.ctx,
@@ -12454,7 +12481,7 @@ function isMemoSame(cached, memo) {
12454
12481
  return true;
12455
12482
  }
12456
12483
 
12457
- const version = "3.5.17";
12484
+ const version = "3.5.19";
12458
12485
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
12459
12486
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12460
12487
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -12931,7 +12958,7 @@ const vShow = {
12931
12958
  setDisplay(el, value);
12932
12959
  }
12933
12960
  };
12934
- if (!!(process.env.NODE_ENV !== "production")) {
12961
+ if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {
12935
12962
  vShow.name = "show";
12936
12963
  }
12937
12964
  function setDisplay(el, value) {
@@ -13011,8 +13038,9 @@ function setVarsOnNode(el, vars) {
13011
13038
  const style = el.style;
13012
13039
  let cssText = "";
13013
13040
  for (const key in vars) {
13014
- style.setProperty(`--${key}`, vars[key]);
13015
- cssText += `--${key}: ${vars[key]};`;
13041
+ const value = normalizeCssVarValue(vars[key]);
13042
+ style.setProperty(`--${key}`, value);
13043
+ cssText += `--${key}: ${value};`;
13016
13044
  }
13017
13045
  style[CSS_VAR_TEXT] = cssText;
13018
13046
  }
@@ -13398,10 +13426,10 @@ function defineCustomElement(options, extraOptions, _createApp) {
13398
13426
  VueCustomElement.def = Comp;
13399
13427
  return VueCustomElement;
13400
13428
  }
13401
- /*! #__NO_SIDE_EFFECTS__ */
13402
- const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {
13429
+
13430
+ const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {
13403
13431
  return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);
13404
- };
13432
+ });
13405
13433
  const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
13406
13434
  };
13407
13435
  class VueElement extends BaseClass {
@@ -14271,13 +14299,13 @@ const modifierGuards = {
14271
14299
  const withModifiers = (fn, modifiers) => {
14272
14300
  const cache = fn._withMods || (fn._withMods = {});
14273
14301
  const cacheKey = modifiers.join(".");
14274
- return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {
14302
+ return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {
14275
14303
  for (let i = 0; i < modifiers.length; i++) {
14276
14304
  const guard = modifierGuards[modifiers[i]];
14277
14305
  if (guard && guard(event, modifiers)) return;
14278
14306
  }
14279
14307
  return fn(event, ...args);
14280
- });
14308
+ }));
14281
14309
  };
14282
14310
  const keyNames = {
14283
14311
  esc: "escape",
@@ -14307,7 +14335,7 @@ const withKeys = (fn, modifiers) => {
14307
14335
  }
14308
14336
  const cache = fn._withKeys || (fn._withKeys = {});
14309
14337
  const cacheKey = modifiers.join(".");
14310
- return cache[cacheKey] || (cache[cacheKey] = (event) => {
14338
+ return cache[cacheKey] || (cache[cacheKey] = ((event) => {
14311
14339
  if (!("key" in event)) {
14312
14340
  return;
14313
14341
  }
@@ -14337,7 +14365,7 @@ const withKeys = (fn, modifiers) => {
14337
14365
  }
14338
14366
  }
14339
14367
  }
14340
- });
14368
+ }));
14341
14369
  };
14342
14370
 
14343
14371
  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
@@ -14351,13 +14379,13 @@ function ensureHydrationRenderer() {
14351
14379
  enabledHydration = true;
14352
14380
  return renderer;
14353
14381
  }
14354
- const render = (...args) => {
14382
+ const render = ((...args) => {
14355
14383
  ensureRenderer().render(...args);
14356
- };
14357
- const hydrate = (...args) => {
14384
+ });
14385
+ const hydrate = ((...args) => {
14358
14386
  ensureHydrationRenderer().hydrate(...args);
14359
- };
14360
- const createApp = (...args) => {
14387
+ });
14388
+ const createApp = ((...args) => {
14361
14389
  const app = ensureRenderer().createApp(...args);
14362
14390
  if (!!(process.env.NODE_ENV !== "production")) {
14363
14391
  injectNativeTagCheck(app);
@@ -14394,8 +14422,8 @@ const createApp = (...args) => {
14394
14422
  return proxy;
14395
14423
  };
14396
14424
  return app;
14397
- };
14398
- const createSSRApp = (...args) => {
14425
+ });
14426
+ const createSSRApp = ((...args) => {
14399
14427
  const app = ensureHydrationRenderer().createApp(...args);
14400
14428
  if (!!(process.env.NODE_ENV !== "production")) {
14401
14429
  injectNativeTagCheck(app);
@@ -14409,7 +14437,7 @@ const createSSRApp = (...args) => {
14409
14437
  }
14410
14438
  };
14411
14439
  return app;
14412
- };
14440
+ });
14413
14441
  function resolveRootNamespace(container) {
14414
14442
  if (container instanceof SVGElement) {
14415
14443
  return "svg";
@@ -15909,7 +15937,7 @@ function isCoreComponent(tag) {
15909
15937
  return BASE_TRANSITION;
15910
15938
  }
15911
15939
  }
15912
- const nonIdentifierRE = /^\d|[^\$\w\xA0-\uFFFF]/;
15940
+ const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/;
15913
15941
  const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);
15914
15942
  const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/;
15915
15943
  const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/;
@@ -16021,6 +16049,9 @@ function hasDynamicKeyVBind(node) {
16021
16049
  function isText$1(node) {
16022
16050
  return node.type === 5 || node.type === 2;
16023
16051
  }
16052
+ function isVPre(p) {
16053
+ return p.type === 7 && p.name === "pre";
16054
+ }
16024
16055
  function isVSlot(p) {
16025
16056
  return p.type === 7 && p.name === "slot";
16026
16057
  }
@@ -16279,7 +16310,7 @@ const tokenizer = new Tokenizer(stack, {
16279
16310
  ondirarg(start, end) {
16280
16311
  if (start === end) return;
16281
16312
  const arg = getSlice(start, end);
16282
- if (inVPre) {
16313
+ if (inVPre && !isVPre(currentProp)) {
16283
16314
  currentProp.name += arg;
16284
16315
  setLocEnd(currentProp.nameLoc, end);
16285
16316
  } else {
@@ -16294,7 +16325,7 @@ const tokenizer = new Tokenizer(stack, {
16294
16325
  },
16295
16326
  ondirmodifier(start, end) {
16296
16327
  const mod = getSlice(start, end);
16297
- if (inVPre) {
16328
+ if (inVPre && !isVPre(currentProp)) {
16298
16329
  currentProp.name += "." + mod;
16299
16330
  setLocEnd(currentProp.nameLoc, end);
16300
16331
  } else if (currentProp.name === "slot") {
@@ -16922,6 +16953,11 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
16922
16953
  } else if (child.type === 12) {
16923
16954
  const constantType = doNotHoistNode ? 0 : getConstantType(child, context);
16924
16955
  if (constantType >= 2) {
16956
+ if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) {
16957
+ child.codegenNode.arguments.push(
16958
+ -1 + (!!(process.env.NODE_ENV !== "production") ? ` /* ${PatchFlagNames[-1]} */` : ``)
16959
+ );
16960
+ }
16925
16961
  toCache.push(child);
16926
16962
  continue;
16927
16963
  }
@@ -16950,7 +16986,6 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
16950
16986
  }
16951
16987
  }
16952
16988
  let cachedAsArray = false;
16953
- const slotCacheKeys = [];
16954
16989
  if (toCache.length === children.length && node.type === 1) {
16955
16990
  if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) {
16956
16991
  node.codegenNode.children = getCacheExpression(
@@ -16960,7 +16995,6 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
16960
16995
  } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {
16961
16996
  const slot = getSlotNode(node.codegenNode, "default");
16962
16997
  if (slot) {
16963
- slotCacheKeys.push(context.cached.length);
16964
16998
  slot.returns = getCacheExpression(
16965
16999
  createArrayExpression(slot.returns)
16966
17000
  );
@@ -16970,7 +17004,6 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
16970
17004
  const slotName = findDir(node, "slot", true);
16971
17005
  const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);
16972
17006
  if (slot) {
16973
- slotCacheKeys.push(context.cached.length);
16974
17007
  slot.returns = getCacheExpression(
16975
17008
  createArrayExpression(slot.returns)
16976
17009
  );
@@ -16980,23 +17013,12 @@ function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
16980
17013
  }
16981
17014
  if (!cachedAsArray) {
16982
17015
  for (const child of toCache) {
16983
- slotCacheKeys.push(context.cached.length);
16984
17016
  child.codegenNode = context.cache(child.codegenNode);
16985
17017
  }
16986
17018
  }
16987
- if (slotCacheKeys.length && node.type === 1 && node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {
16988
- node.codegenNode.children.properties.push(
16989
- createObjectProperty(
16990
- `__`,
16991
- createSimpleExpression(JSON.stringify(slotCacheKeys), false)
16992
- )
16993
- );
16994
- }
16995
17019
  function getCacheExpression(value) {
16996
17020
  const exp = context.cache(value);
16997
- if (inFor && context.hmr) {
16998
- exp.needArraySpread = true;
16999
- }
17021
+ exp.needArraySpread = true;
17000
17022
  return exp;
17001
17023
  }
17002
17024
  function getSlotNode(node2, name) {
@@ -18195,7 +18217,7 @@ function processIf(node, dir, context, processCodegen) {
18195
18217
  continue;
18196
18218
  }
18197
18219
  if (sibling && sibling.type === 9) {
18198
- if (dir.name === "else-if" && sibling.branches[sibling.branches.length - 1].condition === void 0) {
18220
+ if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) {
18199
18221
  context.onError(
18200
18222
  createCompilerError(30, node.loc)
18201
18223
  );
@@ -18374,7 +18396,7 @@ const transformBind = (dir, _node, context) => {
18374
18396
  arg.children.unshift(`(`);
18375
18397
  arg.children.push(`) || ""`);
18376
18398
  } else if (!arg.isStatic) {
18377
- arg.content = `${arg.content} || ""`;
18399
+ arg.content = arg.content ? `${arg.content} || ""` : `""`;
18378
18400
  }
18379
18401
  if (modifiers.some((mod) => mod.content === "camel")) {
18380
18402
  if (arg.type === 4) {
@@ -19893,7 +19915,7 @@ const seen = /* @__PURE__ */ new WeakSet();
19893
19915
  const transformMemo = (node, context) => {
19894
19916
  if (node.type === 1) {
19895
19917
  const dir = findDir(node, "memo");
19896
- if (!dir || seen.has(node)) {
19918
+ if (!dir || seen.has(node) || context.inSSR) {
19897
19919
  return;
19898
19920
  }
19899
19921
  seen.add(node);