@vue/compat 3.3.4 → 3.3.6

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.
@@ -37,7 +37,7 @@ var Vue = (function () {
37
37
  const isSymbol = (val) => typeof val === "symbol";
38
38
  const isObject = (val) => val !== null && typeof val === "object";
39
39
  const isPromise = (val) => {
40
- return isObject(val) && isFunction(val.then) && isFunction(val.catch);
40
+ return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
41
41
  };
42
42
  const objectToString = Object.prototype.toString;
43
43
  const toTypeString = (value) => objectToString.call(value);
@@ -68,12 +68,13 @@ var Vue = (function () {
68
68
  const hyphenate = cacheStringFunction(
69
69
  (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
70
70
  );
71
- const capitalize = cacheStringFunction(
72
- (str) => str.charAt(0).toUpperCase() + str.slice(1)
73
- );
74
- const toHandlerKey = cacheStringFunction(
75
- (str) => str ? `on${capitalize(str)}` : ``
76
- );
71
+ const capitalize = cacheStringFunction((str) => {
72
+ return str.charAt(0).toUpperCase() + str.slice(1);
73
+ });
74
+ const toHandlerKey = cacheStringFunction((str) => {
75
+ const s = str ? `on${capitalize(str)}` : ``;
76
+ return s;
77
+ });
77
78
  const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
78
79
  const invokeArrayFns = (fns, arg) => {
79
80
  for (let i = 0; i < fns.length; i++) {
@@ -123,8 +124,8 @@ var Vue = (function () {
123
124
  [3]: "FORWARDED"
124
125
  };
125
126
 
126
- 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";
127
- const isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);
127
+ 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";
128
+ const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
128
129
 
129
130
  const range = 2;
130
131
  function generateCodeFrame(source, start = 0, end = source.length) {
@@ -179,9 +180,7 @@ var Vue = (function () {
179
180
  }
180
181
  }
181
182
  return res;
182
- } else if (isString(value)) {
183
- return value;
184
- } else if (isObject(value)) {
183
+ } else if (isString(value) || isObject(value)) {
185
184
  return value;
186
185
  }
187
186
  }
@@ -530,7 +529,7 @@ var Vue = (function () {
530
529
  }
531
530
  }
532
531
  function effect(fn, options) {
533
- if (fn.effect) {
532
+ if (fn.effect instanceof ReactiveEffect) {
534
533
  fn = fn.effect.fn;
535
534
  }
536
535
  const _effect = new ReactiveEffect(fn);
@@ -696,10 +695,6 @@ var Vue = (function () {
696
695
  const builtInSymbols = new Set(
697
696
  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
698
697
  );
699
- const get$1 = /* @__PURE__ */ createGetter();
700
- const shallowGet = /* @__PURE__ */ createGetter(false, true);
701
- const readonlyGet = /* @__PURE__ */ createGetter(true);
702
- const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);
703
698
  const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
704
699
  function createArrayInstrumentations() {
705
700
  const instrumentations = {};
@@ -732,8 +727,13 @@ var Vue = (function () {
732
727
  track(obj, "has", key);
733
728
  return obj.hasOwnProperty(key);
734
729
  }
735
- function createGetter(isReadonly2 = false, shallow = false) {
736
- return function get2(target, key, receiver) {
730
+ class BaseReactiveHandler {
731
+ constructor(_isReadonly = false, _shallow = false) {
732
+ this._isReadonly = _isReadonly;
733
+ this._shallow = _shallow;
734
+ }
735
+ get(target, key, receiver) {
736
+ const isReadonly2 = this._isReadonly, shallow = this._shallow;
737
737
  if (key === "__v_isReactive") {
738
738
  return !isReadonly2;
739
739
  } else if (key === "__v_isReadonly") {
@@ -769,17 +769,18 @@ var Vue = (function () {
769
769
  return isReadonly2 ? readonly(res) : reactive(res);
770
770
  }
771
771
  return res;
772
- };
772
+ }
773
773
  }
774
- const set$1 = /* @__PURE__ */ createSetter();
775
- const shallowSet = /* @__PURE__ */ createSetter(true);
776
- function createSetter(shallow = false) {
777
- return function set2(target, key, value, receiver) {
774
+ class MutableReactiveHandler extends BaseReactiveHandler {
775
+ constructor(shallow = false) {
776
+ super(false, shallow);
777
+ }
778
+ set(target, key, value, receiver) {
778
779
  let oldValue = target[key];
779
780
  if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
780
781
  return false;
781
782
  }
782
- if (!shallow) {
783
+ if (!this._shallow) {
783
784
  if (!isShallow(value) && !isReadonly(value)) {
784
785
  oldValue = toRaw(oldValue);
785
786
  value = toRaw(value);
@@ -799,37 +800,36 @@ var Vue = (function () {
799
800
  }
800
801
  }
801
802
  return result;
802
- };
803
- }
804
- function deleteProperty(target, key) {
805
- const hadKey = hasOwn(target, key);
806
- const oldValue = target[key];
807
- const result = Reflect.deleteProperty(target, key);
808
- if (result && hadKey) {
809
- trigger(target, "delete", key, void 0, oldValue);
810
803
  }
811
- return result;
812
- }
813
- function has$1(target, key) {
814
- const result = Reflect.has(target, key);
815
- if (!isSymbol(key) || !builtInSymbols.has(key)) {
816
- track(target, "has", key);
804
+ deleteProperty(target, key) {
805
+ const hadKey = hasOwn(target, key);
806
+ const oldValue = target[key];
807
+ const result = Reflect.deleteProperty(target, key);
808
+ if (result && hadKey) {
809
+ trigger(target, "delete", key, void 0, oldValue);
810
+ }
811
+ return result;
812
+ }
813
+ has(target, key) {
814
+ const result = Reflect.has(target, key);
815
+ if (!isSymbol(key) || !builtInSymbols.has(key)) {
816
+ track(target, "has", key);
817
+ }
818
+ return result;
819
+ }
820
+ ownKeys(target) {
821
+ track(
822
+ target,
823
+ "iterate",
824
+ isArray(target) ? "length" : ITERATE_KEY
825
+ );
826
+ return Reflect.ownKeys(target);
817
827
  }
818
- return result;
819
- }
820
- function ownKeys(target) {
821
- track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY);
822
- return Reflect.ownKeys(target);
823
828
  }
824
- const mutableHandlers = {
825
- get: get$1,
826
- set: set$1,
827
- deleteProperty,
828
- has: has$1,
829
- ownKeys
830
- };
831
- const readonlyHandlers = {
832
- get: readonlyGet,
829
+ class ReadonlyReactiveHandler extends BaseReactiveHandler {
830
+ constructor(shallow = false) {
831
+ super(true, shallow);
832
+ }
833
833
  set(target, key) {
834
834
  {
835
835
  warn$1(
@@ -838,7 +838,7 @@ var Vue = (function () {
838
838
  );
839
839
  }
840
840
  return true;
841
- },
841
+ }
842
842
  deleteProperty(target, key) {
843
843
  {
844
844
  warn$1(
@@ -848,22 +848,13 @@ var Vue = (function () {
848
848
  }
849
849
  return true;
850
850
  }
851
- };
852
- const shallowReactiveHandlers = /* @__PURE__ */ extend(
853
- {},
854
- mutableHandlers,
855
- {
856
- get: shallowGet,
857
- set: shallowSet
858
- }
859
- );
860
- const shallowReadonlyHandlers = /* @__PURE__ */ extend(
861
- {},
862
- readonlyHandlers,
863
- {
864
- get: shallowReadonlyGet
865
- }
851
+ }
852
+ const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
853
+ const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
854
+ const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(
855
+ true
866
856
  );
857
+ const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
867
858
 
868
859
  const toShallow = (value) => value;
869
860
  const getProto = (v) => Reflect.getPrototypeOf(v);
@@ -872,7 +863,7 @@ var Vue = (function () {
872
863
  const rawTarget = toRaw(target);
873
864
  const rawKey = toRaw(key);
874
865
  if (!isReadonly) {
875
- if (key !== rawKey) {
866
+ if (hasChanged(key, rawKey)) {
876
867
  track(rawTarget, "get", key);
877
868
  }
878
869
  track(rawTarget, "get", rawKey);
@@ -892,7 +883,7 @@ var Vue = (function () {
892
883
  const rawTarget = toRaw(target);
893
884
  const rawKey = toRaw(key);
894
885
  if (!isReadonly) {
895
- if (key !== rawKey) {
886
+ if (hasChanged(key, rawKey)) {
896
887
  track(rawTarget, "has", key);
897
888
  }
898
889
  track(rawTarget, "has", rawKey);
@@ -1422,11 +1413,7 @@ var Vue = (function () {
1422
1413
  }
1423
1414
  function propertyToRef(source, key, defaultValue) {
1424
1415
  const val = source[key];
1425
- return isRef(val) ? val : new ObjectRefImpl(
1426
- source,
1427
- key,
1428
- defaultValue
1429
- );
1416
+ return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
1430
1417
  }
1431
1418
 
1432
1419
  class ComputedRefImpl {
@@ -3720,9 +3707,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3720
3707
  }
3721
3708
  if (cb) {
3722
3709
  const newValue = effect.run();
3723
- if (deep || forceTrigger || (isMultiSource ? newValue.some(
3724
- (v, i) => hasChanged(v, oldValue[i])
3725
- ) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) {
3710
+ if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) {
3726
3711
  if (cleanup) {
3727
3712
  cleanup();
3728
3713
  }
@@ -3896,6 +3881,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3896
3881
  }
3897
3882
  }
3898
3883
 
3884
+ const leaveCbKey = Symbol("_leaveCb");
3885
+ const enterCbKey$1 = Symbol("_enterCb");
3899
3886
  function useTransitionState() {
3900
3887
  const state = {
3901
3888
  isMounted: false,
@@ -4016,9 +4003,9 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4016
4003
  oldInnerChild
4017
4004
  );
4018
4005
  leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
4019
- el._leaveCb = () => {
4006
+ el[leaveCbKey] = () => {
4020
4007
  earlyRemove();
4021
- el._leaveCb = void 0;
4008
+ el[leaveCbKey] = void 0;
4022
4009
  delete enterHooks.delayedLeave;
4023
4010
  };
4024
4011
  enterHooks.delayedLeave = delayedLeave;
@@ -4092,15 +4079,15 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4092
4079
  return;
4093
4080
  }
4094
4081
  }
4095
- if (el._leaveCb) {
4096
- el._leaveCb(
4082
+ if (el[leaveCbKey]) {
4083
+ el[leaveCbKey](
4097
4084
  true
4098
4085
  /* cancelled */
4099
4086
  );
4100
4087
  }
4101
4088
  const leavingVNode = leavingVNodesCache[key];
4102
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {
4103
- leavingVNode.el._leaveCb();
4089
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4090
+ leavingVNode.el[leaveCbKey]();
4104
4091
  }
4105
4092
  callHook(hook, [el]);
4106
4093
  },
@@ -4118,7 +4105,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4118
4105
  }
4119
4106
  }
4120
4107
  let called = false;
4121
- const done = el._enterCb = (cancelled) => {
4108
+ const done = el[enterCbKey$1] = (cancelled) => {
4122
4109
  if (called)
4123
4110
  return;
4124
4111
  called = true;
@@ -4130,7 +4117,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4130
4117
  if (hooks.delayedLeave) {
4131
4118
  hooks.delayedLeave();
4132
4119
  }
4133
- el._enterCb = void 0;
4120
+ el[enterCbKey$1] = void 0;
4134
4121
  };
4135
4122
  if (hook) {
4136
4123
  callAsyncHook(hook, [el, done]);
@@ -4140,8 +4127,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4140
4127
  },
4141
4128
  leave(el, remove) {
4142
4129
  const key2 = String(vnode.key);
4143
- if (el._enterCb) {
4144
- el._enterCb(
4130
+ if (el[enterCbKey$1]) {
4131
+ el[enterCbKey$1](
4145
4132
  true
4146
4133
  /* cancelled */
4147
4134
  );
@@ -4151,7 +4138,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4151
4138
  }
4152
4139
  callHook(onBeforeLeave, [el]);
4153
4140
  let called = false;
4154
- const done = el._leaveCb = (cancelled) => {
4141
+ const done = el[leaveCbKey] = (cancelled) => {
4155
4142
  if (called)
4156
4143
  return;
4157
4144
  called = true;
@@ -4161,7 +4148,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4161
4148
  } else {
4162
4149
  callHook(onAfterLeave, [el]);
4163
4150
  }
4164
- el._leaveCb = void 0;
4151
+ el[leaveCbKey] = void 0;
4165
4152
  if (leavingVNodesCache[key2] === vnode) {
4166
4153
  delete leavingVNodesCache[key2];
4167
4154
  }
@@ -4223,6 +4210,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4223
4210
  return ret;
4224
4211
  }
4225
4212
 
4213
+ /*! #__NO_SIDE_EFFECTS__ */
4214
+ // @__NO_SIDE_EFFECTS__
4226
4215
  function defineComponent(options, extraOptions) {
4227
4216
  return isFunction(options) ? (
4228
4217
  // #8326: extend call and options.name access are considered side-effects
@@ -4232,6 +4221,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4232
4221
  }
4233
4222
 
4234
4223
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4224
+ /*! #__NO_SIDE_EFFECTS__ */
4225
+ // @__NO_SIDE_EFFECTS__
4235
4226
  function defineAsyncComponent(source) {
4236
4227
  if (isFunction(source)) {
4237
4228
  source = { loader: source };
@@ -4963,7 +4954,7 @@ If this is a native custom element, make sure to exclude it from component resol
4963
4954
  }
4964
4955
  }
4965
4956
 
4966
- const normalizedFunctionalComponentMap = /* @__PURE__ */ new Map();
4957
+ const normalizedFunctionalComponentMap = /* @__PURE__ */ new WeakMap();
4967
4958
  const legacySlotProxyHandlers = {
4968
4959
  get(target, key) {
4969
4960
  const slot = target[key];
@@ -5244,6 +5235,7 @@ If this is a native custom element, make sure to exclude it from component resol
5244
5235
  function installCompatInstanceProperties(map) {
5245
5236
  const set = (target, key, val) => {
5246
5237
  target[key] = val;
5238
+ return target[key];
5247
5239
  };
5248
5240
  const del = (target, key) => {
5249
5241
  delete target[key];
@@ -5521,7 +5513,7 @@ If this is a native custom element, make sure to exclude it from component resol
5521
5513
  return PublicInstanceProxyHandlers.get(target, key, target);
5522
5514
  },
5523
5515
  has(_, key) {
5524
- const has = key[0] !== "_" && !isGloballyWhitelisted(key);
5516
+ const has = key[0] !== "_" && !isGloballyAllowed(key);
5525
5517
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
5526
5518
  warn(
5527
5519
  `Property ${JSON.stringify(
@@ -6258,7 +6250,7 @@ If this is a native custom element, make sure to exclude it from component resol
6258
6250
  return vm;
6259
6251
  }
6260
6252
  }
6261
- Vue.version = `2.6.14-compat:${"3.3.4"}`;
6253
+ Vue.version = `2.6.14-compat:${"3.3.6"}`;
6262
6254
  Vue.config = singletonApp.config;
6263
6255
  Vue.use = (p, ...options) => {
6264
6256
  if (p && isFunction(p.install)) {
@@ -6666,12 +6658,12 @@ If this is a native custom element, make sure to exclude it from component resol
6666
6658
  },
6667
6659
  set() {
6668
6660
  warn(
6669
- `app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.`
6661
+ `app.config.unwrapInjectedRef has been deprecated. 3.3 now always unwraps injected refs in Options API.`
6670
6662
  );
6671
6663
  }
6672
6664
  });
6673
6665
  }
6674
- const installedPlugins = /* @__PURE__ */ new Set();
6666
+ const installedPlugins = /* @__PURE__ */ new WeakSet();
6675
6667
  let isMounted = false;
6676
6668
  const app = context.app = {
6677
6669
  _uid: uid$1++,
@@ -6753,10 +6745,7 @@ If this is a native custom element, make sure to exclude it from component resol
6753
6745
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6754
6746
  );
6755
6747
  }
6756
- const vnode = createVNode(
6757
- rootComponent,
6758
- rootProps
6759
- );
6748
+ const vnode = createVNode(rootComponent, rootProps);
6760
6749
  vnode.appContext = context;
6761
6750
  {
6762
6751
  context.reload = () => {
@@ -7415,7 +7404,7 @@ If you want to remount the same app, move your app creation logic into a factory
7415
7404
  }
7416
7405
  if (needDeletionCheck) {
7417
7406
  for (const key in slots) {
7418
- if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {
7407
+ if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {
7419
7408
  delete slots[key];
7420
7409
  }
7421
7410
  }
@@ -7579,8 +7568,10 @@ If you want to remount the same app, move your app creation logic into a factory
7579
7568
  hasMismatch = true;
7580
7569
  warn(
7581
7570
  `Hydration text mismatch:
7582
- - Client: ${JSON.stringify(node.data)}
7583
- - Server: ${JSON.stringify(vnode.children)}`
7571
+ - Server rendered: ${JSON.stringify(
7572
+ node.data
7573
+ )}
7574
+ - Client rendered: ${JSON.stringify(vnode.children)}`
7584
7575
  );
7585
7576
  node.data = vnode.children;
7586
7577
  }
@@ -7783,8 +7774,8 @@ If you want to remount the same app, move your app creation logic into a factory
7783
7774
  hasMismatch = true;
7784
7775
  warn(
7785
7776
  `Hydration text content mismatch in <${vnode.type}>:
7786
- - Client: ${el.textContent}
7787
- - Server: ${vnode.children}`
7777
+ - Server rendered: ${el.textContent}
7778
+ - Client rendered: ${vnode.children}`
7788
7779
  );
7789
7780
  el.textContent = vnode.children;
7790
7781
  }
@@ -9566,6 +9557,10 @@ If you want to remount the same app, move your app creation logic into a factory
9566
9557
  internals,
9567
9558
  1
9568
9559
  );
9560
+ } else {
9561
+ if (n2.props && n1.props && n2.props.to !== n1.props.to) {
9562
+ n2.props.to = n1.props.to;
9563
+ }
9569
9564
  }
9570
9565
  } else {
9571
9566
  if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
@@ -9606,19 +9601,18 @@ If you want to remount the same app, move your app creation logic into a factory
9606
9601
  if (target) {
9607
9602
  hostRemove(targetAnchor);
9608
9603
  }
9609
- if (doRemove || !isTeleportDisabled(props)) {
9610
- hostRemove(anchor);
9611
- if (shapeFlag & 16) {
9612
- for (let i = 0; i < children.length; i++) {
9613
- const child = children[i];
9614
- unmount(
9615
- child,
9616
- parentComponent,
9617
- parentSuspense,
9618
- true,
9619
- !!child.dynamicChildren
9620
- );
9621
- }
9604
+ doRemove && hostRemove(anchor);
9605
+ if (shapeFlag & 16) {
9606
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
9607
+ for (let i = 0; i < children.length; i++) {
9608
+ const child = children[i];
9609
+ unmount(
9610
+ child,
9611
+ parentComponent,
9612
+ parentSuspense,
9613
+ shouldRemove,
9614
+ !!child.dynamicChildren
9615
+ );
9622
9616
  }
9623
9617
  }
9624
9618
  },
@@ -9702,7 +9696,7 @@ If you want to remount the same app, move your app creation logic into a factory
9702
9696
  const ctx = vnode.ctx;
9703
9697
  if (ctx && ctx.ut) {
9704
9698
  let node = vnode.children[0].el;
9705
- while (node !== vnode.targetAnchor) {
9699
+ while (node && node !== vnode.targetAnchor) {
9706
9700
  if (node.nodeType === 1)
9707
9701
  node.setAttribute("data-v-owner", ctx.uid);
9708
9702
  node = node.nextSibling;
@@ -9711,7 +9705,7 @@ If you want to remount the same app, move your app creation logic into a factory
9711
9705
  }
9712
9706
  }
9713
9707
 
9714
- const normalizedAsyncComponentMap = /* @__PURE__ */ new Map();
9708
+ const normalizedAsyncComponentMap = /* @__PURE__ */ new WeakMap();
9715
9709
  function convertLegacyAsyncComponent(comp) {
9716
9710
  if (normalizedAsyncComponentMap.has(comp)) {
9717
9711
  return normalizedAsyncComponentMap.get(comp);
@@ -10419,9 +10413,12 @@ Component that was made reactive: `,
10419
10413
  if (!skipOptions) {
10420
10414
  setCurrentInstance(instance);
10421
10415
  pauseTracking();
10422
- applyOptions(instance);
10423
- resetTracking();
10424
- unsetCurrentInstance();
10416
+ try {
10417
+ applyOptions(instance);
10418
+ } finally {
10419
+ resetTracking();
10420
+ unsetCurrentInstance();
10421
+ }
10425
10422
  }
10426
10423
  if (!Component.render && instance.render === NOOP && !isSSR) {
10427
10424
  if (!compile$1 && Component.template) {
@@ -10781,7 +10778,7 @@ Component that was made reactive: `,
10781
10778
  return true;
10782
10779
  }
10783
10780
 
10784
- const version = "3.3.4";
10781
+ const version = "3.3.6";
10785
10782
  const ssrUtils = null;
10786
10783
  const resolveFilter = resolveFilter$1 ;
10787
10784
  const _compatUtils = {
@@ -10860,922 +10857,977 @@ Component that was made reactive: `,
10860
10857
  }
10861
10858
  };
10862
10859
 
10863
- function patchClass(el, value, isSVG) {
10864
- const transitionClasses = el._vtc;
10865
- if (transitionClasses) {
10866
- value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
10867
- }
10868
- if (value == null) {
10869
- el.removeAttribute("class");
10870
- } else if (isSVG) {
10871
- el.setAttribute("class", value);
10872
- } else {
10873
- el.className = value;
10874
- }
10860
+ const TRANSITION$1 = "transition";
10861
+ const ANIMATION = "animation";
10862
+ const vtcKey = Symbol("_vtc");
10863
+ const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
10864
+ Transition.displayName = "Transition";
10865
+ {
10866
+ Transition.__isBuiltIn = true;
10875
10867
  }
10876
-
10877
- function patchStyle(el, prev, next) {
10878
- const style = el.style;
10879
- const isCssString = isString(next);
10880
- if (next && !isCssString) {
10881
- if (prev && !isString(prev)) {
10882
- for (const key in prev) {
10883
- if (next[key] == null) {
10884
- setStyle(style, key, "");
10885
- }
10886
- }
10887
- }
10888
- for (const key in next) {
10889
- setStyle(style, key, next[key]);
10890
- }
10891
- } else {
10892
- const currentDisplay = style.display;
10893
- if (isCssString) {
10894
- if (prev !== next) {
10895
- style.cssText = next;
10896
- }
10897
- } else if (prev) {
10898
- el.removeAttribute("style");
10899
- }
10900
- if ("_vod" in el) {
10901
- style.display = currentDisplay;
10902
- }
10868
+ const DOMTransitionPropsValidators = {
10869
+ name: String,
10870
+ type: String,
10871
+ css: {
10872
+ type: Boolean,
10873
+ default: true
10874
+ },
10875
+ duration: [String, Number, Object],
10876
+ enterFromClass: String,
10877
+ enterActiveClass: String,
10878
+ enterToClass: String,
10879
+ appearFromClass: String,
10880
+ appearActiveClass: String,
10881
+ appearToClass: String,
10882
+ leaveFromClass: String,
10883
+ leaveActiveClass: String,
10884
+ leaveToClass: String
10885
+ };
10886
+ const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
10887
+ {},
10888
+ BaseTransitionPropsValidators,
10889
+ DOMTransitionPropsValidators
10890
+ );
10891
+ const callHook = (hook, args = []) => {
10892
+ if (isArray(hook)) {
10893
+ hook.forEach((h2) => h2(...args));
10894
+ } else if (hook) {
10895
+ hook(...args);
10903
10896
  }
10904
- }
10905
- const semicolonRE = /[^\\];\s*$/;
10906
- const importantRE = /\s*!important$/;
10907
- function setStyle(style, name, val) {
10908
- if (isArray(val)) {
10909
- val.forEach((v) => setStyle(style, name, v));
10910
- } else {
10911
- if (val == null)
10912
- val = "";
10913
- {
10914
- if (semicolonRE.test(val)) {
10915
- warn(
10916
- `Unexpected semicolon at the end of '${name}' style value: '${val}'`
10917
- );
10918
- }
10919
- }
10920
- if (name.startsWith("--")) {
10921
- style.setProperty(name, val);
10922
- } else {
10923
- const prefixed = autoPrefix(style, name);
10924
- if (importantRE.test(val)) {
10925
- style.setProperty(
10926
- hyphenate(prefixed),
10927
- val.replace(importantRE, ""),
10928
- "important"
10929
- );
10930
- } else {
10931
- style[prefixed] = val;
10932
- }
10897
+ };
10898
+ const hasExplicitCallback = (hook) => {
10899
+ return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
10900
+ };
10901
+ function resolveTransitionProps(rawProps) {
10902
+ const baseProps = {};
10903
+ for (const key in rawProps) {
10904
+ if (!(key in DOMTransitionPropsValidators)) {
10905
+ baseProps[key] = rawProps[key];
10933
10906
  }
10934
10907
  }
10935
- }
10936
- const prefixes = ["Webkit", "Moz", "ms"];
10937
- const prefixCache = {};
10938
- function autoPrefix(style, rawName) {
10939
- const cached = prefixCache[rawName];
10940
- if (cached) {
10941
- return cached;
10942
- }
10943
- let name = camelize(rawName);
10944
- if (name !== "filter" && name in style) {
10945
- return prefixCache[rawName] = name;
10946
- }
10947
- name = capitalize(name);
10948
- for (let i = 0; i < prefixes.length; i++) {
10949
- const prefixed = prefixes[i] + name;
10950
- if (prefixed in style) {
10951
- return prefixCache[rawName] = prefixed;
10952
- }
10908
+ if (rawProps.css === false) {
10909
+ return baseProps;
10953
10910
  }
10954
- return rawName;
10955
- }
10956
-
10957
- const xlinkNS = "http://www.w3.org/1999/xlink";
10958
- function patchAttr(el, key, value, isSVG, instance) {
10959
- if (isSVG && key.startsWith("xlink:")) {
10960
- if (value == null) {
10961
- el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10962
- } else {
10963
- el.setAttributeNS(xlinkNS, key, value);
10911
+ const {
10912
+ name = "v",
10913
+ type,
10914
+ duration,
10915
+ enterFromClass = `${name}-enter-from`,
10916
+ enterActiveClass = `${name}-enter-active`,
10917
+ enterToClass = `${name}-enter-to`,
10918
+ appearFromClass = enterFromClass,
10919
+ appearActiveClass = enterActiveClass,
10920
+ appearToClass = enterToClass,
10921
+ leaveFromClass = `${name}-leave-from`,
10922
+ leaveActiveClass = `${name}-leave-active`,
10923
+ leaveToClass = `${name}-leave-to`
10924
+ } = rawProps;
10925
+ const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
10926
+ let legacyEnterFromClass;
10927
+ let legacyAppearFromClass;
10928
+ let legacyLeaveFromClass;
10929
+ if (legacyClassEnabled) {
10930
+ const toLegacyClass = (cls) => cls.replace(/-from$/, "");
10931
+ if (!rawProps.enterFromClass) {
10932
+ legacyEnterFromClass = toLegacyClass(enterFromClass);
10964
10933
  }
10965
- } else {
10966
- if (compatCoerceAttr(el, key, value, instance)) {
10967
- return;
10934
+ if (!rawProps.appearFromClass) {
10935
+ legacyAppearFromClass = toLegacyClass(appearFromClass);
10968
10936
  }
10969
- const isBoolean = isSpecialBooleanAttr(key);
10970
- if (value == null || isBoolean && !includeBooleanAttr(value)) {
10971
- el.removeAttribute(key);
10972
- } else {
10973
- el.setAttribute(key, isBoolean ? "" : value);
10937
+ if (!rawProps.leaveFromClass) {
10938
+ legacyLeaveFromClass = toLegacyClass(leaveFromClass);
10974
10939
  }
10975
10940
  }
10976
- }
10977
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
10978
- function compatCoerceAttr(el, key, value, instance = null) {
10979
- if (isEnumeratedAttr(key)) {
10980
- const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
10981
- if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
10982
- "ATTR_ENUMERATED_COERCION",
10983
- instance,
10984
- key,
10985
- value,
10986
- v2CoercedValue
10987
- )) {
10988
- el.setAttribute(key, v2CoercedValue);
10989
- return true;
10941
+ const durations = normalizeDuration(duration);
10942
+ const enterDuration = durations && durations[0];
10943
+ const leaveDuration = durations && durations[1];
10944
+ const {
10945
+ onBeforeEnter,
10946
+ onEnter,
10947
+ onEnterCancelled,
10948
+ onLeave,
10949
+ onLeaveCancelled,
10950
+ onBeforeAppear = onBeforeEnter,
10951
+ onAppear = onEnter,
10952
+ onAppearCancelled = onEnterCancelled
10953
+ } = baseProps;
10954
+ const finishEnter = (el, isAppear, done) => {
10955
+ removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
10956
+ removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
10957
+ done && done();
10958
+ };
10959
+ const finishLeave = (el, done) => {
10960
+ el._isLeaving = false;
10961
+ removeTransitionClass(el, leaveFromClass);
10962
+ removeTransitionClass(el, leaveToClass);
10963
+ removeTransitionClass(el, leaveActiveClass);
10964
+ done && done();
10965
+ };
10966
+ const makeEnterHook = (isAppear) => {
10967
+ return (el, done) => {
10968
+ const hook = isAppear ? onAppear : onEnter;
10969
+ const resolve = () => finishEnter(el, isAppear, done);
10970
+ callHook(hook, [el, resolve]);
10971
+ nextFrame(() => {
10972
+ removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
10973
+ if (legacyClassEnabled) {
10974
+ const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
10975
+ if (legacyClass) {
10976
+ removeTransitionClass(el, legacyClass);
10977
+ }
10978
+ }
10979
+ addTransitionClass(el, isAppear ? appearToClass : enterToClass);
10980
+ if (!hasExplicitCallback(hook)) {
10981
+ whenTransitionEnds(el, type, enterDuration, resolve);
10982
+ }
10983
+ });
10984
+ };
10985
+ };
10986
+ return extend(baseProps, {
10987
+ onBeforeEnter(el) {
10988
+ callHook(onBeforeEnter, [el]);
10989
+ addTransitionClass(el, enterFromClass);
10990
+ if (legacyClassEnabled && legacyEnterFromClass) {
10991
+ addTransitionClass(el, legacyEnterFromClass);
10992
+ }
10993
+ addTransitionClass(el, enterActiveClass);
10994
+ },
10995
+ onBeforeAppear(el) {
10996
+ callHook(onBeforeAppear, [el]);
10997
+ addTransitionClass(el, appearFromClass);
10998
+ if (legacyClassEnabled && legacyAppearFromClass) {
10999
+ addTransitionClass(el, legacyAppearFromClass);
11000
+ }
11001
+ addTransitionClass(el, appearActiveClass);
11002
+ },
11003
+ onEnter: makeEnterHook(false),
11004
+ onAppear: makeEnterHook(true),
11005
+ onLeave(el, done) {
11006
+ el._isLeaving = true;
11007
+ const resolve = () => finishLeave(el, done);
11008
+ addTransitionClass(el, leaveFromClass);
11009
+ if (legacyClassEnabled && legacyLeaveFromClass) {
11010
+ addTransitionClass(el, legacyLeaveFromClass);
11011
+ }
11012
+ forceReflow();
11013
+ addTransitionClass(el, leaveActiveClass);
11014
+ nextFrame(() => {
11015
+ if (!el._isLeaving) {
11016
+ return;
11017
+ }
11018
+ removeTransitionClass(el, leaveFromClass);
11019
+ if (legacyClassEnabled && legacyLeaveFromClass) {
11020
+ removeTransitionClass(el, legacyLeaveFromClass);
11021
+ }
11022
+ addTransitionClass(el, leaveToClass);
11023
+ if (!hasExplicitCallback(onLeave)) {
11024
+ whenTransitionEnds(el, type, leaveDuration, resolve);
11025
+ }
11026
+ });
11027
+ callHook(onLeave, [el, resolve]);
11028
+ },
11029
+ onEnterCancelled(el) {
11030
+ finishEnter(el, false);
11031
+ callHook(onEnterCancelled, [el]);
11032
+ },
11033
+ onAppearCancelled(el) {
11034
+ finishEnter(el, true);
11035
+ callHook(onAppearCancelled, [el]);
11036
+ },
11037
+ onLeaveCancelled(el) {
11038
+ finishLeave(el);
11039
+ callHook(onLeaveCancelled, [el]);
10990
11040
  }
10991
- } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
10992
- "ATTR_FALSE_VALUE",
10993
- instance,
10994
- key
10995
- )) {
10996
- el.removeAttribute(key);
10997
- return true;
10998
- }
10999
- return false;
11041
+ });
11000
11042
  }
11001
-
11002
- function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11003
- if (key === "innerHTML" || key === "textContent") {
11004
- if (prevChildren) {
11005
- unmountChildren(prevChildren, parentComponent, parentSuspense);
11006
- }
11007
- el[key] = value == null ? "" : value;
11008
- return;
11009
- }
11010
- const tag = el.tagName;
11011
- if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
11012
- !tag.includes("-")) {
11013
- el._value = value;
11014
- const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
11015
- const newValue = value == null ? "" : value;
11016
- if (oldValue !== newValue) {
11017
- el.value = newValue;
11018
- }
11019
- if (value == null) {
11020
- el.removeAttribute(key);
11021
- }
11022
- return;
11023
- }
11024
- let needRemove = false;
11025
- if (value === "" || value == null) {
11026
- const type = typeof el[key];
11027
- if (type === "boolean") {
11028
- value = includeBooleanAttr(value);
11029
- } else if (value == null && type === "string") {
11030
- value = "";
11031
- needRemove = true;
11032
- } else if (type === "number") {
11033
- value = 0;
11034
- needRemove = true;
11035
- }
11043
+ function normalizeDuration(duration) {
11044
+ if (duration == null) {
11045
+ return null;
11046
+ } else if (isObject(duration)) {
11047
+ return [NumberOf(duration.enter), NumberOf(duration.leave)];
11036
11048
  } else {
11037
- if (value === false && compatUtils.isCompatEnabled(
11038
- "ATTR_FALSE_VALUE",
11039
- parentComponent
11040
- )) {
11041
- const type = typeof el[key];
11042
- if (type === "string" || type === "number") {
11043
- compatUtils.warnDeprecation(
11044
- "ATTR_FALSE_VALUE",
11045
- parentComponent,
11046
- key
11047
- );
11048
- value = type === "number" ? 0 : "";
11049
- needRemove = true;
11050
- }
11051
- }
11052
- }
11053
- try {
11054
- el[key] = value;
11055
- } catch (e) {
11056
- if (!needRemove) {
11057
- warn(
11058
- `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11059
- e
11060
- );
11061
- }
11049
+ const n = NumberOf(duration);
11050
+ return [n, n];
11062
11051
  }
11063
- needRemove && el.removeAttribute(key);
11064
11052
  }
11065
-
11066
- function addEventListener(el, event, handler, options) {
11067
- el.addEventListener(event, handler, options);
11053
+ function NumberOf(val) {
11054
+ const res = toNumber(val);
11055
+ {
11056
+ assertNumber(res, "<transition> explicit duration");
11057
+ }
11058
+ return res;
11068
11059
  }
11069
- function removeEventListener(el, event, handler, options) {
11070
- el.removeEventListener(event, handler, options);
11060
+ function addTransitionClass(el, cls) {
11061
+ cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11062
+ (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
11071
11063
  }
11072
- function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11073
- const invokers = el._vei || (el._vei = {});
11074
- const existingInvoker = invokers[rawName];
11075
- if (nextValue && existingInvoker) {
11076
- existingInvoker.value = nextValue;
11077
- } else {
11078
- const [name, options] = parseName(rawName);
11079
- if (nextValue) {
11080
- const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11081
- addEventListener(el, name, invoker, options);
11082
- } else if (existingInvoker) {
11083
- removeEventListener(el, name, existingInvoker, options);
11084
- invokers[rawName] = void 0;
11064
+ function removeTransitionClass(el, cls) {
11065
+ cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11066
+ const _vtc = el[vtcKey];
11067
+ if (_vtc) {
11068
+ _vtc.delete(cls);
11069
+ if (!_vtc.size) {
11070
+ el[vtcKey] = void 0;
11085
11071
  }
11086
11072
  }
11087
11073
  }
11088
- const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11089
- function parseName(name) {
11090
- let options;
11091
- if (optionsModifierRE.test(name)) {
11092
- options = {};
11093
- let m;
11094
- while (m = name.match(optionsModifierRE)) {
11095
- name = name.slice(0, name.length - m[0].length);
11096
- options[m[0].toLowerCase()] = true;
11074
+ function nextFrame(cb) {
11075
+ requestAnimationFrame(() => {
11076
+ requestAnimationFrame(cb);
11077
+ });
11078
+ }
11079
+ let endId = 0;
11080
+ function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11081
+ const id = el._endId = ++endId;
11082
+ const resolveIfNotStale = () => {
11083
+ if (id === el._endId) {
11084
+ resolve();
11097
11085
  }
11086
+ };
11087
+ if (explicitTimeout) {
11088
+ return setTimeout(resolveIfNotStale, explicitTimeout);
11098
11089
  }
11099
- const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11100
- return [event, options];
11101
- }
11102
- let cachedNow = 0;
11103
- const p = /* @__PURE__ */ Promise.resolve();
11104
- const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11105
- function createInvoker(initialValue, instance) {
11106
- const invoker = (e) => {
11107
- if (!e._vts) {
11108
- e._vts = Date.now();
11109
- } else if (e._vts <= invoker.attached) {
11110
- return;
11090
+ const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11091
+ if (!type) {
11092
+ return resolve();
11093
+ }
11094
+ const endEvent = type + "end";
11095
+ let ended = 0;
11096
+ const end = () => {
11097
+ el.removeEventListener(endEvent, onEnd);
11098
+ resolveIfNotStale();
11099
+ };
11100
+ const onEnd = (e) => {
11101
+ if (e.target === el && ++ended >= propCount) {
11102
+ end();
11111
11103
  }
11112
- callWithAsyncErrorHandling(
11113
- patchStopImmediatePropagation(e, invoker.value),
11114
- instance,
11115
- 5,
11116
- [e]
11117
- );
11118
11104
  };
11119
- invoker.value = initialValue;
11120
- invoker.attached = getNow();
11121
- return invoker;
11105
+ setTimeout(() => {
11106
+ if (ended < propCount) {
11107
+ end();
11108
+ }
11109
+ }, timeout + 1);
11110
+ el.addEventListener(endEvent, onEnd);
11122
11111
  }
11123
- function patchStopImmediatePropagation(e, value) {
11124
- if (isArray(value)) {
11125
- const originalStop = e.stopImmediatePropagation;
11126
- e.stopImmediatePropagation = () => {
11127
- originalStop.call(e);
11128
- e._stopped = true;
11129
- };
11130
- return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11112
+ function getTransitionInfo(el, expectedType) {
11113
+ const styles = window.getComputedStyle(el);
11114
+ const getStyleProperties = (key) => (styles[key] || "").split(", ");
11115
+ const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`);
11116
+ const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`);
11117
+ const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11118
+ const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11119
+ const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11120
+ const animationTimeout = getTimeout(animationDelays, animationDurations);
11121
+ let type = null;
11122
+ let timeout = 0;
11123
+ let propCount = 0;
11124
+ if (expectedType === TRANSITION$1) {
11125
+ if (transitionTimeout > 0) {
11126
+ type = TRANSITION$1;
11127
+ timeout = transitionTimeout;
11128
+ propCount = transitionDurations.length;
11129
+ }
11130
+ } else if (expectedType === ANIMATION) {
11131
+ if (animationTimeout > 0) {
11132
+ type = ANIMATION;
11133
+ timeout = animationTimeout;
11134
+ propCount = animationDurations.length;
11135
+ }
11131
11136
  } else {
11132
- return value;
11137
+ timeout = Math.max(transitionTimeout, animationTimeout);
11138
+ type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null;
11139
+ propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0;
11140
+ }
11141
+ const hasTransform = type === TRANSITION$1 && /\b(transform|all)(,|$)/.test(
11142
+ getStyleProperties(`${TRANSITION$1}Property`).toString()
11143
+ );
11144
+ return {
11145
+ type,
11146
+ timeout,
11147
+ propCount,
11148
+ hasTransform
11149
+ };
11150
+ }
11151
+ function getTimeout(delays, durations) {
11152
+ while (delays.length < durations.length) {
11153
+ delays = delays.concat(delays);
11133
11154
  }
11155
+ return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11156
+ }
11157
+ function toMs(s) {
11158
+ if (s === "auto")
11159
+ return 0;
11160
+ return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11161
+ }
11162
+ function forceReflow() {
11163
+ return document.body.offsetHeight;
11134
11164
  }
11135
11165
 
11136
- const nativeOnRE = /^on[a-z]/;
11137
- const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11138
- if (key === "class") {
11139
- patchClass(el, nextValue, isSVG);
11140
- } else if (key === "style") {
11141
- patchStyle(el, prevValue, nextValue);
11142
- } else if (isOn(key)) {
11143
- if (!isModelListener(key)) {
11144
- patchEvent(el, key, prevValue, nextValue, parentComponent);
11145
- }
11146
- } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11147
- patchDOMProp(
11148
- el,
11149
- key,
11150
- nextValue,
11151
- prevChildren,
11152
- parentComponent,
11153
- parentSuspense,
11154
- unmountChildren
11155
- );
11166
+ function patchClass(el, value, isSVG) {
11167
+ const transitionClasses = el[vtcKey];
11168
+ if (transitionClasses) {
11169
+ value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
11170
+ }
11171
+ if (value == null) {
11172
+ el.removeAttribute("class");
11173
+ } else if (isSVG) {
11174
+ el.setAttribute("class", value);
11156
11175
  } else {
11157
- if (key === "true-value") {
11158
- el._trueValue = nextValue;
11159
- } else if (key === "false-value") {
11160
- el._falseValue = nextValue;
11161
- }
11162
- patchAttr(el, key, nextValue, isSVG, parentComponent);
11176
+ el.className = value;
11163
11177
  }
11164
- };
11165
- function shouldSetAsProp(el, key, value, isSVG) {
11166
- if (isSVG) {
11167
- if (key === "innerHTML" || key === "textContent") {
11168
- return true;
11178
+ }
11179
+
11180
+ const vShowOldKey = Symbol("_vod");
11181
+ const vShow = {
11182
+ beforeMount(el, { value }, { transition }) {
11183
+ el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
11184
+ if (transition && value) {
11185
+ transition.beforeEnter(el);
11186
+ } else {
11187
+ setDisplay(el, value);
11169
11188
  }
11170
- if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11171
- return true;
11189
+ },
11190
+ mounted(el, { value }, { transition }) {
11191
+ if (transition && value) {
11192
+ transition.enter(el);
11172
11193
  }
11173
- return false;
11174
- }
11175
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
11176
- return false;
11177
- }
11178
- if (key === "form") {
11179
- return false;
11180
- }
11181
- if (key === "list" && el.tagName === "INPUT") {
11182
- return false;
11183
- }
11184
- if (key === "type" && el.tagName === "TEXTAREA") {
11185
- return false;
11186
- }
11187
- if (nativeOnRE.test(key) && isString(value)) {
11188
- return false;
11194
+ },
11195
+ updated(el, { value, oldValue }, { transition }) {
11196
+ if (!value === !oldValue)
11197
+ return;
11198
+ if (transition) {
11199
+ if (value) {
11200
+ transition.beforeEnter(el);
11201
+ setDisplay(el, true);
11202
+ transition.enter(el);
11203
+ } else {
11204
+ transition.leave(el, () => {
11205
+ setDisplay(el, false);
11206
+ });
11207
+ }
11208
+ } else {
11209
+ setDisplay(el, value);
11210
+ }
11211
+ },
11212
+ beforeUnmount(el, { value }) {
11213
+ setDisplay(el, value);
11189
11214
  }
11190
- return key in el;
11215
+ };
11216
+ function setDisplay(el, value) {
11217
+ el.style.display = value ? el[vShowOldKey] : "none";
11191
11218
  }
11192
11219
 
11193
- function defineCustomElement(options, hydrate2) {
11194
- const Comp = defineComponent(options);
11195
- class VueCustomElement extends VueElement {
11196
- constructor(initialProps) {
11197
- super(Comp, initialProps, hydrate2);
11220
+ function patchStyle(el, prev, next) {
11221
+ const style = el.style;
11222
+ const isCssString = isString(next);
11223
+ if (next && !isCssString) {
11224
+ if (prev && !isString(prev)) {
11225
+ for (const key in prev) {
11226
+ if (next[key] == null) {
11227
+ setStyle(style, key, "");
11228
+ }
11229
+ }
11198
11230
  }
11199
- }
11200
- VueCustomElement.def = Comp;
11201
- return VueCustomElement;
11231
+ for (const key in next) {
11232
+ setStyle(style, key, next[key]);
11233
+ }
11234
+ } else {
11235
+ const currentDisplay = style.display;
11236
+ if (isCssString) {
11237
+ if (prev !== next) {
11238
+ style.cssText = next;
11239
+ }
11240
+ } else if (prev) {
11241
+ el.removeAttribute("style");
11242
+ }
11243
+ if (vShowOldKey in el) {
11244
+ style.display = currentDisplay;
11245
+ }
11246
+ }
11202
11247
  }
11203
- const defineSSRCustomElement = (options) => {
11204
- return defineCustomElement(options, hydrate);
11205
- };
11206
- const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11207
- };
11208
- class VueElement extends BaseClass {
11209
- constructor(_def, _props = {}, hydrate2) {
11210
- super();
11211
- this._def = _def;
11212
- this._props = _props;
11213
- /**
11214
- * @internal
11215
- */
11216
- this._instance = null;
11217
- this._connected = false;
11218
- this._resolved = false;
11219
- this._numberProps = null;
11220
- if (this.shadowRoot && hydrate2) {
11221
- hydrate2(this._createVNode(), this.shadowRoot);
11222
- } else {
11223
- if (this.shadowRoot) {
11248
+ const semicolonRE = /[^\\];\s*$/;
11249
+ const importantRE = /\s*!important$/;
11250
+ function setStyle(style, name, val) {
11251
+ if (isArray(val)) {
11252
+ val.forEach((v) => setStyle(style, name, v));
11253
+ } else {
11254
+ if (val == null)
11255
+ val = "";
11256
+ {
11257
+ if (semicolonRE.test(val)) {
11224
11258
  warn(
11225
- `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11259
+ `Unexpected semicolon at the end of '${name}' style value: '${val}'`
11226
11260
  );
11227
11261
  }
11228
- this.attachShadow({ mode: "open" });
11229
- if (!this._def.__asyncLoader) {
11230
- this._resolveProps(this._def);
11231
- }
11232
11262
  }
11233
- }
11234
- connectedCallback() {
11235
- this._connected = true;
11236
- if (!this._instance) {
11237
- if (this._resolved) {
11238
- this._update();
11263
+ if (name.startsWith("--")) {
11264
+ style.setProperty(name, val);
11265
+ } else {
11266
+ const prefixed = autoPrefix(style, name);
11267
+ if (importantRE.test(val)) {
11268
+ style.setProperty(
11269
+ hyphenate(prefixed),
11270
+ val.replace(importantRE, ""),
11271
+ "important"
11272
+ );
11239
11273
  } else {
11240
- this._resolveDef();
11274
+ style[prefixed] = val;
11241
11275
  }
11242
11276
  }
11243
11277
  }
11244
- disconnectedCallback() {
11245
- this._connected = false;
11246
- nextTick(() => {
11247
- if (!this._connected) {
11248
- render(null, this.shadowRoot);
11249
- this._instance = null;
11250
- }
11251
- });
11278
+ }
11279
+ const prefixes = ["Webkit", "Moz", "ms"];
11280
+ const prefixCache = {};
11281
+ function autoPrefix(style, rawName) {
11282
+ const cached = prefixCache[rawName];
11283
+ if (cached) {
11284
+ return cached;
11252
11285
  }
11253
- /**
11254
- * resolve inner component definition (handle possible async component)
11255
- */
11256
- _resolveDef() {
11257
- this._resolved = true;
11258
- for (let i = 0; i < this.attributes.length; i++) {
11259
- this._setAttr(this.attributes[i].name);
11286
+ let name = camelize(rawName);
11287
+ if (name !== "filter" && name in style) {
11288
+ return prefixCache[rawName] = name;
11289
+ }
11290
+ name = capitalize(name);
11291
+ for (let i = 0; i < prefixes.length; i++) {
11292
+ const prefixed = prefixes[i] + name;
11293
+ if (prefixed in style) {
11294
+ return prefixCache[rawName] = prefixed;
11260
11295
  }
11261
- new MutationObserver((mutations) => {
11262
- for (const m of mutations) {
11263
- this._setAttr(m.attributeName);
11264
- }
11265
- }).observe(this, { attributes: true });
11266
- const resolve = (def, isAsync = false) => {
11267
- const { props, styles } = def;
11268
- let numberProps;
11269
- if (props && !isArray(props)) {
11270
- for (const key in props) {
11271
- const opt = props[key];
11272
- if (opt === Number || opt && opt.type === Number) {
11273
- if (key in this._props) {
11274
- this._props[key] = toNumber(this._props[key]);
11275
- }
11276
- (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11277
- }
11278
- }
11279
- }
11280
- this._numberProps = numberProps;
11281
- if (isAsync) {
11282
- this._resolveProps(def);
11283
- }
11284
- this._applyStyles(styles);
11285
- this._update();
11286
- };
11287
- const asyncDef = this._def.__asyncLoader;
11288
- if (asyncDef) {
11289
- asyncDef().then((def) => resolve(def, true));
11296
+ }
11297
+ return rawName;
11298
+ }
11299
+
11300
+ const xlinkNS = "http://www.w3.org/1999/xlink";
11301
+ function patchAttr(el, key, value, isSVG, instance) {
11302
+ if (isSVG && key.startsWith("xlink:")) {
11303
+ if (value == null) {
11304
+ el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
11290
11305
  } else {
11291
- resolve(this._def);
11306
+ el.setAttributeNS(xlinkNS, key, value);
11292
11307
  }
11293
- }
11294
- _resolveProps(def) {
11295
- const { props } = def;
11296
- const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11297
- for (const key of Object.keys(this)) {
11298
- if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11299
- this._setProp(key, this[key], true, false);
11300
- }
11308
+ } else {
11309
+ if (compatCoerceAttr(el, key, value, instance)) {
11310
+ return;
11301
11311
  }
11302
- for (const key of declaredPropKeys.map(camelize)) {
11303
- Object.defineProperty(this, key, {
11304
- get() {
11305
- return this._getProp(key);
11306
- },
11307
- set(val) {
11308
- this._setProp(key, val);
11309
- }
11310
- });
11312
+ const isBoolean = isSpecialBooleanAttr(key);
11313
+ if (value == null || isBoolean && !includeBooleanAttr(value)) {
11314
+ el.removeAttribute(key);
11315
+ } else {
11316
+ el.setAttribute(key, isBoolean ? "" : value);
11311
11317
  }
11312
11318
  }
11313
- _setAttr(key) {
11314
- let value = this.getAttribute(key);
11315
- const camelKey = camelize(key);
11316
- if (this._numberProps && this._numberProps[camelKey]) {
11317
- value = toNumber(value);
11319
+ }
11320
+ const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
11321
+ function compatCoerceAttr(el, key, value, instance = null) {
11322
+ if (isEnumeratedAttr(key)) {
11323
+ const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
11324
+ if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
11325
+ "ATTR_ENUMERATED_COERCION",
11326
+ instance,
11327
+ key,
11328
+ value,
11329
+ v2CoercedValue
11330
+ )) {
11331
+ el.setAttribute(key, v2CoercedValue);
11332
+ return true;
11318
11333
  }
11319
- this._setProp(camelKey, value, false);
11320
- }
11321
- /**
11322
- * @internal
11323
- */
11324
- _getProp(key) {
11325
- return this._props[key];
11334
+ } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
11335
+ "ATTR_FALSE_VALUE",
11336
+ instance,
11337
+ key
11338
+ )) {
11339
+ el.removeAttribute(key);
11340
+ return true;
11326
11341
  }
11327
- /**
11328
- * @internal
11329
- */
11330
- _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11331
- if (val !== this._props[key]) {
11332
- this._props[key] = val;
11333
- if (shouldUpdate && this._instance) {
11334
- this._update();
11335
- }
11336
- if (shouldReflect) {
11337
- if (val === true) {
11338
- this.setAttribute(hyphenate(key), "");
11339
- } else if (typeof val === "string" || typeof val === "number") {
11340
- this.setAttribute(hyphenate(key), val + "");
11341
- } else if (!val) {
11342
- this.removeAttribute(hyphenate(key));
11343
- }
11344
- }
11342
+ return false;
11343
+ }
11344
+
11345
+ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11346
+ if (key === "innerHTML" || key === "textContent") {
11347
+ if (prevChildren) {
11348
+ unmountChildren(prevChildren, parentComponent, parentSuspense);
11345
11349
  }
11350
+ el[key] = value == null ? "" : value;
11351
+ return;
11346
11352
  }
11347
- _update() {
11348
- render(this._createVNode(), this.shadowRoot);
11349
- }
11350
- _createVNode() {
11351
- const vnode = createVNode(this._def, extend({}, this._props));
11352
- if (!this._instance) {
11353
- vnode.ce = (instance) => {
11354
- this._instance = instance;
11355
- instance.isCE = true;
11356
- {
11357
- instance.ceReload = (newStyles) => {
11358
- if (this._styles) {
11359
- this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11360
- this._styles.length = 0;
11361
- }
11362
- this._applyStyles(newStyles);
11363
- this._instance = null;
11364
- this._update();
11365
- };
11366
- }
11367
- const dispatch = (event, args) => {
11368
- this.dispatchEvent(
11369
- new CustomEvent(event, {
11370
- detail: args
11371
- })
11372
- );
11373
- };
11374
- instance.emit = (event, ...args) => {
11375
- dispatch(event, args);
11376
- if (hyphenate(event) !== event) {
11377
- dispatch(hyphenate(event), args);
11378
- }
11379
- };
11380
- let parent = this;
11381
- while (parent = parent && (parent.parentNode || parent.host)) {
11382
- if (parent instanceof VueElement) {
11383
- instance.parent = parent._instance;
11384
- instance.provides = parent._instance.provides;
11385
- break;
11386
- }
11387
- }
11388
- };
11353
+ const tag = el.tagName;
11354
+ if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
11355
+ !tag.includes("-")) {
11356
+ el._value = value;
11357
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
11358
+ const newValue = value == null ? "" : value;
11359
+ if (oldValue !== newValue) {
11360
+ el.value = newValue;
11389
11361
  }
11390
- return vnode;
11362
+ if (value == null) {
11363
+ el.removeAttribute(key);
11364
+ }
11365
+ return;
11391
11366
  }
11392
- _applyStyles(styles) {
11393
- if (styles) {
11394
- styles.forEach((css) => {
11395
- const s = document.createElement("style");
11396
- s.textContent = css;
11397
- this.shadowRoot.appendChild(s);
11398
- {
11399
- (this._styles || (this._styles = [])).push(s);
11400
- }
11401
- });
11367
+ let needRemove = false;
11368
+ if (value === "" || value == null) {
11369
+ const type = typeof el[key];
11370
+ if (type === "boolean") {
11371
+ value = includeBooleanAttr(value);
11372
+ } else if (value == null && type === "string") {
11373
+ value = "";
11374
+ needRemove = true;
11375
+ } else if (type === "number") {
11376
+ value = 0;
11377
+ needRemove = true;
11378
+ }
11379
+ } else {
11380
+ if (value === false && compatUtils.isCompatEnabled(
11381
+ "ATTR_FALSE_VALUE",
11382
+ parentComponent
11383
+ )) {
11384
+ const type = typeof el[key];
11385
+ if (type === "string" || type === "number") {
11386
+ compatUtils.warnDeprecation(
11387
+ "ATTR_FALSE_VALUE",
11388
+ parentComponent,
11389
+ key
11390
+ );
11391
+ value = type === "number" ? 0 : "";
11392
+ needRemove = true;
11393
+ }
11402
11394
  }
11403
11395
  }
11404
- }
11405
-
11406
- function useCssModule(name = "$style") {
11407
- {
11408
- {
11409
- warn(`useCssModule() is not supported in the global build.`);
11396
+ try {
11397
+ el[key] = value;
11398
+ } catch (e) {
11399
+ if (!needRemove) {
11400
+ warn(
11401
+ `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11402
+ e
11403
+ );
11410
11404
  }
11411
- return EMPTY_OBJ;
11412
11405
  }
11406
+ needRemove && el.removeAttribute(key);
11413
11407
  }
11414
11408
 
11415
- function useCssVars(getter) {
11416
- const instance = getCurrentInstance();
11417
- if (!instance) {
11418
- warn(`useCssVars is called without current active component instance.`);
11419
- return;
11420
- }
11421
- const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11422
- Array.from(
11423
- document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11424
- ).forEach((node) => setVarsOnNode(node, vars));
11425
- };
11426
- const setVars = () => {
11427
- const vars = getter(instance.proxy);
11428
- setVarsOnVNode(instance.subTree, vars);
11429
- updateTeleports(vars);
11430
- };
11431
- watchPostEffect(setVars);
11432
- onMounted(() => {
11433
- const ob = new MutationObserver(setVars);
11434
- ob.observe(instance.subTree.el.parentNode, { childList: true });
11435
- onUnmounted(() => ob.disconnect());
11436
- });
11409
+ function addEventListener(el, event, handler, options) {
11410
+ el.addEventListener(event, handler, options);
11437
11411
  }
11438
- function setVarsOnVNode(vnode, vars) {
11439
- if (vnode.shapeFlag & 128) {
11440
- const suspense = vnode.suspense;
11441
- vnode = suspense.activeBranch;
11442
- if (suspense.pendingBranch && !suspense.isHydrating) {
11443
- suspense.effects.push(() => {
11444
- setVarsOnVNode(suspense.activeBranch, vars);
11445
- });
11412
+ function removeEventListener(el, event, handler, options) {
11413
+ el.removeEventListener(event, handler, options);
11414
+ }
11415
+ const veiKey = Symbol("_vei");
11416
+ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11417
+ const invokers = el[veiKey] || (el[veiKey] = {});
11418
+ const existingInvoker = invokers[rawName];
11419
+ if (nextValue && existingInvoker) {
11420
+ existingInvoker.value = nextValue;
11421
+ } else {
11422
+ const [name, options] = parseName(rawName);
11423
+ if (nextValue) {
11424
+ const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11425
+ addEventListener(el, name, invoker, options);
11426
+ } else if (existingInvoker) {
11427
+ removeEventListener(el, name, existingInvoker, options);
11428
+ invokers[rawName] = void 0;
11446
11429
  }
11447
11430
  }
11448
- while (vnode.component) {
11449
- vnode = vnode.component.subTree;
11450
- }
11451
- if (vnode.shapeFlag & 1 && vnode.el) {
11452
- setVarsOnNode(vnode.el, vars);
11453
- } else if (vnode.type === Fragment) {
11454
- vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11455
- } else if (vnode.type === Static) {
11456
- let { el, anchor } = vnode;
11457
- while (el) {
11458
- setVarsOnNode(el, vars);
11459
- if (el === anchor)
11460
- break;
11461
- el = el.nextSibling;
11431
+ }
11432
+ const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11433
+ function parseName(name) {
11434
+ let options;
11435
+ if (optionsModifierRE.test(name)) {
11436
+ options = {};
11437
+ let m;
11438
+ while (m = name.match(optionsModifierRE)) {
11439
+ name = name.slice(0, name.length - m[0].length);
11440
+ options[m[0].toLowerCase()] = true;
11462
11441
  }
11463
11442
  }
11443
+ const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11444
+ return [event, options];
11464
11445
  }
11465
- function setVarsOnNode(el, vars) {
11466
- if (el.nodeType === 1) {
11467
- const style = el.style;
11468
- for (const key in vars) {
11469
- style.setProperty(`--${key}`, vars[key]);
11446
+ let cachedNow = 0;
11447
+ const p = /* @__PURE__ */ Promise.resolve();
11448
+ const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11449
+ function createInvoker(initialValue, instance) {
11450
+ const invoker = (e) => {
11451
+ if (!e._vts) {
11452
+ e._vts = Date.now();
11453
+ } else if (e._vts <= invoker.attached) {
11454
+ return;
11470
11455
  }
11456
+ callWithAsyncErrorHandling(
11457
+ patchStopImmediatePropagation(e, invoker.value),
11458
+ instance,
11459
+ 5,
11460
+ [e]
11461
+ );
11462
+ };
11463
+ invoker.value = initialValue;
11464
+ invoker.attached = getNow();
11465
+ return invoker;
11466
+ }
11467
+ function patchStopImmediatePropagation(e, value) {
11468
+ if (isArray(value)) {
11469
+ const originalStop = e.stopImmediatePropagation;
11470
+ e.stopImmediatePropagation = () => {
11471
+ originalStop.call(e);
11472
+ e._stopped = true;
11473
+ };
11474
+ return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11475
+ } else {
11476
+ return value;
11471
11477
  }
11472
11478
  }
11473
11479
 
11474
- const TRANSITION$1 = "transition";
11475
- const ANIMATION = "animation";
11476
- const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
11477
- Transition.displayName = "Transition";
11478
- {
11479
- Transition.__isBuiltIn = true;
11480
- }
11481
- const DOMTransitionPropsValidators = {
11482
- name: String,
11483
- type: String,
11484
- css: {
11485
- type: Boolean,
11486
- default: true
11487
- },
11488
- duration: [String, Number, Object],
11489
- enterFromClass: String,
11490
- enterActiveClass: String,
11491
- enterToClass: String,
11492
- appearFromClass: String,
11493
- appearActiveClass: String,
11494
- appearToClass: String,
11495
- leaveFromClass: String,
11496
- leaveActiveClass: String,
11497
- leaveToClass: String
11480
+ const nativeOnRE = /^on[a-z]/;
11481
+ const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11482
+ if (key === "class") {
11483
+ patchClass(el, nextValue, isSVG);
11484
+ } else if (key === "style") {
11485
+ patchStyle(el, prevValue, nextValue);
11486
+ } else if (isOn(key)) {
11487
+ if (!isModelListener(key)) {
11488
+ patchEvent(el, key, prevValue, nextValue, parentComponent);
11489
+ }
11490
+ } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11491
+ patchDOMProp(
11492
+ el,
11493
+ key,
11494
+ nextValue,
11495
+ prevChildren,
11496
+ parentComponent,
11497
+ parentSuspense,
11498
+ unmountChildren
11499
+ );
11500
+ } else {
11501
+ if (key === "true-value") {
11502
+ el._trueValue = nextValue;
11503
+ } else if (key === "false-value") {
11504
+ el._falseValue = nextValue;
11505
+ }
11506
+ patchAttr(el, key, nextValue, isSVG, parentComponent);
11507
+ }
11498
11508
  };
11499
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
11500
- {},
11501
- BaseTransitionPropsValidators,
11502
- DOMTransitionPropsValidators
11503
- );
11504
- const callHook = (hook, args = []) => {
11505
- if (isArray(hook)) {
11506
- hook.forEach((h2) => h2(...args));
11507
- } else if (hook) {
11508
- hook(...args);
11509
+ function shouldSetAsProp(el, key, value, isSVG) {
11510
+ if (isSVG) {
11511
+ if (key === "innerHTML" || key === "textContent") {
11512
+ return true;
11513
+ }
11514
+ if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11515
+ return true;
11516
+ }
11517
+ return false;
11518
+ }
11519
+ if (key === "spellcheck" || key === "draggable" || key === "translate") {
11520
+ return false;
11521
+ }
11522
+ if (key === "form") {
11523
+ return false;
11524
+ }
11525
+ if (key === "list" && el.tagName === "INPUT") {
11526
+ return false;
11527
+ }
11528
+ if (key === "type" && el.tagName === "TEXTAREA") {
11529
+ return false;
11530
+ }
11531
+ if (nativeOnRE.test(key) && isString(value)) {
11532
+ return false;
11533
+ }
11534
+ return key in el;
11535
+ }
11536
+
11537
+ /*! #__NO_SIDE_EFFECTS__ */
11538
+ // @__NO_SIDE_EFFECTS__
11539
+ function defineCustomElement(options, hydrate2) {
11540
+ const Comp = defineComponent(options);
11541
+ class VueCustomElement extends VueElement {
11542
+ constructor(initialProps) {
11543
+ super(Comp, initialProps, hydrate2);
11544
+ }
11509
11545
  }
11546
+ VueCustomElement.def = Comp;
11547
+ return VueCustomElement;
11548
+ }
11549
+ /*! #__NO_SIDE_EFFECTS__ */
11550
+ const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {
11551
+ return /* @__PURE__ */ defineCustomElement(options, hydrate);
11510
11552
  };
11511
- const hasExplicitCallback = (hook) => {
11512
- return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
11553
+ const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11513
11554
  };
11514
- function resolveTransitionProps(rawProps) {
11515
- const baseProps = {};
11516
- for (const key in rawProps) {
11517
- if (!(key in DOMTransitionPropsValidators)) {
11518
- baseProps[key] = rawProps[key];
11555
+ class VueElement extends BaseClass {
11556
+ constructor(_def, _props = {}, hydrate2) {
11557
+ super();
11558
+ this._def = _def;
11559
+ this._props = _props;
11560
+ /**
11561
+ * @internal
11562
+ */
11563
+ this._instance = null;
11564
+ this._connected = false;
11565
+ this._resolved = false;
11566
+ this._numberProps = null;
11567
+ this._ob = null;
11568
+ if (this.shadowRoot && hydrate2) {
11569
+ hydrate2(this._createVNode(), this.shadowRoot);
11570
+ } else {
11571
+ if (this.shadowRoot) {
11572
+ warn(
11573
+ `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11574
+ );
11575
+ }
11576
+ this.attachShadow({ mode: "open" });
11577
+ if (!this._def.__asyncLoader) {
11578
+ this._resolveProps(this._def);
11579
+ }
11519
11580
  }
11520
11581
  }
11521
- if (rawProps.css === false) {
11522
- return baseProps;
11523
- }
11524
- const {
11525
- name = "v",
11526
- type,
11527
- duration,
11528
- enterFromClass = `${name}-enter-from`,
11529
- enterActiveClass = `${name}-enter-active`,
11530
- enterToClass = `${name}-enter-to`,
11531
- appearFromClass = enterFromClass,
11532
- appearActiveClass = enterActiveClass,
11533
- appearToClass = enterToClass,
11534
- leaveFromClass = `${name}-leave-from`,
11535
- leaveActiveClass = `${name}-leave-active`,
11536
- leaveToClass = `${name}-leave-to`
11537
- } = rawProps;
11538
- const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
11539
- let legacyEnterFromClass;
11540
- let legacyAppearFromClass;
11541
- let legacyLeaveFromClass;
11542
- if (legacyClassEnabled) {
11543
- const toLegacyClass = (cls) => cls.replace(/-from$/, "");
11544
- if (!rawProps.enterFromClass) {
11545
- legacyEnterFromClass = toLegacyClass(enterFromClass);
11546
- }
11547
- if (!rawProps.appearFromClass) {
11548
- legacyAppearFromClass = toLegacyClass(appearFromClass);
11582
+ connectedCallback() {
11583
+ this._connected = true;
11584
+ if (!this._instance) {
11585
+ if (this._resolved) {
11586
+ this._update();
11587
+ } else {
11588
+ this._resolveDef();
11589
+ }
11549
11590
  }
11550
- if (!rawProps.leaveFromClass) {
11551
- legacyLeaveFromClass = toLegacyClass(leaveFromClass);
11591
+ }
11592
+ disconnectedCallback() {
11593
+ this._connected = false;
11594
+ if (this._ob) {
11595
+ this._ob.disconnect();
11596
+ this._ob = null;
11552
11597
  }
11598
+ nextTick(() => {
11599
+ if (!this._connected) {
11600
+ render(null, this.shadowRoot);
11601
+ this._instance = null;
11602
+ }
11603
+ });
11553
11604
  }
11554
- const durations = normalizeDuration(duration);
11555
- const enterDuration = durations && durations[0];
11556
- const leaveDuration = durations && durations[1];
11557
- const {
11558
- onBeforeEnter,
11559
- onEnter,
11560
- onEnterCancelled,
11561
- onLeave,
11562
- onLeaveCancelled,
11563
- onBeforeAppear = onBeforeEnter,
11564
- onAppear = onEnter,
11565
- onAppearCancelled = onEnterCancelled
11566
- } = baseProps;
11567
- const finishEnter = (el, isAppear, done) => {
11568
- removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
11569
- removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
11570
- done && done();
11571
- };
11572
- const finishLeave = (el, done) => {
11573
- el._isLeaving = false;
11574
- removeTransitionClass(el, leaveFromClass);
11575
- removeTransitionClass(el, leaveToClass);
11576
- removeTransitionClass(el, leaveActiveClass);
11577
- done && done();
11578
- };
11579
- const makeEnterHook = (isAppear) => {
11580
- return (el, done) => {
11581
- const hook = isAppear ? onAppear : onEnter;
11582
- const resolve = () => finishEnter(el, isAppear, done);
11583
- callHook(hook, [el, resolve]);
11584
- nextFrame(() => {
11585
- removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
11586
- if (legacyClassEnabled) {
11587
- const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
11588
- if (legacyClass) {
11589
- removeTransitionClass(el, legacyClass);
11605
+ /**
11606
+ * resolve inner component definition (handle possible async component)
11607
+ */
11608
+ _resolveDef() {
11609
+ this._resolved = true;
11610
+ for (let i = 0; i < this.attributes.length; i++) {
11611
+ this._setAttr(this.attributes[i].name);
11612
+ }
11613
+ this._ob = new MutationObserver((mutations) => {
11614
+ for (const m of mutations) {
11615
+ this._setAttr(m.attributeName);
11616
+ }
11617
+ });
11618
+ this._ob.observe(this, { attributes: true });
11619
+ const resolve = (def, isAsync = false) => {
11620
+ const { props, styles } = def;
11621
+ let numberProps;
11622
+ if (props && !isArray(props)) {
11623
+ for (const key in props) {
11624
+ const opt = props[key];
11625
+ if (opt === Number || opt && opt.type === Number) {
11626
+ if (key in this._props) {
11627
+ this._props[key] = toNumber(this._props[key]);
11628
+ }
11629
+ (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11590
11630
  }
11591
11631
  }
11592
- addTransitionClass(el, isAppear ? appearToClass : enterToClass);
11593
- if (!hasExplicitCallback(hook)) {
11594
- whenTransitionEnds(el, type, enterDuration, resolve);
11595
- }
11596
- });
11632
+ }
11633
+ this._numberProps = numberProps;
11634
+ if (isAsync) {
11635
+ this._resolveProps(def);
11636
+ }
11637
+ this._applyStyles(styles);
11638
+ this._update();
11597
11639
  };
11598
- };
11599
- return extend(baseProps, {
11600
- onBeforeEnter(el) {
11601
- callHook(onBeforeEnter, [el]);
11602
- addTransitionClass(el, enterFromClass);
11603
- if (legacyClassEnabled && legacyEnterFromClass) {
11604
- addTransitionClass(el, legacyEnterFromClass);
11640
+ const asyncDef = this._def.__asyncLoader;
11641
+ if (asyncDef) {
11642
+ asyncDef().then((def) => resolve(def, true));
11643
+ } else {
11644
+ resolve(this._def);
11645
+ }
11646
+ }
11647
+ _resolveProps(def) {
11648
+ const { props } = def;
11649
+ const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11650
+ for (const key of Object.keys(this)) {
11651
+ if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11652
+ this._setProp(key, this[key], true, false);
11605
11653
  }
11606
- addTransitionClass(el, enterActiveClass);
11607
- },
11608
- onBeforeAppear(el) {
11609
- callHook(onBeforeAppear, [el]);
11610
- addTransitionClass(el, appearFromClass);
11611
- if (legacyClassEnabled && legacyAppearFromClass) {
11612
- addTransitionClass(el, legacyAppearFromClass);
11654
+ }
11655
+ for (const key of declaredPropKeys.map(camelize)) {
11656
+ Object.defineProperty(this, key, {
11657
+ get() {
11658
+ return this._getProp(key);
11659
+ },
11660
+ set(val) {
11661
+ this._setProp(key, val);
11662
+ }
11663
+ });
11664
+ }
11665
+ }
11666
+ _setAttr(key) {
11667
+ let value = this.getAttribute(key);
11668
+ const camelKey = camelize(key);
11669
+ if (this._numberProps && this._numberProps[camelKey]) {
11670
+ value = toNumber(value);
11671
+ }
11672
+ this._setProp(camelKey, value, false);
11673
+ }
11674
+ /**
11675
+ * @internal
11676
+ */
11677
+ _getProp(key) {
11678
+ return this._props[key];
11679
+ }
11680
+ /**
11681
+ * @internal
11682
+ */
11683
+ _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11684
+ if (val !== this._props[key]) {
11685
+ this._props[key] = val;
11686
+ if (shouldUpdate && this._instance) {
11687
+ this._update();
11613
11688
  }
11614
- addTransitionClass(el, appearActiveClass);
11615
- },
11616
- onEnter: makeEnterHook(false),
11617
- onAppear: makeEnterHook(true),
11618
- onLeave(el, done) {
11619
- el._isLeaving = true;
11620
- const resolve = () => finishLeave(el, done);
11621
- addTransitionClass(el, leaveFromClass);
11622
- if (legacyClassEnabled && legacyLeaveFromClass) {
11623
- addTransitionClass(el, legacyLeaveFromClass);
11689
+ if (shouldReflect) {
11690
+ if (val === true) {
11691
+ this.setAttribute(hyphenate(key), "");
11692
+ } else if (typeof val === "string" || typeof val === "number") {
11693
+ this.setAttribute(hyphenate(key), val + "");
11694
+ } else if (!val) {
11695
+ this.removeAttribute(hyphenate(key));
11696
+ }
11624
11697
  }
11625
- forceReflow();
11626
- addTransitionClass(el, leaveActiveClass);
11627
- nextFrame(() => {
11628
- if (!el._isLeaving) {
11629
- return;
11698
+ }
11699
+ }
11700
+ _update() {
11701
+ render(this._createVNode(), this.shadowRoot);
11702
+ }
11703
+ _createVNode() {
11704
+ const vnode = createVNode(this._def, extend({}, this._props));
11705
+ if (!this._instance) {
11706
+ vnode.ce = (instance) => {
11707
+ this._instance = instance;
11708
+ instance.isCE = true;
11709
+ {
11710
+ instance.ceReload = (newStyles) => {
11711
+ if (this._styles) {
11712
+ this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11713
+ this._styles.length = 0;
11714
+ }
11715
+ this._applyStyles(newStyles);
11716
+ this._instance = null;
11717
+ this._update();
11718
+ };
11630
11719
  }
11631
- removeTransitionClass(el, leaveFromClass);
11632
- if (legacyClassEnabled && legacyLeaveFromClass) {
11633
- removeTransitionClass(el, legacyLeaveFromClass);
11720
+ const dispatch = (event, args) => {
11721
+ this.dispatchEvent(
11722
+ new CustomEvent(event, {
11723
+ detail: args
11724
+ })
11725
+ );
11726
+ };
11727
+ instance.emit = (event, ...args) => {
11728
+ dispatch(event, args);
11729
+ if (hyphenate(event) !== event) {
11730
+ dispatch(hyphenate(event), args);
11731
+ }
11732
+ };
11733
+ let parent = this;
11734
+ while (parent = parent && (parent.parentNode || parent.host)) {
11735
+ if (parent instanceof VueElement) {
11736
+ instance.parent = parent._instance;
11737
+ instance.provides = parent._instance.provides;
11738
+ break;
11739
+ }
11634
11740
  }
11635
- addTransitionClass(el, leaveToClass);
11636
- if (!hasExplicitCallback(onLeave)) {
11637
- whenTransitionEnds(el, type, leaveDuration, resolve);
11741
+ };
11742
+ }
11743
+ return vnode;
11744
+ }
11745
+ _applyStyles(styles) {
11746
+ if (styles) {
11747
+ styles.forEach((css) => {
11748
+ const s = document.createElement("style");
11749
+ s.textContent = css;
11750
+ this.shadowRoot.appendChild(s);
11751
+ {
11752
+ (this._styles || (this._styles = [])).push(s);
11638
11753
  }
11639
11754
  });
11640
- callHook(onLeave, [el, resolve]);
11641
- },
11642
- onEnterCancelled(el) {
11643
- finishEnter(el, false);
11644
- callHook(onEnterCancelled, [el]);
11645
- },
11646
- onAppearCancelled(el) {
11647
- finishEnter(el, true);
11648
- callHook(onAppearCancelled, [el]);
11649
- },
11650
- onLeaveCancelled(el) {
11651
- finishLeave(el);
11652
- callHook(onLeaveCancelled, [el]);
11653
11755
  }
11654
- });
11655
- }
11656
- function normalizeDuration(duration) {
11657
- if (duration == null) {
11658
- return null;
11659
- } else if (isObject(duration)) {
11660
- return [NumberOf(duration.enter), NumberOf(duration.leave)];
11661
- } else {
11662
- const n = NumberOf(duration);
11663
- return [n, n];
11664
11756
  }
11665
11757
  }
11666
- function NumberOf(val) {
11667
- const res = toNumber(val);
11758
+
11759
+ function useCssModule(name = "$style") {
11668
11760
  {
11669
- assertNumber(res, "<transition> explicit duration");
11670
- }
11671
- return res;
11672
- }
11673
- function addTransitionClass(el, cls) {
11674
- cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11675
- (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);
11676
- }
11677
- function removeTransitionClass(el, cls) {
11678
- cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11679
- const { _vtc } = el;
11680
- if (_vtc) {
11681
- _vtc.delete(cls);
11682
- if (!_vtc.size) {
11683
- el._vtc = void 0;
11761
+ {
11762
+ warn(`useCssModule() is not supported in the global build.`);
11684
11763
  }
11764
+ return EMPTY_OBJ;
11685
11765
  }
11686
11766
  }
11687
- function nextFrame(cb) {
11688
- requestAnimationFrame(() => {
11689
- requestAnimationFrame(cb);
11690
- });
11691
- }
11692
- let endId = 0;
11693
- function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11694
- const id = el._endId = ++endId;
11695
- const resolveIfNotStale = () => {
11696
- if (id === el._endId) {
11697
- resolve();
11698
- }
11699
- };
11700
- if (explicitTimeout) {
11701
- return setTimeout(resolveIfNotStale, explicitTimeout);
11702
- }
11703
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11704
- if (!type) {
11705
- return resolve();
11767
+
11768
+ function useCssVars(getter) {
11769
+ const instance = getCurrentInstance();
11770
+ if (!instance) {
11771
+ warn(`useCssVars is called without current active component instance.`);
11772
+ return;
11706
11773
  }
11707
- const endEvent = type + "end";
11708
- let ended = 0;
11709
- const end = () => {
11710
- el.removeEventListener(endEvent, onEnd);
11711
- resolveIfNotStale();
11774
+ const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11775
+ Array.from(
11776
+ document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11777
+ ).forEach((node) => setVarsOnNode(node, vars));
11712
11778
  };
11713
- const onEnd = (e) => {
11714
- if (e.target === el && ++ended >= propCount) {
11715
- end();
11716
- }
11779
+ const setVars = () => {
11780
+ const vars = getter(instance.proxy);
11781
+ setVarsOnVNode(instance.subTree, vars);
11782
+ updateTeleports(vars);
11717
11783
  };
11718
- setTimeout(() => {
11719
- if (ended < propCount) {
11720
- end();
11721
- }
11722
- }, timeout + 1);
11723
- el.addEventListener(endEvent, onEnd);
11784
+ watchPostEffect(setVars);
11785
+ onMounted(() => {
11786
+ const ob = new MutationObserver(setVars);
11787
+ ob.observe(instance.subTree.el.parentNode, { childList: true });
11788
+ onUnmounted(() => ob.disconnect());
11789
+ });
11724
11790
  }
11725
- function getTransitionInfo(el, expectedType) {
11726
- const styles = window.getComputedStyle(el);
11727
- const getStyleProperties = (key) => (styles[key] || "").split(", ");
11728
- const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`);
11729
- const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`);
11730
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11731
- const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11732
- const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11733
- const animationTimeout = getTimeout(animationDelays, animationDurations);
11734
- let type = null;
11735
- let timeout = 0;
11736
- let propCount = 0;
11737
- if (expectedType === TRANSITION$1) {
11738
- if (transitionTimeout > 0) {
11739
- type = TRANSITION$1;
11740
- timeout = transitionTimeout;
11741
- propCount = transitionDurations.length;
11791
+ function setVarsOnVNode(vnode, vars) {
11792
+ if (vnode.shapeFlag & 128) {
11793
+ const suspense = vnode.suspense;
11794
+ vnode = suspense.activeBranch;
11795
+ if (suspense.pendingBranch && !suspense.isHydrating) {
11796
+ suspense.effects.push(() => {
11797
+ setVarsOnVNode(suspense.activeBranch, vars);
11798
+ });
11742
11799
  }
11743
- } else if (expectedType === ANIMATION) {
11744
- if (animationTimeout > 0) {
11745
- type = ANIMATION;
11746
- timeout = animationTimeout;
11747
- propCount = animationDurations.length;
11800
+ }
11801
+ while (vnode.component) {
11802
+ vnode = vnode.component.subTree;
11803
+ }
11804
+ if (vnode.shapeFlag & 1 && vnode.el) {
11805
+ setVarsOnNode(vnode.el, vars);
11806
+ } else if (vnode.type === Fragment) {
11807
+ vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11808
+ } else if (vnode.type === Static) {
11809
+ let { el, anchor } = vnode;
11810
+ while (el) {
11811
+ setVarsOnNode(el, vars);
11812
+ if (el === anchor)
11813
+ break;
11814
+ el = el.nextSibling;
11748
11815
  }
11749
- } else {
11750
- timeout = Math.max(transitionTimeout, animationTimeout);
11751
- type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null;
11752
- propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0;
11753
11816
  }
11754
- const hasTransform = type === TRANSITION$1 && /\b(transform|all)(,|$)/.test(
11755
- getStyleProperties(`${TRANSITION$1}Property`).toString()
11756
- );
11757
- return {
11758
- type,
11759
- timeout,
11760
- propCount,
11761
- hasTransform
11762
- };
11763
11817
  }
11764
- function getTimeout(delays, durations) {
11765
- while (delays.length < durations.length) {
11766
- delays = delays.concat(delays);
11818
+ function setVarsOnNode(el, vars) {
11819
+ if (el.nodeType === 1) {
11820
+ const style = el.style;
11821
+ for (const key in vars) {
11822
+ style.setProperty(`--${key}`, vars[key]);
11823
+ }
11767
11824
  }
11768
- return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11769
- }
11770
- function toMs(s) {
11771
- return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11772
- }
11773
- function forceReflow() {
11774
- return document.body.offsetHeight;
11775
11825
  }
11776
11826
 
11777
11827
  const positionMap = /* @__PURE__ */ new WeakMap();
11778
11828
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11829
+ const moveCbKey = Symbol("_moveCb");
11830
+ const enterCbKey = Symbol("_enterCb");
11779
11831
  const TransitionGroupImpl = {
11780
11832
  name: "TransitionGroup",
11781
11833
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
@@ -11808,13 +11860,13 @@ Component that was made reactive: `,
11808
11860
  const style = el.style;
11809
11861
  addTransitionClass(el, moveClass);
11810
11862
  style.transform = style.webkitTransform = style.transitionDuration = "";
11811
- const cb = el._moveCb = (e) => {
11863
+ const cb = el[moveCbKey] = (e) => {
11812
11864
  if (e && e.target !== el) {
11813
11865
  return;
11814
11866
  }
11815
11867
  if (!e || /transform$/.test(e.propertyName)) {
11816
11868
  el.removeEventListener("transitionend", cb);
11817
- el._moveCb = null;
11869
+ el[moveCbKey] = null;
11818
11870
  removeTransitionClass(el, moveClass);
11819
11871
  }
11820
11872
  };
@@ -11866,11 +11918,11 @@ Component that was made reactive: `,
11866
11918
  const TransitionGroup = TransitionGroupImpl;
11867
11919
  function callPendingCbs(c) {
11868
11920
  const el = c.el;
11869
- if (el._moveCb) {
11870
- el._moveCb();
11921
+ if (el[moveCbKey]) {
11922
+ el[moveCbKey]();
11871
11923
  }
11872
- if (el._enterCb) {
11873
- el._enterCb();
11924
+ if (el[enterCbKey]) {
11925
+ el[enterCbKey]();
11874
11926
  }
11875
11927
  }
11876
11928
  function recordPosition(c) {
@@ -11890,8 +11942,9 @@ Component that was made reactive: `,
11890
11942
  }
11891
11943
  function hasCSSTransform(el, root, moveClass) {
11892
11944
  const clone = el.cloneNode();
11893
- if (el._vtc) {
11894
- el._vtc.forEach((cls) => {
11945
+ const _vtc = el[vtcKey];
11946
+ if (_vtc) {
11947
+ _vtc.forEach((cls) => {
11895
11948
  cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
11896
11949
  });
11897
11950
  }
@@ -11918,9 +11971,10 @@ Component that was made reactive: `,
11918
11971
  target.dispatchEvent(new Event("input"));
11919
11972
  }
11920
11973
  }
11974
+ const assignKey = Symbol("_assign");
11921
11975
  const vModelText = {
11922
11976
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
11923
- el._assign = getModelAssigner(vnode);
11977
+ el[assignKey] = getModelAssigner(vnode);
11924
11978
  const castToNumber = number || vnode.props && vnode.props.type === "number";
11925
11979
  addEventListener(el, lazy ? "change" : "input", (e) => {
11926
11980
  if (e.target.composing)
@@ -11932,7 +11986,7 @@ Component that was made reactive: `,
11932
11986
  if (castToNumber) {
11933
11987
  domValue = looseToNumber(domValue);
11934
11988
  }
11935
- el._assign(domValue);
11989
+ el[assignKey](domValue);
11936
11990
  });
11937
11991
  if (trim) {
11938
11992
  addEventListener(el, "change", () => {
@@ -11950,7 +12004,7 @@ Component that was made reactive: `,
11950
12004
  el.value = value == null ? "" : value;
11951
12005
  },
11952
12006
  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
11953
- el._assign = getModelAssigner(vnode);
12007
+ el[assignKey] = getModelAssigner(vnode);
11954
12008
  if (el.composing)
11955
12009
  return;
11956
12010
  if (document.activeElement === el && el.type !== "range") {
@@ -11974,12 +12028,12 @@ Component that was made reactive: `,
11974
12028
  // #4096 array checkboxes need to be deep traversed
11975
12029
  deep: true,
11976
12030
  created(el, _, vnode) {
11977
- el._assign = getModelAssigner(vnode);
12031
+ el[assignKey] = getModelAssigner(vnode);
11978
12032
  addEventListener(el, "change", () => {
11979
12033
  const modelValue = el._modelValue;
11980
12034
  const elementValue = getValue(el);
11981
12035
  const checked = el.checked;
11982
- const assign = el._assign;
12036
+ const assign = el[assignKey];
11983
12037
  if (isArray(modelValue)) {
11984
12038
  const index = looseIndexOf(modelValue, elementValue);
11985
12039
  const found = index !== -1;
@@ -12006,7 +12060,7 @@ Component that was made reactive: `,
12006
12060
  // set initial checked on mount to wait for true-value/false-value
12007
12061
  mounted: setChecked,
12008
12062
  beforeUpdate(el, binding, vnode) {
12009
- el._assign = getModelAssigner(vnode);
12063
+ el[assignKey] = getModelAssigner(vnode);
12010
12064
  setChecked(el, binding, vnode);
12011
12065
  }
12012
12066
  };
@@ -12023,13 +12077,13 @@ Component that was made reactive: `,
12023
12077
  const vModelRadio = {
12024
12078
  created(el, { value }, vnode) {
12025
12079
  el.checked = looseEqual(value, vnode.props.value);
12026
- el._assign = getModelAssigner(vnode);
12080
+ el[assignKey] = getModelAssigner(vnode);
12027
12081
  addEventListener(el, "change", () => {
12028
- el._assign(getValue(el));
12082
+ el[assignKey](getValue(el));
12029
12083
  });
12030
12084
  },
12031
12085
  beforeUpdate(el, { value, oldValue }, vnode) {
12032
- el._assign = getModelAssigner(vnode);
12086
+ el[assignKey] = getModelAssigner(vnode);
12033
12087
  if (value !== oldValue) {
12034
12088
  el.checked = looseEqual(value, vnode.props.value);
12035
12089
  }
@@ -12044,11 +12098,11 @@ Component that was made reactive: `,
12044
12098
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
12045
12099
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
12046
12100
  );
12047
- el._assign(
12101
+ el[assignKey](
12048
12102
  el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
12049
12103
  );
12050
12104
  });
12051
- el._assign = getModelAssigner(vnode);
12105
+ el[assignKey] = getModelAssigner(vnode);
12052
12106
  },
12053
12107
  // set value in mounted & updated because <select> relies on its children
12054
12108
  // <option>s.
@@ -12056,7 +12110,7 @@ Component that was made reactive: `,
12056
12110
  setSelected(el, value);
12057
12111
  },
12058
12112
  beforeUpdate(el, _binding, vnode) {
12059
- el._assign = getModelAssigner(vnode);
12113
+ el[assignKey] = getModelAssigner(vnode);
12060
12114
  },
12061
12115
  updated(el, { value }) {
12062
12116
  setSelected(el, value);
@@ -12219,45 +12273,6 @@ Component that was made reactive: `,
12219
12273
  };
12220
12274
  };
12221
12275
 
12222
- const vShow = {
12223
- beforeMount(el, { value }, { transition }) {
12224
- el._vod = el.style.display === "none" ? "" : el.style.display;
12225
- if (transition && value) {
12226
- transition.beforeEnter(el);
12227
- } else {
12228
- setDisplay(el, value);
12229
- }
12230
- },
12231
- mounted(el, { value }, { transition }) {
12232
- if (transition && value) {
12233
- transition.enter(el);
12234
- }
12235
- },
12236
- updated(el, { value, oldValue }, { transition }) {
12237
- if (!value === !oldValue)
12238
- return;
12239
- if (transition) {
12240
- if (value) {
12241
- transition.beforeEnter(el);
12242
- setDisplay(el, true);
12243
- transition.enter(el);
12244
- } else {
12245
- transition.leave(el, () => {
12246
- setDisplay(el, false);
12247
- });
12248
- }
12249
- } else {
12250
- setDisplay(el, value);
12251
- }
12252
- },
12253
- beforeUnmount(el, { value }) {
12254
- setDisplay(el, value);
12255
- }
12256
- };
12257
- function setDisplay(el, value) {
12258
- el.style.display = value ? el._vod : "none";
12259
- }
12260
-
12261
12276
  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
12262
12277
  let renderer;
12263
12278
  let enabledHydration = false;
@@ -13296,7 +13311,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
13296
13311
  continue;
13297
13312
  } else if (/[a-z]/i.test(s[2])) {
13298
13313
  emitError(context, 23);
13299
- parseTag(context, TagType.End, parent);
13314
+ parseTag(context, 1 /* End */, parent);
13300
13315
  continue;
13301
13316
  } else {
13302
13317
  emitError(
@@ -13457,7 +13472,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
13457
13472
  const wasInPre = context.inPre;
13458
13473
  const wasInVPre = context.inVPre;
13459
13474
  const parent = last(ancestors);
13460
- const element = parseTag(context, TagType.Start, parent);
13475
+ const element = parseTag(context, 0 /* Start */, parent);
13461
13476
  const isPreBoundary = context.inPre && !wasInPre;
13462
13477
  const isVPreBoundary = context.inVPre && !wasInVPre;
13463
13478
  if (element.isSelfClosing || context.options.isVoidTag(element.tag)) {
@@ -13492,7 +13507,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
13492
13507
  }
13493
13508
  element.children = children;
13494
13509
  if (startsWithEndTagOpen(context.source, element.tag)) {
13495
- parseTag(context, TagType.End, parent);
13510
+ parseTag(context, 1 /* End */, parent);
13496
13511
  } else {
13497
13512
  emitError(context, 24, 0, element.loc.start);
13498
13513
  if (context.source.length === 0 && element.tag.toLowerCase() === "script") {
@@ -13511,11 +13526,6 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
13511
13526
  }
13512
13527
  return element;
13513
13528
  }
13514
- var TagType = /* @__PURE__ */ ((TagType2) => {
13515
- TagType2[TagType2["Start"] = 0] = "Start";
13516
- TagType2[TagType2["End"] = 1] = "End";
13517
- return TagType2;
13518
- })(TagType || {});
13519
13529
  const isSpecialTemplateDirective = /* @__PURE__ */ makeMap(
13520
13530
  `if,else,else-if,for,slot`
13521
13531
  );
@@ -14283,7 +14293,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14283
14293
  directives: /* @__PURE__ */ new Set(),
14284
14294
  hoists: [],
14285
14295
  imports: [],
14286
- constantCache: /* @__PURE__ */ new Map(),
14296
+ constantCache: /* @__PURE__ */ new WeakMap(),
14287
14297
  temps: 0,
14288
14298
  cached: 0,
14289
14299
  identifiers: /* @__PURE__ */ Object.create(null),