@vueuse/components 7.3.0 → 7.4.3
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 +252 -7
- package/index.d.ts +101 -5
- package/index.iife.js +252 -7
- package/index.iife.min.js +1 -1
- package/index.mjs +253 -9
- package/package.json +3 -3
package/index.cjs
CHANGED
|
@@ -123,6 +123,232 @@ const UseBrowserLocation = vueDemi.defineComponent({
|
|
|
123
123
|
}
|
|
124
124
|
});
|
|
125
125
|
|
|
126
|
+
const globalKey = "__vueuse_ssr_handlers__";
|
|
127
|
+
globalThis[globalKey] = globalThis[globalKey] || {};
|
|
128
|
+
const handlers = globalThis[globalKey];
|
|
129
|
+
function getSSRHandler(key, fallback) {
|
|
130
|
+
return handlers[key] || fallback;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function guessSerializerType(rawInit) {
|
|
134
|
+
return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : Array.isArray(rawInit) ? "object" : !Number.isNaN(rawInit) ? "number" : "any";
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const StorageSerializers = {
|
|
138
|
+
boolean: {
|
|
139
|
+
read: (v) => v === "true",
|
|
140
|
+
write: (v) => String(v)
|
|
141
|
+
},
|
|
142
|
+
object: {
|
|
143
|
+
read: (v) => JSON.parse(v),
|
|
144
|
+
write: (v) => JSON.stringify(v)
|
|
145
|
+
},
|
|
146
|
+
number: {
|
|
147
|
+
read: (v) => Number.parseFloat(v),
|
|
148
|
+
write: (v) => String(v)
|
|
149
|
+
},
|
|
150
|
+
any: {
|
|
151
|
+
read: (v) => v,
|
|
152
|
+
write: (v) => String(v)
|
|
153
|
+
},
|
|
154
|
+
string: {
|
|
155
|
+
read: (v) => v,
|
|
156
|
+
write: (v) => String(v)
|
|
157
|
+
},
|
|
158
|
+
map: {
|
|
159
|
+
read: (v) => new Map(JSON.parse(v)),
|
|
160
|
+
write: (v) => JSON.stringify(Array.from(v.entries()))
|
|
161
|
+
},
|
|
162
|
+
set: {
|
|
163
|
+
read: (v) => new Set(JSON.parse(v)),
|
|
164
|
+
write: (v) => JSON.stringify(Array.from(v.entries()))
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
function useStorage(key, initialValue, storage = getSSRHandler("getDefaultStorage", () => {
|
|
168
|
+
var _a;
|
|
169
|
+
return (_a = defaultWindow) == null ? void 0 : _a.localStorage;
|
|
170
|
+
})(), options = {}) {
|
|
171
|
+
var _a;
|
|
172
|
+
const {
|
|
173
|
+
flush = "pre",
|
|
174
|
+
deep = true,
|
|
175
|
+
listenToStorageChanges = true,
|
|
176
|
+
writeDefaults = true,
|
|
177
|
+
shallow,
|
|
178
|
+
window = defaultWindow,
|
|
179
|
+
eventFilter,
|
|
180
|
+
onError = (e) => {
|
|
181
|
+
console.error(e);
|
|
182
|
+
}
|
|
183
|
+
} = options;
|
|
184
|
+
const rawInit = vueDemi.unref(initialValue);
|
|
185
|
+
const type = guessSerializerType(rawInit);
|
|
186
|
+
const data = (shallow ? vueDemi.shallowRef : vueDemi.ref)(initialValue);
|
|
187
|
+
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
|
|
188
|
+
function read(event) {
|
|
189
|
+
if (!storage || event && event.key !== key)
|
|
190
|
+
return;
|
|
191
|
+
try {
|
|
192
|
+
const rawValue = event ? event.newValue : storage.getItem(key);
|
|
193
|
+
if (rawValue == null) {
|
|
194
|
+
data.value = rawInit;
|
|
195
|
+
if (writeDefaults && rawInit !== null)
|
|
196
|
+
storage.setItem(key, serializer.write(rawInit));
|
|
197
|
+
} else if (typeof rawValue !== "string") {
|
|
198
|
+
data.value = rawValue;
|
|
199
|
+
} else {
|
|
200
|
+
data.value = serializer.read(rawValue);
|
|
201
|
+
}
|
|
202
|
+
} catch (e) {
|
|
203
|
+
onError(e);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
read();
|
|
207
|
+
if (window && listenToStorageChanges)
|
|
208
|
+
useEventListener(window, "storage", (e) => setTimeout(() => read(e), 0));
|
|
209
|
+
if (storage) {
|
|
210
|
+
shared.watchWithFilter(data, () => {
|
|
211
|
+
try {
|
|
212
|
+
if (data.value == null)
|
|
213
|
+
storage.removeItem(key);
|
|
214
|
+
else
|
|
215
|
+
storage.setItem(key, serializer.write(data.value));
|
|
216
|
+
} catch (e) {
|
|
217
|
+
onError(e);
|
|
218
|
+
}
|
|
219
|
+
}, {
|
|
220
|
+
flush,
|
|
221
|
+
deep,
|
|
222
|
+
eventFilter
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
return data;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
function useMediaQuery(query, options = {}) {
|
|
229
|
+
const { window = defaultWindow } = options;
|
|
230
|
+
let mediaQuery;
|
|
231
|
+
const matches = vueDemi.ref(false);
|
|
232
|
+
const update = () => {
|
|
233
|
+
if (!window)
|
|
234
|
+
return;
|
|
235
|
+
if (!mediaQuery)
|
|
236
|
+
mediaQuery = window.matchMedia(query);
|
|
237
|
+
matches.value = mediaQuery.matches;
|
|
238
|
+
};
|
|
239
|
+
shared.tryOnMounted(() => {
|
|
240
|
+
update();
|
|
241
|
+
if (!mediaQuery)
|
|
242
|
+
return;
|
|
243
|
+
if ("addEventListener" in mediaQuery)
|
|
244
|
+
mediaQuery.addEventListener("change", update);
|
|
245
|
+
else
|
|
246
|
+
mediaQuery.addListener(update);
|
|
247
|
+
shared.tryOnScopeDispose(() => {
|
|
248
|
+
if ("removeEventListener" in update)
|
|
249
|
+
mediaQuery.removeEventListener("change", update);
|
|
250
|
+
else
|
|
251
|
+
mediaQuery.removeListener(update);
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
return matches;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
function usePreferredDark(options) {
|
|
258
|
+
return useMediaQuery("(prefers-color-scheme: dark)", options);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
var __defProp$7 = Object.defineProperty;
|
|
262
|
+
var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
|
|
263
|
+
var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
|
|
264
|
+
var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
|
|
265
|
+
var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
266
|
+
var __spreadValues$7 = (a, b) => {
|
|
267
|
+
for (var prop in b || (b = {}))
|
|
268
|
+
if (__hasOwnProp$7.call(b, prop))
|
|
269
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
270
|
+
if (__getOwnPropSymbols$7)
|
|
271
|
+
for (var prop of __getOwnPropSymbols$7(b)) {
|
|
272
|
+
if (__propIsEnum$7.call(b, prop))
|
|
273
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
274
|
+
}
|
|
275
|
+
return a;
|
|
276
|
+
};
|
|
277
|
+
function useColorMode(options = {}) {
|
|
278
|
+
const {
|
|
279
|
+
selector = "html",
|
|
280
|
+
attribute = "class",
|
|
281
|
+
window = defaultWindow,
|
|
282
|
+
storage = getSSRHandler("getDefaultStorage", () => {
|
|
283
|
+
var _a;
|
|
284
|
+
return (_a = defaultWindow) == null ? void 0 : _a.localStorage;
|
|
285
|
+
})(),
|
|
286
|
+
storageKey = "vueuse-color-scheme",
|
|
287
|
+
listenToStorageChanges = true,
|
|
288
|
+
storageRef
|
|
289
|
+
} = options;
|
|
290
|
+
const modes = __spreadValues$7({
|
|
291
|
+
auto: "",
|
|
292
|
+
light: "light",
|
|
293
|
+
dark: "dark"
|
|
294
|
+
}, options.modes || {});
|
|
295
|
+
const preferredDark = usePreferredDark({ window });
|
|
296
|
+
const preferredMode = vueDemi.computed(() => preferredDark.value ? "dark" : "light");
|
|
297
|
+
const store = storageRef || (storageKey == null ? vueDemi.ref("auto") : useStorage(storageKey, "auto", storage, { window, listenToStorageChanges }));
|
|
298
|
+
const state = vueDemi.computed({
|
|
299
|
+
get() {
|
|
300
|
+
return store.value === "auto" ? preferredMode.value : store.value;
|
|
301
|
+
},
|
|
302
|
+
set(v) {
|
|
303
|
+
store.value = v;
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
const updateHTMLAttrs = getSSRHandler("updateHTMLAttrs", (selector2, attribute2, value) => {
|
|
307
|
+
const el = window == null ? void 0 : window.document.querySelector(selector2);
|
|
308
|
+
if (!el)
|
|
309
|
+
return;
|
|
310
|
+
if (attribute2 === "class") {
|
|
311
|
+
const current = value.split(/\s/g);
|
|
312
|
+
Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => {
|
|
313
|
+
if (current.includes(v))
|
|
314
|
+
el.classList.add(v);
|
|
315
|
+
else
|
|
316
|
+
el.classList.remove(v);
|
|
317
|
+
});
|
|
318
|
+
} else {
|
|
319
|
+
el.setAttribute(attribute2, value);
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
function defaultOnChanged(mode) {
|
|
323
|
+
var _a;
|
|
324
|
+
updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);
|
|
325
|
+
}
|
|
326
|
+
function onChanged(mode) {
|
|
327
|
+
if (options.onChanged)
|
|
328
|
+
options.onChanged(mode, defaultOnChanged);
|
|
329
|
+
else
|
|
330
|
+
defaultOnChanged(mode);
|
|
331
|
+
}
|
|
332
|
+
vueDemi.watch(state, onChanged, { flush: "post", immediate: true });
|
|
333
|
+
shared.tryOnMounted(() => onChanged(state.value));
|
|
334
|
+
return state;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
const UseColorMode = vueDemi.defineComponent({
|
|
338
|
+
name: "UseColorMode",
|
|
339
|
+
props: ["selector", "attribute", "modes", "onChanged", "storageKey", "storage"],
|
|
340
|
+
setup(props, { slots }) {
|
|
341
|
+
const mode = useColorMode(props);
|
|
342
|
+
const data = vueDemi.reactive({
|
|
343
|
+
mode
|
|
344
|
+
});
|
|
345
|
+
return () => {
|
|
346
|
+
if (slots.default)
|
|
347
|
+
return slots.default(data);
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
|
|
126
352
|
const UseDark = vueDemi.defineComponent({
|
|
127
353
|
name: "UseDark",
|
|
128
354
|
props: ["selector", "attribute", "valueDark", "valueLight", "onChanged", "storageKey", "storage"],
|
|
@@ -535,6 +761,24 @@ const UsePreferredLanguages = vueDemi.defineComponent({
|
|
|
535
761
|
}
|
|
536
762
|
});
|
|
537
763
|
|
|
764
|
+
function useCssVar(prop, target, { window = defaultWindow } = {}) {
|
|
765
|
+
const variable = vueDemi.ref("");
|
|
766
|
+
const elRef = vueDemi.computed(() => {
|
|
767
|
+
var _a;
|
|
768
|
+
return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);
|
|
769
|
+
});
|
|
770
|
+
vueDemi.watch(elRef, (el) => {
|
|
771
|
+
if (el && window)
|
|
772
|
+
variable.value = window.getComputedStyle(el).getPropertyValue(prop);
|
|
773
|
+
}, { immediate: true });
|
|
774
|
+
vueDemi.watch(variable, (val) => {
|
|
775
|
+
var _a;
|
|
776
|
+
if ((_a = elRef.value) == null ? void 0 : _a.style)
|
|
777
|
+
elRef.value.style.setProperty(prop, val);
|
|
778
|
+
});
|
|
779
|
+
return variable;
|
|
780
|
+
}
|
|
781
|
+
|
|
538
782
|
const topVarName = "--vueuse-safe-area-top";
|
|
539
783
|
const rightVarName = "--vueuse-safe-area-right";
|
|
540
784
|
const bottomVarName = "--vueuse-safe-area-bottom";
|
|
@@ -544,17 +788,17 @@ function useScreenSafeArea() {
|
|
|
544
788
|
const right = vueDemi.ref("");
|
|
545
789
|
const bottom = vueDemi.ref("");
|
|
546
790
|
const left = vueDemi.ref("");
|
|
547
|
-
if (
|
|
548
|
-
const topCssVar =
|
|
549
|
-
const rightCssVar =
|
|
550
|
-
const bottomCssVar =
|
|
551
|
-
const leftCssVar =
|
|
791
|
+
if (shared.isClient) {
|
|
792
|
+
const topCssVar = useCssVar(topVarName);
|
|
793
|
+
const rightCssVar = useCssVar(rightVarName);
|
|
794
|
+
const bottomCssVar = useCssVar(bottomVarName);
|
|
795
|
+
const leftCssVar = useCssVar(leftVarName);
|
|
552
796
|
topCssVar.value = "env(safe-area-inset-top, 0px)";
|
|
553
797
|
rightCssVar.value = "env(safe-area-inset-right, 0px)";
|
|
554
798
|
bottomCssVar.value = "env(safe-area-inset-bottom, 0px)";
|
|
555
799
|
leftCssVar.value = "env(safe-area-inset-left, 0px)";
|
|
556
800
|
update();
|
|
557
|
-
|
|
801
|
+
useEventListener("resize", shared.useDebounceFn(update));
|
|
558
802
|
}
|
|
559
803
|
function update() {
|
|
560
804
|
top.value = getValue(topVarName);
|
|
@@ -631,7 +875,7 @@ const UseTimeAgo = vueDemi.defineComponent({
|
|
|
631
875
|
name: "UseTimeAgo",
|
|
632
876
|
props: ["time", "updateInterval", "max", "fullDateFormatter", "messages"],
|
|
633
877
|
setup(props, { slots }) {
|
|
634
|
-
const
|
|
878
|
+
const time = vueDemi.toRef(props, "time");
|
|
635
879
|
const data = vueDemi.reactive(core.useTimeAgo(time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
636
880
|
return () => {
|
|
637
881
|
if (slots.default)
|
|
@@ -733,6 +977,7 @@ exports.OnClickOutside = OnClickOutside;
|
|
|
733
977
|
exports.UseActiveElement = UseActiveElement;
|
|
734
978
|
exports.UseBattery = UseBattery;
|
|
735
979
|
exports.UseBrowserLocation = UseBrowserLocation;
|
|
980
|
+
exports.UseColorMode = UseColorMode;
|
|
736
981
|
exports.UseDark = UseDark;
|
|
737
982
|
exports.UseDeviceMotion = UseDeviceMotion;
|
|
738
983
|
exports.UseDeviceOrientation = UseDeviceOrientation;
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as vue_demi from 'vue-demi';
|
|
2
|
-
import { FunctionDirective } from 'vue-demi';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { FunctionDirective, Ref } from 'vue-demi';
|
|
3
|
+
import { ConfigurableEventFilter, ConfigurableFlush, MaybeRef } from '@vueuse/shared';
|
|
4
|
+
import { UseDarkOptions, UseDevicesListOptions, UseDraggableOptions, ElementSize, GeolocationOptions, IdleOptions, MouseOptions, MouseInElementOptions, MousePressedOptions, UseNowOptions, UsePointerOptions, UseTimeAgoOptions, TimestampOptions, UseVirtualListOptions, WindowSizeOptions } from '@vueuse/core';
|
|
5
5
|
|
|
6
6
|
interface ConfigurableWindow {
|
|
7
7
|
window?: Window;
|
|
@@ -35,6 +35,102 @@ declare const UseBrowserLocation: vue_demi.DefineComponent<{}, () => vue_demi.VN
|
|
|
35
35
|
[key: string]: any;
|
|
36
36
|
}>[] | undefined, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<{} & {} & {}>, {}>;
|
|
37
37
|
|
|
38
|
+
interface StorageLike {
|
|
39
|
+
getItem(key: string): string | null;
|
|
40
|
+
setItem(key: string, value: string): void;
|
|
41
|
+
removeItem(key: string): void;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
declare type Serializer<T> = {
|
|
45
|
+
read(raw: string): T;
|
|
46
|
+
write(value: T): string;
|
|
47
|
+
};
|
|
48
|
+
interface StorageOptions<T> extends ConfigurableEventFilter, ConfigurableWindow, ConfigurableFlush {
|
|
49
|
+
/**
|
|
50
|
+
* Watch for deep changes
|
|
51
|
+
*
|
|
52
|
+
* @default true
|
|
53
|
+
*/
|
|
54
|
+
deep?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Listen to storage changes, useful for multiple tabs application
|
|
57
|
+
*
|
|
58
|
+
* @default true
|
|
59
|
+
*/
|
|
60
|
+
listenToStorageChanges?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Write the default value to the storage when it does not existed
|
|
63
|
+
*
|
|
64
|
+
* @default true
|
|
65
|
+
*/
|
|
66
|
+
writeDefaults?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Custom data serialization
|
|
69
|
+
*/
|
|
70
|
+
serializer?: Serializer<T>;
|
|
71
|
+
/**
|
|
72
|
+
* On error callback
|
|
73
|
+
*
|
|
74
|
+
* Default log error to `console.error`
|
|
75
|
+
*/
|
|
76
|
+
onError?: (error: unknown) => void;
|
|
77
|
+
/**
|
|
78
|
+
* Use shallow ref as reference
|
|
79
|
+
*
|
|
80
|
+
* @default false
|
|
81
|
+
*/
|
|
82
|
+
shallow?: boolean;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
declare type BasicColorSchema = 'light' | 'dark' | 'auto';
|
|
86
|
+
interface UseColorModeOptions<T extends string = BasicColorSchema> extends StorageOptions<T | BasicColorSchema> {
|
|
87
|
+
/**
|
|
88
|
+
* CSS Selector for the target element applying to
|
|
89
|
+
*
|
|
90
|
+
* @default 'html'
|
|
91
|
+
*/
|
|
92
|
+
selector?: string;
|
|
93
|
+
/**
|
|
94
|
+
* HTML attribute applying the target element
|
|
95
|
+
*
|
|
96
|
+
* @default 'class'
|
|
97
|
+
*/
|
|
98
|
+
attribute?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Prefix when adding value to the attribute
|
|
101
|
+
*/
|
|
102
|
+
modes?: Partial<Record<T | BasicColorSchema, string>>;
|
|
103
|
+
/**
|
|
104
|
+
* A custom handler for handle the updates.
|
|
105
|
+
* When specified, the default behavior will be overridded.
|
|
106
|
+
*
|
|
107
|
+
* @default undefined
|
|
108
|
+
*/
|
|
109
|
+
onChanged?: (mode: T | BasicColorSchema, defaultHandler: ((mode: T | BasicColorSchema) => void)) => void;
|
|
110
|
+
/**
|
|
111
|
+
* Custom storage ref
|
|
112
|
+
*
|
|
113
|
+
* When provided, `useStorage` will be skipped
|
|
114
|
+
*/
|
|
115
|
+
storageRef?: Ref<T | BasicColorSchema>;
|
|
116
|
+
/**
|
|
117
|
+
* Key to persist the data into localStorage/sessionStorage.
|
|
118
|
+
*
|
|
119
|
+
* Pass `null` to disable persistence
|
|
120
|
+
*
|
|
121
|
+
* @default 'vueuse-color-scheme'
|
|
122
|
+
*/
|
|
123
|
+
storageKey?: string | null;
|
|
124
|
+
/**
|
|
125
|
+
* Storage object, can be localStorage or sessionStorage
|
|
126
|
+
*
|
|
127
|
+
* @default localStorage
|
|
128
|
+
*/
|
|
129
|
+
storage?: StorageLike;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
declare const UseColorMode: vue_demi.DefineComponent<UseColorModeOptions<BasicColorSchema>, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseColorModeOptions<BasicColorSchema>>, {}>;
|
|
133
|
+
|
|
38
134
|
declare const UseDark: vue_demi.DefineComponent<UseDarkOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<UseDarkOptions>, {}>;
|
|
39
135
|
|
|
40
136
|
declare const UseDeviceMotion: vue_demi.DefineComponent<{}, () => vue_demi.VNode<vue_demi.RendererNode, vue_demi.RendererElement, {
|
|
@@ -167,7 +263,7 @@ declare const UseScreenSafeArea: vue_demi.DefineComponent<{
|
|
|
167
263
|
bottom: boolean;
|
|
168
264
|
}>;
|
|
169
265
|
|
|
170
|
-
interface UseTimeAgoComponentOptions extends Omit<
|
|
266
|
+
interface UseTimeAgoComponentOptions extends Omit<UseTimeAgoOptions<true>, 'controls'> {
|
|
171
267
|
time: MaybeRef<Date | number | string>;
|
|
172
268
|
}
|
|
173
269
|
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>, {}>;
|
|
@@ -202,4 +298,4 @@ declare const UseWindowFocus: vue_demi.DefineComponent<{}, () => vue_demi.VNode<
|
|
|
202
298
|
|
|
203
299
|
declare const UseWindowSize: vue_demi.DefineComponent<WindowSizeOptions, {}, {}, {}, {}, vue_demi.ComponentOptionsMixin, vue_demi.ComponentOptionsMixin, vue_demi.EmitsOptions, string, vue_demi.VNodeProps & vue_demi.AllowedComponentProps & vue_demi.ComponentCustomProps, Readonly<WindowSizeOptions>, {}>;
|
|
204
300
|
|
|
205
|
-
export { OnClickOutside, UseActiveElement, UseBattery, UseBrowserLocation, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseDraggableProps, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseOnline, UsePageLeave, UsePointer, UsePreferredColorScheme, UsePreferredDark, UsePreferredLanguages, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseVirtualListProps, UseWindowFocus, UseWindowSize, VOnClickOutside };
|
|
301
|
+
export { OnClickOutside, UseActiveElement, UseBattery, UseBrowserLocation, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseDraggableProps, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseOnline, UsePageLeave, UsePointer, UsePreferredColorScheme, UsePreferredDark, UsePreferredLanguages, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseVirtualListProps, UseWindowFocus, UseWindowSize, VOnClickOutside };
|
package/index.iife.js
CHANGED
|
@@ -179,6 +179,232 @@
|
|
|
179
179
|
}
|
|
180
180
|
});
|
|
181
181
|
|
|
182
|
+
const globalKey = "__vueuse_ssr_handlers__";
|
|
183
|
+
globalThis[globalKey] = globalThis[globalKey] || {};
|
|
184
|
+
const handlers = globalThis[globalKey];
|
|
185
|
+
function getSSRHandler(key, fallback) {
|
|
186
|
+
return handlers[key] || fallback;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
function guessSerializerType(rawInit) {
|
|
190
|
+
return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : Array.isArray(rawInit) ? "object" : !Number.isNaN(rawInit) ? "number" : "any";
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
const StorageSerializers = {
|
|
194
|
+
boolean: {
|
|
195
|
+
read: (v) => v === "true",
|
|
196
|
+
write: (v) => String(v)
|
|
197
|
+
},
|
|
198
|
+
object: {
|
|
199
|
+
read: (v) => JSON.parse(v),
|
|
200
|
+
write: (v) => JSON.stringify(v)
|
|
201
|
+
},
|
|
202
|
+
number: {
|
|
203
|
+
read: (v) => Number.parseFloat(v),
|
|
204
|
+
write: (v) => String(v)
|
|
205
|
+
},
|
|
206
|
+
any: {
|
|
207
|
+
read: (v) => v,
|
|
208
|
+
write: (v) => String(v)
|
|
209
|
+
},
|
|
210
|
+
string: {
|
|
211
|
+
read: (v) => v,
|
|
212
|
+
write: (v) => String(v)
|
|
213
|
+
},
|
|
214
|
+
map: {
|
|
215
|
+
read: (v) => new Map(JSON.parse(v)),
|
|
216
|
+
write: (v) => JSON.stringify(Array.from(v.entries()))
|
|
217
|
+
},
|
|
218
|
+
set: {
|
|
219
|
+
read: (v) => new Set(JSON.parse(v)),
|
|
220
|
+
write: (v) => JSON.stringify(Array.from(v.entries()))
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
function useStorage(key, initialValue, storage = getSSRHandler("getDefaultStorage", () => {
|
|
224
|
+
var _a;
|
|
225
|
+
return (_a = defaultWindow) == null ? void 0 : _a.localStorage;
|
|
226
|
+
})(), options = {}) {
|
|
227
|
+
var _a;
|
|
228
|
+
const {
|
|
229
|
+
flush = "pre",
|
|
230
|
+
deep = true,
|
|
231
|
+
listenToStorageChanges = true,
|
|
232
|
+
writeDefaults = true,
|
|
233
|
+
shallow,
|
|
234
|
+
window = defaultWindow,
|
|
235
|
+
eventFilter,
|
|
236
|
+
onError = (e) => {
|
|
237
|
+
console.error(e);
|
|
238
|
+
}
|
|
239
|
+
} = options;
|
|
240
|
+
const rawInit = vueDemi.unref(initialValue);
|
|
241
|
+
const type = guessSerializerType(rawInit);
|
|
242
|
+
const data = (shallow ? vueDemi.shallowRef : vueDemi.ref)(initialValue);
|
|
243
|
+
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
|
|
244
|
+
function read(event) {
|
|
245
|
+
if (!storage || event && event.key !== key)
|
|
246
|
+
return;
|
|
247
|
+
try {
|
|
248
|
+
const rawValue = event ? event.newValue : storage.getItem(key);
|
|
249
|
+
if (rawValue == null) {
|
|
250
|
+
data.value = rawInit;
|
|
251
|
+
if (writeDefaults && rawInit !== null)
|
|
252
|
+
storage.setItem(key, serializer.write(rawInit));
|
|
253
|
+
} else if (typeof rawValue !== "string") {
|
|
254
|
+
data.value = rawValue;
|
|
255
|
+
} else {
|
|
256
|
+
data.value = serializer.read(rawValue);
|
|
257
|
+
}
|
|
258
|
+
} catch (e) {
|
|
259
|
+
onError(e);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
read();
|
|
263
|
+
if (window && listenToStorageChanges)
|
|
264
|
+
useEventListener(window, "storage", (e) => setTimeout(() => read(e), 0));
|
|
265
|
+
if (storage) {
|
|
266
|
+
shared.watchWithFilter(data, () => {
|
|
267
|
+
try {
|
|
268
|
+
if (data.value == null)
|
|
269
|
+
storage.removeItem(key);
|
|
270
|
+
else
|
|
271
|
+
storage.setItem(key, serializer.write(data.value));
|
|
272
|
+
} catch (e) {
|
|
273
|
+
onError(e);
|
|
274
|
+
}
|
|
275
|
+
}, {
|
|
276
|
+
flush,
|
|
277
|
+
deep,
|
|
278
|
+
eventFilter
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
return data;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
function useMediaQuery(query, options = {}) {
|
|
285
|
+
const { window = defaultWindow } = options;
|
|
286
|
+
let mediaQuery;
|
|
287
|
+
const matches = vueDemi.ref(false);
|
|
288
|
+
const update = () => {
|
|
289
|
+
if (!window)
|
|
290
|
+
return;
|
|
291
|
+
if (!mediaQuery)
|
|
292
|
+
mediaQuery = window.matchMedia(query);
|
|
293
|
+
matches.value = mediaQuery.matches;
|
|
294
|
+
};
|
|
295
|
+
shared.tryOnMounted(() => {
|
|
296
|
+
update();
|
|
297
|
+
if (!mediaQuery)
|
|
298
|
+
return;
|
|
299
|
+
if ("addEventListener" in mediaQuery)
|
|
300
|
+
mediaQuery.addEventListener("change", update);
|
|
301
|
+
else
|
|
302
|
+
mediaQuery.addListener(update);
|
|
303
|
+
shared.tryOnScopeDispose(() => {
|
|
304
|
+
if ("removeEventListener" in update)
|
|
305
|
+
mediaQuery.removeEventListener("change", update);
|
|
306
|
+
else
|
|
307
|
+
mediaQuery.removeListener(update);
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
return matches;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
function usePreferredDark(options) {
|
|
314
|
+
return useMediaQuery("(prefers-color-scheme: dark)", options);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
var __defProp$7 = Object.defineProperty;
|
|
318
|
+
var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
|
|
319
|
+
var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
|
|
320
|
+
var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
|
|
321
|
+
var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
322
|
+
var __spreadValues$7 = (a, b) => {
|
|
323
|
+
for (var prop in b || (b = {}))
|
|
324
|
+
if (__hasOwnProp$7.call(b, prop))
|
|
325
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
326
|
+
if (__getOwnPropSymbols$7)
|
|
327
|
+
for (var prop of __getOwnPropSymbols$7(b)) {
|
|
328
|
+
if (__propIsEnum$7.call(b, prop))
|
|
329
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
330
|
+
}
|
|
331
|
+
return a;
|
|
332
|
+
};
|
|
333
|
+
function useColorMode(options = {}) {
|
|
334
|
+
const {
|
|
335
|
+
selector = "html",
|
|
336
|
+
attribute = "class",
|
|
337
|
+
window = defaultWindow,
|
|
338
|
+
storage = getSSRHandler("getDefaultStorage", () => {
|
|
339
|
+
var _a;
|
|
340
|
+
return (_a = defaultWindow) == null ? void 0 : _a.localStorage;
|
|
341
|
+
})(),
|
|
342
|
+
storageKey = "vueuse-color-scheme",
|
|
343
|
+
listenToStorageChanges = true,
|
|
344
|
+
storageRef
|
|
345
|
+
} = options;
|
|
346
|
+
const modes = __spreadValues$7({
|
|
347
|
+
auto: "",
|
|
348
|
+
light: "light",
|
|
349
|
+
dark: "dark"
|
|
350
|
+
}, options.modes || {});
|
|
351
|
+
const preferredDark = usePreferredDark({ window });
|
|
352
|
+
const preferredMode = vueDemi.computed(() => preferredDark.value ? "dark" : "light");
|
|
353
|
+
const store = storageRef || (storageKey == null ? vueDemi.ref("auto") : useStorage(storageKey, "auto", storage, { window, listenToStorageChanges }));
|
|
354
|
+
const state = vueDemi.computed({
|
|
355
|
+
get() {
|
|
356
|
+
return store.value === "auto" ? preferredMode.value : store.value;
|
|
357
|
+
},
|
|
358
|
+
set(v) {
|
|
359
|
+
store.value = v;
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
const updateHTMLAttrs = getSSRHandler("updateHTMLAttrs", (selector2, attribute2, value) => {
|
|
363
|
+
const el = window == null ? void 0 : window.document.querySelector(selector2);
|
|
364
|
+
if (!el)
|
|
365
|
+
return;
|
|
366
|
+
if (attribute2 === "class") {
|
|
367
|
+
const current = value.split(/\s/g);
|
|
368
|
+
Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => {
|
|
369
|
+
if (current.includes(v))
|
|
370
|
+
el.classList.add(v);
|
|
371
|
+
else
|
|
372
|
+
el.classList.remove(v);
|
|
373
|
+
});
|
|
374
|
+
} else {
|
|
375
|
+
el.setAttribute(attribute2, value);
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
function defaultOnChanged(mode) {
|
|
379
|
+
var _a;
|
|
380
|
+
updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);
|
|
381
|
+
}
|
|
382
|
+
function onChanged(mode) {
|
|
383
|
+
if (options.onChanged)
|
|
384
|
+
options.onChanged(mode, defaultOnChanged);
|
|
385
|
+
else
|
|
386
|
+
defaultOnChanged(mode);
|
|
387
|
+
}
|
|
388
|
+
vueDemi.watch(state, onChanged, { flush: "post", immediate: true });
|
|
389
|
+
shared.tryOnMounted(() => onChanged(state.value));
|
|
390
|
+
return state;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
const UseColorMode = vueDemi.defineComponent({
|
|
394
|
+
name: "UseColorMode",
|
|
395
|
+
props: ["selector", "attribute", "modes", "onChanged", "storageKey", "storage"],
|
|
396
|
+
setup(props, { slots }) {
|
|
397
|
+
const mode = useColorMode(props);
|
|
398
|
+
const data = vueDemi.reactive({
|
|
399
|
+
mode
|
|
400
|
+
});
|
|
401
|
+
return () => {
|
|
402
|
+
if (slots.default)
|
|
403
|
+
return slots.default(data);
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
|
|
182
408
|
const UseDark = vueDemi.defineComponent({
|
|
183
409
|
name: "UseDark",
|
|
184
410
|
props: ["selector", "attribute", "valueDark", "valueLight", "onChanged", "storageKey", "storage"],
|
|
@@ -591,6 +817,24 @@
|
|
|
591
817
|
}
|
|
592
818
|
});
|
|
593
819
|
|
|
820
|
+
function useCssVar(prop, target, { window = defaultWindow } = {}) {
|
|
821
|
+
const variable = vueDemi.ref("");
|
|
822
|
+
const elRef = vueDemi.computed(() => {
|
|
823
|
+
var _a;
|
|
824
|
+
return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);
|
|
825
|
+
});
|
|
826
|
+
vueDemi.watch(elRef, (el) => {
|
|
827
|
+
if (el && window)
|
|
828
|
+
variable.value = window.getComputedStyle(el).getPropertyValue(prop);
|
|
829
|
+
}, { immediate: true });
|
|
830
|
+
vueDemi.watch(variable, (val) => {
|
|
831
|
+
var _a;
|
|
832
|
+
if ((_a = elRef.value) == null ? void 0 : _a.style)
|
|
833
|
+
elRef.value.style.setProperty(prop, val);
|
|
834
|
+
});
|
|
835
|
+
return variable;
|
|
836
|
+
}
|
|
837
|
+
|
|
594
838
|
const topVarName = "--vueuse-safe-area-top";
|
|
595
839
|
const rightVarName = "--vueuse-safe-area-right";
|
|
596
840
|
const bottomVarName = "--vueuse-safe-area-bottom";
|
|
@@ -600,17 +844,17 @@
|
|
|
600
844
|
const right = vueDemi.ref("");
|
|
601
845
|
const bottom = vueDemi.ref("");
|
|
602
846
|
const left = vueDemi.ref("");
|
|
603
|
-
if (
|
|
604
|
-
const topCssVar =
|
|
605
|
-
const rightCssVar =
|
|
606
|
-
const bottomCssVar =
|
|
607
|
-
const leftCssVar =
|
|
847
|
+
if (shared.isClient) {
|
|
848
|
+
const topCssVar = useCssVar(topVarName);
|
|
849
|
+
const rightCssVar = useCssVar(rightVarName);
|
|
850
|
+
const bottomCssVar = useCssVar(bottomVarName);
|
|
851
|
+
const leftCssVar = useCssVar(leftVarName);
|
|
608
852
|
topCssVar.value = "env(safe-area-inset-top, 0px)";
|
|
609
853
|
rightCssVar.value = "env(safe-area-inset-right, 0px)";
|
|
610
854
|
bottomCssVar.value = "env(safe-area-inset-bottom, 0px)";
|
|
611
855
|
leftCssVar.value = "env(safe-area-inset-left, 0px)";
|
|
612
856
|
update();
|
|
613
|
-
|
|
857
|
+
useEventListener("resize", shared.useDebounceFn(update));
|
|
614
858
|
}
|
|
615
859
|
function update() {
|
|
616
860
|
top.value = getValue(topVarName);
|
|
@@ -687,7 +931,7 @@
|
|
|
687
931
|
name: "UseTimeAgo",
|
|
688
932
|
props: ["time", "updateInterval", "max", "fullDateFormatter", "messages"],
|
|
689
933
|
setup(props, { slots }) {
|
|
690
|
-
const
|
|
934
|
+
const time = vueDemi.toRef(props, "time");
|
|
691
935
|
const data = vueDemi.reactive(core.useTimeAgo(time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
692
936
|
return () => {
|
|
693
937
|
if (slots.default)
|
|
@@ -789,6 +1033,7 @@
|
|
|
789
1033
|
exports.UseActiveElement = UseActiveElement;
|
|
790
1034
|
exports.UseBattery = UseBattery;
|
|
791
1035
|
exports.UseBrowserLocation = UseBrowserLocation;
|
|
1036
|
+
exports.UseColorMode = UseColorMode;
|
|
792
1037
|
exports.UseDark = UseDark;
|
|
793
1038
|
exports.UseDeviceMotion = UseDeviceMotion;
|
|
794
1039
|
exports.UseDeviceOrientation = UseDeviceOrientation;
|
package/index.iife.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(s){if(!s.VueDemi){var n={},a=s.Vue;if(a)if(a.version.slice(0,2)==="2."){var l=s.VueCompositionAPI;if(l){for(var _ in l)n[_]=l[_];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=a,n.Vue2=a,n.version=a.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(a.version.slice(0,2)==="3."){for(var _ in a)n[_]=a[_];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=a,n.Vue2=void 0,n.version=a.version,n.set=function(f,d,g){return Array.isArray(f)?(f.length=Math.max(f.length,d),f.splice(d,1,g),g):(f[d]=g,g)},n.del=function(f,d){if(Array.isArray(f)){f.splice(d,1);return}delete f[d]}}else console.error("[vue-demi] Vue version "+a.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");s.VueDemi=n}})(window),function(s,n,a,l){"use strict";const _=n.defineComponent({name:"OnClickOutside",props:["as"],emits:["trigger"],setup(r,{slots:e,emit:t}){const o=n.ref();return a.onClickOutside(o,i=>{t("trigger",i)}),()=>{if(e.default)return n.h(r.as||"div",{ref:o},e.default())}}});function f(r){var e;const t=n.unref(r);return(e=t==null?void 0:t.$el)!=null?e:t}const d=l.isClient?window:void 0;function g(...r){let e,t,o,i;if(l.isString(r[0])?([t,o,i]=r,e=d):[e,t,o,i]=r,!e)return l.noop;let p=l.noop;const c=n.watch(()=>n.unref(e),u=>{p(),!!u&&(u.addEventListener(t,o,i),p=()=>{u.removeEventListener(t,o,i),p=l.noop})},{immediate:!0,flush:"post"}),m=()=>{c(),p()};return l.tryOnScopeDispose(m),m}function F(r,e,t={}){const{window:o=d}=t;if(!o)return;const i=n.ref(!0),c=[g(o,"click",u=>{const P=f(r);!P||P===u.target||u.composedPath().includes(P)||!i.value||e(u)},{passive:!0,capture:!0}),g(o,"pointerdown",u=>{const P=f(r);i.value=!!P&&!u.composedPath().includes(P)},{passive:!0})];return()=>c.forEach(u=>u())}const W=(r,e)=>{F(r,e.value)},z=n.defineComponent({name:"UseActiveElement",setup(r,{slots:e}){const t=n.reactive({element:a.useActiveElement()});return()=>{if(e.default)return e.default(t)}}}),R=n.defineComponent({name:"UseBattery",setup(r,{slots:e}){const t=n.reactive(a.useBattery(r));return()=>{if(e.default)return e.default(t)}}}),k=n.defineComponent({name:"UseBrowserLocation",setup(r,{slots:e}){const t=n.reactive(a.useBrowserLocation());return()=>{if(e.default)return e.default(t)}}}),G=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(r,{slots:e}){const t=a.useDark(r),o=n.reactive({isDark:t,toggleDark:l.useToggle(t)});return()=>{if(e.default)return e.default(o)}}}),H=n.defineComponent({name:"UseDeviceMotion",setup(r,{slots:e}){const t=n.reactive(a.useDeviceMotion());return()=>{if(e.default)return e.default(t)}}}),K=n.defineComponent({name:"UseDeviceOrientation",setup(r,{slots:e}){const t=n.reactive(a.useDeviceOrientation());return()=>{if(e.default)return e.default(t)}}}),q=n.defineComponent({name:"UseDevicePixelRatio",setup(r,{slots:e}){const t=n.reactive({pixelRatio:a.useDevicePixelRatio()});return()=>{if(e.default)return e.default(t)}}}),J=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(r,{slots:e}){const t=n.reactive(a.useDevicesList(r));return()=>{if(e.default)return e.default(t)}}}),Q=n.defineComponent({name:"UseDocumentVisibility",setup(r,{slots:e}){const t=n.reactive({visibility:a.useDocumentVisibility()});return()=>{if(e.default)return e.default(t)}}});var X=Object.defineProperty,Y=Object.defineProperties,Z=Object.getOwnPropertyDescriptors,O=Object.getOwnPropertySymbols,x=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable,v=(r,e,t)=>e in r?X(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ee=(r,e)=>{for(var t in e||(e={}))x.call(e,t)&&v(r,t,e[t]);if(O)for(var t of O(e))D.call(e,t)&&v(r,t,e[t]);return r},te=(r,e)=>Y(r,Z(e));const re=n.defineComponent({name:"UseDraggable",props:["storageKey","initialValue","exact","preventDefault","pointerTypes","as"],setup(r,{slots:e}){const t=n.ref(),o=r.storageKey?a.useStorage(r.storageKey,n.unref(r.initialValue)||{x:0,y:0},a.isClient?r.storageType==="session"?sessionStorage:localStorage:void 0):r.initialValue||{x:0,y:0},i=n.reactive(a.useDraggable(t,te(ee({},r),{initialValue:o})));return()=>{if(e.default)return n.h(r.as||"div",{ref:t,style:`touch-action:none;${i.style}`},e.default(i))}}}),ne=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(r,{slots:e}){const t=n.ref(),o=n.reactive(a.useElementBounding(t));return()=>{if(e.default)return n.h(r.as||"div",{ref:t},e.default(o))}}}),ae=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(r,{slots:e}){const t=n.ref(),o=n.reactive(a.useElementSize(t,{width:r.width,height:r.height},{box:r.box}));return()=>{if(e.default)return n.h(r.as||"div",{ref:t},e.default(o))}}}),se=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(r,{slots:e}){const t=n.ref(),o=n.reactive({isVisible:a.useElementVisibility(t)});return()=>{if(e.default)return n.h(r.as||"div",{ref:t},e.default(o))}}}),oe=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(r,{slots:e}){const t=n.reactive(a.useEyeDropper());return()=>{if(e.default)return e.default(t)}}}),ie=n.defineComponent({name:"UseFullscreen",props:["as"],setup(r,{slots:e}){const t=n.ref(),o=n.reactive(a.useFullscreen(t));return()=>{if(e.default)return n.h(r.as||"div",{ref:t},e.default(o))}}}),ue=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(r,{slots:e}){const t=n.reactive(a.useGeolocation(r));return()=>{if(e.default)return e.default(t)}}}),fe=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(r,{slots:e}){const t=n.reactive(a.useIdle(r.timeout,r));return()=>{if(e.default)return e.default(t)}}}),le=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(r,{slots:e}){const t=n.reactive(a.useMouse(r));return()=>{if(e.default)return e.default(t)}}}),pe=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(r,{slots:e}){const t=n.ref(),o=n.reactive(a.useMouseInElement(t,r));return()=>{if(e.default)return n.h(r.as||"div",{ref:t},e.default(o))}}});var de=Object.defineProperty,ce=Object.defineProperties,_e=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,h=(r,e,t)=>e in r?de(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,me=(r,e)=>{for(var t in e||(e={}))ge.call(e,t)&&h(r,t,e[t]);if(y)for(var t of y(e))Pe.call(e,t)&&h(r,t,e[t]);return r},Ue=(r,e)=>ce(r,_e(e));const Oe=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(r,{slots:e}){const t=n.ref(),o=n.reactive(a.useMousePressed(Ue(me({},r),{target:t})));return()=>{if(e.default)return n.h(r.as||"div",{ref:t},e.default(o))}}}),ve=n.defineComponent({name:"UseNetwork",setup(r,{slots:e}){const t=n.reactive(a.useNetwork());return()=>{if(e.default)return e.default(t)}}});var ye=Object.defineProperty,he=Object.defineProperties,we=Object.getOwnPropertyDescriptors,w=Object.getOwnPropertySymbols,be=Object.prototype.hasOwnProperty,Ve=Object.prototype.propertyIsEnumerable,b=(r,e,t)=>e in r?ye(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ce=(r,e)=>{for(var t in e||(e={}))be.call(e,t)&&b(r,t,e[t]);if(w)for(var t of w(e))Ve.call(e,t)&&b(r,t,e[t]);return r},$e=(r,e)=>he(r,we(e));const Ee=n.defineComponent({name:"UseNow",props:["interval"],setup(r,{slots:e}){const t=n.reactive(a.useNow($e(Ce({},r),{controls:!0})));return()=>{if(e.default)return e.default(t)}}}),Se=n.defineComponent({name:"UseOnline",setup(r,{slots:e}){const t=n.reactive({isOnline:a.useOnline()});return()=>{if(e.default)return e.default(t)}}}),Le=n.defineComponent({name:"UsePageLeave",setup(r,{slots:e}){const t=n.reactive({isLeft:a.usePageLeave()});return()=>{if(e.default)return e.default(t)}}});var je=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,V=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Be=Object.prototype.propertyIsEnumerable,C=(r,e,t)=>e in r?je(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Me=(r,e)=>{for(var t in e||(e={}))Ae.call(e,t)&&C(r,t,e[t]);if(V)for(var t of V(e))Be.call(e,t)&&C(r,t,e[t]);return r},Te=(r,e)=>Ie(r,Ne(e));const Fe=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(r,{slots:e}){const t=n.ref(null),o=n.reactive(a.usePointer(Te(Me({},r),{target:r.target==="self"?t:d})));return()=>{if(e.default)return e.default(o,{ref:t})}}}),We=n.defineComponent({name:"UsePreferredColorScheme",setup(r,{slots:e}){const t=n.reactive({colorScheme:a.usePreferredColorScheme()});return()=>{if(e.default)return e.default(t)}}}),ze=n.defineComponent({name:"UsePreferredDark",setup(r,{slots:e}){const t=n.reactive({prefersDark:a.usePreferredDark()});return()=>{if(e.default)return e.default(t)}}}),Re=n.defineComponent({name:"UsePreferredLanguages",setup(r,{slots:e}){const t=n.reactive({languages:a.usePreferredLanguages()});return()=>{if(e.default)return e.default(t)}}}),$="--vueuse-safe-area-top",E="--vueuse-safe-area-right",S="--vueuse-safe-area-bottom",L="--vueuse-safe-area-left";function ke(){const r=n.ref(""),e=n.ref(""),t=n.ref(""),o=n.ref("");if(a.isClient){const p=a.useCssVar($),c=a.useCssVar(E),m=a.useCssVar(S),u=a.useCssVar(L);p.value="env(safe-area-inset-top, 0px)",c.value="env(safe-area-inset-right, 0px)",m.value="env(safe-area-inset-bottom, 0px)",u.value="env(safe-area-inset-left, 0px)",i(),a.useEventListener("resize",a.useDebounceFn(i))}function i(){r.value=U($),e.value=U(E),t.value=U(S),o.value=U(L)}return{top:r,right:e,bottom:t,left:o,update:i}}function U(r){return getComputedStyle(document.documentElement).getPropertyValue(r)}const Ge=n.defineComponent({name:"UseScreenSafeArea",props:{top:Boolean,right:Boolean,bottom:Boolean,left:Boolean},setup(r,{slots:e}){const{top:t,right:o,bottom:i,left:p}=ke();return()=>{if(e.default)return n.h("div",{style:{paddingTop:r.top?t.value:"",paddingRight:r.right?o.value:"",paddingBottom:r.bottom?i.value:"",paddingLeft:r.left?p.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var He=Object.defineProperty,Ke=Object.defineProperties,qe=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertySymbols,Je=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable,I=(r,e,t)=>e in r?He(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Xe=(r,e)=>{for(var t in e||(e={}))Je.call(e,t)&&I(r,t,e[t]);if(j)for(var t of j(e))Qe.call(e,t)&&I(r,t,e[t]);return r},Ye=(r,e)=>Ke(r,qe(e));const Ze=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages"],setup(r,{slots:e}){const{time:t}=n.toRefs(r),o=n.reactive(a.useTimeAgo(t,Ye(Xe({},r),{controls:!0})));return()=>{if(e.default)return e.default(o)}}});var xe=Object.defineProperty,De=Object.defineProperties,et=Object.getOwnPropertyDescriptors,N=Object.getOwnPropertySymbols,tt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable,A=(r,e,t)=>e in r?xe(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,nt=(r,e)=>{for(var t in e||(e={}))tt.call(e,t)&&A(r,t,e[t]);if(N)for(var t of N(e))rt.call(e,t)&&A(r,t,e[t]);return r},at=(r,e)=>De(r,et(e));const st=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(r,{slots:e}){const t=n.reactive(a.useTimestamp(at(nt({},r),{controls:!0})));return()=>{if(e.default)return e.default(t)}}});var ot=Object.defineProperty,B=Object.getOwnPropertySymbols,it=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable,M=(r,e,t)=>e in r?ot(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,T=(r,e)=>{for(var t in e||(e={}))it.call(e,t)&&M(r,t,e[t]);if(B)for(var t of B(e))ut.call(e,t)&&M(r,t,e[t]);return r};const ft=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(r,{slots:e}){const{list:t}=n.toRefs(r),{list:o,containerProps:i,wrapperProps:p}=a.useVirtualList(t,r.options);return i.style.height=r.height||"300px",()=>n.h("div",T({},i),[n.h("div",T({},p.value),o.value.map(c=>n.h("div",{style:{overFlow:"hidden",height:c.height}},e.default?e.default(c):"Please set content!")))])}}),lt=n.defineComponent({name:"UseWindowFocus",setup(r,{slots:e}){const t=n.reactive({focused:a.useWindowFocus()});return()=>{if(e.default)return e.default(t)}}}),pt=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(r,{slots:e}){const t=n.reactive(a.useWindowSize(r));return()=>{if(e.default)return e.default(t)}}});s.OnClickOutside=_,s.UseActiveElement=z,s.UseBattery=R,s.UseBrowserLocation=k,s.UseDark=G,s.UseDeviceMotion=H,s.UseDeviceOrientation=K,s.UseDevicePixelRatio=q,s.UseDevicesList=J,s.UseDocumentVisibility=Q,s.UseDraggable=re,s.UseElementBounding=ne,s.UseElementSize=ae,s.UseElementVisibility=se,s.UseEyeDropper=oe,s.UseFullscreen=ie,s.UseGeolocation=ue,s.UseIdle=fe,s.UseMouse=le,s.UseMouseInElement=pe,s.UseMousePressed=Oe,s.UseNetwork=ve,s.UseNow=Ee,s.UseOnline=Se,s.UsePageLeave=Le,s.UsePointer=Fe,s.UsePreferredColorScheme=We,s.UsePreferredDark=ze,s.UsePreferredLanguages=Re,s.UseScreenSafeArea=Ge,s.UseTimeAgo=Ze,s.UseTimestamp=st,s.UseVirtualList=ft,s.UseWindowFocus=lt,s.UseWindowSize=pt,s.VOnClickOutside=W,Object.defineProperty(s,"__esModule",{value:!0})}(this.VueUse=this.VueUse||{},VueDemi,VueUse,VueUse);
|
|
1
|
+
(function(s){if(!s.VueDemi){var n={},o=s.Vue;if(o)if(o.version.slice(0,2)==="2."){var f=s.VueCompositionAPI;if(f){for(var U in f)n[U]=f[U];n.isVue2=!0,n.isVue3=!1,n.install=function(){},n.Vue=o,n.Vue2=o,n.version=o.version}else console.error("[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.")}else if(o.version.slice(0,2)==="3."){for(var U in o)n[U]=o[U];n.isVue2=!1,n.isVue3=!0,n.install=function(){},n.Vue=o,n.Vue2=void 0,n.version=o.version,n.set=function(g,c,O){return Array.isArray(g)?(g.length=Math.max(g.length,c),g.splice(c,1,O),O):(g[c]=O,O)},n.del=function(g,c){if(Array.isArray(g)){g.splice(c,1);return}delete g[c]}}else console.error("[vue-demi] Vue version "+o.version+" is unsupported.");else console.error("[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.");s.VueDemi=n}})(window),function(s,n,o,f){"use strict";const U=n.defineComponent({name:"OnClickOutside",props:["as"],emits:["trigger"],setup(t,{slots:e,emit:r}){const a=n.ref();return o.onClickOutside(a,i=>{r("trigger",i)}),()=>{if(e.default)return n.h(t.as||"div",{ref:a},e.default())}}});function g(t){var e;const r=n.unref(t);return(e=r==null?void 0:r.$el)!=null?e:r}const c=f.isClient?window:void 0;function O(...t){let e,r,a,i;if(f.isString(t[0])?([r,a,i]=t,e=c):[e,r,a,i]=t,!e)return f.noop;let u=f.noop;const p=n.watch(()=>n.unref(e),l=>{u(),!!l&&(l.addEventListener(r,a,i),u=()=>{l.removeEventListener(r,a,i),u=f.noop})},{immediate:!0,flush:"post"}),y=()=>{p(),u()};return f.tryOnScopeDispose(y),y}function ee(t,e,r={}){const{window:a=c}=r;if(!a)return;const i=n.ref(!0),p=[O(a,"click",l=>{const v=g(t);!v||v===l.target||l.composedPath().includes(v)||!i.value||e(l)},{passive:!0,capture:!0}),O(a,"pointerdown",l=>{const v=g(t);i.value=!!v&&!l.composedPath().includes(v)},{passive:!0})];return()=>p.forEach(l=>l())}const te=(t,e)=>{ee(t,e.value)},re=n.defineComponent({name:"UseActiveElement",setup(t,{slots:e}){const r=n.reactive({element:o.useActiveElement()});return()=>{if(e.default)return e.default(r)}}}),ne=n.defineComponent({name:"UseBattery",setup(t,{slots:e}){const r=n.reactive(o.useBattery(t));return()=>{if(e.default)return e.default(r)}}}),ae=n.defineComponent({name:"UseBrowserLocation",setup(t,{slots:e}){const r=n.reactive(o.useBrowserLocation());return()=>{if(e.default)return e.default(r)}}}),j="__vueuse_ssr_handlers__";globalThis[j]=globalThis[j]||{};const oe=globalThis[j];function M(t,e){return oe[t]||e}function se(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"||Array.isArray(t)?"object":Number.isNaN(t)?"any":"number"}const ie={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))}};function ue(t,e,r=M("getDefaultStorage",()=>{var i;return(i=c)==null?void 0:i.localStorage})(),a={}){var i;const{flush:u="pre",deep:p=!0,listenToStorageChanges:y=!0,writeDefaults:l=!0,shallow:v,window:E=c,eventFilter:S,onError:w=_=>{console.error(_)}}=a,b=n.unref(e),L=se(b),P=(v?n.shallowRef:n.ref)(e),d=(i=a.serializer)!=null?i:ie[L];function h(_){if(!(!r||_&&_.key!==t))try{const m=_?_.newValue:r.getItem(t);m==null?(P.value=b,l&&b!==null&&r.setItem(t,d.write(b))):typeof m!="string"?P.value=m:P.value=d.read(m)}catch(m){w(m)}}return h(),E&&y&&O(E,"storage",_=>setTimeout(()=>h(_),0)),r&&f.watchWithFilter(P,()=>{try{P.value==null?r.removeItem(t):r.setItem(t,d.write(P.value))}catch(_){w(_)}},{flush:u,deep:p,eventFilter:S}),P}function le(t,e={}){const{window:r=c}=e;let a;const i=n.ref(!1),u=()=>{!r||(a||(a=r.matchMedia(t)),i.value=a.matches)};return f.tryOnMounted(()=>{u(),!!a&&("addEventListener"in a?a.addEventListener("change",u):a.addListener(u),f.tryOnScopeDispose(()=>{"removeEventListener"in u?a.removeEventListener("change",u):a.removeListener(u)}))}),i}function fe(t){return le("(prefers-color-scheme: dark)",t)}var ce=Object.defineProperty,N=Object.getOwnPropertySymbols,de=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable,A=(t,e,r)=>e in t?ce(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ge=(t,e)=>{for(var r in e||(e={}))de.call(e,r)&&A(t,r,e[r]);if(N)for(var r of N(e))pe.call(e,r)&&A(t,r,e[r]);return t};function _e(t={}){const{selector:e="html",attribute:r="class",window:a=c,storage:i=M("getDefaultStorage",()=>{var d;return(d=c)==null?void 0:d.localStorage})(),storageKey:u="vueuse-color-scheme",listenToStorageChanges:p=!0,storageRef:y}=t,l=ge({auto:"",light:"light",dark:"dark"},t.modes||{}),v=fe({window:a}),E=n.computed(()=>v.value?"dark":"light"),S=y||(u==null?n.ref("auto"):ue(u,"auto",i,{window:a,listenToStorageChanges:p})),w=n.computed({get(){return S.value==="auto"?E.value:S.value},set(d){S.value=d}}),b=M("updateHTMLAttrs",(d,h,_)=>{const m=a==null?void 0:a.document.querySelector(d);if(!!m)if(h==="class"){const Rt=_.split(/\s/g);Object.values(l).flatMap(C=>(C||"").split(/\s/g)).filter(Boolean).forEach(C=>{Rt.includes(C)?m.classList.add(C):m.classList.remove(C)})}else m.setAttribute(h,_)});function L(d){var h;b(e,r,(h=l[d])!=null?h:d)}function P(d){t.onChanged?t.onChanged(d,L):L(d)}return n.watch(w,P,{flush:"post",immediate:!0}),f.tryOnMounted(()=>P(w.value)),w}const me=n.defineComponent({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=_e(t),a=n.reactive({mode:r});return()=>{if(e.default)return e.default(a)}}}),ve=n.defineComponent({name:"UseDark",props:["selector","attribute","valueDark","valueLight","onChanged","storageKey","storage"],setup(t,{slots:e}){const r=o.useDark(t),a=n.reactive({isDark:r,toggleDark:f.useToggle(r)});return()=>{if(e.default)return e.default(a)}}}),Pe=n.defineComponent({name:"UseDeviceMotion",setup(t,{slots:e}){const r=n.reactive(o.useDeviceMotion());return()=>{if(e.default)return e.default(r)}}}),Oe=n.defineComponent({name:"UseDeviceOrientation",setup(t,{slots:e}){const r=n.reactive(o.useDeviceOrientation());return()=>{if(e.default)return e.default(r)}}}),ye=n.defineComponent({name:"UseDevicePixelRatio",setup(t,{slots:e}){const r=n.reactive({pixelRatio:o.useDevicePixelRatio()});return()=>{if(e.default)return e.default(r)}}}),he=n.defineComponent({name:"UseDevicesList",props:["onUpdated","requestPermissions","constraints"],setup(t,{slots:e}){const r=n.reactive(o.useDevicesList(t));return()=>{if(e.default)return e.default(r)}}}),Ue=n.defineComponent({name:"UseDocumentVisibility",setup(t,{slots:e}){const r=n.reactive({visibility:o.useDocumentVisibility()});return()=>{if(e.default)return e.default(r)}}});var we=Object.defineProperty,be=Object.defineProperties,Se=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Ve=Object.prototype.propertyIsEnumerable,I=(t,e,r)=>e in t?we(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,$e=(t,e)=>{for(var r in e||(e={}))Ce.call(e,r)&&I(t,r,e[r]);if(T)for(var r of T(e))Ve.call(e,r)&&I(t,r,e[r]);return t},Ee=(t,e)=>be(t,Se(e));const Le=n.defineComponent({name:"UseDraggable",props:["storageKey","initialValue","exact","preventDefault","pointerTypes","as"],setup(t,{slots:e}){const r=n.ref(),a=t.storageKey?o.useStorage(t.storageKey,n.unref(t.initialValue)||{x:0,y:0},o.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0):t.initialValue||{x:0,y:0},i=n.reactive(o.useDraggable(r,Ee($e({},t),{initialValue:a})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r,style:`touch-action:none;${i.style}`},e.default(i))}}}),je=n.defineComponent({name:"UseElementBounding",props:["box","as"],setup(t,{slots:e}){const r=n.ref(),a=n.reactive(o.useElementBounding(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(a))}}}),Me=n.defineComponent({name:"UseElementSize",props:["width","height","box"],setup(t,{slots:e}){const r=n.ref(),a=n.reactive(o.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(a))}}}),Ne=n.defineComponent({name:"UseElementVisibility",props:["as"],setup(t,{slots:e}){const r=n.ref(),a=n.reactive({isVisible:o.useElementVisibility(r)});return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(a))}}}),Ae=n.defineComponent({name:"UseEyeDropper",props:{sRGBHex:String},setup(t,{slots:e}){const r=n.reactive(o.useEyeDropper());return()=>{if(e.default)return e.default(r)}}}),Te=n.defineComponent({name:"UseFullscreen",props:["as"],setup(t,{slots:e}){const r=n.ref(),a=n.reactive(o.useFullscreen(r));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(a))}}}),Ie=n.defineComponent({name:"UseGeolocation",props:["enableHighAccuracy","maximumAge","timeout","navigator"],setup(t,{slots:e}){const r=n.reactive(o.useGeolocation(t));return()=>{if(e.default)return e.default(r)}}}),Be=n.defineComponent({name:"UseIdle",props:["timeout","events","listenForVisibilityChange","initialState"],setup(t,{slots:e}){const r=n.reactive(o.useIdle(t.timeout,t));return()=>{if(e.default)return e.default(r)}}}),Fe=n.defineComponent({name:"UseMouse",props:["touch","resetOnTouchEnds","initialValue"],setup(t,{slots:e}){const r=n.reactive(o.useMouse(t));return()=>{if(e.default)return e.default(r)}}}),ze=n.defineComponent({name:"UseMouseElement",props:["handleOutside","as"],setup(t,{slots:e}){const r=n.ref(),a=n.reactive(o.useMouseInElement(r,t));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(a))}}});var Re=Object.defineProperty,We=Object.defineProperties,ke=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,He=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable,F=(t,e,r)=>e in t?Re(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Je=(t,e)=>{for(var r in e||(e={}))He.call(e,r)&&F(t,r,e[r]);if(B)for(var r of B(e))Ke.call(e,r)&&F(t,r,e[r]);return t},Ge=(t,e)=>We(t,ke(e));const qe=n.defineComponent({name:"UseMousePressed",props:["touch","initialValue","as"],setup(t,{slots:e}){const r=n.ref(),a=n.reactive(o.useMousePressed(Ge(Je({},t),{target:r})));return()=>{if(e.default)return n.h(t.as||"div",{ref:r},e.default(a))}}}),Qe=n.defineComponent({name:"UseNetwork",setup(t,{slots:e}){const r=n.reactive(o.useNetwork());return()=>{if(e.default)return e.default(r)}}});var Xe=Object.defineProperty,Ye=Object.defineProperties,Ze=Object.getOwnPropertyDescriptors,z=Object.getOwnPropertySymbols,xe=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable,R=(t,e,r)=>e in t?Xe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,et=(t,e)=>{for(var r in e||(e={}))xe.call(e,r)&&R(t,r,e[r]);if(z)for(var r of z(e))De.call(e,r)&&R(t,r,e[r]);return t},tt=(t,e)=>Ye(t,Ze(e));const rt=n.defineComponent({name:"UseNow",props:["interval"],setup(t,{slots:e}){const r=n.reactive(o.useNow(tt(et({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}}),nt=n.defineComponent({name:"UseOnline",setup(t,{slots:e}){const r=n.reactive({isOnline:o.useOnline()});return()=>{if(e.default)return e.default(r)}}}),at=n.defineComponent({name:"UsePageLeave",setup(t,{slots:e}){const r=n.reactive({isLeft:o.usePageLeave()});return()=>{if(e.default)return e.default(r)}}});var ot=Object.defineProperty,st=Object.defineProperties,it=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertySymbols,ut=Object.prototype.hasOwnProperty,lt=Object.prototype.propertyIsEnumerable,k=(t,e,r)=>e in t?ot(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ft=(t,e)=>{for(var r in e||(e={}))ut.call(e,r)&&k(t,r,e[r]);if(W)for(var r of W(e))lt.call(e,r)&&k(t,r,e[r]);return t},ct=(t,e)=>st(t,it(e));const dt=n.defineComponent({name:"UsePointer",props:["pointerTypes","initialValue","target"],setup(t,{slots:e}){const r=n.ref(null),a=n.reactive(o.usePointer(ct(ft({},t),{target:t.target==="self"?r:c})));return()=>{if(e.default)return e.default(a,{ref:r})}}}),pt=n.defineComponent({name:"UsePreferredColorScheme",setup(t,{slots:e}){const r=n.reactive({colorScheme:o.usePreferredColorScheme()});return()=>{if(e.default)return e.default(r)}}}),gt=n.defineComponent({name:"UsePreferredDark",setup(t,{slots:e}){const r=n.reactive({prefersDark:o.usePreferredDark()});return()=>{if(e.default)return e.default(r)}}}),_t=n.defineComponent({name:"UsePreferredLanguages",setup(t,{slots:e}){const r=n.reactive({languages:o.usePreferredLanguages()});return()=>{if(e.default)return e.default(r)}}});function V(t,e,{window:r=c}={}){const a=n.ref(""),i=n.computed(()=>{var u;return g(e)||((u=r==null?void 0:r.document)==null?void 0:u.documentElement)});return n.watch(i,u=>{u&&r&&(a.value=r.getComputedStyle(u).getPropertyValue(t))},{immediate:!0}),n.watch(a,u=>{var p;((p=i.value)==null?void 0:p.style)&&i.value.style.setProperty(t,u)}),a}const H="--vueuse-safe-area-top",K="--vueuse-safe-area-right",J="--vueuse-safe-area-bottom",G="--vueuse-safe-area-left";function mt(){const t=n.ref(""),e=n.ref(""),r=n.ref(""),a=n.ref("");if(f.isClient){const u=V(H),p=V(K),y=V(J),l=V(G);u.value="env(safe-area-inset-top, 0px)",p.value="env(safe-area-inset-right, 0px)",y.value="env(safe-area-inset-bottom, 0px)",l.value="env(safe-area-inset-left, 0px)",i(),O("resize",f.useDebounceFn(i))}function i(){t.value=$(H),e.value=$(K),r.value=$(J),a.value=$(G)}return{top:t,right:e,bottom:r,left:a,update:i}}function $(t){return getComputedStyle(document.documentElement).getPropertyValue(t)}const vt=n.defineComponent({name:"UseScreenSafeArea",props:{top:Boolean,right:Boolean,bottom:Boolean,left:Boolean},setup(t,{slots:e}){const{top:r,right:a,bottom:i,left:u}=mt();return()=>{if(e.default)return n.h("div",{style:{paddingTop:t.top?r.value:"",paddingRight:t.right?a.value:"",paddingBottom:t.bottom?i.value:"",paddingLeft:t.left?u.value:"",boxSizing:"border-box",maxHeight:"100vh",maxWidth:"100vw",overflow:"auto"}},e.default())}}});var Pt=Object.defineProperty,Ot=Object.defineProperties,yt=Object.getOwnPropertyDescriptors,q=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable,Q=(t,e,r)=>e in t?Pt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,wt=(t,e)=>{for(var r in e||(e={}))ht.call(e,r)&&Q(t,r,e[r]);if(q)for(var r of q(e))Ut.call(e,r)&&Q(t,r,e[r]);return t},bt=(t,e)=>Ot(t,yt(e));const St=n.defineComponent({name:"UseTimeAgo",props:["time","updateInterval","max","fullDateFormatter","messages"],setup(t,{slots:e}){const r=n.toRef(t,"time"),a=n.reactive(o.useTimeAgo(r,bt(wt({},t),{controls:!0})));return()=>{if(e.default)return e.default(a)}}});var Ct=Object.defineProperty,Vt=Object.defineProperties,$t=Object.getOwnPropertyDescriptors,X=Object.getOwnPropertySymbols,Et=Object.prototype.hasOwnProperty,Lt=Object.prototype.propertyIsEnumerable,Y=(t,e,r)=>e in t?Ct(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,jt=(t,e)=>{for(var r in e||(e={}))Et.call(e,r)&&Y(t,r,e[r]);if(X)for(var r of X(e))Lt.call(e,r)&&Y(t,r,e[r]);return t},Mt=(t,e)=>Vt(t,$t(e));const Nt=n.defineComponent({name:"UseTimestamp",props:["immediate","interval","offset"],setup(t,{slots:e}){const r=n.reactive(o.useTimestamp(Mt(jt({},t),{controls:!0})));return()=>{if(e.default)return e.default(r)}}});var At=Object.defineProperty,Z=Object.getOwnPropertySymbols,Tt=Object.prototype.hasOwnProperty,It=Object.prototype.propertyIsEnumerable,x=(t,e,r)=>e in t?At(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,D=(t,e)=>{for(var r in e||(e={}))Tt.call(e,r)&&x(t,r,e[r]);if(Z)for(var r of Z(e))It.call(e,r)&&x(t,r,e[r]);return t};const Bt=n.defineComponent({name:"UseVirtualList",props:["list","options","height"],setup(t,{slots:e}){const{list:r}=n.toRefs(t),{list:a,containerProps:i,wrapperProps:u}=o.useVirtualList(r,t.options);return i.style.height=t.height||"300px",()=>n.h("div",D({},i),[n.h("div",D({},u.value),a.value.map(p=>n.h("div",{style:{overFlow:"hidden",height:p.height}},e.default?e.default(p):"Please set content!")))])}}),Ft=n.defineComponent({name:"UseWindowFocus",setup(t,{slots:e}){const r=n.reactive({focused:o.useWindowFocus()});return()=>{if(e.default)return e.default(r)}}}),zt=n.defineComponent({name:"UseWindowSize",props:["initialWidth","initialHeight"],setup(t,{slots:e}){const r=n.reactive(o.useWindowSize(t));return()=>{if(e.default)return e.default(r)}}});s.OnClickOutside=U,s.UseActiveElement=re,s.UseBattery=ne,s.UseBrowserLocation=ae,s.UseColorMode=me,s.UseDark=ve,s.UseDeviceMotion=Pe,s.UseDeviceOrientation=Oe,s.UseDevicePixelRatio=ye,s.UseDevicesList=he,s.UseDocumentVisibility=Ue,s.UseDraggable=Le,s.UseElementBounding=je,s.UseElementSize=Me,s.UseElementVisibility=Ne,s.UseEyeDropper=Ae,s.UseFullscreen=Te,s.UseGeolocation=Ie,s.UseIdle=Be,s.UseMouse=Fe,s.UseMouseInElement=ze,s.UseMousePressed=qe,s.UseNetwork=Qe,s.UseNow=rt,s.UseOnline=nt,s.UsePageLeave=at,s.UsePointer=dt,s.UsePreferredColorScheme=pt,s.UsePreferredDark=gt,s.UsePreferredLanguages=_t,s.UseScreenSafeArea=vt,s.UseTimeAgo=St,s.UseTimestamp=Nt,s.UseVirtualList=Bt,s.UseWindowFocus=Ft,s.UseWindowSize=zt,s.VOnClickOutside=te,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, unref, watch, reactive, toRefs } from 'vue-demi';
|
|
2
|
-
import { onClickOutside as onClickOutside$1, useActiveElement, useBattery, useBrowserLocation, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useStorage, isClient as isClient$1, useDraggable, useElementBounding, useElementSize, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useOnline, usePageLeave, usePointer, usePreferredColorScheme, usePreferredDark
|
|
3
|
-
import { isClient, isString, noop, tryOnScopeDispose, useToggle } from '@vueuse/shared';
|
|
1
|
+
import { defineComponent, ref, h, unref, watch, reactive, shallowRef, computed, toRef, toRefs } from 'vue-demi';
|
|
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, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useOnline, usePageLeave, usePointer, usePreferredColorScheme, usePreferredDark as usePreferredDark$1, usePreferredLanguages, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';
|
|
3
|
+
import { isClient, isString, noop, tryOnScopeDispose, watchWithFilter, tryOnMounted, useToggle, useDebounceFn } from '@vueuse/shared';
|
|
4
4
|
|
|
5
5
|
const OnClickOutside = defineComponent({
|
|
6
6
|
name: "OnClickOutside",
|
|
@@ -119,6 +119,232 @@ const UseBrowserLocation = defineComponent({
|
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
121
|
|
|
122
|
+
const globalKey = "__vueuse_ssr_handlers__";
|
|
123
|
+
globalThis[globalKey] = globalThis[globalKey] || {};
|
|
124
|
+
const handlers = globalThis[globalKey];
|
|
125
|
+
function getSSRHandler(key, fallback) {
|
|
126
|
+
return handlers[key] || fallback;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function guessSerializerType(rawInit) {
|
|
130
|
+
return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : Array.isArray(rawInit) ? "object" : !Number.isNaN(rawInit) ? "number" : "any";
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const StorageSerializers = {
|
|
134
|
+
boolean: {
|
|
135
|
+
read: (v) => v === "true",
|
|
136
|
+
write: (v) => String(v)
|
|
137
|
+
},
|
|
138
|
+
object: {
|
|
139
|
+
read: (v) => JSON.parse(v),
|
|
140
|
+
write: (v) => JSON.stringify(v)
|
|
141
|
+
},
|
|
142
|
+
number: {
|
|
143
|
+
read: (v) => Number.parseFloat(v),
|
|
144
|
+
write: (v) => String(v)
|
|
145
|
+
},
|
|
146
|
+
any: {
|
|
147
|
+
read: (v) => v,
|
|
148
|
+
write: (v) => String(v)
|
|
149
|
+
},
|
|
150
|
+
string: {
|
|
151
|
+
read: (v) => v,
|
|
152
|
+
write: (v) => String(v)
|
|
153
|
+
},
|
|
154
|
+
map: {
|
|
155
|
+
read: (v) => new Map(JSON.parse(v)),
|
|
156
|
+
write: (v) => JSON.stringify(Array.from(v.entries()))
|
|
157
|
+
},
|
|
158
|
+
set: {
|
|
159
|
+
read: (v) => new Set(JSON.parse(v)),
|
|
160
|
+
write: (v) => JSON.stringify(Array.from(v.entries()))
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
function useStorage(key, initialValue, storage = getSSRHandler("getDefaultStorage", () => {
|
|
164
|
+
var _a;
|
|
165
|
+
return (_a = defaultWindow) == null ? void 0 : _a.localStorage;
|
|
166
|
+
})(), options = {}) {
|
|
167
|
+
var _a;
|
|
168
|
+
const {
|
|
169
|
+
flush = "pre",
|
|
170
|
+
deep = true,
|
|
171
|
+
listenToStorageChanges = true,
|
|
172
|
+
writeDefaults = true,
|
|
173
|
+
shallow,
|
|
174
|
+
window = defaultWindow,
|
|
175
|
+
eventFilter,
|
|
176
|
+
onError = (e) => {
|
|
177
|
+
console.error(e);
|
|
178
|
+
}
|
|
179
|
+
} = options;
|
|
180
|
+
const rawInit = unref(initialValue);
|
|
181
|
+
const type = guessSerializerType(rawInit);
|
|
182
|
+
const data = (shallow ? shallowRef : ref)(initialValue);
|
|
183
|
+
const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
|
|
184
|
+
function read(event) {
|
|
185
|
+
if (!storage || event && event.key !== key)
|
|
186
|
+
return;
|
|
187
|
+
try {
|
|
188
|
+
const rawValue = event ? event.newValue : storage.getItem(key);
|
|
189
|
+
if (rawValue == null) {
|
|
190
|
+
data.value = rawInit;
|
|
191
|
+
if (writeDefaults && rawInit !== null)
|
|
192
|
+
storage.setItem(key, serializer.write(rawInit));
|
|
193
|
+
} else if (typeof rawValue !== "string") {
|
|
194
|
+
data.value = rawValue;
|
|
195
|
+
} else {
|
|
196
|
+
data.value = serializer.read(rawValue);
|
|
197
|
+
}
|
|
198
|
+
} catch (e) {
|
|
199
|
+
onError(e);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
read();
|
|
203
|
+
if (window && listenToStorageChanges)
|
|
204
|
+
useEventListener(window, "storage", (e) => setTimeout(() => read(e), 0));
|
|
205
|
+
if (storage) {
|
|
206
|
+
watchWithFilter(data, () => {
|
|
207
|
+
try {
|
|
208
|
+
if (data.value == null)
|
|
209
|
+
storage.removeItem(key);
|
|
210
|
+
else
|
|
211
|
+
storage.setItem(key, serializer.write(data.value));
|
|
212
|
+
} catch (e) {
|
|
213
|
+
onError(e);
|
|
214
|
+
}
|
|
215
|
+
}, {
|
|
216
|
+
flush,
|
|
217
|
+
deep,
|
|
218
|
+
eventFilter
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
return data;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
function useMediaQuery(query, options = {}) {
|
|
225
|
+
const { window = defaultWindow } = options;
|
|
226
|
+
let mediaQuery;
|
|
227
|
+
const matches = ref(false);
|
|
228
|
+
const update = () => {
|
|
229
|
+
if (!window)
|
|
230
|
+
return;
|
|
231
|
+
if (!mediaQuery)
|
|
232
|
+
mediaQuery = window.matchMedia(query);
|
|
233
|
+
matches.value = mediaQuery.matches;
|
|
234
|
+
};
|
|
235
|
+
tryOnMounted(() => {
|
|
236
|
+
update();
|
|
237
|
+
if (!mediaQuery)
|
|
238
|
+
return;
|
|
239
|
+
if ("addEventListener" in mediaQuery)
|
|
240
|
+
mediaQuery.addEventListener("change", update);
|
|
241
|
+
else
|
|
242
|
+
mediaQuery.addListener(update);
|
|
243
|
+
tryOnScopeDispose(() => {
|
|
244
|
+
if ("removeEventListener" in update)
|
|
245
|
+
mediaQuery.removeEventListener("change", update);
|
|
246
|
+
else
|
|
247
|
+
mediaQuery.removeListener(update);
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
return matches;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
function usePreferredDark(options) {
|
|
254
|
+
return useMediaQuery("(prefers-color-scheme: dark)", options);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
var __defProp$7 = Object.defineProperty;
|
|
258
|
+
var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
|
|
259
|
+
var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
|
|
260
|
+
var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
|
|
261
|
+
var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
262
|
+
var __spreadValues$7 = (a, b) => {
|
|
263
|
+
for (var prop in b || (b = {}))
|
|
264
|
+
if (__hasOwnProp$7.call(b, prop))
|
|
265
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
266
|
+
if (__getOwnPropSymbols$7)
|
|
267
|
+
for (var prop of __getOwnPropSymbols$7(b)) {
|
|
268
|
+
if (__propIsEnum$7.call(b, prop))
|
|
269
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
270
|
+
}
|
|
271
|
+
return a;
|
|
272
|
+
};
|
|
273
|
+
function useColorMode(options = {}) {
|
|
274
|
+
const {
|
|
275
|
+
selector = "html",
|
|
276
|
+
attribute = "class",
|
|
277
|
+
window = defaultWindow,
|
|
278
|
+
storage = getSSRHandler("getDefaultStorage", () => {
|
|
279
|
+
var _a;
|
|
280
|
+
return (_a = defaultWindow) == null ? void 0 : _a.localStorage;
|
|
281
|
+
})(),
|
|
282
|
+
storageKey = "vueuse-color-scheme",
|
|
283
|
+
listenToStorageChanges = true,
|
|
284
|
+
storageRef
|
|
285
|
+
} = options;
|
|
286
|
+
const modes = __spreadValues$7({
|
|
287
|
+
auto: "",
|
|
288
|
+
light: "light",
|
|
289
|
+
dark: "dark"
|
|
290
|
+
}, options.modes || {});
|
|
291
|
+
const preferredDark = usePreferredDark({ window });
|
|
292
|
+
const preferredMode = computed(() => preferredDark.value ? "dark" : "light");
|
|
293
|
+
const store = storageRef || (storageKey == null ? ref("auto") : useStorage(storageKey, "auto", storage, { window, listenToStorageChanges }));
|
|
294
|
+
const state = computed({
|
|
295
|
+
get() {
|
|
296
|
+
return store.value === "auto" ? preferredMode.value : store.value;
|
|
297
|
+
},
|
|
298
|
+
set(v) {
|
|
299
|
+
store.value = v;
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
const updateHTMLAttrs = getSSRHandler("updateHTMLAttrs", (selector2, attribute2, value) => {
|
|
303
|
+
const el = window == null ? void 0 : window.document.querySelector(selector2);
|
|
304
|
+
if (!el)
|
|
305
|
+
return;
|
|
306
|
+
if (attribute2 === "class") {
|
|
307
|
+
const current = value.split(/\s/g);
|
|
308
|
+
Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => {
|
|
309
|
+
if (current.includes(v))
|
|
310
|
+
el.classList.add(v);
|
|
311
|
+
else
|
|
312
|
+
el.classList.remove(v);
|
|
313
|
+
});
|
|
314
|
+
} else {
|
|
315
|
+
el.setAttribute(attribute2, value);
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
function defaultOnChanged(mode) {
|
|
319
|
+
var _a;
|
|
320
|
+
updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);
|
|
321
|
+
}
|
|
322
|
+
function onChanged(mode) {
|
|
323
|
+
if (options.onChanged)
|
|
324
|
+
options.onChanged(mode, defaultOnChanged);
|
|
325
|
+
else
|
|
326
|
+
defaultOnChanged(mode);
|
|
327
|
+
}
|
|
328
|
+
watch(state, onChanged, { flush: "post", immediate: true });
|
|
329
|
+
tryOnMounted(() => onChanged(state.value));
|
|
330
|
+
return state;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
const UseColorMode = defineComponent({
|
|
334
|
+
name: "UseColorMode",
|
|
335
|
+
props: ["selector", "attribute", "modes", "onChanged", "storageKey", "storage"],
|
|
336
|
+
setup(props, { slots }) {
|
|
337
|
+
const mode = useColorMode(props);
|
|
338
|
+
const data = reactive({
|
|
339
|
+
mode
|
|
340
|
+
});
|
|
341
|
+
return () => {
|
|
342
|
+
if (slots.default)
|
|
343
|
+
return slots.default(data);
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
});
|
|
347
|
+
|
|
122
348
|
const UseDark = defineComponent({
|
|
123
349
|
name: "UseDark",
|
|
124
350
|
props: ["selector", "attribute", "valueDark", "valueLight", "onChanged", "storageKey", "storage"],
|
|
@@ -226,7 +452,7 @@ const UseDraggable = defineComponent({
|
|
|
226
452
|
],
|
|
227
453
|
setup(props, { slots }) {
|
|
228
454
|
const target = ref();
|
|
229
|
-
const initialValue = props.storageKey ? useStorage(props.storageKey, unref(props.initialValue) || { x: 0, y: 0 }, isClient$1 ? props.storageType === "session" ? sessionStorage : localStorage : void 0) : props.initialValue || { x: 0, y: 0 };
|
|
455
|
+
const initialValue = props.storageKey ? useStorage$1(props.storageKey, unref(props.initialValue) || { x: 0, y: 0 }, isClient$1 ? props.storageType === "session" ? sessionStorage : localStorage : void 0) : props.initialValue || { x: 0, y: 0 };
|
|
230
456
|
const data = reactive(useDraggable(target, __spreadProps$5(__spreadValues$6({}, props), {
|
|
231
457
|
initialValue
|
|
232
458
|
})));
|
|
@@ -509,7 +735,7 @@ const UsePreferredDark = defineComponent({
|
|
|
509
735
|
name: "UsePreferredDark",
|
|
510
736
|
setup(props, { slots }) {
|
|
511
737
|
const data = reactive({
|
|
512
|
-
prefersDark: usePreferredDark()
|
|
738
|
+
prefersDark: usePreferredDark$1()
|
|
513
739
|
});
|
|
514
740
|
return () => {
|
|
515
741
|
if (slots.default)
|
|
@@ -531,6 +757,24 @@ const UsePreferredLanguages = defineComponent({
|
|
|
531
757
|
}
|
|
532
758
|
});
|
|
533
759
|
|
|
760
|
+
function useCssVar(prop, target, { window = defaultWindow } = {}) {
|
|
761
|
+
const variable = ref("");
|
|
762
|
+
const elRef = computed(() => {
|
|
763
|
+
var _a;
|
|
764
|
+
return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);
|
|
765
|
+
});
|
|
766
|
+
watch(elRef, (el) => {
|
|
767
|
+
if (el && window)
|
|
768
|
+
variable.value = window.getComputedStyle(el).getPropertyValue(prop);
|
|
769
|
+
}, { immediate: true });
|
|
770
|
+
watch(variable, (val) => {
|
|
771
|
+
var _a;
|
|
772
|
+
if ((_a = elRef.value) == null ? void 0 : _a.style)
|
|
773
|
+
elRef.value.style.setProperty(prop, val);
|
|
774
|
+
});
|
|
775
|
+
return variable;
|
|
776
|
+
}
|
|
777
|
+
|
|
534
778
|
const topVarName = "--vueuse-safe-area-top";
|
|
535
779
|
const rightVarName = "--vueuse-safe-area-right";
|
|
536
780
|
const bottomVarName = "--vueuse-safe-area-bottom";
|
|
@@ -540,7 +784,7 @@ function useScreenSafeArea() {
|
|
|
540
784
|
const right = ref("");
|
|
541
785
|
const bottom = ref("");
|
|
542
786
|
const left = ref("");
|
|
543
|
-
if (isClient
|
|
787
|
+
if (isClient) {
|
|
544
788
|
const topCssVar = useCssVar(topVarName);
|
|
545
789
|
const rightCssVar = useCssVar(rightVarName);
|
|
546
790
|
const bottomCssVar = useCssVar(bottomVarName);
|
|
@@ -550,7 +794,7 @@ function useScreenSafeArea() {
|
|
|
550
794
|
bottomCssVar.value = "env(safe-area-inset-bottom, 0px)";
|
|
551
795
|
leftCssVar.value = "env(safe-area-inset-left, 0px)";
|
|
552
796
|
update();
|
|
553
|
-
useEventListener
|
|
797
|
+
useEventListener("resize", useDebounceFn(update));
|
|
554
798
|
}
|
|
555
799
|
function update() {
|
|
556
800
|
top.value = getValue(topVarName);
|
|
@@ -627,7 +871,7 @@ const UseTimeAgo = defineComponent({
|
|
|
627
871
|
name: "UseTimeAgo",
|
|
628
872
|
props: ["time", "updateInterval", "max", "fullDateFormatter", "messages"],
|
|
629
873
|
setup(props, { slots }) {
|
|
630
|
-
const
|
|
874
|
+
const time = toRef(props, "time");
|
|
631
875
|
const data = reactive(useTimeAgo(time, __spreadProps$1(__spreadValues$2({}, props), { controls: true })));
|
|
632
876
|
return () => {
|
|
633
877
|
if (slots.default)
|
|
@@ -725,4 +969,4 @@ const UseWindowSize = defineComponent({
|
|
|
725
969
|
}
|
|
726
970
|
});
|
|
727
971
|
|
|
728
|
-
export { OnClickOutside, UseActiveElement, UseBattery, UseBrowserLocation, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseOnline, UsePageLeave, UsePointer, UsePreferredColorScheme, UsePreferredDark, UsePreferredLanguages, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside };
|
|
972
|
+
export { OnClickOutside, UseActiveElement, UseBattery, UseBrowserLocation, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseOnline, UsePageLeave, UsePointer, UsePreferredColorScheme, UsePreferredDark, UsePreferredLanguages, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vueuse/components",
|
|
3
|
-
"version": "7.3
|
|
3
|
+
"version": "7.4.3",
|
|
4
4
|
"description": "Renderless components for VueUse",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
},
|
|
34
34
|
"homepage": "https://github.com/vueuse/vueuse/tree/main/packages/components#readme",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@vueuse/core": "7.3
|
|
37
|
-
"@vueuse/shared": "7.3
|
|
36
|
+
"@vueuse/core": "7.4.3",
|
|
37
|
+
"@vueuse/shared": "7.4.3",
|
|
38
38
|
"vue-demi": "*"
|
|
39
39
|
}
|
|
40
40
|
}
|