@vue/compat 3.3.4 → 3.3.5

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.
@@ -34,7 +34,7 @@ const isString = (val) => typeof val === "string";
34
34
  const isSymbol = (val) => typeof val === "symbol";
35
35
  const isObject = (val) => val !== null && typeof val === "object";
36
36
  const isPromise = (val) => {
37
- return isObject(val) && isFunction(val.then) && isFunction(val.catch);
37
+ return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
38
38
  };
39
39
  const objectToString = Object.prototype.toString;
40
40
  const toTypeString = (value) => objectToString.call(value);
@@ -65,12 +65,13 @@ const hyphenateRE = /\B([A-Z])/g;
65
65
  const hyphenate = cacheStringFunction(
66
66
  (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
67
67
  );
68
- const capitalize = cacheStringFunction(
69
- (str) => str.charAt(0).toUpperCase() + str.slice(1)
70
- );
71
- const toHandlerKey = cacheStringFunction(
72
- (str) => str ? `on${capitalize(str)}` : ``
73
- );
68
+ const capitalize = cacheStringFunction((str) => {
69
+ return str.charAt(0).toUpperCase() + str.slice(1);
70
+ });
71
+ const toHandlerKey = cacheStringFunction((str) => {
72
+ const s = str ? `on${capitalize(str)}` : ``;
73
+ return s;
74
+ });
74
75
  const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
75
76
  const invokeArrayFns = (fns, arg) => {
76
77
  for (let i = 0; i < fns.length; i++) {
@@ -97,8 +98,8 @@ const getGlobalThis = () => {
97
98
  return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
98
99
  };
99
100
 
100
- const GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console";
101
- const isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);
101
+ const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console";
102
+ const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
102
103
 
103
104
  function normalizeStyle(value) {
104
105
  if (isArray(value)) {
@@ -113,9 +114,7 @@ function normalizeStyle(value) {
113
114
  }
114
115
  }
115
116
  return res;
116
- } else if (isString(value)) {
117
- return value;
118
- } else if (isObject(value)) {
117
+ } else if (isString(value) || isObject(value)) {
119
118
  return value;
120
119
  }
121
120
  }
@@ -462,7 +461,7 @@ function cleanupEffect(effect2) {
462
461
  }
463
462
  }
