@vueuse/components 9.2.0 → 9.3.0

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.
package/index.cjs CHANGED
@@ -71,23 +71,21 @@ function onClickOutside(target, handler, options = {}) {
71
71
  const listener = (event) => {
72
72
  window.clearTimeout(fallback);
73
73
  const el = unrefElement(target);
74
- const composedPath = event.composedPath();
75
- if (!el || el === event.target || composedPath.includes(el) || !shouldListen.value)
74
+ if (!el || el === event.target || event.composedPath().includes(el) || !shouldListen.value)
76
75
  return;
77
- if (ignore && ignore.length > 0) {
78
- if (ignore.some((target2) => {
79
- const el2 = unrefElement(target2);
80
- return el2 && (event.target === el2 || composedPath.includes(el2));
81
- }))
82
- return;
83
- }
84
76
  handler(event);
85
77
  };
78
+ const shouldIgnore = (event) => {
79
+ return ignore && ignore.some((target2) => {
80
+ const el = unrefElement(target2);
81
+ return el && (event.target === el || event.composedPath().includes(el));
82
+ });
83
+ };
86
84
  const cleanup = [
87
85
  useEventListener(window, "click", listener, { passive: true, capture }),
88
86
  useEventListener(window, "pointerdown", (e) => {
89
87
  const el = unrefElement(target);
90
- shouldListen.value = !!el && !e.composedPath().includes(el);
88
+ shouldListen.value = !!el && !e.composedPath().includes(el) && !shouldIgnore(e);
91
89
  }, { passive: true }),
92
90
  useEventListener(window, "pointerup", (e) => {
93
91
  if (e.button === 0) {
@@ -107,18 +105,20 @@ function onClickOutside(target, handler, options = {}) {
107
105
  return stop;
108
106
  }
109
107
 
110
- const handler = () => {
111
- let stop = null;
112
- return (el, binding) => {
113
- if (stop) {
114
- stop();
115
- stop = onClickOutside(el, binding.value);
116
- return;
108
+ const vOnClickOutside = {
109
+ [shared.directiveHooks.mounted](el, binding) {
110
+ const capture = !binding.modifiers.bubble;
111
+ if (typeof binding.value === "function") {
112
+ el.__onClickOutside_stop = onClickOutside(el, binding.value, { capture });
113
+ } else {
114
+ const [handler, options] = binding.value;
115
+ el.__onClickOutside_stop = onClickOutside(el, handler, Object.assign({ capture }, options));
117
116
  }
118
- stop = onClickOutside(el, binding.value);
119
- };
117
+ },
118
+ [shared.directiveHooks.unmounted](el) {
119
+ el.__onClickOutside_stop();
120
+ }
120
121
  };
121
- const vOnClickOutside = handler();
122
122
 
123
123
  const createKeyPredicate = (keyFilter) => {
124
124
  if (typeof keyFilter === "function")
@@ -127,12 +127,29 @@ const createKeyPredicate = (keyFilter) => {
127
127
  return (event) => event.key === keyFilter;
128
128
  else if (Array.isArray(keyFilter))
129
129
  return (event) => keyFilter.includes(event.key);
130
- else if (keyFilter)
131
- return () => true;
132
- else
133
- return () => false;
130
+ return () => true;
134
131
  };
135
- function onKeyStroke(key, handler, options = {}) {
132
+ function onKeyStroke(...args) {
133
+ let key;
134
+ let handler;
135
+ let options = {};
136
+ if (args.length === 3) {
137
+ key = args[0];
138
+ handler = args[1];
139
+ options = args[2];
140
+ } else if (args.length === 2) {
141
+ if (typeof args[1] === "object") {
142
+ key = true;
143
+ handler = args[0];
144
+ options = args[1];
145
+ } else {
146
+ key = args[0];
147
+ handler = args[1];
148
+ }
149
+ } else {
150
+ key = true;
151
+ handler = args[0];
152
+ }
136
153
  const { target = defaultWindow, eventName = "keydown", passive = false } = options;
137
154
  const predicate = createKeyPredicate(key);
138
155
  const listener = (e) => {
@@ -161,7 +178,7 @@ var __spreadValues$d = (a, b) => {
161
178
  const vOnKeyStroke = {
162
179
  [shared.directiveHooks.mounted](el, binding) {
163
180
  var _a, _b;
164
- const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
181
+ const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : true;
165
182
  if (typeof binding.value === "function") {
166
183
  onKeyStroke(keys, binding.value, {
167
184
  target: el
@@ -422,28 +439,27 @@ function useMediaQuery(query, options = {}) {
422
439
  const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function");
423
440
  let mediaQuery;
424
441
  const matches = vueDemi.ref(false);
442
+ const cleanup = () => {
443
+ if (!mediaQuery)
444
+ return;
445
+ if ("removeEventListener" in mediaQuery)
446
+ mediaQuery.removeEventListener("change", update);
447
+ else
448
+ mediaQuery.removeListener(update);
449
+ };
425
450
  const update = () => {
426
451
  if (!isSupported.value)
427
452
  return;
428
- if (!mediaQuery)
429
- mediaQuery = window.matchMedia(query);
453
+ cleanup();
454
+ mediaQuery = window.matchMedia(shared.resolveRef(query).value);
430
455
  matches.value = mediaQuery.matches;
431
- };
432
- shared.tryOnBeforeMount(() => {
433
- update();
434
- if (!mediaQuery)
435
- return;
436
456
  if ("addEventListener" in mediaQuery)
437
457
  mediaQuery.addEventListener("change", update);
438
458
  else
439
459
  mediaQuery.addListener(update);
440
- shared.tryOnScopeDispose(() => {
441
- if ("removeEventListener" in mediaQuery)
442
- mediaQuery.removeEventListener("change", update);
443
- else
444
- mediaQuery.removeListener(update);
445
- });
446
- });
460
+ };
461
+ vueDemi.watchEffect(update);
462
+ shared.tryOnScopeDispose(() => cleanup());
447
463
  return matches;
448
464
  }
449
465
 
@@ -1015,10 +1031,38 @@ function useScroll(element, options = {}) {
1015
1031
  eventListenerOptions = {
1016
1032
  capture: false,
1017
1033
  passive: true
1018
- }
1034
+ },
1035
+ behavior = "auto"
1019
1036
  } = options;
1020
- const x = vueDemi.ref(0);
1021
- const y = vueDemi.ref(0);
1037
+ const internalX = vueDemi.ref(0);
1038
+ const internalY = vueDemi.ref(0);
1039
+ const x = vueDemi.computed({
1040
+ get() {
1041
+ return internalX.value;
1042
+ },
1043
+ set(x2) {
1044
+ scrollTo(x2, void 0);
1045
+ }
1046
+ });
1047
+ const y = vueDemi.computed({
1048
+ get() {
1049
+ return internalY.value;
1050
+ },
1051
+ set(y2) {
1052
+ scrollTo(void 0, y2);
1053
+ }
1054
+ });
1055
+ function scrollTo(_x, _y) {
1056
+ var _a, _b, _c;
1057
+ const _element = shared.resolveUnref(element);
1058
+ if (!_element)
1059
+ return;
1060
+ (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({
1061
+ top: (_a = shared.resolveUnref(_y)) != null ? _a : y.value,
1062
+ left: (_b = shared.resolveUnref(_x)) != null ? _b : x.value,
1063
+ behavior: shared.resolveUnref(behavior)
1064
+ });
1065
+ }
1022
1066
  const isScrolling = vueDemi.ref(false);
1023
1067
  const arrivedState = vueDemi.reactive({
1024
1068
  left: true,
@@ -1043,19 +1087,19 @@ function useScroll(element, options = {}) {
1043
1087
  const onScrollHandler = (e) => {
1044
1088
  const eventTarget = e.target === document ? e.target.documentElement : e.target;
1045
1089
  const scrollLeft = eventTarget.scrollLeft;
1046
- directions.left = scrollLeft < x.value;
1047
- directions.right = scrollLeft > x.value;
1090
+ directions.left = scrollLeft < internalX.value;
1091
+ directions.right = scrollLeft > internalY.value;
1048
1092
  arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
1049
1093
  arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1050
- x.value = scrollLeft;
1094
+ internalX.value = scrollLeft;
1051
1095
  let scrollTop = eventTarget.scrollTop;
1052
1096
  if (e.target === document && !scrollTop)
1053
1097
  scrollTop = document.body.scrollTop;
1054
- directions.top = scrollTop < y.value;
1055
- directions.bottom = scrollTop > y.value;
1098
+ directions.top = scrollTop < internalY.value;
1099
+ directions.bottom = scrollTop > internalY.value;
1056
1100
  arrivedState.top = scrollTop <= 0 + (offset.top || 0);
1057
1101
  arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1058
- y.value = scrollTop;
1102
+ internalY.value = scrollTop;
1059
1103
  isScrolling.value = true;
1060
1104
  onScrollEnd(e);
1061
1105
  onScroll(e);
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as vue_demi from 'vue-demi';
2
- import { FunctionDirective, ObjectDirective, ComponentPublicInstance, Ref, UnwrapNestedRefs, ComputedRef } from 'vue-demi';
3
- import { MaybeComputedRef, MaybeRef, ConfigurableEventFilter, ConfigurableFlush } from '@vueuse/shared';
2
+ import { ComponentPublicInstance, ObjectDirective, Ref, UnwrapNestedRefs, ComputedRef, FunctionDirective } from 'vue-demi';
3
+ import { MaybeRef, MaybeComputedRef, ConfigurableEventFilter, ConfigurableFlush } from '@vueuse/shared';
4
4
  import { UseDarkOptions, UseDevicesListOptions, UseDraggableOptions, ElementSize as ElementSize$1, UseGeolocationOptions, UseIdleOptions, UseMouseOptions, MouseInElementOptions, MousePressedOptions, UseNowOptions, UsePointerOptions, UseTimeAgoOptions, UseTimestampOptions, UseVirtualListOptions, UseWindowSizeOptions } from '@vueuse/core';
5
5
 
6
6
  interface ConfigurableWindow {
@@ -18,7 +18,34 @@ interface RenderableComponent {
18
18
 
19
19
  declare const OnClickOutside: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, {}, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}>;
20
20
 
21
- declare const vOnClickOutside: FunctionDirective<any, <E = PointerEvent>(evt: E) => void>;
21
+ declare type VueInstance = ComponentPublicInstance;
22
+ declare type MaybeElementRef<T extends MaybeElement = MaybeElement> = MaybeRef<T>;
23
+ declare type MaybeComputedElementRef<T extends MaybeElement = MaybeElement> = MaybeComputedRef<T>;
24
+ declare type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;
25
+
26
+ interface OnClickOutsideOptions extends ConfigurableWindow {
27
+ /**
28
+ * List of elements that should not trigger the event.
29
+ */
30
+ ignore?: MaybeElementRef[];
31
+ /**
32
+ * Use capturing phase for internal event listener.
33
+ * @default true
34
+ */
35
+ capture?: boolean;
36
+ /**
37
+ * Run handler function if focus moves to an iframe.
38
+ * @default false
39
+ */
40
+ detectIframe?: boolean;
41
+ }
42
+ declare type OnClickOutsideHandler<T extends {
43
+ detectIframe: OnClickOutsideOptions['detectIframe'];
44
+ } = {
45
+ detectIframe: false;
46
+ }> = (evt: T['detectIframe'] extends true ? PointerEvent | FocusEvent : PointerEvent) => void;
47
+
48
+ declare const vOnClickOutside: ObjectDirective<HTMLElement, OnClickOutsideHandler | [(evt: any) => void, OnClickOutsideOptions]>;
22
49
 
23
50
  declare type KeyStrokeEventName = 'keydown' | 'keypress' | 'keyup';
24
51
  interface OnKeyStrokeOptions {
@@ -31,11 +58,6 @@ declare type BindingValueFunction$7 = (event: KeyboardEvent) => void;
31
58
  declare type BindingValueArray$6 = [BindingValueFunction$7, OnKeyStrokeOptions];
32
59
  declare const vOnKeyStroke: ObjectDirective<HTMLElement, BindingValueFunction$7 | BindingValueArray$6>;
33
60
 
34
- declare type VueInstance = ComponentPublicInstance;
35
- declare type MaybeElementRef<T extends MaybeElement = MaybeElement> = MaybeRef<T>;
36
- declare type MaybeComputedElementRef<T extends MaybeElement = MaybeElement> = MaybeComputedRef<T>;
37
- declare type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;
38
-
39
61
  interface OnLongPressOptions {
40
62
  /**
41
63
  * Time in ms till `longpress` gets called
@@ -159,7 +181,7 @@ interface UseColorModeOptions<T extends string = BasicColorSchema> extends UseSt
159
181
  modes?: Partial<Record<T | BasicColorSchema, string>>;
160
182
  /**
161
183
  * A custom handler for handle the updates.
162
- * When specified, the default behavior will be overridded.
184
+ * When specified, the default behavior will be overridden.
163
185
  *
164
186
  * @default undefined
165
187
  */
@@ -350,6 +372,13 @@ interface UseScrollOptions {
350
372
  * @default {capture: false, passive: true}
351
373
  */
352
374
  eventListenerOptions?: boolean | AddEventListenerOptions;
375
+ /**
376
+ * Optionally specify a scroll behavior of `auto` (default, not smooth scrolling) or
377
+ * `smooth` (for smooth scrolling) which takes effect when changing the `x` or `y` refs.
378
+ *
379
+ * @default 'auto'
380
+ */
381
+ behavior?: MaybeComputedRef<ScrollBehavior>;
353
382
  }
354
383
  /**
355
384
  * Reactive scroll.
@@ -359,8 +388,8 @@ interface UseScrollOptions {
359
388
  * @param options
360
389
  */
361
390
  declare function useScroll(element: MaybeComputedRef<HTMLElement | SVGElement | Window | Document | null | undefined>, options?: UseScrollOptions): {
362
- x: vue_demi.Ref<number>;
363
- y: vue_demi.Ref<number>;
391
+ x: vue_demi.WritableComputedRef<number>;
392
+ y: vue_demi.WritableComputedRef<number>;
364
393
  isScrolling: vue_demi.Ref<boolean>;
365
394
  arrivedState: {
366
395
  left: boolean;
package/index.iife.js CHANGED
@@ -139,23 +139,21 @@
139
139
  const listener = (event) => {
140
140
  window.clearTimeout(fallback);
141
141
  const el = unrefElement(target);
142
- const composedPath = event.composedPath();
143
- if (!el || el === event.target || composedPath.includes(el) || !shouldListen.value)
142
+ if (!el || el === event.target || event.composedPath().includes(el) || !shouldListen.value)
144
143
  return;
145
- if (ignore && ignore.length > 0) {
146
- if (ignore.some((target2) => {
147
- const el2 = unrefElement(target2);
148
- return el2 && (event.target === el2 || composedPath.includes(el2));
149
- }))
150
- return;
151
- }
152
144
  handler(event);
153
145
  };
146
+ const shouldIgnore = (event) => {
147
+ return ignore && ignore.some((target2) => {
148
+ const el = unrefElement(target2);
149
+ return el && (event.target === el || event.composedPath().includes(el));
150
+ });
151
+ };
154
152
  const cleanup = [
155
153
  useEventListener(window, "click", listener, { passive: true, capture }),
156
154
  useEventListener(window, "pointerdown", (e) => {
157
155
  const el = unrefElement(target);
158
- shouldListen.value = !!el && !e.composedPath().includes(el);
156
+ shouldListen.value = !!el && !e.composedPath().includes(el) && !shouldIgnore(e);
159
157
  }, { passive: true }),
160
158
  useEventListener(window, "pointerup", (e) => {
161
159
  if (e.button === 0) {
@@ -175,18 +173,20 @@
175
173
  return stop;
176
174
  }
177
175
 
178
- const handler = () => {
179
- let stop = null;
180
- return (el, binding) => {
181
- if (stop) {
182
- stop();
183
- stop = onClickOutside(el, binding.value);
184
- return;
176
+ const vOnClickOutside = {
177
+ [shared.directiveHooks.mounted](el, binding) {
178
+ const capture = !binding.modifiers.bubble;
179
+ if (typeof binding.value === "function") {
180
+ el.__onClickOutside_stop = onClickOutside(el, binding.value, { capture });
181
+ } else {
182
+ const [handler, options] = binding.value;
183
+ el.__onClickOutside_stop = onClickOutside(el, handler, Object.assign({ capture }, options));
185
184
  }
186
- stop = onClickOutside(el, binding.value);
187
- };
185
+ },
186
+ [shared.directiveHooks.unmounted](el) {
187
+ el.__onClickOutside_stop();
188
+ }
188
189
  };
189
- const vOnClickOutside = handler();
190
190
 
191
191
  const createKeyPredicate = (keyFilter) => {
192
192
  if (typeof keyFilter === "function")
@@ -195,12 +195,29 @@
195
195
  return (event) => event.key === keyFilter;
196
196
  else if (Array.isArray(keyFilter))
197
197
  return (event) => keyFilter.includes(event.key);
198
- else if (keyFilter)
199
- return () => true;
200
- else
201
- return () => false;
198
+ return () => true;
202
199
  };
203
- function onKeyStroke(key, handler, options = {}) {
200
+ function onKeyStroke(...args) {
201
+ let key;
202
+ let handler;
203
+ let options = {};
204
+ if (args.length === 3) {
205
+ key = args[0];
206
+ handler = args[1];
207
+ options = args[2];
208
+ } else if (args.length === 2) {
209
+ if (typeof args[1] === "object") {
210
+ key = true;
211
+ handler = args[0];
212
+ options = args[1];
213
+ } else {
214
+ key = args[0];
215
+ handler = args[1];
216
+ }
217
+ } else {
218
+ key = true;
219
+ handler = args[0];
220
+ }
204
221
  const { target = defaultWindow, eventName = "keydown", passive = false } = options;
205
222
  const predicate = createKeyPredicate(key);
206
223
  const listener = (e) => {
@@ -229,7 +246,7 @@
229
246
  const vOnKeyStroke = {
230
247
  [shared.directiveHooks.mounted](el, binding) {
231
248
  var _a, _b;
232
- const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
249
+ const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : true;
233
250
  if (typeof binding.value === "function") {
234
251
  onKeyStroke(keys, binding.value, {
235
252
  target: el
@@ -490,28 +507,27 @@
490
507
  const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function");
491
508
  let mediaQuery;
492
509
  const matches = vueDemi.ref(false);
510
+ const cleanup = () => {
511
+ if (!mediaQuery)
512
+ return;
513
+ if ("removeEventListener" in mediaQuery)
514
+ mediaQuery.removeEventListener("change", update);
515
+ else
516
+ mediaQuery.removeListener(update);
517
+ };
493
518
  const update = () => {
494
519
  if (!isSupported.value)
495
520
  return;
496
- if (!mediaQuery)
497
- mediaQuery = window.matchMedia(query);
521
+ cleanup();
522
+ mediaQuery = window.matchMedia(shared.resolveRef(query).value);
498
523
  matches.value = mediaQuery.matches;
499
- };
500
- shared.tryOnBeforeMount(() => {
501
- update();
502
- if (!mediaQuery)
503
- return;
504
524
  if ("addEventListener" in mediaQuery)
505
525
  mediaQuery.addEventListener("change", update);
506
526
  else
507
527
  mediaQuery.addListener(update);
508
- shared.tryOnScopeDispose(() => {
509
- if ("removeEventListener" in mediaQuery)
510
- mediaQuery.removeEventListener("change", update);
511
- else
512
- mediaQuery.removeListener(update);
513
- });
514
- });
528
+ };
529
+ vueDemi.watchEffect(update);
530
+ shared.tryOnScopeDispose(() => cleanup());
515
531
  return matches;
516
532
  }
517
533
 
@@ -1083,10 +1099,38 @@
1083
1099
  eventListenerOptions = {
1084
1100
  capture: false,
1085
1101
  passive: true
1086
- }
1102
+ },
1103
+ behavior = "auto"
1087
1104
  } = options;
1088
- const x = vueDemi.ref(0);
1089
- const y = vueDemi.ref(0);
1105
+ const internalX = vueDemi.ref(0);
1106
+ const internalY = vueDemi.ref(0);
1107
+ const x = vueDemi.computed({
1108
+ get() {
1109
+ return internalX.value;
1110
+ },
1111
+ set(x2) {
1112
+ scrollTo(x2, void 0);
1113
+ }
1114
+ });
1115
+ const y = vueDemi.computed({
1116
+ get() {
1117
+ return internalY.value;
1118
+ },
1119
+ set(y2) {
1120
+ scrollTo(void 0, y2);
1121
+ }
1122
+ });
1123
+ function scrollTo(_x, _y) {
1124
+ var _a, _b, _c;
1125
+ const _element = shared.resolveUnref(element);
1126
+ if (!_element)
1127
+ return;
1128
+ (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({
1129
+ top: (_a = shared.resolveUnref(_y)) != null ? _a : y.value,
1130
+ left: (_b = shared.resolveUnref(_x)) != null ? _b : x.value,
1131
+ behavior: shared.resolveUnref(behavior)
1132
+ });
1133
+ }
1090
1134
  const isScrolling = vueDemi.ref(false);
1091
1135
  const arrivedState = vueDemi.reactive({
1092
1136
  left: true,
@@ -1111,19 +1155,19 @@
1111
1155
  const onScrollHandler = (e) => {
1112
1156
  const eventTarget = e.target === document ? e.target.documentElement : e.target;
1113
1157
  const scrollLeft = eventTarget.scrollLeft;
1114
- directions.left = scrollLeft < x.value;
1115
- directions.right = scrollLeft > x.value;
1158
+ directions.left = scrollLeft < internalX.value;
1159
+ directions.right = scrollLeft > internalY.value;
1116
1160
  arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
1117
1161
  arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1118
- x.value = scrollLeft;
1162
+ internalX.value = scrollLeft;
1119
1163
  let scrollTop = eventTarget.scrollTop;
1120
1164
  if (e.target === document && !scrollTop)
1121
1165
  scrollTop = document.body.scrollTop;
1122
- directions.top = scrollTop < y.value;
1123
- directions.bottom = scrollTop > y.value;
1166
+ directions.top = scrollTop < internalY.value;
1167
+ directions.bottom = scrollTop > internalY.value;
1124
1168
  arrivedState.top = scrollTop <= 0 + (offset.top || 0);
1125
1169
  arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1126
- y.value = scrollTop;
1170
+ internalY.value = scrollTop;
1127
1171
  isScrolling.value = true;
1128
1172
  onScrollEnd(e);
1129
1173
  onScroll(e);
package/index.iife.min.js CHANGED
@@ -1 +1 @@
1
- var VueDemi=function(l,n,d){if(l.install)return l;if(n)if(n.version.slice(0,4)==="2.7."){for(var u in n)l[u]=n[u];l.isVue2=!0,l.isVue3=!1,l.install=function(){},l.Vue=n,l.Vue2=n,l.version=n.version}else if(n.version.slice(0,2)==="2.")if(d){for(var u in d)l[u]=d[u];l.isVue2=!0,l.isVue3=!1,l.install=function(){},l.Vue=n,l.Vue2=n,l.version=n.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(n.version.slice(0,2)==="3."){for(var u in n)l[u]=n[u];l.isVue2=!1,l.isVue3=!0,l.install=function(){},l.Vue=n,l.Vue2=void 0,l.version=n.version,l.set=function(C,h,S){return Array.isArray(C)?(C.length=Math.max(C.length,h),C.splice(h,1,S),S):(C[h]=S,S)},l.del=function(C,h){if(Array.isArray(C)){C.splice(h,1);return}delete C[h]}}else console.error("[vue-demi] Vue version "+n.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");return l}(this.VueDemi=this.VueDemi||(typeof VueDemi!="undefined"?VueDemi:{}),this.Vue||(typeof Vue!="undefined"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI!="undefined"?VueCompositionAPI:void 0));(function(l,n,d,u){"use strict";const C=n.defineComponent({name:"OnClickOutside",props:["as"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return d.onClickOutside(o,a=>{r("trigger",a)}),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}});function h(t){var e;const r=u.resolveUnref(t);return(e=r==null?void 0:r.$el)!=null?e:r}const S=u.isClient?window:void 0;function $(...t){let e,r,o,a;if(u.isString(t[0])?([r,o,a]=t,e=S):[e,r,o,a]=t,!e)return u.noop;let i=u.noop;const s=n.watch(()=>h(e),f=>{i(),!!f&&(f.addEventListener(r,o,a),i=()=>{f.removeEventListener(r,o,a),i=u.noop})},{immediate:!0,flush:"post"}),c=()=>{s(),i()};return u.tryOnScopeDispose(c),c}function W(t,e,r={}){const{window:o=S,ignore:a,capture:i=!0,detectIframe:s=!1}=r;if(!o)return;const c=n.ref(!0);let f;const v=p=>{o.clearTimeout(f);const _=h(t),P=p.composedPath();!_||_===p.target||P.includes(_)||!c.value||a&&a.length>0&&a.some(y=>{const U=h(y);return U&&(p.target===U||P.includes(U))})||e(p)},g=[$(o,"click",v,{passive:!0,capture:i}),$(o,"pointerdown",p=>{const _=h(t);c.value=!!_&&!p.composedPath().includes(_)},{passive:!0}),$(o,"pointerup",p=>{if(p.button===0){const _=p.composedPath();p.composedPath=()=>_,f=o.setTimeout(()=>v(p),50)}},{passive:!0}),s&&$(o,"blur",p=>{var _;const P=h(t);((_=document.activeElement)==null?void 0:_.tagName)==="IFRAME"&&!(P==null?void 0:P.contains(document.activeElement))&&e(p)})].filter(Boolean);return()=>g.forEach(p=>p())}const k=(()=>{let t=null;return(e,r)=>{if(t){t(),t=W(e,r.value);return}t=W(e,r.value)}})(),Me=t=>typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):t?()=>!0:()=>!1;function F(t,e,r={}){const{target:o=S,eventName:a="keydown",passive:i=!1}=r,s=Me(t);return $(o,a,f=>{s(f)&&e(f)},i)}var Ve=Object.defineProperty,K=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,J=(t,e,r)=>e in t?Ve(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ne=(t,e)=>{for(var r in e||(e={}))Ae.call(e,r)&&J(t,r,e[r]);if(K)for(var r of K(e))Te.call(e,r)&&J(t,r,e[r]);return t};const Re={[u.directiveHooks.mounted](t,e){var r,o;const a=(o=(r=e.arg)==null?void 0:r.split(","))!=null?o:[];if(typeof e.value=="function")F(a,e.value,{target:t});else{const[i,s]=e.value;F(a,i,Ne({target:t},s))}}},ze=500;function N(t,e,r){var o,a;const i=n.computed(()=>h(t));let s;function c(){s&&(clearTimeout(s),s=void 0)}function f(g){var O,p,_,P;((O=r==null?void 0:r.modifiers)==null?void 0:O.self)&&g.target!==i.value||(c(),((p=r==null?void 0:r.modifiers)==null?void 0:p.prevent)&&g.preventDefault(),((_=r==null?void 0:r.modifiers)==null?void 0:_.stop)&&g.stopPropagation(),s=setTimeout(()=>e(g),(P=r==null?void 0:r.delay)!=null?P:ze))}const v={capture:(o=r==null?void 0:r.modifiers)==null?void 0:o.capture,once:(a=r==null?void 0:r.modifiers)==null?void 0:a.once};$(i,"pointerdown",f,v),$(i,"pointerup",c,v),$(i,"pointerleave",c,v)}const He=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return N(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}}),G={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?N(t,e.value,{modifiers:e.modifiers}):N(t,...e.value)}},Be=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:d.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),We=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(d.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),ke=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(d.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),R=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},z="__vueuse_ssr_handlers__";R[z]=R[z]||{};const Fe=R[z];function q(t,e){return Fe[t]||e}function Ke(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"||Array.isArray(t)?"object":Number.isNaN(t)?"any":"number"}var Je=Object.defineProperty,Q=Object.getOwnPropertySymbols,Ge=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable,X=(t,e,r)=>e in t?Je(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Y=(t,e)=>{for(var r in e||(e={}))Ge.call(e,r)&&X(t,r,e[r]);if(Q)for(var r of Q(e))qe.call(e,r)&&X(t,r,e[r]);return t};const Qe={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}};function Xe(t,e,r,o={}){var a;const{flush:i="pre",deep:s=!0,listenToStorageChanges:c=!0,writeDefaults:f=!0,mergeDefaults:v=!1,shallow:g,window:O=S,eventFilter:p,onError:_=m=>{console.error(m)}}=o,P=(g?n.shallowRef:n.ref)(e);if(!r)try{r=q("getDefaultStorage",()=>{var m;return(m=S)==null?void 0:m.localStorage})()}catch(m){_(m)}if(!r)return P;const y=u.resolveUnref(e),U=Ke(y),w=(a=o.serializer)!=null?a:Qe[U],{pause:b,resume:j}=u.pausableWatch(P,()=>L(P.value),{flush:i,deep:s,eventFilter:p});return O&&c&&$(O,"storage",A),A(),P;function L(m){try{m==null?r.removeItem(t):r.setItem(t,w.write(m))}catch(E){_(E)}}function I(m){if(!(m&&m.key!==t)){b();try{const E=m?m.newValue:r.getItem(t);if(E==null)return f&&y!==null&&r.setItem(t,w.write(y)),y;if(!m&&v){const T=w.read(E);return u.isFunction(v)?v(T,y):U==="object"&&!Array.isArray(T)?Y(Y({},y),T):T}else return typeof E!="string"?E:w.read(E)}catch(E){_(E)}finally{j()}}}function A(m){m&&m.key!==t||(P.value=I(m))}}function H(t,e=!1){const r=n.ref(),o=()=>r.value=Boolean(t());return o(),u.tryOnMounted(o,e),r}function Ye(t,e={}){const{window:r=S}=e,o=H(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let a;const i=n.ref(!1),s=()=>{!o.value||(a||(a=r.matchMedia(t)),i.value=a.matches)};return u.tryOnBeforeMount(()=>{s(),!!a&&("addEventListener"in a?a.addEventListener("change",s):a.addListener(s),u.tryOnScopeDispose(()=>{"removeEventListener"in a?a.removeEventListener("change",s):a.removeListener(s)}))}),i}function Ze(t){return Ye("(prefers-color-scheme: dark)",t)}var xe=Object.defineProperty,Z=Object.getOwnPropertySymbols,De=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable,x=(t,e,r)=>e in t?xe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,tt=(t,e)=>{for(var r in e||(e={}))De.call(e,r)&&x(t,r,e[r]);if(Z)for(var r of Z(e))et.call(e,r)&&x(t,r,e[r]);return t};function rt(t={}){const{selector:e="html",attribute:r="class",initialValue:o="auto",window:a=S,storage:i,storageKey:s="vueuse-color-scheme",listenToStorageChanges:c=!0,storageRef:f,emitAuto:v}=t,g=tt({auto:"",light:"light",dark:"dark"},t.modes||{}),O=Ze({window:a}),p=n.computed(()=>O.value?"dark":"light"),_=f||(s==null?n.ref(o):Xe(s,o,i,{window:a,listenToStorageChanges:c})),P=n.computed({get(){return _.value==="auto"&&!v?p.value:_.value},set(b){_.value=b}}),y=q("updateHTMLAttrs",(b,j,L)=>{const I=a==null?void 0:a.document.querySelector(b);if(!!I)if(j==="class"){const A=L.split(/\s/g);Object.values(g).flatMap(m=>(m||"").split(/\s/g)).filter(Boolean).forEach(m=>{A.includes(m)?I.classList.add(m):I.classList.remove(m)})}else I.setAttribute(j,L)});function U(b){var j;const L=b==="auto"?p.value:b;y(e,r,(j=g[L])!=null?j:L)}function w(b){t.onChanged?t.onChanged(b,U):U(b)}return n.watch(P,w,{flush:"post",immediate:!0}),v&&n.watch(p,()=>w(P.value),{flush:"post"}),u.tryOnMounted(()=>w(P.value)),P}const nt=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(t,{slots:e}){const r=rt(t),o=n.reactive({mode:r});return()=>{if(e.default)return e.default(o)}}}),ot=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=d.useDark(t),o=n.reactive({isDark:r,toggleDark:u.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),at=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(d.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),st=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(d.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),lt=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:d.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),it=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(d.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),ut=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:d.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var ct=Object.defineProperty,ft=Object.defineProperties,dt=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,pt=Object.prototype.hasOwnProperty,vt=Object.prototype.propertyIsEnumerable,ee=(t,e,r)=>e in t?ct(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,gt=(t,e)=>{for(var r in e||(e={}))pt.call(e,r)&&ee(t,r,e[r]);if(D)for(var r of D(e))vt.call(e,r)&&ee(t,r,e[r]);return t},_t=(t,e)=>ft(t,dt(e));const Ot=n.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","stopPropagation","pointerTypes","as","handle"],setup(t,{slots:e}){const r=n.ref(),o=n.computed(()=>{var s;return(s=t.handle)!=null?s:r.value}),a=t.storageKey?d.useStorage(t.storageKey,u.resolveUnref(t.initialValue)||{x:0,y:0},d.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0):t.initialValue||{x:0,y:0},i=n.reactive(d.useDraggable(r,_t(gt({},t),{handle:o,initialValue:a})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${i.style}`},e.default(i))}}}),Pt=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function mt(t){const e=n.ref(!1);return $(t,"mouseenter",()=>e.value=!0),$(t,"mouseleave",()=>e.value=!1),e}const yt={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=mt(t);n.watch(r,o=>e.value(o))}}},ht=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useElementSize(r,{width:t.width,height:t.height},{box:t.box}));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var te=Object.getOwnPropertySymbols,wt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable,Ut=(t,e)=>{var r={};for(var o in t)wt.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&te)for(var o of te(t))e.indexOf(o)<0&&bt.call(t,o)&&(r[o]=t[o]);return r};function St(t,e,r={}){const o=r,{window:a=S}=o,i=Ut(o,["window"]);let s;const c=H(()=>a&&"ResizeObserver"in a),f=()=>{s&&(s.disconnect(),s=void 0)},v=n.watch(()=>h(t),O=>{f(),c.value&&a&&O&&(s=new ResizeObserver(e),s.observe(O,i))},{immediate:!0,flush:"post"}),g=()=>{f(),v()};return u.tryOnScopeDispose(g),{isSupported:c,stop:g}}function $t(t,e={width:0,height:0},r={}){const{box:o="content-box"}=r,a=n.ref(e.width),i=n.ref(e.height);return St(t,([s])=>{const c=o==="border-box"?s.borderBoxSize:o==="content-box"?s.contentBoxSize:s.devicePixelContentBoxSize;c?(a.value=c.reduce((f,{inlineSize:v})=>f+v,0),i.value=c.reduce((f,{blockSize:v})=>f+v,0)):(a.value=s.contentRect.width,i.value=s.contentRect.height)},r),n.watch(()=>h(t),s=>{a.value=s?e.width:0,i.value=s?e.height:0}),{width:a,height:i}}const Ct={[u.directiveHooks.mounted](t,e){var r;const o=typeof e.value=="function"?e.value:(r=e.value)==null?void 0:r[0],a=typeof e.value=="function"?[]:e.value.slice(1),{width:i,height:s}=$t(t,...a);n.watch([i,s],([c,f])=>o({width:c,height:f}))}},Et=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:d.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function re(t,{window:e=S,scrollTarget:r}={}){const o=n.ref(!1),a=()=>{if(!e)return;const i=e.document,s=h(t);if(!s)o.value=!1;else{const c=s.getBoundingClientRect();o.value=c.top<=(e.innerHeight||i.documentElement.clientHeight)&&c.left<=(e.innerWidth||i.documentElement.clientWidth)&&c.bottom>=0&&c.right>=0}};return n.watch(()=>h(t),()=>a(),{immediate:!0,flush:"post"}),e&&$(r||e,"scroll",a,{capture:!1,passive:!0}),o}const jt={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=re(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=re(t,o);n.watch(a,i=>r(i),{immediate:!0})}}},Lt=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(d.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),It=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Mt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(d.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),Vt=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(d.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});function At(t,e,r){const{immediate:o=!0,delay:a=0,onError:i=u.noop,resetOnExecute:s=!0,shallow:c=!0,throwError:f}=r??{},v=c?n.shallowRef(e):n.ref(e),g=n.ref(!1),O=n.ref(!1),p=n.ref(void 0);async function _(P=0,...y){s&&(v.value=e),p.value=void 0,g.value=!1,O.value=!0,P>0&&await u.promiseTimeout(P);const U=typeof t=="function"?t(...y):t;try{const w=await U;v.value=w,g.value=!0}catch(w){if(p.value=w,i(w),f)throw p}finally{O.value=!1}return v.value}return o&&_(a),{state:v,isReady:g,isLoading:O,error:p,execute:_}}var Tt=Object.defineProperty,ne=Object.getOwnPropertySymbols,Nt=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,oe=(t,e,r)=>e in t?Tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,zt=(t,e)=>{for(var r in e||(e={}))Nt.call(e,r)&&oe(t,r,e[r]);if(ne)for(var r of ne(e))Rt.call(e,r)&&oe(t,r,e[r]);return t};async function Ht(t){return new Promise((e,r)=>{const o=new Image,{src:a,srcset:i,sizes:s}=t;o.src=a,i&&(o.srcset=i),s&&(o.sizes=s),o.onload=()=>e(o),o.onerror=r})}const Bt=(t,e={})=>{const r=At(()=>Ht(u.resolveUnref(t)),void 0,zt({resetOnExecute:!0},e));return n.watch(()=>u.resolveUnref(t),()=>r.execute(e.delay),{deep:!0}),r},Wt=n.defineComponent({name:"UseImage",props:["src","srcset","sizes","as"],setup(t,{slots:e}){const r=n.reactive(Bt(t));return()=>r.isLoading&&e.loading?e.loading(r):r.error&&e.error?e.error(r.error):e.default?e.default(r):n.h(t.as||"img",t)}}),ae=1;function B(t,e={}){const{throttle:r=0,idle:o=200,onStop:a=u.noop,onScroll:i=u.noop,offset:s={left:0,right:0,top:0,bottom:0},eventListenerOptions:c={capture:!1,passive:!0}}=e,f=n.ref(0),v=n.ref(0),g=n.ref(!1),O=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),p=n.reactive({left:!1,right:!1,top:!1,bottom:!1}),_=u.useDebounceFn(y=>{g.value=!1,p.left=!1,p.right=!1,p.top=!1,p.bottom=!1,a(y)},r+o),P=y=>{const U=y.target===document?y.target.documentElement:y.target,w=U.scrollLeft;p.left=w<f.value,p.right=w>f.value,O.left=w<=0+(s.left||0),O.right=w+U.clientWidth>=U.scrollWidth-(s.right||0)-ae,f.value=w;let b=U.scrollTop;y.target===document&&!b&&(b=document.body.scrollTop),p.top=b<v.value,p.bottom=b>v.value,O.top=b<=0+(s.top||0),O.bottom=b+U.clientHeight>=U.scrollHeight-(s.bottom||0)-ae,v.value=b,g.value=!0,_(y),i(y)};return $(t,"scroll",r?u.useThrottleFn(P,r):P,c),{x:f,y:v,isScrolling:g,arrivedState:O,directions:p}}var kt=Object.defineProperty,Ft=Object.defineProperties,Kt=Object.getOwnPropertyDescriptors,se=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,Gt=Object.prototype.propertyIsEnumerable,le=(t,e,r)=>e in t?kt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ie=(t,e)=>{for(var r in e||(e={}))Jt.call(e,r)&&le(t,r,e[r]);if(se)for(var r of se(e))Gt.call(e,r)&&le(t,r,e[r]);return t},qt=(t,e)=>Ft(t,Kt(e));function ue(t,e,r={}){var o,a;const i=(o=r.direction)!=null?o:"bottom",s=n.reactive(B(t,qt(ie({},r),{offset:ie({[i]:(a=r.distance)!=null?a:0},r.offset)})));n.watch(()=>s.arrivedState[i],async c=>{var f,v;if(c){const g=u.resolveUnref(t),O={height:(f=g==null?void 0:g.scrollHeight)!=null?f:0,width:(v=g==null?void 0:g.scrollWidth)!=null?v:0};await e(s),r.preserveScrollPosition&&g&&n.nextTick(()=>{g.scrollTo({top:g.scrollHeight-O.height,left:g.scrollWidth-O.width})})}})}const Qt={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?ue(t,e.value):ue(t,...e.value)}};function ce(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:i=.1,window:s=S}=r,c=H(()=>s&&"IntersectionObserver"in s);let f=u.noop;const v=c.value?n.watch(()=>({el:h(t),root:h(o)}),({el:O,root:p})=>{if(f(),!O)return;const _=new IntersectionObserver(e,{root:p,rootMargin:a,threshold:i});_.observe(O),f=()=>{_.disconnect(),f=u.noop}},{immediate:!0,flush:"post"}):u.noop,g=()=>{f(),v()};return u.tryOnScopeDispose(g),{isSupported:c,stop:g}}const Xt={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?ce(t,e.value):ce(t,...e.value)}},Yt=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(d.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),Zt=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var xt=Object.defineProperty,Dt=Object.defineProperties,er=Object.getOwnPropertyDescriptors,fe=Object.getOwnPropertySymbols,tr=Object.prototype.hasOwnProperty,rr=Object.prototype.propertyIsEnumerable,de=(t,e,r)=>e in t?xt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,nr=(t,e)=>{for(var r in e||(e={}))tr.call(e,r)&&de(t,r,e[r]);if(fe)for(var r of fe(e))rr.call(e,r)&&de(t,r,e[r]);return t},or=(t,e)=>Dt(t,er(e));const ar=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useMousePressed(or(nr({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),sr=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(d.useNetwork());return()=>{if(e.default)return e.default(r)}}});var lr=Object.defineProperty,ir=Object.defineProperties,ur=Object.getOwnPropertyDescriptors,pe=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,fr=Object.prototype.propertyIsEnumerable,ve=(t,e,r)=>e in t?lr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,dr=(t,e)=>{for(var r in e||(e={}))cr.call(e,r)&&ve(t,r,e[r]);if(pe)for(var r of pe(e))fr.call(e,r)&&ve(t,r,e[r]);return t},pr=(t,e)=>ir(t,ur(e));const vr=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(d.useNow(pr(dr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),gr=n.defineComponent({name:"UseObjectUrl",props:["object"],setup(t,{slots:e}){const r=n.toRef(t,"object"),o=d.useObjectUrl(r);return()=>{if(e.default&&o.value)return e.default(o)}}});var _r=Object.defineProperty,Or=Object.defineProperties,Pr=Object.getOwnPropertyDescriptors,ge=Object.getOwnPropertySymbols,mr=Object.prototype.hasOwnProperty,yr=Object.prototype.propertyIsEnumerable,_e=(t,e,r)=>e in t?_r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,hr=(t,e)=>{for(var r in e||(e={}))mr.call(e,r)&&_e(t,r,e[r]);if(ge)for(var r of ge(e))yr.call(e,r)&&_e(t,r,e[r]);return t},wr=(t,e)=>Or(t,Pr(e));const br=n.defineComponent({name:"UseOffsetPagination",props:["total","page","pageSize","onPageChange","onPageSizeChange","onPageCountChange"],emits:["page-change","page-size-change","page-count-change"],setup(t,{slots:e,emit:r}){const o=n.reactive(d.useOffsetPagination(wr(hr({},t),{onPageChange(...a){var i;(i=t.onPageChange)==null||i.call(t,...a),r("page-change",...a)},onPageSizeChange(...a){var i;(i=t.onPageSizeChange)==null||i.call(t,...a),r("page-size-change",...a)},onPageCountChange(...a){var i;(i=t.onPageCountChange)==null||i.call(t,...a),r("page-count-change",...a)}})));return()=>{if(e.default)return e.default(o)}}}),Ur=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:d.useOnline()});return()=>{if(e.default)return e.default(r)}}}),Sr=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:d.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var $r=Object.defineProperty,Cr=Object.defineProperties,Er=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,jr=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Pe=(t,e,r)=>e in t?$r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ir=(t,e)=>{for(var r in e||(e={}))jr.call(e,r)&&Pe(t,r,e[r]);if(Oe)for(var r of Oe(e))Lr.call(e,r)&&Pe(t,r,e[r]);return t},Mr=(t,e)=>Cr(t,Er(e));const Vr=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(d.usePointer(Mr(Ir({},t),{target:t.target==="self"?r:S})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),Ar=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:d.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),Tr=n.defineComponent({name:"UsePreferredContrast",setup(t,{slots:e}){const r=n.reactive({contrast:d.usePreferredContrast()});return()=>{if(e.default)return e.default(r)}}}),Nr=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:d.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),Rr=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:d.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}}),zr=n.defineComponent({name:"UsePreferredReducedMotion",setup(t,{slots:e}){const r=n.reactive({motion:d.usePreferredReducedMotion()});return()=>{if(e.default)return e.default(r)}}});function M(t,e,{window:r=S,initialValue:o=""}={}){const a=n.ref(o),i=n.computed(()=>{var s;return h(e)||((s=r==null?void 0:r.document)==null?void 0:s.documentElement)});return n.watch([i,()=>u.resolveUnref(t)],([s,c])=>{var f;if(s&&r){const v=(f=r.getComputedStyle(s).getPropertyValue(c))==null?void 0:f.trim();a.value=v||o}},{immediate:!0}),n.watch(a,s=>{var c;((c=i.value)==null?void 0:c.style)&&i.value.style.setProperty(u.resolveUnref(t),s)}),a}const me="--vueuse-safe-area-top",ye="--vueuse-safe-area-right",he="--vueuse-safe-area-bottom",we="--vueuse-safe-area-left";function Hr(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(u.isClient){const i=M(me),s=M(ye),c=M(he),f=M(we);i.value="env(safe-area-inset-top, 0px)",s.value="env(safe-area-inset-right, 0px)",c.value="env(safe-area-inset-bottom, 0px)",f.value="env(safe-area-inset-left, 0px)",a(),$("resize",u.useDebounceFn(a))}function a(){t.value=V(me),e.value=V(ye),r.value=V(he),o.value=V(we)}return{top:t,right:e,bottom:r,left:o,update:a}}function V(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const Br=n.defineComponent({name:"UseScreenSafeArea",props:{top:Boolean,right:Boolean,bottom:Boolean,left:Boolean},setup(t,{slots:e}){const{top:r,right:o,bottom:a,left:i}=Hr();return()=>{if(e.default)return n.h("div",{style:{paddingTop:t.top?r.value:"",paddingRight:t.right?o.value:"",paddingBottom:t.bottom?a.value:"",paddingLeft:t.left?i.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var Wr=Object.defineProperty,kr=Object.defineProperties,Fr=Object.getOwnPropertyDescriptors,be=Object.getOwnPropertySymbols,Kr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Ue=(t,e,r)=>e in t?Wr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Gr=(t,e)=>{for(var r in e||(e={}))Kr.call(e,r)&&Ue(t,r,e[r]);if(be)for(var r of be(e))Jr.call(e,r)&&Ue(t,r,e[r]);return t},qr=(t,e)=>kr(t,Fr(e));const Qr={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=B(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=B(t,qr(Gr({},o),{onScroll(i){var s;(s=o.onScroll)==null||s.call(o,i),r(a)},onStop(i){var s;(s=o.onStop)==null||s.call(o,i),r(a)}}))}}};function Xr(t){const e=t||window.event;return e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}function Yr(t,e=!1){const r=n.ref(e);let o=null,a;n.watch(u.resolveRef(t),c=>{if(c){const f=c;a=f.style.overflow,r.value&&(f.style.overflow="hidden")}},{immediate:!0});const i=()=>{const c=u.resolveUnref(t);!c||r.value||(u.isIOS&&(o=$(c,"touchmove",Xr,{passive:!1})),c.style.overflow="hidden",r.value=!0)},s=()=>{const c=u.resolveUnref(t);!c||!r.value||(u.isIOS&&(o==null||o()),c.style.overflow=a,r.value=!1)};return u.tryOnScopeDispose(s),n.computed({get(){return r.value},set(c){c?i():s()}})}const Zr=(()=>{let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=Yr(r,o.value);n.watch(e,i=>a.value=i)}})();var xr=Object.defineProperty,Dr=Object.defineProperties,en=Object.getOwnPropertyDescriptors,Se=Object.getOwnPropertySymbols,tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable,$e=(t,e,r)=>e in t?xr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,nn=(t,e)=>{for(var r in e||(e={}))tn.call(e,r)&&$e(t,r,e[r]);if(Se)for(var r of Se(e))rn.call(e,r)&&$e(t,r,e[r]);return t},on=(t,e)=>Dr(t,en(e));const an=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages"],setup(t,{slots:e}){const r=n.reactive(d.useTimeAgo(()=>t.time,on(nn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var sn=Object.defineProperty,ln=Object.defineProperties,un=Object.getOwnPropertyDescriptors,Ce=Object.getOwnPropertySymbols,cn=Object.prototype.hasOwnProperty,fn=Object.prototype.propertyIsEnumerable,Ee=(t,e,r)=>e in t?sn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,dn=(t,e)=>{for(var r in e||(e={}))cn.call(e,r)&&Ee(t,r,e[r]);if(Ce)for(var r of Ce(e))fn.call(e,r)&&Ee(t,r,e[r]);return t},pn=(t,e)=>ln(t,un(e));const vn=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(d.useTimestamp(pn(dn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var gn=Object.defineProperty,je=Object.getOwnPropertySymbols,_n=Object.prototype.hasOwnProperty,On=Object.prototype.propertyIsEnumerable,Le=(t,e,r)=>e in t?gn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ie=(t,e)=>{for(var r in e||(e={}))_n.call(e,r)&&Le(t,r,e[r]);if(je)for(var r of je(e))On.call(e,r)&&Le(t,r,e[r]);return t};const Pn=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e}){const{list:r}=n.toRefs(t),{list:o,containerProps:a,wrapperProps:i}=d.useVirtualList(r,t.options);return a.style.height=t.height||"300px",()=>n.h("div",Ie({},a),[n.h("div",Ie({},i.value),o.value.map(s=>n.h("div",{style:{overFlow:"hidden",height:s.height}},e.default?e.default(s):"Please set content!")))])}}),mn=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:d.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),yn=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(d.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});l.OnClickOutside=C,l.OnLongPress=He,l.UseActiveElement=Be,l.UseBattery=We,l.UseBrowserLocation=ke,l.UseColorMode=nt,l.UseDark=ot,l.UseDeviceMotion=at,l.UseDeviceOrientation=st,l.UseDevicePixelRatio=lt,l.UseDevicesList=it,l.UseDocumentVisibility=ut,l.UseDraggable=Ot,l.UseElementBounding=Pt,l.UseElementSize=ht,l.UseElementVisibility=Et,l.UseEyeDropper=Lt,l.UseFullscreen=It,l.UseGeolocation=Mt,l.UseIdle=Vt,l.UseImage=Wt,l.UseMouse=Yt,l.UseMouseInElement=Zt,l.UseMousePressed=ar,l.UseNetwork=sr,l.UseNow=vr,l.UseObjectUrl=gr,l.UseOffsetPagination=br,l.UseOnline=Ur,l.UsePageLeave=Sr,l.UsePointer=Vr,l.UsePreferredColorScheme=Ar,l.UsePreferredContrast=Tr,l.UsePreferredDark=Nr,l.UsePreferredLanguages=Rr,l.UsePreferredReducedMotion=zr,l.UseScreenSafeArea=Br,l.UseTimeAgo=an,l.UseTimestamp=vn,l.UseVirtualList=Pn,l.UseWindowFocus=mn,l.UseWindowSize=yn,l.VOnClickOutside=k,l.VOnLongPress=G,l.vElementHover=yt,l.vElementSize=Ct,l.vElementVisibility=jt,l.vInfiniteScroll=Qt,l.vIntersectionObserver=Xt,l.vOnClickOutside=k,l.vOnKeyStroke=Re,l.vOnLongPress=G,l.vScroll=Qr,l.vScrollLock=Zr,Object.defineProperty(l,"__esModule",{value:!0})})(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
1
+ var VueDemi=function(s,n,f){if(s.install)return s;if(n)if(n.version.slice(0,4)==="2.7."){for(var u in n)s[u]=n[u];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version}else if(n.version.slice(0,2)==="2.")if(f){for(var u in f)s[u]=f[u];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(n.version.slice(0,2)==="3."){for(var u in n)s[u]=n[u];s.isVue2=!1,s.isVue3=!0,s.install=function(){},s.Vue=n,s.Vue2=void 0,s.version=n.version,s.set=function(M,h,b){return Array.isArray(M)?(M.length=Math.max(M.length,h),M.splice(h,1,b),b):(M[h]=b,b)},s.del=function(M,h){if(Array.isArray(M)){M.splice(h,1);return}delete M[h]}}else console.error("[vue-demi] Vue version "+n.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");return s}(this.VueDemi=this.VueDemi||(typeof VueDemi!="undefined"?VueDemi:{}),this.Vue||(typeof Vue!="undefined"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI!="undefined"?VueCompositionAPI:void 0));(function(s,n,f,u){"use strict";const M=n.defineComponent({name:"OnClickOutside",props:["as"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return f.onClickOutside(o,a=>{r("trigger",a)}),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}});function h(t){var e;const r=u.resolveUnref(t);return(e=r==null?void 0:r.$el)!=null?e:r}const b=u.isClient?window:void 0;function $(...t){let e,r,o,a;if(u.isString(t[0])?([r,o,a]=t,e=b):[e,r,o,a]=t,!e)return u.noop;let i=u.noop;const l=n.watch(()=>h(e),d=>{i(),!!d&&(d.addEventListener(r,o,a),i=()=>{d.removeEventListener(r,o,a),i=u.noop})},{immediate:!0,flush:"post"}),c=()=>{l(),i()};return u.tryOnScopeDispose(c),c}function k(t,e,r={}){const{window:o=b,ignore:a,capture:i=!0,detectIframe:l=!1}=r;if(!o)return;const c=n.ref(!0);let d;const p=v=>{o.clearTimeout(d);const g=h(t);!g||g===v.target||v.composedPath().includes(g)||!c.value||e(v)},_=v=>a&&a.some(g=>{const P=h(g);return P&&(v.target===P||v.composedPath().includes(P))}),m=[$(o,"click",p,{passive:!0,capture:i}),$(o,"pointerdown",v=>{const g=h(t);c.value=!!g&&!v.composedPath().includes(g)&&!_(v)},{passive:!0}),$(o,"pointerup",v=>{if(v.button===0){const g=v.composedPath();v.composedPath=()=>g,d=o.setTimeout(()=>p(v),50)}},{passive:!0}),l&&$(o,"blur",v=>{var g;const P=h(t);((g=document.activeElement)==null?void 0:g.tagName)==="IFRAME"&&!(P==null?void 0:P.contains(document.activeElement))&&e(v)})].filter(Boolean);return()=>m.forEach(v=>v())}const W={[u.directiveHooks.mounted](t,e){const r=!e.modifiers.bubble;if(typeof e.value=="function")t.__onClickOutside_stop=k(t,e.value,{capture:r});else{const[o,a]=e.value;t.__onClickOutside_stop=k(t,o,Object.assign({capture:r},a))}},[u.directiveHooks.unmounted](t){t.__onClickOutside_stop()}},Me=t=>typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0;function F(...t){let e,r,o={};t.length===3?(e=t[0],r=t[1],o=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,r=t[0],o=t[1]):(e=t[0],r=t[1]):(e=!0,r=t[0]);const{target:a=b,eventName:i="keydown",passive:l=!1}=o,c=Me(e);return $(a,i,p=>{c(p)&&r(p)},l)}var Ve=Object.defineProperty,K=Object.getOwnPropertySymbols,Te=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,J=(t,e,r)=>e in t?Ve(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ne=(t,e)=>{for(var r in e||(e={}))Te.call(e,r)&&J(t,r,e[r]);if(K)for(var r of K(e))Ae.call(e,r)&&J(t,r,e[r]);return t};const Re={[u.directiveHooks.mounted](t,e){var r,o;const a=(o=(r=e.arg)==null?void 0:r.split(","))!=null?o:!0;if(typeof e.value=="function")F(a,e.value,{target:t});else{const[i,l]=e.value;F(a,i,Ne({target:t},l))}}},He=500;function N(t,e,r){var o,a;const i=n.computed(()=>h(t));let l;function c(){l&&(clearTimeout(l),l=void 0)}function d(_){var m,w,v,g;((m=r==null?void 0:r.modifiers)==null?void 0:m.self)&&_.target!==i.value||(c(),((w=r==null?void 0:r.modifiers)==null?void 0:w.prevent)&&_.preventDefault(),((v=r==null?void 0:r.modifiers)==null?void 0:v.stop)&&_.stopPropagation(),l=setTimeout(()=>e(_),(g=r==null?void 0:r.delay)!=null?g:He))}const p={capture:(o=r==null?void 0:r.modifiers)==null?void 0:o.capture,once:(a=r==null?void 0:r.modifiers)==null?void 0:a.once};$(i,"pointerdown",d,p),$(i,"pointerup",c,p),$(i,"pointerleave",c,p)}const ze=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return N(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}}),G={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?N(t,e.value,{modifiers:e.modifiers}):N(t,...e.value)}},Be=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:f.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),ke=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(f.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),We=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(f.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),R=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},H="__vueuse_ssr_handlers__";R[H]=R[H]||{};const Fe=R[H];function q(t,e){return Fe[t]||e}function Ke(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"||Array.isArray(t)?"object":Number.isNaN(t)?"any":"number"}var Je=Object.defineProperty,Q=Object.getOwnPropertySymbols,Ge=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable,X=(t,e,r)=>e in t?Je(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Y=(t,e)=>{for(var r in e||(e={}))Ge.call(e,r)&&X(t,r,e[r]);if(Q)for(var r of Q(e))qe.call(e,r)&&X(t,r,e[r]);return t};const Qe={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}};function Xe(t,e,r,o={}){var a;const{flush:i="pre",deep:l=!0,listenToStorageChanges:c=!0,writeDefaults:d=!0,mergeDefaults:p=!1,shallow:_,window:m=b,eventFilter:w,onError:v=O=>{console.error(O)}}=o,g=(_?n.shallowRef:n.ref)(e);if(!r)try{r=q("getDefaultStorage",()=>{var O;return(O=b)==null?void 0:O.localStorage})()}catch(O){v(O)}if(!r)return g;const P=u.resolveUnref(e),U=Ke(P),C=(a=o.serializer)!=null?a:Qe[U],{pause:L,resume:y}=u.pausableWatch(g,()=>S(g.value),{flush:i,deep:l,eventFilter:w});return m&&c&&$(m,"storage",j),j(),g;function S(O){try{O==null?r.removeItem(t):r.setItem(t,C.write(O))}catch(I){v(I)}}function E(O){if(!(O&&O.key!==t)){L();try{const I=O?O.newValue:r.getItem(t);if(I==null)return d&&P!==null&&r.setItem(t,C.write(P)),P;if(!O&&p){const A=C.read(I);return u.isFunction(p)?p(A,P):U==="object"&&!Array.isArray(A)?Y(Y({},P),A):A}else return typeof I!="string"?I:C.read(I)}catch(I){v(I)}finally{y()}}}function j(O){O&&O.key!==t||(g.value=E(O))}}function z(t,e=!1){const r=n.ref(),o=()=>r.value=Boolean(t());return o(),u.tryOnMounted(o,e),r}function Ye(t,e={}){const{window:r=b}=e,o=z(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let a;const i=n.ref(!1),l=()=>{!a||("removeEventListener"in a?a.removeEventListener("change",c):a.removeListener(c))},c=()=>{!o.value||(l(),a=r.matchMedia(u.resolveRef(t).value),i.value=a.matches,"addEventListener"in a?a.addEventListener("change",c):a.addListener(c))};return n.watchEffect(c),u.tryOnScopeDispose(()=>l()),i}function Ze(t){return Ye("(prefers-color-scheme: dark)",t)}var xe=Object.defineProperty,Z=Object.getOwnPropertySymbols,De=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable,x=(t,e,r)=>e in t?xe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,tt=(t,e)=>{for(var r in e||(e={}))De.call(e,r)&&x(t,r,e[r]);if(Z)for(var r of Z(e))et.call(e,r)&&x(t,r,e[r]);return t};function rt(t={}){const{selector:e="html",attribute:r="class",initialValue:o="auto",window:a=b,storage:i,storageKey:l="vueuse-color-scheme",listenToStorageChanges:c=!0,storageRef:d,emitAuto:p}=t,_=tt({auto:"",light:"light",dark:"dark"},t.modes||{}),m=Ze({window:a}),w=n.computed(()=>m.value?"dark":"light"),v=d||(l==null?n.ref(o):Xe(l,o,i,{window:a,listenToStorageChanges:c})),g=n.computed({get(){return v.value==="auto"&&!p?w.value:v.value},set(L){v.value=L}}),P=q("updateHTMLAttrs",(L,y,S)=>{const E=a==null?void 0:a.document.querySelector(L);if(!!E)if(y==="class"){const j=S.split(/\s/g);Object.values(_).flatMap(O=>(O||"").split(/\s/g)).filter(Boolean).forEach(O=>{j.includes(O)?E.classList.add(O):E.classList.remove(O)})}else E.setAttribute(y,S)});function U(L){var y;const S=L==="auto"?w.value:L;P(e,r,(y=_[S])!=null?y:S)}function C(L){t.onChanged?t.onChanged(L,U):U(L)}return n.watch(g,C,{flush:"post",immediate:!0}),p&&n.watch(w,()=>C(g.value),{flush:"post"}),u.tryOnMounted(()=>C(g.value)),g}const nt=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(t,{slots:e}){const r=rt(t),o=n.reactive({mode:r});return()=>{if(e.default)return e.default(o)}}}),ot=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=f.useDark(t),o=n.reactive({isDark:r,toggleDark:u.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),at=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(f.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),st=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(f.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),lt=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:f.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),it=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(f.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),ut=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:f.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var ct=Object.defineProperty,ft=Object.defineProperties,dt=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,pt=Object.prototype.hasOwnProperty,vt=Object.prototype.propertyIsEnumerable,ee=(t,e,r)=>e in t?ct(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,_t=(t,e)=>{for(var r in e||(e={}))pt.call(e,r)&&ee(t,r,e[r]);if(D)for(var r of D(e))vt.call(e,r)&&ee(t,r,e[r]);return t},gt=(t,e)=>ft(t,dt(e));const Ot=n.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","stopPropagation","pointerTypes","as","handle"],setup(t,{slots:e}){const r=n.ref(),o=n.computed(()=>{var l;return(l=t.handle)!=null?l:r.value}),a=t.storageKey?f.useStorage(t.storageKey,u.resolveUnref(t.initialValue)||{x:0,y:0},f.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0):t.initialValue||{x:0,y:0},i=n.reactive(f.useDraggable(r,gt(_t({},t),{handle:o,initialValue:a})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${i.style}`},e.default(i))}}}),mt=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(f.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function Pt(t){const e=n.ref(!1);return $(t,"mouseenter",()=>e.value=!0),$(t,"mouseleave",()=>e.value=!1),e}const yt={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=Pt(t);n.watch(r,o=>e.value(o))}}},ht=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(f.useElementSize(r,{width:t.width,height:t.height},{box:t.box}));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var te=Object.getOwnPropertySymbols,wt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable,Ut=(t,e)=>{var r={};for(var o in t)wt.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&te)for(var o of te(t))e.indexOf(o)<0&&bt.call(t,o)&&(r[o]=t[o]);return r};function St(t,e,r={}){const o=r,{window:a=b}=o,i=Ut(o,["window"]);let l;const c=z(()=>a&&"ResizeObserver"in a),d=()=>{l&&(l.disconnect(),l=void 0)},p=n.watch(()=>h(t),m=>{d(),c.value&&a&&m&&(l=new ResizeObserver(e),l.observe(m,i))},{immediate:!0,flush:"post"}),_=()=>{d(),p()};return u.tryOnScopeDispose(_),{isSupported:c,stop:_}}function $t(t,e={width:0,height:0},r={}){const{box:o="content-box"}=r,a=n.ref(e.width),i=n.ref(e.height);return St(t,([l])=>{const c=o==="border-box"?l.borderBoxSize:o==="content-box"?l.contentBoxSize:l.devicePixelContentBoxSize;c?(a.value=c.reduce((d,{inlineSize:p})=>d+p,0),i.value=c.reduce((d,{blockSize:p})=>d+p,0)):(a.value=l.contentRect.width,i.value=l.contentRect.height)},r),n.watch(()=>h(t),l=>{a.value=l?e.width:0,i.value=l?e.height:0}),{width:a,height:i}}const Ct={[u.directiveHooks.mounted](t,e){var r;const o=typeof e.value=="function"?e.value:(r=e.value)==null?void 0:r[0],a=typeof e.value=="function"?[]:e.value.slice(1),{width:i,height:l}=$t(t,...a);n.watch([i,l],([c,d])=>o({width:c,height:d}))}},Et=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:f.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function re(t,{window:e=b,scrollTarget:r}={}){const o=n.ref(!1),a=()=>{if(!e)return;const i=e.document,l=h(t);if(!l)o.value=!1;else{const c=l.getBoundingClientRect();o.value=c.top<=(e.innerHeight||i.documentElement.clientHeight)&&c.left<=(e.innerWidth||i.documentElement.clientWidth)&&c.bottom>=0&&c.right>=0}};return n.watch(()=>h(t),()=>a(),{immediate:!0,flush:"post"}),e&&$(r||e,"scroll",a,{capture:!1,passive:!0}),o}const jt={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=re(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=re(t,o);n.watch(a,i=>r(i),{immediate:!0})}}},Lt=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(f.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),It=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(f.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Mt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(f.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),Vt=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(f.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});function Tt(t,e,r){const{immediate:o=!0,delay:a=0,onError:i=u.noop,resetOnExecute:l=!0,shallow:c=!0,throwError:d}=r??{},p=c?n.shallowRef(e):n.ref(e),_=n.ref(!1),m=n.ref(!1),w=n.ref(void 0);async function v(g=0,...P){l&&(p.value=e),w.value=void 0,_.value=!1,m.value=!0,g>0&&await u.promiseTimeout(g);const U=typeof t=="function"?t(...P):t;try{const C=await U;p.value=C,_.value=!0}catch(C){if(w.value=C,i(C),d)throw w}finally{m.value=!1}return p.value}return o&&v(a),{state:p,isReady:_,isLoading:m,error:w,execute:v}}var At=Object.defineProperty,ne=Object.getOwnPropertySymbols,Nt=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,oe=(t,e,r)=>e in t?At(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ht=(t,e)=>{for(var r in e||(e={}))Nt.call(e,r)&&oe(t,r,e[r]);if(ne)for(var r of ne(e))Rt.call(e,r)&&oe(t,r,e[r]);return t};async function zt(t){return new Promise((e,r)=>{const o=new Image,{src:a,srcset:i,sizes:l}=t;o.src=a,i&&(o.srcset=i),l&&(o.sizes=l),o.onload=()=>e(o),o.onerror=r})}const Bt=(t,e={})=>{const r=Tt(()=>zt(u.resolveUnref(t)),void 0,Ht({resetOnExecute:!0},e));return n.watch(()=>u.resolveUnref(t),()=>r.execute(e.delay),{deep:!0}),r},kt=n.defineComponent({name:"UseImage",props:["src","srcset","sizes","as"],setup(t,{slots:e}){const r=n.reactive(Bt(t));return()=>r.isLoading&&e.loading?e.loading(r):r.error&&e.error?e.error(r.error):e.default?e.default(r):n.h(t.as||"img",t)}}),ae=1;function B(t,e={}){const{throttle:r=0,idle:o=200,onStop:a=u.noop,onScroll:i=u.noop,offset:l={left:0,right:0,top:0,bottom:0},eventListenerOptions:c={capture:!1,passive:!0},behavior:d="auto"}=e,p=n.ref(0),_=n.ref(0),m=n.computed({get(){return p.value},set(y){v(y,void 0)}}),w=n.computed({get(){return _.value},set(y){v(void 0,y)}});function v(y,S){var E,j,O;const I=u.resolveUnref(t);!I||(O=I instanceof Document?document.body:I)==null||O.scrollTo({top:(E=u.resolveUnref(S))!=null?E:w.value,left:(j=u.resolveUnref(y))!=null?j:m.value,behavior:u.resolveUnref(d)})}const g=n.ref(!1),P=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),U=n.reactive({left:!1,right:!1,top:!1,bottom:!1}),C=u.useDebounceFn(y=>{g.value=!1,U.left=!1,U.right=!1,U.top=!1,U.bottom=!1,a(y)},r+o),L=y=>{const S=y.target===document?y.target.documentElement:y.target,E=S.scrollLeft;U.left=E<p.value,U.right=E>_.value,P.left=E<=0+(l.left||0),P.right=E+S.clientWidth>=S.scrollWidth-(l.right||0)-ae,p.value=E;let j=S.scrollTop;y.target===document&&!j&&(j=document.body.scrollTop),U.top=j<_.value,U.bottom=j>_.value,P.top=j<=0+(l.top||0),P.bottom=j+S.clientHeight>=S.scrollHeight-(l.bottom||0)-ae,_.value=j,g.value=!0,C(y),i(y)};return $(t,"scroll",r?u.useThrottleFn(L,r):L,c),{x:m,y:w,isScrolling:g,arrivedState:P,directions:U}}var Wt=Object.defineProperty,Ft=Object.defineProperties,Kt=Object.getOwnPropertyDescriptors,se=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,Gt=Object.prototype.propertyIsEnumerable,le=(t,e,r)=>e in t?Wt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ie=(t,e)=>{for(var r in e||(e={}))Jt.call(e,r)&&le(t,r,e[r]);if(se)for(var r of se(e))Gt.call(e,r)&&le(t,r,e[r]);return t},qt=(t,e)=>Ft(t,Kt(e));function ue(t,e,r={}){var o,a;const i=(o=r.direction)!=null?o:"bottom",l=n.reactive(B(t,qt(ie({},r),{offset:ie({[i]:(a=r.distance)!=null?a:0},r.offset)})));n.watch(()=>l.arrivedState[i],async c=>{var d,p;if(c){const _=u.resolveUnref(t),m={height:(d=_==null?void 0:_.scrollHeight)!=null?d:0,width:(p=_==null?void 0:_.scrollWidth)!=null?p:0};await e(l),r.preserveScrollPosition&&_&&n.nextTick(()=>{_.scrollTo({top:_.scrollHeight-m.height,left:_.scrollWidth-m.width})})}})}const Qt={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?ue(t,e.value):ue(t,...e.value)}};function ce(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:i=.1,window:l=b}=r,c=z(()=>l&&"IntersectionObserver"in l);let d=u.noop;const p=c.value?n.watch(()=>({el:h(t),root:h(o)}),({el:m,root:w})=>{if(d(),!m)return;const v=new IntersectionObserver(e,{root:w,rootMargin:a,threshold:i});v.observe(m),d=()=>{v.disconnect(),d=u.noop}},{immediate:!0,flush:"post"}):u.noop,_=()=>{d(),p()};return u.tryOnScopeDispose(_),{isSupported:c,stop:_}}const Xt={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?ce(t,e.value):ce(t,...e.value)}},Yt=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(f.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),Zt=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(f.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var xt=Object.defineProperty,Dt=Object.defineProperties,er=Object.getOwnPropertyDescriptors,fe=Object.getOwnPropertySymbols,tr=Object.prototype.hasOwnProperty,rr=Object.prototype.propertyIsEnumerable,de=(t,e,r)=>e in t?xt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,nr=(t,e)=>{for(var r in e||(e={}))tr.call(e,r)&&de(t,r,e[r]);if(fe)for(var r of fe(e))rr.call(e,r)&&de(t,r,e[r]);return t},or=(t,e)=>Dt(t,er(e));const ar=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(f.useMousePressed(or(nr({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),sr=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(f.useNetwork());return()=>{if(e.default)return e.default(r)}}});var lr=Object.defineProperty,ir=Object.defineProperties,ur=Object.getOwnPropertyDescriptors,pe=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,fr=Object.prototype.propertyIsEnumerable,ve=(t,e,r)=>e in t?lr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,dr=(t,e)=>{for(var r in e||(e={}))cr.call(e,r)&&ve(t,r,e[r]);if(pe)for(var r of pe(e))fr.call(e,r)&&ve(t,r,e[r]);return t},pr=(t,e)=>ir(t,ur(e));const vr=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(f.useNow(pr(dr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),_r=n.defineComponent({name:"UseObjectUrl",props:["object"],setup(t,{slots:e}){const r=n.toRef(t,"object"),o=f.useObjectUrl(r);return()=>{if(e.default&&o.value)return e.default(o)}}});var gr=Object.defineProperty,Or=Object.defineProperties,mr=Object.getOwnPropertyDescriptors,_e=Object.getOwnPropertySymbols,Pr=Object.prototype.hasOwnProperty,yr=Object.prototype.propertyIsEnumerable,ge=(t,e,r)=>e in t?gr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,hr=(t,e)=>{for(var r in e||(e={}))Pr.call(e,r)&&ge(t,r,e[r]);if(_e)for(var r of _e(e))yr.call(e,r)&&ge(t,r,e[r]);return t},wr=(t,e)=>Or(t,mr(e));const br=n.defineComponent({name:"UseOffsetPagination",props:["total","page","pageSize","onPageChange","onPageSizeChange","onPageCountChange"],emits:["page-change","page-size-change","page-count-change"],setup(t,{slots:e,emit:r}){const o=n.reactive(f.useOffsetPagination(wr(hr({},t),{onPageChange(...a){var i;(i=t.onPageChange)==null||i.call(t,...a),r("page-change",...a)},onPageSizeChange(...a){var i;(i=t.onPageSizeChange)==null||i.call(t,...a),r("page-size-change",...a)},onPageCountChange(...a){var i;(i=t.onPageCountChange)==null||i.call(t,...a),r("page-count-change",...a)}})));return()=>{if(e.default)return e.default(o)}}}),Ur=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:f.useOnline()});return()=>{if(e.default)return e.default(r)}}}),Sr=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:f.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var $r=Object.defineProperty,Cr=Object.defineProperties,Er=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,jr=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,me=(t,e,r)=>e in t?$r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ir=(t,e)=>{for(var r in e||(e={}))jr.call(e,r)&&me(t,r,e[r]);if(Oe)for(var r of Oe(e))Lr.call(e,r)&&me(t,r,e[r]);return t},Mr=(t,e)=>Cr(t,Er(e));const Vr=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(f.usePointer(Mr(Ir({},t),{target:t.target==="self"?r:b})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),Tr=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:f.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),Ar=n.defineComponent({name:"UsePreferredContrast",setup(t,{slots:e}){const r=n.reactive({contrast:f.usePreferredContrast()});return()=>{if(e.default)return e.default(r)}}}),Nr=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:f.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),Rr=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:f.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}}),Hr=n.defineComponent({name:"UsePreferredReducedMotion",setup(t,{slots:e}){const r=n.reactive({motion:f.usePreferredReducedMotion()});return()=>{if(e.default)return e.default(r)}}});function V(t,e,{window:r=b,initialValue:o=""}={}){const a=n.ref(o),i=n.computed(()=>{var l;return h(e)||((l=r==null?void 0:r.document)==null?void 0:l.documentElement)});return n.watch([i,()=>u.resolveUnref(t)],([l,c])=>{var d;if(l&&r){const p=(d=r.getComputedStyle(l).getPropertyValue(c))==null?void 0:d.trim();a.value=p||o}},{immediate:!0}),n.watch(a,l=>{var c;((c=i.value)==null?void 0:c.style)&&i.value.style.setProperty(u.resolveUnref(t),l)}),a}const Pe="--vueuse-safe-area-top",ye="--vueuse-safe-area-right",he="--vueuse-safe-area-bottom",we="--vueuse-safe-area-left";function zr(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(u.isClient){const i=V(Pe),l=V(ye),c=V(he),d=V(we);i.value="env(safe-area-inset-top, 0px)",l.value="env(safe-area-inset-right, 0px)",c.value="env(safe-area-inset-bottom, 0px)",d.value="env(safe-area-inset-left, 0px)",a(),$("resize",u.useDebounceFn(a))}function a(){t.value=T(Pe),e.value=T(ye),r.value=T(he),o.value=T(we)}return{top:t,right:e,bottom:r,left:o,update:a}}function T(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const Br=n.defineComponent({name:"UseScreenSafeArea",props:{top:Boolean,right:Boolean,bottom:Boolean,left:Boolean},setup(t,{slots:e}){const{top:r,right:o,bottom:a,left:i}=zr();return()=>{if(e.default)return n.h("div",{style:{paddingTop:t.top?r.value:"",paddingRight:t.right?o.value:"",paddingBottom:t.bottom?a.value:"",paddingLeft:t.left?i.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var kr=Object.defineProperty,Wr=Object.defineProperties,Fr=Object.getOwnPropertyDescriptors,be=Object.getOwnPropertySymbols,Kr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Ue=(t,e,r)=>e in t?kr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Gr=(t,e)=>{for(var r in e||(e={}))Kr.call(e,r)&&Ue(t,r,e[r]);if(be)for(var r of be(e))Jr.call(e,r)&&Ue(t,r,e[r]);return t},qr=(t,e)=>Wr(t,Fr(e));const Qr={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=B(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=B(t,qr(Gr({},o),{onScroll(i){var l;(l=o.onScroll)==null||l.call(o,i),r(a)},onStop(i){var l;(l=o.onStop)==null||l.call(o,i),r(a)}}))}}};function Xr(t){const e=t||window.event;return e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}function Yr(t,e=!1){const r=n.ref(e);let o=null,a;n.watch(u.resolveRef(t),c=>{if(c){const d=c;a=d.style.overflow,r.value&&(d.style.overflow="hidden")}},{immediate:!0});const i=()=>{const c=u.resolveUnref(t);!c||r.value||(u.isIOS&&(o=$(c,"touchmove",Xr,{passive:!1})),c.style.overflow="hidden",r.value=!0)},l=()=>{const c=u.resolveUnref(t);!c||!r.value||(u.isIOS&&(o==null||o()),c.style.overflow=a,r.value=!1)};return u.tryOnScopeDispose(l),n.computed({get(){return r.value},set(c){c?i():l()}})}const Zr=(()=>{let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=Yr(r,o.value);n.watch(e,i=>a.value=i)}})();var xr=Object.defineProperty,Dr=Object.defineProperties,en=Object.getOwnPropertyDescriptors,Se=Object.getOwnPropertySymbols,tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable,$e=(t,e,r)=>e in t?xr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,nn=(t,e)=>{for(var r in e||(e={}))tn.call(e,r)&&$e(t,r,e[r]);if(Se)for(var r of Se(e))rn.call(e,r)&&$e(t,r,e[r]);return t},on=(t,e)=>Dr(t,en(e));const an=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages"],setup(t,{slots:e}){const r=n.reactive(f.useTimeAgo(()=>t.time,on(nn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var sn=Object.defineProperty,ln=Object.defineProperties,un=Object.getOwnPropertyDescriptors,Ce=Object.getOwnPropertySymbols,cn=Object.prototype.hasOwnProperty,fn=Object.prototype.propertyIsEnumerable,Ee=(t,e,r)=>e in t?sn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,dn=(t,e)=>{for(var r in e||(e={}))cn.call(e,r)&&Ee(t,r,e[r]);if(Ce)for(var r of Ce(e))fn.call(e,r)&&Ee(t,r,e[r]);return t},pn=(t,e)=>ln(t,un(e));const vn=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(f.useTimestamp(pn(dn({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var _n=Object.defineProperty,je=Object.getOwnPropertySymbols,gn=Object.prototype.hasOwnProperty,On=Object.prototype.propertyIsEnumerable,Le=(t,e,r)=>e in t?_n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ie=(t,e)=>{for(var r in e||(e={}))gn.call(e,r)&&Le(t,r,e[r]);if(je)for(var r of je(e))On.call(e,r)&&Le(t,r,e[r]);return t};const mn=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e}){const{list:r}=n.toRefs(t),{list:o,containerProps:a,wrapperProps:i}=f.useVirtualList(r,t.options);return a.style.height=t.height||"300px",()=>n.h("div",Ie({},a),[n.h("div",Ie({},i.value),o.value.map(l=>n.h("div",{style:{overFlow:"hidden",height:l.height}},e.default?e.default(l):"Please set content!")))])}}),Pn=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:f.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),yn=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(f.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});s.OnClickOutside=M,s.OnLongPress=ze,s.UseActiveElement=Be,s.UseBattery=ke,s.UseBrowserLocation=We,s.UseColorMode=nt,s.UseDark=ot,s.UseDeviceMotion=at,s.UseDeviceOrientation=st,s.UseDevicePixelRatio=lt,s.UseDevicesList=it,s.UseDocumentVisibility=ut,s.UseDraggable=Ot,s.UseElementBounding=mt,s.UseElementSize=ht,s.UseElementVisibility=Et,s.UseEyeDropper=Lt,s.UseFullscreen=It,s.UseGeolocation=Mt,s.UseIdle=Vt,s.UseImage=kt,s.UseMouse=Yt,s.UseMouseInElement=Zt,s.UseMousePressed=ar,s.UseNetwork=sr,s.UseNow=vr,s.UseObjectUrl=_r,s.UseOffsetPagination=br,s.UseOnline=Ur,s.UsePageLeave=Sr,s.UsePointer=Vr,s.UsePreferredColorScheme=Tr,s.UsePreferredContrast=Ar,s.UsePreferredDark=Nr,s.UsePreferredLanguages=Rr,s.UsePreferredReducedMotion=Hr,s.UseScreenSafeArea=Br,s.UseTimeAgo=an,s.UseTimestamp=vn,s.UseVirtualList=mn,s.UseWindowFocus=Pn,s.UseWindowSize=yn,s.VOnClickOutside=W,s.VOnLongPress=G,s.vElementHover=yt,s.vElementSize=Ct,s.vElementVisibility=jt,s.vInfiniteScroll=Qt,s.vIntersectionObserver=Xt,s.vOnClickOutside=W,s.vOnKeyStroke=Re,s.vOnLongPress=G,s.vScroll=Qr,s.vScrollLock=Zr,Object.defineProperty(s,"__esModule",{value:!0})})(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
package/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { defineComponent, ref, h, watch, computed, reactive, shallowRef, nextTick, toRef, toRefs } from 'vue-demi';
1
+ import { defineComponent, ref, h, watch, computed, reactive, shallowRef, watchEffect, nextTick, toRef, toRefs } from 'vue-demi';
2
2
  import { onClickOutside as onClickOutside$1, useActiveElement, useBattery, useBrowserLocation, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useStorage as useStorage$1, isClient as isClient$1, useDraggable, useElementBounding, useElementSize as useElementSize$1, useElementVisibility as useElementVisibility$1, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePreferredColorScheme, usePreferredContrast, usePreferredDark as usePreferredDark$1, usePreferredLanguages, usePreferredReducedMotion, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';
3
- import { resolveUnref, isClient, isString, noop, tryOnScopeDispose, directiveHooks, pausableWatch, isFunction, tryOnMounted, tryOnBeforeMount, useToggle, promiseTimeout, useDebounceFn, useThrottleFn, resolveRef, isIOS } from '@vueuse/shared';
3
+ import { resolveUnref, isClient, isString, noop, tryOnScopeDispose, directiveHooks, pausableWatch, isFunction, tryOnMounted, resolveRef, useToggle, promiseTimeout, useDebounceFn, useThrottleFn, isIOS } from '@vueuse/shared';
4
4
 
5
5
  const OnClickOutside = defineComponent({
6
6
  name: "OnClickOutside",
@@ -67,23 +67,21 @@ function onClickOutside(target, handler, options = {}) {
67
67
  const listener = (event) => {
68
68
  window.clearTimeout(fallback);
69
69
  const el = unrefElement(target);
70
- const composedPath = event.composedPath();
71
- if (!el || el === event.target || composedPath.includes(el) || !shouldListen.value)
70
+ if (!el || el === event.target || event.composedPath().includes(el) || !shouldListen.value)
72
71
  return;
73
- if (ignore && ignore.length > 0) {
74
- if (ignore.some((target2) => {
75
- const el2 = unrefElement(target2);
76
- return el2 && (event.target === el2 || composedPath.includes(el2));
77
- }))
78
- return;
79
- }
80
72
  handler(event);
81
73
  };
74
+ const shouldIgnore = (event) => {
75
+ return ignore && ignore.some((target2) => {
76
+ const el = unrefElement(target2);
77
+ return el && (event.target === el || event.composedPath().includes(el));
78
+ });
79
+ };
82
80
  const cleanup = [
83
81
  useEventListener(window, "click", listener, { passive: true, capture }),
84
82
  useEventListener(window, "pointerdown", (e) => {
85
83
  const el = unrefElement(target);
86
- shouldListen.value = !!el && !e.composedPath().includes(el);
84
+ shouldListen.value = !!el && !e.composedPath().includes(el) && !shouldIgnore(e);
87
85
  }, { passive: true }),
88
86
  useEventListener(window, "pointerup", (e) => {
89
87
  if (e.button === 0) {
@@ -103,18 +101,20 @@ function onClickOutside(target, handler, options = {}) {
103
101
  return stop;
104
102
  }
105
103
 
106
- const handler = () => {
107
- let stop = null;
108
- return (el, binding) => {
109
- if (stop) {
110
- stop();
111
- stop = onClickOutside(el, binding.value);
112
- return;
104
+ const vOnClickOutside = {
105
+ [directiveHooks.mounted](el, binding) {
106
+ const capture = !binding.modifiers.bubble;
107
+ if (typeof binding.value === "function") {
108
+ el.__onClickOutside_stop = onClickOutside(el, binding.value, { capture });
109
+ } else {
110
+ const [handler, options] = binding.value;
111
+ el.__onClickOutside_stop = onClickOutside(el, handler, Object.assign({ capture }, options));
113
112
  }
114
- stop = onClickOutside(el, binding.value);
115
- };
113
+ },
114
+ [directiveHooks.unmounted](el) {
115
+ el.__onClickOutside_stop();
116
+ }
116
117
  };
117
- const vOnClickOutside = handler();
118
118
 
119
119
  const createKeyPredicate = (keyFilter) => {
120
120
  if (typeof keyFilter === "function")
@@ -123,12 +123,29 @@ const createKeyPredicate = (keyFilter) => {
123
123
  return (event) => event.key === keyFilter;
124
124
  else if (Array.isArray(keyFilter))
125
125
  return (event) => keyFilter.includes(event.key);
126
- else if (keyFilter)
127
- return () => true;
128
- else
129
- return () => false;
126
+ return () => true;
130
127
  };
131
- function onKeyStroke(key, handler, options = {}) {
128
+ function onKeyStroke(...args) {
129
+ let key;
130
+ let handler;
131
+ let options = {};
132
+ if (args.length === 3) {
133
+ key = args[0];
134
+ handler = args[1];
135
+ options = args[2];
136
+ } else if (args.length === 2) {
137
+ if (typeof args[1] === "object") {
138
+ key = true;
139
+ handler = args[0];
140
+ options = args[1];
141
+ } else {
142
+ key = args[0];
143
+ handler = args[1];
144
+ }
145
+ } else {
146
+ key = true;
147
+ handler = args[0];
148
+ }
132
149
  const { target = defaultWindow, eventName = "keydown", passive = false } = options;
133
150
  const predicate = createKeyPredicate(key);
134
151
  const listener = (e) => {
@@ -157,7 +174,7 @@ var __spreadValues$d = (a, b) => {
157
174
  const vOnKeyStroke = {
158
175
  [directiveHooks.mounted](el, binding) {
159
176
  var _a, _b;
160
- const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
177
+ const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : true;
161
178
  if (typeof binding.value === "function") {
162
179
  onKeyStroke(keys, binding.value, {
163
180
  target: el
@@ -418,28 +435,27 @@ function useMediaQuery(query, options = {}) {
418
435
  const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function");
419
436
  let mediaQuery;
420
437
  const matches = ref(false);
438
+ const cleanup = () => {
439
+ if (!mediaQuery)
440
+ return;
441
+ if ("removeEventListener" in mediaQuery)
442
+ mediaQuery.removeEventListener("change", update);
443
+ else
444
+ mediaQuery.removeListener(update);
445
+ };
421
446
  const update = () => {
422
447
  if (!isSupported.value)
423
448
  return;
424
- if (!mediaQuery)
425
- mediaQuery = window.matchMedia(query);
449
+ cleanup();
450
+ mediaQuery = window.matchMedia(resolveRef(query).value);
426
451
  matches.value = mediaQuery.matches;
427
- };
428
- tryOnBeforeMount(() => {
429
- update();
430
- if (!mediaQuery)
431
- return;
432
452
  if ("addEventListener" in mediaQuery)
433
453
  mediaQuery.addEventListener("change", update);
434
454
  else
435
455
  mediaQuery.addListener(update);
436
- tryOnScopeDispose(() => {
437
- if ("removeEventListener" in mediaQuery)
438
- mediaQuery.removeEventListener("change", update);
439
- else
440
- mediaQuery.removeListener(update);
441
- });
442
- });
456
+ };
457
+ watchEffect(update);
458
+ tryOnScopeDispose(() => cleanup());
443
459
  return matches;
444
460
  }
445
461
 
@@ -1011,10 +1027,38 @@ function useScroll(element, options = {}) {
1011
1027
  eventListenerOptions = {
1012
1028
  capture: false,
1013
1029
  passive: true
1014
- }
1030
+ },
1031
+ behavior = "auto"
1015
1032
  } = options;
1016
- const x = ref(0);
1017
- const y = ref(0);
1033
+ const internalX = ref(0);
1034
+ const internalY = ref(0);
1035
+ const x = computed({
1036
+ get() {
1037
+ return internalX.value;
1038
+ },
1039
+ set(x2) {
1040
+ scrollTo(x2, void 0);
1041
+ }
1042
+ });
1043
+ const y = computed({
1044
+ get() {
1045
+ return internalY.value;
1046
+ },
1047
+ set(y2) {
1048
+ scrollTo(void 0, y2);
1049
+ }
1050
+ });
1051
+ function scrollTo(_x, _y) {
1052
+ var _a, _b, _c;
1053
+ const _element = resolveUnref(element);
1054
+ if (!_element)
1055
+ return;
1056
+ (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({
1057
+ top: (_a = resolveUnref(_y)) != null ? _a : y.value,
1058
+ left: (_b = resolveUnref(_x)) != null ? _b : x.value,
1059
+ behavior: resolveUnref(behavior)
1060
+ });
1061
+ }
1018
1062
  const isScrolling = ref(false);
1019
1063
  const arrivedState = reactive({
1020
1064
  left: true,
@@ -1039,19 +1083,19 @@ function useScroll(element, options = {}) {
1039
1083
  const onScrollHandler = (e) => {
1040
1084
  const eventTarget = e.target === document ? e.target.documentElement : e.target;
1041
1085
  const scrollLeft = eventTarget.scrollLeft;
1042
- directions.left = scrollLeft < x.value;
1043
- directions.right = scrollLeft > x.value;
1086
+ directions.left = scrollLeft < internalX.value;
1087
+ directions.right = scrollLeft > internalY.value;
1044
1088
  arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
1045
1089
  arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1046
- x.value = scrollLeft;
1090
+ internalX.value = scrollLeft;
1047
1091
  let scrollTop = eventTarget.scrollTop;
1048
1092
  if (e.target === document && !scrollTop)
1049
1093
  scrollTop = document.body.scrollTop;
1050
- directions.top = scrollTop < y.value;
1051
- directions.bottom = scrollTop > y.value;
1094
+ directions.top = scrollTop < internalY.value;
1095
+ directions.bottom = scrollTop > internalY.value;
1052
1096
  arrivedState.top = scrollTop <= 0 + (offset.top || 0);
1053
1097
  arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;
1054
- y.value = scrollTop;
1098
+ internalY.value = scrollTop;
1055
1099
  isScrolling.value = true;
1056
1100
  onScrollEnd(e);
1057
1101
  onScroll(e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vueuse/components",
3
- "version": "9.2.0",
3
+ "version": "9.3.0",
4
4
  "description": "Renderless components for VueUse",
5
5
  "author": "Jacob Clevenger<https://github.com/wheatjs>",
6
6
  "license": "MIT",
@@ -33,8 +33,8 @@
33
33
  "jsdelivr": "./index.iife.min.js",
34
34
  "types": "./index.d.ts",
35
35
  "dependencies": {
36
- "@vueuse/core": "9.2.0",
37
- "@vueuse/shared": "9.2.0",
36
+ "@vueuse/core": "9.3.0",
37
+ "@vueuse/shared": "9.3.0",
38
38
  "vue-demi": "*"
39
39
  }
40
40
  }