@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++) {
@@ -120,8 +121,8 @@ const slotFlagsText = {
120
121
  [3]: "FORWARDED"
121
122
  };
122
123
 
123
- 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";
124
- const isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);
124
+ 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";
125
+ const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
125
126
 
126
127
  const range = 2;
127
128
  function generateCodeFrame(source, start = 0, end = source.length) {
@@ -176,9 +177,7 @@ function normalizeStyle(value) {
176
177
  }
177
178
  }
178
179
  return res;
179
- } else if (isString(value)) {
180
- return value;
181
- } else if (isObject(value)) {
180
+ } else if (isString(value) || isObject(value)) {
182
181
  return value;
183
182
  }
184
183
  }
@@ -527,7 +526,7 @@ function cleanupEffect(effect2) {
527
526
  }
528
527
  }
529
528
  function effect(fn, options) {
530
- if (fn.effect) {
529
+ if (fn.effect instanceof ReactiveEffect) {
531
530
  fn = fn.effect.fn;
532
531
  }
533
532
  const _effect = new ReactiveEffect(fn);
@@ -697,10 +696,6 @@ const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`
697
696
  const builtInSymbols = new Set(
698
697
  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
699
698
  );
700
- const get$1 = /* @__PURE__ */ createGetter();
701
- const shallowGet = /* @__PURE__ */ createGetter(false, true);
702
- const readonlyGet = /* @__PURE__ */ createGetter(true);
703
- const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);
704
699
  const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
705
700
  function createArrayInstrumentations() {
706
701
  const instrumentations = {};
@@ -733,8 +728,13 @@ function hasOwnProperty(key) {
733
728
  track(obj, "has", key);
734
729
  return obj.hasOwnProperty(key);
735
730
  }
736
- function createGetter(isReadonly2 = false, shallow = false) {
737
- return function get2(target, key, receiver) {
731
+ class BaseReactiveHandler {
732
+ constructor(_isReadonly = false, _shallow = false) {
733
+ this._isReadonly = _isReadonly;
734
+ this._shallow = _shallow;
735
+ }
736
+ get(target, key, receiver) {
737
+ const isReadonly2 = this._isReadonly, shallow = this._shallow;
738
738
  if (key === "__v_isReactive") {
739
739
  return !isReadonly2;
740
740
  } else if (key === "__v_isReadonly") {
@@ -770,17 +770,18 @@ function createGetter(isReadonly2 = false, shallow = false) {
770
770
  return isReadonly2 ? readonly(res) : reactive(res);
771
771
  }
772
772
  return res;
773
- };
773
+ }
774
774
  }
775
- const set$1 = /* @__PURE__ */ createSetter();
776
- const shallowSet = /* @__PURE__ */ createSetter(true);
777
- function createSetter(shallow = false) {
778
- return function set2(target, key, value, receiver) {
775
+ class MutableReactiveHandler extends BaseReactiveHandler {
776
+ constructor(shallow = false) {
777
+ super(false, shallow);
778
+ }
779
+ set(target, key, value, receiver) {
779
780
  let oldValue = target[key];
780
781
  if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
781
782
  return false;
782
783
  }
783
- if (!shallow) {
784
+ if (!this._shallow) {
784
785
  if (!isShallow(value) && !isReadonly(value)) {
785
786
  oldValue = toRaw(oldValue);
786
787
  value = toRaw(value);
@@ -800,37 +801,36 @@ function createSetter(shallow = false) {
800
801
  }
801
802
  }
802
803
  return result;
803
- };
804
- }
805
- function deleteProperty(target, key) {
806
- const hadKey = hasOwn(target, key);
807
- const oldValue = target[key];
808
- const result = Reflect.deleteProperty(target, key);
809
- if (result && hadKey) {
810
- trigger(target, "delete", key, void 0, oldValue);
811
804
  }
812
- return result;
813
- }
814
- function has$1(target, key) {
815
- const result = Reflect.has(target, key);
816
- if (!isSymbol(key) || !builtInSymbols.has(key)) {
817
- track(target, "has", key);
805
+ deleteProperty(target, key) {
806
+ const hadKey = hasOwn(target, key);
807
+ const oldValue = target[key];
808
+ const result = Reflect.deleteProperty(target, key);
809
+ if (result && hadKey) {
810
+ trigger(target, "delete", key, void 0, oldValue);
811
+ }
812
+ return result;
813
+ }
814
+ has(target, key) {
815
+ const result = Reflect.has(target, key);
816
+ if (!isSymbol(key) || !builtInSymbols.has(key)) {
817
+ track(target, "has", key);
818
+ }
819
+ return result;
820
+ }
821
+ ownKeys(target) {
822
+ track(
823
+ target,
824
+ "iterate",
825
+ isArray(target) ? "length" : ITERATE_KEY
826
+ );
827
+ return Reflect.ownKeys(target);
818
828
  }
819
- return result;
820
- }
821
- function ownKeys(target) {
822
- track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY);
823
- return Reflect.ownKeys(target);
824
829
  }
825
- const mutableHandlers = {
826
- get: get$1,
827
- set: set$1,
828
- deleteProperty,
829
- has: has$1,
830
- ownKeys
831
- };
832
- const readonlyHandlers = {
833
- get: readonlyGet,
830
+ class ReadonlyReactiveHandler extends BaseReactiveHandler {
831
+ constructor(shallow = false) {
832
+ super(true, shallow);
833
+ }
834
834
  set(target, key) {
835
835
  if (!!(process.env.NODE_ENV !== "production")) {
836
836
  warn$1(
@@ -839,7 +839,7 @@ const readonlyHandlers = {
839
839
  );
840
840
  }
841
841
  return true;
842
- },
842
+ }
843
843
  deleteProperty(target, key) {
844
844
  if (!!(process.env.NODE_ENV !== "production")) {
845
845
  warn$1(
@@ -849,22 +849,13 @@ const readonlyHandlers = {
849
849
  }
850
850
  return true;
851
851
  }
852
- };
853
- const shallowReactiveHandlers = /* @__PURE__ */ extend(
854
- {},
855
- mutableHandlers,
856
- {
857
- get: shallowGet,
858
- set: shallowSet
859
- }
860
- );
861
- const shallowReadonlyHandlers = /* @__PURE__ */ extend(
862
- {},
863
- readonlyHandlers,
864
- {
865
- get: shallowReadonlyGet
866
- }
852
+ }
853
+ const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
854
+ const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
855
+ const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(
856
+ true
867
857
  );
858
+ const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
868
859
 
869
860
  const toShallow = (value) => value;
870
861
  const getProto = (v) => Reflect.getPrototypeOf(v);
@@ -873,7 +864,7 @@ function get(target, key, isReadonly = false, isShallow = false) {
873
864
  const rawTarget = toRaw(target);
874
865
  const rawKey = toRaw(key);
875
866
  if (!isReadonly) {
876
- if (key !== rawKey) {
867
+ if (hasChanged(key, rawKey)) {
877
868
  track(rawTarget, "get", key);
878
869
  }
879
870
  track(rawTarget, "get", rawKey);
@@ -893,7 +884,7 @@ function has(key, isReadonly = false) {
893
884
  const rawTarget = toRaw(target);
894
885
  const rawKey = toRaw(key);
895
886
  if (!isReadonly) {
896
- if (key !== rawKey) {
887
+ if (hasChanged(key, rawKey)) {
897
888
  track(rawTarget, "has", key);
898
889
  }
899
890
  track(rawTarget, "has", rawKey);
@@ -1427,11 +1418,7 @@ function toRef(source, key, defaultValue) {
1427
1418
  }
1428
1419
  function propertyToRef(source, key, defaultValue) {
1429
1420
  const val = source[key];
1430
- return isRef(val) ? val : new ObjectRefImpl(
1431
- source,
1432
- key,
1433
- defaultValue
1434
- );
1421
+ return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
1435
1422
  }
1436
1423
 
1437
1424
  class ComputedRefImpl {
@@ -3753,9 +3740,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
3753
3740
  }
3754
3741
  if (cb) {
3755
3742
  const newValue = effect.run();
3756
- if (deep || forceTrigger || (isMultiSource ? newValue.some(
3757
- (v, i) => hasChanged(v, oldValue[i])
3758
- ) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) {
3743
+ if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) {
3759
3744
  if (cleanup) {
3760
3745
  cleanup();
3761
3746
  }
@@ -3931,6 +3916,8 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
3931
3916
  }
3932
3917
  }
3933
3918
 
3919
+ const leaveCbKey = Symbol("_leaveCb");
3920
+ const enterCbKey$1 = Symbol("_enterCb");
3934
3921
  function useTransitionState() {
3935
3922
  const state = {
3936
3923
  isMounted: false,
@@ -4053,9 +4040,9 @@ const BaseTransitionImpl = {
4053
4040
  oldInnerChild
4054
4041
  );
4055
4042
  leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
4056
- el._leaveCb = () => {
4043
+ el[leaveCbKey] = () => {
4057
4044
  earlyRemove();
4058
- el._leaveCb = void 0;
4045
+ el[leaveCbKey] = void 0;
4059
4046
  delete enterHooks.delayedLeave;
4060
4047
  };
4061
4048
  enterHooks.delayedLeave = delayedLeave;
@@ -4129,15 +4116,15 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4129
4116
  return;
4130
4117
  }
4131
4118
  }
4132
- if (el._leaveCb) {
4133
- el._leaveCb(
4119
+ if (el[leaveCbKey]) {
4120
+ el[leaveCbKey](
4134
4121
  true
4135
4122
  /* cancelled */
4136
4123
  );
4137
4124
  }
4138
4125
  const leavingVNode = leavingVNodesCache[key];
4139
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {
4140
- leavingVNode.el._leaveCb();
4126
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4127
+ leavingVNode.el[leaveCbKey]();
4141
4128
  }
4142
4129
  callHook(hook, [el]);
4143
4130
  },
@@ -4155,7 +4142,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4155
4142
  }
4156
4143
  }
4157
4144
  let called = false;
4158
- const done = el._enterCb = (cancelled) => {
4145
+ const done = el[enterCbKey$1] = (cancelled) => {
4159
4146
  if (called)
4160
4147
  return;
4161
4148
  called = true;
@@ -4167,7 +4154,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4167
4154
  if (hooks.delayedLeave) {
4168
4155
  hooks.delayedLeave();
4169
4156
  }
4170
- el._enterCb = void 0;
4157
+ el[enterCbKey$1] = void 0;
4171
4158
  };
4172
4159
  if (hook) {
4173
4160
  callAsyncHook(hook, [el, done]);
@@ -4177,8 +4164,8 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4177
4164
  },
4178
4165
  leave(el, remove) {
4179
4166
  const key2 = String(vnode.key);
4180
- if (el._enterCb) {
4181
- el._enterCb(
4167
+ if (el[enterCbKey$1]) {
4168
+ el[enterCbKey$1](
4182
4169
  true
4183
4170
  /* cancelled */
4184
4171
  );
@@ -4188,7 +4175,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4188
4175
  }
4189
4176
  callHook(onBeforeLeave, [el]);
4190
4177
  let called = false;
4191
- const done = el._leaveCb = (cancelled) => {
4178
+ const done = el[leaveCbKey] = (cancelled) => {
4192
4179
  if (called)
4193
4180
  return;
4194
4181
  called = true;
@@ -4198,7 +4185,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4198
4185
  } else {
4199
4186
  callHook(onAfterLeave, [el]);
4200
4187
  }
4201
- el._leaveCb = void 0;
4188
+ el[leaveCbKey] = void 0;
4202
4189
  if (leavingVNodesCache[key2] === vnode) {
4203
4190
  delete leavingVNodesCache[key2];
4204
4191
  }
@@ -4260,6 +4247,8 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4260
4247
  return ret;
4261
4248
  }
4262
4249
 
4250
+ /*! #__NO_SIDE_EFFECTS__ */
4251
+ // @__NO_SIDE_EFFECTS__
4263
4252
  function defineComponent(options, extraOptions) {
4264
4253
  return isFunction(options) ? (
4265
4254
  // #8326: extend call and options.name access are considered side-effects
@@ -4269,6 +4258,8 @@ function defineComponent(options, extraOptions) {
4269
4258
  }
4270
4259
 
4271
4260
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4261
+ /*! #__NO_SIDE_EFFECTS__ */
4262
+ // @__NO_SIDE_EFFECTS__
4272
4263
  function defineAsyncComponent(source) {
4273
4264
  if (isFunction(source)) {
4274
4265
  source = { loader: source };
@@ -5287,6 +5278,7 @@ function legacyPrependModifier(value, symbol) {
5287
5278
  function installCompatInstanceProperties(map) {
5288
5279
  const set = (target, key, val) => {
5289
5280
  target[key] = val;
5281
+ return target[key];
5290
5282
  };
5291
5283
  const del = (target, key) => {
5292
5284
  delete target[key];
@@ -5564,7 +5556,7 @@ const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(
5564
5556
  return PublicInstanceProxyHandlers.get(target, key, target);
5565
5557
  },
5566
5558
  has(_, key) {
5567
- const has = key[0] !== "_" && !isGloballyWhitelisted(key);
5559
+ const has = key[0] !== "_" && !isGloballyAllowed(key);
5568
5560
  if (!!(process.env.NODE_ENV !== "production") && !has && PublicInstanceProxyHandlers.has(_, key)) {
5569
5561
  warn(
5570
5562
  `Property ${JSON.stringify(
@@ -6303,7 +6295,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6303
6295
  return vm;
6304
6296
  }
6305
6297
  }
6306
- Vue.version = `2.6.14-compat:${"3.3.4"}`;
6298
+ Vue.version = `2.6.14-compat:${"3.3.5"}`;
6307
6299
  Vue.config = singletonApp.config;
6308
6300
  Vue.use = (p, ...options) => {
6309
6301
  if (p && isFunction(p.install)) {
@@ -6712,7 +6704,7 @@ function createAppAPI(render, hydrate) {
6712
6704
  },
6713
6705
  set() {
6714
6706
  warn(
6715
- `app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.`
6707
+ `app.config.unwrapInjectedRef has been deprecated. 3.3 now always unwraps injected refs in Options API.`
6716
6708
  );
6717
6709
  }
6718
6710
  });
@@ -6801,10 +6793,7 @@ function createAppAPI(render, hydrate) {
6801
6793
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6802
6794
  );
6803
6795
  }
6804
- const vnode = createVNode(
6805
- rootComponent,
6806
- rootProps
6807
- );
6796
+ const vnode = createVNode(rootComponent, rootProps);
6808
6797
  vnode.appContext = context;
6809
6798
  if (!!(process.env.NODE_ENV !== "production")) {
6810
6799
  context.reload = () => {
@@ -7627,8 +7616,10 @@ function createHydrationFunctions(rendererInternals) {
7627
7616
  hasMismatch = true;
7628
7617
  !!(process.env.NODE_ENV !== "production") && warn(
7629
7618
  `Hydration text mismatch:
7630
- - Client: ${JSON.stringify(node.data)}
7631
- - Server: ${JSON.stringify(vnode.children)}`
7619
+ - Server rendered: ${JSON.stringify(
7620
+ node.data
7621
+ )}
7622
+ - Client rendered: ${JSON.stringify(vnode.children)}`
7632
7623
  );
7633
7624
  node.data = vnode.children;
7634
7625
  }
@@ -7831,8 +7822,8 @@ function createHydrationFunctions(rendererInternals) {
7831
7822
  hasMismatch = true;
7832
7823
  !!(process.env.NODE_ENV !== "production") && warn(
7833
7824
  `Hydration text content mismatch in <${vnode.type}>:
7834
- - Client: ${el.textContent}
7835
- - Server: ${vnode.children}`
7825
+ - Server rendered: ${el.textContent}
7826
+ - Client rendered: ${vnode.children}`
7836
7827
  );
7837
7828
  el.textContent = vnode.children;
7838
7829
  }
@@ -9648,6 +9639,10 @@ const TeleportImpl = {
9648
9639
  internals,
9649
9640
  1
9650
9641
  );
9642
+ } else {
9643
+ if (n2.props && n1.props && n2.props.to !== n1.props.to) {
9644
+ n2.props.to = n1.props.to;
9645
+ }
9651
9646
  }
9652
9647
  } else {
9653
9648
  if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
@@ -10515,9 +10510,12 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
10515
10510
  if (__VUE_OPTIONS_API__ && !skipOptions) {
10516
10511
  setCurrentInstance(instance);
10517
10512
  pauseTracking();
10518
- applyOptions(instance);
10519
- resetTracking();
10520
- unsetCurrentInstance();
10513
+ try {
10514
+ applyOptions(instance);
10515
+ } finally {
10516
+ resetTracking();
10517
+ unsetCurrentInstance();
10518
+ }
10521
10519
  }
10522
10520
  if (!!(process.env.NODE_ENV !== "production") && !Component.render && instance.render === NOOP && !isSSR) {
10523
10521
  if (!compile$1 && Component.template) {
@@ -10897,7 +10895,7 @@ function isMemoSame(cached, memo) {
10897
10895
  return true;
10898
10896
  }
10899
10897
 
10900
- const version = "3.3.4";
10898
+ const version = "3.3.5";
10901
10899
  const _ssrUtils = {
10902
10900
  createComponentInstance,
10903
10901
  setupComponent,
@@ -10984,934 +10982,996 @@ const nodeOps = {
10984
10982
  }
10985
10983
  };
10986
10984
 
10987
- function patchClass(el, value, isSVG) {
10988
- const transitionClasses = el._vtc;
10989
- if (transitionClasses) {
10990
- value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
10991
- }
10992
- if (value == null) {
10993
- el.removeAttribute("class");
10994
- } else if (isSVG) {
10995
- el.setAttribute("class", value);
10996
- } else {
10997
- el.className = value;
10998
- }
10985
+ const TRANSITION$1 = "transition";
10986
+ const ANIMATION = "animation";
10987
+ const vtcKey = Symbol("_vtc");
10988
+ const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
10989
+ Transition.displayName = "Transition";
10990
+ {
10991
+ Transition.__isBuiltIn = true;
10999
10992
  }
11000
-
11001
- function patchStyle(el, prev, next) {
11002
- const style = el.style;
11003
- const isCssString = isString(next);
11004
- if (next && !isCssString) {
11005
- if (prev && !isString(prev)) {
11006
- for (const key in prev) {
11007
- if (next[key] == null) {
11008
- setStyle(style, key, "");
11009
- }
11010
- }
11011
- }
11012
- for (const key in next) {
11013
- setStyle(style, key, next[key]);
11014
- }
11015
- } else {
11016
- const currentDisplay = style.display;
11017
- if (isCssString) {
11018
- if (prev !== next) {
11019
- style.cssText = next;
11020
- }
11021
- } else if (prev) {
11022
- el.removeAttribute("style");
11023
- }
11024
- if ("_vod" in el) {
11025
- style.display = currentDisplay;
11026
- }
10993
+ const DOMTransitionPropsValidators = {
10994
+ name: String,
10995
+ type: String,
10996
+ css: {
10997
+ type: Boolean,
10998
+ default: true
10999
+ },
11000
+ duration: [String, Number, Object],
11001
+ enterFromClass: String,
11002
+ enterActiveClass: String,
11003
+ enterToClass: String,
11004
+ appearFromClass: String,
11005
+ appearActiveClass: String,
11006
+ appearToClass: String,
11007
+ leaveFromClass: String,
11008
+ leaveActiveClass: String,
11009
+ leaveToClass: String
11010
+ };
11011
+ const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
11012
+ {},
11013
+ BaseTransitionPropsValidators,
11014
+ DOMTransitionPropsValidators
11015
+ );
11016
+ const callHook = (hook, args = []) => {
11017
+ if (isArray(hook)) {
11018
+ hook.forEach((h2) => h2(...args));
11019
+ } else if (hook) {
11020
+ hook(...args);
11027
11021
  }
11028
- }
11029
- const semicolonRE = /[^\\];\s*$/;
11030
- const importantRE = /\s*!important$/;
11031
- function setStyle(style, name, val) {
11032
- if (isArray(val)) {
11033
- val.forEach((v) => setStyle(style, name, v));
11034
- } else {
11035
- if (val == null)
11036
- val = "";
11037
- if (!!(process.env.NODE_ENV !== "production")) {
11038
- if (semicolonRE.test(val)) {
11039
- warn(
11040
- `Unexpected semicolon at the end of '${name}' style value: '${val}'`
11041
- );
11042
- }
11043
- }
11044
- if (name.startsWith("--")) {
11045
- style.setProperty(name, val);
11046
- } else {
11047
- const prefixed = autoPrefix(style, name);
11048
- if (importantRE.test(val)) {
11049
- style.setProperty(
11050
- hyphenate(prefixed),
11051
- val.replace(importantRE, ""),
11052
- "important"
11053
- );
11054
- } else {
11055
- style[prefixed] = val;
11056
- }
11022
+ };
11023
+ const hasExplicitCallback = (hook) => {
11024
+ return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
11025
+ };
11026
+ function resolveTransitionProps(rawProps) {
11027
+ const baseProps = {};
11028
+ for (const key in rawProps) {
11029
+ if (!(key in DOMTransitionPropsValidators)) {
11030
+ baseProps[key] = rawProps[key];
11057
11031
  }
11058
11032
  }
11059
- }
11060
- const prefixes = ["Webkit", "Moz", "ms"];
11061
- const prefixCache = {};
11062
- function autoPrefix(style, rawName) {
11063
- const cached = prefixCache[rawName];
11064
- if (cached) {
11065
- return cached;
11066
- }
11067
- let name = camelize(rawName);
11068
- if (name !== "filter" && name in style) {
11069
- return prefixCache[rawName] = name;
11070
- }
11071
- name = capitalize(name);
11072
- for (let i = 0; i < prefixes.length; i++) {
11073
- const prefixed = prefixes[i] + name;
11074
- if (prefixed in style) {
11075
- return prefixCache[rawName] = prefixed;
11076
- }
11033
+ if (rawProps.css === false) {
11034
+ return baseProps;
11077
11035
  }
11078
- return rawName;
11079
- }
11080
-
11081
- const xlinkNS = "http://www.w3.org/1999/xlink";
11082
- function patchAttr(el, key, value, isSVG, instance) {
11083
- if (isSVG && key.startsWith("xlink:")) {
11084
- if (value == null) {
11085
- el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
11086
- } else {
11087
- el.setAttributeNS(xlinkNS, key, value);
11088
- }
11089
- } else {
11090
- if (compatCoerceAttr(el, key, value, instance)) {
11091
- return;
11036
+ const {
11037
+ name = "v",
11038
+ type,
11039
+ duration,
11040
+ enterFromClass = `${name}-enter-from`,
11041
+ enterActiveClass = `${name}-enter-active`,
11042
+ enterToClass = `${name}-enter-to`,
11043
+ appearFromClass = enterFromClass,
11044
+ appearActiveClass = enterActiveClass,
11045
+ appearToClass = enterToClass,
11046
+ leaveFromClass = `${name}-leave-from`,
11047
+ leaveActiveClass = `${name}-leave-active`,
11048
+ leaveToClass = `${name}-leave-to`
11049
+ } = rawProps;
11050
+ const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
11051
+ let legacyEnterFromClass;
11052
+ let legacyAppearFromClass;
11053
+ let legacyLeaveFromClass;
11054
+ if (legacyClassEnabled) {
11055
+ const toLegacyClass = (cls) => cls.replace(/-from$/, "");
11056
+ if (!rawProps.enterFromClass) {
11057
+ legacyEnterFromClass = toLegacyClass(enterFromClass);
11092
11058
  }
11093
- const isBoolean = isSpecialBooleanAttr(key);
11094
- if (value == null || isBoolean && !includeBooleanAttr(value)) {
11095
- el.removeAttribute(key);
11096
- } else {
11097
- el.setAttribute(key, isBoolean ? "" : value);
11059
+ if (!rawProps.appearFromClass) {
11060
+ legacyAppearFromClass = toLegacyClass(appearFromClass);
11098
11061
  }
11099
- }
11100
- }
11101
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
11102
- function compatCoerceAttr(el, key, value, instance = null) {
11103
- if (isEnumeratedAttr(key)) {
11104
- const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
11105
- if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
11106
- "ATTR_ENUMERATED_COERCION",
11107
- instance,
11108
- key,
11109
- value,
11110
- v2CoercedValue
11111
- )) {
11112
- el.setAttribute(key, v2CoercedValue);
11113
- return true;
11062
+ if (!rawProps.leaveFromClass) {
11063
+ legacyLeaveFromClass = toLegacyClass(leaveFromClass);
11114
11064
  }
11115
- } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
11116
- "ATTR_FALSE_VALUE",
11117
- instance,
11118
- key
11119
- )) {
11120
- el.removeAttribute(key);
11121
- return true;
11122
11065
  }
11123
- return false;
11124
- }
11125
-
11126
- function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11127
- if (key === "innerHTML" || key === "textContent") {
11128
- if (prevChildren) {
11129
- unmountChildren(prevChildren, parentComponent, parentSuspense);
11130
- }
11131
- el[key] = value == null ? "" : value;
11132
- return;
11133
- }
11134
- const tag = el.tagName;
11135
- if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
11136
- !tag.includes("-")) {
11137
- el._value = value;
11138
- const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
11139
- const newValue = value == null ? "" : value;
11140
- if (oldValue !== newValue) {
11141
- el.value = newValue;
11142
- }
11143
- if (value == null) {
11144
- el.removeAttribute(key);
11145
- }
11146
- return;
11147
- }
11148
- let needRemove = false;
11149
- if (value === "" || value == null) {
11150
- const type = typeof el[key];
11151
- if (type === "boolean") {
11152
- value = includeBooleanAttr(value);
11153
- } else if (value == null && type === "string") {
11154
- value = "";
11155
- needRemove = true;
11156
- } else if (type === "number") {
11157
- value = 0;
11158
- needRemove = true;
11159
- }
11160
- } else {
11161
- if (value === false && compatUtils.isCompatEnabled(
11162
- "ATTR_FALSE_VALUE",
11163
- parentComponent
11164
- )) {
11165
- const type = typeof el[key];
11166
- if (type === "string" || type === "number") {
11167
- !!(process.env.NODE_ENV !== "production") && compatUtils.warnDeprecation(
11168
- "ATTR_FALSE_VALUE",
11169
- parentComponent,
11170
- key
11171
- );
11172
- value = type === "number" ? 0 : "";
11173
- needRemove = true;
11066
+ const durations = normalizeDuration(duration);
11067
+ const enterDuration = durations && durations[0];
11068
+ const leaveDuration = durations && durations[1];
11069
+ const {
11070
+ onBeforeEnter,
11071
+ onEnter,
11072
+ onEnterCancelled,
11073
+ onLeave,
11074
+ onLeaveCancelled,
11075
+ onBeforeAppear = onBeforeEnter,
11076
+ onAppear = onEnter,
11077
+ onAppearCancelled = onEnterCancelled
11078
+ } = baseProps;
11079
+ const finishEnter = (el, isAppear, done) => {
11080
+ removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
11081
+ removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
11082
+ done && done();
11083
+ };
11084
+ const finishLeave = (el, done) => {
11085
+ el._isLeaving = false;
11086
+ removeTransitionClass(el, leaveFromClass);
11087
+ removeTransitionClass(el, leaveToClass);
11088
+ removeTransitionClass(el, leaveActiveClass);
11089
+ done && done();
11090
+ };
11091
+ const makeEnterHook = (isAppear) => {
11092
+ return (el, done) => {
11093
+ const hook = isAppear ? onAppear : onEnter;
11094
+ const resolve = () => finishEnter(el, isAppear, done);
11095
+ callHook(hook, [el, resolve]);
11096
+ nextFrame(() => {
11097
+ removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
11098
+ if (legacyClassEnabled) {
11099
+ const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
11100
+ if (legacyClass) {
11101
+ removeTransitionClass(el, legacyClass);
11102
+ }
11103
+ }
11104
+ addTransitionClass(el, isAppear ? appearToClass : enterToClass);
11105
+ if (!hasExplicitCallback(hook)) {
11106
+ whenTransitionEnds(el, type, enterDuration, resolve);
11107
+ }
11108
+ });
11109
+ };
11110
+ };
11111
+ return extend(baseProps, {
11112
+ onBeforeEnter(el) {
11113
+ callHook(onBeforeEnter, [el]);
11114
+ addTransitionClass(el, enterFromClass);
11115
+ if (legacyClassEnabled && legacyEnterFromClass) {
11116
+ addTransitionClass(el, legacyEnterFromClass);
11174
11117
  }
11118
+ addTransitionClass(el, enterActiveClass);
11119
+ },
11120
+ onBeforeAppear(el) {
11121
+ callHook(onBeforeAppear, [el]);
11122
+ addTransitionClass(el, appearFromClass);
11123
+ if (legacyClassEnabled && legacyAppearFromClass) {
11124
+ addTransitionClass(el, legacyAppearFromClass);
11125
+ }
11126
+ addTransitionClass(el, appearActiveClass);
11127
+ },
11128
+ onEnter: makeEnterHook(false),
11129
+ onAppear: makeEnterHook(true),
11130
+ onLeave(el, done) {
11131
+ el._isLeaving = true;
11132
+ const resolve = () => finishLeave(el, done);
11133
+ addTransitionClass(el, leaveFromClass);
11134
+ if (legacyClassEnabled && legacyLeaveFromClass) {
11135
+ addTransitionClass(el, legacyLeaveFromClass);
11136
+ }
11137
+ forceReflow();
11138
+ addTransitionClass(el, leaveActiveClass);
11139
+ nextFrame(() => {
11140
+ if (!el._isLeaving) {
11141
+ return;
11142
+ }
11143
+ removeTransitionClass(el, leaveFromClass);
11144
+ if (legacyClassEnabled && legacyLeaveFromClass) {
11145
+ removeTransitionClass(el, legacyLeaveFromClass);
11146
+ }
11147
+ addTransitionClass(el, leaveToClass);
11148
+ if (!hasExplicitCallback(onLeave)) {
11149
+ whenTransitionEnds(el, type, leaveDuration, resolve);
11150
+ }
11151
+ });
11152
+ callHook(onLeave, [el, resolve]);
11153
+ },
11154
+ onEnterCancelled(el) {
11155
+ finishEnter(el, false);
11156
+ callHook(onEnterCancelled, [el]);
11157
+ },
11158
+ onAppearCancelled(el) {
11159
+ finishEnter(el, true);
11160
+ callHook(onAppearCancelled, [el]);
11161
+ },
11162
+ onLeaveCancelled(el) {
11163
+ finishLeave(el);
11164
+ callHook(onLeaveCancelled, [el]);
11175
11165
  }
11166
+ });
11167
+ }
11168
+ function normalizeDuration(duration) {
11169
+ if (duration == null) {
11170
+ return null;
11171
+ } else if (isObject(duration)) {
11172
+ return [NumberOf(duration.enter), NumberOf(duration.leave)];
11173
+ } else {
11174
+ const n = NumberOf(duration);
11175
+ return [n, n];
11176
11176
  }
11177
- try {
11178
- el[key] = value;
11179
- } catch (e) {
11180
- if (!!(process.env.NODE_ENV !== "production") && !needRemove) {
11181
- warn(
11182
- `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11183
- e
11184
- );
11185
- }
11186
- }
11187
- needRemove && el.removeAttribute(key);
11188
11177
  }
11189
-
11190
- function addEventListener(el, event, handler, options) {
11191
- el.addEventListener(event, handler, options);
11178
+ function NumberOf(val) {
11179
+ const res = toNumber(val);
11180
+ if (!!(process.env.NODE_ENV !== "production")) {
11181
+ assertNumber(res, "<transition> explicit duration");
11182
+ }
11183
+ return res;
11192
11184
  }
11193
- function removeEventListener(el, event, handler, options) {
11194
- el.removeEventListener(event, handler, options);
11185
+ function addTransitionClass(el, cls) {
11186
+ cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11187
+ (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
11195
11188
  }
11196
- function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11197
- const invokers = el._vei || (el._vei = {});
11198
- const existingInvoker = invokers[rawName];
11199
- if (nextValue && existingInvoker) {
11200
- existingInvoker.value = nextValue;
11201
- } else {
11202
- const [name, options] = parseName(rawName);
11203
- if (nextValue) {
11204
- const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11205
- addEventListener(el, name, invoker, options);
11206
- } else if (existingInvoker) {
11207
- removeEventListener(el, name, existingInvoker, options);
11208
- invokers[rawName] = void 0;
11189
+ function removeTransitionClass(el, cls) {
11190
+ cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11191
+ const _vtc = el[vtcKey];
11192
+ if (_vtc) {
11193
+ _vtc.delete(cls);
11194
+ if (!_vtc.size) {
11195
+ el[vtcKey] = void 0;
11209
11196
  }
11210
11197
  }
11211
11198
  }
11212
- const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11213
- function parseName(name) {
11214
- let options;
11215
- if (optionsModifierRE.test(name)) {
11216
- options = {};
11217
- let m;
11218
- while (m = name.match(optionsModifierRE)) {
11219
- name = name.slice(0, name.length - m[0].length);
11220
- options[m[0].toLowerCase()] = true;
11221
- }
11222
- }
11223
- const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11224
- return [event, options];
11199
+ function nextFrame(cb) {
11200
+ requestAnimationFrame(() => {
11201
+ requestAnimationFrame(cb);
11202
+ });
11225
11203
  }
11226
- let cachedNow = 0;
11227
- const p = /* @__PURE__ */ Promise.resolve();
11228
- const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11229
- function createInvoker(initialValue, instance) {
11230
- const invoker = (e) => {
11231
- if (!e._vts) {
11232
- e._vts = Date.now();
11233
- } else if (e._vts <= invoker.attached) {
11234
- return;
11204
+ let endId = 0;
11205
+ function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11206
+ const id = el._endId = ++endId;
11207
+ const resolveIfNotStale = () => {
11208
+ if (id === el._endId) {
11209
+ resolve();
11235
11210
  }
11236
- callWithAsyncErrorHandling(
11237
- patchStopImmediatePropagation(e, invoker.value),
11238
- instance,
11239
- 5,
11240
- [e]
11241
- );
11242
11211
  };
11243
- invoker.value = initialValue;
11244
- invoker.attached = getNow();
11245
- return invoker;
11246
- }
11247
- function patchStopImmediatePropagation(e, value) {
11248
- if (isArray(value)) {
11249
- const originalStop = e.stopImmediatePropagation;
11250
- e.stopImmediatePropagation = () => {
11251
- originalStop.call(e);
11252
- e._stopped = true;
11253
- };
11254
- return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11255
- } else {
11256
- return value;
11212
+ if (explicitTimeout) {
11213
+ return setTimeout(resolveIfNotStale, explicitTimeout);
11257
11214
  }
11258
- }
11259
-
11260
- const nativeOnRE = /^on[a-z]/;
11261
- const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11262
- if (key === "class") {
11263
- patchClass(el, nextValue, isSVG);
11264
- } else if (key === "style") {
11265
- patchStyle(el, prevValue, nextValue);
11266
- } else if (isOn(key)) {
11267
- if (!isModelListener(key)) {
11268
- patchEvent(el, key, prevValue, nextValue, parentComponent);
11215
+ const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11216
+ if (!type) {
11217
+ return resolve();
11218
+ }
11219
+ const endEvent = type + "end";
11220
+ let ended = 0;
11221
+ const end = () => {
11222
+ el.removeEventListener(endEvent, onEnd);
11223
+ resolveIfNotStale();
11224
+ };
11225
+ const onEnd = (e) => {
11226
+ if (e.target === el && ++ended >= propCount) {
11227
+ end();
11269
11228
  }
11270
- } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11271
- patchDOMProp(
11272
- el,
11273
- key,
11274
- nextValue,
11275
- prevChildren,
11276
- parentComponent,
11277
- parentSuspense,
11278
- unmountChildren
11279
- );
11280
- } else {
11281
- if (key === "true-value") {
11282
- el._trueValue = nextValue;
11283
- } else if (key === "false-value") {
11284
- el._falseValue = nextValue;
11229
+ };
11230
+ setTimeout(() => {
11231
+ if (ended < propCount) {
11232
+ end();
11285
11233
  }
11286
- patchAttr(el, key, nextValue, isSVG, parentComponent);
11287
- }
11288
- };
11289
- function shouldSetAsProp(el, key, value, isSVG) {
11290
- if (isSVG) {
11291
- if (key === "innerHTML" || key === "textContent") {
11292
- return true;
11234
+ }, timeout + 1);
11235
+ el.addEventListener(endEvent, onEnd);
11236
+ }
11237
+ function getTransitionInfo(el, expectedType) {
11238
+ const styles = window.getComputedStyle(el);
11239
+ const getStyleProperties = (key) => (styles[key] || "").split(", ");
11240
+ const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`);
11241
+ const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`);
11242
+ const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11243
+ const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11244
+ const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11245
+ const animationTimeout = getTimeout(animationDelays, animationDurations);
11246
+ let type = null;
11247
+ let timeout = 0;
11248
+ let propCount = 0;
11249
+ if (expectedType === TRANSITION$1) {
11250
+ if (transitionTimeout > 0) {
11251
+ type = TRANSITION$1;
11252
+ timeout = transitionTimeout;
11253
+ propCount = transitionDurations.length;
11293
11254
  }
11294
- if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11295
- return true;
11255
+ } else if (expectedType === ANIMATION) {
11256
+ if (animationTimeout > 0) {
11257
+ type = ANIMATION;
11258
+ timeout = animationTimeout;
11259
+ propCount = animationDurations.length;
11296
11260
  }
11297
- return false;
11298
- }
11299
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
11300
- return false;
11261
+ } else {
11262
+ timeout = Math.max(transitionTimeout, animationTimeout);
11263
+ type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null;
11264
+ propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0;
11301
11265
  }
11302
- if (key === "form") {
11303
- return false;
11266
+ const hasTransform = type === TRANSITION$1 && /\b(transform|all)(,|$)/.test(
11267
+ getStyleProperties(`${TRANSITION$1}Property`).toString()
11268
+ );
11269
+ return {
11270
+ type,
11271
+ timeout,
11272
+ propCount,
11273
+ hasTransform
11274
+ };
11275
+ }
11276
+ function getTimeout(delays, durations) {
11277
+ while (delays.length < durations.length) {
11278
+ delays = delays.concat(delays);
11304
11279
  }
11305
- if (key === "list" && el.tagName === "INPUT") {
11306
- return false;
11280
+ return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11281
+ }
11282
+ function toMs(s) {
11283
+ if (s === "auto")
11284
+ return 0;
11285
+ return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11286
+ }
11287
+ function forceReflow() {
11288
+ return document.body.offsetHeight;
11289
+ }
11290
+
11291
+ function patchClass(el, value, isSVG) {
11292
+ const transitionClasses = el[vtcKey];
11293
+ if (transitionClasses) {
11294
+ value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
11307
11295
  }
11308
- if (key === "type" && el.tagName === "TEXTAREA") {
11309
- return false;
11296
+ if (value == null) {
11297
+ el.removeAttribute("class");
11298
+ } else if (isSVG) {
11299
+ el.setAttribute("class", value);
11300
+ } else {
11301
+ el.className = value;
11310
11302
  }
11311
- if (nativeOnRE.test(key) && isString(value)) {
11312
- return false;
11303
+ }
11304
+
11305
+ const vShowOldKey = Symbol("_vod");
11306
+ const vShow = {
11307
+ beforeMount(el, { value }, { transition }) {
11308
+ el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
11309
+ if (transition && value) {
11310
+ transition.beforeEnter(el);
11311
+ } else {
11312
+ setDisplay(el, value);
11313
+ }
11314
+ },
11315
+ mounted(el, { value }, { transition }) {
11316
+ if (transition && value) {
11317
+ transition.enter(el);
11318
+ }
11319
+ },
11320
+ updated(el, { value, oldValue }, { transition }) {
11321
+ if (!value === !oldValue)
11322
+ return;
11323
+ if (transition) {
11324
+ if (value) {
11325
+ transition.beforeEnter(el);
11326
+ setDisplay(el, true);
11327
+ transition.enter(el);
11328
+ } else {
11329
+ transition.leave(el, () => {
11330
+ setDisplay(el, false);
11331
+ });
11332
+ }
11333
+ } else {
11334
+ setDisplay(el, value);
11335
+ }
11336
+ },
11337
+ beforeUnmount(el, { value }) {
11338
+ setDisplay(el, value);
11313
11339
  }
11314
- return key in el;
11340
+ };
11341
+ function setDisplay(el, value) {
11342
+ el.style.display = value ? el[vShowOldKey] : "none";
11343
+ }
11344
+ function initVShowForSSR() {
11345
+ vShow.getSSRProps = ({ value }) => {
11346
+ if (!value) {
11347
+ return { style: { display: "none" } };
11348
+ }
11349
+ };
11315
11350
  }
11316
11351
 
11317
- function defineCustomElement(options, hydrate2) {
11318
- const Comp = defineComponent(options);
11319
- class VueCustomElement extends VueElement {
11320
- constructor(initialProps) {
11321
- super(Comp, initialProps, hydrate2);
11352
+ function patchStyle(el, prev, next) {
11353
+ const style = el.style;
11354
+ const isCssString = isString(next);
11355
+ if (next && !isCssString) {
11356
+ if (prev && !isString(prev)) {
11357
+ for (const key in prev) {
11358
+ if (next[key] == null) {
11359
+ setStyle(style, key, "");
11360
+ }
11361
+ }
11362
+ }
11363
+ for (const key in next) {
11364
+ setStyle(style, key, next[key]);
11365
+ }
11366
+ } else {
11367
+ const currentDisplay = style.display;
11368
+ if (isCssString) {
11369
+ if (prev !== next) {
11370
+ style.cssText = next;
11371
+ }
11372
+ } else if (prev) {
11373
+ el.removeAttribute("style");
11374
+ }
11375
+ if (vShowOldKey in el) {
11376
+ style.display = currentDisplay;
11322
11377
  }
11323
11378
  }
11324
- VueCustomElement.def = Comp;
11325
- return VueCustomElement;
11326
11379
  }
11327
- const defineSSRCustomElement = (options) => {
11328
- return defineCustomElement(options, hydrate);
11329
- };
11330
- const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11331
- };
11332
- class VueElement extends BaseClass {
11333
- constructor(_def, _props = {}, hydrate2) {
11334
- super();
11335
- this._def = _def;
11336
- this._props = _props;
11337
- /**
11338
- * @internal
11339
- */
11340
- this._instance = null;
11341
- this._connected = false;
11342
- this._resolved = false;
11343
- this._numberProps = null;
11344
- if (this.shadowRoot && hydrate2) {
11345
- hydrate2(this._createVNode(), this.shadowRoot);
11346
- } else {
11347
- if (!!(process.env.NODE_ENV !== "production") && this.shadowRoot) {
11380
+ const semicolonRE = /[^\\];\s*$/;
11381
+ const importantRE = /\s*!important$/;
11382
+ function setStyle(style, name, val) {
11383
+ if (isArray(val)) {
11384
+ val.forEach((v) => setStyle(style, name, v));
11385
+ } else {
11386
+ if (val == null)
11387
+ val = "";
11388
+ if (!!(process.env.NODE_ENV !== "production")) {
11389
+ if (semicolonRE.test(val)) {
11348
11390
  warn(
11349
- `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11391
+ `Unexpected semicolon at the end of '${name}' style value: '${val}'`
11350
11392
  );
11351
11393
  }
11352
- this.attachShadow({ mode: "open" });
11353
- if (!this._def.__asyncLoader) {
11354
- this._resolveProps(this._def);
11355
- }
11356
11394
  }
11357
- }
11358
- connectedCallback() {
11359
- this._connected = true;
11360
- if (!this._instance) {
11361
- if (this._resolved) {
11362
- this._update();
11395
+ if (name.startsWith("--")) {
11396
+ style.setProperty(name, val);
11397
+ } else {
11398
+ const prefixed = autoPrefix(style, name);
11399
+ if (importantRE.test(val)) {
11400
+ style.setProperty(
11401
+ hyphenate(prefixed),
11402
+ val.replace(importantRE, ""),
11403
+ "important"
11404
+ );
11363
11405
  } else {
11364
- this._resolveDef();
11406
+ style[prefixed] = val;
11365
11407
  }
11366
11408
  }
11367
11409
  }
11368
- disconnectedCallback() {
11369
- this._connected = false;
11370
- nextTick(() => {
11371
- if (!this._connected) {
11372
- render(null, this.shadowRoot);
11373
- this._instance = null;
11374
- }
11375
- });
11376
- }
11377
- /**
11378
- * resolve inner component definition (handle possible async component)
11379
- */
11380
- _resolveDef() {
11381
- this._resolved = true;
11382
- for (let i = 0; i < this.attributes.length; i++) {
11383
- this._setAttr(this.attributes[i].name);
11410
+ }
11411
+ const prefixes = ["Webkit", "Moz", "ms"];
11412
+ const prefixCache = {};
11413
+ function autoPrefix(style, rawName) {
11414
+ const cached = prefixCache[rawName];
11415
+ if (cached) {
11416
+ return cached;
11417
+ }
11418
+ let name = camelize(rawName);
11419
+ if (name !== "filter" && name in style) {
11420
+ return prefixCache[rawName] = name;
11421
+ }
11422
+ name = capitalize(name);
11423
+ for (let i = 0; i < prefixes.length; i++) {
11424
+ const prefixed = prefixes[i] + name;
11425
+ if (prefixed in style) {
11426
+ return prefixCache[rawName] = prefixed;
11384
11427
  }
11385
- new MutationObserver((mutations) => {
11386
- for (const m of mutations) {
11387
- this._setAttr(m.attributeName);
11388
- }
11389
- }).observe(this, { attributes: true });
11390
- const resolve = (def, isAsync = false) => {
11391
- const { props, styles } = def;
11392
- let numberProps;
11393
- if (props && !isArray(props)) {
11394
- for (const key in props) {
11395
- const opt = props[key];
11396
- if (opt === Number || opt && opt.type === Number) {
11397
- if (key in this._props) {
11398
- this._props[key] = toNumber(this._props[key]);
11399
- }
11400
- (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11401
- }
11402
- }
11403
- }
11404
- this._numberProps = numberProps;
11405
- if (isAsync) {
11406
- this._resolveProps(def);
11407
- }
11408
- this._applyStyles(styles);
11409
- this._update();
11410
- };
11411
- const asyncDef = this._def.__asyncLoader;
11412
- if (asyncDef) {
11413
- asyncDef().then((def) => resolve(def, true));
11428
+ }
11429
+ return rawName;
11430
+ }
11431
+
11432
+ const xlinkNS = "http://www.w3.org/1999/xlink";
11433
+ function patchAttr(el, key, value, isSVG, instance) {
11434
+ if (isSVG && key.startsWith("xlink:")) {
11435
+ if (value == null) {
11436
+ el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
11414
11437
  } else {
11415
- resolve(this._def);
11438
+ el.setAttributeNS(xlinkNS, key, value);
11416
11439
  }
11417
- }
11418
- _resolveProps(def) {
11419
- const { props } = def;
11420
- const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11421
- for (const key of Object.keys(this)) {
11422
- if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11423
- this._setProp(key, this[key], true, false);
11424
- }
11440
+ } else {
11441
+ if (compatCoerceAttr(el, key, value, instance)) {
11442
+ return;
11425
11443
  }
11426
- for (const key of declaredPropKeys.map(camelize)) {
11427
- Object.defineProperty(this, key, {
11428
- get() {
11429
- return this._getProp(key);
11430
- },
11431
- set(val) {
11432
- this._setProp(key, val);
11433
- }
11434
- });
11444
+ const isBoolean = isSpecialBooleanAttr(key);
11445
+ if (value == null || isBoolean && !includeBooleanAttr(value)) {
11446
+ el.removeAttribute(key);
11447
+ } else {
11448
+ el.setAttribute(key, isBoolean ? "" : value);
11435
11449
  }
11436
11450
  }
11437
- _setAttr(key) {
11438
- let value = this.getAttribute(key);
11439
- const camelKey = camelize(key);
11440
- if (this._numberProps && this._numberProps[camelKey]) {
11441
- value = toNumber(value);
11451
+ }
11452
+ const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
11453
+ function compatCoerceAttr(el, key, value, instance = null) {
11454
+ if (isEnumeratedAttr(key)) {
11455
+ const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
11456
+ if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
11457
+ "ATTR_ENUMERATED_COERCION",
11458
+ instance,
11459
+ key,
11460
+ value,
11461
+ v2CoercedValue
11462
+ )) {
11463
+ el.setAttribute(key, v2CoercedValue);
11464
+ return true;
11442
11465
  }
11443
- this._setProp(camelKey, value, false);
11444
- }
11445
- /**
11446
- * @internal
11447
- */
11448
- _getProp(key) {
11449
- return this._props[key];
11466
+ } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
11467
+ "ATTR_FALSE_VALUE",
11468
+ instance,
11469
+ key
11470
+ )) {
11471
+ el.removeAttribute(key);
11472
+ return true;
11450
11473
  }
11451
- /**
11452
- * @internal
11453
- */
11454
- _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11455
- if (val !== this._props[key]) {
11456
- this._props[key] = val;
11457
- if (shouldUpdate && this._instance) {
11458
- this._update();
11459
- }
11460
- if (shouldReflect) {
11461
- if (val === true) {
11462
- this.setAttribute(hyphenate(key), "");
11463
- } else if (typeof val === "string" || typeof val === "number") {
11464
- this.setAttribute(hyphenate(key), val + "");
11465
- } else if (!val) {
11466
- this.removeAttribute(hyphenate(key));
11467
- }
11468
- }
11474
+ return false;
11475
+ }
11476
+
11477
+ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11478
+ if (key === "innerHTML" || key === "textContent") {
11479
+ if (prevChildren) {
11480
+ unmountChildren(prevChildren, parentComponent, parentSuspense);
11469
11481
  }
11482
+ el[key] = value == null ? "" : value;
11483
+ return;
11470
11484
  }
11471
- _update() {
11472
- render(this._createVNode(), this.shadowRoot);
11485
+ const tag = el.tagName;
11486
+ if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
11487
+ !tag.includes("-")) {
11488
+ el._value = value;
11489
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
11490
+ const newValue = value == null ? "" : value;
11491
+ if (oldValue !== newValue) {
11492
+ el.value = newValue;
11493
+ }
11494
+ if (value == null) {
11495
+ el.removeAttribute(key);
11496
+ }
11497
+ return;
11473
11498
  }
11474
- _createVNode() {
11475
- const vnode = createVNode(this._def, extend({}, this._props));
11476
- if (!this._instance) {
11477
- vnode.ce = (instance) => {
11478
- this._instance = instance;
11479
- instance.isCE = true;
11480
- if (!!(process.env.NODE_ENV !== "production")) {
11481
- instance.ceReload = (newStyles) => {
11482
- if (this._styles) {
11483
- this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11484
- this._styles.length = 0;
11485
- }
11486
- this._applyStyles(newStyles);
11487
- this._instance = null;
11488
- this._update();
11489
- };
11490
- }
11491
- const dispatch = (event, args) => {
11492
- this.dispatchEvent(
11493
- new CustomEvent(event, {
11494
- detail: args
11495
- })
11496
- );
11497
- };
11498
- instance.emit = (event, ...args) => {
11499
- dispatch(event, args);
11500
- if (hyphenate(event) !== event) {
11501
- dispatch(hyphenate(event), args);
11502
- }
11503
- };
11504
- let parent = this;
11505
- while (parent = parent && (parent.parentNode || parent.host)) {
11506
- if (parent instanceof VueElement) {
11507
- instance.parent = parent._instance;
11508
- instance.provides = parent._instance.provides;
11509
- break;
11510
- }
11511
- }
11512
- };
11499
+ let needRemove = false;
11500
+ if (value === "" || value == null) {
11501
+ const type = typeof el[key];
11502
+ if (type === "boolean") {
11503
+ value = includeBooleanAttr(value);
11504
+ } else if (value == null && type === "string") {
11505
+ value = "";
11506
+ needRemove = true;
11507
+ } else if (type === "number") {
11508
+ value = 0;
11509
+ needRemove = true;
11510
+ }
11511
+ } else {
11512
+ if (value === false && compatUtils.isCompatEnabled(
11513
+ "ATTR_FALSE_VALUE",
11514
+ parentComponent
11515
+ )) {
11516
+ const type = typeof el[key];
11517
+ if (type === "string" || type === "number") {
11518
+ !!(process.env.NODE_ENV !== "production") && compatUtils.warnDeprecation(
11519
+ "ATTR_FALSE_VALUE",
11520
+ parentComponent,
11521
+ key
11522
+ );
11523
+ value = type === "number" ? 0 : "";
11524
+ needRemove = true;
11525
+ }
11513
11526
  }
11514
- return vnode;
11515
11527
  }
11516
- _applyStyles(styles) {
11517
- if (styles) {
11518
- styles.forEach((css) => {
11519
- const s = document.createElement("style");
11520
- s.textContent = css;
11521
- this.shadowRoot.appendChild(s);
11522
- if (!!(process.env.NODE_ENV !== "production")) {
11523
- (this._styles || (this._styles = [])).push(s);
11524
- }
11525
- });
11528
+ try {
11529
+ el[key] = value;
11530
+ } catch (e) {
11531
+ if (!!(process.env.NODE_ENV !== "production") && !needRemove) {
11532
+ warn(
11533
+ `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11534
+ e
11535
+ );
11526
11536
  }
11527
11537
  }
11538
+ needRemove && el.removeAttribute(key);
11528
11539
  }
11529
11540
 
11530
- function useCssModule(name = "$style") {
11531
- {
11532
- const instance = getCurrentInstance();
11533
- if (!instance) {
11534
- !!(process.env.NODE_ENV !== "production") && warn(`useCssModule must be called inside setup()`);
11535
- return EMPTY_OBJ;
11536
- }
11537
- const modules = instance.type.__cssModules;
11538
- if (!modules) {
11539
- !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS modules injected.`);
11540
- return EMPTY_OBJ;
11541
- }
11542
- const mod = modules[name];
11543
- if (!mod) {
11544
- !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS module named "${name}".`);
11545
- return EMPTY_OBJ;
11541
+ function addEventListener(el, event, handler, options) {
11542
+ el.addEventListener(event, handler, options);
11543
+ }
11544
+ function removeEventListener(el, event, handler, options) {
11545
+ el.removeEventListener(event, handler, options);
11546
+ }
11547
+ const veiKey = Symbol("_vei");
11548
+ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11549
+ const invokers = el[veiKey] || (el[veiKey] = {});
11550
+ const existingInvoker = invokers[rawName];
11551
+ if (nextValue && existingInvoker) {
11552
+ existingInvoker.value = nextValue;
11553
+ } else {
11554
+ const [name, options] = parseName(rawName);
11555
+ if (nextValue) {
11556
+ const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11557
+ addEventListener(el, name, invoker, options);
11558
+ } else if (existingInvoker) {
11559
+ removeEventListener(el, name, existingInvoker, options);
11560
+ invokers[rawName] = void 0;
11546
11561
  }
11547
- return mod;
11548
11562
  }
11549
11563
  }
11550
-
11551
- function useCssVars(getter) {
11552
- const instance = getCurrentInstance();
11553
- if (!instance) {
11554
- !!(process.env.NODE_ENV !== "production") && warn(`useCssVars is called without current active component instance.`);
11555
- return;
11564
+ const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11565
+ function parseName(name) {
11566
+ let options;
11567
+ if (optionsModifierRE.test(name)) {
11568
+ options = {};
11569
+ let m;
11570
+ while (m = name.match(optionsModifierRE)) {
11571
+ name = name.slice(0, name.length - m[0].length);
11572
+ options[m[0].toLowerCase()] = true;
11573
+ }
11556
11574
  }
11557
- const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11558
- Array.from(
11559
- document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11560
- ).forEach((node) => setVarsOnNode(node, vars));
11561
- };
11562
- const setVars = () => {
11563
- const vars = getter(instance.proxy);
11564
- setVarsOnVNode(instance.subTree, vars);
11565
- updateTeleports(vars);
11566
- };
11567
- watchPostEffect(setVars);
11568
- onMounted(() => {
11569
- const ob = new MutationObserver(setVars);
11570
- ob.observe(instance.subTree.el.parentNode, { childList: true });
11571
- onUnmounted(() => ob.disconnect());
11572
- });
11575
+ const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11576
+ return [event, options];
11573
11577
  }
11574
- function setVarsOnVNode(vnode, vars) {
11575
- if (vnode.shapeFlag & 128) {
11576
- const suspense = vnode.suspense;
11577
- vnode = suspense.activeBranch;
11578
- if (suspense.pendingBranch && !suspense.isHydrating) {
11579
- suspense.effects.push(() => {
11580
- setVarsOnVNode(suspense.activeBranch, vars);
11581
- });
11578
+ let cachedNow = 0;
11579
+ const p = /* @__PURE__ */ Promise.resolve();
11580
+ const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11581
+ function createInvoker(initialValue, instance) {
11582
+ const invoker = (e) => {
11583
+ if (!e._vts) {
11584
+ e._vts = Date.now();
11585
+ } else if (e._vts <= invoker.attached) {
11586
+ return;
11582
11587
  }
11588
+ callWithAsyncErrorHandling(
11589
+ patchStopImmediatePropagation(e, invoker.value),
11590
+ instance,
11591
+ 5,
11592
+ [e]
11593
+ );
11594
+ };
11595
+ invoker.value = initialValue;
11596
+ invoker.attached = getNow();
11597
+ return invoker;
11598
+ }
11599
+ function patchStopImmediatePropagation(e, value) {
11600
+ if (isArray(value)) {
11601
+ const originalStop = e.stopImmediatePropagation;
11602
+ e.stopImmediatePropagation = () => {
11603
+ originalStop.call(e);
11604
+ e._stopped = true;
11605
+ };
11606
+ return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11607
+ } else {
11608
+ return value;
11583
11609
  }
11584
- while (vnode.component) {
11585
- vnode = vnode.component.subTree;
11586
- }
11587
- if (vnode.shapeFlag & 1 && vnode.el) {
11588
- setVarsOnNode(vnode.el, vars);
11589
- } else if (vnode.type === Fragment) {
11590
- vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11591
- } else if (vnode.type === Static) {
11592
- let { el, anchor } = vnode;
11593
- while (el) {
11594
- setVarsOnNode(el, vars);
11595
- if (el === anchor)
11596
- break;
11597
- el = el.nextSibling;
11610
+ }
11611
+
11612
+ const nativeOnRE = /^on[a-z]/;
11613
+ const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11614
+ if (key === "class") {
11615
+ patchClass(el, nextValue, isSVG);
11616
+ } else if (key === "style") {
11617
+ patchStyle(el, prevValue, nextValue);
11618
+ } else if (isOn(key)) {
11619
+ if (!isModelListener(key)) {
11620
+ patchEvent(el, key, prevValue, nextValue, parentComponent);
11621
+ }
11622
+ } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11623
+ patchDOMProp(
11624
+ el,
11625
+ key,
11626
+ nextValue,
11627
+ prevChildren,
11628
+ parentComponent,
11629
+ parentSuspense,
11630
+ unmountChildren
11631
+ );
11632
+ } else {
11633
+ if (key === "true-value") {
11634
+ el._trueValue = nextValue;
11635
+ } else if (key === "false-value") {
11636
+ el._falseValue = nextValue;
11598
11637
  }
11638
+ patchAttr(el, key, nextValue, isSVG, parentComponent);
11599
11639
  }
11600
- }
11601
- function setVarsOnNode(el, vars) {
11602
- if (el.nodeType === 1) {
11603
- const style = el.style;
11604
- for (const key in vars) {
11605
- style.setProperty(`--${key}`, vars[key]);
11640
+ };
11641
+ function shouldSetAsProp(el, key, value, isSVG) {
11642
+ if (isSVG) {
11643
+ if (key === "innerHTML" || key === "textContent") {
11644
+ return true;
11645
+ }
11646
+ if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11647
+ return true;
11606
11648
  }
11649
+ return false;
11650
+ }
11651
+ if (key === "spellcheck" || key === "draggable" || key === "translate") {
11652
+ return false;
11653
+ }
11654
+ if (key === "form") {
11655
+ return false;
11656
+ }
11657
+ if (key === "list" && el.tagName === "INPUT") {
11658
+ return false;
11659
+ }
11660
+ if (key === "type" && el.tagName === "TEXTAREA") {
11661
+ return false;
11662
+ }
11663
+ if (nativeOnRE.test(key) && isString(value)) {
11664
+ return false;
11607
11665
  }
11666
+ return key in el;
11608
11667
  }
11609
11668
 
11610
- const TRANSITION$1 = "transition";
11611
- const ANIMATION = "animation";
11612
- const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
11613
- Transition.displayName = "Transition";
11614
- {
11615
- Transition.__isBuiltIn = true;
11616
- }
11617
- const DOMTransitionPropsValidators = {
11618
- name: String,
11619
- type: String,
11620
- css: {
11621
- type: Boolean,
11622
- default: true
11623
- },
11624
- duration: [String, Number, Object],
11625
- enterFromClass: String,
11626
- enterActiveClass: String,
11627
- enterToClass: String,
11628
- appearFromClass: String,
11629
- appearActiveClass: String,
11630
- appearToClass: String,
11631
- leaveFromClass: String,
11632
- leaveActiveClass: String,
11633
- leaveToClass: String
11634
- };
11635
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
11636
- {},
11637
- BaseTransitionPropsValidators,
11638
- DOMTransitionPropsValidators
11639
- );
11640
- const callHook = (hook, args = []) => {
11641
- if (isArray(hook)) {
11642
- hook.forEach((h2) => h2(...args));
11643
- } else if (hook) {
11644
- hook(...args);
11669
+ /*! #__NO_SIDE_EFFECTS__ */
11670
+ // @__NO_SIDE_EFFECTS__
11671
+ function defineCustomElement(options, hydrate2) {
11672
+ const Comp = defineComponent(options);
11673
+ class VueCustomElement extends VueElement {
11674
+ constructor(initialProps) {
11675
+ super(Comp, initialProps, hydrate2);
11676
+ }
11645
11677
  }
11678
+ VueCustomElement.def = Comp;
11679
+ return VueCustomElement;
11680
+ }
11681
+ /*! #__NO_SIDE_EFFECTS__ */
11682
+ const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {
11683
+ return /* @__PURE__ */ defineCustomElement(options, hydrate);
11646
11684
  };
11647
- const hasExplicitCallback = (hook) => {
11648
- return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
11685
+ const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11649
11686
  };
11650
- function resolveTransitionProps(rawProps) {
11651
- const baseProps = {};
11652
- for (const key in rawProps) {
11653
- if (!(key in DOMTransitionPropsValidators)) {
11654
- baseProps[key] = rawProps[key];
11687
+ class VueElement extends BaseClass {
11688
+ constructor(_def, _props = {}, hydrate2) {
11689
+ super();
11690
+ this._def = _def;
11691
+ this._props = _props;
11692
+ /**
11693
+ * @internal
11694
+ */
11695
+ this._instance = null;
11696
+ this._connected = false;
11697
+ this._resolved = false;
11698
+ this._numberProps = null;
11699
+ this._ob = null;
11700
+ if (this.shadowRoot && hydrate2) {
11701
+ hydrate2(this._createVNode(), this.shadowRoot);
11702
+ } else {
11703
+ if (!!(process.env.NODE_ENV !== "production") && this.shadowRoot) {
11704
+ warn(
11705
+ `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11706
+ );
11707
+ }
11708
+ this.attachShadow({ mode: "open" });
11709
+ if (!this._def.__asyncLoader) {
11710
+ this._resolveProps(this._def);
11711
+ }
11655
11712
  }
11656
11713
  }
11657
- if (rawProps.css === false) {
11658
- return baseProps;
11659
- }
11660
- const {
11661
- name = "v",
11662
- type,
11663
- duration,
11664
- enterFromClass = `${name}-enter-from`,
11665
- enterActiveClass = `${name}-enter-active`,
11666
- enterToClass = `${name}-enter-to`,
11667
- appearFromClass = enterFromClass,
11668
- appearActiveClass = enterActiveClass,
11669
- appearToClass = enterToClass,
11670
- leaveFromClass = `${name}-leave-from`,
11671
- leaveActiveClass = `${name}-leave-active`,
11672
- leaveToClass = `${name}-leave-to`
11673
- } = rawProps;
11674
- const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
11675
- let legacyEnterFromClass;
11676
- let legacyAppearFromClass;
11677
- let legacyLeaveFromClass;
11678
- if (legacyClassEnabled) {
11679
- const toLegacyClass = (cls) => cls.replace(/-from$/, "");
11680
- if (!rawProps.enterFromClass) {
11681
- legacyEnterFromClass = toLegacyClass(enterFromClass);
11682
- }
11683
- if (!rawProps.appearFromClass) {
11684
- legacyAppearFromClass = toLegacyClass(appearFromClass);
11714
+ connectedCallback() {
11715
+ this._connected = true;
11716
+ if (!this._instance) {
11717
+ if (this._resolved) {
11718
+ this._update();
11719
+ } else {
11720
+ this._resolveDef();
11721
+ }
11685
11722
  }
11686
- if (!rawProps.leaveFromClass) {
11687
- legacyLeaveFromClass = toLegacyClass(leaveFromClass);
11723
+ }
11724
+ disconnectedCallback() {
11725
+ this._connected = false;
11726
+ if (this._ob) {
11727
+ this._ob.disconnect();
11728
+ this._ob = null;
11688
11729
  }
11730
+ nextTick(() => {
11731
+ if (!this._connected) {
11732
+ render(null, this.shadowRoot);
11733
+ this._instance = null;
11734
+ }
11735
+ });
11689
11736
  }
11690
- const durations = normalizeDuration(duration);
11691
- const enterDuration = durations && durations[0];
11692
- const leaveDuration = durations && durations[1];
11693
- const {
11694
- onBeforeEnter,
11695
- onEnter,
11696
- onEnterCancelled,
11697
- onLeave,
11698
- onLeaveCancelled,
11699
- onBeforeAppear = onBeforeEnter,
11700
- onAppear = onEnter,
11701
- onAppearCancelled = onEnterCancelled
11702
- } = baseProps;
11703
- const finishEnter = (el, isAppear, done) => {
11704
- removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
11705
- removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
11706
- done && done();
11707
- };
11708
- const finishLeave = (el, done) => {
11709
- el._isLeaving = false;
11710
- removeTransitionClass(el, leaveFromClass);
11711
- removeTransitionClass(el, leaveToClass);
11712
- removeTransitionClass(el, leaveActiveClass);
11713
- done && done();
11714
- };
11715
- const makeEnterHook = (isAppear) => {
11716
- return (el, done) => {
11717
- const hook = isAppear ? onAppear : onEnter;
11718
- const resolve = () => finishEnter(el, isAppear, done);
11719
- callHook(hook, [el, resolve]);
11720
- nextFrame(() => {
11721
- removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
11722
- if (legacyClassEnabled) {
11723
- const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
11724
- if (legacyClass) {
11725
- removeTransitionClass(el, legacyClass);
11737
+ /**
11738
+ * resolve inner component definition (handle possible async component)
11739
+ */
11740
+ _resolveDef() {
11741
+ this._resolved = true;
11742
+ for (let i = 0; i < this.attributes.length; i++) {
11743
+ this._setAttr(this.attributes[i].name);
11744
+ }
11745
+ this._ob = new MutationObserver((mutations) => {
11746
+ for (const m of mutations) {
11747
+ this._setAttr(m.attributeName);
11748
+ }
11749
+ });
11750
+ this._ob.observe(this, { attributes: true });
11751
+ const resolve = (def, isAsync = false) => {
11752
+ const { props, styles } = def;
11753
+ let numberProps;
11754
+ if (props && !isArray(props)) {
11755
+ for (const key in props) {
11756
+ const opt = props[key];
11757
+ if (opt === Number || opt && opt.type === Number) {
11758
+ if (key in this._props) {
11759
+ this._props[key] = toNumber(this._props[key]);
11760
+ }
11761
+ (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11726
11762
  }
11727
11763
  }
11728
- addTransitionClass(el, isAppear ? appearToClass : enterToClass);
11729
- if (!hasExplicitCallback(hook)) {
11730
- whenTransitionEnds(el, type, enterDuration, resolve);
11731
- }
11732
- });
11764
+ }
11765
+ this._numberProps = numberProps;
11766
+ if (isAsync) {
11767
+ this._resolveProps(def);
11768
+ }
11769
+ this._applyStyles(styles);
11770
+ this._update();
11733
11771
  };
11734
- };
11735
- return extend(baseProps, {
11736
- onBeforeEnter(el) {
11737
- callHook(onBeforeEnter, [el]);
11738
- addTransitionClass(el, enterFromClass);
11739
- if (legacyClassEnabled && legacyEnterFromClass) {
11740
- addTransitionClass(el, legacyEnterFromClass);
11772
+ const asyncDef = this._def.__asyncLoader;
11773
+ if (asyncDef) {
11774
+ asyncDef().then((def) => resolve(def, true));
11775
+ } else {
11776
+ resolve(this._def);
11777
+ }
11778
+ }
11779
+ _resolveProps(def) {
11780
+ const { props } = def;
11781
+ const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11782
+ for (const key of Object.keys(this)) {
11783
+ if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11784
+ this._setProp(key, this[key], true, false);
11741
11785
  }
11742
- addTransitionClass(el, enterActiveClass);
11743
- },
11744
- onBeforeAppear(el) {
11745
- callHook(onBeforeAppear, [el]);
11746
- addTransitionClass(el, appearFromClass);
11747
- if (legacyClassEnabled && legacyAppearFromClass) {
11748
- addTransitionClass(el, legacyAppearFromClass);
11786
+ }
11787
+ for (const key of declaredPropKeys.map(camelize)) {
11788
+ Object.defineProperty(this, key, {
11789
+ get() {
11790
+ return this._getProp(key);
11791
+ },
11792
+ set(val) {
11793
+ this._setProp(key, val);
11794
+ }
11795
+ });
11796
+ }
11797
+ }
11798
+ _setAttr(key) {
11799
+ let value = this.getAttribute(key);
11800
+ const camelKey = camelize(key);
11801
+ if (this._numberProps && this._numberProps[camelKey]) {
11802
+ value = toNumber(value);
11803
+ }
11804
+ this._setProp(camelKey, value, false);
11805
+ }
11806
+ /**
11807
+ * @internal
11808
+ */
11809
+ _getProp(key) {
11810
+ return this._props[key];
11811
+ }
11812
+ /**
11813
+ * @internal
11814
+ */
11815
+ _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11816
+ if (val !== this._props[key]) {
11817
+ this._props[key] = val;
11818
+ if (shouldUpdate && this._instance) {
11819
+ this._update();
11749
11820
  }
11750
- addTransitionClass(el, appearActiveClass);
11751
- },
11752
- onEnter: makeEnterHook(false),
11753
- onAppear: makeEnterHook(true),
11754
- onLeave(el, done) {
11755
- el._isLeaving = true;
11756
- const resolve = () => finishLeave(el, done);
11757
- addTransitionClass(el, leaveFromClass);
11758
- if (legacyClassEnabled && legacyLeaveFromClass) {
11759
- addTransitionClass(el, legacyLeaveFromClass);
11821
+ if (shouldReflect) {
11822
+ if (val === true) {
11823
+ this.setAttribute(hyphenate(key), "");
11824
+ } else if (typeof val === "string" || typeof val === "number") {
11825
+ this.setAttribute(hyphenate(key), val + "");
11826
+ } else if (!val) {
11827
+ this.removeAttribute(hyphenate(key));
11828
+ }
11760
11829
  }
11761
- forceReflow();
11762
- addTransitionClass(el, leaveActiveClass);
11763
- nextFrame(() => {
11764
- if (!el._isLeaving) {
11765
- return;
11830
+ }
11831
+ }
11832
+ _update() {
11833
+ render(this._createVNode(), this.shadowRoot);
11834
+ }
11835
+ _createVNode() {
11836
+ const vnode = createVNode(this._def, extend({}, this._props));
11837
+ if (!this._instance) {
11838
+ vnode.ce = (instance) => {
11839
+ this._instance = instance;
11840
+ instance.isCE = true;
11841
+ if (!!(process.env.NODE_ENV !== "production")) {
11842
+ instance.ceReload = (newStyles) => {
11843
+ if (this._styles) {
11844
+ this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11845
+ this._styles.length = 0;
11846
+ }
11847
+ this._applyStyles(newStyles);
11848
+ this._instance = null;
11849
+ this._update();
11850
+ };
11766
11851
  }
11767
- removeTransitionClass(el, leaveFromClass);
11768
- if (legacyClassEnabled && legacyLeaveFromClass) {
11769
- removeTransitionClass(el, legacyLeaveFromClass);
11852
+ const dispatch = (event, args) => {
11853
+ this.dispatchEvent(
11854
+ new CustomEvent(event, {
11855
+ detail: args
11856
+ })
11857
+ );
11858
+ };
11859
+ instance.emit = (event, ...args) => {
11860
+ dispatch(event, args);
11861
+ if (hyphenate(event) !== event) {
11862
+ dispatch(hyphenate(event), args);
11863
+ }
11864
+ };
11865
+ let parent = this;
11866
+ while (parent = parent && (parent.parentNode || parent.host)) {
11867
+ if (parent instanceof VueElement) {
11868
+ instance.parent = parent._instance;
11869
+ instance.provides = parent._instance.provides;
11870
+ break;
11871
+ }
11770
11872
  }
11771
- addTransitionClass(el, leaveToClass);
11772
- if (!hasExplicitCallback(onLeave)) {
11773
- whenTransitionEnds(el, type, leaveDuration, resolve);
11873
+ };
11874
+ }
11875
+ return vnode;
11876
+ }
11877
+ _applyStyles(styles) {
11878
+ if (styles) {
11879
+ styles.forEach((css) => {
11880
+ const s = document.createElement("style");
11881
+ s.textContent = css;
11882
+ this.shadowRoot.appendChild(s);
11883
+ if (!!(process.env.NODE_ENV !== "production")) {
11884
+ (this._styles || (this._styles = [])).push(s);
11774
11885
  }
11775
11886
  });
11776
- callHook(onLeave, [el, resolve]);
11777
- },
11778
- onEnterCancelled(el) {
11779
- finishEnter(el, false);
11780
- callHook(onEnterCancelled, [el]);
11781
- },
11782
- onAppearCancelled(el) {
11783
- finishEnter(el, true);
11784
- callHook(onAppearCancelled, [el]);
11785
- },
11786
- onLeaveCancelled(el) {
11787
- finishLeave(el);
11788
- callHook(onLeaveCancelled, [el]);
11789
11887
  }
11790
- });
11791
- }
11792
- function normalizeDuration(duration) {
11793
- if (duration == null) {
11794
- return null;
11795
- } else if (isObject(duration)) {
11796
- return [NumberOf(duration.enter), NumberOf(duration.leave)];
11797
- } else {
11798
- const n = NumberOf(duration);
11799
- return [n, n];
11800
- }
11801
- }
11802
- function NumberOf(val) {
11803
- const res = toNumber(val);
11804
- if (!!(process.env.NODE_ENV !== "production")) {
11805
- assertNumber(res, "<transition> explicit duration");
11806
11888
  }
11807
- return res;
11808
- }
11809
- function addTransitionClass(el, cls) {
11810
- cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11811
- (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);
11812
11889
  }
11813
- function removeTransitionClass(el, cls) {
11814
- cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11815
- const { _vtc } = el;
11816
- if (_vtc) {
11817
- _vtc.delete(cls);
11818
- if (!_vtc.size) {
11819
- el._vtc = void 0;
11890
+
11891
+ function useCssModule(name = "$style") {
11892
+ {
11893
+ const instance = getCurrentInstance();
11894
+ if (!instance) {
11895
+ !!(process.env.NODE_ENV !== "production") && warn(`useCssModule must be called inside setup()`);
11896
+ return EMPTY_OBJ;
11820
11897
  }
11821
- }
11822
- }
11823
- function nextFrame(cb) {
11824
- requestAnimationFrame(() => {
11825
- requestAnimationFrame(cb);
11826
- });
11827
- }
11828
- let endId = 0;
11829
- function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11830
- const id = el._endId = ++endId;
11831
- const resolveIfNotStale = () => {
11832
- if (id === el._endId) {
11833
- resolve();
11898
+ const modules = instance.type.__cssModules;
11899
+ if (!modules) {
11900
+ !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS modules injected.`);
11901
+ return EMPTY_OBJ;
11834
11902
  }
11835
- };
11836
- if (explicitTimeout) {
11837
- return setTimeout(resolveIfNotStale, explicitTimeout);
11903
+ const mod = modules[name];
11904
+ if (!mod) {
11905
+ !!(process.env.NODE_ENV !== "production") && warn(`Current instance does not have CSS module named "${name}".`);
11906
+ return EMPTY_OBJ;
11907
+ }
11908
+ return mod;
11838
11909
  }
11839
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11840
- if (!type) {
11841
- return resolve();
11910
+ }
11911
+
11912
+ function useCssVars(getter) {
11913
+ const instance = getCurrentInstance();
11914
+ if (!instance) {
11915
+ !!(process.env.NODE_ENV !== "production") && warn(`useCssVars is called without current active component instance.`);
11916
+ return;
11842
11917
  }
11843
- const endEvent = type + "end";
11844
- let ended = 0;
11845
- const end = () => {
11846
- el.removeEventListener(endEvent, onEnd);
11847
- resolveIfNotStale();
11918
+ const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11919
+ Array.from(
11920
+ document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11921
+ ).forEach((node) => setVarsOnNode(node, vars));
11848
11922
  };
11849
- const onEnd = (e) => {
11850
- if (e.target === el && ++ended >= propCount) {
11851
- end();
11852
- }
11923
+ const setVars = () => {
11924
+ const vars = getter(instance.proxy);
11925
+ setVarsOnVNode(instance.subTree, vars);
11926
+ updateTeleports(vars);
11853
11927
  };
11854
- setTimeout(() => {
11855
- if (ended < propCount) {
11856
- end();
11857
- }
11858
- }, timeout + 1);
11859
- el.addEventListener(endEvent, onEnd);
11928
+ watchPostEffect(setVars);
11929
+ onMounted(() => {
11930
+ const ob = new MutationObserver(setVars);
11931
+ ob.observe(instance.subTree.el.parentNode, { childList: true });
11932
+ onUnmounted(() => ob.disconnect());
11933
+ });
11860
11934
  }
11861
- function getTransitionInfo(el, expectedType) {
11862
- const styles = window.getComputedStyle(el);
11863
- const getStyleProperties = (key) => (styles[key] || "").split(", ");
11864
- const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`);
11865
- const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`);
11866
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11867
- const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11868
- const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11869
- const animationTimeout = getTimeout(animationDelays, animationDurations);
11870
- let type = null;
11871
- let timeout = 0;
11872
- let propCount = 0;
11873
- if (expectedType === TRANSITION$1) {
11874
- if (transitionTimeout > 0) {
11875
- type = TRANSITION$1;
11876
- timeout = transitionTimeout;
11877
- propCount = transitionDurations.length;
11935
+ function setVarsOnVNode(vnode, vars) {
11936
+ if (vnode.shapeFlag & 128) {
11937
+ const suspense = vnode.suspense;
11938
+ vnode = suspense.activeBranch;
11939
+ if (suspense.pendingBranch && !suspense.isHydrating) {
11940
+ suspense.effects.push(() => {
11941
+ setVarsOnVNode(suspense.activeBranch, vars);
11942
+ });
11878
11943
  }
11879
- } else if (expectedType === ANIMATION) {
11880
- if (animationTimeout > 0) {
11881
- type = ANIMATION;
11882
- timeout = animationTimeout;
11883
- propCount = animationDurations.length;
11944
+ }
11945
+ while (vnode.component) {
11946
+ vnode = vnode.component.subTree;
11947
+ }
11948
+ if (vnode.shapeFlag & 1 && vnode.el) {
11949
+ setVarsOnNode(vnode.el, vars);
11950
+ } else if (vnode.type === Fragment) {
11951
+ vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11952
+ } else if (vnode.type === Static) {
11953
+ let { el, anchor } = vnode;
11954
+ while (el) {
11955
+ setVarsOnNode(el, vars);
11956
+ if (el === anchor)
11957
+ break;
11958
+ el = el.nextSibling;
11884
11959
  }
11885
- } else {
11886
- timeout = Math.max(transitionTimeout, animationTimeout);
11887
- type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null;
11888
- propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0;
11889
11960
  }
11890
- const hasTransform = type === TRANSITION$1 && /\b(transform|all)(,|$)/.test(
11891
- getStyleProperties(`${TRANSITION$1}Property`).toString()
11892
- );
11893
- return {
11894
- type,
11895
- timeout,
11896
- propCount,
11897
- hasTransform
11898
- };
11899
11961
  }
11900
- function getTimeout(delays, durations) {
11901
- while (delays.length < durations.length) {
11902
- delays = delays.concat(delays);
11962
+ function setVarsOnNode(el, vars) {
11963
+ if (el.nodeType === 1) {
11964
+ const style = el.style;
11965
+ for (const key in vars) {
11966
+ style.setProperty(`--${key}`, vars[key]);
11967
+ }
11903
11968
  }
11904
- return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11905
- }
11906
- function toMs(s) {
11907
- return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11908
- }
11909
- function forceReflow() {
11910
- return document.body.offsetHeight;
11911
11969
  }
11912
11970
 
11913
11971
  const positionMap = /* @__PURE__ */ new WeakMap();
11914
11972
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11973
+ const moveCbKey = Symbol("_moveCb");
11974
+ const enterCbKey = Symbol("_enterCb");
11915
11975
  const TransitionGroupImpl = {
11916
11976
  name: "TransitionGroup",
11917
11977
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
@@ -11944,13 +12004,13 @@ const TransitionGroupImpl = {
11944
12004
  const style = el.style;
11945
12005
  addTransitionClass(el, moveClass);
11946
12006
  style.transform = style.webkitTransform = style.transitionDuration = "";
11947
- const cb = el._moveCb = (e) => {
12007
+ const cb = el[moveCbKey] = (e) => {
11948
12008
  if (e && e.target !== el) {
11949
12009
  return;
11950
12010
  }
11951
12011
  if (!e || /transform$/.test(e.propertyName)) {
11952
12012
  el.removeEventListener("transitionend", cb);
11953
- el._moveCb = null;
12013
+ el[moveCbKey] = null;
11954
12014
  removeTransitionClass(el, moveClass);
11955
12015
  }
11956
12016
  };
@@ -12002,11 +12062,11 @@ const removeMode = (props) => delete props.mode;
12002
12062
  const TransitionGroup = TransitionGroupImpl;
12003
12063
  function callPendingCbs(c) {
12004
12064
  const el = c.el;
12005
- if (el._moveCb) {
12006
- el._moveCb();
12065
+ if (el[moveCbKey]) {
12066
+ el[moveCbKey]();
12007
12067
  }
12008
- if (el._enterCb) {
12009
- el._enterCb();
12068
+ if (el[enterCbKey]) {
12069
+ el[enterCbKey]();
12010
12070
  }
12011
12071
  }
12012
12072
  function recordPosition(c) {
@@ -12026,8 +12086,9 @@ function applyTranslation(c) {
12026
12086
  }
12027
12087
  function hasCSSTransform(el, root, moveClass) {
12028
12088
  const clone = el.cloneNode();
12029
- if (el._vtc) {
12030
- el._vtc.forEach((cls) => {
12089
+ const _vtc = el[vtcKey];
12090
+ if (_vtc) {
12091
+ _vtc.forEach((cls) => {
12031
12092
  cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
12032
12093
  });
12033
12094
  }
@@ -12054,9 +12115,10 @@ function onCompositionEnd(e) {
12054
12115
  target.dispatchEvent(new Event("input"));
12055
12116
  }
12056
12117
  }
12118
+ const assignKey = Symbol("_assign");
12057
12119
  const vModelText = {
12058
12120
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
12059
- el._assign = getModelAssigner(vnode);
12121
+ el[assignKey] = getModelAssigner(vnode);
12060
12122
  const castToNumber = number || vnode.props && vnode.props.type === "number";
12061
12123
  addEventListener(el, lazy ? "change" : "input", (e) => {
12062
12124
  if (e.target.composing)
@@ -12068,7 +12130,7 @@ const vModelText = {
12068
12130
  if (castToNumber) {
12069
12131
  domValue = looseToNumber(domValue);
12070
12132
  }
12071
- el._assign(domValue);
12133
+ el[assignKey](domValue);
12072
12134
  });
12073
12135
  if (trim) {
12074
12136
  addEventListener(el, "change", () => {
@@ -12086,7 +12148,7 @@ const vModelText = {
12086
12148
  el.value = value == null ? "" : value;
12087
12149
  },
12088
12150
  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
12089
- el._assign = getModelAssigner(vnode);
12151
+ el[assignKey] = getModelAssigner(vnode);
12090
12152
  if (el.composing)
12091
12153
  return;
12092
12154
  if (document.activeElement === el && el.type !== "range") {
@@ -12110,12 +12172,12 @@ const vModelCheckbox = {
12110
12172
  // #4096 array checkboxes need to be deep traversed
12111
12173
  deep: true,
12112
12174
  created(el, _, vnode) {
12113
- el._assign = getModelAssigner(vnode);
12175
+ el[assignKey] = getModelAssigner(vnode);
12114
12176
  addEventListener(el, "change", () => {
12115
12177
  const modelValue = el._modelValue;
12116
12178
  const elementValue = getValue(el);
12117
12179
  const checked = el.checked;
12118
- const assign = el._assign;
12180
+ const assign = el[assignKey];
12119
12181
  if (isArray(modelValue)) {
12120
12182
  const index = looseIndexOf(modelValue, elementValue);
12121
12183
  const found = index !== -1;
@@ -12142,7 +12204,7 @@ const vModelCheckbox = {
12142
12204
  // set initial checked on mount to wait for true-value/false-value
12143
12205
  mounted: setChecked,
12144
12206
  beforeUpdate(el, binding, vnode) {
12145
- el._assign = getModelAssigner(vnode);
12207
+ el[assignKey] = getModelAssigner(vnode);
12146
12208
  setChecked(el, binding, vnode);
12147
12209
  }
12148
12210
  };
@@ -12159,13 +12221,13 @@ function setChecked(el, { value, oldValue }, vnode) {
12159
12221
  const vModelRadio = {
12160
12222
  created(el, { value }, vnode) {
12161
12223
  el.checked = looseEqual(value, vnode.props.value);
12162
- el._assign = getModelAssigner(vnode);
12224
+ el[assignKey] = getModelAssigner(vnode);
12163
12225
  addEventListener(el, "change", () => {
12164
- el._assign(getValue(el));
12226
+ el[assignKey](getValue(el));
12165
12227
  });
12166
12228
  },
12167
12229
  beforeUpdate(el, { value, oldValue }, vnode) {
12168
- el._assign = getModelAssigner(vnode);
12230
+ el[assignKey] = getModelAssigner(vnode);
12169
12231
  if (value !== oldValue) {
12170
12232
  el.checked = looseEqual(value, vnode.props.value);
12171
12233
  }
@@ -12180,11 +12242,11 @@ const vModelSelect = {
12180
12242
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
12181
12243
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
12182
12244
  );
12183
- el._assign(
12245
+ el[assignKey](
12184
12246
  el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
12185
12247
  );
12186
12248
  });
12187
- el._assign = getModelAssigner(vnode);
12249
+ el[assignKey] = getModelAssigner(vnode);
12188
12250
  },
12189
12251
  // set value in mounted & updated because <select> relies on its children
12190
12252
  // <option>s.
@@ -12192,7 +12254,7 @@ const vModelSelect = {
12192
12254
  setSelected(el, value);
12193
12255
  },
12194
12256
  beforeUpdate(el, _binding, vnode) {
12195
- el._assign = getModelAssigner(vnode);
12257
+ el[assignKey] = getModelAssigner(vnode);
12196
12258
  },
12197
12259
  updated(el, { value }) {
12198
12260
  setSelected(el, value);
@@ -12389,52 +12451,6 @@ const withKeys = (fn, modifiers) => {
12389
12451
  };
12390
12452
  };
12391
12453
 
12392
- const vShow = {
12393
- beforeMount(el, { value }, { transition }) {
12394
- el._vod = el.style.display === "none" ? "" : el.style.display;
12395
- if (transition && value) {
12396
- transition.beforeEnter(el);
12397
- } else {
12398
- setDisplay(el, value);
12399
- }
12400
- },
12401
- mounted(el, { value }, { transition }) {
12402
- if (transition && value) {
12403
- transition.enter(el);
12404
- }
12405
- },
12406
- updated(el, { value, oldValue }, { transition }) {
12407
- if (!value === !oldValue)
12408
- return;
12409
- if (transition) {
12410
- if (value) {
12411
- transition.beforeEnter(el);
12412
- setDisplay(el, true);
12413
- transition.enter(el);
12414
- } else {
12415
- transition.leave(el, () => {
12416
- setDisplay(el, false);
12417
- });
12418
- }
12419
- } else {
12420
- setDisplay(el, value);
12421
- }
12422
- },
12423
- beforeUnmount(el, { value }) {
12424
- setDisplay(el, value);
12425
- }
12426
- };
12427
- function setDisplay(el, value) {
12428
- el.style.display = value ? el._vod : "none";
12429
- }
12430
- function initVShowForSSR() {
12431
- vShow.getSSRProps = ({ value }) => {
12432
- if (!value) {
12433
- return { style: { display: "none" } };
12434
- }
12435
- };
12436
- }
12437
-
12438
12454
  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
12439
12455
  let renderer;
12440
12456
  let enabledHydration = false;
@@ -13474,7 +13490,7 @@ function parseChildren(context, mode, ancestors) {
13474
13490
  continue;
13475
13491
  } else if (/[a-z]/i.test(s[2])) {
13476
13492
  emitError(context, 23);
13477
- parseTag(context, TagType.End, parent);
13493
+ parseTag(context, 1 /* End */, parent);
13478
13494
  continue;
13479
13495
  } else {
13480
13496
  emitError(
@@ -13635,7 +13651,7 @@ function parseElement(context, ancestors) {
13635
13651
  const wasInPre = context.inPre;
13636
13652
  const wasInVPre = context.inVPre;
13637
13653
  const parent = last(ancestors);
13638
- const element = parseTag(context, TagType.Start, parent);
13654
+ const element = parseTag(context, 0 /* Start */, parent);
13639
13655
  const isPreBoundary = context.inPre && !wasInPre;
13640
13656
  const isVPreBoundary = context.inVPre && !wasInVPre;
13641
13657
  if (element.isSelfClosing || context.options.isVoidTag(element.tag)) {
@@ -13670,7 +13686,7 @@ function parseElement(context, ancestors) {
13670
13686
  }
13671
13687
  element.children = children;
13672
13688
  if (startsWithEndTagOpen(context.source, element.tag)) {
13673
- parseTag(context, TagType.End, parent);
13689
+ parseTag(context, 1 /* End */, parent);
13674
13690
  } else {
13675
13691
  emitError(context, 24, 0, element.loc.start);
13676
13692
  if (context.source.length === 0 && element.tag.toLowerCase() === "script") {
@@ -13689,11 +13705,6 @@ function parseElement(context, ancestors) {
13689
13705
  }
13690
13706
  return element;
13691
13707
  }
13692
- var TagType = /* @__PURE__ */ ((TagType2) => {
13693
- TagType2[TagType2["Start"] = 0] = "Start";
13694
- TagType2[TagType2["End"] = 1] = "End";
13695
- return TagType2;
13696
- })(TagType || {});
13697
13708
  const isSpecialTemplateDirective = /* @__PURE__ */ makeMap(
13698
13709
  `if,else,else-if,for,slot`
13699
13710
  );