nuxt-hs-ui 2.1.11 → 2.1.13
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/dist/module.json
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
export declare const useHsMisc: import("pinia").StoreDefinition<"HsMisc", Pick<{
|
|
2
2
|
state: {
|
|
3
3
|
isInit: boolean;
|
|
4
4
|
isReady: boolean;
|
|
5
5
|
isMobile: boolean;
|
|
6
|
-
isBracke: boolean;
|
|
7
|
-
spBracke: number;
|
|
8
6
|
readyDeray: number;
|
|
9
7
|
window: {
|
|
10
8
|
h: number;
|
|
@@ -12,11 +10,43 @@ interface StoreState {
|
|
|
12
10
|
};
|
|
13
11
|
scrollbarWidth: number;
|
|
14
12
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Init(arg?: {
|
|
18
|
-
spBracke?: number;
|
|
13
|
+
GetUa: () => string;
|
|
14
|
+
IsMobile: () => boolean;
|
|
15
|
+
Init: (arg?: {
|
|
19
16
|
readyDeray?: number;
|
|
20
|
-
})
|
|
21
|
-
}
|
|
22
|
-
|
|
17
|
+
}) => Promise<void>;
|
|
18
|
+
}, "state">, Pick<{
|
|
19
|
+
state: {
|
|
20
|
+
isInit: boolean;
|
|
21
|
+
isReady: boolean;
|
|
22
|
+
isMobile: boolean;
|
|
23
|
+
readyDeray: number;
|
|
24
|
+
window: {
|
|
25
|
+
h: number;
|
|
26
|
+
w: number;
|
|
27
|
+
};
|
|
28
|
+
scrollbarWidth: number;
|
|
29
|
+
};
|
|
30
|
+
GetUa: () => string;
|
|
31
|
+
IsMobile: () => boolean;
|
|
32
|
+
Init: (arg?: {
|
|
33
|
+
readyDeray?: number;
|
|
34
|
+
}) => Promise<void>;
|
|
35
|
+
}, never>, Pick<{
|
|
36
|
+
state: {
|
|
37
|
+
isInit: boolean;
|
|
38
|
+
isReady: boolean;
|
|
39
|
+
isMobile: boolean;
|
|
40
|
+
readyDeray: number;
|
|
41
|
+
window: {
|
|
42
|
+
h: number;
|
|
43
|
+
w: number;
|
|
44
|
+
};
|
|
45
|
+
scrollbarWidth: number;
|
|
46
|
+
};
|
|
47
|
+
GetUa: () => string;
|
|
48
|
+
IsMobile: () => boolean;
|
|
49
|
+
Init: (arg?: {
|
|
50
|
+
readyDeray?: number;
|
|
51
|
+
}) => Promise<void>;
|
|
52
|
+
}, "Init" | "GetUa" | "IsMobile">>;
|
|
@@ -1,63 +1,85 @@
|
|
|
1
1
|
import { defineStore } from "pinia";
|
|
2
|
-
import { nextTick } from "vue";
|
|
2
|
+
import { nextTick, reactive } from "vue";
|
|
3
3
|
import { useEventListener } from "@vueuse/core";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
isBracke: false,
|
|
13
|
-
spBracke: 768,
|
|
14
|
-
readyDeray: 10,
|
|
15
|
-
window: {
|
|
16
|
-
h: 0,
|
|
17
|
-
w: 0
|
|
18
|
-
},
|
|
19
|
-
scrollbarWidth: 0
|
|
4
|
+
import { useRequestHeaders } from "#app";
|
|
5
|
+
import { Sleep } from "../utils/com.js";
|
|
6
|
+
export const useHsMisc = defineStore("HsMisc", () => {
|
|
7
|
+
const GetUa = () => {
|
|
8
|
+
try {
|
|
9
|
+
if (import.meta.client) {
|
|
10
|
+
if (navigator === void 0) return "";
|
|
11
|
+
return navigator.userAgent.toLowerCase();
|
|
20
12
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// ----------------------------------------------------------------------------
|
|
24
|
-
actions: {
|
|
25
|
-
// ---------------------
|
|
26
|
-
async Init(arg) {
|
|
27
|
-
await Sleep(0);
|
|
28
|
-
const state = this.state;
|
|
29
|
-
if (state.isInit) return;
|
|
30
|
-
if (arg?.readyDeray) {
|
|
31
|
-
state.readyDeray = arg.readyDeray;
|
|
32
|
-
}
|
|
33
|
-
if (arg?.spBracke) {
|
|
34
|
-
state.spBracke = arg.spBracke;
|
|
13
|
+
if (import.meta.server) {
|
|
14
|
+
return useRequestHeaders(["User-Agent"])["user-agent"] || "";
|
|
35
15
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
16
|
+
return "";
|
|
17
|
+
} catch (err) {
|
|
18
|
+
console.error(err);
|
|
19
|
+
return "";
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const IsTouchDevice = () => {
|
|
23
|
+
try {
|
|
24
|
+
if (import.meta.client) return "ontouchend" in document;
|
|
25
|
+
return false;
|
|
26
|
+
} catch (err) {
|
|
27
|
+
console.error(err);
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const IsMobile = () => {
|
|
32
|
+
const ua = GetUa();
|
|
33
|
+
if (/android|ipod|ipad|iphone|macintosh/.test(ua) || IsTouchDevice()) {
|
|
34
|
+
return true;
|
|
35
|
+
} else {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const state = reactive({
|
|
40
|
+
isInit: false,
|
|
41
|
+
isReady: false,
|
|
42
|
+
isMobile: IsMobile(),
|
|
43
|
+
readyDeray: 10,
|
|
44
|
+
window: {
|
|
45
|
+
h: 0,
|
|
46
|
+
w: 0
|
|
47
|
+
},
|
|
48
|
+
scrollbarWidth: 0
|
|
49
|
+
});
|
|
50
|
+
const Init = async (arg) => {
|
|
51
|
+
await Sleep(0);
|
|
52
|
+
if (state.isInit) return;
|
|
53
|
+
if (arg?.readyDeray) {
|
|
54
|
+
state.readyDeray = arg.readyDeray;
|
|
55
|
+
}
|
|
56
|
+
state.isInit = true;
|
|
57
|
+
state.isMobile = IsMobile();
|
|
58
|
+
const initWindow = () => {
|
|
59
|
+
useEventListener(window, "resize", () => {
|
|
48
60
|
state.window = {
|
|
49
61
|
h: window.innerHeight,
|
|
50
62
|
w: window.innerWidth
|
|
51
63
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
64
|
+
state.scrollbarWidth = window.innerWidth - document.body.clientWidth < 0 ? 0 : window.innerWidth - document.body.clientWidth;
|
|
65
|
+
});
|
|
66
|
+
state.window = {
|
|
67
|
+
h: window.innerHeight,
|
|
68
|
+
w: window.innerWidth
|
|
55
69
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
70
|
+
setTimeout(() => {
|
|
71
|
+
state.scrollbarWidth = window.innerWidth - document.body.clientWidth < 0 ? 0 : window.innerWidth - document.body.clientWidth;
|
|
72
|
+
}, 1e3);
|
|
73
|
+
};
|
|
74
|
+
initWindow();
|
|
75
|
+
await Sleep(state.readyDeray);
|
|
76
|
+
state.isReady = true;
|
|
77
|
+
await nextTick();
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
state,
|
|
81
|
+
GetUa,
|
|
82
|
+
IsMobile,
|
|
83
|
+
Init
|
|
84
|
+
};
|
|
63
85
|
});
|
|
@@ -11,12 +11,3 @@ export const Sleep = (time) => {
|
|
|
11
11
|
}, time);
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
|
-
export const IsMobile = () => {
|
|
15
|
-
if (navigator === void 0) return false;
|
|
16
|
-
const userAgent = navigator.userAgent.toLowerCase();
|
|
17
|
-
if (/android|ipod|ipad|iphone|macintosh/.test(userAgent) && "ontouchend" in document) {
|
|
18
|
-
return true;
|
|
19
|
-
} else {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
};
|