@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++) {
@@ -100,8 +101,8 @@ var Vue = (function () {
100
101
  return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
101
102
  };
102
103
 
103
- 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";
104
- const isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);
104
+ 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";
105
+ const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
105
106
 
106
107
  function normalizeStyle(value) {
107
108
  if (isArray(value)) {
@@ -116,9 +117,7 @@ var Vue = (function () {
116
117
  }
117
118
  }
118
119
  return res;
119
- } else if (isString(value)) {
120
- return value;
121
- } else if (isObject(value)) {
120
+ } else if (isString(value) || isObject(value)) {
122
121
  return value;
123
122
  }
124
123
  }
@@ -465,7 +464,7 @@ var Vue = (function () {
465
464
  }
466
465
  }
467
466
  function effect(fn, options) {
468
- if (fn.effect) {
467
+ if (fn.effect instanceof ReactiveEffect) {
469
468
  fn = fn.effect.fn;
470
469
  }
471
470
  const _effect = new ReactiveEffect(fn);
@@ -631,10 +630,6 @@ var Vue = (function () {
631
630
  const builtInSymbols = new Set(
632
631
  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
633
632
  );
634
- const get$1 = /* @__PURE__ */ createGetter();
635
- const shallowGet = /* @__PURE__ */ createGetter(false, true);
636
- const readonlyGet = /* @__PURE__ */ createGetter(true);
637
- const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);
638
633
  const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
639
634
  function createArrayInstrumentations() {
640
635
  const instrumentations = {};
@@ -667,8 +662,13 @@ var Vue = (function () {
667
662
  track(obj, "has", key);
668
663
  return obj.hasOwnProperty(key);
669
664
  }
670
- function createGetter(isReadonly2 = false, shallow = false) {
671
- return function get2(target, key, receiver) {
665
+ class BaseReactiveHandler {
666
+ constructor(_isReadonly = false, _shallow = false) {
667
+ this._isReadonly = _isReadonly;
668
+ this._shallow = _shallow;
669
+ }
670
+ get(target, key, receiver) {
671
+ const isReadonly2 = this._isReadonly, shallow = this._shallow;
672
672
  if (key === "__v_isReactive") {
673
673
  return !isReadonly2;
674
674
  } else if (key === "__v_isReadonly") {
@@ -704,17 +704,18 @@ var Vue = (function () {
704
704
  return isReadonly2 ? readonly(res) : reactive(res);
705
705
  }
706
706
  return res;
707
- };
707
+ }
708
708
  }
709
- const set$1 = /* @__PURE__ */ createSetter();
710
- const shallowSet = /* @__PURE__ */ createSetter(true);
711
- function createSetter(shallow = false) {
712
- return function set2(target, key, value, receiver) {
709
+ class MutableReactiveHandler extends BaseReactiveHandler {
710
+ constructor(shallow = false) {
711
+ super(false, shallow);
712
+ }
713
+ set(target, key, value, receiver) {
713
714
  let oldValue = target[key];
714
715
  if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
715
716
  return false;
716
717
  }
717
- if (!shallow) {
718
+ if (!this._shallow) {
718
719
  if (!isShallow(value) && !isReadonly(value)) {
719
720
  oldValue = toRaw(oldValue);
720
721
  value = toRaw(value);
@@ -734,37 +735,36 @@ var Vue = (function () {
734
735
  }
735
736
  }
736
737
  return result;
737
- };
738
- }
739
- function deleteProperty(target, key) {
740
- const hadKey = hasOwn(target, key);
741
- const oldValue = target[key];
742
- const result = Reflect.deleteProperty(target, key);
743
- if (result && hadKey) {
744
- trigger(target, "delete", key, void 0, oldValue);
745
738
  }
746
- return result;
747
- }
748
- function has$1(target, key) {
749
- const result = Reflect.has(target, key);
750
- if (!isSymbol(key) || !builtInSymbols.has(key)) {
751
- track(target, "has", key);
739
+ deleteProperty(target, key) {
740
+ const hadKey = hasOwn(target, key);
741
+ const oldValue = target[key];
742
+ const result = Reflect.deleteProperty(target, key);
743
+ if (result && hadKey) {
744
+ trigger(target, "delete", key, void 0, oldValue);
745
+ }
746
+ return result;
747
+ }
748
+ has(target, key) {
749
+ const result = Reflect.has(target, key);
750
+ if (!isSymbol(key) || !builtInSymbols.has(key)) {
751
+ track(target, "has", key);
752
+ }
753
+ return result;
754
+ }
755
+ ownKeys(target) {
756
+ track(
757
+ target,
758
+ "iterate",
759
+ isArray(target) ? "length" : ITERATE_KEY
760
+ );
761
+ return Reflect.ownKeys(target);
752
762
  }
753
- return result;
754
- }
755
- function ownKeys(target) {
756
- track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY);
757
- return Reflect.ownKeys(target);
758
763
  }
759
- const mutableHandlers = {
760
- get: get$1,
761
- set: set$1,
762
- deleteProperty,
763
- has: has$1,
764
- ownKeys
765
- };
766
- const readonlyHandlers = {
767
- get: readonlyGet,
764
+ class ReadonlyReactiveHandler extends BaseReactiveHandler {
765
+ constructor(shallow = false) {
766
+ super(true, shallow);
767
+ }
768
768
  set(target, key) {
769
769
  {
770
770
  warn$1(
@@ -773,7 +773,7 @@ var Vue = (function () {
773
773
  );
774
774
  }
775
775
  return true;
776
- },
776
+ }
777
777
  deleteProperty(target, key) {
778
778
  {
779
779
  warn$1(
@@ -783,22 +783,13 @@ var Vue = (function () {
783
783
  }
784
784
  return true;
785
785
  }
786
- };
787
- const shallowReactiveHandlers = /* @__PURE__ */ extend(
788
- {},
789
- mutableHandlers,
790
- {
791
- get: shallowGet,
792
- set: shallowSet
793
- }
794
- );
795
- const shallowReadonlyHandlers = /* @__PURE__ */ extend(
796
- {},
797
- readonlyHandlers,
798
- {
799
- get: shallowReadonlyGet
800
- }
786
+ }
787
+ const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
788
+ const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
789
+ const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(
790
+ true
801
791
  );
792
+ const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
802
793
 
803
794
  const toShallow = (value) => value;
804
795
  const getProto = (v) => Reflect.getPrototypeOf(v);
@@ -807,7 +798,7 @@ var Vue = (function () {
807
798
  const rawTarget = toRaw(target);
808
799
  const rawKey = toRaw(key);
809
800
  if (!isReadonly) {
810
- if (key !== rawKey) {
801
+ if (hasChanged(key, rawKey)) {
811
802
  track(rawTarget, "get", key);
812
803
  }
813
804
  track(rawTarget, "get", rawKey);
@@ -827,7 +818,7 @@ var Vue = (function () {
827
818
  const rawTarget = toRaw(target);
828
819
  const rawKey = toRaw(key);
829
820
  if (!isReadonly) {
830
- if (key !== rawKey) {
821
+ if (hasChanged(key, rawKey)) {
831
822
  track(rawTarget, "has", key);
832
823
  }
833
824
  track(rawTarget, "has", rawKey);
@@ -1357,11 +1348,7 @@ var Vue = (function () {
1357
1348
  }
1358
1349
  function propertyToRef(source, key, defaultValue) {
1359
1350
  const val = source[key];
1360
- return isRef(val) ? val : new ObjectRefImpl(
1361
- source,
1362
- key,
1363
- defaultValue
1364
- );
1351
+ return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
1365
1352
  }
1366
1353
 
1367
1354
  class ComputedRefImpl {
@@ -3655,9 +3642,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3655
3642
  }
3656
3643
  if (cb) {
3657
3644
  const newValue = effect.run();
3658
- if (deep || forceTrigger || (isMultiSource ? newValue.some(
3659
- (v, i) => hasChanged(v, oldValue[i])
3660
- ) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled("WATCH_ARRAY", instance)) {
3645
+ if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled("WATCH_ARRAY", instance)) {
3661
3646
  if (cleanup) {
3662
3647
  cleanup();
3663
3648
  }
@@ -3831,6 +3816,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3831
3816
  }
3832
3817
  }
3833
3818
 
3819
+ const leaveCbKey = Symbol("_leaveCb");
3820
+ const enterCbKey$1 = Symbol("_enterCb");
3834
3821
  function useTransitionState() {
3835
3822
  const state = {
3836
3823
  isMounted: false,
@@ -3951,9 +3938,9 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3951
3938
  oldInnerChild
3952
3939
  );
3953
3940
  leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3954
- el._leaveCb = () => {
3941
+ el[leaveCbKey] = () => {
3955
3942
  earlyRemove();
3956
- el._leaveCb = void 0;
3943
+ el[leaveCbKey] = void 0;
3957
3944
  delete enterHooks.delayedLeave;
3958
3945
  };
3959
3946
  enterHooks.delayedLeave = delayedLeave;
@@ -4027,15 +4014,15 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4027
4014
  return;
4028
4015
  }
4029
4016
  }
4030
- if (el._leaveCb) {
4031
- el._leaveCb(
4017
+ if (el[leaveCbKey]) {
4018
+ el[leaveCbKey](
4032
4019
  true
4033
4020
  /* cancelled */
4034
4021
  );
4035
4022
  }
4036
4023
  const leavingVNode = leavingVNodesCache[key];
4037
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {
4038
- leavingVNode.el._leaveCb();
4024
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4025
+ leavingVNode.el[leaveCbKey]();
4039
4026
  }
4040
4027
  callHook(hook, [el]);
4041
4028
  },
@@ -4053,7 +4040,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4053
4040
  }
4054
4041
  }
4055
4042
  let called = false;
4056
- const done = el._enterCb = (cancelled) => {
4043
+ const done = el[enterCbKey$1] = (cancelled) => {
4057
4044
  if (called)
4058
4045
  return;
4059
4046
  called = true;
@@ -4065,7 +4052,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4065
4052
  if (hooks.delayedLeave) {
4066
4053
  hooks.delayedLeave();
4067
4054
  }
4068
- el._enterCb = void 0;
4055
+ el[enterCbKey$1] = void 0;
4069
4056
  };
4070
4057
  if (hook) {
4071
4058
  callAsyncHook(hook, [el, done]);
@@ -4075,8 +4062,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4075
4062
  },
4076
4063
  leave(el, remove) {
4077
4064
  const key2 = String(vnode.key);
4078
- if (el._enterCb) {
4079
- el._enterCb(
4065
+ if (el[enterCbKey$1]) {
4066
+ el[enterCbKey$1](
4080
4067
  true
4081
4068
  /* cancelled */
4082
4069
  );
@@ -4086,7 +4073,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4086
4073
  }
4087
4074
  callHook(onBeforeLeave, [el]);
4088
4075
  let called = false;
4089
- const done = el._leaveCb = (cancelled) => {
4076
+ const done = el[leaveCbKey] = (cancelled) => {
4090
4077
  if (called)
4091
4078
  return;
4092
4079
  called = true;
@@ -4096,7 +4083,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4096
4083
  } else {
4097
4084
  callHook(onAfterLeave, [el]);
4098
4085
  }
4099
- el._leaveCb = void 0;
4086
+ el[leaveCbKey] = void 0;
4100
4087
  if (leavingVNodesCache[key2] === vnode) {
4101
4088
  delete leavingVNodesCache[key2];
4102
4089
  }
@@ -4158,6 +4145,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4158
4145
  return ret;
4159
4146
  }
4160
4147
 
4148
+ /*! #__NO_SIDE_EFFECTS__ */
4149
+ // @__NO_SIDE_EFFECTS__
4161
4150
  function defineComponent(options, extraOptions) {
4162
4151
  return isFunction(options) ? (
4163
4152
  // #8326: extend call and options.name access are considered side-effects
@@ -4167,6 +4156,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
4167
4156
  }
4168
4157
 
4169
4158
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4159
+ /*! #__NO_SIDE_EFFECTS__ */
4160
+ // @__NO_SIDE_EFFECTS__
4170
4161
  function defineAsyncComponent(source) {
4171
4162
  if (isFunction(source)) {
4172
4163
  source = { loader: source };
@@ -4898,7 +4889,7 @@ If this is a native custom element, make sure to exclude it from component resol
4898
4889
  }
4899
4890
  }
4900
4891
 
4901
- const normalizedFunctionalComponentMap = /* @__PURE__ */ new Map();
4892
+ const normalizedFunctionalComponentMap = /* @__PURE__ */ new WeakMap();
4902
4893
  const legacySlotProxyHandlers = {
4903
4894
  get(target, key) {
4904
4895
  const slot = target[key];
@@ -5179,6 +5170,7 @@ If this is a native custom element, make sure to exclude it from component resol
5179
5170
  function installCompatInstanceProperties(map) {
5180
5171
  const set = (target, key, val) => {
5181
5172
  target[key] = val;
5173
+ return target[key];
5182
5174
  };
5183
5175
  const del = (target, key) => {
5184
5176
  delete target[key];
@@ -5456,7 +5448,7 @@ If this is a native custom element, make sure to exclude it from component resol
5456
5448
  return PublicInstanceProxyHandlers.get(target, key, target);
5457
5449
  },
5458
5450
  has(_, key) {
5459
- const has = key[0] !== "_" && !isGloballyWhitelisted(key);
5451
+ const has = key[0] !== "_" && !isGloballyAllowed(key);
5460
5452
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
5461
5453
  warn(
5462
5454
  `Property ${JSON.stringify(
@@ -6193,7 +6185,7 @@ If this is a native custom element, make sure to exclude it from component resol
6193
6185
  return vm;
6194
6186
  }
6195
6187
  }
6196
- Vue.version = `2.6.14-compat:${"3.3.4"}`;
6188
+ Vue.version = `2.6.14-compat:${"3.3.6"}`;
6197
6189
  Vue.config = singletonApp.config;
6198
6190
  Vue.use = (p, ...options) => {
6199
6191
  if (p && isFunction(p.install)) {
@@ -6601,12 +6593,12 @@ If this is a native custom element, make sure to exclude it from component resol
6601
6593
  },
6602
6594
  set() {
6603
6595
  warn(
6604
- `app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.`
6596
+ `app.config.unwrapInjectedRef has been deprecated. 3.3 now always unwraps injected refs in Options API.`
6605
6597
  );
6606
6598
  }
6607
6599
  });
6608
6600
  }
6609
- const installedPlugins = /* @__PURE__ */ new Set();
6601
+ const installedPlugins = /* @__PURE__ */ new WeakSet();
6610
6602
  let isMounted = false;
6611
6603
  const app = context.app = {
6612
6604
  _uid: uid$1++,
@@ -6688,10 +6680,7 @@ If this is a native custom element, make sure to exclude it from component resol
6688
6680
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6689
6681
  );
6690
6682
  }
6691
- const vnode = createVNode(
6692
- rootComponent,
6693
- rootProps
6694
- );
6683
+ const vnode = createVNode(rootComponent, rootProps);
6695
6684
  vnode.appContext = context;
6696
6685
  {
6697
6686
  context.reload = () => {
@@ -7350,7 +7339,7 @@ If you want to remount the same app, move your app creation logic into a factory
7350
7339
  }
7351
7340
  if (needDeletionCheck) {
7352
7341
  for (const key in slots) {
7353
- if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {
7342
+ if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {
7354
7343
  delete slots[key];
7355
7344
  }
7356
7345
  }
@@ -7514,8 +7503,10 @@ If you want to remount the same app, move your app creation logic into a factory
7514
7503
  hasMismatch = true;
7515
7504
  warn(
7516
7505
  `Hydration text mismatch:
7517
- - Client: ${JSON.stringify(node.data)}
7518
- - Server: ${JSON.stringify(vnode.children)}`
7506
+ - Server rendered: ${JSON.stringify(
7507
+ node.data
7508
+ )}
7509
+ - Client rendered: ${JSON.stringify(vnode.children)}`
7519
7510
  );
7520
7511
  node.data = vnode.children;
7521
7512
  }
@@ -7718,8 +7709,8 @@ If you want to remount the same app, move your app creation logic into a factory
7718
7709
  hasMismatch = true;
7719
7710
  warn(
7720
7711
  `Hydration text content mismatch in <${vnode.type}>:
7721
- - Client: ${el.textContent}
7722
- - Server: ${vnode.children}`
7712
+ - Server rendered: ${el.textContent}
7713
+ - Client rendered: ${vnode.children}`
7723
7714
  );
7724
7715
  el.textContent = vnode.children;
7725
7716
  }
@@ -9501,6 +9492,10 @@ If you want to remount the same app, move your app creation logic into a factory
9501
9492
  internals,
9502
9493
  1
9503
9494
  );
9495
+ } else {
9496
+ if (n2.props && n1.props && n2.props.to !== n1.props.to) {
9497
+ n2.props.to = n1.props.to;
9498
+ }
9504
9499
  }
9505
9500
  } else {
9506
9501
  if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
@@ -9541,19 +9536,18 @@ If you want to remount the same app, move your app creation logic into a factory
9541
9536
  if (target) {
9542
9537
  hostRemove(targetAnchor);
9543
9538
  }
9544
- if (doRemove || !isTeleportDisabled(props)) {
9545
- hostRemove(anchor);
9546
- if (shapeFlag & 16) {
9547
- for (let i = 0; i < children.length; i++) {
9548
- const child = children[i];
9549
- unmount(
9550
- child,
9551
- parentComponent,
9552
- parentSuspense,
9553
- true,
9554
- !!child.dynamicChildren
9555
- );
9556
- }
9539
+ doRemove && hostRemove(anchor);
9540
+ if (shapeFlag & 16) {
9541
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
9542
+ for (let i = 0; i < children.length; i++) {
9543
+ const child = children[i];
9544
+ unmount(
9545
+ child,
9546
+ parentComponent,
9547
+ parentSuspense,
9548
+ shouldRemove,
9549
+ !!child.dynamicChildren
9550
+ );
9557
9551
  }
9558
9552
  }
9559
9553
  },
@@ -9637,7 +9631,7 @@ If you want to remount the same app, move your app creation logic into a factory
9637
9631
  const ctx = vnode.ctx;
9638
9632
  if (ctx && ctx.ut) {
9639
9633
  let node = vnode.children[0].el;
9640
- while (node !== vnode.targetAnchor) {
9634
+ while (node && node !== vnode.targetAnchor) {
9641
9635
  if (node.nodeType === 1)
9642
9636
  node.setAttribute("data-v-owner", ctx.uid);
9643
9637
  node = node.nextSibling;
@@ -9646,7 +9640,7 @@ If you want to remount the same app, move your app creation logic into a factory
9646
9640
  }
9647
9641
  }
9648
9642
 
9649
- const normalizedAsyncComponentMap = /* @__PURE__ */ new Map();
9643
+ const normalizedAsyncComponentMap = /* @__PURE__ */ new WeakMap();
9650
9644
  function convertLegacyAsyncComponent(comp) {
9651
9645
  if (normalizedAsyncComponentMap.has(comp)) {
9652
9646
  return normalizedAsyncComponentMap.get(comp);
@@ -10354,9 +10348,12 @@ Component that was made reactive: `,
10354
10348
  if (!skipOptions) {
10355
10349
  setCurrentInstance(instance);
10356
10350
  pauseTracking();
10357
- applyOptions(instance);
10358
- resetTracking();
10359
- unsetCurrentInstance();
10351
+ try {
10352
+ applyOptions(instance);
10353
+ } finally {
10354
+ resetTracking();
10355
+ unsetCurrentInstance();
10356
+ }
10360
10357
  }
10361
10358
  if (!Component.render && instance.render === NOOP && !isSSR) {
10362
10359
  if (!compile && Component.template) {
@@ -10716,7 +10713,7 @@ Component that was made reactive: `,
10716
10713
  return true;
10717
10714
  }
10718
10715
 
10719
- const version = "3.3.4";
10716
+ const version = "3.3.6";
10720
10717
  const ssrUtils = null;
10721
10718
  const resolveFilter = resolveFilter$1 ;
10722
10719
  const _compatUtils = {
@@ -10795,922 +10792,977 @@ Component that was made reactive: `,
10795
10792
  }
10796
10793
  };
10797
10794
 
10798
- function patchClass(el, value, isSVG) {
10799
- const transitionClasses = el._vtc;
10800
- if (transitionClasses) {
10801
- value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
10802
- }
10803
- if (value == null) {
10804
- el.removeAttribute("class");
10805
- } else if (isSVG) {
10806
- el.setAttribute("class", value);
10807
- } else {
10808
- el.className = value;
10809
- }
10795
+ const TRANSITION = "transition";
10796
+ const ANIMATION = "animation";
10797
+ const vtcKey = Symbol("_vtc");
10798
+ const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
10799
+ Transition.displayName = "Transition";
10800
+ {
10801
+ Transition.__isBuiltIn = true;
10810
10802
  }
10811
-
10812
- function patchStyle(el, prev, next) {
10813
- const style = el.style;
10814
- const isCssString = isString(next);
10815
- if (next && !isCssString) {
10816
- if (prev && !isString(prev)) {
10817
- for (const key in prev) {
10818
- if (next[key] == null) {
10819
- setStyle(style, key, "");
10820
- }
10821
- }
10822
- }
10823
- for (const key in next) {
10824
- setStyle(style, key, next[key]);
10825
- }
10826
- } else {
10827
- const currentDisplay = style.display;
10828
- if (isCssString) {
10829
- if (prev !== next) {
10830
- style.cssText = next;
10831
- }
10832
- } else if (prev) {
10833
- el.removeAttribute("style");
10834
- }
10835
- if ("_vod" in el) {
10836
- style.display = currentDisplay;
10837
- }
10803
+ const DOMTransitionPropsValidators = {
10804
+ name: String,
10805
+ type: String,
10806
+ css: {
10807
+ type: Boolean,
10808
+ default: true
10809
+ },
10810
+ duration: [String, Number, Object],
10811
+ enterFromClass: String,
10812
+ enterActiveClass: String,
10813
+ enterToClass: String,
10814
+ appearFromClass: String,
10815
+ appearActiveClass: String,
10816
+ appearToClass: String,
10817
+ leaveFromClass: String,
10818
+ leaveActiveClass: String,
10819
+ leaveToClass: String
10820
+ };
10821
+ const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
10822
+ {},
10823
+ BaseTransitionPropsValidators,
10824
+ DOMTransitionPropsValidators
10825
+ );
10826
+ const callHook = (hook, args = []) => {
10827
+ if (isArray(hook)) {
10828
+ hook.forEach((h2) => h2(...args));
10829
+ } else if (hook) {
10830
+ hook(...args);
10838
10831
  }
10839
- }
10840
- const semicolonRE = /[^\\];\s*$/;
10841
- const importantRE = /\s*!important$/;
10842
- function setStyle(style, name, val) {
10843
- if (isArray(val)) {
10844
- val.forEach((v) => setStyle(style, name, v));
10845
- } else {
10846
- if (val == null)
10847
- val = "";
10848
- {
10849
- if (semicolonRE.test(val)) {
10850
- warn(
10851
- `Unexpected semicolon at the end of '${name}' style value: '${val}'`
10852
- );
10853
- }
10854
- }
10855
- if (name.startsWith("--")) {
10856
- style.setProperty(name, val);
10857
- } else {
10858
- const prefixed = autoPrefix(style, name);
10859
- if (importantRE.test(val)) {
10860
- style.setProperty(
10861
- hyphenate(prefixed),
10862
- val.replace(importantRE, ""),
10863
- "important"
10864
- );
10865
- } else {
10866
- style[prefixed] = val;
10867
- }
10832
+ };
10833
+ const hasExplicitCallback = (hook) => {
10834
+ return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
10835
+ };
10836
+ function resolveTransitionProps(rawProps) {
10837
+ const baseProps = {};
10838
+ for (const key in rawProps) {
10839
+ if (!(key in DOMTransitionPropsValidators)) {
10840
+ baseProps[key] = rawProps[key];
10868
10841
  }
10869
10842
  }
10870
- }
10871
- const prefixes = ["Webkit", "Moz", "ms"];
10872
- const prefixCache = {};
10873
- function autoPrefix(style, rawName) {
10874
- const cached = prefixCache[rawName];
10875
- if (cached) {
10876
- return cached;
10877
- }
10878
- let name = camelize(rawName);
10879
- if (name !== "filter" && name in style) {
10880
- return prefixCache[rawName] = name;
10881
- }
10882
- name = capitalize(name);
10883
- for (let i = 0; i < prefixes.length; i++) {
10884
- const prefixed = prefixes[i] + name;
10885
- if (prefixed in style) {
10886
- return prefixCache[rawName] = prefixed;
10887
- }
10843
+ if (rawProps.css === false) {
10844
+ return baseProps;
10888
10845
  }
10889
- return rawName;
10890
- }
10891
-
10892
- const xlinkNS = "http://www.w3.org/1999/xlink";
10893
- function patchAttr(el, key, value, isSVG, instance) {
10894
- if (isSVG && key.startsWith("xlink:")) {
10895
- if (value == null) {
10896
- el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10897
- } else {
10898
- el.setAttributeNS(xlinkNS, key, value);
10846
+ const {
10847
+ name = "v",
10848
+ type,
10849
+ duration,
10850
+ enterFromClass = `${name}-enter-from`,
10851
+ enterActiveClass = `${name}-enter-active`,
10852
+ enterToClass = `${name}-enter-to`,
10853
+ appearFromClass = enterFromClass,
10854
+ appearActiveClass = enterActiveClass,
10855
+ appearToClass = enterToClass,
10856
+ leaveFromClass = `${name}-leave-from`,
10857
+ leaveActiveClass = `${name}-leave-active`,
10858
+ leaveToClass = `${name}-leave-to`
10859
+ } = rawProps;
10860
+ const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
10861
+ let legacyEnterFromClass;
10862
+ let legacyAppearFromClass;
10863
+ let legacyLeaveFromClass;
10864
+ if (legacyClassEnabled) {
10865
+ const toLegacyClass = (cls) => cls.replace(/-from$/, "");
10866
+ if (!rawProps.enterFromClass) {
10867
+ legacyEnterFromClass = toLegacyClass(enterFromClass);
10899
10868
  }
10900
- } else {
10901
- if (compatCoerceAttr(el, key, value, instance)) {
10902
- return;
10869
+ if (!rawProps.appearFromClass) {
10870
+ legacyAppearFromClass = toLegacyClass(appearFromClass);
10903
10871
  }
10904
- const isBoolean = isSpecialBooleanAttr(key);
10905
- if (value == null || isBoolean && !includeBooleanAttr(value)) {
10906
- el.removeAttribute(key);
10907
- } else {
10908
- el.setAttribute(key, isBoolean ? "" : value);
10872
+ if (!rawProps.leaveFromClass) {
10873
+ legacyLeaveFromClass = toLegacyClass(leaveFromClass);
10909
10874
  }
10910
10875
  }
10911
- }
10912
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
10913
- function compatCoerceAttr(el, key, value, instance = null) {
10914
- if (isEnumeratedAttr(key)) {
10915
- const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
10916
- if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
10917
- "ATTR_ENUMERATED_COERCION",
10918
- instance,
10919
- key,
10920
- value,
10921
- v2CoercedValue
10922
- )) {
10923
- el.setAttribute(key, v2CoercedValue);
10924
- return true;
10925
- }
10926
- } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
10927
- "ATTR_FALSE_VALUE",
10928
- instance,
10929
- key
10930
- )) {
10931
- el.removeAttribute(key);
10932
- return true;
10933
- }
10934
- return false;
10935
- }
10936
-
10937
- function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
10938
- if (key === "innerHTML" || key === "textContent") {
10939
- if (prevChildren) {
10940
- unmountChildren(prevChildren, parentComponent, parentSuspense);
10941
- }
10942
- el[key] = value == null ? "" : value;
10943
- return;
10944
- }
10945
- const tag = el.tagName;
10946
- if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
10947
- !tag.includes("-")) {
10948
- el._value = value;
10949
- const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
10950
- const newValue = value == null ? "" : value;
10951
- if (oldValue !== newValue) {
10952
- el.value = newValue;
10953
- }
10954
- if (value == null) {
10955
- el.removeAttribute(key);
10956
- }
10957
- return;
10958
- }
10959
- let needRemove = false;
10960
- if (value === "" || value == null) {
10961
- const type = typeof el[key];
10962
- if (type === "boolean") {
10963
- value = includeBooleanAttr(value);
10964
- } else if (value == null && type === "string") {
10965
- value = "";
10966
- needRemove = true;
10967
- } else if (type === "number") {
10968
- value = 0;
10969
- needRemove = true;
10970
- }
10971
- } else {
10972
- if (value === false && compatUtils.isCompatEnabled(
10973
- "ATTR_FALSE_VALUE",
10974
- parentComponent
10975
- )) {
10976
- const type = typeof el[key];
10977
- if (type === "string" || type === "number") {
10978
- compatUtils.warnDeprecation(
10979
- "ATTR_FALSE_VALUE",
10980
- parentComponent,
10981
- key
10982
- );
10983
- value = type === "number" ? 0 : "";
10984
- needRemove = true;
10876
+ const durations = normalizeDuration(duration);
10877
+ const enterDuration = durations && durations[0];
10878
+ const leaveDuration = durations && durations[1];
10879
+ const {
10880
+ onBeforeEnter,
10881
+ onEnter,
10882
+ onEnterCancelled,
10883
+ onLeave,
10884
+ onLeaveCancelled,
10885
+ onBeforeAppear = onBeforeEnter,
10886
+ onAppear = onEnter,
10887
+ onAppearCancelled = onEnterCancelled
10888
+ } = baseProps;
10889
+ const finishEnter = (el, isAppear, done) => {
10890
+ removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
10891
+ removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
10892
+ done && done();
10893
+ };
10894
+ const finishLeave = (el, done) => {
10895
+ el._isLeaving = false;
10896
+ removeTransitionClass(el, leaveFromClass);
10897
+ removeTransitionClass(el, leaveToClass);
10898
+ removeTransitionClass(el, leaveActiveClass);
10899
+ done && done();
10900
+ };
10901
+ const makeEnterHook = (isAppear) => {
10902
+ return (el, done) => {
10903
+ const hook = isAppear ? onAppear : onEnter;
10904
+ const resolve = () => finishEnter(el, isAppear, done);
10905
+ callHook(hook, [el, resolve]);
10906
+ nextFrame(() => {
10907
+ removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
10908
+ if (legacyClassEnabled) {
10909
+ const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
10910
+ if (legacyClass) {
10911
+ removeTransitionClass(el, legacyClass);
10912
+ }
10913
+ }
10914
+ addTransitionClass(el, isAppear ? appearToClass : enterToClass);
10915
+ if (!hasExplicitCallback(hook)) {
10916
+ whenTransitionEnds(el, type, enterDuration, resolve);
10917
+ }
10918
+ });
10919
+ };
10920
+ };
10921
+ return extend(baseProps, {
10922
+ onBeforeEnter(el) {
10923
+ callHook(onBeforeEnter, [el]);
10924
+ addTransitionClass(el, enterFromClass);
10925
+ if (legacyClassEnabled && legacyEnterFromClass) {
10926
+ addTransitionClass(el, legacyEnterFromClass);
10985
10927
  }
10928
+ addTransitionClass(el, enterActiveClass);
10929
+ },
10930
+ onBeforeAppear(el) {
10931
+ callHook(onBeforeAppear, [el]);
10932
+ addTransitionClass(el, appearFromClass);
10933
+ if (legacyClassEnabled && legacyAppearFromClass) {
10934
+ addTransitionClass(el, legacyAppearFromClass);
10935
+ }
10936
+ addTransitionClass(el, appearActiveClass);
10937
+ },
10938
+ onEnter: makeEnterHook(false),
10939
+ onAppear: makeEnterHook(true),
10940
+ onLeave(el, done) {
10941
+ el._isLeaving = true;
10942
+ const resolve = () => finishLeave(el, done);
10943
+ addTransitionClass(el, leaveFromClass);
10944
+ if (legacyClassEnabled && legacyLeaveFromClass) {
10945
+ addTransitionClass(el, legacyLeaveFromClass);
10946
+ }
10947
+ forceReflow();
10948
+ addTransitionClass(el, leaveActiveClass);
10949
+ nextFrame(() => {
10950
+ if (!el._isLeaving) {
10951
+ return;
10952
+ }
10953
+ removeTransitionClass(el, leaveFromClass);
10954
+ if (legacyClassEnabled && legacyLeaveFromClass) {
10955
+ removeTransitionClass(el, legacyLeaveFromClass);
10956
+ }
10957
+ addTransitionClass(el, leaveToClass);
10958
+ if (!hasExplicitCallback(onLeave)) {
10959
+ whenTransitionEnds(el, type, leaveDuration, resolve);
10960
+ }
10961
+ });
10962
+ callHook(onLeave, [el, resolve]);
10963
+ },
10964
+ onEnterCancelled(el) {
10965
+ finishEnter(el, false);
10966
+ callHook(onEnterCancelled, [el]);
10967
+ },
10968
+ onAppearCancelled(el) {
10969
+ finishEnter(el, true);
10970
+ callHook(onAppearCancelled, [el]);
10971
+ },
10972
+ onLeaveCancelled(el) {
10973
+ finishLeave(el);
10974
+ callHook(onLeaveCancelled, [el]);
10986
10975
  }
10976
+ });
10977
+ }
10978
+ function normalizeDuration(duration) {
10979
+ if (duration == null) {
10980
+ return null;
10981
+ } else if (isObject(duration)) {
10982
+ return [NumberOf(duration.enter), NumberOf(duration.leave)];
10983
+ } else {
10984
+ const n = NumberOf(duration);
10985
+ return [n, n];
10987
10986
  }
10988
- try {
10989
- el[key] = value;
10990
- } catch (e) {
10991
- if (!needRemove) {
10992
- warn(
10993
- `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
10994
- e
10995
- );
10996
- }
10997
- }
10998
- needRemove && el.removeAttribute(key);
10999
10987
  }
11000
-
11001
- function addEventListener(el, event, handler, options) {
11002
- el.addEventListener(event, handler, options);
10988
+ function NumberOf(val) {
10989
+ const res = toNumber(val);
10990
+ {
10991
+ assertNumber(res, "<transition> explicit duration");
10992
+ }
10993
+ return res;
11003
10994
  }
11004
- function removeEventListener(el, event, handler, options) {
11005
- el.removeEventListener(event, handler, options);
10995
+ function addTransitionClass(el, cls) {
10996
+ cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
10997
+ (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
11006
10998
  }
11007
- function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11008
- const invokers = el._vei || (el._vei = {});
11009
- const existingInvoker = invokers[rawName];
11010
- if (nextValue && existingInvoker) {
11011
- existingInvoker.value = nextValue;
11012
- } else {
11013
- const [name, options] = parseName(rawName);
11014
- if (nextValue) {
11015
- const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11016
- addEventListener(el, name, invoker, options);
11017
- } else if (existingInvoker) {
11018
- removeEventListener(el, name, existingInvoker, options);
11019
- invokers[rawName] = void 0;
10999
+ function removeTransitionClass(el, cls) {
11000
+ cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11001
+ const _vtc = el[vtcKey];
11002
+ if (_vtc) {
11003
+ _vtc.delete(cls);
11004
+ if (!_vtc.size) {
11005
+ el[vtcKey] = void 0;
11020
11006
  }
11021
11007
  }
11022
11008
  }
11023
- const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11024
- function parseName(name) {
11025
- let options;
11026
- if (optionsModifierRE.test(name)) {
11027
- options = {};
11028
- let m;
11029
- while (m = name.match(optionsModifierRE)) {
11030
- name = name.slice(0, name.length - m[0].length);
11031
- options[m[0].toLowerCase()] = true;
11009
+ function nextFrame(cb) {
11010
+ requestAnimationFrame(() => {
11011
+ requestAnimationFrame(cb);
11012
+ });
11013
+ }
11014
+ let endId = 0;
11015
+ function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11016
+ const id = el._endId = ++endId;
11017
+ const resolveIfNotStale = () => {
11018
+ if (id === el._endId) {
11019
+ resolve();
11032
11020
  }
11021
+ };
11022
+ if (explicitTimeout) {
11023
+ return setTimeout(resolveIfNotStale, explicitTimeout);
11033
11024
  }
11034
- const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11035
- return [event, options];
11036
- }
11037
- let cachedNow = 0;
11038
- const p = /* @__PURE__ */ Promise.resolve();
11039
- const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11040
- function createInvoker(initialValue, instance) {
11041
- const invoker = (e) => {
11042
- if (!e._vts) {
11043
- e._vts = Date.now();
11044
- } else if (e._vts <= invoker.attached) {
11045
- return;
11025
+ const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11026
+ if (!type) {
11027
+ return resolve();
11028
+ }
11029
+ const endEvent = type + "end";
11030
+ let ended = 0;
11031
+ const end = () => {
11032
+ el.removeEventListener(endEvent, onEnd);
11033
+ resolveIfNotStale();
11034
+ };
11035
+ const onEnd = (e) => {
11036
+ if (e.target === el && ++ended >= propCount) {
11037
+ end();
11046
11038
  }
11047
- callWithAsyncErrorHandling(
11048
- patchStopImmediatePropagation(e, invoker.value),
11049
- instance,
11050
- 5,
11051
- [e]
11052
- );
11053
11039
  };
11054
- invoker.value = initialValue;
11055
- invoker.attached = getNow();
11056
- return invoker;
11040
+ setTimeout(() => {
11041
+ if (ended < propCount) {
11042
+ end();
11043
+ }
11044
+ }, timeout + 1);
11045
+ el.addEventListener(endEvent, onEnd);
11057
11046
  }
11058
- function patchStopImmediatePropagation(e, value) {
11059
- if (isArray(value)) {
11060
- const originalStop = e.stopImmediatePropagation;
11061
- e.stopImmediatePropagation = () => {
11062
- originalStop.call(e);
11063
- e._stopped = true;
11064
- };
11065
- return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11047
+ function getTransitionInfo(el, expectedType) {
11048
+ const styles = window.getComputedStyle(el);
11049
+ const getStyleProperties = (key) => (styles[key] || "").split(", ");
11050
+ const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
11051
+ const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
11052
+ const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11053
+ const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11054
+ const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11055
+ const animationTimeout = getTimeout(animationDelays, animationDurations);
11056
+ let type = null;
11057
+ let timeout = 0;
11058
+ let propCount = 0;
11059
+ if (expectedType === TRANSITION) {
11060
+ if (transitionTimeout > 0) {
11061
+ type = TRANSITION;
11062
+ timeout = transitionTimeout;
11063
+ propCount = transitionDurations.length;
11064
+ }
11065
+ } else if (expectedType === ANIMATION) {
11066
+ if (animationTimeout > 0) {
11067
+ type = ANIMATION;
11068
+ timeout = animationTimeout;
11069
+ propCount = animationDurations.length;
11070
+ }
11066
11071
  } else {
11067
- return value;
11072
+ timeout = Math.max(transitionTimeout, animationTimeout);
11073
+ type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
11074
+ propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
11075
+ }
11076
+ const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
11077
+ getStyleProperties(`${TRANSITION}Property`).toString()
11078
+ );
11079
+ return {
11080
+ type,
11081
+ timeout,
11082
+ propCount,
11083
+ hasTransform
11084
+ };
11085
+ }
11086
+ function getTimeout(delays, durations) {
11087
+ while (delays.length < durations.length) {
11088
+ delays = delays.concat(delays);
11068
11089
  }
11090
+ return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11091
+ }
11092
+ function toMs(s) {
11093
+ if (s === "auto")
11094
+ return 0;
11095
+ return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11096
+ }
11097
+ function forceReflow() {
11098
+ return document.body.offsetHeight;
11069
11099
  }
11070
11100
 
11071
- const nativeOnRE = /^on[a-z]/;
11072
- const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11073
- if (key === "class") {
11074
- patchClass(el, nextValue, isSVG);
11075
- } else if (key === "style") {
11076
- patchStyle(el, prevValue, nextValue);
11077
- } else if (isOn(key)) {
11078
- if (!isModelListener(key)) {
11079
- patchEvent(el, key, prevValue, nextValue, parentComponent);
11080
- }
11081
- } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11082
- patchDOMProp(
11083
- el,
11084
- key,
11085
- nextValue,
11086
- prevChildren,
11087
- parentComponent,
11088
- parentSuspense,
11089
- unmountChildren
11090
- );
11101
+ function patchClass(el, value, isSVG) {
11102
+ const transitionClasses = el[vtcKey];
11103
+ if (transitionClasses) {
11104
+ value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
11105
+ }
11106
+ if (value == null) {
11107
+ el.removeAttribute("class");
11108
+ } else if (isSVG) {
11109
+ el.setAttribute("class", value);
11091
11110
  } else {
11092
- if (key === "true-value") {
11093
- el._trueValue = nextValue;
11094
- } else if (key === "false-value") {
11095
- el._falseValue = nextValue;
11096
- }
11097
- patchAttr(el, key, nextValue, isSVG, parentComponent);
11111
+ el.className = value;
11098
11112
  }
11099
- };
11100
- function shouldSetAsProp(el, key, value, isSVG) {
11101
- if (isSVG) {
11102
- if (key === "innerHTML" || key === "textContent") {
11103
- return true;
11113
+ }
11114
+
11115
+ const vShowOldKey = Symbol("_vod");
11116
+ const vShow = {
11117
+ beforeMount(el, { value }, { transition }) {
11118
+ el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
11119
+ if (transition && value) {
11120
+ transition.beforeEnter(el);
11121
+ } else {
11122
+ setDisplay(el, value);
11104
11123
  }
11105
- if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11106
- return true;
11124
+ },
11125
+ mounted(el, { value }, { transition }) {
11126
+ if (transition && value) {
11127
+ transition.enter(el);
11107
11128
  }
11108
- return false;
11109
- }
11110
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
11111
- return false;
11112
- }
11113
- if (key === "form") {
11114
- return false;
11115
- }
11116
- if (key === "list" && el.tagName === "INPUT") {
11117
- return false;
11118
- }
11119
- if (key === "type" && el.tagName === "TEXTAREA") {
11120
- return false;
11121
- }
11122
- if (nativeOnRE.test(key) && isString(value)) {
11123
- return false;
11129
+ },
11130
+ updated(el, { value, oldValue }, { transition }) {
11131
+ if (!value === !oldValue)
11132
+ return;
11133
+ if (transition) {
11134
+ if (value) {
11135
+ transition.beforeEnter(el);
11136
+ setDisplay(el, true);
11137
+ transition.enter(el);
11138
+ } else {
11139
+ transition.leave(el, () => {
11140
+ setDisplay(el, false);
11141
+ });
11142
+ }
11143
+ } else {
11144
+ setDisplay(el, value);
11145
+ }
11146
+ },
11147
+ beforeUnmount(el, { value }) {
11148
+ setDisplay(el, value);
11124
11149
  }
11125
- return key in el;
11150
+ };
11151
+ function setDisplay(el, value) {
11152
+ el.style.display = value ? el[vShowOldKey] : "none";
11126
11153
  }
11127
11154
 
11128
- function defineCustomElement(options, hydrate2) {
11129
- const Comp = defineComponent(options);
11130
- class VueCustomElement extends VueElement {
11131
- constructor(initialProps) {
11132
- super(Comp, initialProps, hydrate2);
11155
+ function patchStyle(el, prev, next) {
11156
+ const style = el.style;
11157
+ const isCssString = isString(next);
11158
+ if (next && !isCssString) {
11159
+ if (prev && !isString(prev)) {
11160
+ for (const key in prev) {
11161
+ if (next[key] == null) {
11162
+ setStyle(style, key, "");
11163
+ }
11164
+ }
11133
11165
  }
11134
- }
11135
- VueCustomElement.def = Comp;
11136
- return VueCustomElement;
11166
+ for (const key in next) {
11167
+ setStyle(style, key, next[key]);
11168
+ }
11169
+ } else {
11170
+ const currentDisplay = style.display;
11171
+ if (isCssString) {
11172
+ if (prev !== next) {
11173
+ style.cssText = next;
11174
+ }
11175
+ } else if (prev) {
11176
+ el.removeAttribute("style");
11177
+ }
11178
+ if (vShowOldKey in el) {
11179
+ style.display = currentDisplay;
11180
+ }
11181
+ }
11137
11182
  }
11138
- const defineSSRCustomElement = (options) => {
11139
- return defineCustomElement(options, hydrate);
11140
- };
11141
- const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11142
- };
11143
- class VueElement extends BaseClass {
11144
- constructor(_def, _props = {}, hydrate2) {
11145
- super();
11146
- this._def = _def;
11147
- this._props = _props;
11148
- /**
11149
- * @internal
11150
- */
11151
- this._instance = null;
11152
- this._connected = false;
11153
- this._resolved = false;
11154
- this._numberProps = null;
11155
- if (this.shadowRoot && hydrate2) {
11156
- hydrate2(this._createVNode(), this.shadowRoot);
11157
- } else {
11158
- if (this.shadowRoot) {
11183
+ const semicolonRE = /[^\\];\s*$/;
11184
+ const importantRE = /\s*!important$/;
11185
+ function setStyle(style, name, val) {
11186
+ if (isArray(val)) {
11187
+ val.forEach((v) => setStyle(style, name, v));
11188
+ } else {
11189
+ if (val == null)
11190
+ val = "";
11191
+ {
11192
+ if (semicolonRE.test(val)) {
11159
11193
  warn(
11160
- `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11194
+ `Unexpected semicolon at the end of '${name}' style value: '${val}'`
11161
11195
  );
11162
11196
  }
11163
- this.attachShadow({ mode: "open" });
11164
- if (!this._def.__asyncLoader) {
11165
- this._resolveProps(this._def);
11166
- }
11167
11197
  }
11168
- }
11169
- connectedCallback() {
11170
- this._connected = true;
11171
- if (!this._instance) {
11172
- if (this._resolved) {
11173
- this._update();
11198
+ if (name.startsWith("--")) {
11199
+ style.setProperty(name, val);
11200
+ } else {
11201
+ const prefixed = autoPrefix(style, name);
11202
+ if (importantRE.test(val)) {
11203
+ style.setProperty(
11204
+ hyphenate(prefixed),
11205
+ val.replace(importantRE, ""),
11206
+ "important"
11207
+ );
11174
11208
  } else {
11175
- this._resolveDef();
11209
+ style[prefixed] = val;
11176
11210
  }
11177
11211
  }
11178
11212
  }
11179
- disconnectedCallback() {
11180
- this._connected = false;
11181
- nextTick(() => {
11182
- if (!this._connected) {
11183
- render(null, this.shadowRoot);
11184
- this._instance = null;
11185
- }
11186
- });
11213
+ }
11214
+ const prefixes = ["Webkit", "Moz", "ms"];
11215
+ const prefixCache = {};
11216
+ function autoPrefix(style, rawName) {
11217
+ const cached = prefixCache[rawName];
11218
+ if (cached) {
11219
+ return cached;
11187
11220
  }
11188
- /**
11189
- * resolve inner component definition (handle possible async component)
11190
- */
11191
- _resolveDef() {
11192
- this._resolved = true;
11193
- for (let i = 0; i < this.attributes.length; i++) {
11194
- this._setAttr(this.attributes[i].name);
11221
+ let name = camelize(rawName);
11222
+ if (name !== "filter" && name in style) {
11223
+ return prefixCache[rawName] = name;
11224
+ }
11225
+ name = capitalize(name);
11226
+ for (let i = 0; i < prefixes.length; i++) {
11227
+ const prefixed = prefixes[i] + name;
11228
+ if (prefixed in style) {
11229
+ return prefixCache[rawName] = prefixed;
11195
11230
  }
11196
- new MutationObserver((mutations) => {
11197
- for (const m of mutations) {
11198
- this._setAttr(m.attributeName);
11199
- }
11200
- }).observe(this, { attributes: true });
11201
- const resolve = (def, isAsync = false) => {
11202
- const { props, styles } = def;
11203
- let numberProps;
11204
- if (props && !isArray(props)) {
11205
- for (const key in props) {
11206
- const opt = props[key];
11207
- if (opt === Number || opt && opt.type === Number) {
11208
- if (key in this._props) {
11209
- this._props[key] = toNumber(this._props[key]);
11210
- }
11211
- (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11212
- }
11213
- }
11214
- }
11215
- this._numberProps = numberProps;
11216
- if (isAsync) {
11217
- this._resolveProps(def);
11218
- }
11219
- this._applyStyles(styles);
11220
- this._update();
11221
- };
11222
- const asyncDef = this._def.__asyncLoader;
11223
- if (asyncDef) {
11224
- asyncDef().then((def) => resolve(def, true));
11231
+ }
11232
+ return rawName;
11233
+ }
11234
+
11235
+ const xlinkNS = "http://www.w3.org/1999/xlink";
11236
+ function patchAttr(el, key, value, isSVG, instance) {
11237
+ if (isSVG && key.startsWith("xlink:")) {
11238
+ if (value == null) {
11239
+ el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
11225
11240
  } else {
11226
- resolve(this._def);
11241
+ el.setAttributeNS(xlinkNS, key, value);
11227
11242
  }
11228
- }
11229
- _resolveProps(def) {
11230
- const { props } = def;
11231
- const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11232
- for (const key of Object.keys(this)) {
11233
- if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11234
- this._setProp(key, this[key], true, false);
11235
- }
11243
+ } else {
11244
+ if (compatCoerceAttr(el, key, value, instance)) {
11245
+ return;
11236
11246
  }
11237
- for (const key of declaredPropKeys.map(camelize)) {
11238
- Object.defineProperty(this, key, {
11239
- get() {
11240
- return this._getProp(key);
11241
- },
11242
- set(val) {
11243
- this._setProp(key, val);
11244
- }
11245
- });
11247
+ const isBoolean = isSpecialBooleanAttr(key);
11248
+ if (value == null || isBoolean && !includeBooleanAttr(value)) {
11249
+ el.removeAttribute(key);
11250
+ } else {
11251
+ el.setAttribute(key, isBoolean ? "" : value);
11246
11252
  }
11247
11253
  }
11248
- _setAttr(key) {
11249
- let value = this.getAttribute(key);
11250
- const camelKey = camelize(key);
11251
- if (this._numberProps && this._numberProps[camelKey]) {
11252
- value = toNumber(value);
11254
+ }
11255
+ const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
11256
+ function compatCoerceAttr(el, key, value, instance = null) {
11257
+ if (isEnumeratedAttr(key)) {
11258
+ const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
11259
+ if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
11260
+ "ATTR_ENUMERATED_COERCION",
11261
+ instance,
11262
+ key,
11263
+ value,
11264
+ v2CoercedValue
11265
+ )) {
11266
+ el.setAttribute(key, v2CoercedValue);
11267
+ return true;
11253
11268
  }
11254
- this._setProp(camelKey, value, false);
11255
- }
11256
- /**
11257
- * @internal
11258
- */
11259
- _getProp(key) {
11260
- return this._props[key];
11269
+ } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
11270
+ "ATTR_FALSE_VALUE",
11271
+ instance,
11272
+ key
11273
+ )) {
11274
+ el.removeAttribute(key);
11275
+ return true;
11261
11276
  }
11262
- /**
11263
- * @internal
11264
- */
11265
- _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11266
- if (val !== this._props[key]) {
11267
- this._props[key] = val;
11268
- if (shouldUpdate && this._instance) {
11269
- this._update();
11270
- }
11271
- if (shouldReflect) {
11272
- if (val === true) {
11273
- this.setAttribute(hyphenate(key), "");
11274
- } else if (typeof val === "string" || typeof val === "number") {
11275
- this.setAttribute(hyphenate(key), val + "");
11276
- } else if (!val) {
11277
- this.removeAttribute(hyphenate(key));
11278
- }
11279
- }
11277
+ return false;
11278
+ }
11279
+
11280
+ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11281
+ if (key === "innerHTML" || key === "textContent") {
11282
+ if (prevChildren) {
11283
+ unmountChildren(prevChildren, parentComponent, parentSuspense);
11280
11284
  }
11285
+ el[key] = value == null ? "" : value;
11286
+ return;
11281
11287
  }
11282
- _update() {
11283
- render(this._createVNode(), this.shadowRoot);
11284
- }
11285
- _createVNode() {
11286
- const vnode = createVNode(this._def, extend({}, this._props));
11287
- if (!this._instance) {
11288
- vnode.ce = (instance) => {
11289
- this._instance = instance;
11290
- instance.isCE = true;
11291
- {
11292
- instance.ceReload = (newStyles) => {
11293
- if (this._styles) {
11294
- this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11295
- this._styles.length = 0;
11296
- }
11297
- this._applyStyles(newStyles);
11298
- this._instance = null;
11299
- this._update();
11300
- };
11301
- }
11302
- const dispatch = (event, args) => {
11303
- this.dispatchEvent(
11304
- new CustomEvent(event, {
11305
- detail: args
11306
- })
11307
- );
11308
- };
11309
- instance.emit = (event, ...args) => {
11310
- dispatch(event, args);
11311
- if (hyphenate(event) !== event) {
11312
- dispatch(hyphenate(event), args);
11313
- }
11314
- };
11315
- let parent = this;
11316
- while (parent = parent && (parent.parentNode || parent.host)) {
11317
- if (parent instanceof VueElement) {
11318
- instance.parent = parent._instance;
11319
- instance.provides = parent._instance.provides;
11320
- break;
11321
- }
11322
- }
11323
- };
11288
+ const tag = el.tagName;
11289
+ if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
11290
+ !tag.includes("-")) {
11291
+ el._value = value;
11292
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
11293
+ const newValue = value == null ? "" : value;
11294
+ if (oldValue !== newValue) {
11295
+ el.value = newValue;
11324
11296
  }
11325
- return vnode;
11297
+ if (value == null) {
11298
+ el.removeAttribute(key);
11299
+ }
11300
+ return;
11326
11301
  }
11327
- _applyStyles(styles) {
11328
- if (styles) {
11329
- styles.forEach((css) => {
11330
- const s = document.createElement("style");
11331
- s.textContent = css;
11332
- this.shadowRoot.appendChild(s);
11333
- {
11334
- (this._styles || (this._styles = [])).push(s);
11335
- }
11336
- });
11302
+ let needRemove = false;
11303
+ if (value === "" || value == null) {
11304
+ const type = typeof el[key];
11305
+ if (type === "boolean") {
11306
+ value = includeBooleanAttr(value);
11307
+ } else if (value == null && type === "string") {
11308
+ value = "";
11309
+ needRemove = true;
11310
+ } else if (type === "number") {
11311
+ value = 0;
11312
+ needRemove = true;
11313
+ }
11314
+ } else {
11315
+ if (value === false && compatUtils.isCompatEnabled(
11316
+ "ATTR_FALSE_VALUE",
11317
+ parentComponent
11318
+ )) {
11319
+ const type = typeof el[key];
11320
+ if (type === "string" || type === "number") {
11321
+ compatUtils.warnDeprecation(
11322
+ "ATTR_FALSE_VALUE",
11323
+ parentComponent,
11324
+ key
11325
+ );
11326
+ value = type === "number" ? 0 : "";
11327
+ needRemove = true;
11328
+ }
11337
11329
  }
11338
11330
  }
11339
- }
11340
-
11341
- function useCssModule(name = "$style") {
11342
- {
11343
- {
11344
- warn(`useCssModule() is not supported in the global build.`);
11331
+ try {
11332
+ el[key] = value;
11333
+ } catch (e) {
11334
+ if (!needRemove) {
11335
+ warn(
11336
+ `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11337
+ e
11338
+ );
11345
11339
  }
11346
- return EMPTY_OBJ;
11347
11340
  }
11341
+ needRemove && el.removeAttribute(key);
11348
11342
  }
11349
11343
 
11350
- function useCssVars(getter) {
11351
- const instance = getCurrentInstance();
11352
- if (!instance) {
11353
- warn(`useCssVars is called without current active component instance.`);
11354
- return;
11355
- }
11356
- const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11357
- Array.from(
11358
- document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11359
- ).forEach((node) => setVarsOnNode(node, vars));
11360
- };
11361
- const setVars = () => {
11362
- const vars = getter(instance.proxy);
11363
- setVarsOnVNode(instance.subTree, vars);
11364
- updateTeleports(vars);
11365
- };
11366
- watchPostEffect(setVars);
11367
- onMounted(() => {
11368
- const ob = new MutationObserver(setVars);
11369
- ob.observe(instance.subTree.el.parentNode, { childList: true });
11370
- onUnmounted(() => ob.disconnect());
11371
- });
11344
+ function addEventListener(el, event, handler, options) {
11345
+ el.addEventListener(event, handler, options);
11372
11346
  }
11373
- function setVarsOnVNode(vnode, vars) {
11374
- if (vnode.shapeFlag & 128) {
11375
- const suspense = vnode.suspense;
11376
- vnode = suspense.activeBranch;
11377
- if (suspense.pendingBranch && !suspense.isHydrating) {
11378
- suspense.effects.push(() => {
11379
- setVarsOnVNode(suspense.activeBranch, vars);
11380
- });
11347
+ function removeEventListener(el, event, handler, options) {
11348
+ el.removeEventListener(event, handler, options);
11349
+ }
11350
+ const veiKey = Symbol("_vei");
11351
+ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11352
+ const invokers = el[veiKey] || (el[veiKey] = {});
11353
+ const existingInvoker = invokers[rawName];
11354
+ if (nextValue && existingInvoker) {
11355
+ existingInvoker.value = nextValue;
11356
+ } else {
11357
+ const [name, options] = parseName(rawName);
11358
+ if (nextValue) {
11359
+ const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11360
+ addEventListener(el, name, invoker, options);
11361
+ } else if (existingInvoker) {
11362
+ removeEventListener(el, name, existingInvoker, options);
11363
+ invokers[rawName] = void 0;
11381
11364
  }
11382
11365
  }
11383
- while (vnode.component) {
11384
- vnode = vnode.component.subTree;
11385
- }
11386
- if (vnode.shapeFlag & 1 && vnode.el) {
11387
- setVarsOnNode(vnode.el, vars);
11388
- } else if (vnode.type === Fragment) {
11389
- vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11390
- } else if (vnode.type === Static) {
11391
- let { el, anchor } = vnode;
11392
- while (el) {
11393
- setVarsOnNode(el, vars);
11394
- if (el === anchor)
11395
- break;
11396
- el = el.nextSibling;
11366
+ }
11367
+ const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11368
+ function parseName(name) {
11369
+ let options;
11370
+ if (optionsModifierRE.test(name)) {
11371
+ options = {};
11372
+ let m;
11373
+ while (m = name.match(optionsModifierRE)) {
11374
+ name = name.slice(0, name.length - m[0].length);
11375
+ options[m[0].toLowerCase()] = true;
11397
11376
  }
11398
11377
  }
11378
+ const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11379
+ return [event, options];
11399
11380
  }
11400
- function setVarsOnNode(el, vars) {
11401
- if (el.nodeType === 1) {
11402
- const style = el.style;
11403
- for (const key in vars) {
11404
- style.setProperty(`--${key}`, vars[key]);
11381
+ let cachedNow = 0;
11382
+ const p = /* @__PURE__ */ Promise.resolve();
11383
+ const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11384
+ function createInvoker(initialValue, instance) {
11385
+ const invoker = (e) => {
11386
+ if (!e._vts) {
11387
+ e._vts = Date.now();
11388
+ } else if (e._vts <= invoker.attached) {
11389
+ return;
11405
11390
  }
11391
+ callWithAsyncErrorHandling(
11392
+ patchStopImmediatePropagation(e, invoker.value),
11393
+ instance,
11394
+ 5,
11395
+ [e]
11396
+ );
11397
+ };
11398
+ invoker.value = initialValue;
11399
+ invoker.attached = getNow();
11400
+ return invoker;
11401
+ }
11402
+ function patchStopImmediatePropagation(e, value) {
11403
+ if (isArray(value)) {
11404
+ const originalStop = e.stopImmediatePropagation;
11405
+ e.stopImmediatePropagation = () => {
11406
+ originalStop.call(e);
11407
+ e._stopped = true;
11408
+ };
11409
+ return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11410
+ } else {
11411
+ return value;
11406
11412
  }
11407
11413
  }
11408
11414
 
11409
- const TRANSITION = "transition";
11410
- const ANIMATION = "animation";
11411
- const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
11412
- Transition.displayName = "Transition";
11413
- {
11414
- Transition.__isBuiltIn = true;
11415
- }
11416
- const DOMTransitionPropsValidators = {
11417
- name: String,
11418
- type: String,
11419
- css: {
11420
- type: Boolean,
11421
- default: true
11422
- },
11423
- duration: [String, Number, Object],
11424
- enterFromClass: String,
11425
- enterActiveClass: String,
11426
- enterToClass: String,
11427
- appearFromClass: String,
11428
- appearActiveClass: String,
11429
- appearToClass: String,
11430
- leaveFromClass: String,
11431
- leaveActiveClass: String,
11432
- leaveToClass: String
11415
+ const nativeOnRE = /^on[a-z]/;
11416
+ const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11417
+ if (key === "class") {
11418
+ patchClass(el, nextValue, isSVG);
11419
+ } else if (key === "style") {
11420
+ patchStyle(el, prevValue, nextValue);
11421
+ } else if (isOn(key)) {
11422
+ if (!isModelListener(key)) {
11423
+ patchEvent(el, key, prevValue, nextValue, parentComponent);
11424
+ }
11425
+ } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11426
+ patchDOMProp(
11427
+ el,
11428
+ key,
11429
+ nextValue,
11430
+ prevChildren,
11431
+ parentComponent,
11432
+ parentSuspense,
11433
+ unmountChildren
11434
+ );
11435
+ } else {
11436
+ if (key === "true-value") {
11437
+ el._trueValue = nextValue;
11438
+ } else if (key === "false-value") {
11439
+ el._falseValue = nextValue;
11440
+ }
11441
+ patchAttr(el, key, nextValue, isSVG, parentComponent);
11442
+ }
11433
11443
  };
11434
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
11435
- {},
11436
- BaseTransitionPropsValidators,
11437
- DOMTransitionPropsValidators
11438
- );
11439
- const callHook = (hook, args = []) => {
11440
- if (isArray(hook)) {
11441
- hook.forEach((h2) => h2(...args));
11442
- } else if (hook) {
11443
- hook(...args);
11444
+ function shouldSetAsProp(el, key, value, isSVG) {
11445
+ if (isSVG) {
11446
+ if (key === "innerHTML" || key === "textContent") {
11447
+ return true;
11448
+ }
11449
+ if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11450
+ return true;
11451
+ }
11452
+ return false;
11453
+ }
11454
+ if (key === "spellcheck" || key === "draggable" || key === "translate") {
11455
+ return false;
11456
+ }
11457
+ if (key === "form") {
11458
+ return false;
11459
+ }
11460
+ if (key === "list" && el.tagName === "INPUT") {
11461
+ return false;
11462
+ }
11463
+ if (key === "type" && el.tagName === "TEXTAREA") {
11464
+ return false;
11465
+ }
11466
+ if (nativeOnRE.test(key) && isString(value)) {
11467
+ return false;
11468
+ }
11469
+ return key in el;
11470
+ }
11471
+
11472
+ /*! #__NO_SIDE_EFFECTS__ */
11473
+ // @__NO_SIDE_EFFECTS__
11474
+ function defineCustomElement(options, hydrate2) {
11475
+ const Comp = defineComponent(options);
11476
+ class VueCustomElement extends VueElement {
11477
+ constructor(initialProps) {
11478
+ super(Comp, initialProps, hydrate2);
11479
+ }
11444
11480
  }
11481
+ VueCustomElement.def = Comp;
11482
+ return VueCustomElement;
11483
+ }
11484
+ /*! #__NO_SIDE_EFFECTS__ */
11485
+ const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {
11486
+ return /* @__PURE__ */ defineCustomElement(options, hydrate);
11445
11487
  };
11446
- const hasExplicitCallback = (hook) => {
11447
- return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
11488
+ const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11448
11489
  };
11449
- function resolveTransitionProps(rawProps) {
11450
- const baseProps = {};
11451
- for (const key in rawProps) {
11452
- if (!(key in DOMTransitionPropsValidators)) {
11453
- baseProps[key] = rawProps[key];
11490
+ class VueElement extends BaseClass {
11491
+ constructor(_def, _props = {}, hydrate2) {
11492
+ super();
11493
+ this._def = _def;
11494
+ this._props = _props;
11495
+ /**
11496
+ * @internal
11497
+ */
11498
+ this._instance = null;
11499
+ this._connected = false;
11500
+ this._resolved = false;
11501
+ this._numberProps = null;
11502
+ this._ob = null;
11503
+ if (this.shadowRoot && hydrate2) {
11504
+ hydrate2(this._createVNode(), this.shadowRoot);
11505
+ } else {
11506
+ if (this.shadowRoot) {
11507
+ warn(
11508
+ `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11509
+ );
11510
+ }
11511
+ this.attachShadow({ mode: "open" });
11512
+ if (!this._def.__asyncLoader) {
11513
+ this._resolveProps(this._def);
11514
+ }
11454
11515
  }
11455
11516
  }
11456
- if (rawProps.css === false) {
11457
- return baseProps;
11458
- }
11459
- const {
11460
- name = "v",
11461
- type,
11462
- duration,
11463
- enterFromClass = `${name}-enter-from`,
11464
- enterActiveClass = `${name}-enter-active`,
11465
- enterToClass = `${name}-enter-to`,
11466
- appearFromClass = enterFromClass,
11467
- appearActiveClass = enterActiveClass,
11468
- appearToClass = enterToClass,
11469
- leaveFromClass = `${name}-leave-from`,
11470
- leaveActiveClass = `${name}-leave-active`,
11471
- leaveToClass = `${name}-leave-to`
11472
- } = rawProps;
11473
- const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
11474
- let legacyEnterFromClass;
11475
- let legacyAppearFromClass;
11476
- let legacyLeaveFromClass;
11477
- if (legacyClassEnabled) {
11478
- const toLegacyClass = (cls) => cls.replace(/-from$/, "");
11479
- if (!rawProps.enterFromClass) {
11480
- legacyEnterFromClass = toLegacyClass(enterFromClass);
11481
- }
11482
- if (!rawProps.appearFromClass) {
11483
- legacyAppearFromClass = toLegacyClass(appearFromClass);
11517
+ connectedCallback() {
11518
+ this._connected = true;
11519
+ if (!this._instance) {
11520
+ if (this._resolved) {
11521
+ this._update();
11522
+ } else {
11523
+ this._resolveDef();
11524
+ }
11484
11525
  }
11485
- if (!rawProps.leaveFromClass) {
11486
- legacyLeaveFromClass = toLegacyClass(leaveFromClass);
11526
+ }
11527
+ disconnectedCallback() {
11528
+ this._connected = false;
11529
+ if (this._ob) {
11530
+ this._ob.disconnect();
11531
+ this._ob = null;
11487
11532
  }
11533
+ nextTick(() => {
11534
+ if (!this._connected) {
11535
+ render(null, this.shadowRoot);
11536
+ this._instance = null;
11537
+ }
11538
+ });
11488
11539
  }
11489
- const durations = normalizeDuration(duration);
11490
- const enterDuration = durations && durations[0];
11491
- const leaveDuration = durations && durations[1];
11492
- const {
11493
- onBeforeEnter,
11494
- onEnter,
11495
- onEnterCancelled,
11496
- onLeave,
11497
- onLeaveCancelled,
11498
- onBeforeAppear = onBeforeEnter,
11499
- onAppear = onEnter,
11500
- onAppearCancelled = onEnterCancelled
11501
- } = baseProps;
11502
- const finishEnter = (el, isAppear, done) => {
11503
- removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
11504
- removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
11505
- done && done();
11506
- };
11507
- const finishLeave = (el, done) => {
11508
- el._isLeaving = false;
11509
- removeTransitionClass(el, leaveFromClass);
11510
- removeTransitionClass(el, leaveToClass);
11511
- removeTransitionClass(el, leaveActiveClass);
11512
- done && done();
11513
- };
11514
- const makeEnterHook = (isAppear) => {
11515
- return (el, done) => {
11516
- const hook = isAppear ? onAppear : onEnter;
11517
- const resolve = () => finishEnter(el, isAppear, done);
11518
- callHook(hook, [el, resolve]);
11519
- nextFrame(() => {
11520
- removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
11521
- if (legacyClassEnabled) {
11522
- const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
11523
- if (legacyClass) {
11524
- removeTransitionClass(el, legacyClass);
11540
+ /**
11541
+ * resolve inner component definition (handle possible async component)
11542
+ */
11543
+ _resolveDef() {
11544
+ this._resolved = true;
11545
+ for (let i = 0; i < this.attributes.length; i++) {
11546
+ this._setAttr(this.attributes[i].name);
11547
+ }
11548
+ this._ob = new MutationObserver((mutations) => {
11549
+ for (const m of mutations) {
11550
+ this._setAttr(m.attributeName);
11551
+ }
11552
+ });
11553
+ this._ob.observe(this, { attributes: true });
11554
+ const resolve = (def, isAsync = false) => {
11555
+ const { props, styles } = def;
11556
+ let numberProps;
11557
+ if (props && !isArray(props)) {
11558
+ for (const key in props) {
11559
+ const opt = props[key];
11560
+ if (opt === Number || opt && opt.type === Number) {
11561
+ if (key in this._props) {
11562
+ this._props[key] = toNumber(this._props[key]);
11563
+ }
11564
+ (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11525
11565
  }
11526
11566
  }
11527
- addTransitionClass(el, isAppear ? appearToClass : enterToClass);
11528
- if (!hasExplicitCallback(hook)) {
11529
- whenTransitionEnds(el, type, enterDuration, resolve);
11530
- }
11531
- });
11567
+ }
11568
+ this._numberProps = numberProps;
11569
+ if (isAsync) {
11570
+ this._resolveProps(def);
11571
+ }
11572
+ this._applyStyles(styles);
11573
+ this._update();
11532
11574
  };
11533
- };
11534
- return extend(baseProps, {
11535
- onBeforeEnter(el) {
11536
- callHook(onBeforeEnter, [el]);
11537
- addTransitionClass(el, enterFromClass);
11538
- if (legacyClassEnabled && legacyEnterFromClass) {
11539
- addTransitionClass(el, legacyEnterFromClass);
11575
+ const asyncDef = this._def.__asyncLoader;
11576
+ if (asyncDef) {
11577
+ asyncDef().then((def) => resolve(def, true));
11578
+ } else {
11579
+ resolve(this._def);
11580
+ }
11581
+ }
11582
+ _resolveProps(def) {
11583
+ const { props } = def;
11584
+ const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11585
+ for (const key of Object.keys(this)) {
11586
+ if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11587
+ this._setProp(key, this[key], true, false);
11540
11588
  }
11541
- addTransitionClass(el, enterActiveClass);
11542
- },
11543
- onBeforeAppear(el) {
11544
- callHook(onBeforeAppear, [el]);
11545
- addTransitionClass(el, appearFromClass);
11546
- if (legacyClassEnabled && legacyAppearFromClass) {
11547
- addTransitionClass(el, legacyAppearFromClass);
11589
+ }
11590
+ for (const key of declaredPropKeys.map(camelize)) {
11591
+ Object.defineProperty(this, key, {
11592
+ get() {
11593
+ return this._getProp(key);
11594
+ },
11595
+ set(val) {
11596
+ this._setProp(key, val);
11597
+ }
11598
+ });
11599
+ }
11600
+ }
11601
+ _setAttr(key) {
11602
+ let value = this.getAttribute(key);
11603
+ const camelKey = camelize(key);
11604
+ if (this._numberProps && this._numberProps[camelKey]) {
11605
+ value = toNumber(value);
11606
+ }
11607
+ this._setProp(camelKey, value, false);
11608
+ }
11609
+ /**
11610
+ * @internal
11611
+ */
11612
+ _getProp(key) {
11613
+ return this._props[key];
11614
+ }
11615
+ /**
11616
+ * @internal
11617
+ */
11618
+ _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11619
+ if (val !== this._props[key]) {
11620
+ this._props[key] = val;
11621
+ if (shouldUpdate && this._instance) {
11622
+ this._update();
11548
11623
  }
11549
- addTransitionClass(el, appearActiveClass);
11550
- },
11551
- onEnter: makeEnterHook(false),
11552
- onAppear: makeEnterHook(true),
11553
- onLeave(el, done) {
11554
- el._isLeaving = true;
11555
- const resolve = () => finishLeave(el, done);
11556
- addTransitionClass(el, leaveFromClass);
11557
- if (legacyClassEnabled && legacyLeaveFromClass) {
11558
- addTransitionClass(el, legacyLeaveFromClass);
11624
+ if (shouldReflect) {
11625
+ if (val === true) {
11626
+ this.setAttribute(hyphenate(key), "");
11627
+ } else if (typeof val === "string" || typeof val === "number") {
11628
+ this.setAttribute(hyphenate(key), val + "");
11629
+ } else if (!val) {
11630
+ this.removeAttribute(hyphenate(key));
11631
+ }
11559
11632
  }
11560
- forceReflow();
11561
- addTransitionClass(el, leaveActiveClass);
11562
- nextFrame(() => {
11563
- if (!el._isLeaving) {
11564
- return;
11633
+ }
11634
+ }
11635
+ _update() {
11636
+ render(this._createVNode(), this.shadowRoot);
11637
+ }
11638
+ _createVNode() {
11639
+ const vnode = createVNode(this._def, extend({}, this._props));
11640
+ if (!this._instance) {
11641
+ vnode.ce = (instance) => {
11642
+ this._instance = instance;
11643
+ instance.isCE = true;
11644
+ {
11645
+ instance.ceReload = (newStyles) => {
11646
+ if (this._styles) {
11647
+ this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11648
+ this._styles.length = 0;
11649
+ }
11650
+ this._applyStyles(newStyles);
11651
+ this._instance = null;
11652
+ this._update();
11653
+ };
11565
11654
  }
11566
- removeTransitionClass(el, leaveFromClass);
11567
- if (legacyClassEnabled && legacyLeaveFromClass) {
11568
- removeTransitionClass(el, legacyLeaveFromClass);
11655
+ const dispatch = (event, args) => {
11656
+ this.dispatchEvent(
11657
+ new CustomEvent(event, {
11658
+ detail: args
11659
+ })
11660
+ );
11661
+ };
11662
+ instance.emit = (event, ...args) => {
11663
+ dispatch(event, args);
11664
+ if (hyphenate(event) !== event) {
11665
+ dispatch(hyphenate(event), args);
11666
+ }
11667
+ };
11668
+ let parent = this;
11669
+ while (parent = parent && (parent.parentNode || parent.host)) {
11670
+ if (parent instanceof VueElement) {
11671
+ instance.parent = parent._instance;
11672
+ instance.provides = parent._instance.provides;
11673
+ break;
11674
+ }
11569
11675
  }
11570
- addTransitionClass(el, leaveToClass);
11571
- if (!hasExplicitCallback(onLeave)) {
11572
- whenTransitionEnds(el, type, leaveDuration, resolve);
11676
+ };
11677
+ }
11678
+ return vnode;
11679
+ }
11680
+ _applyStyles(styles) {
11681
+ if (styles) {
11682
+ styles.forEach((css) => {
11683
+ const s = document.createElement("style");
11684
+ s.textContent = css;
11685
+ this.shadowRoot.appendChild(s);
11686
+ {
11687
+ (this._styles || (this._styles = [])).push(s);
11573
11688
  }
11574
11689
  });
11575
- callHook(onLeave, [el, resolve]);
11576
- },
11577
- onEnterCancelled(el) {
11578
- finishEnter(el, false);
11579
- callHook(onEnterCancelled, [el]);
11580
- },
11581
- onAppearCancelled(el) {
11582
- finishEnter(el, true);
11583
- callHook(onAppearCancelled, [el]);
11584
- },
11585
- onLeaveCancelled(el) {
11586
- finishLeave(el);
11587
- callHook(onLeaveCancelled, [el]);
11588
11690
  }
11589
- });
11590
- }
11591
- function normalizeDuration(duration) {
11592
- if (duration == null) {
11593
- return null;
11594
- } else if (isObject(duration)) {
11595
- return [NumberOf(duration.enter), NumberOf(duration.leave)];
11596
- } else {
11597
- const n = NumberOf(duration);
11598
- return [n, n];
11599
11691
  }
11600
11692
  }
11601
- function NumberOf(val) {
11602
- const res = toNumber(val);
11693
+
11694
+ function useCssModule(name = "$style") {
11603
11695
  {
11604
- assertNumber(res, "<transition> explicit duration");
11605
- }
11606
- return res;
11607
- }
11608
- function addTransitionClass(el, cls) {
11609
- cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11610
- (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);
11611
- }
11612
- function removeTransitionClass(el, cls) {
11613
- cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11614
- const { _vtc } = el;
11615
- if (_vtc) {
11616
- _vtc.delete(cls);
11617
- if (!_vtc.size) {
11618
- el._vtc = void 0;
11696
+ {
11697
+ warn(`useCssModule() is not supported in the global build.`);
11619
11698
  }
11699
+ return EMPTY_OBJ;
11620
11700
  }
11621
11701
  }
11622
- function nextFrame(cb) {
11623
- requestAnimationFrame(() => {
11624
- requestAnimationFrame(cb);
11625
- });
11626
- }
11627
- let endId = 0;
11628
- function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11629
- const id = el._endId = ++endId;
11630
- const resolveIfNotStale = () => {
11631
- if (id === el._endId) {
11632
- resolve();
11633
- }
11634
- };
11635
- if (explicitTimeout) {
11636
- return setTimeout(resolveIfNotStale, explicitTimeout);
11637
- }
11638
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11639
- if (!type) {
11640
- return resolve();
11702
+
11703
+ function useCssVars(getter) {
11704
+ const instance = getCurrentInstance();
11705
+ if (!instance) {
11706
+ warn(`useCssVars is called without current active component instance.`);
11707
+ return;
11641
11708
  }
11642
- const endEvent = type + "end";
11643
- let ended = 0;
11644
- const end = () => {
11645
- el.removeEventListener(endEvent, onEnd);
11646
- resolveIfNotStale();
11709
+ const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11710
+ Array.from(
11711
+ document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11712
+ ).forEach((node) => setVarsOnNode(node, vars));
11647
11713
  };
11648
- const onEnd = (e) => {
11649
- if (e.target === el && ++ended >= propCount) {
11650
- end();
11651
- }
11714
+ const setVars = () => {
11715
+ const vars = getter(instance.proxy);
11716
+ setVarsOnVNode(instance.subTree, vars);
11717
+ updateTeleports(vars);
11652
11718
  };
11653
- setTimeout(() => {
11654
- if (ended < propCount) {
11655
- end();
11656
- }
11657
- }, timeout + 1);
11658
- el.addEventListener(endEvent, onEnd);
11719
+ watchPostEffect(setVars);
11720
+ onMounted(() => {
11721
+ const ob = new MutationObserver(setVars);
11722
+ ob.observe(instance.subTree.el.parentNode, { childList: true });
11723
+ onUnmounted(() => ob.disconnect());
11724
+ });
11659
11725
  }
11660
- function getTransitionInfo(el, expectedType) {
11661
- const styles = window.getComputedStyle(el);
11662
- const getStyleProperties = (key) => (styles[key] || "").split(", ");
11663
- const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
11664
- const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
11665
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11666
- const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11667
- const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11668
- const animationTimeout = getTimeout(animationDelays, animationDurations);
11669
- let type = null;
11670
- let timeout = 0;
11671
- let propCount = 0;
11672
- if (expectedType === TRANSITION) {
11673
- if (transitionTimeout > 0) {
11674
- type = TRANSITION;
11675
- timeout = transitionTimeout;
11676
- propCount = transitionDurations.length;
11726
+ function setVarsOnVNode(vnode, vars) {
11727
+ if (vnode.shapeFlag & 128) {
11728
+ const suspense = vnode.suspense;
11729
+ vnode = suspense.activeBranch;
11730
+ if (suspense.pendingBranch && !suspense.isHydrating) {
11731
+ suspense.effects.push(() => {
11732
+ setVarsOnVNode(suspense.activeBranch, vars);
11733
+ });
11677
11734
  }
11678
- } else if (expectedType === ANIMATION) {
11679
- if (animationTimeout > 0) {
11680
- type = ANIMATION;
11681
- timeout = animationTimeout;
11682
- propCount = animationDurations.length;
11735
+ }
11736
+ while (vnode.component) {
11737
+ vnode = vnode.component.subTree;
11738
+ }
11739
+ if (vnode.shapeFlag & 1 && vnode.el) {
11740
+ setVarsOnNode(vnode.el, vars);
11741
+ } else if (vnode.type === Fragment) {
11742
+ vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11743
+ } else if (vnode.type === Static) {
11744
+ let { el, anchor } = vnode;
11745
+ while (el) {
11746
+ setVarsOnNode(el, vars);
11747
+ if (el === anchor)
11748
+ break;
11749
+ el = el.nextSibling;
11683
11750
  }
11684
- } else {
11685
- timeout = Math.max(transitionTimeout, animationTimeout);
11686
- type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
11687
- propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
11688
11751
  }
11689
- const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
11690
- getStyleProperties(`${TRANSITION}Property`).toString()
11691
- );
11692
- return {
11693
- type,
11694
- timeout,
11695
- propCount,
11696
- hasTransform
11697
- };
11698
11752
  }
11699
- function getTimeout(delays, durations) {
11700
- while (delays.length < durations.length) {
11701
- delays = delays.concat(delays);
11753
+ function setVarsOnNode(el, vars) {
11754
+ if (el.nodeType === 1) {
11755
+ const style = el.style;
11756
+ for (const key in vars) {
11757
+ style.setProperty(`--${key}`, vars[key]);
11758
+ }
11702
11759
  }
11703
- return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11704
- }
11705
- function toMs(s) {
11706
- return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11707
- }
11708
- function forceReflow() {
11709
- return document.body.offsetHeight;
11710
11760
  }
11711
11761
 
11712
11762
  const positionMap = /* @__PURE__ */ new WeakMap();
11713
11763
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11764
+ const moveCbKey = Symbol("_moveCb");
11765
+ const enterCbKey = Symbol("_enterCb");
11714
11766
  const TransitionGroupImpl = {
11715
11767
  name: "TransitionGroup",
11716
11768
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
@@ -11743,13 +11795,13 @@ Component that was made reactive: `,
11743
11795
  const style = el.style;
11744
11796
  addTransitionClass(el, moveClass);
11745
11797
  style.transform = style.webkitTransform = style.transitionDuration = "";
11746
- const cb = el._moveCb = (e) => {
11798
+ const cb = el[moveCbKey] = (e) => {
11747
11799
  if (e && e.target !== el) {
11748
11800
  return;
11749
11801
  }
11750
11802
  if (!e || /transform$/.test(e.propertyName)) {
11751
11803
  el.removeEventListener("transitionend", cb);
11752
- el._moveCb = null;
11804
+ el[moveCbKey] = null;
11753
11805
  removeTransitionClass(el, moveClass);
11754
11806
  }
11755
11807
  };
@@ -11801,11 +11853,11 @@ Component that was made reactive: `,
11801
11853
  const TransitionGroup = TransitionGroupImpl;
11802
11854
  function callPendingCbs(c) {
11803
11855
  const el = c.el;
11804
- if (el._moveCb) {
11805
- el._moveCb();
11856
+ if (el[moveCbKey]) {
11857
+ el[moveCbKey]();
11806
11858
  }
11807
- if (el._enterCb) {
11808
- el._enterCb();
11859
+ if (el[enterCbKey]) {
11860
+ el[enterCbKey]();
11809
11861
  }
11810
11862
  }
11811
11863
  function recordPosition(c) {
@@ -11825,8 +11877,9 @@ Component that was made reactive: `,
11825
11877
  }
11826
11878
  function hasCSSTransform(el, root, moveClass) {
11827
11879
  const clone = el.cloneNode();
11828
- if (el._vtc) {
11829
- el._vtc.forEach((cls) => {
11880
+ const _vtc = el[vtcKey];
11881
+ if (_vtc) {
11882
+ _vtc.forEach((cls) => {
11830
11883
  cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
11831
11884
  });
11832
11885
  }
@@ -11853,9 +11906,10 @@ Component that was made reactive: `,
11853
11906
  target.dispatchEvent(new Event("input"));
11854
11907
  }
11855
11908
  }
11909
+ const assignKey = Symbol("_assign");
11856
11910
  const vModelText = {
11857
11911
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
11858
- el._assign = getModelAssigner(vnode);
11912
+ el[assignKey] = getModelAssigner(vnode);
11859
11913
  const castToNumber = number || vnode.props && vnode.props.type === "number";
11860
11914
  addEventListener(el, lazy ? "change" : "input", (e) => {
11861
11915
  if (e.target.composing)
@@ -11867,7 +11921,7 @@ Component that was made reactive: `,
11867
11921
  if (castToNumber) {
11868
11922
  domValue = looseToNumber(domValue);
11869
11923
  }
11870
- el._assign(domValue);
11924
+ el[assignKey](domValue);
11871
11925
  });
11872
11926
  if (trim) {
11873
11927
  addEventListener(el, "change", () => {
@@ -11885,7 +11939,7 @@ Component that was made reactive: `,
11885
11939
  el.value = value == null ? "" : value;
11886
11940
  },
11887
11941
  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
11888
- el._assign = getModelAssigner(vnode);
11942
+ el[assignKey] = getModelAssigner(vnode);
11889
11943
  if (el.composing)
11890
11944
  return;
11891
11945
  if (document.activeElement === el && el.type !== "range") {
@@ -11909,12 +11963,12 @@ Component that was made reactive: `,
11909
11963
  // #4096 array checkboxes need to be deep traversed
11910
11964
  deep: true,
11911
11965
  created(el, _, vnode) {
11912
- el._assign = getModelAssigner(vnode);
11966
+ el[assignKey] = getModelAssigner(vnode);
11913
11967
  addEventListener(el, "change", () => {
11914
11968
  const modelValue = el._modelValue;
11915
11969
  const elementValue = getValue(el);
11916
11970
  const checked = el.checked;
11917
- const assign = el._assign;
11971
+ const assign = el[assignKey];
11918
11972
  if (isArray(modelValue)) {
11919
11973
  const index = looseIndexOf(modelValue, elementValue);
11920
11974
  const found = index !== -1;
@@ -11941,7 +11995,7 @@ Component that was made reactive: `,
11941
11995
  // set initial checked on mount to wait for true-value/false-value
11942
11996
  mounted: setChecked,
11943
11997
  beforeUpdate(el, binding, vnode) {
11944
- el._assign = getModelAssigner(vnode);
11998
+ el[assignKey] = getModelAssigner(vnode);
11945
11999
  setChecked(el, binding, vnode);
11946
12000
  }
11947
12001
  };
@@ -11958,13 +12012,13 @@ Component that was made reactive: `,
11958
12012
  const vModelRadio = {
11959
12013
  created(el, { value }, vnode) {
11960
12014
  el.checked = looseEqual(value, vnode.props.value);
11961
- el._assign = getModelAssigner(vnode);
12015
+ el[assignKey] = getModelAssigner(vnode);
11962
12016
  addEventListener(el, "change", () => {
11963
- el._assign(getValue(el));
12017
+ el[assignKey](getValue(el));
11964
12018
  });
11965
12019
  },
11966
12020
  beforeUpdate(el, { value, oldValue }, vnode) {
11967
- el._assign = getModelAssigner(vnode);
12021
+ el[assignKey] = getModelAssigner(vnode);
11968
12022
  if (value !== oldValue) {
11969
12023
  el.checked = looseEqual(value, vnode.props.value);
11970
12024
  }
@@ -11979,11 +12033,11 @@ Component that was made reactive: `,
11979
12033
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
11980
12034
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
11981
12035
  );
11982
- el._assign(
12036
+ el[assignKey](
11983
12037
  el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
11984
12038
  );
11985
12039
  });
11986
- el._assign = getModelAssigner(vnode);
12040
+ el[assignKey] = getModelAssigner(vnode);
11987
12041
  },
11988
12042
  // set value in mounted & updated because <select> relies on its children
11989
12043
  // <option>s.
@@ -11991,7 +12045,7 @@ Component that was made reactive: `,
11991
12045
  setSelected(el, value);
11992
12046
  },
11993
12047
  beforeUpdate(el, _binding, vnode) {
11994
- el._assign = getModelAssigner(vnode);
12048
+ el[assignKey] = getModelAssigner(vnode);
11995
12049
  },
11996
12050
  updated(el, { value }) {
11997
12051
  setSelected(el, value);
@@ -12154,45 +12208,6 @@ Component that was made reactive: `,
12154
12208
  };
12155
12209
  };
12156
12210
 
12157
- const vShow = {
12158
- beforeMount(el, { value }, { transition }) {
12159
- el._vod = el.style.display === "none" ? "" : el.style.display;
12160
- if (transition && value) {
12161
- transition.beforeEnter(el);
12162
- } else {
12163
- setDisplay(el, value);
12164
- }
12165
- },
12166
- mounted(el, { value }, { transition }) {
12167
- if (transition && value) {
12168
- transition.enter(el);
12169
- }
12170
- },
12171
- updated(el, { value, oldValue }, { transition }) {
12172
- if (!value === !oldValue)
12173
- return;
12174
- if (transition) {
12175
- if (value) {
12176
- transition.beforeEnter(el);
12177
- setDisplay(el, true);
12178
- transition.enter(el);
12179
- } else {
12180
- transition.leave(el, () => {
12181
- setDisplay(el, false);
12182
- });
12183
- }
12184
- } else {
12185
- setDisplay(el, value);
12186
- }
12187
- },
12188
- beforeUnmount(el, { value }) {
12189
- setDisplay(el, value);
12190
- }
12191
- };
12192
- function setDisplay(el, value) {
12193
- el.style.display = value ? el._vod : "none";
12194
- }
12195
-
12196
12211
  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
12197
12212
  let renderer;
12198
12213
  let enabledHydration = false;