@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 +122 -65
- package/index.d.ts +27 -18
- package/index.iife.js +122 -65
- package/index.iife.min.js +1 -1
- package/index.mjs +125 -69
- package/package.json +3 -3
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(() =>
|
|
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
|
|
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 =
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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) =>
|
|
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
|
|
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 =
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
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
|
|
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 =
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
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 =
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
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
|
|
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 =
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
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 =
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
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$
|
|
31
|
-
declare type BindingValueArray$
|
|
32
|
-
declare const vOnKeyStroke:
|
|
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$
|
|
49
|
-
declare type BindingValueArray$
|
|
50
|
-
BindingValueFunction$
|
|
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$
|
|
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
|
|
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$
|
|
213
|
-
declare const vElementHover:
|
|
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$
|
|
236
|
+
declare type BindingValueFunction$4 = (size: ElementSize) => void;
|
|
236
237
|
declare type VElementSizeOptions = RemoveFirstFromTuple<Parameters<typeof useElementSize>>;
|
|
237
|
-
declare type BindingValueArray$
|
|
238
|
-
declare const vElementSize:
|
|
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:
|
|
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:
|
|
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:
|
|
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(() =>
|
|
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
|
|
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 =
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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) =>
|
|
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
|
|
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 =
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
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
|
|
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 =
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
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 =
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
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
|
|
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 =
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
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 =
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
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(() =>
|
|
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
|
|
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 =
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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) =>
|
|
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
|
|
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 =
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
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
|
|
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 =
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
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 =
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
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
|
|
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 =
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
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 =
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
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.
|
|
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.
|
|
37
|
-
"@vueuse/shared": "8.
|
|
36
|
+
"@vueuse/core": "8.1.1",
|
|
37
|
+
"@vueuse/shared": "8.1.1",
|
|
38
38
|
"vue-demi": "*"
|
|
39
39
|
}
|
|
40
40
|
}
|