@vue/runtime-dom 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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 VueRuntimeDOM = (function (exports) {
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 {
@@ -3134,9 +3121,7 @@ var VueRuntimeDOM = (function (exports) {
3134
3121
  }
3135
3122
  if (cb) {
3136
3123
  const newValue = effect.run();
3137
- if (deep || forceTrigger || (isMultiSource ? newValue.some(
3138
- (v, i) => hasChanged(v, oldValue[i])
3139
- ) : hasChanged(newValue, oldValue)) || false) {
3124
+ if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {
3140
3125
  if (cleanup) {
3141
3126
  cleanup();
3142
3127
  }
@@ -3307,6 +3292,8 @@ var VueRuntimeDOM = (function (exports) {
3307
3292
  }
3308
3293
  }
3309
3294
 
3295
+ const leaveCbKey = Symbol("_leaveCb");
3296
+ const enterCbKey$1 = Symbol("_enterCb");
3310
3297
  function useTransitionState() {
3311
3298
  const state = {
3312
3299
  isMounted: false,
@@ -3427,9 +3414,9 @@ var VueRuntimeDOM = (function (exports) {
3427
3414
  oldInnerChild
3428
3415
  );
3429
3416
  leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3430
- el._leaveCb = () => {
3417
+ el[leaveCbKey] = () => {
3431
3418
  earlyRemove();
3432
- el._leaveCb = void 0;
3419
+ el[leaveCbKey] = void 0;
3433
3420
  delete enterHooks.delayedLeave;
3434
3421
  };
3435
3422
  enterHooks.delayedLeave = delayedLeave;
@@ -3500,15 +3487,15 @@ var VueRuntimeDOM = (function (exports) {
3500
3487
  return;
3501
3488
  }
3502
3489
  }
3503
- if (el._leaveCb) {
3504
- el._leaveCb(
3490
+ if (el[leaveCbKey]) {
3491
+ el[leaveCbKey](
3505
3492
  true
3506
3493
  /* cancelled */
3507
3494
  );
3508
3495
  }
3509
3496
  const leavingVNode = leavingVNodesCache[key];
3510
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {
3511
- leavingVNode.el._leaveCb();
3497
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
3498
+ leavingVNode.el[leaveCbKey]();
3512
3499
  }
3513
3500
  callHook(hook, [el]);
3514
3501
  },
@@ -3526,7 +3513,7 @@ var VueRuntimeDOM = (function (exports) {
3526
3513
  }
3527
3514
  }
3528
3515
  let called = false;
3529
- const done = el._enterCb = (cancelled) => {
3516
+ const done = el[enterCbKey$1] = (cancelled) => {
3530
3517
  if (called)
3531
3518
  return;
3532
3519
  called = true;
@@ -3538,7 +3525,7 @@ var VueRuntimeDOM = (function (exports) {
3538
3525
  if (hooks.delayedLeave) {
3539
3526
  hooks.delayedLeave();
3540
3527
  }
3541
- el._enterCb = void 0;
3528
+ el[enterCbKey$1] = void 0;
3542
3529
  };
3543
3530
  if (hook) {
3544
3531
  callAsyncHook(hook, [el, done]);
@@ -3548,8 +3535,8 @@ var VueRuntimeDOM = (function (exports) {
3548
3535
  },
3549
3536
  leave(el, remove) {
3550
3537
  const key2 = String(vnode.key);
3551
- if (el._enterCb) {
3552
- el._enterCb(
3538
+ if (el[enterCbKey$1]) {
3539
+ el[enterCbKey$1](
3553
3540
  true
3554
3541
  /* cancelled */
3555
3542
  );
@@ -3559,7 +3546,7 @@ var VueRuntimeDOM = (function (exports) {
3559
3546
  }
3560
3547
  callHook(onBeforeLeave, [el]);
3561
3548
  let called = false;
3562
- const done = el._leaveCb = (cancelled) => {
3549
+ const done = el[leaveCbKey] = (cancelled) => {
3563
3550
  if (called)
3564
3551
  return;
3565
3552
  called = true;
@@ -3569,7 +3556,7 @@ var VueRuntimeDOM = (function (exports) {
3569
3556
  } else {
3570
3557
  callHook(onAfterLeave, [el]);
3571
3558
  }
3572
- el._leaveCb = void 0;
3559
+ el[leaveCbKey] = void 0;
3573
3560
  if (leavingVNodesCache[key2] === vnode) {
3574
3561
  delete leavingVNodesCache[key2];
3575
3562
  }
@@ -3631,6 +3618,8 @@ var VueRuntimeDOM = (function (exports) {
3631
3618
  return ret;
3632
3619
  }
3633
3620
 
3621
+ /*! #__NO_SIDE_EFFECTS__ */
3622
+ // @__NO_SIDE_EFFECTS__
3634
3623
  function defineComponent(options, extraOptions) {
3635
3624
  return isFunction(options) ? (
3636
3625
  // #8326: extend call and options.name access are considered side-effects
@@ -3640,6 +3629,8 @@ var VueRuntimeDOM = (function (exports) {
3640
3629
  }
3641
3630
 
3642
3631
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
3632
+ /*! #__NO_SIDE_EFFECTS__ */
3633
+ // @__NO_SIDE_EFFECTS__
3643
3634
  function defineAsyncComponent(source) {
3644
3635
  if (isFunction(source)) {
3645
3636
  source = { loader: source };
@@ -4418,7 +4409,7 @@ If this is a native custom element, make sure to exclude it from component resol
4418
4409
  return PublicInstanceProxyHandlers.get(target, key, target);
4419
4410
  },
4420
4411
  has(_, key) {
4421
- const has = key[0] !== "_" && !isGloballyWhitelisted(key);
4412
+ const has = key[0] !== "_" && !isGloballyAllowed(key);
4422
4413
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
4423
4414
  warn(
4424
4415
  `Property ${JSON.stringify(
@@ -5094,12 +5085,12 @@ If this is a native custom element, make sure to exclude it from component resol
5094
5085
  },
5095
5086
  set() {
5096
5087
  warn(
5097
- `app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.`
5088
+ `app.config.unwrapInjectedRef has been deprecated. 3.3 now always unwraps injected refs in Options API.`
5098
5089
  );
5099
5090
  }
5100
5091
  });
5101
5092
  }
5102
- const installedPlugins = /* @__PURE__ */ new Set();
5093
+ const installedPlugins = /* @__PURE__ */ new WeakSet();
5103
5094
  let isMounted = false;
5104
5095
  const app = context.app = {
5105
5096
  _uid: uid$1++,
@@ -5181,10 +5172,7 @@ If this is a native custom element, make sure to exclude it from component resol
5181
5172
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
5182
5173
  );
5183
5174
  }
5184
- const vnode = createVNode(
5185
- rootComponent,
5186
- rootProps
5187
- );
5175
+ const vnode = createVNode(rootComponent, rootProps);
5188
5176
  vnode.appContext = context;
5189
5177
  {
5190
5178
  context.reload = () => {
@@ -5766,7 +5754,7 @@ If you want to remount the same app, move your app creation logic into a factory
5766
5754
  }
5767
5755
  if (needDeletionCheck) {
5768
5756
  for (const key in slots) {
5769
- if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {
5757
+ if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {
5770
5758
  delete slots[key];
5771
5759
  }
5772
5760
  }
@@ -5930,8 +5918,10 @@ If you want to remount the same app, move your app creation logic into a factory
5930
5918
  hasMismatch = true;
5931
5919
  warn(
5932
5920
  `Hydration text mismatch:
5933
- - Client: ${JSON.stringify(node.data)}
5934
- - Server: ${JSON.stringify(vnode.children)}`
5921
+ - Server rendered: ${JSON.stringify(
5922
+ node.data
5923
+ )}
5924
+ - Client rendered: ${JSON.stringify(vnode.children)}`
5935
5925
  );
5936
5926
  node.data = vnode.children;
5937
5927
  }
@@ -6134,8 +6124,8 @@ If you want to remount the same app, move your app creation logic into a factory
6134
6124
  hasMismatch = true;
6135
6125
  warn(
6136
6126
  `Hydration text content mismatch in <${vnode.type}>:
6137
- - Client: ${el.textContent}
6138
- - Server: ${vnode.children}`
6127
+ - Server rendered: ${el.textContent}
6128
+ - Client rendered: ${vnode.children}`
6139
6129
  );
6140
6130
  el.textContent = vnode.children;
6141
6131
  }
@@ -7883,6 +7873,10 @@ If you want to remount the same app, move your app creation logic into a factory
7883
7873
  internals,
7884
7874
  1
7885
7875
  );
7876
+ } else {
7877
+ if (n2.props && n1.props && n2.props.to !== n1.props.to) {
7878
+ n2.props.to = n1.props.to;
7879
+ }
7886
7880
  }
7887
7881
  } else {
7888
7882
  if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
@@ -7923,19 +7917,18 @@ If you want to remount the same app, move your app creation logic into a factory
7923
7917
  if (target) {
7924
7918
  hostRemove(targetAnchor);
7925
7919
  }
7926
- if (doRemove || !isTeleportDisabled(props)) {
7927
- hostRemove(anchor);
7928
- if (shapeFlag & 16) {
7929
- for (let i = 0; i < children.length; i++) {
7930
- const child = children[i];
7931
- unmount(
7932
- child,
7933
- parentComponent,
7934
- parentSuspense,
7935
- true,
7936
- !!child.dynamicChildren
7937
- );
7938
- }
7920
+ doRemove && hostRemove(anchor);
7921
+ if (shapeFlag & 16) {
7922
+ const shouldRemove = doRemove || !isTeleportDisabled(props);
7923
+ for (let i = 0; i < children.length; i++) {
7924
+ const child = children[i];
7925
+ unmount(
7926
+ child,
7927
+ parentComponent,
7928
+ parentSuspense,
7929
+ shouldRemove,
7930
+ !!child.dynamicChildren
7931
+ );
7939
7932
  }
7940
7933
  }
7941
7934
  },
@@ -8019,7 +8012,7 @@ If you want to remount the same app, move your app creation logic into a factory
8019
8012
  const ctx = vnode.ctx;
8020
8013
  if (ctx && ctx.ut) {
8021
8014
  let node = vnode.children[0].el;
8022
- while (node !== vnode.targetAnchor) {
8015
+ while (node && node !== vnode.targetAnchor) {
8023
8016
  if (node.nodeType === 1)
8024
8017
  node.setAttribute("data-v-owner", ctx.uid);
8025
8018
  node = node.nextSibling;
@@ -8663,9 +8656,12 @@ Component that was made reactive: `,
8663
8656
  {
8664
8657
  setCurrentInstance(instance);
8665
8658
  pauseTracking();
8666
- applyOptions(instance);
8667
- resetTracking();
8668
- unsetCurrentInstance();
8659
+ try {
8660
+ applyOptions(instance);
8661
+ } finally {
8662
+ resetTracking();
8663
+ unsetCurrentInstance();
8664
+ }
8669
8665
  }
8670
8666
  if (!Component.render && instance.render === NOOP && !isSSR) {
8671
8667
  if (!compile && Component.template) {
@@ -9025,7 +9021,7 @@ Component that was made reactive: `,
9025
9021
  return true;
9026
9022
  }
9027
9023
 
9028
- const version = "3.3.4";
9024
+ const version = "3.3.6";
9029
9025
  const ssrUtils = null;
9030
9026
  const resolveFilter = null;
9031
9027
  const compatUtils = null;
@@ -9097,58 +9093,367 @@ Component that was made reactive: `,
9097
9093
  }
9098
9094
  };
9099
9095
 
9100
- function patchClass(el, value, isSVG) {
9101
- const transitionClasses = el._vtc;
9102
- if (transitionClasses) {
9103
- value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
9096
+ const TRANSITION = "transition";
9097
+ const ANIMATION = "animation";
9098
+ const vtcKey = Symbol("_vtc");
9099
+ const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
9100
+ Transition.displayName = "Transition";
9101
+ const DOMTransitionPropsValidators = {
9102
+ name: String,
9103
+ type: String,
9104
+ css: {
9105
+ type: Boolean,
9106
+ default: true
9107
+ },
9108
+ duration: [String, Number, Object],
9109
+ enterFromClass: String,
9110
+ enterActiveClass: String,
9111
+ enterToClass: String,
9112
+ appearFromClass: String,
9113
+ appearActiveClass: String,
9114
+ appearToClass: String,
9115
+ leaveFromClass: String,
9116
+ leaveActiveClass: String,
9117
+ leaveToClass: String
9118
+ };
9119
+ const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
9120
+ {},
9121
+ BaseTransitionPropsValidators,
9122
+ DOMTransitionPropsValidators
9123
+ );
9124
+ const callHook = (hook, args = []) => {
9125
+ if (isArray(hook)) {
9126
+ hook.forEach((h2) => h2(...args));
9127
+ } else if (hook) {
9128
+ hook(...args);
9104
9129
  }
9105
- if (value == null) {
9106
- el.removeAttribute("class");
9107
- } else if (isSVG) {
9108
- el.setAttribute("class", value);
9109
- } else {
9110
- el.className = value;
9130
+ };
9131
+ const hasExplicitCallback = (hook) => {
9132
+ return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
9133
+ };
9134
+ function resolveTransitionProps(rawProps) {
9135
+ const baseProps = {};
9136
+ for (const key in rawProps) {
9137
+ if (!(key in DOMTransitionPropsValidators)) {
9138
+ baseProps[key] = rawProps[key];
9139
+ }
9111
9140
  }
9112
- }
9113
-
9114
- function patchStyle(el, prev, next) {
9115
- const style = el.style;
9116
- const isCssString = isString(next);
9117
- if (next && !isCssString) {
9118
- if (prev && !isString(prev)) {
9119
- for (const key in prev) {
9120
- if (next[key] == null) {
9121
- setStyle(style, key, "");
9141
+ if (rawProps.css === false) {
9142
+ return baseProps;
9143
+ }
9144
+ const {
9145
+ name = "v",
9146
+ type,
9147
+ duration,
9148
+ enterFromClass = `${name}-enter-from`,
9149
+ enterActiveClass = `${name}-enter-active`,
9150
+ enterToClass = `${name}-enter-to`,
9151
+ appearFromClass = enterFromClass,
9152
+ appearActiveClass = enterActiveClass,
9153
+ appearToClass = enterToClass,
9154
+ leaveFromClass = `${name}-leave-from`,
9155
+ leaveActiveClass = `${name}-leave-active`,
9156
+ leaveToClass = `${name}-leave-to`
9157
+ } = rawProps;
9158
+ const durations = normalizeDuration(duration);
9159
+ const enterDuration = durations && durations[0];
9160
+ const leaveDuration = durations && durations[1];
9161
+ const {
9162
+ onBeforeEnter,
9163
+ onEnter,
9164
+ onEnterCancelled,
9165
+ onLeave,
9166
+ onLeaveCancelled,
9167
+ onBeforeAppear = onBeforeEnter,
9168
+ onAppear = onEnter,
9169
+ onAppearCancelled = onEnterCancelled
9170
+ } = baseProps;
9171
+ const finishEnter = (el, isAppear, done) => {
9172
+ removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
9173
+ removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
9174
+ done && done();
9175
+ };
9176
+ const finishLeave = (el, done) => {
9177
+ el._isLeaving = false;
9178
+ removeTransitionClass(el, leaveFromClass);
9179
+ removeTransitionClass(el, leaveToClass);
9180
+ removeTransitionClass(el, leaveActiveClass);
9181
+ done && done();
9182
+ };
9183
+ const makeEnterHook = (isAppear) => {
9184
+ return (el, done) => {
9185
+ const hook = isAppear ? onAppear : onEnter;
9186
+ const resolve = () => finishEnter(el, isAppear, done);
9187
+ callHook(hook, [el, resolve]);
9188
+ nextFrame(() => {
9189
+ removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
9190
+ addTransitionClass(el, isAppear ? appearToClass : enterToClass);
9191
+ if (!hasExplicitCallback(hook)) {
9192
+ whenTransitionEnds(el, type, enterDuration, resolve);
9122
9193
  }
9123
- }
9124
- }
9125
- for (const key in next) {
9126
- setStyle(style, key, next[key]);
9194
+ });
9195
+ };
9196
+ };
9197
+ return extend(baseProps, {
9198
+ onBeforeEnter(el) {
9199
+ callHook(onBeforeEnter, [el]);
9200
+ addTransitionClass(el, enterFromClass);
9201
+ addTransitionClass(el, enterActiveClass);
9202
+ },
9203
+ onBeforeAppear(el) {
9204
+ callHook(onBeforeAppear, [el]);
9205
+ addTransitionClass(el, appearFromClass);
9206
+ addTransitionClass(el, appearActiveClass);
9207
+ },
9208
+ onEnter: makeEnterHook(false),
9209
+ onAppear: makeEnterHook(true),
9210
+ onLeave(el, done) {
9211
+ el._isLeaving = true;
9212
+ const resolve = () => finishLeave(el, done);
9213
+ addTransitionClass(el, leaveFromClass);
9214
+ forceReflow();
9215
+ addTransitionClass(el, leaveActiveClass);
9216
+ nextFrame(() => {
9217
+ if (!el._isLeaving) {
9218
+ return;
9219
+ }
9220
+ removeTransitionClass(el, leaveFromClass);
9221
+ addTransitionClass(el, leaveToClass);
9222
+ if (!hasExplicitCallback(onLeave)) {
9223
+ whenTransitionEnds(el, type, leaveDuration, resolve);
9224
+ }
9225
+ });
9226
+ callHook(onLeave, [el, resolve]);
9227
+ },
9228
+ onEnterCancelled(el) {
9229
+ finishEnter(el, false);
9230
+ callHook(onEnterCancelled, [el]);
9231
+ },
9232
+ onAppearCancelled(el) {
9233
+ finishEnter(el, true);
9234
+ callHook(onAppearCancelled, [el]);
9235
+ },
9236
+ onLeaveCancelled(el) {
9237
+ finishLeave(el);
9238
+ callHook(onLeaveCancelled, [el]);
9127
9239
  }
9240
+ });
9241
+ }
9242
+ function normalizeDuration(duration) {
9243
+ if (duration == null) {
9244
+ return null;
9245
+ } else if (isObject(duration)) {
9246
+ return [NumberOf(duration.enter), NumberOf(duration.leave)];
9128
9247
  } else {
9129
- const currentDisplay = style.display;
9130
- if (isCssString) {
9131
- if (prev !== next) {
9132
- style.cssText = next;
9133
- }
9134
- } else if (prev) {
9135
- el.removeAttribute("style");
9136
- }
9137
- if ("_vod" in el) {
9138
- style.display = currentDisplay;
9139
- }
9248
+ const n = NumberOf(duration);
9249
+ return [n, n];
9140
9250
  }
9141
9251
  }
9142
- const semicolonRE = /[^\\];\s*$/;
9143
- const importantRE = /\s*!important$/;
9144
- function setStyle(style, name, val) {
9145
- if (isArray(val)) {
9146
- val.forEach((v) => setStyle(style, name, v));
9147
- } else {
9148
- if (val == null)
9149
- val = "";
9150
- {
9151
- if (semicolonRE.test(val)) {
9252
+ function NumberOf(val) {
9253
+ const res = toNumber(val);
9254
+ {
9255
+ assertNumber(res, "<transition> explicit duration");
9256
+ }
9257
+ return res;
9258
+ }
9259
+ function addTransitionClass(el, cls) {
9260
+ cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
9261
+ (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
9262
+ }
9263
+ function removeTransitionClass(el, cls) {
9264
+ cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
9265
+ const _vtc = el[vtcKey];
9266
+ if (_vtc) {
9267
+ _vtc.delete(cls);
9268
+ if (!_vtc.size) {
9269
+ el[vtcKey] = void 0;
9270
+ }
9271
+ }
9272
+ }
9273
+ function nextFrame(cb) {
9274
+ requestAnimationFrame(() => {
9275
+ requestAnimationFrame(cb);
9276
+ });
9277
+ }
9278
+ let endId = 0;
9279
+ function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
9280
+ const id = el._endId = ++endId;
9281
+ const resolveIfNotStale = () => {
9282
+ if (id === el._endId) {
9283
+ resolve();
9284
+ }
9285
+ };
9286
+ if (explicitTimeout) {
9287
+ return setTimeout(resolveIfNotStale, explicitTimeout);
9288
+ }
9289
+ const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
9290
+ if (!type) {
9291
+ return resolve();
9292
+ }
9293
+ const endEvent = type + "end";
9294
+ let ended = 0;
9295
+ const end = () => {
9296
+ el.removeEventListener(endEvent, onEnd);
9297
+ resolveIfNotStale();
9298
+ };
9299
+ const onEnd = (e) => {
9300
+ if (e.target === el && ++ended >= propCount) {
9301
+ end();
9302
+ }
9303
+ };
9304
+ setTimeout(() => {
9305
+ if (ended < propCount) {
9306
+ end();
9307
+ }
9308
+ }, timeout + 1);
9309
+ el.addEventListener(endEvent, onEnd);
9310
+ }
9311
+ function getTransitionInfo(el, expectedType) {
9312
+ const styles = window.getComputedStyle(el);
9313
+ const getStyleProperties = (key) => (styles[key] || "").split(", ");
9314
+ const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
9315
+ const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
9316
+ const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
9317
+ const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
9318
+ const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
9319
+ const animationTimeout = getTimeout(animationDelays, animationDurations);
9320
+ let type = null;
9321
+ let timeout = 0;
9322
+ let propCount = 0;
9323
+ if (expectedType === TRANSITION) {
9324
+ if (transitionTimeout > 0) {
9325
+ type = TRANSITION;
9326
+ timeout = transitionTimeout;
9327
+ propCount = transitionDurations.length;
9328
+ }
9329
+ } else if (expectedType === ANIMATION) {
9330
+ if (animationTimeout > 0) {
9331
+ type = ANIMATION;
9332
+ timeout = animationTimeout;
9333
+ propCount = animationDurations.length;
9334
+ }
9335
+ } else {
9336
+ timeout = Math.max(transitionTimeout, animationTimeout);
9337
+ type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
9338
+ propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
9339
+ }
9340
+ const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
9341
+ getStyleProperties(`${TRANSITION}Property`).toString()
9342
+ );
9343
+ return {
9344
+ type,
9345
+ timeout,
9346
+ propCount,
9347
+ hasTransform
9348
+ };
9349
+ }
9350
+ function getTimeout(delays, durations) {
9351
+ while (delays.length < durations.length) {
9352
+ delays = delays.concat(delays);
9353
+ }
9354
+ return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
9355
+ }
9356
+ function toMs(s) {
9357
+ if (s === "auto")
9358
+ return 0;
9359
+ return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
9360
+ }
9361
+ function forceReflow() {
9362
+ return document.body.offsetHeight;
9363
+ }
9364
+
9365
+ function patchClass(el, value, isSVG) {
9366
+ const transitionClasses = el[vtcKey];
9367
+ if (transitionClasses) {
9368
+ value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
9369
+ }
9370
+ if (value == null) {
9371
+ el.removeAttribute("class");
9372
+ } else if (isSVG) {
9373
+ el.setAttribute("class", value);
9374
+ } else {
9375
+ el.className = value;
9376
+ }
9377
+ }
9378
+
9379
+ const vShowOldKey = Symbol("_vod");
9380
+ const vShow = {
9381
+ beforeMount(el, { value }, { transition }) {
9382
+ el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
9383
+ if (transition && value) {
9384
+ transition.beforeEnter(el);
9385
+ } else {
9386
+ setDisplay(el, value);
9387
+ }
9388
+ },
9389
+ mounted(el, { value }, { transition }) {
9390
+ if (transition && value) {
9391
+ transition.enter(el);
9392
+ }
9393
+ },
9394
+ updated(el, { value, oldValue }, { transition }) {
9395
+ if (!value === !oldValue)
9396
+ return;
9397
+ if (transition) {
9398
+ if (value) {
9399
+ transition.beforeEnter(el);
9400
+ setDisplay(el, true);
9401
+ transition.enter(el);
9402
+ } else {
9403
+ transition.leave(el, () => {
9404
+ setDisplay(el, false);
9405
+ });
9406
+ }
9407
+ } else {
9408
+ setDisplay(el, value);
9409
+ }
9410
+ },
9411
+ beforeUnmount(el, { value }) {
9412
+ setDisplay(el, value);
9413
+ }
9414
+ };
9415
+ function setDisplay(el, value) {
9416
+ el.style.display = value ? el[vShowOldKey] : "none";
9417
+ }
9418
+
9419
+ function patchStyle(el, prev, next) {
9420
+ const style = el.style;
9421
+ const isCssString = isString(next);
9422
+ if (next && !isCssString) {
9423
+ if (prev && !isString(prev)) {
9424
+ for (const key in prev) {
9425
+ if (next[key] == null) {
9426
+ setStyle(style, key, "");
9427
+ }
9428
+ }
9429
+ }
9430
+ for (const key in next) {
9431
+ setStyle(style, key, next[key]);
9432
+ }
9433
+ } else {
9434
+ const currentDisplay = style.display;
9435
+ if (isCssString) {
9436
+ if (prev !== next) {
9437
+ style.cssText = next;
9438
+ }
9439
+ } else if (prev) {
9440
+ el.removeAttribute("style");
9441
+ }
9442
+ if (vShowOldKey in el) {
9443
+ style.display = currentDisplay;
9444
+ }
9445
+ }
9446
+ }
9447
+ const semicolonRE = /[^\\];\s*$/;
9448
+ const importantRE = /\s*!important$/;
9449
+ function setStyle(style, name, val) {
9450
+ if (isArray(val)) {
9451
+ val.forEach((v) => setStyle(style, name, v));
9452
+ } else {
9453
+ if (val == null)
9454
+ val = "";
9455
+ {
9456
+ if (semicolonRE.test(val)) {
9152
9457
  warn(
9153
9458
  `Unexpected semicolon at the end of '${name}' style value: '${val}'`
9154
9459
  );
@@ -9263,8 +9568,9 @@ Component that was made reactive: `,
9263
9568
  function removeEventListener(el, event, handler, options) {
9264
9569
  el.removeEventListener(event, handler, options);
9265
9570
  }
9571
+ const veiKey = Symbol("_vei");
9266
9572
  function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
9267
- const invokers = el._vei || (el._vei = {});
9573
+ const invokers = el[veiKey] || (el[veiKey] = {});
9268
9574
  const existingInvoker = invokers[rawName];
9269
9575
  if (nextValue && existingInvoker) {
9270
9576
  existingInvoker.value = nextValue;
@@ -9384,6 +9690,8 @@ Component that was made reactive: `,
9384
9690
  return key in el;
9385
9691
  }
9386
9692
 
9693
+ /*! #__NO_SIDE_EFFECTS__ */
9694
+ // @__NO_SIDE_EFFECTS__
9387
9695
  function defineCustomElement(options, hydrate2) {
9388
9696
  const Comp = defineComponent(options);
9389
9697
  class VueCustomElement extends VueElement {
@@ -9394,8 +9702,9 @@ Component that was made reactive: `,
9394
9702
  VueCustomElement.def = Comp;
9395
9703
  return VueCustomElement;
9396
9704
  }
9397
- const defineSSRCustomElement = (options) => {
9398
- return defineCustomElement(options, hydrate);
9705
+ /*! #__NO_SIDE_EFFECTS__ */
9706
+ const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {
9707
+ return /* @__PURE__ */ defineCustomElement(options, hydrate);
9399
9708
  };
9400
9709
  const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
9401
9710
  };
@@ -9411,6 +9720,7 @@ Component that was made reactive: `,
9411
9720
  this._connected = false;
9412
9721
  this._resolved = false;
9413
9722
  this._numberProps = null;
9723
+ this._ob = null;
9414
9724
  if (this.shadowRoot && hydrate2) {
9415
9725
  hydrate2(this._createVNode(), this.shadowRoot);
9416
9726
  } else {
@@ -9437,6 +9747,10 @@ Component that was made reactive: `,
9437
9747
  }
9438
9748
  disconnectedCallback() {
9439
9749
  this._connected = false;
9750
+ if (this._ob) {
9751
+ this._ob.disconnect();
9752
+ this._ob = null;
9753
+ }
9440
9754
  nextTick(() => {
9441
9755
  if (!this._connected) {
9442
9756
  render(null, this.shadowRoot);
@@ -9452,11 +9766,12 @@ Component that was made reactive: `,
9452
9766
  for (let i = 0; i < this.attributes.length; i++) {
9453
9767
  this._setAttr(this.attributes[i].name);
9454
9768
  }
9455
- new MutationObserver((mutations) => {
9769
+ this._ob = new MutationObserver((mutations) => {
9456
9770
  for (const m of mutations) {
9457
9771
  this._setAttr(m.attributeName);
9458
9772
  }
9459
- }).observe(this, { attributes: true });
9773
+ });
9774
+ this._ob.observe(this, { attributes: true });
9460
9775
  const resolve = (def, isAsync = false) => {
9461
9776
  const { props, styles } = def;
9462
9777
  let numberProps;
@@ -9665,274 +9980,10 @@ Component that was made reactive: `,
9665
9980
  }
9666
9981
  }
9667
9982
 
9668
- const TRANSITION = "transition";
9669
- const ANIMATION = "animation";
9670
- const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
9671
- Transition.displayName = "Transition";
9672
- const DOMTransitionPropsValidators = {
9673
- name: String,
9674
- type: String,
9675
- css: {
9676
- type: Boolean,
9677
- default: true
9678
- },
9679
- duration: [String, Number, Object],
9680
- enterFromClass: String,
9681
- enterActiveClass: String,
9682
- enterToClass: String,
9683
- appearFromClass: String,
9684
- appearActiveClass: String,
9685
- appearToClass: String,
9686
- leaveFromClass: String,
9687
- leaveActiveClass: String,
9688
- leaveToClass: String
9689
- };
9690
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
9691
- {},
9692
- BaseTransitionPropsValidators,
9693
- DOMTransitionPropsValidators
9694
- );
9695
- const callHook = (hook, args = []) => {
9696
- if (isArray(hook)) {
9697
- hook.forEach((h2) => h2(...args));
9698
- } else if (hook) {
9699
- hook(...args);
9700
- }
9701
- };
9702
- const hasExplicitCallback = (hook) => {
9703
- return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
9704
- };
9705
- function resolveTransitionProps(rawProps) {
9706
- const baseProps = {};
9707
- for (const key in rawProps) {
9708
- if (!(key in DOMTransitionPropsValidators)) {
9709
- baseProps[key] = rawProps[key];
9710
- }
9711
- }
9712
- if (rawProps.css === false) {
9713
- return baseProps;
9714
- }
9715
- const {
9716
- name = "v",
9717
- type,
9718
- duration,
9719
- enterFromClass = `${name}-enter-from`,
9720
- enterActiveClass = `${name}-enter-active`,
9721
- enterToClass = `${name}-enter-to`,
9722
- appearFromClass = enterFromClass,
9723
- appearActiveClass = enterActiveClass,
9724
- appearToClass = enterToClass,
9725
- leaveFromClass = `${name}-leave-from`,
9726
- leaveActiveClass = `${name}-leave-active`,
9727
- leaveToClass = `${name}-leave-to`
9728
- } = rawProps;
9729
- const durations = normalizeDuration(duration);
9730
- const enterDuration = durations && durations[0];
9731
- const leaveDuration = durations && durations[1];
9732
- const {
9733
- onBeforeEnter,
9734
- onEnter,
9735
- onEnterCancelled,
9736
- onLeave,
9737
- onLeaveCancelled,
9738
- onBeforeAppear = onBeforeEnter,
9739
- onAppear = onEnter,
9740
- onAppearCancelled = onEnterCancelled
9741
- } = baseProps;
9742
- const finishEnter = (el, isAppear, done) => {
9743
- removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
9744
- removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
9745
- done && done();
9746
- };
9747
- const finishLeave = (el, done) => {
9748
- el._isLeaving = false;
9749
- removeTransitionClass(el, leaveFromClass);
9750
- removeTransitionClass(el, leaveToClass);
9751
- removeTransitionClass(el, leaveActiveClass);
9752
- done && done();
9753
- };
9754
- const makeEnterHook = (isAppear) => {
9755
- return (el, done) => {
9756
- const hook = isAppear ? onAppear : onEnter;
9757
- const resolve = () => finishEnter(el, isAppear, done);
9758
- callHook(hook, [el, resolve]);
9759
- nextFrame(() => {
9760
- removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
9761
- addTransitionClass(el, isAppear ? appearToClass : enterToClass);
9762
- if (!hasExplicitCallback(hook)) {
9763
- whenTransitionEnds(el, type, enterDuration, resolve);
9764
- }
9765
- });
9766
- };
9767
- };
9768
- return extend(baseProps, {
9769
- onBeforeEnter(el) {
9770
- callHook(onBeforeEnter, [el]);
9771
- addTransitionClass(el, enterFromClass);
9772
- addTransitionClass(el, enterActiveClass);
9773
- },
9774
- onBeforeAppear(el) {
9775
- callHook(onBeforeAppear, [el]);
9776
- addTransitionClass(el, appearFromClass);
9777
- addTransitionClass(el, appearActiveClass);
9778
- },
9779
- onEnter: makeEnterHook(false),
9780
- onAppear: makeEnterHook(true),
9781
- onLeave(el, done) {
9782
- el._isLeaving = true;
9783
- const resolve = () => finishLeave(el, done);
9784
- addTransitionClass(el, leaveFromClass);
9785
- forceReflow();
9786
- addTransitionClass(el, leaveActiveClass);
9787
- nextFrame(() => {
9788
- if (!el._isLeaving) {
9789
- return;
9790
- }
9791
- removeTransitionClass(el, leaveFromClass);
9792
- addTransitionClass(el, leaveToClass);
9793
- if (!hasExplicitCallback(onLeave)) {
9794
- whenTransitionEnds(el, type, leaveDuration, resolve);
9795
- }
9796
- });
9797
- callHook(onLeave, [el, resolve]);
9798
- },
9799
- onEnterCancelled(el) {
9800
- finishEnter(el, false);
9801
- callHook(onEnterCancelled, [el]);
9802
- },
9803
- onAppearCancelled(el) {
9804
- finishEnter(el, true);
9805
- callHook(onAppearCancelled, [el]);
9806
- },
9807
- onLeaveCancelled(el) {
9808
- finishLeave(el);
9809
- callHook(onLeaveCancelled, [el]);
9810
- }
9811
- });
9812
- }
9813
- function normalizeDuration(duration) {
9814
- if (duration == null) {
9815
- return null;
9816
- } else if (isObject(duration)) {
9817
- return [NumberOf(duration.enter), NumberOf(duration.leave)];
9818
- } else {
9819
- const n = NumberOf(duration);
9820
- return [n, n];
9821
- }
9822
- }
9823
- function NumberOf(val) {
9824
- const res = toNumber(val);
9825
- {
9826
- assertNumber(res, "<transition> explicit duration");
9827
- }
9828
- return res;
9829
- }
9830
- function addTransitionClass(el, cls) {
9831
- cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
9832
- (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);
9833
- }
9834
- function removeTransitionClass(el, cls) {
9835
- cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
9836
- const { _vtc } = el;
9837
- if (_vtc) {
9838
- _vtc.delete(cls);
9839
- if (!_vtc.size) {
9840
- el._vtc = void 0;
9841
- }
9842
- }
9843
- }
9844
- function nextFrame(cb) {
9845
- requestAnimationFrame(() => {
9846
- requestAnimationFrame(cb);
9847
- });
9848
- }
9849
- let endId = 0;
9850
- function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
9851
- const id = el._endId = ++endId;
9852
- const resolveIfNotStale = () => {
9853
- if (id === el._endId) {
9854
- resolve();
9855
- }
9856
- };
9857
- if (explicitTimeout) {
9858
- return setTimeout(resolveIfNotStale, explicitTimeout);
9859
- }
9860
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
9861
- if (!type) {
9862
- return resolve();
9863
- }
9864
- const endEvent = type + "end";
9865
- let ended = 0;
9866
- const end = () => {
9867
- el.removeEventListener(endEvent, onEnd);
9868
- resolveIfNotStale();
9869
- };
9870
- const onEnd = (e) => {
9871
- if (e.target === el && ++ended >= propCount) {
9872
- end();
9873
- }
9874
- };
9875
- setTimeout(() => {
9876
- if (ended < propCount) {
9877
- end();
9878
- }
9879
- }, timeout + 1);
9880
- el.addEventListener(endEvent, onEnd);
9881
- }
9882
- function getTransitionInfo(el, expectedType) {
9883
- const styles = window.getComputedStyle(el);
9884
- const getStyleProperties = (key) => (styles[key] || "").split(", ");
9885
- const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
9886
- const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
9887
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
9888
- const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
9889
- const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
9890
- const animationTimeout = getTimeout(animationDelays, animationDurations);
9891
- let type = null;
9892
- let timeout = 0;
9893
- let propCount = 0;
9894
- if (expectedType === TRANSITION) {
9895
- if (transitionTimeout > 0) {
9896
- type = TRANSITION;
9897
- timeout = transitionTimeout;
9898
- propCount = transitionDurations.length;
9899
- }
9900
- } else if (expectedType === ANIMATION) {
9901
- if (animationTimeout > 0) {
9902
- type = ANIMATION;
9903
- timeout = animationTimeout;
9904
- propCount = animationDurations.length;
9905
- }
9906
- } else {
9907
- timeout = Math.max(transitionTimeout, animationTimeout);
9908
- type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
9909
- propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
9910
- }
9911
- const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
9912
- getStyleProperties(`${TRANSITION}Property`).toString()
9913
- );
9914
- return {
9915
- type,
9916
- timeout,
9917
- propCount,
9918
- hasTransform
9919
- };
9920
- }
9921
- function getTimeout(delays, durations) {
9922
- while (delays.length < durations.length) {
9923
- delays = delays.concat(delays);
9924
- }
9925
- return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
9926
- }
9927
- function toMs(s) {
9928
- return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
9929
- }
9930
- function forceReflow() {
9931
- return document.body.offsetHeight;
9932
- }
9933
-
9934
9983
  const positionMap = /* @__PURE__ */ new WeakMap();
9935
9984
  const newPositionMap = /* @__PURE__ */ new WeakMap();
9985
+ const moveCbKey = Symbol("_moveCb");
9986
+ const enterCbKey = Symbol("_enterCb");
9936
9987
  const TransitionGroupImpl = {
9937
9988
  name: "TransitionGroup",
9938
9989
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
@@ -9965,13 +10016,13 @@ Component that was made reactive: `,
9965
10016
  const style = el.style;
9966
10017
  addTransitionClass(el, moveClass);
9967
10018
  style.transform = style.webkitTransform = style.transitionDuration = "";
9968
- const cb = el._moveCb = (e) => {
10019
+ const cb = el[moveCbKey] = (e) => {
9969
10020
  if (e && e.target !== el) {
9970
10021
  return;
9971
10022
  }
9972
10023
  if (!e || /transform$/.test(e.propertyName)) {
9973
10024
  el.removeEventListener("transitionend", cb);
9974
- el._moveCb = null;
10025
+ el[moveCbKey] = null;
9975
10026
  removeTransitionClass(el, moveClass);
9976
10027
  }
9977
10028
  };
@@ -10014,11 +10065,11 @@ Component that was made reactive: `,
10014
10065
  const TransitionGroup = TransitionGroupImpl;
10015
10066
  function callPendingCbs(c) {
10016
10067
  const el = c.el;
10017
- if (el._moveCb) {
10018
- el._moveCb();
10068
+ if (el[moveCbKey]) {
10069
+ el[moveCbKey]();
10019
10070
  }
10020
- if (el._enterCb) {
10021
- el._enterCb();
10071
+ if (el[enterCbKey]) {
10072
+ el[enterCbKey]();
10022
10073
  }
10023
10074
  }
10024
10075
  function recordPosition(c) {
@@ -10038,8 +10089,9 @@ Component that was made reactive: `,
10038
10089
  }
10039
10090
  function hasCSSTransform(el, root, moveClass) {
10040
10091
  const clone = el.cloneNode();
10041
- if (el._vtc) {
10042
- el._vtc.forEach((cls) => {
10092
+ const _vtc = el[vtcKey];
10093
+ if (_vtc) {
10094
+ _vtc.forEach((cls) => {
10043
10095
  cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
10044
10096
  });
10045
10097
  }
@@ -10066,9 +10118,10 @@ Component that was made reactive: `,
10066
10118
  target.dispatchEvent(new Event("input"));
10067
10119
  }
10068
10120
  }
10121
+ const assignKey = Symbol("_assign");
10069
10122
  const vModelText = {
10070
10123
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
10071
- el._assign = getModelAssigner(vnode);
10124
+ el[assignKey] = getModelAssigner(vnode);
10072
10125
  const castToNumber = number || vnode.props && vnode.props.type === "number";
10073
10126
  addEventListener(el, lazy ? "change" : "input", (e) => {
10074
10127
  if (e.target.composing)
@@ -10080,7 +10133,7 @@ Component that was made reactive: `,
10080
10133
  if (castToNumber) {
10081
10134
  domValue = looseToNumber(domValue);
10082
10135
  }
10083
- el._assign(domValue);
10136
+ el[assignKey](domValue);
10084
10137
  });
10085
10138
  if (trim) {
10086
10139
  addEventListener(el, "change", () => {
@@ -10098,7 +10151,7 @@ Component that was made reactive: `,
10098
10151
  el.value = value == null ? "" : value;
10099
10152
  },
10100
10153
  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
10101
- el._assign = getModelAssigner(vnode);
10154
+ el[assignKey] = getModelAssigner(vnode);
10102
10155
  if (el.composing)
10103
10156
  return;
10104
10157
  if (document.activeElement === el && el.type !== "range") {
@@ -10122,12 +10175,12 @@ Component that was made reactive: `,
10122
10175
  // #4096 array checkboxes need to be deep traversed
10123
10176
  deep: true,
10124
10177
  created(el, _, vnode) {
10125
- el._assign = getModelAssigner(vnode);
10178
+ el[assignKey] = getModelAssigner(vnode);
10126
10179
  addEventListener(el, "change", () => {
10127
10180
  const modelValue = el._modelValue;
10128
10181
  const elementValue = getValue(el);
10129
10182
  const checked = el.checked;
10130
- const assign = el._assign;
10183
+ const assign = el[assignKey];
10131
10184
  if (isArray(modelValue)) {
10132
10185
  const index = looseIndexOf(modelValue, elementValue);
10133
10186
  const found = index !== -1;
@@ -10154,7 +10207,7 @@ Component that was made reactive: `,
10154
10207
  // set initial checked on mount to wait for true-value/false-value
10155
10208
  mounted: setChecked,
10156
10209
  beforeUpdate(el, binding, vnode) {
10157
- el._assign = getModelAssigner(vnode);
10210
+ el[assignKey] = getModelAssigner(vnode);
10158
10211
  setChecked(el, binding, vnode);
10159
10212
  }
10160
10213
  };
@@ -10171,13 +10224,13 @@ Component that was made reactive: `,
10171
10224
  const vModelRadio = {
10172
10225
  created(el, { value }, vnode) {
10173
10226
  el.checked = looseEqual(value, vnode.props.value);
10174
- el._assign = getModelAssigner(vnode);
10227
+ el[assignKey] = getModelAssigner(vnode);
10175
10228
  addEventListener(el, "change", () => {
10176
- el._assign(getValue(el));
10229
+ el[assignKey](getValue(el));
10177
10230
  });
10178
10231
  },
10179
10232
  beforeUpdate(el, { value, oldValue }, vnode) {
10180
- el._assign = getModelAssigner(vnode);
10233
+ el[assignKey] = getModelAssigner(vnode);
10181
10234
  if (value !== oldValue) {
10182
10235
  el.checked = looseEqual(value, vnode.props.value);
10183
10236
  }
@@ -10192,11 +10245,11 @@ Component that was made reactive: `,
10192
10245
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
10193
10246
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
10194
10247
  );
10195
- el._assign(
10248
+ el[assignKey](
10196
10249
  el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
10197
10250
  );
10198
10251
  });
10199
- el._assign = getModelAssigner(vnode);
10252
+ el[assignKey] = getModelAssigner(vnode);
10200
10253
  },
10201
10254
  // set value in mounted & updated because <select> relies on its children
10202
10255
  // <option>s.
@@ -10204,7 +10257,7 @@ Component that was made reactive: `,
10204
10257
  setSelected(el, value);
10205
10258
  },
10206
10259
  beforeUpdate(el, _binding, vnode) {
10207
- el._assign = getModelAssigner(vnode);
10260
+ el[assignKey] = getModelAssigner(vnode);
10208
10261
  },
10209
10262
  updated(el, { value }) {
10210
10263
  setSelected(el, value);
@@ -10331,45 +10384,6 @@ Component that was made reactive: `,
10331
10384
  };
10332
10385
  };
10333
10386
 
10334
- const vShow = {
10335
- beforeMount(el, { value }, { transition }) {
10336
- el._vod = el.style.display === "none" ? "" : el.style.display;
10337
- if (transition && value) {
10338
- transition.beforeEnter(el);
10339
- } else {
10340
- setDisplay(el, value);
10341
- }
10342
- },
10343
- mounted(el, { value }, { transition }) {
10344
- if (transition && value) {
10345
- transition.enter(el);
10346
- }
10347
- },
10348
- updated(el, { value, oldValue }, { transition }) {
10349
- if (!value === !oldValue)
10350
- return;
10351
- if (transition) {
10352
- if (value) {
10353
- transition.beforeEnter(el);
10354
- setDisplay(el, true);
10355
- transition.enter(el);
10356
- } else {
10357
- transition.leave(el, () => {
10358
- setDisplay(el, false);
10359
- });
10360
- }
10361
- } else {
10362
- setDisplay(el, value);
10363
- }
10364
- },
10365
- beforeUnmount(el, { value }) {
10366
- setDisplay(el, value);
10367
- }
10368
- };
10369
- function setDisplay(el, value) {
10370
- el.style.display = value ? el._vod : "none";
10371
- }
10372
-
10373
10387
  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
10374
10388
  let renderer;
10375
10389
  let enabledHydration = false;