@vueuse/components 8.0.0 → 8.1.1

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
@@ -44,7 +44,7 @@ function useEventListener(...args) {
44
44
  if (!target)
45
45
  return shared.noop;
46
46
  let cleanup = shared.noop;
47
- const stopWatch = vueDemi.watch(() => vueDemi.unref(target), (el) => {
47
+ const stopWatch = vueDemi.watch(() => unrefElement(target), (el) => {
48
48
  cleanup();
49
49
  if (!el)
50
50
  return;
@@ -63,7 +63,7 @@ function useEventListener(...args) {
63
63
  }
64
64
 
65
65
  function onClickOutside(target, handler, options = {}) {
66
- const { window = defaultWindow, ignore } = options;
66
+ const { window = defaultWindow, ignore, capture = true } = options;
67
67
  if (!window)
68
68
  return;
69
69
  const shouldListen = vueDemi.ref(true);
@@ -82,7 +82,7 @@ function onClickOutside(target, handler, options = {}) {
82
82
  handler(event);
83
83
  };
84
84
  const cleanup = [
85
- useEventListener(window, "click", listener, { passive: true, capture: true }),
85
+ useEventListener(window, "click", listener, { passive: true, capture }),
86
86
  useEventListener(window, "pointerdown", (e) => {
87
87
  const el = unrefElement(target);
88
88
  shouldListen.value = !!el && !e.composedPath().includes(el);
@@ -143,18 +143,20 @@ var __spreadValues$b = (a, b) => {
143
143
  }
144
144
  return a;
145
145
  };
146
- const vOnKeyStroke = (el, binding) => {
147
- var _a, _b;
148
- const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
149
- if (typeof binding.value === "function") {
150
- onKeyStroke(keys, binding.value, {
151
- target: el
152
- });
153
- } else {
154
- const [handler, options] = binding.value;
155
- onKeyStroke(keys, handler, __spreadValues$b({
156
- target: el
157
- }, options));
146
+ const vOnKeyStroke = {
147
+ [shared.directiveHooks.mounted](el, binding) {
148
+ var _a, _b;
149
+ const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
150
+ if (typeof binding.value === "function") {
151
+ onKeyStroke(keys, binding.value, {
152
+ target: el
153
+ });
154
+ } else {
155
+ const [handler, options] = binding.value;
156
+ onKeyStroke(keys, handler, __spreadValues$b({
157
+ target: el
158
+ }, options));
159
+ }
158
160
  }
159
161
  };
160
162
 
@@ -306,6 +308,7 @@ function useStorage(key, initialValue, storage, options = {}) {
306
308
  onError(e);
307
309
  }
308
310
  }
311
+ let synced = false;
309
312
  function read(event) {
310
313
  if (!storage || event && event.key !== key)
311
314
  return;
@@ -325,8 +328,17 @@ function useStorage(key, initialValue, storage, options = {}) {
325
328
  }
326
329
  }
327
330
  read();
328
- if (window && listenToStorageChanges)
329
- useEventListener(window, "storage", (e) => setTimeout(() => read(e), 0));
331
+ if (window && listenToStorageChanges) {
332
+ useEventListener(window, "storage", (e) => {
333
+ setTimeout(() => {
334
+ if (synced) {
335
+ synced = false;
336
+ return;
337
+ }
338
+ read(e);
339
+ }, 0);
340
+ });
341
+ }
330
342
  if (storage) {
331
343
  shared.watchWithFilter(data, () => {
332
344
  try {
@@ -334,6 +346,7 @@ function useStorage(key, initialValue, storage, options = {}) {
334
346
  storage.removeItem(key);
335
347
  else
336
348
  storage.setItem(key, serializer.write(data.value));
349
+ synced = true;
337
350
  } catch (e) {
338
351
  onError(e);
339
352
  }
@@ -366,7 +379,7 @@ function useMediaQuery(query, options = {}) {
366
379
  else
367
380
  mediaQuery.addListener(update);
368
381
  shared.tryOnScopeDispose(() => {
369
- if ("removeEventListener" in update)
382
+ if ("removeEventListener" in mediaQuery)
370
383
  mediaQuery.removeEventListener("change", update);
371
384
  else
372
385
  mediaQuery.removeListener(update);
@@ -606,10 +619,12 @@ function useElementHover(el) {
606
619
  return isHovered;
607
620
  }
608
621
 
609
- const vElementHover = (el, binding) => {
610
- if (typeof binding.value === "function") {
611
- const isHovered = useElementHover(el);
612
- vueDemi.watch(isHovered, (v) => binding.value(v));
622
+ const vElementHover = {
623
+ [shared.directiveHooks.mounted](el, binding) {
624
+ if (typeof binding.value === "function") {
625
+ const isHovered = useElementHover(el);
626
+ vueDemi.watch(isHovered, (v) => binding.value(v));
627
+ }
613
628
  }
614
629
  };
615
630
 
@@ -654,7 +669,7 @@ function useResizeObserver(target, callback, options = {}) {
654
669
  const stopWatch = vueDemi.watch(() => unrefElement(target), (el) => {
655
670
  cleanup();
656
671
  if (isSupported && window && el) {
657
- observer = new window.ResizeObserver(callback);
672
+ observer = new ResizeObserver(callback);
658
673
  observer.observe(el, observerOptions);
659
674
  }
660
675
  }, { immediate: true, flush: "post" });
@@ -686,12 +701,14 @@ function useElementSize(target, initialSize = { width: 0, height: 0 }, options =
686
701
  };
687
702
  }
688
703
 
689
- const vElementSize = (el, binding) => {
690
- var _a;
691
- const handler = typeof binding.value === "function" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];
692
- const options = typeof binding.value === "function" ? [] : binding.value.slice(1);
693
- const { width, height } = useElementSize(el, ...options);
694
- vueDemi.watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));
704
+ const vElementSize = {
705
+ [shared.directiveHooks.mounted](el, binding) {
706
+ var _a;
707
+ const handler = typeof binding.value === "function" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];
708
+ const options = typeof binding.value === "function" ? [] : binding.value.slice(1);
709
+ const { width, height } = useElementSize(el, ...options);
710
+ vueDemi.watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));
711
+ }
695
712
  };
696
713
 
697
714
  const UseElementVisibility = vueDemi.defineComponent({
@@ -709,6 +726,39 @@ const UseElementVisibility = vueDemi.defineComponent({
709
726
  }
710
727
  });
711
728
 
729
+ function useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {
730
+ const elementIsVisible = vueDemi.ref(false);
731
+ const testBounding = () => {
732
+ if (!window)
733
+ return;
734
+ const document = window.document;
735
+ if (!vueDemi.unref(element)) {
736
+ elementIsVisible.value = false;
737
+ } else {
738
+ const rect = vueDemi.unref(element).getBoundingClientRect();
739
+ elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;
740
+ }
741
+ };
742
+ shared.tryOnMounted(testBounding);
743
+ if (window)
744
+ shared.tryOnMounted(() => useEventListener(vueDemi.unref(scrollTarget) || window, "scroll", testBounding, { capture: false, passive: true }));
745
+ return elementIsVisible;
746
+ }
747
+
748
+ const vElementVisibility = {
749
+ [shared.directiveHooks.mounted](el, binding) {
750
+ if (typeof binding.value === "function") {
751
+ const handler = binding.value;
752
+ const isVisible = useElementVisibility(el);
753
+ vueDemi.watch(isVisible, (v) => handler(v), { immediate: true });
754
+ } else {
755
+ const [handler, options] = binding.value;
756
+ const isVisible = useElementVisibility(el, options);
757
+ vueDemi.watch(isVisible, (v) => handler(v), { immediate: true });
758
+ }
759
+ }
760
+ };
761
+
712
762
  const UseEyeDropper = vueDemi.defineComponent({
713
763
  name: "UseEyeDropper",
714
764
  props: {
@@ -862,11 +912,13 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
862
912
  });
863
913
  }
864
914
 
865
- const vInfiniteScroll = (el, binding) => {
866
- if (typeof binding.value === "function")
867
- useInfiniteScroll(el, binding.value);
868
- else
869
- useInfiniteScroll(el, ...binding.value);
915
+ const vInfiniteScroll = {
916
+ [shared.directiveHooks.mounted](el, binding) {
917
+ if (typeof binding.value === "function")
918
+ useInfiniteScroll(el, binding.value);
919
+ else
920
+ useInfiniteScroll(el, ...binding.value);
921
+ }
870
922
  };
871
923
 
872
924
  function useIntersectionObserver(target, callback, options = {}) {
@@ -885,7 +937,7 @@ function useIntersectionObserver(target, callback, options = {}) {
885
937
  cleanup();
886
938
  if (!el)
887
939
  return;
888
- const observer = new window.IntersectionObserver(callback, {
940
+ const observer = new IntersectionObserver(callback, {
889
941
  root: root2,
890
942
  rootMargin,
891
943
  threshold
@@ -907,11 +959,13 @@ function useIntersectionObserver(target, callback, options = {}) {
907
959
  };
908
960
  }
909
961
 
910
- const vIntersectionObserver = (el, binding) => {
911
- if (typeof binding.value === "function")
912
- useIntersectionObserver(el, binding.value);
913
- else
914
- useIntersectionObserver(el, ...binding.value);
962
+ const vIntersectionObserver = {
963
+ [shared.directiveHooks.mounted](el, binding) {
964
+ if (typeof binding.value === "function")
965
+ useIntersectionObserver(el, binding.value);
966
+ else
967
+ useIntersectionObserver(el, ...binding.value);
968
+ }
915
969
  };
916
970
 
917
971
  const UseMouse = vueDemi.defineComponent({
@@ -1285,31 +1339,33 @@ var __spreadValues$3 = (a, b) => {
1285
1339
  return a;
1286
1340
  };
1287
1341
  var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
1288
- const vScroll = (el, binding) => {
1289
- if (typeof binding.value === "function") {
1290
- const handler = binding.value;
1291
- const state = useScroll(el, {
1292
- onScroll() {
1293
- handler(state);
1294
- },
1295
- onStop() {
1296
- handler(state);
1297
- }
1298
- });
1299
- } else {
1300
- const [handler, options] = binding.value;
1301
- const state = useScroll(el, __spreadProps$2(__spreadValues$3({}, options), {
1302
- onScroll(e) {
1303
- var _a;
1304
- (_a = options.onScroll) == null ? void 0 : _a.call(options, e);
1305
- handler(state);
1306
- },
1307
- onStop(e) {
1308
- var _a;
1309
- (_a = options.onStop) == null ? void 0 : _a.call(options, e);
1310
- handler(state);
1311
- }
1312
- }));
1342
+ const vScroll = {
1343
+ [shared.directiveHooks.mounted](el, binding) {
1344
+ if (typeof binding.value === "function") {
1345
+ const handler = binding.value;
1346
+ const state = useScroll(el, {
1347
+ onScroll() {
1348
+ handler(state);
1349
+ },
1350
+ onStop() {
1351
+ handler(state);
1352
+ }
1353
+ });
1354
+ } else {
1355
+ const [handler, options] = binding.value;
1356
+ const state = useScroll(el, __spreadProps$2(__spreadValues$3({}, options), {
1357
+ onScroll(e) {
1358
+ var _a;
1359
+ (_a = options.onScroll) == null ? void 0 : _a.call(options, e);
1360
+ handler(state);
1361
+ },
1362
+ onStop(e) {
1363
+ var _a;
1364
+ (_a = options.onStop) == null ? void 0 : _a.call(options, e);
1365
+ handler(state);
1366
+ }
1367
+ }));
1368
+ }
1313
1369
  }
1314
1370
  };
1315
1371
 
@@ -1545,6 +1601,7 @@ exports.VOnClickOutside = vOnClickOutside;
1545
1601
  exports.VOnLongPress = vOnLongPress;
1546
1602
  exports.vElementHover = vElementHover;
1547
1603
  exports.vElementSize = vElementSize;
1604
+ exports.vElementVisibility = vElementVisibility;
1548
1605
  exports.vInfiniteScroll = vInfiniteScroll;
1549
1606
  exports.vIntersectionObserver = vIntersectionObserver;
1550
1607
  exports.vOnClickOutside = vOnClickOutside;
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as vue_demi from 'vue-demi';
2
- import { FunctionDirective, Ref, ComponentPublicInstance, UnwrapNestedRefs, ComputedRef } from 'vue-demi';
2
+ import { FunctionDirective, ObjectDirective, Ref, ComponentPublicInstance, UnwrapNestedRefs, ComputedRef } from 'vue-demi';
3
3
  import { MaybeRef, ConfigurableEventFilter, ConfigurableFlush } from '@vueuse/shared';
4
4
  import { UseDarkOptions, UseDevicesListOptions, UseDraggableOptions, ElementSize as ElementSize$1, GeolocationOptions, IdleOptions, MouseOptions, MouseInElementOptions, MousePressedOptions, UseNowOptions, MaybeRef as MaybeRef$1, UsePointerOptions, UseTimeAgoOptions, TimestampOptions, UseVirtualListOptions, WindowSizeOptions } from '@vueuse/core';
5
5
 
@@ -27,9 +27,9 @@ interface KeyStrokeOptions {
27
27
  passive?: boolean;
28
28
  }
29
29
 
30
- declare type BindingValueFunction$6 = (event: KeyboardEvent) => void;
31
- declare type BindingValueArray$5 = [BindingValueFunction$6, KeyStrokeOptions];
32
- declare const vOnKeyStroke: FunctionDirective<HTMLElement, BindingValueFunction$6 | BindingValueArray$5>;
30
+ declare type BindingValueFunction$7 = (event: KeyboardEvent) => void;
31
+ declare type BindingValueArray$6 = [BindingValueFunction$7, KeyStrokeOptions];
32
+ declare const vOnKeyStroke: ObjectDirective<HTMLElement, BindingValueFunction$7 | BindingValueArray$6>;
33
33
 
34
34
  interface OnLongPressOptions {
35
35
  /**
@@ -45,12 +45,12 @@ interface OnLongPressProps extends RenderableComponent {
45
45
  }
46
46
  declare const OnLongPress: vue_demi.DefineComponent<OnLongPressProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<OnLongPressProps>, {}>;
47
47
 
48
- declare type BindingValueFunction$5 = (evt: PointerEvent) => void;
49
- declare type BindingValueArray$4 = [
50
- BindingValueFunction$5,
48
+ declare type BindingValueFunction$6 = (evt: PointerEvent) => void;
49
+ declare type BindingValueArray$5 = [
50
+ BindingValueFunction$6,
51
51
  OnLongPressOptions
52
52
  ];
53
- declare const vOnLongPress: FunctionDirective<HTMLElement, BindingValueFunction$5 | BindingValueArray$4>;
53
+ declare const vOnLongPress: FunctionDirective<HTMLElement, BindingValueFunction$6 | BindingValueArray$5>;
54
54
 
55
55
  declare const UseActiveElement: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
56
56
  [key: string]: any;
@@ -195,7 +195,8 @@ interface UseDraggableProps extends UseDraggableOptions, RenderableComponent {
195
195
  declare const UseDraggable: vue_demi.DefineComponent<UseDraggableProps, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDraggableProps>, {}>;
196
196
 
197
197
  declare type VueInstance = ComponentPublicInstance;
198
- declare type MaybeElementRef = MaybeRef<HTMLElement | SVGElement | VueInstance | undefined | null>;
198
+ declare type MaybeElementRef<T extends MaybeElement = MaybeElement> = MaybeRef<T>;
199
+ declare type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;
199
200
 
200
201
  interface ResizeObserverOptions extends ConfigurableWindow {
201
202
  /**
@@ -209,8 +210,8 @@ interface ResizeObserverOptions extends ConfigurableWindow {
209
210
 
210
211
  declare const UseElementBounding: vue_demi.DefineComponent<ResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<ResizeObserverOptions & RenderableComponent>, {}>;
211
212
 
212
- declare type BindingValueFunction$4 = (state: boolean) => void;
213
- declare const vElementHover: FunctionDirective<HTMLElement, BindingValueFunction$4>;
213
+ declare type BindingValueFunction$5 = (state: boolean) => void;
214
+ declare const vElementHover: ObjectDirective<HTMLElement, BindingValueFunction$5>;
214
215
 
215
216
  declare const UseElementSize: vue_demi.DefineComponent<ElementSize$1 & ResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<ElementSize$1 & ResizeObserverOptions & RenderableComponent>, {}>;
216
217
 
@@ -232,13 +233,21 @@ declare function useElementSize(target: MaybeElementRef, initialSize?: ElementSi
232
233
  };
233
234
 
234
235
  declare type RemoveFirstFromTuple<T extends any[]> = T['length'] extends 0 ? undefined : (((...b: T) => void) extends (a: any, ...b: infer I) => void ? I : []);
235
- declare type BindingValueFunction$3 = (size: ElementSize) => void;
236
+ declare type BindingValueFunction$4 = (size: ElementSize) => void;
236
237
  declare type VElementSizeOptions = RemoveFirstFromTuple<Parameters<typeof useElementSize>>;
237
- declare type BindingValueArray$3 = [BindingValueFunction$3, ...VElementSizeOptions];
238
- declare const vElementSize: FunctionDirective<HTMLElement, BindingValueFunction$3 | BindingValueArray$3>;
238
+ declare type BindingValueArray$4 = [BindingValueFunction$4, ...VElementSizeOptions];
239
+ declare const vElementSize: ObjectDirective<HTMLElement, BindingValueFunction$4 | BindingValueArray$4>;
239
240
 
240
241
  declare const UseElementVisibility: vue_demi.DefineComponent<RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<RenderableComponent>, {}>;
241
242
 
243
+ interface VisibilityScrollTargetOptions extends ConfigurableWindow {
244
+ scrollTarget?: MaybeRef<Element | null | undefined>;
245
+ }
246
+
247
+ declare type BindingValueFunction$3 = (state: boolean) => void;
248
+ declare type BindingValueArray$3 = [BindingValueFunction$3, VisibilityScrollTargetOptions];
249
+ declare const vElementVisibility: ObjectDirective<HTMLElement, BindingValueFunction$3 | BindingValueArray$3>;
250
+
242
251
  declare const UseEyeDropper: vue_demi.DefineComponent<{
243
252
  sRGBHex: StringConstructor;
244
253
  }, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
@@ -341,7 +350,7 @@ declare function useInfiniteScroll(element: MaybeRef<HTMLElement | SVGElement |
341
350
 
342
351
  declare type BindingValueFunction$2 = Parameters<typeof useInfiniteScroll>[1];
343
352
  declare type BindingValueArray$2 = [BindingValueFunction$2, UseInfiniteScrollOptions];
344
- declare const vInfiniteScroll: FunctionDirective<HTMLElement, BindingValueFunction$2 | BindingValueArray$2>;
353
+ declare const vInfiniteScroll: ObjectDirective<HTMLElement, BindingValueFunction$2 | BindingValueArray$2>;
345
354
 
346
355
  interface IntersectionObserverOptions extends ConfigurableWindow {
347
356
  /**
@@ -360,7 +369,7 @@ interface IntersectionObserverOptions extends ConfigurableWindow {
360
369
 
361
370
  declare type BindingValueFunction$1 = IntersectionObserverCallback;
362
371
  declare type BindingValueArray$1 = [BindingValueFunction$1, IntersectionObserverOptions];
363
- declare const vIntersectionObserver: FunctionDirective<HTMLElement, BindingValueFunction$1 | BindingValueArray$1>;
372
+ declare const vIntersectionObserver: ObjectDirective<HTMLElement, BindingValueFunction$1 | BindingValueArray$1>;
364
373
 
365
374
  declare const UseMouse: vue_demi.DefineComponent<MouseOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<MouseOptions>, {}>;
366
375
 
@@ -461,7 +470,7 @@ declare const UseScreenSafeArea: vue_demi.DefineComponent<{
461
470
 
462
471
  declare type BindingValueFunction = (state: UseScrollReturn) => void;
463
472
  declare type BindingValueArray = [BindingValueFunction, UseScrollOptions];
464
- declare const vScroll: FunctionDirective<HTMLElement, BindingValueFunction | BindingValueArray>;
473
+ declare const vScroll: ObjectDirective<HTMLElement, BindingValueFunction | BindingValueArray>;
465
474
 
466
475
  declare const vScrollLock: FunctionDirective<HTMLElement, boolean>;
467
476
 
@@ -500,4 +509,4 @@ declare const UseWindowFocus: vue_demi.DefineComponent<{}, () => vue_demi.VNode<
500
509
 
501
510
  declare const UseWindowSize: vue_demi.DefineComponent<WindowSizeOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<WindowSizeOptions>, {}>;
502
511
 
503
- export { OnClickOutside, OnLongPress, OnLongPressProps, UseActiveElement, UseBattery, UseBrowserLocation, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseDraggableProps, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePreferredColorScheme, UsePreferredDark, UsePreferredLanguages, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseVirtualListProps, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vScroll, vScrollLock };
512
+ export { OnClickOutside, OnLongPress, OnLongPressProps, UseActiveElement, UseBattery, UseBrowserLocation, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseDraggableProps, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePreferredColorScheme, UsePreferredDark, UsePreferredLanguages, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseVirtualListProps, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vScroll, vScrollLock };
package/index.iife.js CHANGED
@@ -100,7 +100,7 @@
100
100
  if (!target)
101
101
  return shared.noop;
102
102
  let cleanup = shared.noop;
103
- const stopWatch = vueDemi.watch(() => vueDemi.unref(target), (el) => {
103
+ const stopWatch = vueDemi.watch(() => unrefElement(target), (el) => {
104
104
  cleanup();
105
105
  if (!el)
106
106
  return;
@@ -119,7 +119,7 @@
119
119
  }
120
120
 
121
121
  function onClickOutside(target, handler, options = {}) {
122
- const { window = defaultWindow, ignore } = options;
122
+ const { window = defaultWindow, ignore, capture = true } = options;
123
123
  if (!window)
124
124
  return;
125
125
  const shouldListen = vueDemi.ref(true);
@@ -138,7 +138,7 @@
138
138
  handler(event);
139
139
  };
140
140
  const cleanup = [
141
- useEventListener(window, "click", listener, { passive: true, capture: true }),
141
+ useEventListener(window, "click", listener, { passive: true, capture }),
142
142
  useEventListener(window, "pointerdown", (e) => {
143
143
  const el = unrefElement(target);
144
144
  shouldListen.value = !!el && !e.composedPath().includes(el);
@@ -199,18 +199,20 @@
199
199
  }
200
200
  return a;
201
201
  };
202
- const vOnKeyStroke = (el, binding) => {
203
- var _a, _b;
204
- const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
205
- if (typeof binding.value === "function") {
206
- onKeyStroke(keys, binding.value, {
207
- target: el
208
- });
209
- } else {
210
- const [handler, options] = binding.value;
211
- onKeyStroke(keys, handler, __spreadValues$b({
212
- target: el
213
- }, options));
202
+ const vOnKeyStroke = {
203
+ [shared.directiveHooks.mounted](el, binding) {
204
+ var _a, _b;
205
+ const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
206
+ if (typeof binding.value === "function") {
207
+ onKeyStroke(keys, binding.value, {
208
+ target: el
209
+ });
210
+ } else {
211
+ const [handler, options] = binding.value;
212
+ onKeyStroke(keys, handler, __spreadValues$b({
213
+ target: el
214
+ }, options));
215
+ }
214
216
  }
215
217
  };
216
218
 
@@ -362,6 +364,7 @@
362
364
  onError(e);
363
365
  }
364
366
  }
367
+ let synced = false;
365
368
  function read(event) {
366
369
  if (!storage || event && event.key !== key)
367
370
  return;
@@ -381,8 +384,17 @@
381
384
  }
382
385
  }
383
386
  read();
384
- if (window && listenToStorageChanges)
385
- useEventListener(window, "storage", (e) => setTimeout(() => read(e), 0));
387
+ if (window && listenToStorageChanges) {
388
+ useEventListener(window, "storage", (e) => {
389
+ setTimeout(() => {
390
+ if (synced) {
391
+ synced = false;
392
+ return;
393
+ }
394
+ read(e);
395
+ }, 0);
396
+ });
397
+ }
386
398
  if (storage) {
387
399
  shared.watchWithFilter(data, () => {
388
400
  try {
@@ -390,6 +402,7 @@
390
402
  storage.removeItem(key);
391
403
  else
392
404
  storage.setItem(key, serializer.write(data.value));
405
+ synced = true;
393
406
  } catch (e) {
394
407
  onError(e);
395
408
  }
@@ -422,7 +435,7 @@
422
435
  else
423
436
  mediaQuery.addListener(update);
424
437
  shared.tryOnScopeDispose(() => {
425
- if ("removeEventListener" in update)
438
+ if ("removeEventListener" in mediaQuery)
426
439
  mediaQuery.removeEventListener("change", update);
427
440
  else
428
441
  mediaQuery.removeListener(update);
@@ -662,10 +675,12 @@
662
675
  return isHovered;
663
676
  }
664
677
 
665
- const vElementHover = (el, binding) => {
666
- if (typeof binding.value === "function") {
667
- const isHovered = useElementHover(el);
668
- vueDemi.watch(isHovered, (v) => binding.value(v));
678
+ const vElementHover = {
679
+ [shared.directiveHooks.mounted](el, binding) {
680
+ if (typeof binding.value === "function") {
681
+ const isHovered = useElementHover(el);
682
+ vueDemi.watch(isHovered, (v) => binding.value(v));
683
+ }
669
684
  }
670
685
  };
671
686
 
@@ -710,7 +725,7 @@
710
725
  const stopWatch = vueDemi.watch(() => unrefElement(target), (el) => {
711
726
  cleanup();
712
727
  if (isSupported && window && el) {
713
- observer = new window.ResizeObserver(callback);
728
+ observer = new ResizeObserver(callback);
714
729
  observer.observe(el, observerOptions);
715
730
  }
716
731
  }, { immediate: true, flush: "post" });
@@ -742,12 +757,14 @@
742
757
  };
743
758
  }
744
759
 
745
- const vElementSize = (el, binding) => {
746
- var _a;
747
- const handler = typeof binding.value === "function" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];
748
- const options = typeof binding.value === "function" ? [] : binding.value.slice(1);
749
- const { width, height } = useElementSize(el, ...options);
750
- vueDemi.watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));
760
+ const vElementSize = {
761
+ [shared.directiveHooks.mounted](el, binding) {
762
+ var _a;
763
+ const handler = typeof binding.value === "function" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];
764
+ const options = typeof binding.value === "function" ? [] : binding.value.slice(1);
765
+ const { width, height } = useElementSize(el, ...options);
766
+ vueDemi.watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));
767
+ }
751
768
  };
752
769
 
753
770
  const UseElementVisibility = vueDemi.defineComponent({
@@ -765,6 +782,39 @@
765
782
  }
766
783
  });
767
784
 
785
+ function useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {
786
+ const elementIsVisible = vueDemi.ref(false);
787
+ const testBounding = () => {
788
+ if (!window)
789
+ return;
790
+ const document = window.document;
791
+ if (!vueDemi.unref(element)) {
792
+ elementIsVisible.value = false;
793
+ } else {
794
+ const rect = vueDemi.unref(element).getBoundingClientRect();
795
+ elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;
796
+ }
797
+ };
798
+ shared.tryOnMounted(testBounding);
799
+ if (window)
800
+ shared.tryOnMounted(() => useEventListener(vueDemi.unref(scrollTarget) || window, "scroll", testBounding, { capture: false, passive: true }));
801
+ return elementIsVisible;
802
+ }
803
+
804
+ const vElementVisibility = {
805
+ [shared.directiveHooks.mounted](el, binding) {
806
+ if (typeof binding.value === "function") {
807
+ const handler = binding.value;
808
+ const isVisible = useElementVisibility(el);
809
+ vueDemi.watch(isVisible, (v) => handler(v), { immediate: true });
810
+ } else {
811
+ const [handler, options] = binding.value;
812
+ const isVisible = useElementVisibility(el, options);
813
+ vueDemi.watch(isVisible, (v) => handler(v), { immediate: true });
814
+ }
815
+ }
816
+ };
817
+
768
818
  const UseEyeDropper = vueDemi.defineComponent({
769
819
  name: "UseEyeDropper",
770
820
  props: {
@@ -918,11 +968,13 @@
918
968
  });
919
969
  }
920
970
 
921
- const vInfiniteScroll = (el, binding) => {
922
- if (typeof binding.value === "function")
923
- useInfiniteScroll(el, binding.value);
924
- else
925
- useInfiniteScroll(el, ...binding.value);
971
+ const vInfiniteScroll = {
972
+ [shared.directiveHooks.mounted](el, binding) {
973
+ if (typeof binding.value === "function")
974
+ useInfiniteScroll(el, binding.value);
975
+ else
976
+ useInfiniteScroll(el, ...binding.value);
977
+ }
926
978
  };
927
979
 
928
980
  function useIntersectionObserver(target, callback, options = {}) {
@@ -941,7 +993,7 @@
941
993
  cleanup();
942
994
  if (!el)
943
995
  return;
944
- const observer = new window.IntersectionObserver(callback, {
996
+ const observer = new IntersectionObserver(callback, {
945
997
  root: root2,
946
998
  rootMargin,
947
999
  threshold
@@ -963,11 +1015,13 @@
963
1015
  };
964
1016
  }
965
1017
 
966
- const vIntersectionObserver = (el, binding) => {
967
- if (typeof binding.value === "function")
968
- useIntersectionObserver(el, binding.value);
969
- else
970
- useIntersectionObserver(el, ...binding.value);
1018
+ const vIntersectionObserver = {
1019
+ [shared.directiveHooks.mounted](el, binding) {
1020
+ if (typeof binding.value === "function")
1021
+ useIntersectionObserver(el, binding.value);
1022
+ else
1023
+ useIntersectionObserver(el, ...binding.value);
1024
+ }
971
1025
  };
972
1026
 
973
1027
  const UseMouse = vueDemi.defineComponent({
@@ -1341,31 +1395,33 @@
1341
1395
  return a;
1342
1396
  };
1343
1397
  var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
1344
- const vScroll = (el, binding) => {
1345
- if (typeof binding.value === "function") {
1346
- const handler = binding.value;
1347
- const state = useScroll(el, {
1348
- onScroll() {
1349
- handler(state);
1350
- },
1351
- onStop() {
1352
- handler(state);
1353
- }
1354
- });
1355
- } else {
1356
- const [handler, options] = binding.value;
1357
- const state = useScroll(el, __spreadProps$2(__spreadValues$3({}, options), {
1358
- onScroll(e) {
1359
- var _a;
1360
- (_a = options.onScroll) == null ? void 0 : _a.call(options, e);
1361
- handler(state);
1362
- },
1363
- onStop(e) {
1364
- var _a;
1365
- (_a = options.onStop) == null ? void 0 : _a.call(options, e);
1366
- handler(state);
1367
- }
1368
- }));
1398
+ const vScroll = {
1399
+ [shared.directiveHooks.mounted](el, binding) {
1400
+ if (typeof binding.value === "function") {
1401
+ const handler = binding.value;
1402
+ const state = useScroll(el, {
1403
+ onScroll() {
1404
+ handler(state);
1405
+ },
1406
+ onStop() {
1407
+ handler(state);
1408
+ }
1409
+ });
1410
+ } else {
1411
+ const [handler, options] = binding.value;
1412
+ const state = useScroll(el, __spreadProps$2(__spreadValues$3({}, options), {
1413
+ onScroll(e) {
1414
+ var _a;
1415
+ (_a = options.onScroll) == null ? void 0 : _a.call(options, e);
1416
+ handler(state);
1417
+ },
1418
+ onStop(e) {
1419
+ var _a;
1420
+ (_a = options.onStop) == null ? void 0 : _a.call(options, e);
1421
+ handler(state);
1422
+ }
1423
+ }));
1424
+ }
1369
1425
  }
1370
1426
  };
1371
1427
 
@@ -1601,6 +1657,7 @@
1601
1657
  exports.VOnLongPress = vOnLongPress;
1602
1658
  exports.vElementHover = vElementHover;
1603
1659
  exports.vElementSize = vElementSize;
1660
+ exports.vElementVisibility = vElementVisibility;
1604
1661
  exports.vInfiniteScroll = vInfiniteScroll;
1605
1662
  exports.vIntersectionObserver = vIntersectionObserver;
1606
1663
  exports.vOnClickOutside = vOnClickOutside;
package/index.iife.min.js CHANGED
@@ -1 +1 @@
1
- (function(l){if(!l.VueDemi){var n={},i=l.Vue;if(i)if(i.version.slice(0,2)==="2."){var p=l.VueCompositionAPI;if(p){for(var $ in p)n[$]=p[$];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=i,n.Vue2=i,n.version=i.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(i.version.slice(0,2)==="3."){for(var $ in i)n[$]=i[$];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=i,n.Vue2=void 0,n.version=i.version,n.set=function(h,y,b){return Array.isArray(h)?(h.length=Math.max(h.length,y),h.splice(y,1,b),b):(h[y]=b,b)},n.del=function(h,y){if(Array.isArray(h)){h.splice(y,1);return}delete h[y]}}else console.error("[vue-demi] Vue version "+i.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");l.VueDemi=n}})(window),function(l,n,i,p){"use strict";const $=n.defineComponent({name:"OnClickOutside",props:["as"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return i.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=n.unref(t);return(e=r==null?void 0:r.$el)!=null?e:r}const y=p.isClient?window:void 0;function b(...t){let e,r,o,a;if(p.isString(t[0])?([r,o,a]=t,e=y):[e,r,o,a]=t,!e)return p.noop;let s=p.noop;const u=n.watch(()=>n.unref(e),f=>{s(),!!f&&(f.addEventListener(r,o,a),s=()=>{f.removeEventListener(r,o,a),s=p.noop})},{immediate:!0,flush:"post"}),c=()=>{u(),s()};return p.tryOnScopeDispose(c),c}function T(t,e,r={}){const{window:o=y,ignore:a}=r;if(!o)return;const s=n.ref(!0),c=[b(o,"click",v=>{const g=h(t),O=v.composedPath();!g||g===v.target||O.includes(g)||!s.value||a&&a.length>0&&a.some(_=>{const w=h(_);return w&&(v.target===w||O.includes(w))})||e(v)},{passive:!0,capture:!0}),b(o,"pointerdown",v=>{const g=h(t);s.value=!!g&&!v.composedPath().includes(g)},{passive:!0})];return()=>c.forEach(v=>v())}const A=(()=>{let t=null;return(e,r)=>{if(t){t(),t=T(e,r.value);return}t=T(e,r.value)}})(),we=t=>typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):t?()=>!0:()=>!1;function z(t,e,r={}){const{target:o=y,eventName:a="keydown",passive:s=!1}=r,u=we(t);return b(o,a,f=>{u(f)&&e(f)},s)}var be=Object.defineProperty,R=Object.getOwnPropertySymbols,Se=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable,B=(t,e,r)=>e in t?be(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,$e=(t,e)=>{for(var r in e||(e={}))Se.call(e,r)&&B(t,r,e[r]);if(R)for(var r of R(e))Ue.call(e,r)&&B(t,r,e[r]);return t};const Ce=(t,e)=>{var r,o;const a=(o=(r=e.arg)==null?void 0:r.split(","))!=null?o:[];if(typeof e.value=="function")z(a,e.value,{target:t});else{const[s,u]=e.value;z(a,s,$e({target:t},u))}},Ee=500;function j(t,e,r){const o=n.computed(()=>i.unrefElement(t));let a=null;function s(){a!=null&&(clearTimeout(a),a=null)}function u(c){var f;s(),a=setTimeout(()=>e(c),(f=r==null?void 0:r.delay)!=null?f:Ee)}i.useEventListener(o,"pointerdown",u),i.useEventListener(o,"pointerup",s),i.useEventListener(o,"pointerleave",s)}const Ve=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return j(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}}),W=(t,e)=>{typeof e.value=="function"?j(t,e.value):j(t,...e.value)},Le=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:i.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),je=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(i.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),Ie=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(i.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),I=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},M="__vueuse_ssr_handlers__";I[M]=I[M]||{};const Me=I[M];function H(t,e){return Me[t]||e}function Ne(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"||Array.isArray(t)?"object":Number.isNaN(t)?"any":"number"}const Te={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.entries()))}};function Ae(t,e,r,o={}){var a;const{flush:s="pre",deep:u=!0,listenToStorageChanges:c=!0,writeDefaults:f=!0,shallow:v,window:g=y,eventFilter:O,onError:_=d=>{console.error(d)}}=o,w=n.unref(e),C=Ne(w),m=(v?n.shallowRef:n.ref)(e),P=(a=o.serializer)!=null?a:Te[C];if(!r)try{r=H("getDefaultStorage",()=>{var d;return(d=y)==null?void 0:d.localStorage})()}catch(d){_(d)}function S(d){if(!(!r||d&&d.key!==t))try{const U=d?d.newValue:r.getItem(t);U==null?(m.value=w,f&&w!==null&&r.setItem(t,P.write(w))):typeof U!="string"?m.value=U:m.value=P.read(U)}catch(U){_(U)}}return S(),g&&c&&b(g,"storage",d=>setTimeout(()=>S(d),0)),r&&p.watchWithFilter(m,()=>{try{m.value==null?r.removeItem(t):r.setItem(t,P.write(m.value))}catch(d){_(d)}},{flush:s,deep:u,eventFilter:O}),m}function ze(t,e={}){const{window:r=y}=e;let o;const a=n.ref(!1),s=()=>{!r||(o||(o=r.matchMedia(t)),a.value=o.matches)};return p.tryOnMounted(()=>{s(),!!o&&("addEventListener"in o?o.addEventListener("change",s):o.addListener(s),p.tryOnScopeDispose(()=>{"removeEventListener"in s?o.removeEventListener("change",s):o.removeListener(s)}))}),a}function Re(t){return ze("(prefers-color-scheme: dark)",t)}var Be=Object.defineProperty,F=Object.getOwnPropertySymbols,We=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable,k=(t,e,r)=>e in t?Be(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Fe=(t,e)=>{for(var r in e||(e={}))We.call(e,r)&&k(t,r,e[r]);if(F)for(var r of F(e))He.call(e,r)&&k(t,r,e[r]);return t};function ke(t={}){const{selector:e="html",attribute:r="class",window:o=y,storage:a,storageKey:s="vueuse-color-scheme",listenToStorageChanges:u=!0,storageRef:c}=t,f=Fe({auto:"",light:"light",dark:"dark"},t.modes||{}),v=Re({window:o}),g=n.computed(()=>v.value?"dark":"light"),O=c||(s==null?n.ref("auto"):Ae(s,"auto",a,{window:o,listenToStorageChanges:u})),_=n.computed({get(){return O.value==="auto"?g.value:O.value},set(P){O.value=P}}),w=H("updateHTMLAttrs",(P,S,d)=>{const U=o==null?void 0:o.document.querySelector(P);if(!!U)if(S==="class"){const Yr=d.split(/\s/g);Object.values(f).flatMap(E=>(E||"").split(/\s/g)).filter(Boolean).forEach(E=>{Yr.includes(E)?U.classList.add(E):U.classList.remove(E)})}else U.setAttribute(S,d)});function C(P){var S;w(e,r,(S=f[P])!=null?S:P)}function m(P){t.onChanged?t.onChanged(P,C):C(P)}return n.watch(_,m,{flush:"post",immediate:!0}),p.tryOnMounted(()=>m(_.value)),_}const Ke=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=ke(t),o=n.reactive({mode:r});return()=>{if(e.default)return e.default(o)}}}),Je=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=i.useDark(t),o=n.reactive({isDark:r,toggleDark:p.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),Ge=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(i.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),qe=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(i.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),Qe=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:i.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),Ye=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(i.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),Xe=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:i.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var Ze=Object.defineProperty,xe=Object.defineProperties,De=Object.getOwnPropertyDescriptors,K=Object.getOwnPropertySymbols,et=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable,J=(t,e,r)=>e in t?Ze(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,rt=(t,e)=>{for(var r in e||(e={}))et.call(e,r)&&J(t,r,e[r]);if(K)for(var r of K(e))tt.call(e,r)&&J(t,r,e[r]);return t},nt=(t,e)=>xe(t,De(e));const ot=n.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","pointerTypes","as"],setup(t,{slots:e}){const r=n.ref(),o=t.storageKey?i.useStorage(t.storageKey,n.unref(t.initialValue)||{x:0,y:0},i.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0):t.initialValue||{x:0,y:0},a=n.reactive(i.useDraggable(r,nt(rt({},t),{initialValue:o})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${a.style}`},e.default(a))}}}),at=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function st(t){const e=n.ref(!1);return b(t,"mouseenter",()=>e.value=!0),b(t,"mouseleave",()=>e.value=!1),e}const lt=(t,e)=>{if(typeof e.value=="function"){const r=st(t);n.watch(r,o=>e.value(o))}},it=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.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 G=Object.getOwnPropertySymbols,ut=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,ct=(t,e)=>{var r={};for(var o in t)ut.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&G)for(var o of G(t))e.indexOf(o)<0&&ft.call(t,o)&&(r[o]=t[o]);return r};function pt(t,e,r={}){const o=r,{window:a=y}=o,s=ct(o,["window"]);let u;const c=a&&"ResizeObserver"in a,f=()=>{u&&(u.disconnect(),u=void 0)},v=n.watch(()=>h(t),O=>{f(),c&&a&&O&&(u=new a.ResizeObserver(e),u.observe(O,s))},{immediate:!0,flush:"post"}),g=()=>{f(),v()};return p.tryOnScopeDispose(g),{isSupported:c,stop:g}}function dt(t,e={width:0,height:0},r={}){const o=n.ref(e.width),a=n.ref(e.height);return pt(t,([s])=>{o.value=s.contentRect.width,a.value=s.contentRect.height},r),n.watch(()=>h(t),s=>{o.value=s?e.width:0,a.value=s?e.height:0}),{width:o,height:a}}const vt=(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:s,height:u}=dt(t,...a);n.watch([s,u],([c,f])=>o({width:c,height:f}))},gt=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:i.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),_t=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(i.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),Ot=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Pt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(i.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),ht=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(i.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});function N(t,e={}){const{throttle:r=0,idle:o=200,onStop:a=p.noop,onScroll:s=p.noop,offset:u={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}),_=n.reactive({left:!1,right:!1,top:!1,bottom:!1});if(t){const w=p.useDebounceFn(m=>{g.value=!1,_.left=!1,_.right=!1,_.top=!1,_.bottom=!1,a(m)},r+o),C=m=>{const P=m.target===document?m.target.documentElement:m.target,S=P.scrollLeft;_.left=S<f.value,_.right=S>f.value,O.left=S<=0+(u.left||0),O.right=S+P.clientWidth>=P.scrollWidth-(u.right||0),f.value=S;const d=P.scrollTop;_.top=d<v.value,_.bottom=d>v.value,O.top=d<=0+(u.top||0),O.bottom=d+P.clientHeight>=P.scrollHeight-(u.bottom||0),v.value=d,g.value=!0,w(m),s(m)};b(t,"scroll",r?p.useThrottleFn(C,r):C,c)}return{x:f,y:v,isScrolling:g,arrivedState:O,directions:_}}var yt=Object.defineProperty,mt=Object.defineProperties,wt=Object.getOwnPropertyDescriptors,q=Object.getOwnPropertySymbols,bt=Object.prototype.hasOwnProperty,St=Object.prototype.propertyIsEnumerable,Q=(t,e,r)=>e in t?yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Y=(t,e)=>{for(var r in e||(e={}))bt.call(e,r)&&Q(t,r,e[r]);if(q)for(var r of q(e))St.call(e,r)&&Q(t,r,e[r]);return t},Ut=(t,e)=>mt(t,wt(e));function X(t,e,r={}){var o;const a=n.reactive(N(t,Ut(Y({},r),{offset:Y({bottom:(o=r.distance)!=null?o:0},r.offset)})));n.watch(()=>a.arrivedState.bottom,s=>{s&&e(a)})}const $t=(t,e)=>{typeof e.value=="function"?X(t,e.value):X(t,...e.value)};function Z(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:s=.1,window:u=y}=r,c=u&&"IntersectionObserver"in u;let f=p.noop;const v=c?n.watch(()=>({el:h(t),root:h(o)}),({el:O,root:_})=>{if(f(),!O)return;const w=new u.IntersectionObserver(e,{root:_,rootMargin:a,threshold:s});w.observe(O),f=()=>{w.disconnect(),f=p.noop}},{immediate:!0,flush:"post"}):p.noop,g=()=>{f(),v()};return p.tryOnScopeDispose(g),{isSupported:c,stop:g}}const Ct=(t,e)=>{typeof e.value=="function"?Z(t,e.value):Z(t,...e.value)},Et=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(i.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),Vt=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var Lt=Object.defineProperty,jt=Object.defineProperties,It=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,Mt=Object.prototype.hasOwnProperty,Nt=Object.prototype.propertyIsEnumerable,D=(t,e,r)=>e in t?Lt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Tt=(t,e)=>{for(var r in e||(e={}))Mt.call(e,r)&&D(t,r,e[r]);if(x)for(var r of x(e))Nt.call(e,r)&&D(t,r,e[r]);return t},At=(t,e)=>jt(t,It(e));const zt=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.useMousePressed(At(Tt({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Rt=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(i.useNetwork());return()=>{if(e.default)return e.default(r)}}});var Bt=Object.defineProperty,Wt=Object.defineProperties,Ht=Object.getOwnPropertyDescriptors,ee=Object.getOwnPropertySymbols,Ft=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable,te=(t,e,r)=>e in t?Bt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Kt=(t,e)=>{for(var r in e||(e={}))Ft.call(e,r)&&te(t,r,e[r]);if(ee)for(var r of ee(e))kt.call(e,r)&&te(t,r,e[r]);return t},Jt=(t,e)=>Wt(t,Ht(e));const Gt=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(i.useNow(Jt(Kt({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var qt=Object.defineProperty,Qt=Object.defineProperties,Yt=Object.getOwnPropertyDescriptors,re=Object.getOwnPropertySymbols,Xt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable,ne=(t,e,r)=>e in t?qt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,xt=(t,e)=>{for(var r in e||(e={}))Xt.call(e,r)&&ne(t,r,e[r]);if(re)for(var r of re(e))Zt.call(e,r)&&ne(t,r,e[r]);return t},Dt=(t,e)=>Qt(t,Yt(e));const er=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(i.useOffsetPagination(Dt(xt({},t),{onPageChange(...a){var s;(s=t.onPageChange)==null||s.call(t,...a),r("page-change",...a)},onPageSizeChange(...a){var s;(s=t.onPageSizeChange)==null||s.call(t,...a),r("page-size-change",...a)},onPageCountChange(...a){var s;(s=t.onPageCountChange)==null||s.call(t,...a),r("page-count-change",...a)}})));return()=>{if(e.default)return e.default(o)}}}),tr=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:i.useOnline()});return()=>{if(e.default)return e.default(r)}}}),rr=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:i.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var nr=Object.defineProperty,or=Object.defineProperties,ar=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,sr=Object.prototype.hasOwnProperty,lr=Object.prototype.propertyIsEnumerable,ae=(t,e,r)=>e in t?nr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ir=(t,e)=>{for(var r in e||(e={}))sr.call(e,r)&&ae(t,r,e[r]);if(oe)for(var r of oe(e))lr.call(e,r)&&ae(t,r,e[r]);return t},ur=(t,e)=>or(t,ar(e));const fr=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(i.usePointer(ur(ir({},t),{target:t.target==="self"?r:y})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),cr=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:i.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),pr=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:i.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),dr=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:i.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}});function V(t,e,{window:r=y}={}){const o=n.ref(""),a=n.computed(()=>{var s;return h(e)||((s=r==null?void 0:r.document)==null?void 0:s.documentElement)});return n.watch([a,()=>n.unref(t)],([s,u])=>{s&&r&&(o.value=r.getComputedStyle(s).getPropertyValue(u))},{immediate:!0}),n.watch(o,s=>{var u;((u=a.value)==null?void 0:u.style)&&a.value.style.setProperty(n.unref(t),s)}),o}const se="--vueuse-safe-area-top",le="--vueuse-safe-area-right",ie="--vueuse-safe-area-bottom",ue="--vueuse-safe-area-left";function vr(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(p.isClient){const s=V(se),u=V(le),c=V(ie),f=V(ue);s.value="env(safe-area-inset-top, 0px)",u.value="env(safe-area-inset-right, 0px)",c.value="env(safe-area-inset-bottom, 0px)",f.value="env(safe-area-inset-left, 0px)",a(),b("resize",p.useDebounceFn(a))}function a(){t.value=L(se),e.value=L(le),r.value=L(ie),o.value=L(ue)}return{top:t,right:e,bottom:r,left:o,update:a}}function L(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const gr=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:s}=vr();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?s.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var _r=Object.defineProperty,Or=Object.defineProperties,Pr=Object.getOwnPropertyDescriptors,fe=Object.getOwnPropertySymbols,hr=Object.prototype.hasOwnProperty,yr=Object.prototype.propertyIsEnumerable,ce=(t,e,r)=>e in t?_r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,mr=(t,e)=>{for(var r in e||(e={}))hr.call(e,r)&&ce(t,r,e[r]);if(fe)for(var r of fe(e))yr.call(e,r)&&ce(t,r,e[r]);return t},wr=(t,e)=>Or(t,Pr(e));const br=(t,e)=>{if(typeof e.value=="function"){const r=e.value,o=N(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=N(t,wr(mr({},o),{onScroll(s){var u;(u=o.onScroll)==null||u.call(o,s),r(a)},onStop(s){var u;(u=o.onStop)==null||u.call(o,s),r(a)}}))}};var pe,de;function Sr(t){const e=t||window.event;return e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}const ve=p.isClient&&(window==null?void 0:window.navigator)&&((pe=window==null?void 0:window.navigator)==null?void 0:pe.platform)&&/iP(ad|hone|od)/.test((de=window==null?void 0:window.navigator)==null?void 0:de.platform);function Ur(t,e=!1){const r=n.ref(e);let o=null,a;n.watch(()=>n.unref(t),c=>{if(c){const f=c;a=f.style.overflow,r.value&&(f.style.overflow="hidden")}},{immediate:!0});const s=()=>{const c=n.unref(t);!c||r.value||(ve&&(o=b(document,"touchmove",Sr,{passive:!1})),c.style.overflow="hidden",r.value=!0)},u=()=>{const c=n.unref(t);!c||!r.value||(ve&&(o==null||o()),c.style.overflow=a,r.value=!1)};return n.computed({get(){return r.value},set(c){c?s():u()}})}const $r=(()=>{let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=Ur(r,o.value);n.watch(e,s=>a.value=s)}})();var Cr=Object.defineProperty,Er=Object.defineProperties,Vr=Object.getOwnPropertyDescriptors,ge=Object.getOwnPropertySymbols,Lr=Object.prototype.hasOwnProperty,jr=Object.prototype.propertyIsEnumerable,_e=(t,e,r)=>e in t?Cr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ir=(t,e)=>{for(var r in e||(e={}))Lr.call(e,r)&&_e(t,r,e[r]);if(ge)for(var r of ge(e))jr.call(e,r)&&_e(t,r,e[r]);return t},Mr=(t,e)=>Er(t,Vr(e));const Nr=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages"],setup(t,{slots:e}){const r=n.toRef(t,"time"),o=n.reactive(i.useTimeAgo(r,Mr(Ir({},t),{controls:!0})));return()=>{if(e.default)return e.default(o)}}});var Tr=Object.defineProperty,Ar=Object.defineProperties,zr=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,Rr=Object.prototype.hasOwnProperty,Br=Object.prototype.propertyIsEnumerable,Pe=(t,e,r)=>e in t?Tr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Wr=(t,e)=>{for(var r in e||(e={}))Rr.call(e,r)&&Pe(t,r,e[r]);if(Oe)for(var r of Oe(e))Br.call(e,r)&&Pe(t,r,e[r]);return t},Hr=(t,e)=>Ar(t,zr(e));const Fr=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(i.useTimestamp(Hr(Wr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var kr=Object.defineProperty,he=Object.getOwnPropertySymbols,Kr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,ye=(t,e,r)=>e in t?kr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,me=(t,e)=>{for(var r in e||(e={}))Kr.call(e,r)&&ye(t,r,e[r]);if(he)for(var r of he(e))Jr.call(e,r)&&ye(t,r,e[r]);return t};const Gr=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e}){const{list:r}=n.toRefs(t),{list:o,containerProps:a,wrapperProps:s}=i.useVirtualList(r,t.options);return a.style.height=t.height||"300px",()=>n.h("div",me({},a),[n.h("div",me({},s.value),o.value.map(u=>n.h("div",{style:{overFlow:"hidden",height:u.height}},e.default?e.default(u):"Please set content!")))])}}),qr=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:i.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),Qr=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(i.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});l.OnClickOutside=$,l.OnLongPress=Ve,l.UseActiveElement=Le,l.UseBattery=je,l.UseBrowserLocation=Ie,l.UseColorMode=Ke,l.UseDark=Je,l.UseDeviceMotion=Ge,l.UseDeviceOrientation=qe,l.UseDevicePixelRatio=Qe,l.UseDevicesList=Ye,l.UseDocumentVisibility=Xe,l.UseDraggable=ot,l.UseElementBounding=at,l.UseElementSize=it,l.UseElementVisibility=gt,l.UseEyeDropper=_t,l.UseFullscreen=Ot,l.UseGeolocation=Pt,l.UseIdle=ht,l.UseMouse=Et,l.UseMouseInElement=Vt,l.UseMousePressed=zt,l.UseNetwork=Rt,l.UseNow=Gt,l.UseOffsetPagination=er,l.UseOnline=tr,l.UsePageLeave=rr,l.UsePointer=fr,l.UsePreferredColorScheme=cr,l.UsePreferredDark=pr,l.UsePreferredLanguages=dr,l.UseScreenSafeArea=gr,l.UseTimeAgo=Nr,l.UseTimestamp=Fr,l.UseVirtualList=Gr,l.UseWindowFocus=qr,l.UseWindowSize=Qr,l.VOnClickOutside=A,l.VOnLongPress=W,l.vElementHover=lt,l.vElementSize=vt,l.vInfiniteScroll=$t,l.vIntersectionObserver=Ct,l.vOnClickOutside=A,l.vOnKeyStroke=Ce,l.vOnLongPress=W,l.vScroll=br,l.vScrollLock=$r,Object.defineProperty(l,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
1
+ (function(l){if(!l.VueDemi){var n={},i=l.Vue;if(i)if(i.version.slice(0,2)==="2."){var c=l.VueCompositionAPI;if(c){for(var E in c)n[E]=c[E];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=i,n.Vue2=i,n.version=i.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(i.version.slice(0,2)==="3."){for(var E in i)n[E]=i[E];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=i,n.Vue2=void 0,n.version=i.version,n.set=function(m,P,y){return Array.isArray(m)?(m.length=Math.max(m.length,P),m.splice(P,1,y),y):(m[P]=y,y)},n.del=function(m,P){if(Array.isArray(m)){m.splice(P,1);return}delete m[P]}}else console.error("[vue-demi] Vue version "+i.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");l.VueDemi=n}})(window),function(l,n,i,c){"use strict";const E=n.defineComponent({name:"OnClickOutside",props:["as"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return i.onClickOutside(o,a=>{r("trigger",a)}),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}});function m(t){var e;const r=n.unref(t);return(e=r==null?void 0:r.$el)!=null?e:r}const P=c.isClient?window:void 0;function y(...t){let e,r,o,a;if(c.isString(t[0])?([r,o,a]=t,e=P):[e,r,o,a]=t,!e)return c.noop;let s=c.noop;const u=n.watch(()=>m(e),f=>{s(),!!f&&(f.addEventListener(r,o,a),s=()=>{f.removeEventListener(r,o,a),s=c.noop})},{immediate:!0,flush:"post"}),p=()=>{u(),s()};return c.tryOnScopeDispose(p),p}function A(t,e,r={}){const{window:o=P,ignore:a,capture:s=!0}=r;if(!o)return;const u=n.ref(!0),f=[y(o,"click",v=>{const d=m(t),g=v.composedPath();!d||d===v.target||g.includes(d)||!u.value||a&&a.length>0&&a.some(S=>{const U=m(S);return U&&(v.target===U||g.includes(U))})||e(v)},{passive:!0,capture:s}),y(o,"pointerdown",v=>{const d=m(t);u.value=!!d&&!v.composedPath().includes(d)},{passive:!0})];return()=>f.forEach(v=>v())}const H=(()=>{let t=null;return(e,r)=>{if(t){t(),t=A(e,r.value);return}t=A(e,r.value)}})(),Se=t=>typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):t?()=>!0:()=>!1;function z(t,e,r={}){const{target:o=P,eventName:a="keydown",passive:s=!1}=r,u=Se(t);return y(o,a,f=>{u(f)&&e(f)},s)}var Ue=Object.defineProperty,R=Object.getOwnPropertySymbols,$e=Object.prototype.hasOwnProperty,Ce=Object.prototype.propertyIsEnumerable,B=(t,e,r)=>e in t?Ue(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ee=(t,e)=>{for(var r in e||(e={}))$e.call(e,r)&&B(t,r,e[r]);if(R)for(var r of R(e))Ce.call(e,r)&&B(t,r,e[r]);return t};const Ve={[c.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")z(a,e.value,{target:t});else{const[s,u]=e.value;z(a,s,Ee({target:t},u))}}},Le=500;function I(t,e,r){const o=n.computed(()=>i.unrefElement(t));let a=null;function s(){a!=null&&(clearTimeout(a),a=null)}function u(p){var f;s(),a=setTimeout(()=>e(p),(f=r==null?void 0:r.delay)!=null?f:Le)}i.useEventListener(o,"pointerdown",u),i.useEventListener(o,"pointerup",s),i.useEventListener(o,"pointerleave",s)}const je=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return I(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}}),W=(t,e)=>{typeof e.value=="function"?I(t,e.value):I(t,...e.value)},Ie=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:i.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),Me=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(i.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),Ne=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(i.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),M=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},N="__vueuse_ssr_handlers__";M[N]=M[N]||{};const Te=M[N];function k(t,e){return Te[t]||e}function Ae(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"||Array.isArray(t)?"object":Number.isNaN(t)?"any":"number"}const He={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.entries()))}};function ze(t,e,r,o={}){var a;const{flush:s="pre",deep:u=!0,listenToStorageChanges:p=!0,writeDefaults:f=!0,shallow:b,window:v=P,eventFilter:d,onError:g=O=>{console.error(O)}}=o,S=n.unref(e),U=Ae(S),h=(b?n.shallowRef:n.ref)(e),_=(a=o.serializer)!=null?a:He[U];if(!r)try{r=k("getDefaultStorage",()=>{var O;return(O=P)==null?void 0:O.localStorage})()}catch(O){g(O)}let w=!1;function $(O){if(!(!r||O&&O.key!==t))try{const C=O?O.newValue:r.getItem(t);C==null?(h.value=S,f&&S!==null&&r.setItem(t,_.write(S))):typeof C!="string"?h.value=C:h.value=_.read(C)}catch(C){g(C)}}return $(),v&&p&&y(v,"storage",O=>{setTimeout(()=>{if(w){w=!1;return}$(O)},0)}),r&&c.watchWithFilter(h,()=>{try{h.value==null?r.removeItem(t):r.setItem(t,_.write(h.value)),w=!0}catch(O){g(O)}},{flush:s,deep:u,eventFilter:d}),h}function Re(t,e={}){const{window:r=P}=e;let o;const a=n.ref(!1),s=()=>{!r||(o||(o=r.matchMedia(t)),a.value=o.matches)};return c.tryOnMounted(()=>{s(),!!o&&("addEventListener"in o?o.addEventListener("change",s):o.addListener(s),c.tryOnScopeDispose(()=>{"removeEventListener"in o?o.removeEventListener("change",s):o.removeListener(s)}))}),a}function Be(t){return Re("(prefers-color-scheme: dark)",t)}var We=Object.defineProperty,F=Object.getOwnPropertySymbols,ke=Object.prototype.hasOwnProperty,Fe=Object.prototype.propertyIsEnumerable,K=(t,e,r)=>e in t?We(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ke=(t,e)=>{for(var r in e||(e={}))ke.call(e,r)&&K(t,r,e[r]);if(F)for(var r of F(e))Fe.call(e,r)&&K(t,r,e[r]);return t};function Je(t={}){const{selector:e="html",attribute:r="class",window:o=P,storage:a,storageKey:s="vueuse-color-scheme",listenToStorageChanges:u=!0,storageRef:p}=t,f=Ke({auto:"",light:"light",dark:"dark"},t.modes||{}),b=Be({window:o}),v=n.computed(()=>b.value?"dark":"light"),d=p||(s==null?n.ref("auto"):ze(s,"auto",a,{window:o,listenToStorageChanges:u})),g=n.computed({get(){return d.value==="auto"?v.value:d.value},set(_){d.value=_}}),S=k("updateHTMLAttrs",(_,w,$)=>{const O=o==null?void 0:o.document.querySelector(_);if(!!O)if(w==="class"){const C=$.split(/\s/g);Object.values(f).flatMap(V=>(V||"").split(/\s/g)).filter(Boolean).forEach(V=>{C.includes(V)?O.classList.add(V):O.classList.remove(V)})}else O.setAttribute(w,$)});function U(_){var w;S(e,r,(w=f[_])!=null?w:_)}function h(_){t.onChanged?t.onChanged(_,U):U(_)}return n.watch(g,h,{flush:"post",immediate:!0}),c.tryOnMounted(()=>h(g.value)),g}const Ge=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=Je(t),o=n.reactive({mode:r});return()=>{if(e.default)return e.default(o)}}}),qe=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=i.useDark(t),o=n.reactive({isDark:r,toggleDark:c.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),Qe=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(i.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),Ye=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(i.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),Xe=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:i.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),Ze=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(i.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),xe=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:i.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var De=Object.defineProperty,et=Object.defineProperties,tt=Object.getOwnPropertyDescriptors,J=Object.getOwnPropertySymbols,rt=Object.prototype.hasOwnProperty,nt=Object.prototype.propertyIsEnumerable,G=(t,e,r)=>e in t?De(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ot=(t,e)=>{for(var r in e||(e={}))rt.call(e,r)&&G(t,r,e[r]);if(J)for(var r of J(e))nt.call(e,r)&&G(t,r,e[r]);return t},at=(t,e)=>et(t,tt(e));const st=n.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","pointerTypes","as"],setup(t,{slots:e}){const r=n.ref(),o=t.storageKey?i.useStorage(t.storageKey,n.unref(t.initialValue)||{x:0,y:0},i.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0):t.initialValue||{x:0,y:0},a=n.reactive(i.useDraggable(r,at(ot({},t),{initialValue:o})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${a.style}`},e.default(a))}}}),lt=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function it(t){const e=n.ref(!1);return y(t,"mouseenter",()=>e.value=!0),y(t,"mouseleave",()=>e.value=!1),e}const ut={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=it(t);n.watch(r,o=>e.value(o))}}},ct=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.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 q=Object.getOwnPropertySymbols,ft=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,dt=(t,e)=>{var r={};for(var o in t)ft.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&q)for(var o of q(t))e.indexOf(o)<0&&pt.call(t,o)&&(r[o]=t[o]);return r};function vt(t,e,r={}){const o=r,{window:a=P}=o,s=dt(o,["window"]);let u;const p=a&&"ResizeObserver"in a,f=()=>{u&&(u.disconnect(),u=void 0)},b=n.watch(()=>m(t),d=>{f(),p&&a&&d&&(u=new ResizeObserver(e),u.observe(d,s))},{immediate:!0,flush:"post"}),v=()=>{f(),b()};return c.tryOnScopeDispose(v),{isSupported:p,stop:v}}function gt(t,e={width:0,height:0},r={}){const o=n.ref(e.width),a=n.ref(e.height);return vt(t,([s])=>{o.value=s.contentRect.width,a.value=s.contentRect.height},r),n.watch(()=>m(t),s=>{o.value=s?e.width:0,a.value=s?e.height:0}),{width:o,height:a}}const _t={[c.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:s,height:u}=gt(t,...a);n.watch([s,u],([p,f])=>o({width:p,height:f}))}},Ot=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:i.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function Q(t,{window:e=P,scrollTarget:r}={}){const o=n.ref(!1),a=()=>{if(!e)return;const s=e.document;if(!n.unref(t))o.value=!1;else{const u=n.unref(t).getBoundingClientRect();o.value=u.top<=(e.innerHeight||s.documentElement.clientHeight)&&u.left<=(e.innerWidth||s.documentElement.clientWidth)&&u.bottom>=0&&u.right>=0}};return c.tryOnMounted(a),e&&c.tryOnMounted(()=>y(n.unref(r)||e,"scroll",a,{capture:!1,passive:!0})),o}const mt={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=Q(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=Q(t,o);n.watch(a,s=>r(s),{immediate:!0})}}},Pt=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(i.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),ht=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),yt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(i.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),wt=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(i.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});function T(t,e={}){const{throttle:r=0,idle:o=200,onStop:a=c.noop,onScroll:s=c.noop,offset:u={left:0,right:0,top:0,bottom:0},eventListenerOptions:p={capture:!1,passive:!0}}=e,f=n.ref(0),b=n.ref(0),v=n.ref(!1),d=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),g=n.reactive({left:!1,right:!1,top:!1,bottom:!1});if(t){const S=c.useDebounceFn(h=>{v.value=!1,g.left=!1,g.right=!1,g.top=!1,g.bottom=!1,a(h)},r+o),U=h=>{const _=h.target===document?h.target.documentElement:h.target,w=_.scrollLeft;g.left=w<f.value,g.right=w>f.value,d.left=w<=0+(u.left||0),d.right=w+_.clientWidth>=_.scrollWidth-(u.right||0),f.value=w;const $=_.scrollTop;g.top=$<b.value,g.bottom=$>b.value,d.top=$<=0+(u.top||0),d.bottom=$+_.clientHeight>=_.scrollHeight-(u.bottom||0),b.value=$,v.value=!0,S(h),s(h)};y(t,"scroll",r?c.useThrottleFn(U,r):U,p)}return{x:f,y:b,isScrolling:v,arrivedState:d,directions:g}}var bt=Object.defineProperty,St=Object.defineProperties,Ut=Object.getOwnPropertyDescriptors,Y=Object.getOwnPropertySymbols,$t=Object.prototype.hasOwnProperty,Ct=Object.prototype.propertyIsEnumerable,X=(t,e,r)=>e in t?bt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Z=(t,e)=>{for(var r in e||(e={}))$t.call(e,r)&&X(t,r,e[r]);if(Y)for(var r of Y(e))Ct.call(e,r)&&X(t,r,e[r]);return t},Et=(t,e)=>St(t,Ut(e));function x(t,e,r={}){var o;const a=n.reactive(T(t,Et(Z({},r),{offset:Z({bottom:(o=r.distance)!=null?o:0},r.offset)})));n.watch(()=>a.arrivedState.bottom,s=>{s&&e(a)})}const Vt={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?x(t,e.value):x(t,...e.value)}};function D(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:s=.1,window:u=P}=r,p=u&&"IntersectionObserver"in u;let f=c.noop;const b=p?n.watch(()=>({el:m(t),root:m(o)}),({el:d,root:g})=>{if(f(),!d)return;const S=new IntersectionObserver(e,{root:g,rootMargin:a,threshold:s});S.observe(d),f=()=>{S.disconnect(),f=c.noop}},{immediate:!0,flush:"post"}):c.noop,v=()=>{f(),b()};return c.tryOnScopeDispose(v),{isSupported:p,stop:v}}const Lt={[c.directiveHooks.mounted](t,e){typeof e.value=="function"?D(t,e.value):D(t,...e.value)}},jt=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(i.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),It=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var Mt=Object.defineProperty,Nt=Object.defineProperties,Tt=Object.getOwnPropertyDescriptors,ee=Object.getOwnPropertySymbols,At=Object.prototype.hasOwnProperty,Ht=Object.prototype.propertyIsEnumerable,te=(t,e,r)=>e in t?Mt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,zt=(t,e)=>{for(var r in e||(e={}))At.call(e,r)&&te(t,r,e[r]);if(ee)for(var r of ee(e))Ht.call(e,r)&&te(t,r,e[r]);return t},Rt=(t,e)=>Nt(t,Tt(e));const Bt=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(i.useMousePressed(Rt(zt({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Wt=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(i.useNetwork());return()=>{if(e.default)return e.default(r)}}});var kt=Object.defineProperty,Ft=Object.defineProperties,Kt=Object.getOwnPropertyDescriptors,re=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,Gt=Object.prototype.propertyIsEnumerable,ne=(t,e,r)=>e in t?kt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,qt=(t,e)=>{for(var r in e||(e={}))Jt.call(e,r)&&ne(t,r,e[r]);if(re)for(var r of re(e))Gt.call(e,r)&&ne(t,r,e[r]);return t},Qt=(t,e)=>Ft(t,Kt(e));const Yt=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(i.useNow(Qt(qt({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var Xt=Object.defineProperty,Zt=Object.defineProperties,xt=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,Dt=Object.prototype.hasOwnProperty,er=Object.prototype.propertyIsEnumerable,ae=(t,e,r)=>e in t?Xt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,tr=(t,e)=>{for(var r in e||(e={}))Dt.call(e,r)&&ae(t,r,e[r]);if(oe)for(var r of oe(e))er.call(e,r)&&ae(t,r,e[r]);return t},rr=(t,e)=>Zt(t,xt(e));const nr=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(i.useOffsetPagination(rr(tr({},t),{onPageChange(...a){var s;(s=t.onPageChange)==null||s.call(t,...a),r("page-change",...a)},onPageSizeChange(...a){var s;(s=t.onPageSizeChange)==null||s.call(t,...a),r("page-size-change",...a)},onPageCountChange(...a){var s;(s=t.onPageCountChange)==null||s.call(t,...a),r("page-count-change",...a)}})));return()=>{if(e.default)return e.default(o)}}}),or=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:i.useOnline()});return()=>{if(e.default)return e.default(r)}}}),ar=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:i.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var sr=Object.defineProperty,lr=Object.defineProperties,ir=Object.getOwnPropertyDescriptors,se=Object.getOwnPropertySymbols,ur=Object.prototype.hasOwnProperty,cr=Object.prototype.propertyIsEnumerable,le=(t,e,r)=>e in t?sr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,fr=(t,e)=>{for(var r in e||(e={}))ur.call(e,r)&&le(t,r,e[r]);if(se)for(var r of se(e))cr.call(e,r)&&le(t,r,e[r]);return t},pr=(t,e)=>lr(t,ir(e));const dr=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(i.usePointer(pr(fr({},t),{target:t.target==="self"?r:P})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),vr=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:i.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),gr=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:i.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),_r=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:i.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}});function L(t,e,{window:r=P}={}){const o=n.ref(""),a=n.computed(()=>{var s;return m(e)||((s=r==null?void 0:r.document)==null?void 0:s.documentElement)});return n.watch([a,()=>n.unref(t)],([s,u])=>{s&&r&&(o.value=r.getComputedStyle(s).getPropertyValue(u))},{immediate:!0}),n.watch(o,s=>{var u;((u=a.value)==null?void 0:u.style)&&a.value.style.setProperty(n.unref(t),s)}),o}const ie="--vueuse-safe-area-top",ue="--vueuse-safe-area-right",ce="--vueuse-safe-area-bottom",fe="--vueuse-safe-area-left";function Or(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(c.isClient){const s=L(ie),u=L(ue),p=L(ce),f=L(fe);s.value="env(safe-area-inset-top, 0px)",u.value="env(safe-area-inset-right, 0px)",p.value="env(safe-area-inset-bottom, 0px)",f.value="env(safe-area-inset-left, 0px)",a(),y("resize",c.useDebounceFn(a))}function a(){t.value=j(ie),e.value=j(ue),r.value=j(ce),o.value=j(fe)}return{top:t,right:e,bottom:r,left:o,update:a}}function j(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const mr=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:s}=Or();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?s.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var Pr=Object.defineProperty,hr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,pe=Object.getOwnPropertySymbols,wr=Object.prototype.hasOwnProperty,br=Object.prototype.propertyIsEnumerable,de=(t,e,r)=>e in t?Pr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Sr=(t,e)=>{for(var r in e||(e={}))wr.call(e,r)&&de(t,r,e[r]);if(pe)for(var r of pe(e))br.call(e,r)&&de(t,r,e[r]);return t},Ur=(t,e)=>hr(t,yr(e));const $r={[c.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=T(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=T(t,Ur(Sr({},o),{onScroll(s){var u;(u=o.onScroll)==null||u.call(o,s),r(a)},onStop(s){var u;(u=o.onStop)==null||u.call(o,s),r(a)}}))}}};var ve,ge;function Cr(t){const e=t||window.event;return e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}const _e=c.isClient&&(window==null?void 0:window.navigator)&&((ve=window==null?void 0:window.navigator)==null?void 0:ve.platform)&&/iP(ad|hone|od)/.test((ge=window==null?void 0:window.navigator)==null?void 0:ge.platform);function Er(t,e=!1){const r=n.ref(e);let o=null,a;n.watch(()=>n.unref(t),p=>{if(p){const f=p;a=f.style.overflow,r.value&&(f.style.overflow="hidden")}},{immediate:!0});const s=()=>{const p=n.unref(t);!p||r.value||(_e&&(o=y(document,"touchmove",Cr,{passive:!1})),p.style.overflow="hidden",r.value=!0)},u=()=>{const p=n.unref(t);!p||!r.value||(_e&&(o==null||o()),p.style.overflow=a,r.value=!1)};return n.computed({get(){return r.value},set(p){p?s():u()}})}const Vr=(()=>{let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=Er(r,o.value);n.watch(e,s=>a.value=s)}})();var Lr=Object.defineProperty,jr=Object.defineProperties,Ir=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,Mr=Object.prototype.hasOwnProperty,Nr=Object.prototype.propertyIsEnumerable,me=(t,e,r)=>e in t?Lr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Tr=(t,e)=>{for(var r in e||(e={}))Mr.call(e,r)&&me(t,r,e[r]);if(Oe)for(var r of Oe(e))Nr.call(e,r)&&me(t,r,e[r]);return t},Ar=(t,e)=>jr(t,Ir(e));const Hr=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages"],setup(t,{slots:e}){const r=n.toRef(t,"time"),o=n.reactive(i.useTimeAgo(r,Ar(Tr({},t),{controls:!0})));return()=>{if(e.default)return e.default(o)}}});var zr=Object.defineProperty,Rr=Object.defineProperties,Br=Object.getOwnPropertyDescriptors,Pe=Object.getOwnPropertySymbols,Wr=Object.prototype.hasOwnProperty,kr=Object.prototype.propertyIsEnumerable,he=(t,e,r)=>e in t?zr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Fr=(t,e)=>{for(var r in e||(e={}))Wr.call(e,r)&&he(t,r,e[r]);if(Pe)for(var r of Pe(e))kr.call(e,r)&&he(t,r,e[r]);return t},Kr=(t,e)=>Rr(t,Br(e));const Jr=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(i.useTimestamp(Kr(Fr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var Gr=Object.defineProperty,ye=Object.getOwnPropertySymbols,qr=Object.prototype.hasOwnProperty,Qr=Object.prototype.propertyIsEnumerable,we=(t,e,r)=>e in t?Gr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,be=(t,e)=>{for(var r in e||(e={}))qr.call(e,r)&&we(t,r,e[r]);if(ye)for(var r of ye(e))Qr.call(e,r)&&we(t,r,e[r]);return t};const Yr=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e}){const{list:r}=n.toRefs(t),{list:o,containerProps:a,wrapperProps:s}=i.useVirtualList(r,t.options);return a.style.height=t.height||"300px",()=>n.h("div",be({},a),[n.h("div",be({},s.value),o.value.map(u=>n.h("div",{style:{overFlow:"hidden",height:u.height}},e.default?e.default(u):"Please set content!")))])}}),Xr=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:i.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),Zr=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(i.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});l.OnClickOutside=E,l.OnLongPress=je,l.UseActiveElement=Ie,l.UseBattery=Me,l.UseBrowserLocation=Ne,l.UseColorMode=Ge,l.UseDark=qe,l.UseDeviceMotion=Qe,l.UseDeviceOrientation=Ye,l.UseDevicePixelRatio=Xe,l.UseDevicesList=Ze,l.UseDocumentVisibility=xe,l.UseDraggable=st,l.UseElementBounding=lt,l.UseElementSize=ct,l.UseElementVisibility=Ot,l.UseEyeDropper=Pt,l.UseFullscreen=ht,l.UseGeolocation=yt,l.UseIdle=wt,l.UseMouse=jt,l.UseMouseInElement=It,l.UseMousePressed=Bt,l.UseNetwork=Wt,l.UseNow=Yt,l.UseOffsetPagination=nr,l.UseOnline=or,l.UsePageLeave=ar,l.UsePointer=dr,l.UsePreferredColorScheme=vr,l.UsePreferredDark=gr,l.UsePreferredLanguages=_r,l.UseScreenSafeArea=mr,l.UseTimeAgo=Hr,l.UseTimestamp=Jr,l.UseVirtualList=Yr,l.UseWindowFocus=Xr,l.UseWindowSize=Zr,l.VOnClickOutside=H,l.VOnLongPress=W,l.vElementHover=ut,l.vElementSize=_t,l.vElementVisibility=mt,l.vInfiniteScroll=Vt,l.vIntersectionObserver=Lt,l.vOnClickOutside=H,l.vOnKeyStroke=Ve,l.vOnLongPress=W,l.vScroll=$r,l.vScrollLock=Vr,Object.defineProperty(l,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
package/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, h, unref, watch, computed, reactive, shallowRef, toRef, toRefs } from 'vue-demi';
2
- import { onClickOutside as onClickOutside$1, unrefElement as unrefElement$1, useEventListener as useEventListener$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, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useOffsetPagination, useOnline, usePageLeave, usePointer, usePreferredColorScheme, usePreferredDark as usePreferredDark$1, usePreferredLanguages, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';
3
- import { isClient, isString, noop, tryOnScopeDispose, watchWithFilter, tryOnMounted, useToggle, useDebounceFn, useThrottleFn } from '@vueuse/shared';
2
+ import { onClickOutside as onClickOutside$1, unrefElement as unrefElement$1, useEventListener as useEventListener$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, useOffsetPagination, useOnline, usePageLeave, usePointer, usePreferredColorScheme, usePreferredDark as usePreferredDark$1, usePreferredLanguages, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';
3
+ import { isClient, isString, noop, tryOnScopeDispose, directiveHooks, watchWithFilter, tryOnMounted, useToggle, useDebounceFn, useThrottleFn } from '@vueuse/shared';
4
4
 
5
5
  const OnClickOutside = defineComponent({
6
6
  name: "OnClickOutside",
@@ -40,7 +40,7 @@ function useEventListener(...args) {
40
40
  if (!target)
41
41
  return noop;
42
42
  let cleanup = noop;
43
- const stopWatch = watch(() => unref(target), (el) => {
43
+ const stopWatch = watch(() => unrefElement(target), (el) => {
44
44
  cleanup();
45
45
  if (!el)
46
46
  return;
@@ -59,7 +59,7 @@ function useEventListener(...args) {
59
59
  }
60
60
 
61
61
  function onClickOutside(target, handler, options = {}) {
62
- const { window = defaultWindow, ignore } = options;
62
+ const { window = defaultWindow, ignore, capture = true } = options;
63
63
  if (!window)
64
64
  return;
65
65
  const shouldListen = ref(true);
@@ -78,7 +78,7 @@ function onClickOutside(target, handler, options = {}) {
78
78
  handler(event);
79
79
  };
80
80
  const cleanup = [
81
- useEventListener(window, "click", listener, { passive: true, capture: true }),
81
+ useEventListener(window, "click", listener, { passive: true, capture }),
82
82
  useEventListener(window, "pointerdown", (e) => {
83
83
  const el = unrefElement(target);
84
84
  shouldListen.value = !!el && !e.composedPath().includes(el);
@@ -139,18 +139,20 @@ var __spreadValues$b = (a, b) => {
139
139
  }
140
140
  return a;
141
141
  };
142
- const vOnKeyStroke = (el, binding) => {
143
- var _a, _b;
144
- const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
145
- if (typeof binding.value === "function") {
146
- onKeyStroke(keys, binding.value, {
147
- target: el
148
- });
149
- } else {
150
- const [handler, options] = binding.value;
151
- onKeyStroke(keys, handler, __spreadValues$b({
152
- target: el
153
- }, options));
142
+ const vOnKeyStroke = {
143
+ [directiveHooks.mounted](el, binding) {
144
+ var _a, _b;
145
+ const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(",")) != null ? _b : [];
146
+ if (typeof binding.value === "function") {
147
+ onKeyStroke(keys, binding.value, {
148
+ target: el
149
+ });
150
+ } else {
151
+ const [handler, options] = binding.value;
152
+ onKeyStroke(keys, handler, __spreadValues$b({
153
+ target: el
154
+ }, options));
155
+ }
154
156
  }
155
157
  };
156
158
 
@@ -302,6 +304,7 @@ function useStorage(key, initialValue, storage, options = {}) {
302
304
  onError(e);
303
305
  }
304
306
  }
307
+ let synced = false;
305
308
  function read(event) {
306
309
  if (!storage || event && event.key !== key)
307
310
  return;
@@ -321,8 +324,17 @@ function useStorage(key, initialValue, storage, options = {}) {
321
324
  }
322
325
  }
323
326
  read();
324
- if (window && listenToStorageChanges)
325
- useEventListener(window, "storage", (e) => setTimeout(() => read(e), 0));
327
+ if (window && listenToStorageChanges) {
328
+ useEventListener(window, "storage", (e) => {
329
+ setTimeout(() => {
330
+ if (synced) {
331
+ synced = false;
332
+ return;
333
+ }
334
+ read(e);
335
+ }, 0);
336
+ });
337
+ }
326
338
  if (storage) {
327
339
  watchWithFilter(data, () => {
328
340
  try {
@@ -330,6 +342,7 @@ function useStorage(key, initialValue, storage, options = {}) {
330
342
  storage.removeItem(key);
331
343
  else
332
344
  storage.setItem(key, serializer.write(data.value));
345
+ synced = true;
333
346
  } catch (e) {
334
347
  onError(e);
335
348
  }
@@ -362,7 +375,7 @@ function useMediaQuery(query, options = {}) {
362
375
  else
363
376
  mediaQuery.addListener(update);
364
377
  tryOnScopeDispose(() => {
365
- if ("removeEventListener" in update)
378
+ if ("removeEventListener" in mediaQuery)
366
379
  mediaQuery.removeEventListener("change", update);
367
380
  else
368
381
  mediaQuery.removeListener(update);
@@ -602,10 +615,12 @@ function useElementHover(el) {
602
615
  return isHovered;
603
616
  }
604
617
 
605
- const vElementHover = (el, binding) => {
606
- if (typeof binding.value === "function") {
607
- const isHovered = useElementHover(el);
608
- watch(isHovered, (v) => binding.value(v));
618
+ const vElementHover = {
619
+ [directiveHooks.mounted](el, binding) {
620
+ if (typeof binding.value === "function") {
621
+ const isHovered = useElementHover(el);
622
+ watch(isHovered, (v) => binding.value(v));
623
+ }
609
624
  }
610
625
  };
611
626
 
@@ -650,7 +665,7 @@ function useResizeObserver(target, callback, options = {}) {
650
665
  const stopWatch = watch(() => unrefElement(target), (el) => {
651
666
  cleanup();
652
667
  if (isSupported && window && el) {
653
- observer = new window.ResizeObserver(callback);
668
+ observer = new ResizeObserver(callback);
654
669
  observer.observe(el, observerOptions);
655
670
  }
656
671
  }, { immediate: true, flush: "post" });
@@ -682,12 +697,14 @@ function useElementSize(target, initialSize = { width: 0, height: 0 }, options =
682
697
  };
683
698
  }
684
699
 
685
- const vElementSize = (el, binding) => {
686
- var _a;
687
- const handler = typeof binding.value === "function" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];
688
- const options = typeof binding.value === "function" ? [] : binding.value.slice(1);
689
- const { width, height } = useElementSize(el, ...options);
690
- watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));
700
+ const vElementSize = {
701
+ [directiveHooks.mounted](el, binding) {
702
+ var _a;
703
+ const handler = typeof binding.value === "function" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];
704
+ const options = typeof binding.value === "function" ? [] : binding.value.slice(1);
705
+ const { width, height } = useElementSize(el, ...options);
706
+ watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));
707
+ }
691
708
  };
692
709
 
693
710
  const UseElementVisibility = defineComponent({
@@ -696,7 +713,7 @@ const UseElementVisibility = defineComponent({
696
713
  setup(props, { slots }) {
697
714
  const target = ref();
698
715
  const data = reactive({
699
- isVisible: useElementVisibility(target)
716
+ isVisible: useElementVisibility$1(target)
700
717
  });
701
718
  return () => {
702
719
  if (slots.default)
@@ -705,6 +722,39 @@ const UseElementVisibility = defineComponent({
705
722
  }
706
723
  });
707
724
 
725
+ function useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {
726
+ const elementIsVisible = ref(false);
727
+ const testBounding = () => {
728
+ if (!window)
729
+ return;
730
+ const document = window.document;
731
+ if (!unref(element)) {
732
+ elementIsVisible.value = false;
733
+ } else {
734
+ const rect = unref(element).getBoundingClientRect();
735
+ elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;
736
+ }
737
+ };
738
+ tryOnMounted(testBounding);
739
+ if (window)
740
+ tryOnMounted(() => useEventListener(unref(scrollTarget) || window, "scroll", testBounding, { capture: false, passive: true }));
741
+ return elementIsVisible;
742
+ }
743
+
744
+ const vElementVisibility = {
745
+ [directiveHooks.mounted](el, binding) {
746
+ if (typeof binding.value === "function") {
747
+ const handler = binding.value;
748
+ const isVisible = useElementVisibility(el);
749
+ watch(isVisible, (v) => handler(v), { immediate: true });
750
+ } else {
751
+ const [handler, options] = binding.value;
752
+ const isVisible = useElementVisibility(el, options);
753
+ watch(isVisible, (v) => handler(v), { immediate: true });
754
+ }
755
+ }
756
+ };
757
+
708
758
  const UseEyeDropper = defineComponent({
709
759
  name: "UseEyeDropper",
710
760
  props: {
@@ -858,11 +908,13 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
858
908
  });
859
909
  }
860
910
 
861
- const vInfiniteScroll = (el, binding) => {
862
- if (typeof binding.value === "function")
863
- useInfiniteScroll(el, binding.value);
864
- else
865
- useInfiniteScroll(el, ...binding.value);
911
+ const vInfiniteScroll = {
912
+ [directiveHooks.mounted](el, binding) {
913
+ if (typeof binding.value === "function")
914
+ useInfiniteScroll(el, binding.value);
915
+ else
916
+ useInfiniteScroll(el, ...binding.value);
917
+ }
866
918
  };
867
919
 
868
920
  function useIntersectionObserver(target, callback, options = {}) {
@@ -881,7 +933,7 @@ function useIntersectionObserver(target, callback, options = {}) {
881
933
  cleanup();
882
934
  if (!el)
883
935
  return;
884
- const observer = new window.IntersectionObserver(callback, {
936
+ const observer = new IntersectionObserver(callback, {
885
937
  root: root2,
886
938
  rootMargin,
887
939
  threshold
@@ -903,11 +955,13 @@ function useIntersectionObserver(target, callback, options = {}) {
903
955
  };
904
956
  }
905
957
 
906
- const vIntersectionObserver = (el, binding) => {
907
- if (typeof binding.value === "function")
908
- useIntersectionObserver(el, binding.value);
909
- else
910
- useIntersectionObserver(el, ...binding.value);
958
+ const vIntersectionObserver = {
959
+ [directiveHooks.mounted](el, binding) {
960
+ if (typeof binding.value === "function")
961
+ useIntersectionObserver(el, binding.value);
962
+ else
963
+ useIntersectionObserver(el, ...binding.value);
964
+ }
911
965
  };
912
966
 
913
967
  const UseMouse = defineComponent({
@@ -1281,31 +1335,33 @@ var __spreadValues$3 = (a, b) => {
1281
1335
  return a;
1282
1336
  };
1283
1337
  var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
1284
- const vScroll = (el, binding) => {
1285
- if (typeof binding.value === "function") {
1286
- const handler = binding.value;
1287
- const state = useScroll(el, {
1288
- onScroll() {
1289
- handler(state);
1290
- },
1291
- onStop() {
1292
- handler(state);
1293
- }
1294
- });
1295
- } else {
1296
- const [handler, options] = binding.value;
1297
- const state = useScroll(el, __spreadProps$2(__spreadValues$3({}, options), {
1298
- onScroll(e) {
1299
- var _a;
1300
- (_a = options.onScroll) == null ? void 0 : _a.call(options, e);
1301
- handler(state);
1302
- },
1303
- onStop(e) {
1304
- var _a;
1305
- (_a = options.onStop) == null ? void 0 : _a.call(options, e);
1306
- handler(state);
1307
- }
1308
- }));
1338
+ const vScroll = {
1339
+ [directiveHooks.mounted](el, binding) {
1340
+ if (typeof binding.value === "function") {
1341
+ const handler = binding.value;
1342
+ const state = useScroll(el, {
1343
+ onScroll() {
1344
+ handler(state);
1345
+ },
1346
+ onStop() {
1347
+ handler(state);
1348
+ }
1349
+ });
1350
+ } else {
1351
+ const [handler, options] = binding.value;
1352
+ const state = useScroll(el, __spreadProps$2(__spreadValues$3({}, options), {
1353
+ onScroll(e) {
1354
+ var _a;
1355
+ (_a = options.onScroll) == null ? void 0 : _a.call(options, e);
1356
+ handler(state);
1357
+ },
1358
+ onStop(e) {
1359
+ var _a;
1360
+ (_a = options.onStop) == null ? void 0 : _a.call(options, e);
1361
+ handler(state);
1362
+ }
1363
+ }));
1364
+ }
1309
1365
  }
1310
1366
  };
1311
1367
 
@@ -1499,4 +1555,4 @@ const UseWindowSize = defineComponent({
1499
1555
  }
1500
1556
  });
1501
1557
 
1502
- export { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePreferredColorScheme, UsePreferredDark, UsePreferredLanguages, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vScroll, vScrollLock };
1558
+ export { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePreferredColorScheme, UsePreferredDark, UsePreferredLanguages, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vScroll, vScrollLock };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vueuse/components",
3
- "version": "8.0.0",
3
+ "version": "8.1.1",
4
4
  "description": "Renderless components for VueUse",
5
5
  "keywords": [
6
6
  "vue",
@@ -33,8 +33,8 @@
33
33
  },
34
34
  "homepage": "https://github.com/vueuse/vueuse/tree/main/packages/components#readme",
35
35
  "dependencies": {
36
- "@vueuse/core": "8.0.0",
37
- "@vueuse/shared": "8.0.0",
36
+ "@vueuse/core": "8.1.1",
37
+ "@vueuse/shared": "8.1.1",
38
38
  "vue-demi": "*"
39
39
  }
40
40
  }