464
463
  function effect(fn, options) {
465
- if (fn.effect) {
464
+ if (fn.effect instanceof ReactiveEffect) {
466
465
  fn = fn.effect.fn;
467
466
  }
468
467
  const _effect = new ReactiveEffect(fn);
@@ -632,10 +631,6 @@ const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`
632
631
  const builtInSymbols = new Set(
633
632
  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
634
633
  );
635
- const get$1 = /* @__PURE__ */ createGetter();
636
- const shallowGet = /* @__PURE__ */ createGetter(false, true);
637
- const readonlyGet = /* @__PURE__ */ createGetter(true);
638
- const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);
639
634
  const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
640
635
  function createArrayInstrumentations() {
641
636
  const instrumentations = {};
@@ -668,8 +663,13 @@ function hasOwnProperty(key) {
668
663
  track(obj, "has", key);
669
664
  return obj.hasOwnProperty(key);
670
665
  }
671
- function createGetter(isReadonly2 = false, shallow = false) {
672
- return function get2(target, key, receiver) {
666
+ class BaseReactiveHandler {
667
+ constructor(_isReadonly = false, _shallow = false) {
668
+ this._isReadonly = _isReadonly;
669
+ this._shallow = _shallow;
670
+ }
671
+ get(target, key, receiver) {
672
+ const isReadonly2 = this._isReadonly, shallow = this._shallow;
673
673
  if (key === "__v_isReactive") {
674
674
  return !isReadonly2;
675
675
  } else if (key === "__v_isReadonly") {
@@ -705,17 +705,18 @@ function createGetter(isReadonly2 = false, shallow = false) {
705
705
  return isReadonly2 ? readonly(res) : reactive(res);
706
706
  }
707
707
  return res;
708
- };
708
+ }
709
709
  }
710
- const set$1 = /* @__PURE__ */ createSetter();
711
- const shallowSet = /* @__PURE__ */ createSetter(true);
712
- function createSetter(shallow = false) {
713
- return function set2(target, key, value, receiver) {
710
+ class MutableReactiveHandler extends BaseReactiveHandler {
711
+ constructor(shallow = false) {
712
+ super(false, shallow);
713
+ }
714
+ set(target, key, value, receiver) {
714
715
  let oldValue = target[key];
715
716
  if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
716
717
  return false;
717
718
  }
718
- if (!shallow) {
719
+ if (!this._shallow) {
719
720
  if (!isShallow(value) && !isReadonly(value)) {
720
721
  oldValue = toRaw(oldValue);
721
722
  value = toRaw(value);
@@ -735,37 +736,36 @@ function createSetter(shallow = false) {
735
736
  }
736
737
  }
737
738
  return result;
738
- };
739
- }
740
- function deleteProperty(target, key) {
741
- const hadKey = hasOwn(target, key);
742
- const oldValue = target[key];
743
- const result = Reflect.deleteProperty(target, key);
744
- if (result && hadKey) {
745
- trigger(target, "delete", key, void 0, oldValue);
746
739
  }
747
- return result;
748
- }
749
- function has$1(target, key) {
750
- const result = Reflect.has(target, key);
751
- if (!isSymbol(key) || !builtInSymbols.has(key)) {
752
- track(target, "has", key);
740
+ deleteProperty(target, key) {
741
+ const hadKey = hasOwn(target, key);
742
+ const oldValue = target[key];
743
+ const result = Reflect.deleteProperty(target, key);
744
+ if (result && hadKey) {
745
+ trigger(target, "delete", key, void 0, oldValue);
746
+ }
747
+ return result;
748
+ }
749
+ has(target, key) {
750
+ const result = Reflect.has(target, key);
751
+ if (!isSymbol(key) || !builtInSymbols.has(key)) {
752
+ track(target, "has", key);
753
+ }
754
+ return result;
755
+ }
756
+ ownKeys(target) {
757
+ track(
758
+ target,
759
+ "iterate",
760
+ isArray(target) ? "length" : ITERATE_KEY
761
+ );
762
+ return Reflect.ownKeys(target);
753
763
  }
754
- return result;
755
- }
756
- function ownKeys(target) {
757
- track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY);
758
- return Reflect.ownKeys(target);
759
764
  }
760
- const mutableHandlers = {
761
- get: get$1,
762
- set: set$1,
763
- deleteProperty,
764
- has: has$1,
765
- ownKeys
766
- };
767
- const readonlyHandlers = {
768
- get: readonlyGet,
765
+ class ReadonlyReactiveHandler extends BaseReactiveHandler {
766
+ constructor(shallow = false) {
767
+ super(true, shallow);
768
+ }
769
769
  set(target, key) {
770
770
  if (!!(process.env.NODE_ENV !== "production")) {
771
771
  warn$1(
@@ -774,7 +774,7 @@ const readonlyHandlers = {
774
774
  );
775
775
  }
776
776
  return true;
777
- },
777
+ }
778
778
  deleteProperty(target, key) {
779
779
  if (!!(process.env.NODE_ENV !== "production")) {
780
780
  warn$1(
@@ -784,22 +784,13 @@ const readonlyHandlers = {
784
784
  }
785
785
  return true;
786
786
  }
787
- };
788
- const shallowReactiveHandlers = /* @__PURE__ */ extend(
789
- {},
790
- mutableHandlers,
791
- {
792
- get: shallowGet,
793
- set: shallowSet
794
- }
795
- );
796
- const shallowReadonlyHandlers = /* @__PURE__ */ extend(
797
- {},
798
- readonlyHandlers,
799
- {
800
- get: shallowReadonlyGet
801
- }
787
+ }
788
+ const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
789
+ const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
790
+ const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(
791
+ true
802
792
  );
793
+ const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
803
794
 
804
795
  const toShallow = (value) => value;
805
796
  const getProto = (v) => Reflect.getPrototypeOf(v);
@@ -808,7 +799,7 @@ function get(target, key, isReadonly = false, isShallow = false) {
808
799
  const rawTarget = toRaw(target);
809
800
  const rawKey = toRaw(key);
810
801
  if (!isReadonly) {
811
- if (key !== rawKey) {
802
+ if (hasChanged(key, rawKey)) {
812
803
  track(rawTarget, "get", key);
813
804
  }
814
805
  track(rawTarget, "get", rawKey);
@@ -828,7 +819,7 @@ function has(key, isReadonly = false) {
828
819
  const rawTarget = toRaw(target);
829
820
  const rawKey = toRaw(key);
830
821
  if (!isReadonly) {
831
- if (key !== rawKey) {
822
+ if (hasChanged(key, rawKey)) {
832
823
  track(rawTarget, "has", key);
833
824
  }
834
825
  track(rawTarget, "has", rawKey);
@@ -1362,11 +1353,7 @@ function toRef(source, key, defaultValue) {
1362
1353
  }
1363
1354
  function propertyToRef(source, key, defaultValue) {
1364
1355
  const val = source[key];
1365
- return isRef(val) ? val : new ObjectRefImpl(
1366
- source,
1367
- key,
1368
- defaultValue
1369
- );
1356
+ return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
1370
1357
  }
1371
1358
 
1372
1359
  class ComputedRefImpl {
@@ -3688,9 +3675,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
3688
3675
  }
3689
3676
  if (cb) {
3690
3677
  const newValue = effect.run();
3691
- if (deep || forceTrigger || (isMultiSource ? newValue.some(
3692
- (v, i) => hasChanged(v, oldValue[i])
3693
- ) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled("WATCH_ARRAY", instance)) {
3678
+ if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled("WATCH_ARRAY", instance)) {
3694
3679
  if (cleanup) {
3695
3680
  cleanup();
3696
3681
  }
@@ -3866,6 +3851,8 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
3866
3851
  }
3867
3852
  }
3868
3853
 
3854
+ const leaveCbKey = Symbol("_leaveCb");
3855
+ const enterCbKey$1 = Symbol("_enterCb");
3869
3856
  function useTransitionState() {
3870
3857
  const state = {
3871
3858
  isMounted: false,
@@ -3988,9 +3975,9 @@ const BaseTransitionImpl = {
3988
3975
  oldInnerChild
3989
3976
  );
3990
3977
  leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3991
- el._leaveCb = () => {
3978
+ el[leaveCbKey] = () => {
3992
3979
  earlyRemove();
3993
- el._leaveCb = void 0;
3980
+ el[leaveCbKey] = void 0;
3994
3981
  delete enterHooks.delayedLeave;
3995
3982
  };
3996
3983
  enterHooks.delayedLeave = delayedLeave;
@@ -4064,15 +4051,15 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4064
4051
  return;
4065
4052
  }
4066
4053
  }
4067
- if (el._leaveCb) {
4068
- el._leaveCb(
4054
+ if (el[leaveCbKey]) {
4055
+ el[leaveCbKey](
4069
4056
  true
4070
4057
  /* cancelled */
4071
4058
  );
4072
4059
  }
4073
4060
  const leavingVNode = leavingVNodesCache[key];
4074
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {
4075
- leavingVNode.el._leaveCb();
4061
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4062
+ leavingVNode.el[leaveCbKey]();
4076
4063
  }
4077
4064
  callHook(hook, [el]);
4078
4065
  },
@@ -4090,7 +4077,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4090
4077
  }
4091
4078
  }
4092
4079
  let called = false;
4093
- const done = el._enterCb = (cancelled) => {
4080
+ const done = el[enterCbKey$1] = (cancelled) => {
4094
4081
  if (called)
4095
4082
  return;
4096
4083
  called = true;
@@ -4102,7 +4089,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4102
4089
  if (hooks.delayedLeave) {
4103
4090
  hooks.delayedLeave();
4104
4091
  }
4105
- el._enterCb = void 0;
4092
+ el[enterCbKey$1] = void 0;
4106
4093
  };
4107
4094
  if (hook) {
4108
4095
  callAsyncHook(hook, [el, done]);
@@ -4112,8 +4099,8 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4112
4099
  },
4113
4100
  leave(el, remove) {
4114
4101
  const key2 = String(vnode.key);
4115
- if (el._enterCb) {
4116
- el._enterCb(
4102
+ if (el[enterCbKey$1]) {
4103
+ el[enterCbKey$1](
4117
4104
  true
4118
4105
  /* cancelled */
4119
4106
  );
@@ -4123,7 +4110,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4123
4110
  }
4124
4111
  callHook(onBeforeLeave, [el]);
4125
4112
  let called = false;
4126
- const done = el._leaveCb = (cancelled) => {
4113
+ const done = el[leaveCbKey] = (cancelled) => {
4127
4114
  if (called)
4128
4115
  return;
4129
4116
  called = true;
@@ -4133,7 +4120,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4133
4120
  } else {
4134
4121
  callHook(onAfterLeave, [el]);
4135
4122
  }
4136
- el._leaveCb = void 0;
4123
+ el[leaveCbKey] = void 0;
4137
4124
  if (leavingVNodesCache[key2] === vnode) {
4138
4125
  delete leavingVNodesCache[key2];
4139
4126
  }
@@ -4195,6 +4182,8 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4195
4182
  return ret;
4196
4183
  }
4197
4184
 
4185
+ /*! #__NO_SIDE_EFFECTS__ */
4186
+ // @__NO_SIDE_EFFECTS__
4198
4187
  function defineComponent(options, extraOptions) {
4199
4188
  return isFunction(options) ? (
4200
4189
  // #8326: extend call and options.name access are considered side-effects
@@ -4204,6 +4193,8 @@ function defineComponent(options, extraOptions) {
4204
4193
  }
4205
4194
 
4206
4195
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4196
+ /*! #__NO_SIDE_EFFECTS__ */
4197
+ // @__NO_SIDE_EFFECTS__
4207
4198
  function defineAsyncComponent(source) {
4208
4199
  if (isFunction(source)) {
4209
4200
  source = { loader: source };
@@ -5222,6 +5213,7 @@ function legacyPrependModifier(value, symbol) {
5222
5213
  function installCompatInstanceProperties(map) {
5223
5214
  const set = (target, key, val) => {
5224
5215
  target[key] = val;
5216
+ return target[key];
5225
5217
  };
5226
5218
  const del = (target, key) => {
5227
5219
  delete target[key];
@@ -5499,7 +5491,7 @@ const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(
5499
5491
  return PublicInstanceProxyHandlers.get(target, key, target);
5500
5492
  },
5501
5493
  has(_, key) {
5502
- const has = key[0] !== "_" && !isGloballyWhitelisted(key);
5494
+ const has = key[0] !== "_" && !isGloballyAllowed(key);
5503
5495
  if (!!(process.env.NODE_ENV !== "production") && !has && PublicInstanceProxyHandlers.has(_, key)) {
5504
5496
  warn(
5505
5497
  `Property ${JSON.stringify(
@@ -6238,7 +6230,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6238
6230
  return vm;
6239
6231
  }
6240
6232
  }
6241
- Vue.version = `2.6.14-compat:${"3.3.4"}`;
6233
+ Vue.version = `2.6.14-compat:${"3.3.5"}`;
6242
6234
  Vue.config = singletonApp.config;
6243
6235
  Vue.use = (p, ...options) => {
6244
6236
  if (p && isFunction(p.install)) {
@@ -6647,7 +6639,7 @@ function createAppAPI(render, hydrate) {
6647
6639
  },
6648
6640
  set() {
6649
6641
  warn(
6650
- `app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.`
6642
+ `app.config.unwrapInjectedRef has been deprecated. 3.3 now always unwraps injected refs in Options API.`
6651
6643
  );
6652
6644
  }
6653
6645
  });
@@ -6736,10 +6728,7 @@ function createAppAPI(render, hydrate) {
6736
6728
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6737
6729
  );
6738
6730
  }
6739
- const vnode = createVNode(
6740
- rootComponent,
6741
- rootProps
6742
- );
6731
+ const vnode = createVNode(rootComponent, rootProps);
6743
6732
  vnode.appContext = context;
6744
6733
  if (!!(process.env.NODE_ENV !== "production")) {
6745
6734
  context.reload = () => {
@@ -7562,8 +7551,10 @@ function createHydrationFunctions(rendererInternals) {
7562
7551
  hasMismatch = true;
7563
7552
  !!(process.env.NODE_ENV !== "production") && warn(
7564
7553
  `Hydration text mismatch:
7565
- - Client: ${JSON.stringify(node.data)}
7566
- - Server: ${JSON.stringify(vnode.children)}`
7554
+ - Server rendered: ${JSON.stringify(
7555
+ node.data
7556
+ )}
7557
+ - Client rendered: ${JSON.stringify(vnode.children)}`
7567
7558
  );
7568
7559
  node.data = vnode.children;
7569
7560
  }
@@ -7766,8 +7757,8 @@ function createHydrationFunctions(rendererInternals) {
7766
7757
  hasMismatch = true;
7767
7758
  !!(process.env.NODE_ENV !== "production") && warn(
7768
7759
  `Hydration text content mismatch in <${vnode.type}>:
7769
- - Client: ${el.textContent}
7770
- - Server: ${vnode.children}`
7760
+ - Server rendered: ${el.textContent}
7761
+ - Client rendered: ${vnode.children}`
7771
7762
  );
7772
7763
  el.textContent = vnode.children;
7773
7764
  }
@@ -9583,6 +9574,10 @@ const TeleportImpl = {
9583
9574
  internals,
9584
9575
  1
9585
9576
  );
9577
+ } else {
9578
+ if (n2.props && n1.props && n2.props.to !== n1.props.to) {
9579
+ n2.props.to = n1.props.to;
9580
+ }
9586
9581
  }
9587
9582
  } else {
9588
9583
  if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
@@ -10450,9 +10445,12 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
10450
10445
  if (__VUE_OPTIONS_API__ && !skipOptions) {
10451
10446
  setCurrentInstance(instance);
10452
10447
  pauseTracking();
10453
- applyOptions(instance);
10454
- resetTracking();
10455
- unsetCurrentInstance();
10448
+ try {
10449
+ applyOptions(instance);
10450
+ } finally {
10451
+ resetTracking();
10452
+ unsetCurrentInstance();
10453
+ }
10456
10454
  }
10457
10455
  if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) {
10458
10456
  if (!compile && Component.template) {
@@ -10832,7 +10830,7 @@ function isMemoSame(cached, memo) {
10832
10830
  return true;
10833
10831
  }
10834
10832
 
10835
- const version = "3.3.4";
10833
+ const version = "3.3.5";
10836
10834
  const _ssrUtils = {
10837
10835
  createComponentInstance,
10838
10836
  setupComponent,
@@ -10919,934 +10917,996 @@ const nodeOps = {
10919
10917
  }
10920
10918
  };
10921
10919
 
10922
- function patchClass(el, value, isSVG) {
10923
- const transitionClasses = el._vtc;
10924
- if (transitionClasses) {
10925
- value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
10926
- }
10927
- if (value == null) {
10928
- el.removeAttribute("class");
10929
- } else if (isSVG) {
10930
- el.setAttribute("class", value);
10931
- } else {
10932
- el.className = value;
10933
- }
10920
+ const TRANSITION = "transition";
10921
+ const ANIMATION = "animation";
10922
+ const vtcKey = Symbol("_vtc");
10923
+ const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
10924
+ Transition.displayName = "Transition";
10925
+ {
10926
+ Transition.__isBuiltIn = true;
10934
10927
  }
10935
-
10936
- function patchStyle(el, prev, next) {
10937
- const style = el.style;
10938
- const isCssString = isString(next);
10939
- if (next && !isCssString) {
10940
- if (prev && !isString(prev)) {
10941
- for (const key in prev) {
10942
- if (next[key] == null) {
10943
- setStyle(style, key, "");
10944
- }
10945
- }
10946
- }
10947
- for (const key in next) {
10948
- setStyle(style, key, next[key]);
10949
- }
10950
- } else {
10951
- const currentDisplay = style.display;
10952
- if (isCssString) {
10953
- if (prev !== next) {
10954
- style.cssText = next;
10955
- }
10956
- } else if (prev) {
10957
- el.removeAttribute("style");
10958
- }
10959
- if ("_vod" in el) {
10960
- style.display = currentDisplay;
10961
- }
10928
+ const DOMTransitionPropsValidators = {
10929
+ name: String,
10930
+ type: String,
10931
+ css: {
10932
+ type: Boolean,
10933
+ default: true
10934
+ },
10935
+ duration: [String, Number, Object],
10936
+ enterFromClass: String,
10937
+ enterActiveClass: String,
10938
+ enterToClass: String,
10939
+ appearFromClass: String,
10940
+ appearActiveClass: String,
10941
+ appearToClass: String,
10942
+ leaveFromClass: String,
10943
+ leaveActiveClass: String,
10944
+ leaveToClass: String
10945
+ };
10946
+ const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
10947
+ {},
10948
+ BaseTransitionPropsValidators,
10949
+ DOMTransitionPropsValidators
10950
+ );
10951
+ const callHook = (hook, args = []) => {
10952
+ if (isArray(hook)) {
10953
+ hook.forEach((h2) => h2(...args));
10954
+ } else if (hook) {
10955
+ hook(...args);
10962
10956
  }
10963
- }
10964
- const semicolonRE = /[^\\];\s*$/;
10965
- const importantRE = /\s*!important$/;
10966
- function setStyle(style, name, val) {
10967
- if (isArray(val)) {
10968
- val.forEach((v) => setStyle(style, name, v));
10969
- } else {
10970
- if (val == null)
10971
- val = "";
10972
- if (!!(process.env.NODE_ENV !== "production")) {
10973
- if (semicolonRE.test(val)) {
10974
- warn(
10975
- `Unexpected semicolon at the end of '${name}' style value: '${val}'`
10976
- );
10977
- }
10978
- }
10979
- if (name.startsWith("--")) {
10980
- style.setProperty(name, val);
10981
- } else {
10982
- const prefixed = autoPrefix(style, name);
10983
- if (importantRE.test(val)) {
10984
- style.setProperty(
10985
- hyphenate(prefixed),
10986
- val.replace(importantRE, ""),
10987
- "important"
10988
- );
10989
- } else {
10990
- style[prefixed] = val;
10991
- }
10957
+ };
10958
+ const hasExplicitCallback = (hook) => {
10959
+ return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
10960
+ };
10961
+ function resolveTransitionProps(rawProps) {
10962
+ const baseProps = {};
10963
+ for (const key in rawProps) {
10964
+ if (!(key in DOMTransitionPropsValidators)) {
10965
+ baseProps[key] = rawProps[key];
10992
10966
  }
10993
10967
  }
10994
- }
10995
- const prefixes = ["Webkit", "Moz", "ms"];
10996
- const prefixCache = {};
10997
- function autoPrefix(style, rawName) {
10998
- const cached = prefixCache[rawName];
10999
- if (cached) {
11000
- return cached;
11001
- }
11002
- let name = camelize(rawName);
11003
- if (name !== "filter" && name in style) {
11004
- return prefixCache[rawName] = name;
11005
- }
11006
- name = capitalize(name);
11007
- for (let i = 0; i < prefixes.length; i++) {
11008
- const prefixed = prefixes[i] + name;
11009
- if (prefixed in style) {
11010
- return prefixCache[rawName] = prefixed;
11011
- }
10968
+ if (rawProps.css === false) {
10969
+ return baseProps;
11012
10970
  }
11013
- return rawName;
11014
- }
11015
-
11016
- const xlinkNS = "http://www.w3.org/1999/xlink";
11017
- function patchAttr(el, key, value, isSVG, instance) {
11018
- if (isSVG && key.startsWith("xlink:")) {
11019
- if (value == null) {
11020
- el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
11021
- } else {
11022
- el.setAttributeNS(xlinkNS, key, value);
11023
- }
11024
- } else {
11025
- if (compatCoerceAttr(el, key, value, instance)) {
11026
- return;
10971
+ const {
10972
+ name = "v",
10973
+ type,
10974
+ duration,
10975
+ enterFromClass = `${name}-enter-from`,
10976
+ enterActiveClass = `${name}-enter-active`,
10977
+ enterToClass = `${name}-enter-to`,
10978
+ appearFromClass = enterFromClass,
10979
+ appearActiveClass = enterActiveClass,
10980
+ appearToClass = enterToClass,
10981
+ leaveFromClass = `${name}-leave-from`,
10982
+ leaveActiveClass = `${name}-leave-active`,
10983
+ leaveToClass = `${name}-leave-to`
10984
+ } = rawProps;
10985
+ const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
10986
+ let legacyEnterFromClass;
10987
+ let legacyAppearFromClass;
10988
+ let legacyLeaveFromClass;
10989
+ if (legacyClassEnabled) {
10990
+ const toLegacyClass = (cls) => cls.replace(/-from$/, "");
10991
+ if (!rawProps.enterFromClass) {
10992
+ legacyEnterFromClass = toLegacyClass(enterFromClass);
11027
10993
  }
11028
- const isBoolean = isSpecialBooleanAttr(key);
11029
- if (value == null || isBoolean && !includeBooleanAttr(value)) {
11030
- el.removeAttribute(key);
11031
- } else {
11032
- el.setAttribute(key, isBoolean ? "" : value);
10994
+ if (!rawProps.appearFromClass) {
10995
+ legacyAppearFromClass = toLegacyClass(appearFromClass);
11033
10996
  }
11034
- }
11035
- }
11036
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
11037
- function compatCoerceAttr(el, key, value, instance = null) {
11038
- if (isEnumeratedAttr(key)) {
11039
- const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
11040
- if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
11041
- "ATTR_ENUMERATED_COERCION",
11042
- instance,
11043
- key,
11044
- value,
11045
- v2CoercedValue
11046
- )) {
11047
- el.setAttribute(key, v2CoercedValue);
11048
- return true;
10997
+ if (!rawProps.leaveFromClass) {
10998
+ legacyLeaveFromClass = toLegacyClass(leaveFromClass);
11049
10999
  }
11050
- } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
11051
- "ATTR_FALSE_VALUE",
11052
- instance,
11053
- key
11054
- )) {
11055
- el.removeAttribute(key);
11056
- return true;
11057
11000
  }
11058
- return false;
11059
- }
11060
-
11061
- function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11062
- if (key === "innerHTML" || key === "textContent") {
11063
- if (prevChildren) {
11064
- unmountChildren(prevChildren, parentComponent, parentSuspense);
11065
- }
11066
- el[key] = value == null ? "" : value;
11067
- return;
11068
- }
11069
- const tag = el.tagName;
11070
- if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
11071
- !tag.includes("-")) {
11072
- el._value = value;
11073
- const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
11074
- const newValue = value == null ? "" : value;
11075
- if (oldValue !== newValue) {
11076
- el.value = newValue;
11077
- }
11078
- if (value == null) {
11079
- el.removeAttribute(key);
11080
- }
11081
- return;
11082
- }
11083
- let needRemove = false;
11084
- if (value === "" || value == null) {
11085
- const type = typeof el[key];
11086
- if (type === "boolean") {
11087
- value = includeBooleanAttr(value);
11088
- } else if (value == null && type === "string") {
11089
- value = "";
11090
- needRemove = true;
11091
- } else if (type === "number") {
11092
- value = 0;
11093
- needRemove = true;
11094
- }
11095
- } else {
11096
- if (value === false && compatUtils.isCompatEnabled(
11097
- "ATTR_FALSE_VALUE",
11098
- parentComponent
11099
- )) {
11100
- const type = typeof el[key];
11101
- if (type === "string" || type === "number") {
11102
- !!(process.env.NODE_ENV !== "production") && compatUtils.warnDeprecation(
11103
- "ATTR_FALSE_VALUE",
11104
- parentComponent,
11105
- key
11106
- );
11107
- value = type === "number" ? 0 : "";
11108
- needRemove = true;
11001
+ const durations = normalizeDuration(duration);
11002
+ const enterDuration = durations && durations[0];
11003
+ const leaveDuration = durations && durations[1];
11004
+ const {
11005
+ onBeforeEnter,
11006
+ onEnter,
11007
+ onEnterCancelled,
11008
+ onLeave,
11009
+ onLeaveCancelled,
11010
+ onBeforeAppear = onBeforeEnter,
11011
+ onAppear = onEnter,
11012
+ onAppearCancelled = onEnterCancelled
11013
+ } = baseProps;
11014
+ const finishEnter = (el, isAppear, done) => {
11015
+ removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
11016
+ removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
11017
+ done && done();
11018
+ };
11019
+ const finishLeave = (el, done) => {
11020
+ el._isLeaving = false;
11021
+ removeTransitionClass(el, leaveFromClass);
11022
+ removeTransitionClass(el, leaveToClass);
11023
+ removeTransitionClass(el, leaveActiveClass);
11024
+ done && done();
11025
+ };
11026
+ const makeEnterHook = (isAppear) => {
11027
+ return (el, done) => {
11028
+ const hook = isAppear ? onAppear : onEnter;
11029
+ const resolve = () => finishEnter(el, isAppear, done);
11030
+ callHook(hook, [el, resolve]);
11031
+ nextFrame(() => {
11032
+ removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
11033
+ if (legacyClassEnabled) {
11034
+ const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
11035
+ if (legacyClass) {
11036
+ removeTransitionClass(el, legacyClass);
11037
+ }
11038
+ }
11039
+ addTransitionClass(el, isAppear ? appearToClass : enterToClass);
11040
+ if (!hasExplicitCallback(hook)) {
11041
+ whenTransitionEnds(el, type, enterDuration, resolve);
11042
+ }
11043
+ });
11044
+ };
11045
+ };
11046
+ return extend(baseProps, {
11047
+ onBeforeEnter(el) {
11048
+ callHook(onBeforeEnter, [el]);
11049
+ addTransitionClass(el, enterFromClass);
11050
+ if (legacyClassEnabled && legacyEnterFromClass) {
11051
+ addTransitionClass(el, legacyEnterFromClass);
11109
11052
  }
11053
+ addTransitionClass(el, enterActiveClass);
11054
+ },
11055
+ onBeforeAppear(el) {
11056
+ callHook(onBeforeAppear, [el]);
11057
+ addTransitionClass(el, appearFromClass);
11058
+ if (legacyClassEnabled && legacyAppearFromClass) {
11059
+ addTransitionClass(el, legacyAppearFromClass);
11060
+ }
11061
+ addTransitionClass(el, appearActiveClass);
11062
+ },
11063
+ onEnter: makeEnterHook(false),
11064
+ onAppear: makeEnterHook(true),
11065
+ onLeave(el, done) {
11066
+ el._isLeaving = true;
11067
+ const resolve = () => finishLeave(el, done);
11068
+ addTransitionClass(el, leaveFromClass);
11069
+ if (legacyClassEnabled && legacyLeaveFromClass) {
11070
+ addTransitionClass(el, legacyLeaveFromClass);
11071
+ }
11072
+ forceReflow();
11073
+ addTransitionClass(el, leaveActiveClass);
11074
+ nextFrame(() => {
11075
+ if (!el._isLeaving) {
11076
+ return;
11077
+ }
11078
+ removeTransitionClass(el, leaveFromClass);
11079
+ if (legacyClassEnabled && legacyLeaveFromClass) {
11080
+ removeTransitionClass(el, legacyLeaveFromClass);
11081
+ }
11082
+ addTransitionClass(el, leaveToClass);
11083
+ if (!hasExplicitCallback(onLeave)) {
11084
+ whenTransitionEnds(el, type, leaveDuration, resolve);
11085
+ }
11086
+ });
11087
+ callHook(onLeave, [el, resolve]);
11088
+ },
11089
+ onEnterCancelled(el) {
11090
+ finishEnter(el, false);
11091
+ callHook(onEnterCancelled, [el]);
11092
+ },
11093
+ onAppearCancelled(el) {
11094
+ finishEnter(el, true);
11095
+ callHook(onAppearCancelled, [el]);
11096
+ },
11097
+ onLeaveCancelled(el) {
11098
+ finishLeave(el);
11099
+ callHook(onLeaveCancelled, [el]);
11110
11100
  }
11101
+ });
11102
+ }
11103
+ function normalizeDuration(duration) {
11104
+ if (duration == null) {
11105
+ return null;
11106
+ } else if (isObject(duration)) {
11107
+ return [NumberOf(duration.enter), NumberOf(duration.leave)];
11108
+ } else {
11109
+ const n = NumberOf(duration);
11110
+ return [n, n];
11111
11111
  }
11112
- try {
11113
- el[key] = value;
11114
- } catch (e) {
11115
- if (!!(process.env.NODE_ENV !== "production") && !needRemove) {
11116
- warn(
11117
- `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11118
- e
11119
- );
11120
- }
11121
- }
11122
- needRemove && el.removeAttribute(key);
11123
11112
  }
11124
-
11125
- function addEventListener(el, event, handler, options) {
11126
- el.addEventListener(event, handler, options);
11113
+ function NumberOf(val) {
11114
+ const res = toNumber(val);
11115
+ if (!!(process.env.NODE_ENV !== "production")) {
11116
+ assertNumber(res, "<transition> explicit duration");
11117
+ }
11118
+ return res;
11127
11119
  }
11128
- function removeEventListener(el, event, handler, options) {
11129
- el.removeEventListener(event, handler, options);
11120
+ function addTransitionClass(el, cls) {
11121
+ cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11122
+ (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
11130
11123
  }
11131
- function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11132
- const invokers = el._vei || (el._vei = {});
11133
- const existingInvoker = invokers[rawName];
11134
- if (nextValue && existingInvoker) {
11135
- existingInvoker.value = nextValue;
11136
- } else {
11137
- const [name, options] = parseName(rawName);
11138
- if (nextValue) {
11139
- const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11140
- addEventListener(el, name, invoker, options);
11141
- } else if (existingInvoker) {
11142
- removeEventListener(el, name, existingInvoker, options);
11143
- invokers[rawName] = void 0;
11124
+ function removeTransitionClass(el, cls) {
11125
+ cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11126
+ const _vtc = el[vtcKey];
11127
+ if (_vtc) {
11128
+ _vtc.delete(cls);
11129
+ if (!_vtc.size) {
11130
+ el[vtcKey] = void 0;
11144
11131
  }
11145
11132
  }
11146
11133
  }
11147
- const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11148
- function parseName(name) {
11149
- let options;
11150
- if (optionsModifierRE.test(name)) {
11151
- options = {};
11152
- let m;
11153
- while (m = name.match(optionsModifierRE)) {
11154
- name = name.slice(0, name.length - m[0].length);
11155
- options[m[0].toLowerCase()] = true;
11134
+ function nextFrame(cb) {
11135
+ requestAnimationFrame(() => {
11136
+ requestAnimationFrame(cb);
11137
+ });
11138
+ }
11139
+ let endId = 0;
11140
+ function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11141
+ const id = el._endId = ++endId;
11142
+ const resolveIfNotStale = () => {
11143
+ if (id === el._endId) {
11144
+ resolve();
11156
11145
  }
11146
+ };
11147
+ if (explicitTimeout) {
11148
+ return setTimeout(resolveIfNotStale, explicitTimeout);
11157
11149
  }
11158
- const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11159
- return [event, options];
11160
- }
11161
- let cachedNow = 0;
11162
- const p = /* @__PURE__ */ Promise.resolve();
11163
- const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11164
- function createInvoker(initialValue, instance) {
11165
- const invoker = (e) => {
11166
- if (!e._vts) {
11167
- e._vts = Date.now();
11168
- } else if (e._vts <= invoker.attached) {
11169
- return;
11150
+ const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11151
+ if (!type) {
11152
+ return resolve();
11153
+ }
11154
+ const endEvent = type + "end";
11155
+ let ended = 0;
11156
+ const end = () => {
11157
+ el.removeEventListener(endEvent, onEnd);
11158
+ resolveIfNotStale();
11159
+ };
11160
+ const onEnd = (e) => {
11161
+ if (e.target === el && ++ended >= propCount) {
11162
+ end();
11170
11163
  }
11171
- callWithAsyncErrorHandling(
11172
- patchStopImmediatePropagation(e, invoker.value),
11173
- instance,
11174
- 5,
11175
- [e]
11176
- );
11177
11164
  };
11178
- invoker.value = initialValue;
11179
- invoker.attached = getNow();
11180
- return invoker;
11165
+ setTimeout(() => {
11166
+ if (ended < propCount) {
11167
+ end();
11168
+ }
11169
+ }, timeout + 1);
11170
+ el.addEventListener(endEvent, onEnd);
11181
11171
  }
11182
- function patchStopImmediatePropagation(e, value) {
11183
- if (isArray(value)) {
11184
- const originalStop = e.stopImmediatePropagation;
11185
- e.stopImmediatePropagation = () => {
11186
- originalStop.call(e);
11187
- e._stopped = true;
11188
- };
11189
- return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11172
+ function getTransitionInfo(el, expectedType) {
11173
+ const styles = window.getComputedStyle(el);
11174
+ const getStyleProperties = (key) => (styles[key] || "").split(", ");
11175
+ const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
11176
+ const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
11177
+ const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11178
+ const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11179
+ const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11180
+ const animationTimeout = getTimeout(animationDelays, animationDurations);
11181
+ let type = null;
11182
+ let timeout = 0;
11183
+ let propCount = 0;
11184
+ if (expectedType === TRANSITION) {
11185
+ if (transitionTimeout > 0) {
11186
+ type = TRANSITION;
11187
+ timeout = transitionTimeout;
11188
+ propCount = transitionDurations.length;
11189
+ }
11190
+ } else if (expectedType === ANIMATION) {
11191
+ if (animationTimeout > 0) {
11192
+ type = ANIMATION;
11193
+ timeout = animationTimeout;
11194
+ propCount = animationDurations.length;
11195
+ }
11190
11196
  } else {
11191
- return value;
11197
+ timeout = Math.max(transitionTimeout, animationTimeout);
11198
+ type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
11199
+ propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
11200
+ }
11201
+ const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
11202
+ getStyleProperties(`${TRANSITION}Property`).toString()
11203
+ );
11204
+ return {
11205
+ type,
11206
+ timeout,
11207
+ propCount,
11208
+ hasTransform
11209
+ };
11210
+ }
11211
+ function getTimeout(delays, durations) {
11212
+ while (delays.length < durations.length) {
11213
+ delays = delays.concat(delays);
11192
11214
  }
11215
+ return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11216
+ }
11217
+ function toMs(s) {
11218
+ if (s === "auto")
11219
+ return 0;
11220
+ return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11221
+ }
11222
+ function forceReflow() {
11223
+ return document.body.offsetHeight;
11193
11224
  }
11194
11225
 
11195
- const nativeOnRE = /^on[a-z]/;
11196
- const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11197
- if (key === "class") {
11198
- patchClass(el, nextValue, isSVG);
11199
- } else if (key === "style") {
11200
- patchStyle(el, prevValue, nextValue);
11201
- } else if (isOn(key)) {
11202
- if (!isModelListener(key)) {
11203
- patchEvent(el, key, prevValue, nextValue, parentComponent);
11204
- }
11205
- } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11206
- patchDOMProp(
11207
- el,
11208
- key,
11209
- nextValue,
11210
- prevChildren,
11211
- parentComponent,
11212
- parentSuspense,
11213
- unmountChildren
11214
- );
11226
+ function patchClass(el, value, isSVG) {
11227
+ const transitionClasses = el[vtcKey];
11228
+ if (transitionClasses) {
11229
+ value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
11230
+ }
11231
+ if (value == null) {
11232
+ el.removeAttribute("class");
11233
+ } else if (isSVG) {
11234
+ el.setAttribute("class", value);
11215
11235
  } else {
11216
- if (key === "true-value") {
11217
- el._trueValue = nextValue;
11218
- } else if (key === "false-value") {
11219
- el._falseValue = nextValue;
11220
- }
11221
- patchAttr(el, key, nextValue, isSVG, parentComponent);
11236
+ el.className = value;
11222
11237
  }
11223
- };
11224
- function shouldSetAsProp(el, key, value, isSVG) {
11225
- if (isSVG) {
11226
- if (key === "innerHTML" || key === "textContent") {
11227
- return true;
11238
+ }
11239
+
11240
+ const vShowOldKey = Symbol("_vod");
11241
+ const vShow = {
11242
+ beforeMount(el, { value }, { transition }) {
11243
+ el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
11244
+ if (transition && value) {
11245
+ transition.beforeEnter(el);
11246
+ } else {
11247
+ setDisplay(el, value);
11228
11248
  }
11229
- if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11230
- return true;
11249
+ },
11250
+ mounted(el, { value }, { transition }) {
11251
+ if (transition && value) {
11252
+ transition.enter(el);
11231
11253
  }
11232
- return false;
11233
- }
11234
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
11235
- return false;
11236
- }
11237
- if (key === "form") {
11238
- return false;
11239
- }
11240
- if (key === "list" && el.tagName === "INPUT") {
11241
- return false;
11242
- }
11243
- if (key === "type" && el.tagName === "TEXTAREA") {
11244
- return false;
11245
- }
11246
- if (nativeOnRE.test(key) && isString(value)) {
11247
- return false;
11254
+ },
11255
+ updated(el, { value, oldValue }, { transition }) {
11256
+ if (!value === !oldValue)
11257
+ return;
11258
+ if (transition) {
11259
+ if (value) {
11260
+ transition.beforeEnter(el);
11261
+ setDisplay(el, true);
11262
+ transition.enter(el);
11263
+ } else {
11264
+ transition.leave(el, () => {
11265
+ setDisplay(el, false);
11266
+ });
11267
+ }
11268
+ } else {
11269
+ setDisplay(el, value);
11270
+ }
11271
+ },
11272
+ beforeUnmount(el, { value }) {
11273
+ setDisplay(el, value);
11248
11274
  }
11249
- return key in el;
11275
+ };
11276
+ function setDisplay(el, value) {
11277
+ el.style.display = value ? el[vShowOldKey] : "none";
11278
+ }
11279
+ function initVShowForSSR() {
11280
+ vShow.getSSRProps = ({ value }) => {
11281
+ if (!value) {
11282
+ return { style: { display: "none" } };
11283
+ }
11284
+ };
11250
11285
  }
11251
11286
 
11252
- function defineCustomElement(options, hydrate2) {
11253
- const Comp = defineComponent(options);
11254
- class VueCustomElement extends VueElement {
11255
- constructor(initialProps) {
11256
- super(Comp, initialProps, hydrate2);
11287
+ function patchStyle(el, prev, next) {
11288
+ const style = el.style;
11289
+ const isCssString = isString(next);
11290
+ if (next && !isCssString) {
11291
+ if (prev && !isString(prev)) {
11292
+ for (const key in prev) {
11293
+ if (next[key] == null) {
11294
+ setStyle(style, key, "");
11295
+ }
11296
+ }
11297
+ }
11298
+ for (const key in next) {
11299
+ setStyle(style, key, next[key]);
11300
+ }
11301
+ } else {
11302
+ const currentDisplay = style.display;
11303
+ if (isCssString) {
11304
+ if (prev !== next) {
11305
+ style.cssText = next;
11306
+ }
11307
+ } else if (prev) {
11308
+ el.removeAttribute("style");
11309
+ }
11310
+ if (vShowOldKey in el) {
11311
+ style.display = currentDisplay;
11257
11312
  }
11258
11313
  }
11259
- VueCustomElement.def = Comp;
11260
- return VueCustomElement;
11261
11314
  }
11262
- const defineSSRCustomElement = (options) => {
11263
- return defineCustomElement(options, hydrate);
11264
- };
11265
- const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11266
- };
11267
- class VueElement extends BaseClass {
11268
- constructor(_def, _props = {}, hydrate2) {
11269
- super();
11270
- this._def = _def;
11271
- this._props = _props;
11272
- /**
11273
- * @internal
11274
- */
11275
- this._instance = null;
11276
- this._connected = false;
11277
- this._resolved = false;
11278
- this._numberProps = null;
11279
- if (this.shadowRoot && hydrate2) {
11280
- hydrate2(this._createVNode(), this.shadowRoot);
11281
- } else {
11282
- if (!!(process.env.NODE_ENV !== "production") && this.shadowRoot) {
11315
+ const semicolonRE = /[^\\];\s*$/;
11316
+ const importantRE = /\s*!important$/;
11317
+ function setStyle(style, name, val) {
11318
+ if (isArray(val)) {
11319
+ val.forEach((v) => setStyle(style, name, v));
11320
+ } else {
11321
+ if (val == null)
11322
+ val = "";
11323
+ if (!!(process.env.NODE_ENV !== "production")) {
11324
+ if (semicolonRE.test(val)) {
11283
11325
  warn(
11284
- `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11326
+ `Unexpected semicolon at the end of '${name}' style value: '${val}'`
11285
11327
  );
11286
11328
  }
11287
- this.attachShadow({ mode: "open" });
11288
- if (!this._def.__asyncLoader) {
11289
- this._resolveProps(this._def);
11290
- }
11291
11329
  }
11292
- }
11293
- connectedCallback() {
11294
- this._connected = true;
11295
- if (!this._instance) {
11296
- if (this._resolved) {
11297
- this._update();
11330
+ if (name.startsWith("--")) {
11331
+ style.setProperty(name, val);
11332
+ } else {
11333
+ const prefixed = autoPrefix(style, name);
11334
+ if (importantRE.test(val)) {
11335
+ style.setProperty(
11336
+ hyphenate(prefixed),
11337
+ val.replace(importantRE, ""),
11338
+ "important"
11339
+ );
11298
11340
  } else {
11299
- this._resolveDef();
11341
+ style[prefixed] = val;
11300
11342
  }
11301
11343
  }
11302
11344
  }
11303
- disconnectedCallback() {
11304
- this._connected = false;
11305
- nextTick(() => {
11306
- if (!this._connected) {
11307
- render(null, this.shadowRoot);
11308
- this._instance = null;
11309
- }
11310
- });
11345
+ }
11346
+ const prefixes = ["Webkit", "Moz", "ms"];
11347
+ const prefixCache = {};
11348
+ function autoPrefix(style, rawName) {
11349
+ const cached = prefixCache[rawName];
11350
+ if (cached) {
11351
+ return cached;
11311
11352
  }
11312
- /**
11313
- * resolve inner component definition (handle possible async component)
11314
- */
11315
- _resolveDef() {
11316
- this._resolved = true;
11317
- for (let i = 0; i < this.attributes.length; i++) {
11318
- this._setAttr(this.attributes[i].name);
11353
+ let name = camelize(rawName);
11354
+ if (name !== "filter" && name in style) {
11355
+ return prefixCache[rawName] = name;
11356
+ }
11357
+ name = capitalize(name);
11358
+ for (let i = 0; i < prefixes.length; i++) {
11359
+ const prefixed = prefixes[i] + name;
11360
+ if (prefixed in style) {
11361
+ return prefixCache[rawName] = prefixed;
11319
11362
  }
11320
- new MutationObserver((mutations) => {
11321
- for (const m of mutations) {
11322
- this._setAttr(m.attributeName);
11323
- }
11324
- }).observe(this, { attributes: true });
11325
- const resolve = (def, isAsync = false) => {
11326
- const { props, styles } = def;
11327
- let numberProps;
11328
- if (props && !isArray(props)) {
11329
- for (const key in props) {
11330
- const opt = props[key];
11331
- if (opt === Number || opt && opt.type === Number) {
11332
- if (key in this._props) {
11333
- this._props[key] = toNumber(this._props[key]);
11334
- }
11335
- (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11336
- }
11337
- }
11338
- }
11339
- this._numberProps = numberProps;
11340
- if (isAsync) {
11341
- this._resolveProps(def);
11342
- }
11343
- this._applyStyles(styles);
11344
- this._update();
11345
- };
11346
- const asyncDef = this._def.__asyncLoader;
11347
- if (asyncDef) {
11348
- asyncDef().then((def) => resolve(def, true));
11363
+ }
11364
+ return rawName;
11365
+ }
11366
+
11367
+ const xlinkNS = "http://www.w3.org/1999/xlink";
11368
+ function patchAttr(el, key, value, isSVG, instance) {
11369
+ if (isSVG && key.startsWith("xlink:")) {
11370
+ if (value == null) {
11371
+ el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
11349
11372
  } else {
11350
- resolve(this._def);
11373
+ el.setAttributeNS(xlinkNS, key, value);
11351
11374
  }
11352
- }
11353
- _resolveProps(def) {
11354
- const { props } = def;
11355
- const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11356
- for (const key of Object.keys(this)) {
11357
- if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11358
- this._setProp(key, this[key], true, false);
11359
- }
11375
+ } else {
11376
+ if (compatCoerceAttr(el, key, value, instance)) {
11377
+ return;
11360
11378
  }
11361
- for (const key of declaredPropKeys.map(camelize)) {
11362
- Object.defineProperty(this, key, {
11363
- get() {
11364
- return this._getProp(key);
11365
- },
11366
- set(val) {
11367
- this._setProp(key, val);
11368
- }
11369
- });
11379
+ const isBoolean = isSpecialBooleanAttr(key);
11380
+ if (value == null || isBoolean && !includeBooleanAttr(value)) {
11381
+ el.removeAttribute(key);
11382
+ } else {
11383
+ el.setAttribute(key, isBoolean ? "" : value);
11370
11384
  }
11371
11385
  }
11372
- _setAttr(key) {
11373
- let value = this.getAttribute(key);
11374
- const camelKey = camelize(key);
11375
- if (this._numberProps && this._numberProps[camelKey]) {
11376
- value = toNumber(value);
11386
+ }
11387
+ const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
11388
+ function compatCoerceAttr(el, key, value, instance = null) {
11389
+ if (isEnumeratedAttr(key)) {
11390
+ const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
11391
+ if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
11392
+ "ATTR_ENUMERATED_COERCION",
11393
+ instance,
11394
+ key,
11395
+ value,
11396
+ v2CoercedValue
11397
+ )) {
11398
+ el.setAttribute(key, v2CoercedValue);
11399
+ return true;
11377
11400
  }
11378
- this._setProp(camelKey, value, false);
11379
- }
11380
- /**
11381
- * @internal
11382
- */
11383
- _getProp(key) {
11384
- return this._props[key];
11401
+ } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
11402
+ "ATTR_FALSE_VALUE",
11403
+ instance,
11404
+ key
11405
+ )) {
11406
+ el.removeAttribute(key);
11407
+ return true;
11385
11408
  }
11386
- /**
11387
- * @internal
11388
- */
11389
- _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11390
- if (val !== this._props[key]) {
11391
- this._props[key] = val;
11392
- if (shouldUpdate && this._instance) {
11393
- this._update();
11394
- }
11395
- if (shouldReflect) {
11396
- if (val === true) {
11397
- this.setAttribute(hyphenate(key), "");
11398
- } else if (typeof val === "string" || typeof val === "number") {
11399
- this.setAttribute(hyphenate(key), val + "");
11400
- } else if (!val) {
11401
- this.removeAttribute(hyphenate(key));
11402
- }
11403
- }
11409
+ return false;
11410
+ }
11411
+
11412
+ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11413
+ if (key === "innerHTML" || key === "textContent") {
11414
+ if (prevChildren) {
11415
+ unmountChildren(prevChildren, parentComponent, parentSuspense);
11404
11416
  }
11417
+ el[key] = value == null ? "" : value;
11418
+ return;
11405
11419
  }
11406
- _update() {
11407
- render(this._createVNode(), this.shadowRoot);
11408
- }
11409
- _createVNode() {
11410
- const vnode = createVNode(this._def, extend({}, this._props));
11411
- if (!this._instance) {
11412
- vnode.ce = (instance) => {
11413
- this._instance = instance;
11414
- instance.isCE = true;
11415
- if (!!(process.env.NODE_ENV !== "production")) {
11416
- instance.ceReload = (newStyles) => {
11417
- if (this._styles) {
11418
- this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11419
- this._styles.length = 0;
11420
- }
11421
- this._applyStyles(newStyles);
11422
- this._instance = null;
11423
- this._update();
11424
- };
11425
- }
11426
- const dispatch = (event, args) => {
11427
- this.dispatchEvent(
11428
- new CustomEvent(event, {
11429
- detail: args
11430
- })
11431
- );
11432
- };
11433
- instance.emit = (event, ...args) => {
11434
- dispatch(event, args);
11435
- if (hyphenate(event) !== event) {
11436
- dispatch(hyphenate(event), args);
11437
- }
11438
- };
11439
- let parent = this;
11440
- while (parent = parent && (parent.parentNode || parent.host)) {
11441
- if (parent instanceof VueElement) {
11442
- instance.parent = parent._instance;
11443
- instance.provides = parent._instance.provides;
11444
- break;
11445
- }
11446
- }
11447
- };
11420
+ const tag = el.tagName;
11421
+ if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
11422
+ !tag.includes("-")) {
11423
+ el._value = value;
11424
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
11425
+ const newValue = value == null ? "" : value;
11426
+ if (oldValue !== newValue) {
11427
+ el.value = newValue;
11448
11428
  }
11449
- return vnode;
11450
- }
11451
- _applyStyles(styles) {
11452
- if (styles) {
11453
- styles.forEach((css) => {
11454
- const s = document.createElement("style");
11455
- s.textContent = css;
11456
- this.shadowRoot.appendChild(s);
11457
- if (!!(process.env.NODE_ENV !== "production")) {
11458
- (this._styles || (this._styles = [])).push(s);
11459
- }
11460
- });
11429
+ if (value == null) {
11430
+ el.removeAttribute(key);
11461
11431
  }
11432
+ return;
11462
11433
  }
11463
- }
11464
-
11465
- function useCssModule(name = "$style") {
11466
- {
11467
- const instance = getCurrentInstance();
11468
- if (!instance) {
11469
- !!(process.env.NODE_ENV !== "production") && warn(`useCssModule must be called inside setup()`);
11470
- return EMPTY_OBJ;
11434
+ let needRemove = false;
11435
+ if (value === "" || value == null) {
11436
+ const type = typeof el[key];
11437
+ if (type === "boolean") {
11438
+ value = includeBooleanAttr(value);
11439
+ } else if (value == null && type === "string") {
11440
+ value = "";
11441
+ needRemove = true;
11442
+ } else if (type === "number") {
11443
+ value = 0;
11444
+ needRemove = true;
11471
11445
  }
11472
- const modules = instance.type.__cssModules;
11473
- if (!modules) {
11474
- !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS modules injected.`);
11475
- return EMPTY_OBJ;
11446
+ } else {
11447
+ if (value === false && compatUtils.isCompatEnabled(
11448
+ "ATTR_FALSE_VALUE",
11449
+ parentComponent
11450
+ )) {
11451
+ const type = typeof el[key];
11452
+ if (type === "string" || type === "number") {
11453
+ !!(process.env.NODE_ENV !== "production") && compatUtils.warnDeprecation(
11454
+ "ATTR_FALSE_VALUE",
11455
+ parentComponent,
11456
+ key
11457
+ );
11458
+ value = type === "number" ? 0 : "";
11459
+ needRemove = true;
11460
+ }
11476
11461
  }
11477
- const mod = modules[name];
11478
- if (!mod) {
11479
- !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS module named "${name}".`);
11480
- return EMPTY_OBJ;
11462
+ }
11463
+ try {
11464
+ el[key] = value;
11465
+ } catch (e) {
11466
+ if (!!(process.env.NODE_ENV !== "production") && !needRemove) {
11467
+ warn(
11468
+ `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11469
+ e
11470
+ );
11481
11471
  }
11482
- return mod;
11483
11472
  }
11473
+ needRemove && el.removeAttribute(key);
11484
11474
  }
11485
11475
 
11486
- function useCssVars(getter) {
11487
- const instance = getCurrentInstance();
11488
- if (!instance) {
11489
- !!(process.env.NODE_ENV !== "production") && warn(`useCssVars is called without current active component instance.`);
11490
- return;
11491
- }
11492
- const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11493
- Array.from(
11494
- document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11495
- ).forEach((node) => setVarsOnNode(node, vars));
11496
- };
11497
- const setVars = () => {
11498
- const vars = getter(instance.proxy);
11499
- setVarsOnVNode(instance.subTree, vars);
11500
- updateTeleports(vars);
11501
- };
11502
- watchPostEffect(setVars);
11503
- onMounted(() => {
11504
- const ob = new MutationObserver(setVars);
11505
- ob.observe(instance.subTree.el.parentNode, { childList: true });
11506
- onUnmounted(() => ob.disconnect());
11507
- });
11476
+ function addEventListener(el, event, handler, options) {
11477
+ el.addEventListener(event, handler, options);
11508
11478
  }
11509
- function setVarsOnVNode(vnode, vars) {
11510
- if (vnode.shapeFlag & 128) {
11511
- const suspense = vnode.suspense;
11512
- vnode = suspense.activeBranch;
11513
- if (suspense.pendingBranch && !suspense.isHydrating) {
11514
- suspense.effects.push(() => {
11515
- setVarsOnVNode(suspense.activeBranch, vars);
11516
- });
11479
+ function removeEventListener(el, event, handler, options) {
11480
+ el.removeEventListener(event, handler, options);
11481
+ }
11482
+ const veiKey = Symbol("_vei");
11483
+ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11484
+ const invokers = el[veiKey] || (el[veiKey] = {});
11485
+ const existingInvoker = invokers[rawName];
11486
+ if (nextValue && existingInvoker) {
11487
+ existingInvoker.value = nextValue;
11488
+ } else {
11489
+ const [name, options] = parseName(rawName);
11490
+ if (nextValue) {
11491
+ const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11492
+ addEventListener(el, name, invoker, options);
11493
+ } else if (existingInvoker) {
11494
+ removeEventListener(el, name, existingInvoker, options);
11495
+ invokers[rawName] = void 0;
11517
11496
  }
11518
11497
  }
11519
- while (vnode.component) {
11520
- vnode = vnode.component.subTree;
11521
- }
11522
- if (vnode.shapeFlag & 1 && vnode.el) {
11523
- setVarsOnNode(vnode.el, vars);
11524
- } else if (vnode.type === Fragment) {
11525
- vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11526
- } else if (vnode.type === Static) {
11527
- let { el, anchor } = vnode;
11528
- while (el) {
11529
- setVarsOnNode(el, vars);
11530
- if (el === anchor)
11531
- break;
11532
- el = el.nextSibling;
11498
+ }
11499
+ const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11500
+ function parseName(name) {
11501
+ let options;
11502
+ if (optionsModifierRE.test(name)) {
11503
+ options = {};
11504
+ let m;
11505
+ while (m = name.match(optionsModifierRE)) {
11506
+ name = name.slice(0, name.length - m[0].length);
11507
+ options[m[0].toLowerCase()] = true;
11533
11508
  }
11534
11509
  }
11510
+ const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11511
+ return [event, options];
11535
11512
  }
11536
- function setVarsOnNode(el, vars) {
11537
- if (el.nodeType === 1) {
11538
- const style = el.style;
11539
- for (const key in vars) {
11540
- style.setProperty(`--${key}`, vars[key]);
11513
+ let cachedNow = 0;
11514
+ const p = /* @__PURE__ */ Promise.resolve();
11515
+ const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11516
+ function createInvoker(initialValue, instance) {
11517
+ const invoker = (e) => {
11518
+ if (!e._vts) {
11519
+ e._vts = Date.now();
11520
+ } else if (e._vts <= invoker.attached) {
11521
+ return;
11541
11522
  }
11523
+ callWithAsyncErrorHandling(
11524
+ patchStopImmediatePropagation(e, invoker.value),
11525
+ instance,
11526
+ 5,
11527
+ [e]
11528
+ );
11529
+ };
11530
+ invoker.value = initialValue;
11531
+ invoker.attached = getNow();
11532
+ return invoker;
11533
+ }
11534
+ function patchStopImmediatePropagation(e, value) {
11535
+ if (isArray(value)) {
11536
+ const originalStop = e.stopImmediatePropagation;
11537
+ e.stopImmediatePropagation = () => {
11538
+ originalStop.call(e);
11539
+ e._stopped = true;
11540
+ };
11541
+ return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11542
+ } else {
11543
+ return value;
11542
11544
  }
11543
11545
  }
11544
11546
 
11545
- const TRANSITION = "transition";
11546
- const ANIMATION = "animation";
11547
- const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
11548
- Transition.displayName = "Transition";
11549
- {
11550
- Transition.__isBuiltIn = true;
11551
- }
11552
- const DOMTransitionPropsValidators = {
11553
- name: String,
11554
- type: String,
11555
- css: {
11556
- type: Boolean,
11557
- default: true
11558
- },
11559
- duration: [String, Number, Object],
11560
- enterFromClass: String,
11561
- enterActiveClass: String,
11562
- enterToClass: String,
11563
- appearFromClass: String,
11564
- appearActiveClass: String,
11565
- appearToClass: String,
11566
- leaveFromClass: String,
11567
- leaveActiveClass: String,
11568
- leaveToClass: String
11569
- };
11570
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
11571
- {},
11572
- BaseTransitionPropsValidators,
11573
- DOMTransitionPropsValidators
11574
- );
11575
- const callHook = (hook, args = []) => {
11576
- if (isArray(hook)) {
11577
- hook.forEach((h2) => h2(...args));
11578
- } else if (hook) {
11579
- hook(...args);
11547
+ const nativeOnRE = /^on[a-z]/;
11548
+ const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11549
+ if (key === "class") {
11550
+ patchClass(el, nextValue, isSVG);
11551
+ } else if (key === "style") {
11552
+ patchStyle(el, prevValue, nextValue);
11553
+ } else if (isOn(key)) {
11554
+ if (!isModelListener(key)) {
11555
+ patchEvent(el, key, prevValue, nextValue, parentComponent);
11556
+ }
11557
+ } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11558
+ patchDOMProp(
11559
+ el,
11560
+ key,
11561
+ nextValue,
11562
+ prevChildren,
11563
+ parentComponent,
11564
+ parentSuspense,
11565
+ unmountChildren
11566
+ );
11567
+ } else {
11568
+ if (key === "true-value") {
11569
+ el._trueValue = nextValue;
11570
+ } else if (key === "false-value") {
11571
+ el._falseValue = nextValue;
11572
+ }
11573
+ patchAttr(el, key, nextValue, isSVG, parentComponent);
11580
11574
  }
11581
11575
  };
11582
- const hasExplicitCallback = (hook) => {
11583
- return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
11584
- };
11585
- function resolveTransitionProps(rawProps) {
11586
- const baseProps = {};
11587
- for (const key in rawProps) {
11588
- if (!(key in DOMTransitionPropsValidators)) {
11589
- baseProps[key] = rawProps[key];
11576
+ function shouldSetAsProp(el, key, value, isSVG) {
11577
+ if (isSVG) {
11578
+ if (key === "innerHTML" || key === "textContent") {
11579
+ return true;
11580
+ }
11581
+ if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11582
+ return true;
11590
11583
  }
11584
+ return false;
11591
11585
  }
11592
- if (rawProps.css === false) {
11593
- return baseProps;
11586
+ if (key === "spellcheck" || key === "draggable" || key === "translate") {
11587
+ return false;
11594
11588
  }
11595
- const {
11596
- name = "v",
11597
- type,
11598
- duration,
11599
- enterFromClass = `${name}-enter-from`,
11600
- enterActiveClass = `${name}-enter-active`,
11601
- enterToClass = `${name}-enter-to`,
11602
- appearFromClass = enterFromClass,
11603
- appearActiveClass = enterActiveClass,
11604
- appearToClass = enterToClass,
11605
- leaveFromClass = `${name}-leave-from`,
11606
- leaveActiveClass = `${name}-leave-active`,
11607
- leaveToClass = `${name}-leave-to`
11608
- } = rawProps;
11609
- const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
11610
- let legacyEnterFromClass;
11611
- let legacyAppearFromClass;
11612
- let legacyLeaveFromClass;
11613
- if (legacyClassEnabled) {
11614
- const toLegacyClass = (cls) => cls.replace(/-from$/, "");
11615
- if (!rawProps.enterFromClass) {
11616
- legacyEnterFromClass = toLegacyClass(enterFromClass);
11589
+ if (key === "form") {
11590
+ return false;
11591
+ }
11592
+ if (key === "list" && el.tagName === "INPUT") {
11593
+ return false;
11594
+ }
11595
+ if (key === "type" && el.tagName === "TEXTAREA") {
11596
+ return false;
11597
+ }
11598
+ if (nativeOnRE.test(key) && isString(value)) {
11599
+ return false;
11600
+ }
11601
+ return key in el;
11602
+ }
11603
+
11604
+ /*! #__NO_SIDE_EFFECTS__ */
11605
+ // @__NO_SIDE_EFFECTS__
11606
+ function defineCustomElement(options, hydrate2) {
11607
+ const Comp = defineComponent(options);
11608
+ class VueCustomElement extends VueElement {
11609
+ constructor(initialProps) {
11610
+ super(Comp, initialProps, hydrate2);
11617
11611
  }
11618
- if (!rawProps.appearFromClass) {
11619
- legacyAppearFromClass = toLegacyClass(appearFromClass);
11612
+ }
11613
+ VueCustomElement.def = Comp;
11614
+ return VueCustomElement;
11615
+ }
11616
+ /*! #__NO_SIDE_EFFECTS__ */
11617
+ const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {
11618
+ return /* @__PURE__ */ defineCustomElement(options, hydrate);
11619
+ };
11620
+ const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11621
+ };
11622
+ class VueElement extends BaseClass {
11623
+ constructor(_def, _props = {}, hydrate2) {
11624
+ super();
11625
+ this._def = _def;
11626
+ this._props = _props;
11627
+ /**
11628
+ * @internal
11629
+ */
11630
+ this._instance = null;
11631
+ this._connected = false;
11632
+ this._resolved = false;
11633
+ this._numberProps = null;
11634
+ this._ob = null;
11635
+ if (this.shadowRoot && hydrate2) {
11636
+ hydrate2(this._createVNode(), this.shadowRoot);
11637
+ } else {
11638
+ if (!!(process.env.NODE_ENV !== "production") && this.shadowRoot) {
11639
+ warn(
11640
+ `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11641
+ );
11642
+ }
11643
+ this.attachShadow({ mode: "open" });
11644
+ if (!this._def.__asyncLoader) {
11645
+ this._resolveProps(this._def);
11646
+ }
11620
11647
  }
11621
- if (!rawProps.leaveFromClass) {
11622
- legacyLeaveFromClass = toLegacyClass(leaveFromClass);
11648
+ }
11649
+ connectedCallback() {
11650
+ this._connected = true;
11651
+ if (!this._instance) {
11652
+ if (this._resolved) {
11653
+ this._update();
11654
+ } else {
11655
+ this._resolveDef();
11656
+ }
11623
11657
  }
11624
11658
  }
11625
- const durations = normalizeDuration(duration);
11626
- const enterDuration = durations && durations[0];
11627
- const leaveDuration = durations && durations[1];
11628
- const {
11629
- onBeforeEnter,
11630
- onEnter,
11631
- onEnterCancelled,
11632
- onLeave,
11633
- onLeaveCancelled,
11634
- onBeforeAppear = onBeforeEnter,
11635
- onAppear = onEnter,
11636
- onAppearCancelled = onEnterCancelled
11637
- } = baseProps;
11638
- const finishEnter = (el, isAppear, done) => {
11639
- removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
11640
- removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
11641
- done && done();
11642
- };
11643
- const finishLeave = (el, done) => {
11644
- el._isLeaving = false;
11645
- removeTransitionClass(el, leaveFromClass);
11646
- removeTransitionClass(el, leaveToClass);
11647
- removeTransitionClass(el, leaveActiveClass);
11648
- done && done();
11649
- };
11650
- const makeEnterHook = (isAppear) => {
11651
- return (el, done) => {
11652
- const hook = isAppear ? onAppear : onEnter;
11653
- const resolve = () => finishEnter(el, isAppear, done);
11654
- callHook(hook, [el, resolve]);
11655
- nextFrame(() => {
11656
- removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
11657
- if (legacyClassEnabled) {
11658
- const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
11659
- if (legacyClass) {
11660
- removeTransitionClass(el, legacyClass);
11659
+ disconnectedCallback() {
11660
+ this._connected = false;
11661
+ if (this._ob) {
11662
+ this._ob.disconnect();
11663
+ this._ob = null;
11664
+ }
11665
+ nextTick(() => {
11666
+ if (!this._connected) {
11667
+ render(null, this.shadowRoot);
11668
+ this._instance = null;
11669
+ }
11670
+ });
11671
+ }
11672
+ /**
11673
+ * resolve inner component definition (handle possible async component)
11674
+ */
11675
+ _resolveDef() {
11676
+ this._resolved = true;
11677
+ for (let i = 0; i < this.attributes.length; i++) {
11678
+ this._setAttr(this.attributes[i].name);
11679
+ }
11680
+ this._ob = new MutationObserver((mutations) => {
11681
+ for (const m of mutations) {
11682
+ this._setAttr(m.attributeName);
11683
+ }
11684
+ });
11685
+ this._ob.observe(this, { attributes: true });
11686
+ const resolve = (def, isAsync = false) => {
11687
+ const { props, styles } = def;
11688
+ let numberProps;
11689
+ if (props && !isArray(props)) {
11690
+ for (const key in props) {
11691
+ const opt = props[key];
11692
+ if (opt === Number || opt && opt.type === Number) {
11693
+ if (key in this._props) {
11694
+ this._props[key] = toNumber(this._props[key]);
11695
+ }
11696
+ (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11661
11697
  }
11662
11698
  }
11663
- addTransitionClass(el, isAppear ? appearToClass : enterToClass);
11664
- if (!hasExplicitCallback(hook)) {
11665
- whenTransitionEnds(el, type, enterDuration, resolve);
11666
- }
11667
- });
11699
+ }
11700
+ this._numberProps = numberProps;
11701
+ if (isAsync) {
11702
+ this._resolveProps(def);
11703
+ }
11704
+ this._applyStyles(styles);
11705
+ this._update();
11668
11706
  };
11669
- };
11670
- return extend(baseProps, {
11671
- onBeforeEnter(el) {
11672
- callHook(onBeforeEnter, [el]);
11673
- addTransitionClass(el, enterFromClass);
11674
- if (legacyClassEnabled && legacyEnterFromClass) {
11675
- addTransitionClass(el, legacyEnterFromClass);
11707
+ const asyncDef = this._def.__asyncLoader;
11708
+ if (asyncDef) {
11709
+ asyncDef().then((def) => resolve(def, true));
11710
+ } else {
11711
+ resolve(this._def);
11712
+ }
11713
+ }
11714
+ _resolveProps(def) {
11715
+ const { props } = def;
11716
+ const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11717
+ for (const key of Object.keys(this)) {
11718
+ if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11719
+ this._setProp(key, this[key], true, false);
11676
11720
  }
11677
- addTransitionClass(el, enterActiveClass);
11678
- },
11679
- onBeforeAppear(el) {
11680
- callHook(onBeforeAppear, [el]);
11681
- addTransitionClass(el, appearFromClass);
11682
- if (legacyClassEnabled && legacyAppearFromClass) {
11683
- addTransitionClass(el, legacyAppearFromClass);
11721
+ }
11722
+ for (const key of declaredPropKeys.map(camelize)) {
11723
+ Object.defineProperty(this, key, {
11724
+ get() {
11725
+ return this._getProp(key);
11726
+ },
11727
+ set(val) {
11728
+ this._setProp(key, val);
11729
+ }
11730
+ });
11731
+ }
11732
+ }
11733
+ _setAttr(key) {
11734
+ let value = this.getAttribute(key);
11735
+ const camelKey = camelize(key);
11736
+ if (this._numberProps && this._numberProps[camelKey]) {
11737
+ value = toNumber(value);
11738
+ }
11739
+ this._setProp(camelKey, value, false);
11740
+ }
11741
+ /**
11742
+ * @internal
11743
+ */
11744
+ _getProp(key) {
11745
+ return this._props[key];
11746
+ }
11747
+ /**
11748
+ * @internal
11749
+ */
11750
+ _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11751
+ if (val !== this._props[key]) {
11752
+ this._props[key] = val;
11753
+ if (shouldUpdate && this._instance) {
11754
+ this._update();
11684
11755
  }
11685
- addTransitionClass(el, appearActiveClass);
11686
- },
11687
- onEnter: makeEnterHook(false),
11688
- onAppear: makeEnterHook(true),
11689
- onLeave(el, done) {
11690
- el._isLeaving = true;
11691
- const resolve = () => finishLeave(el, done);
11692
- addTransitionClass(el, leaveFromClass);
11693
- if (legacyClassEnabled && legacyLeaveFromClass) {
11694
- addTransitionClass(el, legacyLeaveFromClass);
11756
+ if (shouldReflect) {
11757
+ if (val === true) {
11758
+ this.setAttribute(hyphenate(key), "");
11759
+ } else if (typeof val === "string" || typeof val === "number") {
11760
+ this.setAttribute(hyphenate(key), val + "");
11761
+ } else if (!val) {
11762
+ this.removeAttribute(hyphenate(key));
11763
+ }
11695
11764
  }
11696
- forceReflow();
11697
- addTransitionClass(el, leaveActiveClass);
11698
- nextFrame(() => {
11699
- if (!el._isLeaving) {
11700
- return;
11765
+ }
11766
+ }
11767
+ _update() {
11768
+ render(this._createVNode(), this.shadowRoot);
11769
+ }
11770
+ _createVNode() {
11771
+ const vnode = createVNode(this._def, extend({}, this._props));
11772
+ if (!this._instance) {
11773
+ vnode.ce = (instance) => {
11774
+ this._instance = instance;
11775
+ instance.isCE = true;
11776
+ if (!!(process.env.NODE_ENV !== "production")) {
11777
+ instance.ceReload = (newStyles) => {
11778
+ if (this._styles) {
11779
+ this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11780
+ this._styles.length = 0;
11781
+ }
11782
+ this._applyStyles(newStyles);
11783
+ this._instance = null;
11784
+ this._update();
11785
+ };
11701
11786
  }
11702
- removeTransitionClass(el, leaveFromClass);
11703
- if (legacyClassEnabled && legacyLeaveFromClass) {
11704
- removeTransitionClass(el, legacyLeaveFromClass);
11787
+ const dispatch = (event, args) => {
11788
+ this.dispatchEvent(
11789
+ new CustomEvent(event, {
11790
+ detail: args
11791
+ })
11792
+ );
11793
+ };
11794
+ instance.emit = (event, ...args) => {
11795
+ dispatch(event, args);
11796
+ if (hyphenate(event) !== event) {
11797
+ dispatch(hyphenate(event), args);
11798
+ }
11799
+ };
11800
+ let parent = this;
11801
+ while (parent = parent && (parent.parentNode || parent.host)) {
11802
+ if (parent instanceof VueElement) {
11803
+ instance.parent = parent._instance;
11804
+ instance.provides = parent._instance.provides;
11805
+ break;
11806
+ }
11705
11807
  }
11706
- addTransitionClass(el, leaveToClass);
11707
- if (!hasExplicitCallback(onLeave)) {
11708
- whenTransitionEnds(el, type, leaveDuration, resolve);
11808
+ };
11809
+ }
11810
+ return vnode;
11811
+ }
11812
+ _applyStyles(styles) {
11813
+ if (styles) {
11814
+ styles.forEach((css) => {
11815
+ const s = document.createElement("style");
11816
+ s.textContent = css;
11817
+ this.shadowRoot.appendChild(s);
11818
+ if (!!(process.env.NODE_ENV !== "production")) {
11819
+ (this._styles || (this._styles = [])).push(s);
11709
11820
  }
11710
11821
  });
11711
- callHook(onLeave, [el, resolve]);
11712
- },
11713
- onEnterCancelled(el) {
11714
- finishEnter(el, false);
11715
- callHook(onEnterCancelled, [el]);
11716
- },
11717
- onAppearCancelled(el) {
11718
- finishEnter(el, true);
11719
- callHook(onAppearCancelled, [el]);
11720
- },
11721
- onLeaveCancelled(el) {
11722
- finishLeave(el);
11723
- callHook(onLeaveCancelled, [el]);
11724
11822
  }
11725
- });
11726
- }
11727
- function normalizeDuration(duration) {
11728
- if (duration == null) {
11729
- return null;
11730
- } else if (isObject(duration)) {
11731
- return [NumberOf(duration.enter), NumberOf(duration.leave)];
11732
- } else {
11733
- const n = NumberOf(duration);
11734
- return [n, n];
11735
- }
11736
- }
11737
- function NumberOf(val) {
11738
- const res = toNumber(val);
11739
- if (!!(process.env.NODE_ENV !== "production")) {
11740
- assertNumber(res, "<transition> explicit duration");
11741
11823
  }
11742
- return res;
11743
- }
11744
- function addTransitionClass(el, cls) {
11745
- cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11746
- (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);
11747
11824
  }
11748
- function removeTransitionClass(el, cls) {
11749
- cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11750
- const { _vtc } = el;
11751
- if (_vtc) {
11752
- _vtc.delete(cls);
11753
- if (!_vtc.size) {
11754
- el._vtc = void 0;
11825
+
11826
+ function useCssModule(name = "$style") {
11827
+ {
11828
+ const instance = getCurrentInstance();
11829
+ if (!instance) {
11830
+ !!(process.env.NODE_ENV !== "production") && warn(`useCssModule must be called inside setup()`);
11831
+ return EMPTY_OBJ;
11755
11832
  }
11756
- }
11757
- }
11758
- function nextFrame(cb) {
11759
- requestAnimationFrame(() => {
11760
- requestAnimationFrame(cb);
11761
- });
11762
- }
11763
- let endId = 0;
11764
- function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11765
- const id = el._endId = ++endId;
11766
- const resolveIfNotStale = () => {
11767
- if (id === el._endId) {
11768
- resolve();
11833
+ const modules = instance.type.__cssModules;
11834
+ if (!modules) {
11835
+ !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS modules injected.`);
11836
+ return EMPTY_OBJ;
11769
11837
  }
11770
- };
11771
- if (explicitTimeout) {
11772
- return setTimeout(resolveIfNotStale, explicitTimeout);
11838
+ const mod = modules[name];
11839
+ if (!mod) {
11840
+ !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS module named "${name}".`);
11841
+ return EMPTY_OBJ;
11842
+ }
11843
+ return mod;
11773
11844
  }
11774
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11775
- if (!type) {
11776
- return resolve();
11845
+ }
11846
+
11847
+ function useCssVars(getter) {
11848
+ const instance = getCurrentInstance();
11849
+ if (!instance) {
11850
+ !!(process.env.NODE_ENV !== "production") && warn(`useCssVars is called without current active component instance.`);
11851
+ return;
11777
11852
  }
11778
- const endEvent = type + "end";
11779
- let ended = 0;
11780
- const end = () => {
11781
- el.removeEventListener(endEvent, onEnd);
11782
- resolveIfNotStale();
11853
+ const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11854
+ Array.from(
11855
+ document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11856
+ ).forEach((node) => setVarsOnNode(node, vars));
11783
11857
  };
11784
- const onEnd = (e) => {
11785
- if (e.target === el && ++ended >= propCount) {
11786
- end();
11787
- }
11858
+ const setVars = () => {
11859
+ const vars = getter(instance.proxy);
11860
+ setVarsOnVNode(instance.subTree, vars);
11861
+ updateTeleports(vars);
11788
11862
  };
11789
- setTimeout(() => {
11790
- if (ended < propCount) {
11791
- end();
11792
- }
11793
- }, timeout + 1);
11794
- el.addEventListener(endEvent, onEnd);
11863
+ watchPostEffect(setVars);
11864
+ onMounted(() => {
11865
+ const ob = new MutationObserver(setVars);
11866
+ ob.observe(instance.subTree.el.parentNode, { childList: true });
11867
+ onUnmounted(() => ob.disconnect());
11868
+ });
11795
11869
  }
11796
- function getTransitionInfo(el, expectedType) {
11797
- const styles = window.getComputedStyle(el);
11798
- const getStyleProperties = (key) => (styles[key] || "").split(", ");
11799
- const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
11800
- const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
11801
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11802
- const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11803
- const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11804
- const animationTimeout = getTimeout(animationDelays, animationDurations);
11805
- let type = null;
11806
- let timeout = 0;
11807
- let propCount = 0;
11808
- if (expectedType === TRANSITION) {
11809
- if (transitionTimeout > 0) {
11810
- type = TRANSITION;
11811
- timeout = transitionTimeout;
11812
- propCount = transitionDurations.length;
11870
+ function setVarsOnVNode(vnode, vars) {
11871
+ if (vnode.shapeFlag & 128) {
11872
+ const suspense = vnode.suspense;
11873
+ vnode = suspense.activeBranch;
11874
+ if (suspense.pendingBranch && !suspense.isHydrating) {
11875
+ suspense.effects.push(() => {
11876
+ setVarsOnVNode(suspense.activeBranch, vars);
11877
+ });
11813
11878
  }
11814
- } else if (expectedType === ANIMATION) {
11815
- if (animationTimeout > 0) {
11816
- type = ANIMATION;
11817
- timeout = animationTimeout;
11818
- propCount = animationDurations.length;
11879
+ }
11880
+ while (vnode.component) {
11881
+ vnode = vnode.component.subTree;
11882
+ }
11883
+ if (vnode.shapeFlag & 1 && vnode.el) {
11884
+ setVarsOnNode(vnode.el, vars);
11885
+ } else if (vnode.type === Fragment) {
11886
+ vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11887
+ } else if (vnode.type === Static) {
11888
+ let { el, anchor } = vnode;
11889
+ while (el) {
11890
+ setVarsOnNode(el, vars);
11891
+ if (el === anchor)
11892
+ break;
11893
+ el = el.nextSibling;
11819
11894
  }
11820
- } else {
11821
- timeout = Math.max(transitionTimeout, animationTimeout);
11822
- type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
11823
- propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
11824
11895
  }
11825
- const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
11826
- getStyleProperties(`${TRANSITION}Property`).toString()
11827
- );
11828
- return {
11829
- type,
11830
- timeout,
11831
- propCount,
11832
- hasTransform
11833
- };
11834
11896
  }
11835
- function getTimeout(delays, durations) {
11836
- while (delays.length < durations.length) {
11837
- delays = delays.concat(delays);
11897
+ function setVarsOnNode(el, vars) {
11898
+ if (el.nodeType === 1) {
11899
+ const style = el.style;
11900
+ for (const key in vars) {
11901
+ style.setProperty(`--${key}`, vars[key]);
11902
+ }
11838
11903
  }
11839
- return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11840
- }
11841
- function toMs(s) {
11842
- return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11843
- }
11844
- function forceReflow() {
11845
- return document.body.offsetHeight;
11846
11904
  }
11847
11905
 
11848
11906
  const positionMap = /* @__PURE__ */ new WeakMap();
11849
11907
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11908
+ const moveCbKey = Symbol("_moveCb");
11909
+ const enterCbKey = Symbol("_enterCb");
11850
11910
  const TransitionGroupImpl = {
11851
11911
  name: "TransitionGroup",
11852
11912
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
@@ -11879,13 +11939,13 @@ const TransitionGroupImpl = {
11879
11939
  const style = el.style;
11880
11940
  addTransitionClass(el, moveClass);
11881
11941
  style.transform = style.webkitTransform = style.transitionDuration = "";
11882
- const cb = el._moveCb = (e) => {
11942
+ const cb = el[moveCbKey] = (e) => {
11883
11943
  if (e && e.target !== el) {
11884
11944
  return;
11885
11945
  }
11886
11946
  if (!e || /transform$/.test(e.propertyName)) {
11887
11947
  el.removeEventListener("transitionend", cb);
11888
- el._moveCb = null;
11948
+ el[moveCbKey] = null;
11889
11949
  removeTransitionClass(el, moveClass);
11890
11950
  }
11891
11951
  };
@@ -11937,11 +11997,11 @@ const removeMode = (props) => delete props.mode;
11937
11997
  const TransitionGroup = TransitionGroupImpl;
11938
11998
  function callPendingCbs(c) {
11939
11999
  const el = c.el;
11940
- if (el._moveCb) {
11941
- el._moveCb();
12000
+ if (el[moveCbKey]) {
12001
+ el[moveCbKey]();
11942
12002
  }
11943
- if (el._enterCb) {
11944
- el._enterCb();
12003
+ if (el[enterCbKey]) {
12004
+ el[enterCbKey]();
11945
12005
  }
11946
12006
  }
11947
12007
  function recordPosition(c) {
@@ -11961,8 +12021,9 @@ function applyTranslation(c) {
11961
12021
  }
11962
12022
  function hasCSSTransform(el, root, moveClass) {
11963
12023
  const clone = el.cloneNode();
11964
- if (el._vtc) {
11965
- el._vtc.forEach((cls) => {
12024
+ const _vtc = el[vtcKey];
12025
+ if (_vtc) {
12026
+ _vtc.forEach((cls) => {
11966
12027
  cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
11967
12028
  });
11968
12029
  }
@@ -11989,9 +12050,10 @@ function onCompositionEnd(e) {
11989
12050
  target.dispatchEvent(new Event("input"));
11990
12051
  }
11991
12052
  }
12053
+ const assignKey = Symbol("_assign");
11992
12054
  const vModelText = {
11993
12055
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
11994
- el._assign = getModelAssigner(vnode);
12056
+ el[assignKey] = getModelAssigner(vnode);
11995
12057
  const castToNumber = number || vnode.props && vnode.props.type === "number";
11996
12058
  addEventListener(el, lazy ? "change" : "input", (e) => {
11997
12059
  if (e.target.composing)
@@ -12003,7 +12065,7 @@ const vModelText = {
12003
12065
  if (castToNumber) {
12004
12066
  domValue = looseToNumber(domValue);
12005
12067
  }
12006
- el._assign(domValue);
12068
+ el[assignKey](domValue);
12007
12069
  });
12008
12070
  if (trim) {
12009
12071
  addEventListener(el, "change", () => {
@@ -12021,7 +12083,7 @@ const vModelText = {
12021
12083
  el.value = value == null ? "" : value;
12022
12084
  },
12023
12085
  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
12024
- el._assign = getModelAssigner(vnode);
12086
+ el[assignKey] = getModelAssigner(vnode);
12025
12087
  if (el.composing)
12026
12088
  return;
12027
12089
  if (document.activeElement === el && el.type !== "range") {
@@ -12045,12 +12107,12 @@ const vModelCheckbox = {
12045
12107
  // #4096 array checkboxes need to be deep traversed
12046
12108
  deep: true,
12047
12109
  created(el, _, vnode) {
12048
- el._assign = getModelAssigner(vnode);
12110
+ el[assignKey] = getModelAssigner(vnode);
12049
12111
  addEventListener(el, "change", () => {
12050
12112
  const modelValue = el._modelValue;
12051
12113
  const elementValue = getValue(el);
12052
12114
  const checked = el.checked;
12053
- const assign = el._assign;
12115
+ const assign = el[assignKey];
12054
12116
  if (isArray(modelValue)) {
12055
12117
  const index = looseIndexOf(modelValue, elementValue);
12056
12118
  const found = index !== -1;
@@ -12077,7 +12139,7 @@ const vModelCheckbox = {
12077
12139
  // set initial checked on mount to wait for true-value/false-value
12078
12140
  mounted: setChecked,
12079
12141
  beforeUpdate(el, binding, vnode) {
12080
- el._assign = getModelAssigner(vnode);
12142
+ el[assignKey] = getModelAssigner(vnode);
12081
12143
  setChecked(el, binding, vnode);
12082
12144
  }
12083
12145
  };
@@ -12094,13 +12156,13 @@ function setChecked(el, { value, oldValue }, vnode) {
12094
12156
  const vModelRadio = {
12095
12157
  created(el, { value }, vnode) {
12096
12158
  el.checked = looseEqual(value, vnode.props.value);
12097
- el._assign = getModelAssigner(vnode);
12159
+ el[assignKey] = getModelAssigner(vnode);
12098
12160
  addEventListener(el, "change", () => {
12099
- el._assign(getValue(el));
12161
+ el[assignKey](getValue(el));
12100
12162
  });
12101
12163
  },
12102
12164
  beforeUpdate(el, { value, oldValue }, vnode) {
12103
- el._assign = getModelAssigner(vnode);
12165
+ el[assignKey] = getModelAssigner(vnode);
12104
12166
  if (value !== oldValue) {
12105
12167
  el.checked = looseEqual(value, vnode.props.value);
12106
12168
  }
@@ -12115,11 +12177,11 @@ const vModelSelect = {
12115
12177
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
12116
12178
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
12117
12179
  );
12118
- el._assign(
12180
+ el[assignKey](
12119
12181
  el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
12120
12182
  );
12121
12183
  });
12122
- el._assign = getModelAssigner(vnode);
12184
+ el[assignKey] = getModelAssigner(vnode);
12123
12185
  },
12124
12186
  // set value in mounted & updated because <select> relies on its children
12125
12187
  // <option>s.
@@ -12127,7 +12189,7 @@ const vModelSelect = {
12127
12189
  setSelected(el, value);
12128
12190
  },
12129
12191
  beforeUpdate(el, _binding, vnode) {
12130
- el._assign = getModelAssigner(vnode);
12192
+ el[assignKey] = getModelAssigner(vnode);
12131
12193
  },
12132
12194
  updated(el, { value }) {
12133
12195
  setSelected(el, value);
@@ -12324,52 +12386,6 @@ const withKeys = (fn, modifiers) => {
12324
12386
  };
12325
12387
  };
12326
12388
 
12327
- const vShow = {
12328
- beforeMount(el, { value }, { transition }) {
12329
- el._vod = el.style.display === "none" ? "" : el.style.display;
12330
- if (transition && value) {
12331
- transition.beforeEnter(el);
12332
- } else {
12333
- setDisplay(el, value);
12334
- }
12335
- },
12336
- mounted(el, { value }, { transition }) {
12337
- if (transition && value) {
12338
- transition.enter(el);
12339
- }
12340
- },
12341
- updated(el, { value, oldValue }, { transition }) {
12342
- if (!value === !oldValue)
12343
- return;
12344
- if (transition) {
12345
- if (value) {
12346
- transition.beforeEnter(el);
12347
- setDisplay(el, true);
12348
- transition.enter(el);
12349
- } else {
12350
- transition.leave(el, () => {
12351
- setDisplay(el, false);
12352
- });
12353
- }
12354
- } else {
12355
- setDisplay(el, value);
12356
- }
12357
- },
12358
- beforeUnmount(el, { value }) {
12359
- setDisplay(el, value);
12360
- }
12361
- };
12362
- function setDisplay(el, value) {
12363
- el.style.display = value ? el._vod : "none";
12364
- }
12365
- function initVShowForSSR() {
12366
- vShow.getSSRProps = ({ value }) => {
12367
- if (!value) {
12368
- return { style: { display: "none" } };
12369
- }
12370
- };
12371
- }
12372
-
12373
12389
  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
12374
12390
  let renderer;
12375
12391
  let enabledHydration = false;