@vueuse/components 8.9.2 → 9.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs +61 -54
- package/index.d.ts +26 -25
- package/index.iife.js +61 -70
- package/index.iife.min.js +1 -1
- package/index.mjs +63 -56
- package/package.json +3 -3
package/index.cjs
CHANGED
|
@@ -24,7 +24,7 @@ const OnClickOutside = vueDemi.defineComponent({
|
|
|
24
24
|
|
|
25
25
|
function unrefElement(elRef) {
|
|
26
26
|
var _a;
|
|
27
|
-
const plain =
|
|
27
|
+
const plain = shared.resolveUnref(elRef);
|
|
28
28
|
return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -339,7 +339,7 @@ function useStorage(key, initialValue, storage, options = {}) {
|
|
|
339
339
|
}
|
|
340
340
|
if (!storage)
|
|
341
341
|
return data;
|
|
342
|
-
const rawInit =
|
|
342
|
+
const rawInit = shared.resolveUnref(initialValue);
|
|
343
343
|
const type = guessSerializerType(rawInit);
|
|
344
344
|
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
|
|
345
345
|
const { pause: pauseWatch, resume: resumeWatch } = shared.pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });
|
|
@@ -385,13 +385,21 @@ function useStorage(key, initialValue, storage, options = {}) {
|
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
+
function useSupported(callback, sync = false) {
|
|
389
|
+
const isSupported = vueDemi.ref();
|
|
390
|
+
const update = () => isSupported.value = Boolean(callback());
|
|
391
|
+
update();
|
|
392
|
+
shared.tryOnMounted(update, sync);
|
|
393
|
+
return isSupported;
|
|
394
|
+
}
|
|
395
|
+
|
|
388
396
|
function useMediaQuery(query, options = {}) {
|
|
389
397
|
const { window = defaultWindow } = options;
|
|
390
|
-
const isSupported =
|
|
398
|
+
const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function");
|
|
391
399
|
let mediaQuery;
|
|
392
400
|
const matches = vueDemi.ref(false);
|
|
393
401
|
const update = () => {
|
|
394
|
-
if (!isSupported)
|
|
402
|
+
if (!isSupported.value)
|
|
395
403
|
return;
|
|
396
404
|
if (!mediaQuery)
|
|
397
405
|
mediaQuery = window.matchMedia(query);
|
|
@@ -618,7 +626,7 @@ const UseDraggable = vueDemi.defineComponent({
|
|
|
618
626
|
],
|
|
619
627
|
setup(props, { slots }) {
|
|
620
628
|
const target = vueDemi.ref();
|
|
621
|
-
const initialValue = props.storageKey ? core.useStorage(props.storageKey,
|
|
629
|
+
const initialValue = props.storageKey ? core.useStorage(props.storageKey, shared.resolveUnref(props.initialValue) || { x: 0, y: 0 }, core.isClient ? props.storageType === "session" ? sessionStorage : localStorage : void 0) : props.initialValue || { x: 0, y: 0 };
|
|
622
630
|
const data = vueDemi.reactive(core.useDraggable(target, __spreadProps$8(__spreadValues$a({}, props), {
|
|
623
631
|
initialValue
|
|
624
632
|
})));
|
|
@@ -689,7 +697,7 @@ var __objRest = (source, exclude) => {
|
|
|
689
697
|
function useResizeObserver(target, callback, options = {}) {
|
|
690
698
|
const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest(_a, ["window"]);
|
|
691
699
|
let observer;
|
|
692
|
-
const isSupported = window && "ResizeObserver" in window;
|
|
700
|
+
const isSupported = useSupported(() => window && "ResizeObserver" in window);
|
|
693
701
|
const cleanup = () => {
|
|
694
702
|
if (observer) {
|
|
695
703
|
observer.disconnect();
|
|
@@ -698,7 +706,7 @@ function useResizeObserver(target, callback, options = {}) {
|
|
|
698
706
|
};
|
|
699
707
|
const stopWatch = vueDemi.watch(() => unrefElement(target), (el) => {
|
|
700
708
|
cleanup();
|
|
701
|
-
if (isSupported && window && el) {
|
|
709
|
+
if (isSupported.value && window && el) {
|
|
702
710
|
observer = new ResizeObserver(callback);
|
|
703
711
|
observer.observe(el, observerOptions);
|
|
704
712
|
}
|
|
@@ -762,16 +770,18 @@ function useElementVisibility(element, { window = defaultWindow, scrollTarget }
|
|
|
762
770
|
if (!window)
|
|
763
771
|
return;
|
|
764
772
|
const document = window.document;
|
|
765
|
-
|
|
773
|
+
const el = shared.resolveUnref(element);
|
|
774
|
+
if (!el) {
|
|
766
775
|
elementIsVisible.value = false;
|
|
767
776
|
} else {
|
|
768
|
-
const rect =
|
|
777
|
+
const rect = el.getBoundingClientRect();
|
|
769
778
|
elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;
|
|
770
779
|
}
|
|
771
780
|
};
|
|
772
781
|
shared.tryOnMounted(testBounding);
|
|
773
|
-
if (window)
|
|
774
|
-
shared.tryOnMounted(() => useEventListener(
|
|
782
|
+
if (window) {
|
|
783
|
+
shared.tryOnMounted(() => useEventListener(() => shared.resolveUnref(scrollTarget) || window, "scroll", testBounding, { capture: false, passive: true }));
|
|
784
|
+
}
|
|
775
785
|
return elementIsVisible;
|
|
776
786
|
}
|
|
777
787
|
|
|
@@ -914,10 +924,10 @@ async function loadImage(options) {
|
|
|
914
924
|
});
|
|
915
925
|
}
|
|
916
926
|
const useImage = (options, asyncStateOptions = {}) => {
|
|
917
|
-
const state = useAsyncState(() => loadImage(
|
|
927
|
+
const state = useAsyncState(() => loadImage(shared.resolveUnref(options)), void 0, __spreadValues$9({
|
|
918
928
|
resetOnExecute: true
|
|
919
929
|
}, asyncStateOptions));
|
|
920
|
-
vueDemi.watch(() =>
|
|
930
|
+
vueDemi.watch(() => shared.resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });
|
|
921
931
|
return state;
|
|
922
932
|
};
|
|
923
933
|
|
|
@@ -975,37 +985,35 @@ function useScroll(element, options = {}) {
|
|
|
975
985
|
top: false,
|
|
976
986
|
bottom: false
|
|
977
987
|
});
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
const
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
useEventListener(element, "scroll", throttle ? shared.useThrottleFn(onScrollHandler, throttle) : onScrollHandler, eventListenerOptions);
|
|
1008
|
-
}
|
|
988
|
+
const onScrollEnd = shared.useDebounceFn((e) => {
|
|
989
|
+
isScrolling.value = false;
|
|
990
|
+
directions.left = false;
|
|
991
|
+
directions.right = false;
|
|
992
|
+
directions.top = false;
|
|
993
|
+
directions.bottom = false;
|
|
994
|
+
onStop(e);
|
|
995
|
+
}, throttle + idle);
|
|
996
|
+
const onScrollHandler = (e) => {
|
|
997
|
+
const eventTarget = e.target === document ? e.target.documentElement : e.target;
|
|
998
|
+
const scrollLeft = eventTarget.scrollLeft;
|
|
999
|
+
directions.left = scrollLeft < x.value;
|
|
1000
|
+
directions.right = scrollLeft > x.value;
|
|
1001
|
+
arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
|
|
1002
|
+
arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0);
|
|
1003
|
+
x.value = scrollLeft;
|
|
1004
|
+
let scrollTop = eventTarget.scrollTop;
|
|
1005
|
+
if (e.target === document && !scrollTop)
|
|
1006
|
+
scrollTop = document.body.scrollTop;
|
|
1007
|
+
directions.top = scrollTop < y.value;
|
|
1008
|
+
directions.bottom = scrollTop > y.value;
|
|
1009
|
+
arrivedState.top = scrollTop <= 0 + (offset.top || 0);
|
|
1010
|
+
arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0);
|
|
1011
|
+
y.value = scrollTop;
|
|
1012
|
+
isScrolling.value = true;
|
|
1013
|
+
onScrollEnd(e);
|
|
1014
|
+
onScroll(e);
|
|
1015
|
+
};
|
|
1016
|
+
useEventListener(element, "scroll", throttle ? shared.useThrottleFn(onScrollHandler, throttle) : onScrollHandler, eventListenerOptions);
|
|
1009
1017
|
return {
|
|
1010
1018
|
x,
|
|
1011
1019
|
y,
|
|
@@ -1045,7 +1053,7 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
|
|
|
1045
1053
|
vueDemi.watch(() => state.arrivedState[direction], async (v) => {
|
|
1046
1054
|
var _a2, _b2;
|
|
1047
1055
|
if (v) {
|
|
1048
|
-
const elem =
|
|
1056
|
+
const elem = shared.resolveUnref(element);
|
|
1049
1057
|
const previous = {
|
|
1050
1058
|
height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,
|
|
1051
1059
|
width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0
|
|
@@ -1079,9 +1087,9 @@ function useIntersectionObserver(target, callback, options = {}) {
|
|
|
1079
1087
|
threshold = 0.1,
|
|
1080
1088
|
window = defaultWindow
|
|
1081
1089
|
} = options;
|
|
1082
|
-
const isSupported = window && "IntersectionObserver" in window;
|
|
1090
|
+
const isSupported = useSupported(() => window && "IntersectionObserver" in window);
|
|
1083
1091
|
let cleanup = shared.noop;
|
|
1084
|
-
const stopWatch = isSupported ? vueDemi.watch(() => ({
|
|
1092
|
+
const stopWatch = isSupported.value ? vueDemi.watch(() => ({
|
|
1085
1093
|
el: unrefElement(target),
|
|
1086
1094
|
root: unrefElement(root)
|
|
1087
1095
|
}), ({ el, root: root2 }) => {
|
|
@@ -1401,7 +1409,7 @@ function useCssVar(prop, target, { window = defaultWindow, initialValue = "" } =
|
|
|
1401
1409
|
var _a;
|
|
1402
1410
|
return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);
|
|
1403
1411
|
});
|
|
1404
|
-
vueDemi.watch([elRef, () =>
|
|
1412
|
+
vueDemi.watch([elRef, () => shared.resolveUnref(prop)], ([el, prop2]) => {
|
|
1405
1413
|
var _a;
|
|
1406
1414
|
if (el && window) {
|
|
1407
1415
|
const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();
|
|
@@ -1411,7 +1419,7 @@ function useCssVar(prop, target, { window = defaultWindow, initialValue = "" } =
|
|
|
1411
1419
|
vueDemi.watch(variable, (val) => {
|
|
1412
1420
|
var _a;
|
|
1413
1421
|
if ((_a = elRef.value) == null ? void 0 : _a.style)
|
|
1414
|
-
elRef.value.style.setProperty(
|
|
1422
|
+
elRef.value.style.setProperty(shared.resolveUnref(prop), val);
|
|
1415
1423
|
});
|
|
1416
1424
|
return variable;
|
|
1417
1425
|
}
|
|
@@ -1550,7 +1558,7 @@ function useScrollLock(element, initialState = false) {
|
|
|
1550
1558
|
const isLocked = vueDemi.ref(initialState);
|
|
1551
1559
|
let stopTouchMoveListener = null;
|
|
1552
1560
|
let initialOverflow;
|
|
1553
|
-
vueDemi.watch(
|
|
1561
|
+
vueDemi.watch(shared.resolveRef(element), (el) => {
|
|
1554
1562
|
if (el) {
|
|
1555
1563
|
const ele = el;
|
|
1556
1564
|
initialOverflow = ele.style.overflow;
|
|
@@ -1561,7 +1569,7 @@ function useScrollLock(element, initialState = false) {
|
|
|
1561
1569
|
immediate: true
|
|
1562
1570
|
});
|
|
1563
1571
|
const lock = () => {
|
|
1564
|
-
const ele =
|
|
1572
|
+
const ele = shared.resolveUnref(element);
|
|
1565
1573
|
if (!ele || isLocked.value)
|
|
1566
1574
|
return;
|
|
1567
1575
|
if (shared.isIOS) {
|
|
@@ -1571,7 +1579,7 @@ function useScrollLock(element, initialState = false) {
|
|
|
1571
1579
|
isLocked.value = true;
|
|
1572
1580
|
};
|
|
1573
1581
|
const unlock = () => {
|
|
1574
|
-
const ele =
|
|
1582
|
+
const ele = shared.resolveUnref(element);
|
|
1575
1583
|
if (!ele || !isLocked.value)
|
|
1576
1584
|
return;
|
|
1577
1585
|
shared.isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());
|
|
@@ -1629,8 +1637,7 @@ const UseTimeAgo = vueDemi.defineComponent({
|
|
|
1629
1637
|
name: "UseTimeAgo",
|
|
1630
1638
|
props: ["time", "updateInterval", "max", "fullDateFormatter", "messages"],
|
|
1631
1639
|
setup(props, { slots }) {
|
|
1632
|
-
const
|
|
1633
|
-
const data = vueDemi.reactive(core.useTimeAgo(time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
1640
|
+
const data = vueDemi.reactive(core.useTimeAgo(() => props.time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
1634
1641
|
return () => {
|
|
1635
1642
|
if (slots.default)
|
|
1636
1643
|
return slots.default(data);
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as vue_demi from 'vue-demi';
|
|
2
2
|
import { FunctionDirective, ObjectDirective, ComponentPublicInstance, Ref, UnwrapNestedRefs, ComputedRef } from 'vue-demi';
|
|
3
|
-
import { MaybeRef, ConfigurableEventFilter, ConfigurableFlush } from '@vueuse/shared';
|
|
4
|
-
import { UseDarkOptions, UseDevicesListOptions, UseDraggableOptions, ElementSize as ElementSize$1,
|
|
3
|
+
import { MaybeComputedRef, MaybeRef, ConfigurableEventFilter, ConfigurableFlush } from '@vueuse/shared';
|
|
4
|
+
import { UseDarkOptions, UseDevicesListOptions, UseDraggableOptions, ElementSize as ElementSize$1, UseGeolocationOptions, UseIdleOptions, UseMouseOptions, MouseInElementOptions, MousePressedOptions, UseNowOptions, UsePointerOptions, UseTimeAgoOptions, UseTimestampOptions, UseVirtualListOptions, UseWindowSizeOptions } from '@vueuse/core';
|
|
5
5
|
|
|
6
6
|
interface ConfigurableWindow {
|
|
7
7
|
window?: Window;
|
|
@@ -21,18 +21,19 @@ declare const OnClickOutside: vue_demi.DefineComponent<RenderableComponent, {},
|
|
|
21
21
|
declare const vOnClickOutside: FunctionDirective<any, <E = PointerEvent>(evt: E) => void>;
|
|
22
22
|
|
|
23
23
|
declare type KeyStrokeEventName = 'keydown' | 'keypress' | 'keyup';
|
|
24
|
-
interface
|
|
24
|
+
interface OnKeyStrokeOptions {
|
|
25
25
|
eventName?: KeyStrokeEventName;
|
|
26
|
-
target?:
|
|
26
|
+
target?: MaybeComputedRef<EventTarget>;
|
|
27
27
|
passive?: boolean;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
declare type BindingValueFunction$7 = (event: KeyboardEvent) => void;
|
|
31
|
-
declare type BindingValueArray$6 = [BindingValueFunction$7,
|
|
31
|
+
declare type BindingValueArray$6 = [BindingValueFunction$7, OnKeyStrokeOptions];
|
|
32
32
|
declare const vOnKeyStroke: ObjectDirective<HTMLElement, BindingValueFunction$7 | BindingValueArray$6>;
|
|
33
33
|
|
|
34
34
|
declare type VueInstance = ComponentPublicInstance;
|
|
35
35
|
declare type MaybeElementRef<T extends MaybeElement = MaybeElement> = MaybeRef<T>;
|
|
36
|
+
declare type MaybeComputedElementRef<T extends MaybeElement = MaybeElement> = MaybeComputedRef<T>;
|
|
36
37
|
declare type MaybeElement = HTMLElement | SVGElement | VueInstance | undefined | null;
|
|
37
38
|
|
|
38
39
|
interface OnLongPressOptions {
|
|
@@ -86,7 +87,7 @@ interface Serializer<T> {
|
|
|
86
87
|
read(raw: string): T;
|
|
87
88
|
write(value: T): string;
|
|
88
89
|
}
|
|
89
|
-
interface
|
|
90
|
+
interface UseStorageOptions<T> extends ConfigurableEventFilter, ConfigurableWindow, ConfigurableFlush {
|
|
90
91
|
/**
|
|
91
92
|
* Watch for deep changes
|
|
92
93
|
*
|
|
@@ -124,7 +125,7 @@ interface StorageOptions<T> extends ConfigurableEventFilter, ConfigurableWindow,
|
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
declare type BasicColorSchema = 'light' | 'dark' | 'auto';
|
|
127
|
-
interface UseColorModeOptions<T extends string = BasicColorSchema> extends
|
|
128
|
+
interface UseColorModeOptions<T extends string = BasicColorSchema> extends UseStorageOptions<T | BasicColorSchema> {
|
|
128
129
|
/**
|
|
129
130
|
* CSS Selector for the target element applying to
|
|
130
131
|
*
|
|
@@ -215,7 +216,7 @@ interface UseDraggableProps extends UseDraggableOptions, RenderableComponent {
|
|
|
215
216
|
}
|
|
216
217
|
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>, {}>;
|
|
217
218
|
|
|
218
|
-
interface
|
|
219
|
+
interface UseResizeObserverOptions extends ConfigurableWindow {
|
|
219
220
|
/**
|
|
220
221
|
* Sets which box model the observer will observe changes to. Possible values
|
|
221
222
|
* are `content-box` (the default), and `border-box`.
|
|
@@ -225,12 +226,12 @@ interface ResizeObserverOptions extends ConfigurableWindow {
|
|
|
225
226
|
box?: 'content-box' | 'border-box';
|
|
226
227
|
}
|
|
227
228
|
|
|
228
|
-
declare const UseElementBounding: vue_demi.DefineComponent<
|
|
229
|
+
declare const UseElementBounding: vue_demi.DefineComponent<UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseResizeObserverOptions & RenderableComponent>, {}>;
|
|
229
230
|
|
|
230
231
|
declare type BindingValueFunction$5 = (state: boolean) => void;
|
|
231
232
|
declare const vElementHover: ObjectDirective<HTMLElement, BindingValueFunction$5>;
|
|
232
233
|
|
|
233
|
-
declare const UseElementSize: vue_demi.DefineComponent<ElementSize$1 &
|
|
234
|
+
declare const UseElementSize: vue_demi.DefineComponent<ElementSize$1 & UseResizeObserverOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<ElementSize$1 & UseResizeObserverOptions & RenderableComponent>, {}>;
|
|
234
235
|
|
|
235
236
|
interface ElementSize {
|
|
236
237
|
width: number;
|
|
@@ -244,7 +245,7 @@ interface ElementSize {
|
|
|
244
245
|
* @param callback
|
|
245
246
|
* @param options
|
|
246
247
|
*/
|
|
247
|
-
declare function useElementSize(target:
|
|
248
|
+
declare function useElementSize(target: MaybeComputedElementRef, initialSize?: ElementSize, options?: UseResizeObserverOptions): {
|
|
248
249
|
width: vue_demi.Ref<number>;
|
|
249
250
|
height: vue_demi.Ref<number>;
|
|
250
251
|
};
|
|
@@ -257,12 +258,12 @@ declare const vElementSize: ObjectDirective<HTMLElement, BindingValueFunction$4
|
|
|
257
258
|
|
|
258
259
|
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>, {}>;
|
|
259
260
|
|
|
260
|
-
interface
|
|
261
|
-
scrollTarget?:
|
|
261
|
+
interface UseElementVisibilityOptions extends ConfigurableWindow {
|
|
262
|
+
scrollTarget?: MaybeComputedRef<HTMLElement | undefined | null>;
|
|
262
263
|
}
|
|
263
264
|
|
|
264
265
|
declare type BindingValueFunction$3 = (state: boolean) => void;
|
|
265
|
-
declare type BindingValueArray$3 = [BindingValueFunction$3,
|
|
266
|
+
declare type BindingValueArray$3 = [BindingValueFunction$3, UseElementVisibilityOptions];
|
|
266
267
|
declare const vElementVisibility: ObjectDirective<HTMLElement, BindingValueFunction$3 | BindingValueArray$3>;
|
|
267
268
|
|
|
268
269
|
declare const UseEyeDropper: vue_demi.DefineComponent<{
|
|
@@ -275,11 +276,11 @@ declare const UseEyeDropper: vue_demi.DefineComponent<{
|
|
|
275
276
|
|
|
276
277
|
declare const UseFullscreen: 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>, {}>;
|
|
277
278
|
|
|
278
|
-
declare const UseGeolocation: vue_demi.DefineComponent<
|
|
279
|
+
declare const UseGeolocation: vue_demi.DefineComponent<UseGeolocationOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseGeolocationOptions>, {}>;
|
|
279
280
|
|
|
280
|
-
declare const UseIdle: vue_demi.DefineComponent<
|
|
281
|
+
declare const UseIdle: vue_demi.DefineComponent<UseIdleOptions & {
|
|
281
282
|
timeout: number;
|
|
282
|
-
}, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<
|
|
283
|
+
}, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseIdleOptions & {
|
|
283
284
|
timeout: number;
|
|
284
285
|
}>, {}>;
|
|
285
286
|
|
|
@@ -342,7 +343,7 @@ interface UseScrollOptions {
|
|
|
342
343
|
* @param element
|
|
343
344
|
* @param options
|
|
344
345
|
*/
|
|
345
|
-
declare function useScroll(element:
|
|
346
|
+
declare function useScroll(element: MaybeComputedRef<HTMLElement | SVGElement | Window | Document | null | undefined>, options?: UseScrollOptions): {
|
|
346
347
|
x: vue_demi.Ref<number>;
|
|
347
348
|
y: vue_demi.Ref<number>;
|
|
348
349
|
isScrolling: vue_demi.Ref<boolean>;
|
|
@@ -373,7 +374,7 @@ interface UseInfiniteScrollOptions extends UseScrollOptions {
|
|
|
373
374
|
*
|
|
374
375
|
* @default 'bottom'
|
|
375
376
|
*/
|
|
376
|
-
direction?: 'top' | 'bottom';
|
|
377
|
+
direction?: 'top' | 'bottom' | 'left' | 'right';
|
|
377
378
|
/**
|
|
378
379
|
* Whether to preserve the current scroll position when loading more items.
|
|
379
380
|
*
|
|
@@ -386,13 +387,13 @@ interface UseInfiniteScrollOptions extends UseScrollOptions {
|
|
|
386
387
|
*
|
|
387
388
|
* @see https://vueuse.org/useInfiniteScroll
|
|
388
389
|
*/
|
|
389
|
-
declare function useInfiniteScroll(element:
|
|
390
|
+
declare function useInfiniteScroll(element: MaybeComputedRef<HTMLElement | SVGElement | Window | Document | null | undefined>, onLoadMore: (state: UnwrapNestedRefs<ReturnType<typeof useScroll>>) => void | Promise<void>, options?: UseInfiniteScrollOptions): void;
|
|
390
391
|
|
|
391
392
|
declare type BindingValueFunction$2 = Parameters<typeof useInfiniteScroll>[1];
|
|
392
393
|
declare type BindingValueArray$2 = [BindingValueFunction$2, UseInfiniteScrollOptions];
|
|
393
394
|
declare const vInfiniteScroll: ObjectDirective<HTMLElement, BindingValueFunction$2 | BindingValueArray$2>;
|
|
394
395
|
|
|
395
|
-
interface
|
|
396
|
+
interface UseIntersectionObserverOptions extends ConfigurableWindow {
|
|
396
397
|
/**
|
|
397
398
|
* The Element or Document whose bounds are used as the bounding box when testing for intersection.
|
|
398
399
|
*/
|
|
@@ -408,10 +409,10 @@ interface IntersectionObserverOptions extends ConfigurableWindow {
|
|
|
408
409
|
}
|
|
409
410
|
|
|
410
411
|
declare type BindingValueFunction$1 = IntersectionObserverCallback;
|
|
411
|
-
declare type BindingValueArray$1 = [BindingValueFunction$1,
|
|
412
|
+
declare type BindingValueArray$1 = [BindingValueFunction$1, UseIntersectionObserverOptions];
|
|
412
413
|
declare const vIntersectionObserver: ObjectDirective<HTMLElement, BindingValueFunction$1 | BindingValueArray$1>;
|
|
413
414
|
|
|
414
|
-
declare const UseMouse: vue_demi.DefineComponent<
|
|
415
|
+
declare const UseMouse: vue_demi.DefineComponent<UseMouseOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseMouseOptions>, {}>;
|
|
415
416
|
|
|
416
417
|
declare const UseMouseInElement: vue_demi.DefineComponent<MouseInElementOptions & RenderableComponent, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<MouseInElementOptions & RenderableComponent>, {}>;
|
|
417
418
|
|
|
@@ -524,7 +525,7 @@ interface UseTimeAgoComponentOptions extends Omit<UseTimeAgoOptions<true>, 'cont
|
|
|
524
525
|
}
|
|
525
526
|
declare const UseTimeAgo: vue_demi.DefineComponent<UseTimeAgoComponentOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseTimeAgoComponentOptions>, {}>;
|
|
526
527
|
|
|
527
|
-
declare const UseTimestamp: vue_demi.DefineComponent<Omit<
|
|
528
|
+
declare const UseTimestamp: vue_demi.DefineComponent<Omit<UseTimestampOptions<true>, "controls">, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<Omit<UseTimestampOptions<true>, "controls">>, {}>;
|
|
528
529
|
|
|
529
530
|
interface UseVirtualListProps {
|
|
530
531
|
/**
|
|
@@ -552,6 +553,6 @@ declare const UseWindowFocus: vue_demi.DefineComponent<{}, () => vue_demi.VNode<
|
|
|
552
553
|
[key: string]: any;
|
|
553
554
|
}>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<vue_demi.ExtractPropTypes<{}>>, {}>;
|
|
554
555
|
|
|
555
|
-
declare const UseWindowSize: vue_demi.DefineComponent<
|
|
556
|
+
declare const UseWindowSize: vue_demi.DefineComponent<UseWindowSizeOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseWindowSizeOptions>, {}>;
|
|
556
557
|
|
|
557
558
|
export { OnClickOutside, OnLongPress, OnLongPressProps, UseActiveElement, UseBattery, UseBrowserLocation, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseDraggableProps, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseObjectUrlProps, 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
|
@@ -13,22 +13,6 @@
|
|
|
13
13
|
VueDemi.Vue = Vue
|
|
14
14
|
VueDemi.Vue2 = Vue
|
|
15
15
|
VueDemi.version = Vue.version
|
|
16
|
-
VueDemi.set = function(target, key, val) {
|
|
17
|
-
if (Array.isArray(target)) {
|
|
18
|
-
target.length = Math.max(target.length, key)
|
|
19
|
-
target.splice(key, 1, val)
|
|
20
|
-
return val
|
|
21
|
-
}
|
|
22
|
-
Vue.set(target, key, val)
|
|
23
|
-
return val
|
|
24
|
-
}
|
|
25
|
-
VueDemi.del = function(target, key) {
|
|
26
|
-
if (Array.isArray(target)) {
|
|
27
|
-
target.splice(key, 1)
|
|
28
|
-
return
|
|
29
|
-
}
|
|
30
|
-
Vue.delete(target, key)
|
|
31
|
-
}
|
|
32
16
|
}
|
|
33
17
|
else if (Vue.version.slice(0, 2) === '2.') {
|
|
34
18
|
if (VueCompositionAPI) {
|
|
@@ -108,7 +92,7 @@
|
|
|
108
92
|
|
|
109
93
|
function unrefElement(elRef) {
|
|
110
94
|
var _a;
|
|
111
|
-
const plain =
|
|
95
|
+
const plain = shared.resolveUnref(elRef);
|
|
112
96
|
return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
|
|
113
97
|
}
|
|
114
98
|
|
|
@@ -423,7 +407,7 @@
|
|
|
423
407
|
}
|
|
424
408
|
if (!storage)
|
|
425
409
|
return data;
|
|
426
|
-
const rawInit =
|
|
410
|
+
const rawInit = shared.resolveUnref(initialValue);
|
|
427
411
|
const type = guessSerializerType(rawInit);
|
|
428
412
|
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
|
|
429
413
|
const { pause: pauseWatch, resume: resumeWatch } = shared.pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });
|
|
@@ -469,13 +453,21 @@
|
|
|
469
453
|
}
|
|
470
454
|
}
|
|
471
455
|
|
|
456
|
+
function useSupported(callback, sync = false) {
|
|
457
|
+
const isSupported = vueDemi.ref();
|
|
458
|
+
const update = () => isSupported.value = Boolean(callback());
|
|
459
|
+
update();
|
|
460
|
+
shared.tryOnMounted(update, sync);
|
|
461
|
+
return isSupported;
|
|
462
|
+
}
|
|
463
|
+
|
|
472
464
|
function useMediaQuery(query, options = {}) {
|
|
473
465
|
const { window = defaultWindow } = options;
|
|
474
|
-
const isSupported =
|
|
466
|
+
const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function");
|
|
475
467
|
let mediaQuery;
|
|
476
468
|
const matches = vueDemi.ref(false);
|
|
477
469
|
const update = () => {
|
|
478
|
-
if (!isSupported)
|
|
470
|
+
if (!isSupported.value)
|
|
479
471
|
return;
|
|
480
472
|
if (!mediaQuery)
|
|
481
473
|
mediaQuery = window.matchMedia(query);
|
|
@@ -702,7 +694,7 @@
|
|
|
702
694
|
],
|
|
703
695
|
setup(props, { slots }) {
|
|
704
696
|
const target = vueDemi.ref();
|
|
705
|
-
const initialValue = props.storageKey ? core.useStorage(props.storageKey,
|
|
697
|
+
const initialValue = props.storageKey ? core.useStorage(props.storageKey, shared.resolveUnref(props.initialValue) || { x: 0, y: 0 }, core.isClient ? props.storageType === "session" ? sessionStorage : localStorage : void 0) : props.initialValue || { x: 0, y: 0 };
|
|
706
698
|
const data = vueDemi.reactive(core.useDraggable(target, __spreadProps$8(__spreadValues$a({}, props), {
|
|
707
699
|
initialValue
|
|
708
700
|
})));
|
|
@@ -773,7 +765,7 @@
|
|
|
773
765
|
function useResizeObserver(target, callback, options = {}) {
|
|
774
766
|
const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest(_a, ["window"]);
|
|
775
767
|
let observer;
|
|
776
|
-
const isSupported = window && "ResizeObserver" in window;
|
|
768
|
+
const isSupported = useSupported(() => window && "ResizeObserver" in window);
|
|
777
769
|
const cleanup = () => {
|
|
778
770
|
if (observer) {
|
|
779
771
|
observer.disconnect();
|
|
@@ -782,7 +774,7 @@
|
|
|
782
774
|
};
|
|
783
775
|
const stopWatch = vueDemi.watch(() => unrefElement(target), (el) => {
|
|
784
776
|
cleanup();
|
|
785
|
-
if (isSupported && window && el) {
|
|
777
|
+
if (isSupported.value && window && el) {
|
|
786
778
|
observer = new ResizeObserver(callback);
|
|
787
779
|
observer.observe(el, observerOptions);
|
|
788
780
|
}
|
|
@@ -846,16 +838,18 @@
|
|
|
846
838
|
if (!window)
|
|
847
839
|
return;
|
|
848
840
|
const document = window.document;
|
|
849
|
-
|
|
841
|
+
const el = shared.resolveUnref(element);
|
|
842
|
+
if (!el) {
|
|
850
843
|
elementIsVisible.value = false;
|
|
851
844
|
} else {
|
|
852
|
-
const rect =
|
|
845
|
+
const rect = el.getBoundingClientRect();
|
|
853
846
|
elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;
|
|
854
847
|
}
|
|
855
848
|
};
|
|
856
849
|
shared.tryOnMounted(testBounding);
|
|
857
|
-
if (window)
|
|
858
|
-
shared.tryOnMounted(() => useEventListener(
|
|
850
|
+
if (window) {
|
|
851
|
+
shared.tryOnMounted(() => useEventListener(() => shared.resolveUnref(scrollTarget) || window, "scroll", testBounding, { capture: false, passive: true }));
|
|
852
|
+
}
|
|
859
853
|
return elementIsVisible;
|
|
860
854
|
}
|
|
861
855
|
|
|
@@ -998,10 +992,10 @@
|
|
|
998
992
|
});
|
|
999
993
|
}
|
|
1000
994
|
const useImage = (options, asyncStateOptions = {}) => {
|
|
1001
|
-
const state = useAsyncState(() => loadImage(
|
|
995
|
+
const state = useAsyncState(() => loadImage(shared.resolveUnref(options)), void 0, __spreadValues$9({
|
|
1002
996
|
resetOnExecute: true
|
|
1003
997
|
}, asyncStateOptions));
|
|
1004
|
-
vueDemi.watch(() =>
|
|
998
|
+
vueDemi.watch(() => shared.resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });
|
|
1005
999
|
return state;
|
|
1006
1000
|
};
|
|
1007
1001
|
|
|
@@ -1059,37 +1053,35 @@
|
|
|
1059
1053
|
top: false,
|
|
1060
1054
|
bottom: false
|
|
1061
1055
|
});
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
const
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
useEventListener(element, "scroll", throttle ? shared.useThrottleFn(onScrollHandler, throttle) : onScrollHandler, eventListenerOptions);
|
|
1092
|
-
}
|
|
1056
|
+
const onScrollEnd = shared.useDebounceFn((e) => {
|
|
1057
|
+
isScrolling.value = false;
|
|
1058
|
+
directions.left = false;
|
|
1059
|
+
directions.right = false;
|
|
1060
|
+
directions.top = false;
|
|
1061
|
+
directions.bottom = false;
|
|
1062
|
+
onStop(e);
|
|
1063
|
+
}, throttle + idle);
|
|
1064
|
+
const onScrollHandler = (e) => {
|
|
1065
|
+
const eventTarget = e.target === document ? e.target.documentElement : e.target;
|
|
1066
|
+
const scrollLeft = eventTarget.scrollLeft;
|
|
1067
|
+
directions.left = scrollLeft < x.value;
|
|
1068
|
+
directions.right = scrollLeft > x.value;
|
|
1069
|
+
arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
|
|
1070
|
+
arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0);
|
|
1071
|
+
x.value = scrollLeft;
|
|
1072
|
+
let scrollTop = eventTarget.scrollTop;
|
|
1073
|
+
if (e.target === document && !scrollTop)
|
|
1074
|
+
scrollTop = document.body.scrollTop;
|
|
1075
|
+
directions.top = scrollTop < y.value;
|
|
1076
|
+
directions.bottom = scrollTop > y.value;
|
|
1077
|
+
arrivedState.top = scrollTop <= 0 + (offset.top || 0);
|
|
1078
|
+
arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0);
|
|
1079
|
+
y.value = scrollTop;
|
|
1080
|
+
isScrolling.value = true;
|
|
1081
|
+
onScrollEnd(e);
|
|
1082
|
+
onScroll(e);
|
|
1083
|
+
};
|
|
1084
|
+
useEventListener(element, "scroll", throttle ? shared.useThrottleFn(onScrollHandler, throttle) : onScrollHandler, eventListenerOptions);
|
|
1093
1085
|
return {
|
|
1094
1086
|
x,
|
|
1095
1087
|
y,
|
|
@@ -1129,7 +1121,7 @@
|
|
|
1129
1121
|
vueDemi.watch(() => state.arrivedState[direction], async (v) => {
|
|
1130
1122
|
var _a2, _b2;
|
|
1131
1123
|
if (v) {
|
|
1132
|
-
const elem =
|
|
1124
|
+
const elem = shared.resolveUnref(element);
|
|
1133
1125
|
const previous = {
|
|
1134
1126
|
height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,
|
|
1135
1127
|
width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0
|
|
@@ -1163,9 +1155,9 @@
|
|
|
1163
1155
|
threshold = 0.1,
|
|
1164
1156
|
window = defaultWindow
|
|
1165
1157
|
} = options;
|
|
1166
|
-
const isSupported = window && "IntersectionObserver" in window;
|
|
1158
|
+
const isSupported = useSupported(() => window && "IntersectionObserver" in window);
|
|
1167
1159
|
let cleanup = shared.noop;
|
|
1168
|
-
const stopWatch = isSupported ? vueDemi.watch(() => ({
|
|
1160
|
+
const stopWatch = isSupported.value ? vueDemi.watch(() => ({
|
|
1169
1161
|
el: unrefElement(target),
|
|
1170
1162
|
root: unrefElement(root)
|
|
1171
1163
|
}), ({ el, root: root2 }) => {
|
|
@@ -1485,7 +1477,7 @@
|
|
|
1485
1477
|
var _a;
|
|
1486
1478
|
return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);
|
|
1487
1479
|
});
|
|
1488
|
-
vueDemi.watch([elRef, () =>
|
|
1480
|
+
vueDemi.watch([elRef, () => shared.resolveUnref(prop)], ([el, prop2]) => {
|
|
1489
1481
|
var _a;
|
|
1490
1482
|
if (el && window) {
|
|
1491
1483
|
const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();
|
|
@@ -1495,7 +1487,7 @@
|
|
|
1495
1487
|
vueDemi.watch(variable, (val) => {
|
|
1496
1488
|
var _a;
|
|
1497
1489
|
if ((_a = elRef.value) == null ? void 0 : _a.style)
|
|
1498
|
-
elRef.value.style.setProperty(
|
|
1490
|
+
elRef.value.style.setProperty(shared.resolveUnref(prop), val);
|
|
1499
1491
|
});
|
|
1500
1492
|
return variable;
|
|
1501
1493
|
}
|
|
@@ -1634,7 +1626,7 @@
|
|
|
1634
1626
|
const isLocked = vueDemi.ref(initialState);
|
|
1635
1627
|
let stopTouchMoveListener = null;
|
|
1636
1628
|
let initialOverflow;
|
|
1637
|
-
vueDemi.watch(
|
|
1629
|
+
vueDemi.watch(shared.resolveRef(element), (el) => {
|
|
1638
1630
|
if (el) {
|
|
1639
1631
|
const ele = el;
|
|
1640
1632
|
initialOverflow = ele.style.overflow;
|
|
@@ -1645,7 +1637,7 @@
|
|
|
1645
1637
|
immediate: true
|
|
1646
1638
|
});
|
|
1647
1639
|
const lock = () => {
|
|
1648
|
-
const ele =
|
|
1640
|
+
const ele = shared.resolveUnref(element);
|
|
1649
1641
|
if (!ele || isLocked.value)
|
|
1650
1642
|
return;
|
|
1651
1643
|
if (shared.isIOS) {
|
|
@@ -1655,7 +1647,7 @@
|
|
|
1655
1647
|
isLocked.value = true;
|
|
1656
1648
|
};
|
|
1657
1649
|
const unlock = () => {
|
|
1658
|
-
const ele =
|
|
1650
|
+
const ele = shared.resolveUnref(element);
|
|
1659
1651
|
if (!ele || !isLocked.value)
|
|
1660
1652
|
return;
|
|
1661
1653
|
shared.isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());
|
|
@@ -1713,8 +1705,7 @@
|
|
|
1713
1705
|
name: "UseTimeAgo",
|
|
1714
1706
|
props: ["time", "updateInterval", "max", "fullDateFormatter", "messages"],
|
|
1715
1707
|
setup(props, { slots }) {
|
|
1716
|
-
const
|
|
1717
|
-
const data = vueDemi.reactive(core.useTimeAgo(time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
1708
|
+
const data = vueDemi.reactive(core.useTimeAgo(() => props.time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
1718
1709
|
return () => {
|
|
1719
1710
|
if (slots.default)
|
|
1720
1711
|
return slots.default(data);
|
package/index.iife.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var VueDemi=function(s,n,d){if(s.install)return s;if(n)if(n.version.slice(0,4)==="2.7."){for(var u in n)s[u]=n[u];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version,s.set=function(w,h,P){return Array.isArray(w)?(w.length=Math.max(w.length,h),w.splice(h,1,P),P):(n.set(w,h,P),P)},s.del=function(w,h){if(Array.isArray(w)){w.splice(h,1);return}n.delete(w,h)}}else if(n.version.slice(0,2)==="2.")if(d){for(var u in d)s[u]=d[u];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(n.version.slice(0,2)==="3."){for(var u in n)s[u]=n[u];s.isVue2=!1,s.isVue3=!0,s.install=function(){},s.Vue=n,s.Vue2=void 0,s.version=n.version,s.set=function(w,h,P){return Array.isArray(w)?(w.length=Math.max(w.length,h),w.splice(h,1,P),P):(w[h]=P,P)},s.del=function(w,h){if(Array.isArray(w)){w.splice(h,1);return}delete w[h]}}else console.error("[vue-demi] Vue version "+n.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");return s}(this.VueDemi=this.VueDemi||(typeof VueDemi!="undefined"?VueDemi:{}),this.Vue||(typeof Vue!="undefined"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI!="undefined"?VueCompositionAPI:void 0));(function(s,n,d,u){"use strict";const w=n.defineComponent({name:"OnClickOutside",props:["as"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return d.onClickOutside(o,a=>{r("trigger",a)}),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}});function h(t){var e;const r=n.unref(t);return(e=r==null?void 0:r.$el)!=null?e:r}const P=u.isClient?window:void 0;function $(...t){let e,r,o,a;if(u.isString(t[0])?([r,o,a]=t,e=P):[e,r,o,a]=t,!e)return u.noop;let l=u.noop;const i=n.watch(()=>h(e),f=>{l(),!!f&&(f.addEventListener(r,o,a),l=()=>{f.removeEventListener(r,o,a),l=u.noop})},{immediate:!0,flush:"post"}),c=()=>{i(),l()};return u.tryOnScopeDispose(c),c}function z(t,e,r={}){const{window:o=P,ignore:a,capture:l=!0,detectIframe:i=!1}=r;if(!o)return;const c=n.ref(!0);let f;const _=p=>{o.clearTimeout(f);const g=h(t),b=p.composedPath();!g||g===p.target||b.includes(g)||!c.value||a&&a.length>0&&a.some(U=>{const m=h(U);return m&&(p.target===m||b.includes(m))})||e(p)},v=[$(o,"click",_,{passive:!0,capture:l}),$(o,"pointerdown",p=>{const g=h(t);c.value=!!g&&!p.composedPath().includes(g)},{passive:!0}),$(o,"pointerup",p=>{if(p.button===0){const g=p.composedPath();p.composedPath=()=>g,f=o.setTimeout(()=>_(p),50)}},{passive:!0}),i&&$(o,"blur",p=>{var g;const b=h(t);((g=document.activeElement)==null?void 0:g.tagName)==="IFRAME"&&!(b==null?void 0:b.contains(document.activeElement))&&e(p)})].filter(Boolean);return()=>v.forEach(p=>p())}const R=(()=>{let t=null;return(e,r)=>{if(t){t(),t=z(e,r.value);return}t=z(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 B(t,e,r={}){const{target:o=P,eventName:a="keydown",passive:l=!1}=r,i=Se(t);return $(o,a,f=>{i(f)&&e(f)},l)}var $e=Object.defineProperty,W=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Ee=Object.prototype.propertyIsEnumerable,k=(t,e,r)=>e in t?$e(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,je=(t,e)=>{for(var r in e||(e={}))Ce.call(e,r)&&k(t,r,e[r]);if(W)for(var r of W(e))Ee.call(e,r)&&k(t,r,e[r]);return t};const Le={[u.directiveHooks.mounted](t,e){var r,o;const a=(o=(r=e.arg)==null?void 0:r.split(","))!=null?o:[];if(typeof e.value=="function")B(a,e.value,{target:t});else{const[l,i]=e.value;B(a,l,je({target:t},i))}}},Ie=500;function N(t,e,r){var o,a;const l=n.computed(()=>h(t));let i=null;function c(){i!=null&&(clearTimeout(i),i=null)}function f(v){var O,p,g,b;((O=r==null?void 0:r.modifiers)==null?void 0:O.self)&&v.target!==l.value||(c(),((p=r==null?void 0:r.modifiers)==null?void 0:p.prevent)&&v.preventDefault(),((g=r==null?void 0:r.modifiers)==null?void 0:g.stop)&&v.stopPropagation(),i=setTimeout(()=>e(v),(b=r==null?void 0:r.delay)!=null?b:Ie))}const _={capture:(o=r==null?void 0:r.modifiers)==null?void 0:o.capture,once:(a=r==null?void 0:r.modifiers)==null?void 0:a.once};$(l,"pointerdown",f,_),$(l,"pointerup",c,_),$(l,"pointerleave",c,_)}const Me=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return N(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}}),F={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?N(t,e.value,{modifiers:e.modifiers}):N(t,...e.value)}},Ae=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:d.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),Ne=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(d.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),Te=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(d.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),T=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},V="__vueuse_ssr_handlers__";T[V]=T[V]||{};const Ve=T[V];function K(t,e){return Ve[t]||e}function He(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"||Array.isArray(t)?"object":Number.isNaN(t)?"any":"number"}const ze={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}};function Re(t,e,r,o={}){var a;const{flush:l="pre",deep:i=!0,listenToStorageChanges:c=!0,writeDefaults:f=!0,shallow:_,window:v=P,eventFilter:O,onError:p=y=>{console.error(y)}}=o,g=(_?n.shallowRef:n.ref)(e);if(!r)try{r=K("getDefaultStorage",()=>{var y;return(y=P)==null?void 0:y.localStorage})()}catch(y){p(y)}if(!r)return g;const b=n.unref(e),U=He(b),m=(a=o.serializer)!=null?a:ze[U],{pause:S,resume:C}=u.pausableWatch(g,()=>j(g.value),{flush:l,deep:i,eventFilter:O});return v&&c&&$(v,"storage",A),A(),g;function j(y){try{y==null?r.removeItem(t):r.setItem(t,m.write(y))}catch(E){p(E)}}function L(y){if(!(y&&y.key!==t)){S();try{const E=y?y.newValue:r.getItem(t);return E==null?(f&&b!==null&&r.setItem(t,m.write(b)),b):typeof E!="string"?E:m.read(E)}catch(E){p(E)}finally{C()}}}function A(y){y&&y.key!==t||(g.value=L(y))}}function Be(t,e={}){const{window:r=P}=e,o=Boolean(r&&"matchMedia"in r&&typeof r.matchMedia=="function");let a;const l=n.ref(!1),i=()=>{!o||(a||(a=r.matchMedia(t)),l.value=a.matches)};return u.tryOnBeforeMount(()=>{i(),!!a&&("addEventListener"in a?a.addEventListener("change",i):a.addListener(i),u.tryOnScopeDispose(()=>{"removeEventListener"in a?a.removeEventListener("change",i):a.removeListener(i)}))}),l}function We(t){return Be("(prefers-color-scheme: dark)",t)}var ke=Object.defineProperty,J=Object.getOwnPropertySymbols,Fe=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable,G=(t,e,r)=>e in t?ke(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Je=(t,e)=>{for(var r in e||(e={}))Fe.call(e,r)&&G(t,r,e[r]);if(J)for(var r of J(e))Ke.call(e,r)&&G(t,r,e[r]);return t};function Ge(t={}){const{selector:e="html",attribute:r="class",window:o=P,storage:a,storageKey:l="vueuse-color-scheme",listenToStorageChanges:i=!0,storageRef:c,emitAuto:f}=t,_=Je({auto:"",light:"light",dark:"dark"},t.modes||{}),v=We({window:o}),O=n.computed(()=>v.value?"dark":"light"),p=c||(l==null?n.ref("auto"):Re(l,"auto",a,{window:o,listenToStorageChanges:i})),g=n.computed({get(){return p.value==="auto"&&!f?O.value:p.value},set(S){p.value=S}}),b=K("updateHTMLAttrs",(S,C,j)=>{const L=o==null?void 0:o.document.querySelector(S);if(!!L)if(C==="class"){const A=j.split(/\s/g);Object.values(_).flatMap(y=>(y||"").split(/\s/g)).filter(Boolean).forEach(y=>{A.includes(y)?L.classList.add(y):L.classList.remove(y)})}else L.setAttribute(C,j)});function U(S){var C;const j=S==="auto"?O.value:S;b(e,r,(C=_[j])!=null?C:j)}function m(S){t.onChanged?t.onChanged(S,U):U(S)}return n.watch(g,m,{flush:"post",immediate:!0}),u.tryOnMounted(()=>m(g.value)),g}const qe=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(t,{slots:e}){const r=Ge(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=d.useDark(t),o=n.reactive({isDark:r,toggleDark:u.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),Ye=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(d.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),Xe=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(d.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),Ze=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:d.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),xe=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(d.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),De=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:d.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var et=Object.defineProperty,tt=Object.defineProperties,rt=Object.getOwnPropertyDescriptors,q=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,Q=(t,e,r)=>e in t?et(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,at=(t,e)=>{for(var r in e||(e={}))nt.call(e,r)&&Q(t,r,e[r]);if(q)for(var r of q(e))ot.call(e,r)&&Q(t,r,e[r]);return t},st=(t,e)=>tt(t,rt(e));const lt=n.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","stopPropagation","pointerTypes","as"],setup(t,{slots:e}){const r=n.ref(),o=t.storageKey?d.useStorage(t.storageKey,n.unref(t.initialValue)||{x:0,y:0},d.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0):t.initialValue||{x:0,y:0},a=n.reactive(d.useDraggable(r,st(at({},t),{initialValue:o})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${a.style}`},e.default(a))}}}),it=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function ct(t){const e=n.ref(!1);return $(t,"mouseenter",()=>e.value=!0),$(t,"mouseleave",()=>e.value=!1),e}const ut={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=ct(t);n.watch(r,o=>e.value(o))}}},ft=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useElementSize(r,{width:t.width,height:t.height},{box:t.box}));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var Y=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,vt=(t,e)=>{var r={};for(var o in t)dt.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&Y)for(var o of Y(t))e.indexOf(o)<0&&pt.call(t,o)&&(r[o]=t[o]);return r};function gt(t,e,r={}){const o=r,{window:a=P}=o,l=vt(o,["window"]);let i;const c=a&&"ResizeObserver"in a,f=()=>{i&&(i.disconnect(),i=void 0)},_=n.watch(()=>h(t),O=>{f(),c&&a&&O&&(i=new ResizeObserver(e),i.observe(O,l))},{immediate:!0,flush:"post"}),v=()=>{f(),_()};return u.tryOnScopeDispose(v),{isSupported:c,stop:v}}function _t(t,e={width:0,height:0},r={}){const o=n.ref(e.width),a=n.ref(e.height);return gt(t,([l])=>{o.value=l.contentRect.width,a.value=l.contentRect.height},r),n.watch(()=>h(t),l=>{o.value=l?e.width:0,a.value=l?e.height:0}),{width:o,height:a}}const Ot={[u.directiveHooks.mounted](t,e){var r;const o=typeof e.value=="function"?e.value:(r=e.value)==null?void 0:r[0],a=typeof e.value=="function"?[]:e.value.slice(1),{width:l,height:i}=_t(t,...a);n.watch([l,i],([c,f])=>o({width:c,height:f}))}},ht=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:d.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function X(t,{window:e=P,scrollTarget:r}={}){const o=n.ref(!1),a=()=>{if(!e)return;const l=e.document;if(!n.unref(t))o.value=!1;else{const i=n.unref(t).getBoundingClientRect();o.value=i.top<=(e.innerHeight||l.documentElement.clientHeight)&&i.left<=(e.innerWidth||l.documentElement.clientWidth)&&i.bottom>=0&&i.right>=0}};return u.tryOnMounted(a),e&&u.tryOnMounted(()=>$(n.unref(r)||e,"scroll",a,{capture:!1,passive:!0})),o}const yt={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=X(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=X(t,o);n.watch(a,l=>r(l),{immediate:!0})}}},Pt=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(d.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),mt=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),wt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(d.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),bt=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(d.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});function Ut(t,e,r){const{immediate:o=!0,delay:a=0,onError:l=u.noop,resetOnExecute:i=!0,shallow:c=!0}=r??{},f=c?n.shallowRef(e):n.ref(e),_=n.ref(!1),v=n.ref(!1),O=n.ref(void 0);async function p(g=0,...b){i&&(f.value=e),O.value=void 0,_.value=!1,v.value=!0,g>0&&await u.promiseTimeout(g);const U=typeof t=="function"?t(...b):t;try{const m=await U;f.value=m,_.value=!0}catch(m){O.value=m,l(m)}finally{v.value=!1}return f.value}return o&&p(a),{state:f,isReady:_,isLoading:v,error:O,execute:p}}var St=Object.defineProperty,Z=Object.getOwnPropertySymbols,$t=Object.prototype.hasOwnProperty,Ct=Object.prototype.propertyIsEnumerable,x=(t,e,r)=>e in t?St(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Et=(t,e)=>{for(var r in e||(e={}))$t.call(e,r)&&x(t,r,e[r]);if(Z)for(var r of Z(e))Ct.call(e,r)&&x(t,r,e[r]);return t};async function jt(t){return new Promise((e,r)=>{const o=new Image,{src:a,srcset:l,sizes:i}=t;o.src=a,l&&(o.srcset=l),i&&(o.sizes=i),o.onload=()=>e(o),o.onerror=r})}const Lt=(t,e={})=>{const r=Ut(()=>jt(n.unref(t)),void 0,Et({resetOnExecute:!0},e));return n.watch(()=>n.unref(t),()=>r.execute(e.delay),{deep:!0}),r},It=n.defineComponent({name:"UseImage",props:["src","srcset","sizes","as"],setup(t,{slots:e}){const r=n.reactive(Lt(t));return()=>r.isLoading&&e.loading?e.loading(r):r.error&&e.error?e.error(r.error):e.default?e.default(r):n.h(t.as||"img",t)}});function H(t,e={}){const{throttle:r=0,idle:o=200,onStop:a=u.noop,onScroll:l=u.noop,offset:i={left:0,right:0,top:0,bottom:0},eventListenerOptions:c={capture:!1,passive:!0}}=e,f=n.ref(0),_=n.ref(0),v=n.ref(!1),O=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),p=n.reactive({left:!1,right:!1,top:!1,bottom:!1});if(t){const g=u.useDebounceFn(U=>{v.value=!1,p.left=!1,p.right=!1,p.top=!1,p.bottom=!1,a(U)},r+o),b=U=>{const m=U.target===document?U.target.documentElement:U.target,S=m.scrollLeft;p.left=S<f.value,p.right=S>f.value,O.left=S<=0+(i.left||0),O.right=S+m.clientWidth>=m.scrollWidth-(i.right||0),f.value=S;let C=m.scrollTop;U.target===document&&!C&&(C=document.body.scrollTop),p.top=C<_.value,p.bottom=C>_.value,O.top=C<=0+(i.top||0),O.bottom=C+m.clientHeight>=m.scrollHeight-(i.bottom||0),_.value=C,v.value=!0,g(U),l(U)};$(t,"scroll",r?u.useThrottleFn(b,r):b,c)}return{x:f,y:_,isScrolling:v,arrivedState:O,directions:p}}var Mt=Object.defineProperty,At=Object.defineProperties,Nt=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,Tt=Object.prototype.hasOwnProperty,Vt=Object.prototype.propertyIsEnumerable,ee=(t,e,r)=>e in t?Mt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,te=(t,e)=>{for(var r in e||(e={}))Tt.call(e,r)&&ee(t,r,e[r]);if(D)for(var r of D(e))Vt.call(e,r)&&ee(t,r,e[r]);return t},Ht=(t,e)=>At(t,Nt(e));function re(t,e,r={}){var o,a;const l=(o=r.direction)!=null?o:"bottom",i=n.reactive(H(t,Ht(te({},r),{offset:te({[l]:(a=r.distance)!=null?a:0},r.offset)})));n.watch(()=>i.arrivedState[l],async c=>{var f,_;if(c){const v=n.unref(t),O={height:(f=v==null?void 0:v.scrollHeight)!=null?f:0,width:(_=v==null?void 0:v.scrollWidth)!=null?_:0};await e(i),r.preserveScrollPosition&&v&&n.nextTick(()=>{v.scrollTo({top:v.scrollHeight-O.height,left:v.scrollWidth-O.width})})}})}const zt={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?re(t,e.value):re(t,...e.value)}};function ne(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:l=.1,window:i=P}=r,c=i&&"IntersectionObserver"in i;let f=u.noop;const _=c?n.watch(()=>({el:h(t),root:h(o)}),({el:O,root:p})=>{if(f(),!O)return;const g=new IntersectionObserver(e,{root:p,rootMargin:a,threshold:l});g.observe(O),f=()=>{g.disconnect(),f=u.noop}},{immediate:!0,flush:"post"}):u.noop,v=()=>{f(),_()};return u.tryOnScopeDispose(v),{isSupported:c,stop:v}}const Rt={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?ne(t,e.value):ne(t,...e.value)}},Bt=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(d.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),Wt=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var kt=Object.defineProperty,Ft=Object.defineProperties,Kt=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,Gt=Object.prototype.propertyIsEnumerable,ae=(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)&&ae(t,r,e[r]);if(oe)for(var r of oe(e))Gt.call(e,r)&&ae(t,r,e[r]);return t},Qt=(t,e)=>Ft(t,Kt(e));const Yt=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(d.useMousePressed(Qt(qt({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Xt=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(d.useNetwork());return()=>{if(e.default)return e.default(r)}}});var Zt=Object.defineProperty,xt=Object.defineProperties,Dt=Object.getOwnPropertyDescriptors,se=Object.getOwnPropertySymbols,er=Object.prototype.hasOwnProperty,tr=Object.prototype.propertyIsEnumerable,le=(t,e,r)=>e in t?Zt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,rr=(t,e)=>{for(var r in e||(e={}))er.call(e,r)&&le(t,r,e[r]);if(se)for(var r of se(e))tr.call(e,r)&&le(t,r,e[r]);return t},nr=(t,e)=>xt(t,Dt(e));const or=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(d.useNow(nr(rr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),ar=n.defineComponent({name:"UseObjectUrl",props:["object"],setup(t,{slots:e}){const r=n.toRef(t,"object"),o=d.useObjectUrl(r);return()=>{if(e.default&&o.value)return e.default(o)}}});var sr=Object.defineProperty,lr=Object.defineProperties,ir=Object.getOwnPropertyDescriptors,ie=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,ce=(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={}))cr.call(e,r)&&ce(t,r,e[r]);if(ie)for(var r of ie(e))ur.call(e,r)&&ce(t,r,e[r]);return t},dr=(t,e)=>lr(t,ir(e));const pr=n.defineComponent({name:"UseOffsetPagination",props:["total","page","pageSize","onPageChange","onPageSizeChange","onPageCountChange"],emits:["page-change","page-size-change","page-count-change"],setup(t,{slots:e,emit:r}){const o=n.reactive(d.useOffsetPagination(dr(fr({},t),{onPageChange(...a){var l;(l=t.onPageChange)==null||l.call(t,...a),r("page-change",...a)},onPageSizeChange(...a){var l;(l=t.onPageSizeChange)==null||l.call(t,...a),r("page-size-change",...a)},onPageCountChange(...a){var l;(l=t.onPageCountChange)==null||l.call(t,...a),r("page-count-change",...a)}})));return()=>{if(e.default)return e.default(o)}}}),vr=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:d.useOnline()});return()=>{if(e.default)return e.default(r)}}}),gr=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:d.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var _r=Object.defineProperty,Or=Object.defineProperties,hr=Object.getOwnPropertyDescriptors,ue=Object.getOwnPropertySymbols,yr=Object.prototype.hasOwnProperty,Pr=Object.prototype.propertyIsEnumerable,fe=(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={}))yr.call(e,r)&&fe(t,r,e[r]);if(ue)for(var r of ue(e))Pr.call(e,r)&&fe(t,r,e[r]);return t},wr=(t,e)=>Or(t,hr(e));const br=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(d.usePointer(wr(mr({},t),{target:t.target==="self"?r:P})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),Ur=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:d.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),Sr=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:d.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),$r=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:d.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}});function I(t,e,{window:r=P,initialValue:o=""}={}){const a=n.ref(o),l=n.computed(()=>{var i;return h(e)||((i=r==null?void 0:r.document)==null?void 0:i.documentElement)});return n.watch([l,()=>n.unref(t)],([i,c])=>{var f;if(i&&r){const _=(f=r.getComputedStyle(i).getPropertyValue(c))==null?void 0:f.trim();a.value=_||o}},{immediate:!0}),n.watch(a,i=>{var c;((c=l.value)==null?void 0:c.style)&&l.value.style.setProperty(n.unref(t),i)}),a}const de="--vueuse-safe-area-top",pe="--vueuse-safe-area-right",ve="--vueuse-safe-area-bottom",ge="--vueuse-safe-area-left";function Cr(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(u.isClient){const l=I(de),i=I(pe),c=I(ve),f=I(ge);l.value="env(safe-area-inset-top, 0px)",i.value="env(safe-area-inset-right, 0px)",c.value="env(safe-area-inset-bottom, 0px)",f.value="env(safe-area-inset-left, 0px)",a(),$("resize",u.useDebounceFn(a))}function a(){t.value=M(de),e.value=M(pe),r.value=M(ve),o.value=M(ge)}return{top:t,right:e,bottom:r,left:o,update:a}}function M(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const Er=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:l}=Cr();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?l.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var jr=Object.defineProperty,Lr=Object.defineProperties,Ir=Object.getOwnPropertyDescriptors,_e=Object.getOwnPropertySymbols,Mr=Object.prototype.hasOwnProperty,Ar=Object.prototype.propertyIsEnumerable,Oe=(t,e,r)=>e in t?jr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Nr=(t,e)=>{for(var r in e||(e={}))Mr.call(e,r)&&Oe(t,r,e[r]);if(_e)for(var r of _e(e))Ar.call(e,r)&&Oe(t,r,e[r]);return t},Tr=(t,e)=>Lr(t,Ir(e));const Vr={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=H(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=H(t,Tr(Nr({},o),{onScroll(l){var i;(i=o.onScroll)==null||i.call(o,l),r(a)},onStop(l){var i;(i=o.onStop)==null||i.call(o,l),r(a)}}))}}};function Hr(t){const e=t||window.event;return e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}function zr(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 l=()=>{const c=n.unref(t);!c||r.value||(u.isIOS&&(o=$(c,"touchmove",Hr,{passive:!1})),c.style.overflow="hidden",r.value=!0)},i=()=>{const c=n.unref(t);!c||!r.value||(u.isIOS&&(o==null||o()),c.style.overflow=a,r.value=!1)};return u.tryOnScopeDispose(i),n.computed({get(){return r.value},set(c){c?l():i()}})}const Rr=(()=>{let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=zr(r,o.value);n.watch(e,l=>a.value=l)}})();var Br=Object.defineProperty,Wr=Object.defineProperties,kr=Object.getOwnPropertyDescriptors,he=Object.getOwnPropertySymbols,Fr=Object.prototype.hasOwnProperty,Kr=Object.prototype.propertyIsEnumerable,ye=(t,e,r)=>e in t?Br(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Jr=(t,e)=>{for(var r in e||(e={}))Fr.call(e,r)&&ye(t,r,e[r]);if(he)for(var r of he(e))Kr.call(e,r)&&ye(t,r,e[r]);return t},Gr=(t,e)=>Wr(t,kr(e));const qr=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages"],setup(t,{slots:e}){const r=n.toRef(t,"time"),o=n.reactive(d.useTimeAgo(r,Gr(Jr({},t),{controls:!0})));return()=>{if(e.default)return e.default(o)}}});var Qr=Object.defineProperty,Yr=Object.defineProperties,Xr=Object.getOwnPropertyDescriptors,Pe=Object.getOwnPropertySymbols,Zr=Object.prototype.hasOwnProperty,xr=Object.prototype.propertyIsEnumerable,me=(t,e,r)=>e in t?Qr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Dr=(t,e)=>{for(var r in e||(e={}))Zr.call(e,r)&&me(t,r,e[r]);if(Pe)for(var r of Pe(e))xr.call(e,r)&&me(t,r,e[r]);return t},en=(t,e)=>Yr(t,Xr(e));const tn=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(d.useTimestamp(en(Dr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var rn=Object.defineProperty,we=Object.getOwnPropertySymbols,nn=Object.prototype.hasOwnProperty,on=Object.prototype.propertyIsEnumerable,be=(t,e,r)=>e in t?rn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ue=(t,e)=>{for(var r in e||(e={}))nn.call(e,r)&&be(t,r,e[r]);if(we)for(var r of we(e))on.call(e,r)&&be(t,r,e[r]);return t};const an=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e}){const{list:r}=n.toRefs(t),{list:o,containerProps:a,wrapperProps:l}=d.useVirtualList(r,t.options);return a.style.height=t.height||"300px",()=>n.h("div",Ue({},a),[n.h("div",Ue({},l.value),o.value.map(i=>n.h("div",{style:{overFlow:"hidden",height:i.height}},e.default?e.default(i):"Please set content!")))])}}),sn=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:d.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),ln=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(d.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});s.OnClickOutside=w,s.OnLongPress=Me,s.UseActiveElement=Ae,s.UseBattery=Ne,s.UseBrowserLocation=Te,s.UseColorMode=qe,s.UseDark=Qe,s.UseDeviceMotion=Ye,s.UseDeviceOrientation=Xe,s.UseDevicePixelRatio=Ze,s.UseDevicesList=xe,s.UseDocumentVisibility=De,s.UseDraggable=lt,s.UseElementBounding=it,s.UseElementSize=ft,s.UseElementVisibility=ht,s.UseEyeDropper=Pt,s.UseFullscreen=mt,s.UseGeolocation=wt,s.UseIdle=bt,s.UseImage=It,s.UseMouse=Bt,s.UseMouseInElement=Wt,s.UseMousePressed=Yt,s.UseNetwork=Xt,s.UseNow=or,s.UseObjectUrl=ar,s.UseOffsetPagination=pr,s.UseOnline=vr,s.UsePageLeave=gr,s.UsePointer=br,s.UsePreferredColorScheme=Ur,s.UsePreferredDark=Sr,s.UsePreferredLanguages=$r,s.UseScreenSafeArea=Er,s.UseTimeAgo=qr,s.UseTimestamp=tn,s.UseVirtualList=an,s.UseWindowFocus=sn,s.UseWindowSize=ln,s.VOnClickOutside=R,s.VOnLongPress=F,s.vElementHover=ut,s.vElementSize=Ot,s.vElementVisibility=yt,s.vInfiniteScroll=zt,s.vIntersectionObserver=Rt,s.vOnClickOutside=R,s.vOnKeyStroke=Le,s.vOnLongPress=F,s.vScroll=Vr,s.vScrollLock=Rr,Object.defineProperty(s,"__esModule",{value:!0})})(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
|
|
1
|
+
var VueDemi=function(s,n,p){if(s.install)return s;if(n)if(n.version.slice(0,4)==="2.7."){for(var u in n)s[u]=n[u];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version}else if(n.version.slice(0,2)==="2.")if(p){for(var u in p)s[u]=p[u];s.isVue2=!0,s.isVue3=!1,s.install=function(){},s.Vue=n,s.Vue2=n,s.version=n.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.");else if(n.version.slice(0,2)==="3."){for(var u in n)s[u]=n[u];s.isVue2=!1,s.isVue3=!0,s.install=function(){},s.Vue=n,s.Vue2=void 0,s.version=n.version,s.set=function(C,h,w){return Array.isArray(C)?(C.length=Math.max(C.length,h),C.splice(h,1,w),w):(C[h]=w,w)},s.del=function(C,h){if(Array.isArray(C)){C.splice(h,1);return}delete C[h]}}else console.error("[vue-demi] Vue version "+n.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");return s}(this.VueDemi=this.VueDemi||(typeof VueDemi!="undefined"?VueDemi:{}),this.Vue||(typeof Vue!="undefined"?Vue:void 0),this.VueCompositionAPI||(typeof VueCompositionAPI!="undefined"?VueCompositionAPI:void 0));(function(s,n,p,u){"use strict";const C=n.defineComponent({name:"OnClickOutside",props:["as"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return p.onClickOutside(o,a=>{r("trigger",a)}),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}});function h(t){var e;const r=u.resolveUnref(t);return(e=r==null?void 0:r.$el)!=null?e:r}const w=u.isClient?window:void 0;function S(...t){let e,r,o,a;if(u.isString(t[0])?([r,o,a]=t,e=w):[e,r,o,a]=t,!e)return u.noop;let l=u.noop;const i=n.watch(()=>h(e),f=>{l(),!!f&&(f.addEventListener(r,o,a),l=()=>{f.removeEventListener(r,o,a),l=u.noop})},{immediate:!0,flush:"post"}),c=()=>{i(),l()};return u.tryOnScopeDispose(c),c}function R(t,e,r={}){const{window:o=w,ignore:a,capture:l=!0,detectIframe:i=!1}=r;if(!o)return;const c=n.ref(!0);let f;const _=d=>{o.clearTimeout(f);const g=h(t),P=d.composedPath();!g||g===d.target||P.includes(g)||!c.value||a&&a.length>0&&a.some(b=>{const y=h(b);return y&&(d.target===y||P.includes(y))})||e(d)},v=[S(o,"click",_,{passive:!0,capture:l}),S(o,"pointerdown",d=>{const g=h(t);c.value=!!g&&!d.composedPath().includes(g)},{passive:!0}),S(o,"pointerup",d=>{if(d.button===0){const g=d.composedPath();d.composedPath=()=>g,f=o.setTimeout(()=>_(d),50)}},{passive:!0}),i&&S(o,"blur",d=>{var g;const P=h(t);((g=document.activeElement)==null?void 0:g.tagName)==="IFRAME"&&!(P==null?void 0:P.contains(document.activeElement))&&e(d)})].filter(Boolean);return()=>v.forEach(d=>d())}const B=(()=>{let t=null;return(e,r)=>{if(t){t(),t=R(e,r.value);return}t=R(e,r.value)}})(),$e=t=>typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):t?()=>!0:()=>!1;function W(t,e,r={}){const{target:o=w,eventName:a="keydown",passive:l=!1}=r,i=$e(t);return S(o,a,f=>{i(f)&&e(f)},l)}var Ce=Object.defineProperty,k=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,je=Object.prototype.propertyIsEnumerable,F=(t,e,r)=>e in t?Ce(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Le=(t,e)=>{for(var r in e||(e={}))Ee.call(e,r)&&F(t,r,e[r]);if(k)for(var r of k(e))je.call(e,r)&&F(t,r,e[r]);return t};const Ie={[u.directiveHooks.mounted](t,e){var r,o;const a=(o=(r=e.arg)==null?void 0:r.split(","))!=null?o:[];if(typeof e.value=="function")W(a,e.value,{target:t});else{const[l,i]=e.value;W(a,l,Le({target:t},i))}}},Me=500;function N(t,e,r){var o,a;const l=n.computed(()=>h(t));let i=null;function c(){i!=null&&(clearTimeout(i),i=null)}function f(v){var O,d,g,P;((O=r==null?void 0:r.modifiers)==null?void 0:O.self)&&v.target!==l.value||(c(),((d=r==null?void 0:r.modifiers)==null?void 0:d.prevent)&&v.preventDefault(),((g=r==null?void 0:r.modifiers)==null?void 0:g.stop)&&v.stopPropagation(),i=setTimeout(()=>e(v),(P=r==null?void 0:r.delay)!=null?P:Me))}const _={capture:(o=r==null?void 0:r.modifiers)==null?void 0:o.capture,once:(a=r==null?void 0:r.modifiers)==null?void 0:a.once};S(l,"pointerdown",f,_),S(l,"pointerup",c,_),S(l,"pointerleave",c,_)}const Ve=n.defineComponent({name:"OnLongPress",props:["as","options"],emits:["trigger"],setup(t,{slots:e,emit:r}){const o=n.ref();return N(o,a=>{r("trigger",a)},t.options),()=>{if(e.default)return n.h(t.as||"div",{ref:o},e.default())}}}),K={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?N(t,e.value,{modifiers:e.modifiers}):N(t,...e.value)}},Ne=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:p.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),Te=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(p.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),Ae=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(p.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),T=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},A="__vueuse_ssr_handlers__";T[A]=T[A]||{};const He=T[A];function J(t,e){return He[t]||e}function ze(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"||Array.isArray(t)?"object":Number.isNaN(t)?"any":"number"}const Re={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}};function Be(t,e,r,o={}){var a;const{flush:l="pre",deep:i=!0,listenToStorageChanges:c=!0,writeDefaults:f=!0,shallow:_,window:v=w,eventFilter:O,onError:d=m=>{console.error(m)}}=o,g=(_?n.shallowRef:n.ref)(e);if(!r)try{r=J("getDefaultStorage",()=>{var m;return(m=w)==null?void 0:m.localStorage})()}catch(m){d(m)}if(!r)return g;const P=u.resolveUnref(e),b=ze(P),y=(a=o.serializer)!=null?a:Re[b],{pause:U,resume:$}=u.pausableWatch(g,()=>j(g.value),{flush:l,deep:i,eventFilter:O});return v&&c&&S(v,"storage",V),V(),g;function j(m){try{m==null?r.removeItem(t):r.setItem(t,y.write(m))}catch(E){d(E)}}function L(m){if(!(m&&m.key!==t)){U();try{const E=m?m.newValue:r.getItem(t);return E==null?(f&&P!==null&&r.setItem(t,y.write(P)),P):typeof E!="string"?E:y.read(E)}catch(E){d(E)}finally{$()}}}function V(m){m&&m.key!==t||(g.value=L(m))}}function H(t,e=!1){const r=n.ref(),o=()=>r.value=Boolean(t());return o(),u.tryOnMounted(o,e),r}function We(t,e={}){const{window:r=w}=e,o=H(()=>r&&"matchMedia"in r&&typeof r.matchMedia=="function");let a;const l=n.ref(!1),i=()=>{!o.value||(a||(a=r.matchMedia(t)),l.value=a.matches)};return u.tryOnBeforeMount(()=>{i(),!!a&&("addEventListener"in a?a.addEventListener("change",i):a.addListener(i),u.tryOnScopeDispose(()=>{"removeEventListener"in a?a.removeEventListener("change",i):a.removeListener(i)}))}),l}function ke(t){return We("(prefers-color-scheme: dark)",t)}var Fe=Object.defineProperty,G=Object.getOwnPropertySymbols,Ke=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable,q=(t,e,r)=>e in t?Fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ge=(t,e)=>{for(var r in e||(e={}))Ke.call(e,r)&&q(t,r,e[r]);if(G)for(var r of G(e))Je.call(e,r)&&q(t,r,e[r]);return t};function qe(t={}){const{selector:e="html",attribute:r="class",window:o=w,storage:a,storageKey:l="vueuse-color-scheme",listenToStorageChanges:i=!0,storageRef:c,emitAuto:f}=t,_=Ge({auto:"",light:"light",dark:"dark"},t.modes||{}),v=ke({window:o}),O=n.computed(()=>v.value?"dark":"light"),d=c||(l==null?n.ref("auto"):Be(l,"auto",a,{window:o,listenToStorageChanges:i})),g=n.computed({get(){return d.value==="auto"&&!f?O.value:d.value},set(U){d.value=U}}),P=J("updateHTMLAttrs",(U,$,j)=>{const L=o==null?void 0:o.document.querySelector(U);if(!!L)if($==="class"){const V=j.split(/\s/g);Object.values(_).flatMap(m=>(m||"").split(/\s/g)).filter(Boolean).forEach(m=>{V.includes(m)?L.classList.add(m):L.classList.remove(m)})}else L.setAttribute($,j)});function b(U){var $;const j=U==="auto"?O.value:U;P(e,r,($=_[j])!=null?$:j)}function y(U){t.onChanged?t.onChanged(U,b):b(U)}return n.watch(g,y,{flush:"post",immediate:!0}),u.tryOnMounted(()=>y(g.value)),g}const Qe=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(t,{slots:e}){const r=qe(t),o=n.reactive({mode:r});return()=>{if(e.default)return e.default(o)}}}),Ye=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=p.useDark(t),o=n.reactive({isDark:r,toggleDark:u.useToggle(r)});return()=>{if(e.default)return e.default(o)}}}),Xe=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(p.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),Ze=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(p.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),xe=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:p.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),De=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(p.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),et=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:p.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var tt=Object.defineProperty,rt=Object.defineProperties,nt=Object.getOwnPropertyDescriptors,Q=Object.getOwnPropertySymbols,ot=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable,Y=(t,e,r)=>e in t?tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,st=(t,e)=>{for(var r in e||(e={}))ot.call(e,r)&&Y(t,r,e[r]);if(Q)for(var r of Q(e))at.call(e,r)&&Y(t,r,e[r]);return t},lt=(t,e)=>rt(t,nt(e));const it=n.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","stopPropagation","pointerTypes","as"],setup(t,{slots:e}){const r=n.ref(),o=t.storageKey?p.useStorage(t.storageKey,u.resolveUnref(t.initialValue)||{x:0,y:0},p.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0):t.initialValue||{x:0,y:0},a=n.reactive(p.useDraggable(r,lt(st({},t),{initialValue:o})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${a.style}`},e.default(a))}}}),ut=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(p.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function ct(t){const e=n.ref(!1);return S(t,"mouseenter",()=>e.value=!0),S(t,"mouseleave",()=>e.value=!1),e}const ft={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=ct(t);n.watch(r,o=>e.value(o))}}},pt=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(p.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 X=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,vt=Object.prototype.propertyIsEnumerable,gt=(t,e)=>{var r={};for(var o in t)dt.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&X)for(var o of X(t))e.indexOf(o)<0&&vt.call(t,o)&&(r[o]=t[o]);return r};function _t(t,e,r={}){const o=r,{window:a=w}=o,l=gt(o,["window"]);let i;const c=H(()=>a&&"ResizeObserver"in a),f=()=>{i&&(i.disconnect(),i=void 0)},_=n.watch(()=>h(t),O=>{f(),c.value&&a&&O&&(i=new ResizeObserver(e),i.observe(O,l))},{immediate:!0,flush:"post"}),v=()=>{f(),_()};return u.tryOnScopeDispose(v),{isSupported:c,stop:v}}function Ot(t,e={width:0,height:0},r={}){const o=n.ref(e.width),a=n.ref(e.height);return _t(t,([l])=>{o.value=l.contentRect.width,a.value=l.contentRect.height},r),n.watch(()=>h(t),l=>{o.value=l?e.width:0,a.value=l?e.height:0}),{width:o,height:a}}const mt={[u.directiveHooks.mounted](t,e){var r;const o=typeof e.value=="function"?e.value:(r=e.value)==null?void 0:r[0],a=typeof e.value=="function"?[]:e.value.slice(1),{width:l,height:i}=Ot(t,...a);n.watch([l,i],([c,f])=>o({width:c,height:f}))}},yt=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive({isVisible:p.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});function Z(t,{window:e=w,scrollTarget:r}={}){const o=n.ref(!1),a=()=>{if(!e)return;const l=e.document,i=u.resolveUnref(t);if(!i)o.value=!1;else{const c=i.getBoundingClientRect();o.value=c.top<=(e.innerHeight||l.documentElement.clientHeight)&&c.left<=(e.innerWidth||l.documentElement.clientWidth)&&c.bottom>=0&&c.right>=0}};return u.tryOnMounted(a),e&&u.tryOnMounted(()=>S(()=>u.resolveUnref(r)||e,"scroll",a,{capture:!1,passive:!0})),o}const Pt={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=Z(t);n.watch(o,a=>r(a),{immediate:!0})}else{const[r,o]=e.value,a=Z(t,o);n.watch(a,l=>r(l),{immediate:!0})}}},ht=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(p.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),wt=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(p.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),bt=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(p.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),Ut=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(p.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}});function St(t,e,r){const{immediate:o=!0,delay:a=0,onError:l=u.noop,resetOnExecute:i=!0,shallow:c=!0}=r??{},f=c?n.shallowRef(e):n.ref(e),_=n.ref(!1),v=n.ref(!1),O=n.ref(void 0);async function d(g=0,...P){i&&(f.value=e),O.value=void 0,_.value=!1,v.value=!0,g>0&&await u.promiseTimeout(g);const b=typeof t=="function"?t(...P):t;try{const y=await b;f.value=y,_.value=!0}catch(y){O.value=y,l(y)}finally{v.value=!1}return f.value}return o&&d(a),{state:f,isReady:_,isLoading:v,error:O,execute:d}}var $t=Object.defineProperty,x=Object.getOwnPropertySymbols,Ct=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable,D=(t,e,r)=>e in t?$t(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,jt=(t,e)=>{for(var r in e||(e={}))Ct.call(e,r)&&D(t,r,e[r]);if(x)for(var r of x(e))Et.call(e,r)&&D(t,r,e[r]);return t};async function Lt(t){return new Promise((e,r)=>{const o=new Image,{src:a,srcset:l,sizes:i}=t;o.src=a,l&&(o.srcset=l),i&&(o.sizes=i),o.onload=()=>e(o),o.onerror=r})}const It=(t,e={})=>{const r=St(()=>Lt(u.resolveUnref(t)),void 0,jt({resetOnExecute:!0},e));return n.watch(()=>u.resolveUnref(t),()=>r.execute(e.delay),{deep:!0}),r},Mt=n.defineComponent({name:"UseImage",props:["src","srcset","sizes","as"],setup(t,{slots:e}){const r=n.reactive(It(t));return()=>r.isLoading&&e.loading?e.loading(r):r.error&&e.error?e.error(r.error):e.default?e.default(r):n.h(t.as||"img",t)}});function z(t,e={}){const{throttle:r=0,idle:o=200,onStop:a=u.noop,onScroll:l=u.noop,offset:i={left:0,right:0,top:0,bottom:0},eventListenerOptions:c={capture:!1,passive:!0}}=e,f=n.ref(0),_=n.ref(0),v=n.ref(!1),O=n.reactive({left:!0,right:!1,top:!0,bottom:!1}),d=n.reactive({left:!1,right:!1,top:!1,bottom:!1}),g=u.useDebounceFn(b=>{v.value=!1,d.left=!1,d.right=!1,d.top=!1,d.bottom=!1,a(b)},r+o),P=b=>{const y=b.target===document?b.target.documentElement:b.target,U=y.scrollLeft;d.left=U<f.value,d.right=U>f.value,O.left=U<=0+(i.left||0),O.right=U+y.clientWidth>=y.scrollWidth-(i.right||0),f.value=U;let $=y.scrollTop;b.target===document&&!$&&($=document.body.scrollTop),d.top=$<_.value,d.bottom=$>_.value,O.top=$<=0+(i.top||0),O.bottom=$+y.clientHeight>=y.scrollHeight-(i.bottom||0),_.value=$,v.value=!0,g(b),l(b)};return S(t,"scroll",r?u.useThrottleFn(P,r):P,c),{x:f,y:_,isScrolling:v,arrivedState:O,directions:d}}var Vt=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?Vt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,re=(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},zt=(t,e)=>Nt(t,Tt(e));function ne(t,e,r={}){var o,a;const l=(o=r.direction)!=null?o:"bottom",i=n.reactive(z(t,zt(re({},r),{offset:re({[l]:(a=r.distance)!=null?a:0},r.offset)})));n.watch(()=>i.arrivedState[l],async c=>{var f,_;if(c){const v=u.resolveUnref(t),O={height:(f=v==null?void 0:v.scrollHeight)!=null?f:0,width:(_=v==null?void 0:v.scrollWidth)!=null?_:0};await e(i),r.preserveScrollPosition&&v&&n.nextTick(()=>{v.scrollTo({top:v.scrollHeight-O.height,left:v.scrollWidth-O.width})})}})}const Rt={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?ne(t,e.value):ne(t,...e.value)}};function oe(t,e,r={}){const{root:o,rootMargin:a="0px",threshold:l=.1,window:i=w}=r,c=H(()=>i&&"IntersectionObserver"in i);let f=u.noop;const _=c.value?n.watch(()=>({el:h(t),root:h(o)}),({el:O,root:d})=>{if(f(),!O)return;const g=new IntersectionObserver(e,{root:d,rootMargin:a,threshold:l});g.observe(O),f=()=>{g.disconnect(),f=u.noop}},{immediate:!0,flush:"post"}):u.noop,v=()=>{f(),_()};return u.tryOnScopeDispose(v),{isSupported:c,stop:v}}const Bt={[u.directiveHooks.mounted](t,e){typeof e.value=="function"?oe(t,e.value):oe(t,...e.value)}},Wt=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(p.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),kt=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(p.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}});var Ft=Object.defineProperty,Kt=Object.defineProperties,Jt=Object.getOwnPropertyDescriptors,ae=Object.getOwnPropertySymbols,Gt=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable,se=(t,e,r)=>e in t?Ft(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Qt=(t,e)=>{for(var r in e||(e={}))Gt.call(e,r)&&se(t,r,e[r]);if(ae)for(var r of ae(e))qt.call(e,r)&&se(t,r,e[r]);return t},Yt=(t,e)=>Kt(t,Jt(e));const Xt=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),o=n.reactive(p.useMousePressed(Yt(Qt({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(o))}}}),Zt=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(p.useNetwork());return()=>{if(e.default)return e.default(r)}}});var xt=Object.defineProperty,Dt=Object.defineProperties,er=Object.getOwnPropertyDescriptors,le=Object.getOwnPropertySymbols,tr=Object.prototype.hasOwnProperty,rr=Object.prototype.propertyIsEnumerable,ie=(t,e,r)=>e in t?xt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,nr=(t,e)=>{for(var r in e||(e={}))tr.call(e,r)&&ie(t,r,e[r]);if(le)for(var r of le(e))rr.call(e,r)&&ie(t,r,e[r]);return t},or=(t,e)=>Dt(t,er(e));const ar=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(p.useNow(or(nr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),sr=n.defineComponent({name:"UseObjectUrl",props:["object"],setup(t,{slots:e}){const r=n.toRef(t,"object"),o=p.useObjectUrl(r);return()=>{if(e.default&&o.value)return e.default(o)}}});var lr=Object.defineProperty,ir=Object.defineProperties,ur=Object.getOwnPropertyDescriptors,ue=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,fr=Object.prototype.propertyIsEnumerable,ce=(t,e,r)=>e in t?lr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,pr=(t,e)=>{for(var r in e||(e={}))cr.call(e,r)&&ce(t,r,e[r]);if(ue)for(var r of ue(e))fr.call(e,r)&&ce(t,r,e[r]);return t},dr=(t,e)=>ir(t,ur(e));const vr=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(p.useOffsetPagination(dr(pr({},t),{onPageChange(...a){var l;(l=t.onPageChange)==null||l.call(t,...a),r("page-change",...a)},onPageSizeChange(...a){var l;(l=t.onPageSizeChange)==null||l.call(t,...a),r("page-size-change",...a)},onPageCountChange(...a){var l;(l=t.onPageCountChange)==null||l.call(t,...a),r("page-count-change",...a)}})));return()=>{if(e.default)return e.default(o)}}}),gr=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:p.useOnline()});return()=>{if(e.default)return e.default(r)}}}),_r=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:p.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var Or=Object.defineProperty,mr=Object.defineProperties,yr=Object.getOwnPropertyDescriptors,fe=Object.getOwnPropertySymbols,Pr=Object.prototype.hasOwnProperty,hr=Object.prototype.propertyIsEnumerable,pe=(t,e,r)=>e in t?Or(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,wr=(t,e)=>{for(var r in e||(e={}))Pr.call(e,r)&&pe(t,r,e[r]);if(fe)for(var r of fe(e))hr.call(e,r)&&pe(t,r,e[r]);return t},br=(t,e)=>mr(t,yr(e));const Ur=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),o=n.reactive(p.usePointer(br(wr({},t),{target:t.target==="self"?r:w})));return()=>{if(e.default)return e.default(o,{ref:r})}}}),Sr=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:p.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),$r=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:p.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),Cr=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:p.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}});function I(t,e,{window:r=w,initialValue:o=""}={}){const a=n.ref(o),l=n.computed(()=>{var i;return h(e)||((i=r==null?void 0:r.document)==null?void 0:i.documentElement)});return n.watch([l,()=>u.resolveUnref(t)],([i,c])=>{var f;if(i&&r){const _=(f=r.getComputedStyle(i).getPropertyValue(c))==null?void 0:f.trim();a.value=_||o}},{immediate:!0}),n.watch(a,i=>{var c;((c=l.value)==null?void 0:c.style)&&l.value.style.setProperty(u.resolveUnref(t),i)}),a}const de="--vueuse-safe-area-top",ve="--vueuse-safe-area-right",ge="--vueuse-safe-area-bottom",_e="--vueuse-safe-area-left";function Er(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),o=n.ref("");if(u.isClient){const l=I(de),i=I(ve),c=I(ge),f=I(_e);l.value="env(safe-area-inset-top, 0px)",i.value="env(safe-area-inset-right, 0px)",c.value="env(safe-area-inset-bottom, 0px)",f.value="env(safe-area-inset-left, 0px)",a(),S("resize",u.useDebounceFn(a))}function a(){t.value=M(de),e.value=M(ve),r.value=M(ge),o.value=M(_e)}return{top:t,right:e,bottom:r,left:o,update:a}}function M(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const jr=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:l}=Er();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?l.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var Lr=Object.defineProperty,Ir=Object.defineProperties,Mr=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,Vr=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={}))Vr.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)=>Ir(t,Mr(e));const Hr={[u.directiveHooks.mounted](t,e){if(typeof e.value=="function"){const r=e.value,o=z(t,{onScroll(){r(o)},onStop(){r(o)}})}else{const[r,o]=e.value,a=z(t,Ar(Tr({},o),{onScroll(l){var i;(i=o.onScroll)==null||i.call(o,l),r(a)},onStop(l){var i;(i=o.onStop)==null||i.call(o,l),r(a)}}))}}};function zr(t){const e=t||window.event;return e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}function Rr(t,e=!1){const r=n.ref(e);let o=null,a;n.watch(u.resolveRef(t),c=>{if(c){const f=c;a=f.style.overflow,r.value&&(f.style.overflow="hidden")}},{immediate:!0});const l=()=>{const c=u.resolveUnref(t);!c||r.value||(u.isIOS&&(o=S(c,"touchmove",zr,{passive:!1})),c.style.overflow="hidden",r.value=!0)},i=()=>{const c=u.resolveUnref(t);!c||!r.value||(u.isIOS&&(o==null||o()),c.style.overflow=a,r.value=!1)};return u.tryOnScopeDispose(i),n.computed({get(){return r.value},set(c){c?l():i()}})}const Br=(()=>{let t=!1;const e=n.ref(!1);return(r,o)=>{if(e.value=o.value,t)return;t=!0;const a=Rr(r,o.value);n.watch(e,l=>a.value=l)}})();var Wr=Object.defineProperty,kr=Object.defineProperties,Fr=Object.getOwnPropertyDescriptors,ye=Object.getOwnPropertySymbols,Kr=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Pe=(t,e,r)=>e in t?Wr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Gr=(t,e)=>{for(var r in e||(e={}))Kr.call(e,r)&&Pe(t,r,e[r]);if(ye)for(var r of ye(e))Jr.call(e,r)&&Pe(t,r,e[r]);return t},qr=(t,e)=>kr(t,Fr(e));const Qr=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages"],setup(t,{slots:e}){const r=n.reactive(p.useTimeAgo(()=>t.time,qr(Gr({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var Yr=Object.defineProperty,Xr=Object.defineProperties,Zr=Object.getOwnPropertyDescriptors,he=Object.getOwnPropertySymbols,xr=Object.prototype.hasOwnProperty,Dr=Object.prototype.propertyIsEnumerable,we=(t,e,r)=>e in t?Yr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,en=(t,e)=>{for(var r in e||(e={}))xr.call(e,r)&&we(t,r,e[r]);if(he)for(var r of he(e))Dr.call(e,r)&&we(t,r,e[r]);return t},tn=(t,e)=>Xr(t,Zr(e));const rn=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(p.useTimestamp(tn(en({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var nn=Object.defineProperty,be=Object.getOwnPropertySymbols,on=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable,Ue=(t,e,r)=>e in t?nn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Se=(t,e)=>{for(var r in e||(e={}))on.call(e,r)&&Ue(t,r,e[r]);if(be)for(var r of be(e))an.call(e,r)&&Ue(t,r,e[r]);return t};const sn=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e}){const{list:r}=n.toRefs(t),{list:o,containerProps:a,wrapperProps:l}=p.useVirtualList(r,t.options);return a.style.height=t.height||"300px",()=>n.h("div",Se({},a),[n.h("div",Se({},l.value),o.value.map(i=>n.h("div",{style:{overFlow:"hidden",height:i.height}},e.default?e.default(i):"Please set content!")))])}}),ln=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:p.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),un=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(p.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});s.OnClickOutside=C,s.OnLongPress=Ve,s.UseActiveElement=Ne,s.UseBattery=Te,s.UseBrowserLocation=Ae,s.UseColorMode=Qe,s.UseDark=Ye,s.UseDeviceMotion=Xe,s.UseDeviceOrientation=Ze,s.UseDevicePixelRatio=xe,s.UseDevicesList=De,s.UseDocumentVisibility=et,s.UseDraggable=it,s.UseElementBounding=ut,s.UseElementSize=pt,s.UseElementVisibility=yt,s.UseEyeDropper=ht,s.UseFullscreen=wt,s.UseGeolocation=bt,s.UseIdle=Ut,s.UseImage=Mt,s.UseMouse=Wt,s.UseMouseInElement=kt,s.UseMousePressed=Xt,s.UseNetwork=Zt,s.UseNow=ar,s.UseObjectUrl=sr,s.UseOffsetPagination=vr,s.UseOnline=gr,s.UsePageLeave=_r,s.UsePointer=Ur,s.UsePreferredColorScheme=Sr,s.UsePreferredDark=$r,s.UsePreferredLanguages=Cr,s.UseScreenSafeArea=jr,s.UseTimeAgo=Qr,s.UseTimestamp=rn,s.UseVirtualList=sn,s.UseWindowFocus=ln,s.UseWindowSize=un,s.VOnClickOutside=B,s.VOnLongPress=K,s.vElementHover=ft,s.vElementSize=mt,s.vElementVisibility=Pt,s.vInfiniteScroll=Rt,s.vIntersectionObserver=Bt,s.vOnClickOutside=B,s.vOnKeyStroke=Ie,s.vOnLongPress=K,s.vScroll=Hr,s.vScrollLock=Br,Object.defineProperty(s,"__esModule",{value:!0})})(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
|
package/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent, ref, h,
|
|
1
|
+
import { defineComponent, ref, h, watch, computed, reactive, shallowRef, nextTick, toRef, toRefs } from 'vue-demi';
|
|
2
2
|
import { onClickOutside as onClickOutside$1, useActiveElement, useBattery, useBrowserLocation, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useStorage as useStorage$1, isClient as isClient$1, useDraggable, useElementBounding, useElementSize as useElementSize$1, useElementVisibility as useElementVisibility$1, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePreferredColorScheme, usePreferredDark as usePreferredDark$1, usePreferredLanguages, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';
|
|
3
|
-
import { isClient, isString, noop, tryOnScopeDispose, directiveHooks, pausableWatch,
|
|
3
|
+
import { resolveUnref, isClient, isString, noop, tryOnScopeDispose, directiveHooks, pausableWatch, tryOnMounted, tryOnBeforeMount, useToggle, promiseTimeout, useDebounceFn, useThrottleFn, resolveRef, isIOS } from '@vueuse/shared';
|
|
4
4
|
|
|
5
5
|
const OnClickOutside = defineComponent({
|
|
6
6
|
name: "OnClickOutside",
|
|
@@ -20,7 +20,7 @@ const OnClickOutside = defineComponent({
|
|
|
20
20
|
|
|
21
21
|
function unrefElement(elRef) {
|
|
22
22
|
var _a;
|
|
23
|
-
const plain =
|
|
23
|
+
const plain = resolveUnref(elRef);
|
|
24
24
|
return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -335,7 +335,7 @@ function useStorage(key, initialValue, storage, options = {}) {
|
|
|
335
335
|
}
|
|
336
336
|
if (!storage)
|
|
337
337
|
return data;
|
|
338
|
-
const rawInit =
|
|
338
|
+
const rawInit = resolveUnref(initialValue);
|
|
339
339
|
const type = guessSerializerType(rawInit);
|
|
340
340
|
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
|
|
341
341
|
const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });
|
|
@@ -381,13 +381,21 @@ function useStorage(key, initialValue, storage, options = {}) {
|
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
383
|
|
|
384
|
+
function useSupported(callback, sync = false) {
|
|
385
|
+
const isSupported = ref();
|
|
386
|
+
const update = () => isSupported.value = Boolean(callback());
|
|
387
|
+
update();
|
|
388
|
+
tryOnMounted(update, sync);
|
|
389
|
+
return isSupported;
|
|
390
|
+
}
|
|
391
|
+
|
|
384
392
|
function useMediaQuery(query, options = {}) {
|
|
385
393
|
const { window = defaultWindow } = options;
|
|
386
|
-
const isSupported =
|
|
394
|
+
const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function");
|
|
387
395
|
let mediaQuery;
|
|
388
396
|
const matches = ref(false);
|
|
389
397
|
const update = () => {
|
|
390
|
-
if (!isSupported)
|
|
398
|
+
if (!isSupported.value)
|
|
391
399
|
return;
|
|
392
400
|
if (!mediaQuery)
|
|
393
401
|
mediaQuery = window.matchMedia(query);
|
|
@@ -614,7 +622,7 @@ const UseDraggable = defineComponent({
|
|
|
614
622
|
],
|
|
615
623
|
setup(props, { slots }) {
|
|
616
624
|
const target = ref();
|
|
617
|
-
const initialValue = props.storageKey ? useStorage$1(props.storageKey,
|
|
625
|
+
const initialValue = props.storageKey ? useStorage$1(props.storageKey, resolveUnref(props.initialValue) || { x: 0, y: 0 }, isClient$1 ? props.storageType === "session" ? sessionStorage : localStorage : void 0) : props.initialValue || { x: 0, y: 0 };
|
|
618
626
|
const data = reactive(useDraggable(target, __spreadProps$8(__spreadValues$a({}, props), {
|
|
619
627
|
initialValue
|
|
620
628
|
})));
|
|
@@ -685,7 +693,7 @@ var __objRest = (source, exclude) => {
|
|
|
685
693
|
function useResizeObserver(target, callback, options = {}) {
|
|
686
694
|
const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest(_a, ["window"]);
|
|
687
695
|
let observer;
|
|
688
|
-
const isSupported = window && "ResizeObserver" in window;
|
|
696
|
+
const isSupported = useSupported(() => window && "ResizeObserver" in window);
|
|
689
697
|
const cleanup = () => {
|
|
690
698
|
if (observer) {
|
|
691
699
|
observer.disconnect();
|
|
@@ -694,7 +702,7 @@ function useResizeObserver(target, callback, options = {}) {
|
|
|
694
702
|
};
|
|
695
703
|
const stopWatch = watch(() => unrefElement(target), (el) => {
|
|
696
704
|
cleanup();
|
|
697
|
-
if (isSupported && window && el) {
|
|
705
|
+
if (isSupported.value && window && el) {
|
|
698
706
|
observer = new ResizeObserver(callback);
|
|
699
707
|
observer.observe(el, observerOptions);
|
|
700
708
|
}
|
|
@@ -758,16 +766,18 @@ function useElementVisibility(element, { window = defaultWindow, scrollTarget }
|
|
|
758
766
|
if (!window)
|
|
759
767
|
return;
|
|
760
768
|
const document = window.document;
|
|
761
|
-
|
|
769
|
+
const el = resolveUnref(element);
|
|
770
|
+
if (!el) {
|
|
762
771
|
elementIsVisible.value = false;
|
|
763
772
|
} else {
|
|
764
|
-
const rect =
|
|
773
|
+
const rect = el.getBoundingClientRect();
|
|
765
774
|
elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;
|
|
766
775
|
}
|
|
767
776
|
};
|
|
768
777
|
tryOnMounted(testBounding);
|
|
769
|
-
if (window)
|
|
770
|
-
tryOnMounted(() => useEventListener(
|
|
778
|
+
if (window) {
|
|
779
|
+
tryOnMounted(() => useEventListener(() => resolveUnref(scrollTarget) || window, "scroll", testBounding, { capture: false, passive: true }));
|
|
780
|
+
}
|
|
771
781
|
return elementIsVisible;
|
|
772
782
|
}
|
|
773
783
|
|
|
@@ -910,10 +920,10 @@ async function loadImage(options) {
|
|
|
910
920
|
});
|
|
911
921
|
}
|
|
912
922
|
const useImage = (options, asyncStateOptions = {}) => {
|
|
913
|
-
const state = useAsyncState(() => loadImage(
|
|
923
|
+
const state = useAsyncState(() => loadImage(resolveUnref(options)), void 0, __spreadValues$9({
|
|
914
924
|
resetOnExecute: true
|
|
915
925
|
}, asyncStateOptions));
|
|
916
|
-
watch(() =>
|
|
926
|
+
watch(() => resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });
|
|
917
927
|
return state;
|
|
918
928
|
};
|
|
919
929
|
|
|
@@ -971,37 +981,35 @@ function useScroll(element, options = {}) {
|
|
|
971
981
|
top: false,
|
|
972
982
|
bottom: false
|
|
973
983
|
});
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
const
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
useEventListener(element, "scroll", throttle ? useThrottleFn(onScrollHandler, throttle) : onScrollHandler, eventListenerOptions);
|
|
1004
|
-
}
|
|
984
|
+
const onScrollEnd = useDebounceFn((e) => {
|
|
985
|
+
isScrolling.value = false;
|
|
986
|
+
directions.left = false;
|
|
987
|
+
directions.right = false;
|
|
988
|
+
directions.top = false;
|
|
989
|
+
directions.bottom = false;
|
|
990
|
+
onStop(e);
|
|
991
|
+
}, throttle + idle);
|
|
992
|
+
const onScrollHandler = (e) => {
|
|
993
|
+
const eventTarget = e.target === document ? e.target.documentElement : e.target;
|
|
994
|
+
const scrollLeft = eventTarget.scrollLeft;
|
|
995
|
+
directions.left = scrollLeft < x.value;
|
|
996
|
+
directions.right = scrollLeft > x.value;
|
|
997
|
+
arrivedState.left = scrollLeft <= 0 + (offset.left || 0);
|
|
998
|
+
arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0);
|
|
999
|
+
x.value = scrollLeft;
|
|
1000
|
+
let scrollTop = eventTarget.scrollTop;
|
|
1001
|
+
if (e.target === document && !scrollTop)
|
|
1002
|
+
scrollTop = document.body.scrollTop;
|
|
1003
|
+
directions.top = scrollTop < y.value;
|
|
1004
|
+
directions.bottom = scrollTop > y.value;
|
|
1005
|
+
arrivedState.top = scrollTop <= 0 + (offset.top || 0);
|
|
1006
|
+
arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0);
|
|
1007
|
+
y.value = scrollTop;
|
|
1008
|
+
isScrolling.value = true;
|
|
1009
|
+
onScrollEnd(e);
|
|
1010
|
+
onScroll(e);
|
|
1011
|
+
};
|
|
1012
|
+
useEventListener(element, "scroll", throttle ? useThrottleFn(onScrollHandler, throttle) : onScrollHandler, eventListenerOptions);
|
|
1005
1013
|
return {
|
|
1006
1014
|
x,
|
|
1007
1015
|
y,
|
|
@@ -1041,7 +1049,7 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
|
|
|
1041
1049
|
watch(() => state.arrivedState[direction], async (v) => {
|
|
1042
1050
|
var _a2, _b2;
|
|
1043
1051
|
if (v) {
|
|
1044
|
-
const elem =
|
|
1052
|
+
const elem = resolveUnref(element);
|
|
1045
1053
|
const previous = {
|
|
1046
1054
|
height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,
|
|
1047
1055
|
width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0
|
|
@@ -1075,9 +1083,9 @@ function useIntersectionObserver(target, callback, options = {}) {
|
|
|
1075
1083
|
threshold = 0.1,
|
|
1076
1084
|
window = defaultWindow
|
|
1077
1085
|
} = options;
|
|
1078
|
-
const isSupported = window && "IntersectionObserver" in window;
|
|
1086
|
+
const isSupported = useSupported(() => window && "IntersectionObserver" in window);
|
|
1079
1087
|
let cleanup = noop;
|
|
1080
|
-
const stopWatch = isSupported ? watch(() => ({
|
|
1088
|
+
const stopWatch = isSupported.value ? watch(() => ({
|
|
1081
1089
|
el: unrefElement(target),
|
|
1082
1090
|
root: unrefElement(root)
|
|
1083
1091
|
}), ({ el, root: root2 }) => {
|
|
@@ -1397,7 +1405,7 @@ function useCssVar(prop, target, { window = defaultWindow, initialValue = "" } =
|
|
|
1397
1405
|
var _a;
|
|
1398
1406
|
return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);
|
|
1399
1407
|
});
|
|
1400
|
-
watch([elRef, () =>
|
|
1408
|
+
watch([elRef, () => resolveUnref(prop)], ([el, prop2]) => {
|
|
1401
1409
|
var _a;
|
|
1402
1410
|
if (el && window) {
|
|
1403
1411
|
const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();
|
|
@@ -1407,7 +1415,7 @@ function useCssVar(prop, target, { window = defaultWindow, initialValue = "" } =
|
|
|
1407
1415
|
watch(variable, (val) => {
|
|
1408
1416
|
var _a;
|
|
1409
1417
|
if ((_a = elRef.value) == null ? void 0 : _a.style)
|
|
1410
|
-
elRef.value.style.setProperty(
|
|
1418
|
+
elRef.value.style.setProperty(resolveUnref(prop), val);
|
|
1411
1419
|
});
|
|
1412
1420
|
return variable;
|
|
1413
1421
|
}
|
|
@@ -1546,7 +1554,7 @@ function useScrollLock(element, initialState = false) {
|
|
|
1546
1554
|
const isLocked = ref(initialState);
|
|
1547
1555
|
let stopTouchMoveListener = null;
|
|
1548
1556
|
let initialOverflow;
|
|
1549
|
-
watch((
|
|
1557
|
+
watch(resolveRef(element), (el) => {
|
|
1550
1558
|
if (el) {
|
|
1551
1559
|
const ele = el;
|
|
1552
1560
|
initialOverflow = ele.style.overflow;
|
|
@@ -1557,7 +1565,7 @@ function useScrollLock(element, initialState = false) {
|
|
|
1557
1565
|
immediate: true
|
|
1558
1566
|
});
|
|
1559
1567
|
const lock = () => {
|
|
1560
|
-
const ele =
|
|
1568
|
+
const ele = resolveUnref(element);
|
|
1561
1569
|
if (!ele || isLocked.value)
|
|
1562
1570
|
return;
|
|
1563
1571
|
if (isIOS) {
|
|
@@ -1567,7 +1575,7 @@ function useScrollLock(element, initialState = false) {
|
|
|
1567
1575
|
isLocked.value = true;
|
|
1568
1576
|
};
|
|
1569
1577
|
const unlock = () => {
|
|
1570
|
-
const ele =
|
|
1578
|
+
const ele = resolveUnref(element);
|
|
1571
1579
|
if (!ele || !isLocked.value)
|
|
1572
1580
|
return;
|
|
1573
1581
|
isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());
|
|
@@ -1625,8 +1633,7 @@ const UseTimeAgo = defineComponent({
|
|
|
1625
1633
|
name: "UseTimeAgo",
|
|
1626
1634
|
props: ["time", "updateInterval", "max", "fullDateFormatter", "messages"],
|
|
1627
1635
|
setup(props, { slots }) {
|
|
1628
|
-
const
|
|
1629
|
-
const data = reactive(useTimeAgo(time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
1636
|
+
const data = reactive(useTimeAgo(() => props.time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
1630
1637
|
return () => {
|
|
1631
1638
|
if (slots.default)
|
|
1632
1639
|
return slots.default(data);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vueuse/components",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0-beta.0",
|
|
4
4
|
"description": "Renderless components for VueUse",
|
|
5
5
|
"author": "Jacob Clevenger<https://github.com/wheatjs>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"jsdelivr": "./index.iife.min.js",
|
|
34
34
|
"types": "./index.d.ts",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@vueuse/core": "
|
|
37
|
-
"@vueuse/shared": "
|
|
36
|
+
"@vueuse/core": "9.0.0-beta.0",
|
|
37
|
+
"@vueuse/shared": "9.0.0-beta.0",
|
|
38
38
|
"vue-demi": "*"
|
|
39
39
|
}
|
|
40
40
|
}
|