@jnrs/vue-core 1.1.1 → 1.1.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/README.md +12 -3
- package/dist/components/GlobalSetting.vue.d.ts +4 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +122 -0
- package/dist/index-DEkMXVh9.js +109 -0
- package/dist/index-pLO4r50y.js +94 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +6 -0
- package/dist/piniaStore/base/auth.d.ts +1 -1
- package/dist/piniaStore/base/menu.d.ts +11 -14
- package/dist/piniaStore/base/system.d.ts +45 -13
- package/dist/piniaStore/index.js +5 -162
- package/dist/system-DSegwP0Z.js +1644 -0
- package/dist/types/base.d.ts +0 -32
- package/dist/vueRouter/index.js +8 -103
- package/dist/vueRouter/types.d.ts +1 -0
- package/package.json +12 -4
package/dist/piniaStore/index.js
CHANGED
|
@@ -1,165 +1,8 @@
|
|
|
1
1
|
import "pinia-plugin-persistedstate";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { asyncGenerateRoute as p } from "../vueRouter/index.js";
|
|
5
|
-
class h {
|
|
6
|
-
// 默认全屏元素,可配置
|
|
7
|
-
defaultElement;
|
|
8
|
-
constructor(e) {
|
|
9
|
-
this.defaultElement = e || document.documentElement;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* 进入全屏
|
|
13
|
-
* @param element 可选,指定要全屏的元素
|
|
14
|
-
*/
|
|
15
|
-
async request(e) {
|
|
16
|
-
const u = e || this.defaultElement;
|
|
17
|
-
try {
|
|
18
|
-
await u.requestFullscreen({
|
|
19
|
-
navigationUI: "hide"
|
|
20
|
-
});
|
|
21
|
-
} catch (t) {
|
|
22
|
-
console.error("进入全屏失败:", t);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 退出全屏
|
|
27
|
-
*/
|
|
28
|
-
async exit() {
|
|
29
|
-
if (document.fullscreenElement)
|
|
30
|
-
try {
|
|
31
|
-
await document.exitFullscreen();
|
|
32
|
-
} catch (e) {
|
|
33
|
-
console.error("退出全屏失败:", e);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* 切换全屏状态
|
|
38
|
-
* @param element 可选,指定要切换全屏的元素
|
|
39
|
-
*/
|
|
40
|
-
async toggle(e) {
|
|
41
|
-
document.fullscreenElement ? await this.exit() : await this.request(e);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* 判断当前是否处于全屏状态
|
|
45
|
-
* @returns boolean
|
|
46
|
-
*/
|
|
47
|
-
isFullscreen() {
|
|
48
|
-
return !!document.fullscreenElement;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* 设置默认全屏元素
|
|
52
|
-
* @param element 新的默认元素
|
|
53
|
-
*/
|
|
54
|
-
setDefaultElement(e) {
|
|
55
|
-
this.defaultElement = e;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* 获取当前全屏的元素(如果存在)
|
|
59
|
-
* @returns HTMLElement | null
|
|
60
|
-
*/
|
|
61
|
-
getFullscreenElement() {
|
|
62
|
-
return document.fullscreenElement;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
console.log("%c✨ 欢迎使用 @jnrs/shared", 'background: #8061BF; color: #f2f2f2; font-weight: bold; padding: 4px 8px; border-radius: 4px; font-family: "Helvetica Neue", sans-serif;');
|
|
66
|
-
const l = new h(), F = a(
|
|
67
|
-
"@jnrs/vue-core/pinia:system",
|
|
68
|
-
() => {
|
|
69
|
-
const n = r("zh-CN"), e = r("light"), u = r(!1), t = r(l.isFullscreen());
|
|
70
|
-
return { i18n: n, theme: e, menuCollapse: u, documentFullscreen: t, toggleCollapse: () => {
|
|
71
|
-
u.value = !u.value;
|
|
72
|
-
}, toggleFullScreen: async () => {
|
|
73
|
-
await l.toggle(), t.value = l.isFullscreen();
|
|
74
|
-
} };
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
persist: {
|
|
78
|
-
pick: ["i18n", "theme", "menuCollapse"]
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
), C = a(
|
|
82
|
-
"@jnrs/vue-core/pinia:auth",
|
|
83
|
-
() => {
|
|
84
|
-
const n = r(!1), e = r(), u = r(), t = r();
|
|
85
|
-
return {
|
|
86
|
-
hasAuthenticated: n,
|
|
87
|
-
token: e,
|
|
88
|
-
userInfo: u,
|
|
89
|
-
dict: t,
|
|
90
|
-
asyncSetAuth: async (s) => {
|
|
91
|
-
n.value = !0, s.token && (e.value = s.token), s.userInfo && (u.value = s.userInfo), s.dict && (t.value = s.dict);
|
|
92
|
-
},
|
|
93
|
-
asyncClearAuth: async () => {
|
|
94
|
-
n.value = !1, e.value = void 0, u.value = void 0, t.value = void 0;
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
persist: {
|
|
100
|
-
pick: ["hasAuthenticated", "token", "userInfo", "dict"]
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
), o = [];
|
|
104
|
-
for (let n = 0; n < 256; ++n)
|
|
105
|
-
o.push((n + 256).toString(16).slice(1));
|
|
106
|
-
function y(n, e = 0) {
|
|
107
|
-
return (o[n[e + 0]] + o[n[e + 1]] + o[n[e + 2]] + o[n[e + 3]] + "-" + o[n[e + 4]] + o[n[e + 5]] + "-" + o[n[e + 6]] + o[n[e + 7]] + "-" + o[n[e + 8]] + o[n[e + 9]] + "-" + o[n[e + 10]] + o[n[e + 11]] + o[n[e + 12]] + o[n[e + 13]] + o[n[e + 14]] + o[n[e + 15]]).toLowerCase();
|
|
108
|
-
}
|
|
109
|
-
let i;
|
|
110
|
-
const f = new Uint8Array(16);
|
|
111
|
-
function g() {
|
|
112
|
-
if (!i) {
|
|
113
|
-
if (typeof crypto > "u" || !crypto.getRandomValues)
|
|
114
|
-
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
115
|
-
i = crypto.getRandomValues.bind(crypto);
|
|
116
|
-
}
|
|
117
|
-
return i(f);
|
|
118
|
-
}
|
|
119
|
-
const v = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), m = { randomUUID: v };
|
|
120
|
-
function w(n, e, u) {
|
|
121
|
-
n = n || {};
|
|
122
|
-
const t = n.random ?? n.rng?.() ?? g();
|
|
123
|
-
if (t.length < 16)
|
|
124
|
-
throw new Error("Random bytes length must be >= 16");
|
|
125
|
-
return t[6] = t[6] & 15 | 64, t[8] = t[8] & 63 | 128, y(t);
|
|
126
|
-
}
|
|
127
|
-
function x(n, e, u) {
|
|
128
|
-
return m.randomUUID && !n ? m.randomUUID() : w(n);
|
|
129
|
-
}
|
|
130
|
-
const I = a(
|
|
131
|
-
"@jnrs/vue-core/pinia:menu",
|
|
132
|
-
() => {
|
|
133
|
-
const n = r(!1), e = r([]), u = async (c) => {
|
|
134
|
-
if (n.value)
|
|
135
|
-
return e.value;
|
|
136
|
-
t(c), e.value = c, n.value = !0;
|
|
137
|
-
try {
|
|
138
|
-
await p(e.value);
|
|
139
|
-
} catch (s) {
|
|
140
|
-
throw s;
|
|
141
|
-
}
|
|
142
|
-
return e.value;
|
|
143
|
-
}, t = (c) => {
|
|
144
|
-
for (const s of c)
|
|
145
|
-
s.meta.uuid = x(), s.children && t(s.children);
|
|
146
|
-
};
|
|
147
|
-
return { hasFetchedAsyncMenus: n, menus: e, asyncSetMenus: u, asyncClearMenu: () => {
|
|
148
|
-
n.value = !1, e.value = [];
|
|
149
|
-
} };
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
persist: {
|
|
153
|
-
pick: ["menus"]
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
);
|
|
157
|
-
console.log(
|
|
158
|
-
"%c✨ 欢迎使用 @jnrs/vue-core/pinia",
|
|
159
|
-
'background: #42B883; color: #39495C; font-weight: bold; padding: 4px 8px; border-radius: 4px; font-family: "Helvetica Neue", sans-serif;'
|
|
160
|
-
);
|
|
2
|
+
import { u as t } from "../system-DSegwP0Z.js";
|
|
3
|
+
import { u, a } from "../index-pLO4r50y.js";
|
|
161
4
|
export {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
5
|
+
u as useAuthStore,
|
|
6
|
+
a as useMenuStore,
|
|
7
|
+
t as useSystemStore
|
|
165
8
|
};
|