qlfy-ecological-login 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 +428 -83
- package/lib/index.mjs +3 -3
- package/lib/index.mjs.gz +0 -0
- package/lib/index.umd.js +5 -5
- package/lib/index.umd.js.gz +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,120 +1,465 @@
|
|
|
1
|
-
|
|
1
|
+
# qlfy-ecological-login
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
山东生态统一登录Vue3组件 - 提供完整的OAuth2统一认证解决方案
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## 简介
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
`qlfy-ecological-login` 是一个专为山东生态系统设计的Vue3统一登录组件,基于OAuth2协议实现,提供了完整的用户认证流程管理。该组件支持自动token管理、权限获取、登录状态监听等功能,可以快速集成到Vue3项目中。
|
|
8
|
+
|
|
9
|
+
## 特性
|
|
10
|
+
|
|
11
|
+
- 🔐 **OAuth2认证** - 基于标准OAuth2协议的统一登录
|
|
12
|
+
- 🚀 **Vue3支持** - 完全基于Vue3 Composition API开发
|
|
13
|
+
- 📦 **TypeScript** - 完整的TypeScript类型支持
|
|
14
|
+
- 🔄 **自动Token管理** - 自动处理token存储、刷新和过期
|
|
15
|
+
- 👥 **权限管理** - 获取和管理用户权限信息
|
|
16
|
+
- 🎯 **灵活配置** - 支持多种配置模式和自定义参数
|
|
17
|
+
- 📱 **状态监听** - 实时监听登录状态变化
|
|
18
|
+
- 🛡️ **安全可靠** - 内置安全机制和错误处理
|
|
19
|
+
|
|
20
|
+
## 安装
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install qlfy-ecological-login
|
|
9
24
|
```
|
|
10
25
|
|
|
11
|
-
|
|
26
|
+
## 快速开始
|
|
27
|
+
|
|
28
|
+
### 1. 全局注册
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
import { createApp } from 'vue'
|
|
32
|
+
import App from './App.vue'
|
|
33
|
+
import qlfyEcologicalLogin from 'qlfy-ecological-login'
|
|
34
|
+
|
|
35
|
+
const app = createApp(App)
|
|
36
|
+
app.use(qlfyEcologicalLogin)
|
|
37
|
+
app.mount('#app')
|
|
38
|
+
```
|
|
12
39
|
|
|
13
|
-
|
|
40
|
+
### 2. 组件使用
|
|
14
41
|
|
|
15
42
|
```vue
|
|
16
43
|
<template>
|
|
17
|
-
<div
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
client-
|
|
21
|
-
|
|
22
|
-
login-
|
|
23
|
-
:
|
|
24
|
-
|
|
25
|
-
@login-success="
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
<div>
|
|
45
|
+
<!-- 统一登录组件 -->
|
|
46
|
+
<qlfy-ecological-login
|
|
47
|
+
:client-id="clientId"
|
|
48
|
+
:client-secret="clientSecret"
|
|
49
|
+
:login-page-base-address="https://sdocen.weathermate.cn:15029/auth"
|
|
50
|
+
:login-service-base-address="http://58.59.29.50:15041"
|
|
51
|
+
:use-router="router"
|
|
52
|
+
@login-success="handleLoginSuccess"
|
|
53
|
+
@login-fail="handleLoginFail"
|
|
54
|
+
@logging-in="handleLoggingIn"
|
|
55
|
+
/>
|
|
56
|
+
|
|
57
|
+
<!-- 你的应用内容 -->
|
|
58
|
+
<router-view />
|
|
28
59
|
</div>
|
|
29
60
|
</template>
|
|
30
61
|
|
|
31
|
-
<script setup
|
|
32
|
-
import {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
62
|
+
<script setup>
|
|
63
|
+
import { useRouter } from 'vue-router'
|
|
64
|
+
|
|
65
|
+
const router = useRouter()
|
|
66
|
+
|
|
67
|
+
// 配置参数
|
|
68
|
+
const clientId = 'your-client-id'
|
|
69
|
+
const clientSecret = 'your-client-secret'
|
|
70
|
+
const loginPageUrl = 'https://login.example.com'
|
|
71
|
+
const loginServiceUrl = 'https://api.example.com'
|
|
72
|
+
|
|
73
|
+
// 事件处理
|
|
74
|
+
const handleLoginSuccess = (userInfo) => {
|
|
75
|
+
console.log('登录成功:', userInfo)
|
|
44
76
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
77
|
+
|
|
78
|
+
const handleLoginFail = (error) => {
|
|
79
|
+
console.log('登录失败:', error)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const handleLoggingIn = (token) => {
|
|
83
|
+
console.log('正在登录:', token)
|
|
48
84
|
}
|
|
49
85
|
</script>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## API 文档
|
|
89
|
+
|
|
90
|
+
### 组件属性 (Props)
|
|
91
|
+
|
|
92
|
+
| 属性名 | 类型 | 必填 | 默认值 | 说明 |
|
|
93
|
+
|--------|------|------|--------|------|
|
|
94
|
+
| `clientId` | `string` | ✅ | - | 应用ID,由平台提供 |
|
|
95
|
+
| `clientSecret` | `string` | ✅ | - | 应用密钥,由平台提供 |
|
|
96
|
+
| `loginPageBaseAddress` | `string` | ✅ | - | 统一登录页面的基础地址 |
|
|
97
|
+
| `loginServiceBaseAddress` | `string` | ✅ | - | 登录服务的基础地址 |
|
|
98
|
+
| `useRouter` | `Router` | ✅ | - | Vue Router实例 |
|
|
99
|
+
| `isEnabled` | `boolean` | ❌ | `true` | 是否启用组件,支持动态控制 |
|
|
100
|
+
| `forceMode` | `boolean` | ❌ | `true` | 强制登录模式 |
|
|
101
|
+
| `token` | `string` | ❌ | - | 外部传入的token |
|
|
102
|
+
| `listenToken` | `boolean` | ❌ | `false` | 是否实时监听token状态 |
|
|
103
|
+
| `redirectPath` | `string` | ❌ | `''` | 认证成功后的重定向路径 |
|
|
104
|
+
| `tokenName` | `string` | ❌ | `'access_token'` | 本地存储token的键名 |
|
|
105
|
+
| `tokenValidity` | `number` | ❌ | `7200` | token有效期(秒) |
|
|
50
106
|
|
|
51
|
-
|
|
107
|
+
### 组件事件 (Events)
|
|
52
108
|
|
|
109
|
+
| 事件名 | 参数 | 说明 |
|
|
110
|
+
|--------|------|------|
|
|
111
|
+
| `loginSuccess` | `(userInfo: any)` | 登录成功时触发 |
|
|
112
|
+
| `loginFail` | `(error: any)` | 登录失败时触发 |
|
|
113
|
+
| `loggingIn` | `(token: string)` | 正在登录时触发 |
|
|
114
|
+
|
|
115
|
+
#### 事件触发机制详解
|
|
116
|
+
|
|
117
|
+
**1. `loggingIn` 事件**
|
|
118
|
+
- **触发时机**: 组件初始化加载
|
|
119
|
+
- **触发条件**: 可从插件参数、url或缓存中获取到token
|
|
120
|
+
- **参数说明**: 当前获取到的token值
|
|
121
|
+
- **使用场景**: 显示登录加载状态,提示用户正在处理登录信息
|
|
122
|
+
|
|
123
|
+
```javascript
|
|
124
|
+
const handleLoggingIn = (token) => {
|
|
125
|
+
console.log('正在处理登录,token:', token)
|
|
126
|
+
// 显示加载动画
|
|
127
|
+
showLoading()
|
|
128
|
+
}
|
|
53
129
|
```
|
|
54
130
|
|
|
55
|
-
|
|
131
|
+
**2. `loginSuccess` 事件**
|
|
132
|
+
- **触发时机**: 插件首次完成完整登录流程后,包括token验证和用户权限获取
|
|
133
|
+
- **触发条件**:
|
|
134
|
+
|
|
135
|
+
- token验证通过(后端返回code为0)
|
|
136
|
+
- 用户权限信息获取成功
|
|
137
|
+
- **参数说明**: 包含用户权限和配置信息的完整对象
|
|
138
|
+
- **数据结构**:
|
|
139
|
+
```typescript
|
|
140
|
+
{
|
|
141
|
+
code: number,
|
|
142
|
+
data: {
|
|
143
|
+
user: any, // 用户基本信息
|
|
144
|
+
permissions: any, // 用户权限列表
|
|
145
|
+
roles: any, // 用户角色信息
|
|
146
|
+
menus: any // 菜单权限
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
- **使用场景**: 保存用户信息到全局状态,初始化应用权限,跳转到主页面
|
|
56
151
|
|
|
57
|
-
|
|
152
|
+
```javascript
|
|
153
|
+
const handleLoginSuccess = (userInfo) => {
|
|
154
|
+
// 保存用户信息到状态管理
|
|
155
|
+
store.commit('setUserInfo', userInfo.data)
|
|
156
|
+
|
|
157
|
+
// 初始化权限
|
|
158
|
+
initPermissions(userInfo.data.permissions)
|
|
159
|
+
|
|
160
|
+
// 跳转到主页面
|
|
161
|
+
router.push('/dashboard')
|
|
162
|
+
|
|
163
|
+
// 隐藏加载动画
|
|
164
|
+
hideLoading()
|
|
165
|
+
}
|
|
166
|
+
```
|
|
58
167
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
168
|
+
**3. `loginFail` 事件**
|
|
169
|
+
- **触发时机**: 登录流程中任何步骤失败时
|
|
170
|
+
- **触发条件**:
|
|
171
|
+
- 传入的token参数验证失败(后端返回非0状态码)
|
|
172
|
+
- 用户权限获取失败
|
|
173
|
+
- 网络请求异常
|
|
174
|
+
- 在非强制模式下无有效token时(强制模式下token无效跳转统一认证页面)
|
|
175
|
+
- 在非强制模式下token有效,但用户配置获取失败(强制模式下配置获取失败跳转统一认证页面)
|
|
176
|
+
- **解额决参数说明**: 包含错误信息的对象
|
|
177
|
+
- **错误类型**:
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
{
|
|
181
|
+
msg: string, // 错误描述信息
|
|
182
|
+
data: any, // 详细错误数据(可能为null)
|
|
183
|
+
code?: number // 错误代码(如果有)
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
- **使用场景**: 显示错误提示,记录错误日志,处理登录失败逻辑
|
|
187
|
+
|
|
188
|
+
```javascript
|
|
189
|
+
const handleLoginFail = (error) => {
|
|
190
|
+
console.error('登录失败:', error)
|
|
191
|
+
|
|
192
|
+
// 显示错误提示
|
|
193
|
+
ElMessage.error(error.msg || '登录失败,请重试')
|
|
194
|
+
|
|
195
|
+
// 记录错误日志
|
|
196
|
+
logError('Login failed', error)
|
|
197
|
+
|
|
198
|
+
// 隐藏加载动画
|
|
199
|
+
hideLoading()
|
|
200
|
+
|
|
201
|
+
// 根据错误类型处理
|
|
202
|
+
if (error.msg.includes('Token验证失败')) {
|
|
203
|
+
// 清除本地token,重新登录
|
|
204
|
+
clearLocalToken()
|
|
205
|
+
}
|
|
206
|
+
}
|
|
64
207
|
```
|
|
65
208
|
|
|
209
|
+
#### 事件流程图
|
|
66
210
|
|
|
211
|
+
```
|
|
212
|
+
页面加载/路由变化
|
|
213
|
+
↓
|
|
214
|
+
检查登录状态
|
|
215
|
+
↓
|
|
216
|
+
发现参数、URL或缓存中有token
|
|
217
|
+
↓
|
|
218
|
+
触发 loggingIn 事件 ← 显示加载状态
|
|
219
|
+
↓
|
|
220
|
+
验证token
|
|
221
|
+
↓
|
|
222
|
+
┌─────────────┐
|
|
223
|
+
│ 验证结果 │
|
|
224
|
+
└─────────────┘
|
|
225
|
+
↓ ↓
|
|
226
|
+
成功 失败
|
|
227
|
+
↓ ↓
|
|
228
|
+
获取用户权限 触发 loginFail 事件
|
|
229
|
+
↓
|
|
230
|
+
触发 loginSuccess 事件
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
#### 最佳实践
|
|
234
|
+
|
|
235
|
+
1. **统一错误处理**: 在`loginFail`事件中统一处理各种登录错误
|
|
236
|
+
2. **加载状态管理**: 配合`loggingIn`和`loginSuccess`/`loginFail`事件管理加载状态
|
|
237
|
+
3. **权限初始化**: 在`loginSuccess`事件中完成权限系统的初始化
|
|
238
|
+
4. **错误日志**: 记录详细的错误信息便于问题排查
|
|
239
|
+
5. **用户体验**: 提供清晰的状态反馈和错误提示
|
|
240
|
+
|
|
241
|
+
### 组件方法 (Methods)
|
|
242
|
+
|
|
243
|
+
通过组件ref可以调用以下方法:
|
|
244
|
+
|
|
245
|
+
```javascript
|
|
246
|
+
// 获取组件实例
|
|
247
|
+
const loginRef = ref()
|
|
248
|
+
|
|
249
|
+
// 退出登录
|
|
250
|
+
loginRef.value.logout()
|
|
251
|
+
|
|
252
|
+
// 获取当前token
|
|
253
|
+
const token = loginRef.value.getToken()
|
|
254
|
+
|
|
255
|
+
// 获取用户权限信息
|
|
256
|
+
const permissions = loginRef.value.getUserPermission()
|
|
257
|
+
```
|
|
67
258
|
|
|
68
|
-
|
|
259
|
+
## 工具函数
|
|
69
260
|
|
|
70
|
-
|
|
71
|
-
| ----------------------- | ------------------------------------------------------------ | ------------------ | -------------- |
|
|
72
|
-
| clientId | 应用id,统一认证平台提供,必填 | string | —— |
|
|
73
|
-
| clientSecret | 应用秘钥,统一认证平台提供,必填 | string | —— |
|
|
74
|
-
| loginPageBaseAddress | 登陆页面基础地址,必填 | string | —— |
|
|
75
|
-
| loginServiceBaseAddress | 登录服务基础地址,必填 | string | —— |
|
|
76
|
-
| useRouter | 路由对象,传入vue-Router的useRouter()值 | Router | —— |
|
|
77
|
-
| loginMode | 登陆模式<br />如果设置为part模式,未登陆状态不跳 | 'part' \| 'global' | 'global' |
|
|
78
|
-
| forceMode | 强制登陆模式 | boolean | true |
|
|
79
|
-
| token | 自定义token<br />传入该值后,如果token有效,不跳登陆直接使用该token<br />兼容CA的token<br /> | stirng | ‘’ |
|
|
80
|
-
| isEnabled | 是否启用组件,支持动态控制 | boolean | true |
|
|
81
|
-
| listenToken | 实时监听token状态<br />1s检测一次token是否存在,丢失触发重新获取 | boolean | false |
|
|
82
|
-
| redirectPath | 统一登陆成功后,跳转的地址;<br />如不设置,默认跳转至触发登陆的页面 | string | ‘’ |
|
|
83
|
-
| tokenName | local中保存token值的键名称 | string | 'access_token' |
|
|
84
|
-
| tokenValidity | token过期时间,单位秒<br />如该时间内无页面跳转操作则重新触发登陆 | number | 1800 |
|
|
85
|
-
| tenantId | 租户id<br />非特殊要求不需传该参数 | number | ‘’ |
|
|
261
|
+
组件还提供了一系列工具函数,可以在应用的任何地方使用:
|
|
86
262
|
|
|
87
|
-
|
|
263
|
+
### 工具函数API表格
|
|
88
264
|
|
|
89
|
-
|
|
|
90
|
-
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
265
|
+
| 函数名 | 参数 | 返回值 | 说明 |
|
|
266
|
+
|--------|------|--------|------|
|
|
267
|
+
| `logout` | `isGoLog?: boolean`, `success?: (res) => void`, `error?: (err) => void` | `void` | 退出登录,可选择是否跳转登录页 |
|
|
268
|
+
| `getToken` | 无 | `string \| null` | 获取当前存储的访问token |
|
|
269
|
+
| `getRefreshToken` | 无 | `string \| undefined` | 获取刷新token |
|
|
270
|
+
| `getUserPermission` | 无 | `any` | 获取当前用户的权限信息 |
|
|
271
|
+
| `goLogin` | 无 | `void` | 跳转到统一登录页面 |
|
|
272
|
+
| `getLoginUrl` | `loginPageBaseAddress: string`, `clientId: string`, `clientSecret: string`, `redirectUrl?: string` | `string` | 生成登录页面URL |
|
|
273
|
+
| `changePassword` | `newPassword: string`, `oldPassword: string` | `Promise<any>` | 修改用户密码 |
|
|
94
274
|
|
|
95
|
-
|
|
275
|
+
### 详细说明
|
|
96
276
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
277
|
+
#### `logout(isGoLog?, success?, error?)`
|
|
278
|
+
**功能**: 退出当前登录状态
|
|
279
|
+
- `isGoLog`: 是否在退出后跳转到登录页,默认为true
|
|
280
|
+
- `success`: 退出成功的回调函数
|
|
281
|
+
- `error`: 退出失败的回调函数
|
|
102
282
|
|
|
103
|
-
####
|
|
283
|
+
#### `getToken()`
|
|
284
|
+
**功能**: 获取当前用户的访问token
|
|
285
|
+
- 返回存储在本地的token,如果不存在或已过期则返回null
|
|
104
286
|
|
|
105
|
-
|
|
287
|
+
#### `getRefreshToken()`
|
|
288
|
+
**功能**: 获取用于刷新访问token的刷新token
|
|
289
|
+
- 返回刷新token,用于token续期
|
|
106
290
|
|
|
107
|
-
|
|
291
|
+
#### `getUserPermission()`
|
|
292
|
+
**功能**: 获取当前用户的权限信息
|
|
293
|
+
- 返回包含用户权限、角色、菜单等信息的对象
|
|
108
294
|
|
|
295
|
+
#### `goLogin()`
|
|
296
|
+
**功能**: 跳转到统一登录页面
|
|
297
|
+
- 自动构建登录URL并在当前窗口打开
|
|
298
|
+
|
|
299
|
+
#### `getLoginUrl(loginPageBaseAddress, clientId, clientSecret, redirectUrl?)`
|
|
300
|
+
**功能**: 生成登录页面的完整URL
|
|
301
|
+
- `loginPageBaseAddress`: 登录页面的基础地址
|
|
302
|
+
- `clientId`: 应用ID
|
|
303
|
+
- `clientSecret`: 应用密钥
|
|
304
|
+
- `redirectUrl`: 登录成功后的重定向地址,默认为当前页面
|
|
305
|
+
|
|
306
|
+
#### `changePassword(newPassword, oldPassword)`
|
|
307
|
+
**功能**: 修改用户密码
|
|
308
|
+
- `newPassword`: 新密码
|
|
309
|
+
- `oldPassword`: 原密码
|
|
310
|
+
- 返回Promise,成功时resolve,失败时reject
|
|
311
|
+
|
|
312
|
+
```javascript
|
|
313
|
+
import {
|
|
314
|
+
logout,
|
|
315
|
+
getToken,
|
|
316
|
+
getRefreshToken,
|
|
317
|
+
getUserPermission,
|
|
318
|
+
goLogin,
|
|
319
|
+
getLoginUrl,
|
|
320
|
+
changePassword
|
|
321
|
+
} from 'qlfy-ecological-login'
|
|
322
|
+
|
|
323
|
+
// 退出登录
|
|
324
|
+
logout(true,
|
|
325
|
+
(res) => console.log('退出成功', res),
|
|
326
|
+
(err) => console.log('退出失败', err)
|
|
327
|
+
)
|
|
328
|
+
|
|
329
|
+
// 获取token
|
|
330
|
+
const token = getToken()
|
|
331
|
+
|
|
332
|
+
// 获取刷新token
|
|
333
|
+
const refreshToken = getRefreshToken()
|
|
334
|
+
|
|
335
|
+
// 获取用户权限
|
|
336
|
+
const permissions = getUserPermission()
|
|
337
|
+
|
|
338
|
+
// 跳转到登录页【建议直接使用logout方法】
|
|
339
|
+
goLogin()
|
|
340
|
+
|
|
341
|
+
// 获取登录URL
|
|
342
|
+
const loginUrl = getLoginUrl(baseUrl, clientId, clientSecret, redirectUrl)
|
|
343
|
+
|
|
344
|
+
// 修改密码
|
|
345
|
+
changePassword('newPassword', 'oldPassword')
|
|
346
|
+
.then(res => console.log('密码修改成功'))
|
|
347
|
+
.catch(err => console.log('密码修改失败'))
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## 登录流程
|
|
351
|
+
|
|
352
|
+
组件实现了完整的OAuth2登录流程:
|
|
353
|
+
|
|
354
|
+
1. **初始化检查** - 检查组件是否启用
|
|
355
|
+
2. **Token优先级** - 按优先级检查token来源:
|
|
356
|
+
- 外部传入的token(最高优先级)
|
|
357
|
+
- URL参数中的token(从登录页返回)
|
|
358
|
+
- 本地缓存的token
|
|
359
|
+
3. **Token验证** - 调用后端接口验证token有效性
|
|
360
|
+
4. **用户信息获取** - 获取用户权限和配置信息
|
|
361
|
+
5. **状态管理** - 管理登录状态和token生命周期
|
|
362
|
+
6. **错误处理** - 处理各种异常情况
|
|
363
|
+
|
|
364
|
+
## 本地存储管理
|
|
365
|
+
|
|
366
|
+
组件内置了智能的本地存储管理器,支持:
|
|
367
|
+
|
|
368
|
+
- **自动过期** - 支持设置存储项的有效期
|
|
369
|
+
- **类型安全** - 自动序列化和反序列化
|
|
370
|
+
- **错误恢复** - 处理存储异常情况
|
|
371
|
+
- **清理机制** - 自动清理过期数据
|
|
372
|
+
|
|
373
|
+
## 配置示例
|
|
374
|
+
|
|
375
|
+
### 基础配置
|
|
376
|
+
|
|
377
|
+
```vue
|
|
378
|
+
<qlfy-ecological-login
|
|
379
|
+
client-id="your-app-id"
|
|
380
|
+
client-secret="your-app-secret"
|
|
381
|
+
:login-page-base-address="https://sdocen.weathermate.cn:15029/auth"
|
|
382
|
+
:login-service-base-address="http://58.59.29.50:15041"
|
|
383
|
+
:use-router="router"
|
|
384
|
+
/>
|
|
109
385
|
```
|
|
110
|
-
|
|
386
|
+
|
|
387
|
+
### 高级配置
|
|
388
|
+
|
|
389
|
+
```vue
|
|
390
|
+
<qlfy-ecological-login
|
|
391
|
+
client-id="your-app-id"
|
|
392
|
+
client-secret="your-app-secret"
|
|
393
|
+
:login-page-base-address="https://sdocen.weathermate.cn:15029/auth"
|
|
394
|
+
:login-service-base-address="http://58.59.29.50:15041"
|
|
395
|
+
:use-router="router"
|
|
396
|
+
:is-enabled="true"
|
|
397
|
+
:force-mode="true"
|
|
398
|
+
:listen-token="true"
|
|
399
|
+
redirect-path="系统地址"
|
|
400
|
+
token-name="custom_token"
|
|
401
|
+
:token-validity="3600"
|
|
402
|
+
@login-success="handleLoginSuccess"
|
|
403
|
+
@login-fail="handleLoginFail"
|
|
404
|
+
/>
|
|
111
405
|
```
|
|
112
406
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
407
|
+
## 类型定义
|
|
408
|
+
|
|
409
|
+
```typescript
|
|
410
|
+
// 组件属性类型
|
|
411
|
+
interface Prop {
|
|
412
|
+
clientId: string
|
|
413
|
+
clientSecret: string
|
|
414
|
+
loginPageBaseAddress: string
|
|
415
|
+
loginServiceBaseAddress: string
|
|
416
|
+
useRouter: any
|
|
417
|
+
forceMode?: boolean
|
|
418
|
+
token?: string
|
|
419
|
+
isEnabled?: boolean
|
|
420
|
+
listenToken?: boolean
|
|
421
|
+
redirectPath?: string
|
|
422
|
+
tokenName?: string
|
|
423
|
+
tokenValidity?: number
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
// 事件类型
|
|
427
|
+
interface Emits {
|
|
428
|
+
(e: 'loggingIn', token: string): void
|
|
429
|
+
(e: 'loginFail', failInfo: any): void
|
|
430
|
+
(e: 'loginSuccess', loginInfo: any): void
|
|
431
|
+
}
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
## 注意事项
|
|
435
|
+
|
|
436
|
+
1. **路由依赖** - 组件依赖Vue Router,请确保正确传入router实例
|
|
437
|
+
2. **Element Plus** - 组件使用了Element Plus的消息提示,会自动引入样式
|
|
438
|
+
3. **网络请求** - 组件使用axios进行网络请求,请确保网络环境正常
|
|
439
|
+
4. **安全性** - 请妥善保管clientId和clientSecret,不要在前端代码中硬编码
|
|
440
|
+
5. **跨域问题** - 请确保登录服务支持跨域请求或配置代理
|
|
441
|
+
|
|
442
|
+
## 兼容性
|
|
443
|
+
|
|
444
|
+
- Vue 3.x
|
|
445
|
+
- TypeScript 4.x+
|
|
446
|
+
- 现代浏览器(支持ES6+)
|
|
447
|
+
|
|
448
|
+
## 更新日志
|
|
449
|
+
|
|
450
|
+
### v1.1.2
|
|
451
|
+
- 优化登录流程
|
|
452
|
+
- 修复token验证问题
|
|
453
|
+
- 改进错误处理机制
|
|
454
|
+
|
|
455
|
+
## 许可证
|
|
456
|
+
|
|
457
|
+
MIT License
|
|
458
|
+
|
|
459
|
+
## 支持
|
|
460
|
+
|
|
461
|
+
如果您在使用过程中遇到问题,请提交Issue或联系开发团队。
|
|
462
|
+
|
|
463
|
+
生态工程项目群统一认证登陆功能的插件,内置统一登陆跳转、统一登录token获取、token效验、用户数据配置获取、密码修改登功能;
|
|
464
|
+
|
|
465
|
+
####
|
package/lib/index.mjs
CHANGED
|
@@ -3080,7 +3080,7 @@ function Pa(e = !0, t, n) {
|
|
|
3080
3080
|
}
|
|
3081
3081
|
function ot() {
|
|
3082
3082
|
const e = G().props;
|
|
3083
|
-
return
|
|
3083
|
+
return !e || !e.isEnabled ? null : le.get(e.tokenName);
|
|
3084
3084
|
}
|
|
3085
3085
|
function tl() {
|
|
3086
3086
|
return G().refreshToken;
|
|
@@ -3182,7 +3182,7 @@ const $a = { style: { display: "none" } }, er = /* @__PURE__ */ B({
|
|
|
3182
3182
|
}
|
|
3183
3183
|
const _ = O();
|
|
3184
3184
|
if (_) {
|
|
3185
|
-
x(_);
|
|
3185
|
+
i("loggingIn", _), x(_);
|
|
3186
3186
|
return;
|
|
3187
3187
|
}
|
|
3188
3188
|
T();
|
|
@@ -3191,7 +3191,7 @@ const $a = { style: { display: "none" } }, er = /* @__PURE__ */ B({
|
|
|
3191
3191
|
return !!r.token;
|
|
3192
3192
|
}
|
|
3193
3193
|
function d() {
|
|
3194
|
-
r.token && (a.set(r.tokenName, r.token, r.tokenValidity), x(r.token));
|
|
3194
|
+
r.token && (a.set(r.tokenName, r.token, r.tokenValidity), i("loggingIn", r.token), x(r.token));
|
|
3195
3195
|
}
|
|
3196
3196
|
function p() {
|
|
3197
3197
|
return !!s.value.query.token;
|
package/lib/index.mjs.gz
CHANGED
|
Binary file
|
package/lib/index.umd.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* @vue/shared v3.5.17
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
|
-
**/process.env.NODE_ENV!=="production"&&Object.freeze({}),process.env.NODE_ENV!=="production"&&Object.freeze([]);const vn=Object.prototype.hasOwnProperty,st=(e,t)=>vn.call(e,t),me=e=>typeof e=="function",oe=e=>typeof e=="string",it=e=>e!==null&&typeof e=="object";var Fn=typeof global=="object"&&global&&global.Object===Object&&global,jn=typeof self=="object"&&self&&self.Object===Object&&self,Be=Fn||jn||Function("return this")(),X=Be.Symbol,at=Object.prototype,Dn=at.hasOwnProperty,Un=at.toString,se=X?X.toStringTag:void 0;function zn(e){var t=Dn.call(e,se),n=e[se];try{e[se]=void 0;var r=!0}catch{}var o=Un.call(e);return r&&(t?e[se]=n:delete e[se]),o}var Mn=Object.prototype,qn=Mn.toString;function Vn(e){return qn.call(e)}var Hn="[object Null]",Jn="[object Undefined]",lt=X?X.toStringTag:void 0;function ct(e){return e==null?e===void 0?Jn:Hn:lt&< in Object(e)?zn(e):Vn(e)}function Kn(e){return e!=null&&typeof e=="object"}var Wn="[object Symbol]";function Le(e){return typeof e=="symbol"||Kn(e)&&ct(e)==Wn}function Gn(e,t){for(var n=-1,r=e==null?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}var $e=Array.isArray,ut=X?X.prototype:void 0,ft=ut?ut.toString:void 0;function dt(e){if(typeof e=="string")return e;if($e(e))return Gn(e,dt)+"";if(Le(e))return ft?ft.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function pt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zn="[object AsyncFunction]",Xn="[object Function]",Qn="[object GeneratorFunction]",Yn="[object Proxy]";function er(e){if(!pt(e))return!1;var t=ct(e);return t==Xn||t==Qn||t==Zn||t==Yn}var ve=Be["__core-js_shared__"],mt=function(){var e=/[^.]+$/.exec(ve&&ve.keys&&ve.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tr(e){return!!mt&&mt in e}var nr=Function.prototype,rr=nr.toString;function or(e){if(e!=null){try{return rr.call(e)}catch{}try{return e+""}catch{}}return""}var sr=/[\\^$.*+?()[\]{}|]/g,ir=/^\[object .+?Constructor\]$/,ar=Function.prototype,lr=Object.prototype,cr=ar.toString,ur=lr.hasOwnProperty,fr=RegExp("^"+cr.call(ur).replace(sr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dr(e){if(!pt(e)||tr(e))return!1;var t=er(e)?fr:ir;return t.test(or(e))}function pr(e,t){return e==null?void 0:e[t]}function ht(e,t){var n=pr(e,t);return dr(n)?n:void 0}function mr(e,t){return e===t||e!==e&&t!==t}var hr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,gr=/^\w*$/;function yr(e,t){if($e(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||Le(e)?!0:gr.test(e)||!hr.test(e)||t!=null&&e in Object(t)}var ie=ht(Object,"create");function br(){this.__data__=ie?ie(null):{},this.size=0}function wr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var _r="__lodash_hash_undefined__",Er=Object.prototype,Sr=Er.hasOwnProperty;function Tr(e){var t=this.__data__;if(ie){var n=t[e];return n===_r?void 0:n}return Sr.call(t,e)?t[e]:void 0}var Cr=Object.prototype,Or=Cr.hasOwnProperty;function xr(e){var t=this.__data__;return ie?t[e]!==void 0:Or.call(t,e)}var Rr="__lodash_hash_undefined__";function Nr(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ie&&t===void 0?Rr:t,this}function H(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}H.prototype.clear=br,H.prototype.delete=wr,H.prototype.get=Tr,H.prototype.has=xr,H.prototype.set=Nr;function Pr(){this.__data__=[],this.size=0}function he(e,t){for(var n=e.length;n--;)if(mr(e[n][0],t))return n;return-1}var kr=Array.prototype,Ar=kr.splice;function Ir(e){var t=this.__data__,n=he(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Ar.call(t,n,1),--this.size,!0}function Br(e){var t=this.__data__,n=he(t,e);return n<0?void 0:t[n][1]}function Lr(e){return he(this.__data__,e)>-1}function $r(e,t){var n=this.__data__,r=he(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Q(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Q.prototype.clear=Pr,Q.prototype.delete=Ir,Q.prototype.get=Br,Q.prototype.has=Lr,Q.prototype.set=$r;var vr=ht(Be,"Map");function Fr(){this.size=0,this.__data__={hash:new H,map:new(vr||Q),string:new H}}function jr(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function ge(e,t){var n=e.__data__;return jr(t)?n[typeof t=="string"?"string":"hash"]:n.map}function Dr(e){var t=ge(this,e).delete(e);return this.size-=t?1:0,t}function Ur(e){return ge(this,e).get(e)}function zr(e){return ge(this,e).has(e)}function Mr(e,t){var n=ge(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function J(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}J.prototype.clear=Fr,J.prototype.delete=Dr,J.prototype.get=Ur,J.prototype.has=zr,J.prototype.set=Mr;var qr="Expected a function";function Fe(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(qr);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],s=n.cache;if(s.has(o))return s.get(o);var i=e.apply(this,r);return n.cache=s.set(o,i)||s,i};return n.cache=new(Fe.Cache||J),n}Fe.Cache=J;var Vr=500;function Hr(e){var t=Fe(e,function(r){return n.size===Vr&&n.clear(),r}),n=t.cache;return t}var Jr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Kr=/\\(\\)?/g,Wr=Hr(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Jr,function(n,r,o,s){t.push(o?s.replace(Kr,"$1"):r||n)}),t});function Gr(e){return e==null?"":dt(e)}function Zr(e,t){return $e(e)?e:yr(e,t)?[e]:Wr(Gr(e))}function Xr(e){if(typeof e=="string"||Le(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function Qr(e,t){t=Zr(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[Xr(t[n++])];return n&&n==r?e:void 0}function Yr(e,t,n){var r=e==null?void 0:Qr(e,t);return r===void 0?n:r}function eo(e){for(var t=-1,n=e==null?0:e.length,r={};++t<n;){var o=e[t];r[o[0]]=o[1]}return r}const to=e=>e===void 0,je=e=>typeof e=="boolean",K=e=>typeof e=="number",no=e=>typeof Element>"u"?!1:e instanceof Element,ro=e=>oe(e)?!Number.isNaN(Number(e)):!1;var gt;const Y=typeof window<"u",oo=e=>typeof e=="string",so=()=>{};Y&&((gt=window==null?void 0:window.navigator)!=null&>.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function De(e){return typeof e=="function"?e():a.unref(e)}function io(e){return e}function Ue(e){return a.getCurrentScope()?(a.onScopeDispose(e),!0):!1}function ao(e,t=!0){a.getCurrentInstance()?a.onMounted(e):t?e():a.nextTick(e)}function lo(e,t,n={}){const{immediate:r=!0}=n,o=a.ref(!1);let s=null;function i(){s&&(clearTimeout(s),s=null)}function l(){o.value=!1,i()}function d(...f){i(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...f)},De(t))}return r&&(o.value=!0,Y&&d()),Ue(l),{isPending:a.readonly(o),start:d,stop:l}}function yt(e){var t;const n=De(e);return(t=n==null?void 0:n.$el)!=null?t:n}const bt=Y?window:void 0;function co(...e){let t,n,r,o;if(oo(e[0])||Array.isArray(e[0])?([n,r,o]=e,t=bt):[t,n,r,o]=e,!t)return so;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],i=()=>{s.forEach(u=>u()),s.length=0},l=(u,h,b,E)=>(u.addEventListener(h,b,E),()=>u.removeEventListener(h,b,E)),d=a.watch(()=>[yt(t),De(o)],([u,h])=>{i(),u&&s.push(...n.flatMap(b=>r.map(E=>l(u,b,E,h))))},{immediate:!0,flush:"post"}),f=()=>{d(),i()};return Ue(f),f}function uo(e,t=!1){const n=a.ref(),r=()=>n.value=!!e();return r(),ao(r,t),n}const wt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},_t="__vueuse_ssr_handlers__";wt[_t]=wt[_t]||{};var Et=Object.getOwnPropertySymbols,fo=Object.prototype.hasOwnProperty,po=Object.prototype.propertyIsEnumerable,mo=(e,t)=>{var n={};for(var r in e)fo.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Et)for(var r of Et(e))t.indexOf(r)<0&&po.call(e,r)&&(n[r]=e[r]);return n};function ho(e,t,n={}){const r=n,{window:o=bt}=r,s=mo(r,["window"]);let i;const l=uo(()=>o&&"ResizeObserver"in o),d=()=>{i&&(i.disconnect(),i=void 0)},f=a.watch(()=>yt(e),h=>{d(),l.value&&o&&h&&(i=new ResizeObserver(t),i.observe(h,s))},{immediate:!0,flush:"post"}),u=()=>{d(),f()};return Ue(u),{isSupported:l,stop:u}}var St;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(St||(St={}));var go=Object.defineProperty,Tt=Object.getOwnPropertySymbols,yo=Object.prototype.hasOwnProperty,bo=Object.prototype.propertyIsEnumerable,Ct=(e,t,n)=>t in e?go(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wo=(e,t)=>{for(var n in t||(t={}))yo.call(t,n)&&Ct(e,n,t[n]);if(Tt)for(var n of Tt(t))bo.call(t,n)&&Ct(e,n,t[n]);return e};wo({linear:io},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});class _o extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function ye(e,t){if(process.env.NODE_ENV!=="production"){const n=oe(e)?new _o(`[${e}] ${t}`):e;console.warn(n)}}const Ot={current:0},xt=a.ref(0),Rt=2e3,Nt=Symbol("elZIndexContextKey"),Pt=Symbol("zIndexContextKey"),Eo=e=>{const t=a.getCurrentInstance()?a.inject(Nt,Ot):Ot,n=e||(a.getCurrentInstance()?a.inject(Pt,void 0):void 0),r=a.computed(()=>{const i=a.unref(n);return K(i)?i:Rt}),o=a.computed(()=>r.value+xt.value),s=()=>(t.current++,xt.value=t.current,o.value);return!Y&&!a.inject(Nt)&&ye("ZIndexInjection",`Looks like you are using server rendering, you must provide a z-index provider to ensure the hydration process to be succeed
|
|
6
|
-
usage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`),{initialZIndex:r,currentZIndex:o,nextZIndex:s}};var So={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const To=e=>(t,n)=>Co(t,n,a.unref(e)),Co=(e,t,n)=>Yr(n,e,e).replace(/\{(\w+)\}/g,(r,o)=>{var s;return`${(s=t==null?void 0:t[o])!=null?s:`{${o}}`}`}),Oo=e=>{const t=a.computed(()=>a.unref(e).name),n=a.isRef(e)?e:a.ref(e);return{lang:t,locale:n,t:To(e)}},kt=Symbol("localeContextKey"),xo=e=>{const t=e||a.inject(kt,a.ref());return Oo(a.computed(()=>t.value||So))},At="__epPropKey",v=e=>e,Ro=e=>it(e)&&!!e[At],It=(e,t)=>{if(!it(e)||Ro(e))return e;const{values:n,required:r,default:o,type:s,validator:i}=e,d={type:s,required:!!r,validator:n||i?f=>{let u=!1,h=[];if(n&&(h=Array.from(n),st(e,"default")&&h.push(o),u||(u=h.includes(f))),i&&(u||(u=i(f))),!u&&h.length>0){const b=[...new Set(h)].map(E=>JSON.stringify(E)).join(", ");a.warn(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${b}], got value ${JSON.stringify(f)}.`)}return u}:void 0,[At]:!0};return st(e,"default")&&(d.default=o),d},ae=e=>eo(Object.entries(e).map(([t,n])=>[t,It(n,t)])),No=It({type:String,values:["","default","small","large"],required:!1}),Po=Symbol("size"),ko=Symbol("emptyValuesContextKey"),Ao=ae({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>me(e)?!e():!e}}),Bt=e=>Object.keys(e),be=a.ref();function Lt(e,t=void 0){return a.getCurrentInstance()?a.inject(rt,be):be}function Io(e,t){const n=Lt(),r=Ie(e,a.computed(()=>{var l;return((l=n.value)==null?void 0:l.namespace)||pe})),o=xo(a.computed(()=>{var l;return(l=n.value)==null?void 0:l.locale})),s=Eo(a.computed(()=>{var l;return((l=n.value)==null?void 0:l.zIndex)||Rt})),i=a.computed(()=>{var l;return a.unref(t)||((l=n.value)==null?void 0:l.size)||""});return $t(a.computed(()=>a.unref(n)||{})),{ns:r,locale:o,zIndex:s,size:i}}const $t=(e,t,n=!1)=>{var r;const o=!!a.getCurrentInstance(),s=o?Lt():void 0,i=(r=void 0)!=null?r:o?a.provide:void 0;if(!i){ye("provideGlobalConfig","provideGlobalConfig() can only be used inside setup().");return}const l=a.computed(()=>{const d=a.unref(e);return s!=null&&s.value?Bo(s.value,d):d});return i(rt,l),i(kt,a.computed(()=>l.value.locale)),i(ot,a.computed(()=>l.value.namespace)),i(Pt,a.computed(()=>l.value.zIndex)),i(Po,{size:a.computed(()=>l.value.size||"")}),i(ko,a.computed(()=>({emptyValues:l.value.emptyValues,valueOnClear:l.value.valueOnClear}))),(n||!be.value)&&(be.value=l.value),l},Bo=(e,t)=>{const n=[...new Set([...Bt(e),...Bt(t)])],r={};for(const o of n)r[o]=t[o]!==void 0?t[o]:e[o];return r};var ze=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};const Lo="utils/dom/style";function Me(e,t="px"){if(!e)return"";if(K(e)||ro(e))return`${e}${t}`;if(oe(e))return e;ye(Lo,"binding value must be a string or number")}const vt=(e,t)=>(e.install=n=>{for(const r of[e,...Object.values({})])n.component(r.name,r)},e),$o=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),vo=ae({size:{type:v([Number,String])},color:{type:String}}),Fo=a.defineComponent({name:"ElIcon",inheritAttrs:!1}),jo=a.defineComponent({...Fo,props:vo,setup(e){const t=e,n=Ie("icon"),r=a.computed(()=>{const{size:o,color:s}=t;return!o&&!s?{}:{fontSize:to(o)?void 0:Me(o),"--color":s}});return(o,s)=>(a.openBlock(),a.createElementBlock("i",a.mergeProps({class:a.unref(n).b(),style:a.unref(r)},o.$attrs),[a.renderSlot(o.$slots,"default")],16))}});var Do=ze(jo,[["__file","icon.vue"]]);const Ft=vt(Do);/*! Element Plus Icons Vue v2.3.1 */var Uo=a.defineComponent({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),zo=Uo,Mo=a.defineComponent({name:"Close",__name:"close",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),qo=Mo,Vo=a.defineComponent({name:"InfoFilled",__name:"info-filled",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),jt=Vo,Ho=a.defineComponent({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),Jo=Ho,Ko=a.defineComponent({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),Wo=Ko;const Go=v([String,Object,Function]),Zo={Close:qo},Dt={primary:jt,success:Jo,warning:Wo,error:zo,info:jt},Xo=e=>e,Qo={esc:"Escape"},Yo=ae({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:v([String,Object,Array])},offset:{type:v(Array),default:[0,0]},badgeClass:{type:String}}),es=a.defineComponent({name:"ElBadge"}),ts=a.defineComponent({...es,props:Yo,setup(e,{expose:t}){const n=e,r=Ie("badge"),o=a.computed(()=>n.isDot?"":K(n.value)&&K(n.max)?n.max<n.value?`${n.max}+`:`${n.value}`:`${n.value}`),s=a.computed(()=>{var i,l,d,f,u;return[{backgroundColor:n.color,marginRight:Me(-((l=(i=n.offset)==null?void 0:i[0])!=null?l:0)),marginTop:Me((f=(d=n.offset)==null?void 0:d[1])!=null?f:0)},(u=n.badgeStyle)!=null?u:{}]});return t({content:o}),(i,l)=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(a.unref(r).b())},[a.renderSlot(i.$slots,"default"),a.createVNode(a.Transition,{name:`${a.unref(r).namespace.value}-zoom-in-center`,persisted:""},{default:a.withCtx(()=>[a.withDirectives(a.createElementVNode("sup",{class:a.normalizeClass([a.unref(r).e("content"),a.unref(r).em("content",i.type),a.unref(r).is("fixed",!!i.$slots.default),a.unref(r).is("dot",i.isDot),a.unref(r).is("hide-zero",!i.showZero&&n.value===0),i.badgeClass]),style:a.normalizeStyle(a.unref(s))},[a.renderSlot(i.$slots,"content",{value:a.unref(o)},()=>[a.createTextVNode(a.toDisplayString(a.unref(o)),1)])],6),[[a.vShow,!i.hidden&&(a.unref(o)||i.isDot||i.$slots.content)]])]),_:3},8,["name"])],2))}});var ns=ze(ts,[["__file","badge.vue"]]);const rs=vt(ns),os=ae({a11y:{type:Boolean,default:!0},locale:{type:v(Object)},size:No,button:{type:v(Object)},link:{type:v(Object)},experimentalFeatures:{type:v(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:v(Object)},zIndex:Number,namespace:{type:String,default:"el"},...Ao}),I={};a.defineComponent({name:"ElConfigProvider",props:os,setup(e,{slots:t}){const n=$t(e);return a.watch(()=>e.message,r=>{var o,s;Object.assign(I,(s=(o=n==null?void 0:n.value)==null?void 0:o.message)!=null?s:{},r??{})},{immediate:!0,deep:!0}),()=>a.renderSlot(t,"default",{config:n==null?void 0:n.value})}});const Ut=["primary","success","info","warning","error"],P=Xo({customClass:"",dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Y?document.body:void 0}),ss=ae({customClass:{type:String,default:P.customClass},dangerouslyUseHTMLString:{type:Boolean,default:P.dangerouslyUseHTMLString},duration:{type:Number,default:P.duration},icon:{type:Go,default:P.icon},id:{type:String,default:P.id},message:{type:v([String,Object,Function]),default:P.message},onClose:{type:v(Function),default:P.onClose},showClose:{type:Boolean,default:P.showClose},type:{type:String,values:Ut,default:P.type},plain:{type:Boolean,default:P.plain},offset:{type:Number,default:P.offset},zIndex:{type:Number,default:P.zIndex},grouping:{type:Boolean,default:P.grouping},repeatNum:{type:Number,default:P.repeatNum}}),is={destroy:()=>!0},F=a.shallowReactive([]),as=e=>{const t=F.findIndex(o=>o.id===e),n=F[t];let r;return t>0&&(r=F[t-1]),{current:n,prev:r}},ls=e=>{const{prev:t}=as(e);return t?t.vm.exposed.bottom.value:0},cs=(e,t)=>F.findIndex(r=>r.id===e)>0?16:t,us=a.defineComponent({name:"ElMessage"}),fs=a.defineComponent({...us,props:ss,emits:is,setup(e,{expose:t,emit:n}){const r=e,{Close:o}=Zo,s=a.ref(!1),{ns:i,zIndex:l}=Io("message"),{currentZIndex:d,nextZIndex:f}=l,u=a.ref(),h=a.ref(!1),b=a.ref(0);let E;const g=a.computed(()=>r.type?r.type==="error"?"danger":r.type:"info"),p=a.computed(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Dt[S]}}),m=a.computed(()=>r.icon||Dt[r.type]||""),w=a.computed(()=>ls(r.id)),T=a.computed(()=>cs(r.id,r.offset)+w.value),O=a.computed(()=>b.value+T.value),B=a.computed(()=>({top:`${T.value}px`,zIndex:d.value}));function x(){r.duration!==0&&({stop:E}=lo(()=>{R()},r.duration))}function L(){E==null||E()}function R(){h.value=!1,a.nextTick(()=>{var S;s.value||((S=r.onClose)==null||S.call(r),n("destroy"))})}function q({code:S}){S===Qo.esc&&R()}return a.onMounted(()=>{x(),f(),h.value=!0}),a.watch(()=>r.repeatNum,()=>{L(),x()}),co(document,"keydown",q),ho(u,()=>{b.value=u.value.getBoundingClientRect().height}),t({visible:h,bottom:O,close:R}),(S,In)=>(a.openBlock(),a.createBlock(a.Transition,{name:a.unref(i).b("fade"),onBeforeEnter:tt=>s.value=!0,onBeforeLeave:S.onClose,onAfterLeave:tt=>S.$emit("destroy"),persisted:""},{default:a.withCtx(()=>[a.withDirectives(a.createElementVNode("div",{id:S.id,ref_key:"messageRef",ref:u,class:a.normalizeClass([a.unref(i).b(),{[a.unref(i).m(S.type)]:S.type},a.unref(i).is("closable",S.showClose),a.unref(i).is("plain",S.plain),S.customClass]),style:a.normalizeStyle(a.unref(B)),role:"alert",onMouseenter:L,onMouseleave:x},[S.repeatNum>1?(a.openBlock(),a.createBlock(a.unref(rs),{key:0,value:S.repeatNum,type:a.unref(g),class:a.normalizeClass(a.unref(i).e("badge"))},null,8,["value","type","class"])):a.createCommentVNode("v-if",!0),a.unref(m)?(a.openBlock(),a.createBlock(a.unref(Ft),{key:1,class:a.normalizeClass([a.unref(i).e("icon"),a.unref(p)])},{default:a.withCtx(()=>[(a.openBlock(),a.createBlock(a.resolveDynamicComponent(a.unref(m))))]),_:1},8,["class"])):a.createCommentVNode("v-if",!0),a.renderSlot(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(a.openBlock(),a.createElementBlock(a.Fragment,{key:1},[a.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),a.createElementVNode("p",{class:a.normalizeClass(a.unref(i).e("content")),innerHTML:S.message},null,10,["innerHTML"])],2112)):(a.openBlock(),a.createElementBlock("p",{key:0,class:a.normalizeClass(a.unref(i).e("content"))},a.toDisplayString(S.message),3))]),S.showClose?(a.openBlock(),a.createBlock(a.unref(Ft),{key:2,class:a.normalizeClass(a.unref(i).e("closeBtn")),onClick:a.withModifiers(R,["stop"])},{default:a.withCtx(()=>[a.createVNode(a.unref(o))]),_:1},8,["class","onClick"])):a.createCommentVNode("v-if",!0)],46,["id"]),[[a.vShow,h.value]])]),_:3},8,["name","onBeforeEnter","onBeforeLeave","onAfterLeave"]))}});var ds=ze(fs,[["__file","message.vue"]]);let ps=1;const zt=e=>{const t=!e||oe(e)||a.isVNode(e)||me(e)?{message:e}:e,n={...P,...t};if(!n.appendTo)n.appendTo=document.body;else if(oe(n.appendTo)){let r=document.querySelector(n.appendTo);no(r)||(ye("ElMessage","the appendTo option is not an HTMLElement. Falling back to document.body."),r=document.body),n.appendTo=r}return je(I.grouping)&&!n.grouping&&(n.grouping=I.grouping),K(I.duration)&&n.duration===3e3&&(n.duration=I.duration),K(I.offset)&&n.offset===16&&(n.offset=I.offset),je(I.showClose)&&!n.showClose&&(n.showClose=I.showClose),je(I.plain)&&!n.plain&&(n.plain=I.plain),n},ms=e=>{const t=F.indexOf(e);if(t===-1)return;F.splice(t,1);const{handler:n}=e;n.close()},hs=({appendTo:e,...t},n)=>{const r=`message_${ps++}`,o=t.onClose,s=document.createElement("div"),i={...t,id:r,onClose:()=>{o==null||o(),ms(u)},onDestroy:()=>{a.render(null,s)}},l=a.createVNode(ds,i,me(i.message)||a.isVNode(i.message)?{default:me(i.message)?i.message:()=>i.message}:null);l.appContext=n||ee._context,a.render(l,s),e.appendChild(s.firstElementChild);const d=l.component,u={id:r,vnode:l,vm:d,handler:{close:()=>{d.exposed.close()}},props:l.component.props};return u},ee=(e={},t)=>{if(!Y)return{close:()=>{}};const n=zt(e);if(n.grouping&&F.length){const o=F.find(({vnode:s})=>{var i;return((i=s.props)==null?void 0:i.message)===n.message});if(o)return o.props.repeatNum+=1,o.props.type=n.type,o.handler}if(K(I.max)&&F.length>=I.max)return{close:()=>{}};const r=hs(n,t);return F.push(r),r.handler};Ut.forEach(e=>{ee[e]=(t={},n)=>{const r=zt(t);return ee({...r,type:e},n)}});function gs(e){const t=[...F];for(const n of t)(!e||e===n.props.type)&&n.handler.close()}ee.closeAll=gs,ee._context=null;const ys=$o(ee,"$message");function Mt(e,t){return function(){return e.apply(t,arguments)}}const{toString:bs}=Object.prototype,{getPrototypeOf:qe}=Object,{iterator:we,toStringTag:qt}=Symbol,_e=(e=>t=>{const n=bs.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),j=e=>(e=e.toLowerCase(),t=>_e(t)===e),Ee=e=>t=>typeof t===e,{isArray:te}=Array,le=Ee("undefined");function ws(e){return e!==null&&!le(e)&&e.constructor!==null&&!le(e.constructor)&&k(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Vt=j("ArrayBuffer");function _s(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Vt(e.buffer),t}const Es=Ee("string"),k=Ee("function"),Ht=Ee("number"),Se=e=>e!==null&&typeof e=="object",Ss=e=>e===!0||e===!1,Te=e=>{if(_e(e)!=="object")return!1;const t=qe(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(qt in e)&&!(we in e)},Ts=j("Date"),Cs=j("File"),Os=j("Blob"),xs=j("FileList"),Rs=e=>Se(e)&&k(e.pipe),Ns=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||k(e.append)&&((t=_e(e))==="formdata"||t==="object"&&k(e.toString)&&e.toString()==="[object FormData]"))},Ps=j("URLSearchParams"),[ks,As,Is,Bs]=["ReadableStream","Request","Response","Headers"].map(j),Ls=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ce(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),te(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const s=n?Object.getOwnPropertyNames(e):Object.keys(e),i=s.length;let l;for(r=0;r<i;r++)l=s[r],t.call(null,e[l],l,e)}}function Jt(e,t){t=t.toLowerCase();const n=Object.keys(e);let r=n.length,o;for(;r-- >0;)if(o=n[r],t===o.toLowerCase())return o;return null}const W=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Kt=e=>!le(e)&&e!==W;function Ve(){const{caseless:e}=Kt(this)&&this||{},t={},n=(r,o)=>{const s=e&&Jt(t,o)||o;Te(t[s])&&Te(r)?t[s]=Ve(t[s],r):Te(r)?t[s]=Ve({},r):te(r)?t[s]=r.slice():t[s]=r};for(let r=0,o=arguments.length;r<o;r++)arguments[r]&&ce(arguments[r],n);return t}const $s=(e,t,n,{allOwnKeys:r}={})=>(ce(t,(o,s)=>{n&&k(o)?e[s]=Mt(o,n):e[s]=o},{allOwnKeys:r}),e),vs=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Fs=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},js=(e,t,n,r)=>{let o,s,i;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)i=o[s],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&qe(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Ds=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Us=e=>{if(!e)return null;if(te(e))return e;let t=e.length;if(!Ht(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},zs=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&qe(Uint8Array)),Ms=(e,t)=>{const r=(e&&e[we]).call(e);let o;for(;(o=r.next())&&!o.done;){const s=o.value;t.call(e,s[0],s[1])}},qs=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Vs=j("HTMLFormElement"),Hs=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Wt=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Js=j("RegExp"),Gt=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};ce(n,(o,s)=>{let i;(i=t(o,s,e))!==!1&&(r[s]=i||o)}),Object.defineProperties(e,r)},Ks=e=>{Gt(e,(t,n)=>{if(k(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(k(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Ws=(e,t)=>{const n={},r=o=>{o.forEach(s=>{n[s]=!0})};return te(e)?r(e):r(String(e).split(t)),n},Gs=()=>{},Zs=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Xs(e){return!!(e&&k(e.append)&&e[qt]==="FormData"&&e[we])}const Qs=e=>{const t=new Array(10),n=(r,o)=>{if(Se(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[o]=r;const s=te(r)?[]:{};return ce(r,(i,l)=>{const d=n(i,o+1);!le(d)&&(s[l]=d)}),t[o]=void 0,s}}return r};return n(e,0)},Ys=j("AsyncFunction"),ei=e=>e&&(Se(e)||k(e))&&k(e.then)&&k(e.catch),Zt=((e,t)=>e?setImmediate:t?((n,r)=>(W.addEventListener("message",({source:o,data:s})=>{o===W&&s===n&&r.length&&r.shift()()},!1),o=>{r.push(o),W.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",k(W.postMessage)),ti=typeof queueMicrotask<"u"?queueMicrotask.bind(W):typeof process<"u"&&process.nextTick||Zt,c={isArray:te,isArrayBuffer:Vt,isBuffer:ws,isFormData:Ns,isArrayBufferView:_s,isString:Es,isNumber:Ht,isBoolean:Ss,isObject:Se,isPlainObject:Te,isReadableStream:ks,isRequest:As,isResponse:Is,isHeaders:Bs,isUndefined:le,isDate:Ts,isFile:Cs,isBlob:Os,isRegExp:Js,isFunction:k,isStream:Rs,isURLSearchParams:Ps,isTypedArray:zs,isFileList:xs,forEach:ce,merge:Ve,extend:$s,trim:Ls,stripBOM:vs,inherits:Fs,toFlatObject:js,kindOf:_e,kindOfTest:j,endsWith:Ds,toArray:Us,forEachEntry:Ms,matchAll:qs,isHTMLForm:Vs,hasOwnProperty:Wt,hasOwnProp:Wt,reduceDescriptors:Gt,freezeMethods:Ks,toObjectSet:Ws,toCamelCase:Hs,noop:Gs,toFiniteNumber:Zs,findKey:Jt,global:W,isContextDefined:Kt,isSpecCompliantForm:Xs,toJSONObject:Qs,isAsyncFn:Ys,isThenable:ei,setImmediate:Zt,asap:ti,isIterable:e=>e!=null&&k(e[we])};function y(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}c.inherits(y,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:c.toJSONObject(this.config),code:this.code,status:this.status}}});const Xt=y.prototype,Qt={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Qt[e]={value:e}}),Object.defineProperties(y,Qt),Object.defineProperty(Xt,"isAxiosError",{value:!0}),y.from=(e,t,n,r,o,s)=>{const i=Object.create(Xt);return c.toFlatObject(e,i,function(d){return d!==Error.prototype},l=>l!=="isAxiosError"),y.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};const ni=null;function He(e){return c.isPlainObject(e)||c.isArray(e)}function Yt(e){return c.endsWith(e,"[]")?e.slice(0,-2):e}function en(e,t,n){return e?e.concat(t).map(function(o,s){return o=Yt(o),!n&&s?"["+o+"]":o}).join(n?".":""):t}function ri(e){return c.isArray(e)&&!e.some(He)}const oi=c.toFlatObject(c,{},null,function(t){return/^is[A-Z]/.test(t)});function Ce(e,t,n){if(!c.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=c.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(p,m){return!c.isUndefined(m[p])});const r=n.metaTokens,o=n.visitor||u,s=n.dots,i=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&c.isSpecCompliantForm(t);if(!c.isFunction(o))throw new TypeError("visitor must be a function");function f(g){if(g===null)return"";if(c.isDate(g))return g.toISOString();if(c.isBoolean(g))return g.toString();if(!d&&c.isBlob(g))throw new y("Blob is not supported. Use a Buffer instead.");return c.isArrayBuffer(g)||c.isTypedArray(g)?d&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function u(g,p,m){let w=g;if(g&&!m&&typeof g=="object"){if(c.endsWith(p,"{}"))p=r?p:p.slice(0,-2),g=JSON.stringify(g);else if(c.isArray(g)&&ri(g)||(c.isFileList(g)||c.endsWith(p,"[]"))&&(w=c.toArray(g)))return p=Yt(p),w.forEach(function(O,B){!(c.isUndefined(O)||O===null)&&t.append(i===!0?en([p],B,s):i===null?p:p+"[]",f(O))}),!1}return He(g)?!0:(t.append(en(m,p,s),f(g)),!1)}const h=[],b=Object.assign(oi,{defaultVisitor:u,convertValue:f,isVisitable:He});function E(g,p){if(!c.isUndefined(g)){if(h.indexOf(g)!==-1)throw Error("Circular reference detected in "+p.join("."));h.push(g),c.forEach(g,function(w,T){(!(c.isUndefined(w)||w===null)&&o.call(t,w,c.isString(T)?T.trim():T,p,b))===!0&&E(w,p?p.concat(T):[T])}),h.pop()}}if(!c.isObject(e))throw new TypeError("data must be an object");return E(e),t}function tn(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Je(e,t){this._pairs=[],e&&Ce(e,this,t)}const nn=Je.prototype;nn.append=function(t,n){this._pairs.push([t,n])},nn.toString=function(t){const n=t?function(r){return t.call(this,r,tn)}:tn;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function si(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function rn(e,t,n){if(!t)return e;const r=n&&n.encode||si;c.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let s;if(o?s=o(t,n):s=c.isURLSearchParams(t)?t.toString():new Je(t,n).toString(r),s){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class on{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){c.forEach(this.handlers,function(r){r!==null&&t(r)})}}const sn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ii={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:Je,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},Ke=typeof window<"u"&&typeof document<"u",We=typeof navigator=="object"&&navigator||void 0,ai=Ke&&(!We||["ReactNative","NativeScript","NS"].indexOf(We.product)<0),li=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ci=Ke&&window.location.href||"http://localhost",N={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ke,hasStandardBrowserEnv:ai,hasStandardBrowserWebWorkerEnv:li,navigator:We,origin:ci},Symbol.toStringTag,{value:"Module"})),...ii};function ui(e,t){return Ce(e,new N.classes.URLSearchParams,Object.assign({visitor:function(n,r,o,s){return N.isNode&&c.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},t))}function fi(e){return c.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function di(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r<o;r++)s=n[r],t[s]=e[s];return t}function an(e){function t(n,r,o,s){let i=n[s++];if(i==="__proto__")return!0;const l=Number.isFinite(+i),d=s>=n.length;return i=!i&&c.isArray(o)?o.length:i,d?(c.hasOwnProp(o,i)?o[i]=[o[i],r]:o[i]=r,!l):((!o[i]||!c.isObject(o[i]))&&(o[i]=[]),t(n,r,o[i],s)&&c.isArray(o[i])&&(o[i]=di(o[i])),!l)}if(c.isFormData(e)&&c.isFunction(e.entries)){const n={};return c.forEachEntry(e,(r,o)=>{t(fi(r),o,n,0)}),n}return null}function pi(e,t,n){if(c.isString(e))try{return(t||JSON.parse)(e),c.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const ue={transitional:sn,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,s=c.isObject(t);if(s&&c.isHTMLForm(t)&&(t=new FormData(t)),c.isFormData(t))return o?JSON.stringify(an(t)):t;if(c.isArrayBuffer(t)||c.isBuffer(t)||c.isStream(t)||c.isFile(t)||c.isBlob(t)||c.isReadableStream(t))return t;if(c.isArrayBufferView(t))return t.buffer;if(c.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return ui(t,this.formSerializer).toString();if((l=c.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Ce(l?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||o?(n.setContentType("application/json",!1),pi(t)):t}],transformResponse:[function(t){const n=this.transitional||ue.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(c.isResponse(t)||c.isReadableStream(t))return t;if(t&&c.isString(t)&&(r&&!this.responseType||o)){const i=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(l){if(i)throw l.name==="SyntaxError"?y.from(l,y.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:N.classes.FormData,Blob:N.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};c.forEach(["delete","get","head","post","put","patch"],e=>{ue.headers[e]={}});const mi=c.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),hi=e=>{const t={};let n,r,o;return e&&e.split(`
|
|
5
|
+
**/process.env.NODE_ENV!=="production"&&Object.freeze({}),process.env.NODE_ENV!=="production"&&Object.freeze([]);const vn=Object.prototype.hasOwnProperty,st=(e,t)=>vn.call(e,t),me=e=>typeof e=="function",oe=e=>typeof e=="string",it=e=>e!==null&&typeof e=="object";var Fn=typeof global=="object"&&global&&global.Object===Object&&global,jn=typeof self=="object"&&self&&self.Object===Object&&self,Be=Fn||jn||Function("return this")(),X=Be.Symbol,at=Object.prototype,Dn=at.hasOwnProperty,Un=at.toString,se=X?X.toStringTag:void 0;function zn(e){var t=Dn.call(e,se),n=e[se];try{e[se]=void 0;var r=!0}catch{}var o=Un.call(e);return r&&(t?e[se]=n:delete e[se]),o}var Mn=Object.prototype,qn=Mn.toString;function Vn(e){return qn.call(e)}var Hn="[object Null]",Jn="[object Undefined]",lt=X?X.toStringTag:void 0;function ct(e){return e==null?e===void 0?Jn:Hn:lt&< in Object(e)?zn(e):Vn(e)}function Kn(e){return e!=null&&typeof e=="object"}var Wn="[object Symbol]";function Le(e){return typeof e=="symbol"||Kn(e)&&ct(e)==Wn}function Gn(e,t){for(var n=-1,r=e==null?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}var $e=Array.isArray,ut=X?X.prototype:void 0,ft=ut?ut.toString:void 0;function dt(e){if(typeof e=="string")return e;if($e(e))return Gn(e,dt)+"";if(Le(e))return ft?ft.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function pt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zn="[object AsyncFunction]",Xn="[object Function]",Qn="[object GeneratorFunction]",Yn="[object Proxy]";function er(e){if(!pt(e))return!1;var t=ct(e);return t==Xn||t==Qn||t==Zn||t==Yn}var ve=Be["__core-js_shared__"],mt=function(){var e=/[^.]+$/.exec(ve&&ve.keys&&ve.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function tr(e){return!!mt&&mt in e}var nr=Function.prototype,rr=nr.toString;function or(e){if(e!=null){try{return rr.call(e)}catch{}try{return e+""}catch{}}return""}var sr=/[\\^$.*+?()[\]{}|]/g,ir=/^\[object .+?Constructor\]$/,ar=Function.prototype,lr=Object.prototype,cr=ar.toString,ur=lr.hasOwnProperty,fr=RegExp("^"+cr.call(ur).replace(sr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dr(e){if(!pt(e)||tr(e))return!1;var t=er(e)?fr:ir;return t.test(or(e))}function pr(e,t){return e==null?void 0:e[t]}function ht(e,t){var n=pr(e,t);return dr(n)?n:void 0}function mr(e,t){return e===t||e!==e&&t!==t}var hr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,gr=/^\w*$/;function yr(e,t){if($e(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||Le(e)?!0:gr.test(e)||!hr.test(e)||t!=null&&e in Object(t)}var ie=ht(Object,"create");function br(){this.__data__=ie?ie(null):{},this.size=0}function wr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var _r="__lodash_hash_undefined__",Er=Object.prototype,Sr=Er.hasOwnProperty;function Tr(e){var t=this.__data__;if(ie){var n=t[e];return n===_r?void 0:n}return Sr.call(t,e)?t[e]:void 0}var Cr=Object.prototype,Or=Cr.hasOwnProperty;function xr(e){var t=this.__data__;return ie?t[e]!==void 0:Or.call(t,e)}var Rr="__lodash_hash_undefined__";function Nr(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ie&&t===void 0?Rr:t,this}function H(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}H.prototype.clear=br,H.prototype.delete=wr,H.prototype.get=Tr,H.prototype.has=xr,H.prototype.set=Nr;function kr(){this.__data__=[],this.size=0}function he(e,t){for(var n=e.length;n--;)if(mr(e[n][0],t))return n;return-1}var Pr=Array.prototype,Ar=Pr.splice;function Ir(e){var t=this.__data__,n=he(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():Ar.call(t,n,1),--this.size,!0}function Br(e){var t=this.__data__,n=he(t,e);return n<0?void 0:t[n][1]}function Lr(e){return he(this.__data__,e)>-1}function $r(e,t){var n=this.__data__,r=he(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function Q(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Q.prototype.clear=kr,Q.prototype.delete=Ir,Q.prototype.get=Br,Q.prototype.has=Lr,Q.prototype.set=$r;var vr=ht(Be,"Map");function Fr(){this.size=0,this.__data__={hash:new H,map:new(vr||Q),string:new H}}function jr(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function ge(e,t){var n=e.__data__;return jr(t)?n[typeof t=="string"?"string":"hash"]:n.map}function Dr(e){var t=ge(this,e).delete(e);return this.size-=t?1:0,t}function Ur(e){return ge(this,e).get(e)}function zr(e){return ge(this,e).has(e)}function Mr(e,t){var n=ge(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function J(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}J.prototype.clear=Fr,J.prototype.delete=Dr,J.prototype.get=Ur,J.prototype.has=zr,J.prototype.set=Mr;var qr="Expected a function";function Fe(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(qr);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],s=n.cache;if(s.has(o))return s.get(o);var i=e.apply(this,r);return n.cache=s.set(o,i)||s,i};return n.cache=new(Fe.Cache||J),n}Fe.Cache=J;var Vr=500;function Hr(e){var t=Fe(e,function(r){return n.size===Vr&&n.clear(),r}),n=t.cache;return t}var Jr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Kr=/\\(\\)?/g,Wr=Hr(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Jr,function(n,r,o,s){t.push(o?s.replace(Kr,"$1"):r||n)}),t});function Gr(e){return e==null?"":dt(e)}function Zr(e,t){return $e(e)?e:yr(e,t)?[e]:Wr(Gr(e))}function Xr(e){if(typeof e=="string"||Le(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function Qr(e,t){t=Zr(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[Xr(t[n++])];return n&&n==r?e:void 0}function Yr(e,t,n){var r=e==null?void 0:Qr(e,t);return r===void 0?n:r}function eo(e){for(var t=-1,n=e==null?0:e.length,r={};++t<n;){var o=e[t];r[o[0]]=o[1]}return r}const to=e=>e===void 0,je=e=>typeof e=="boolean",K=e=>typeof e=="number",no=e=>typeof Element>"u"?!1:e instanceof Element,ro=e=>oe(e)?!Number.isNaN(Number(e)):!1;var gt;const Y=typeof window<"u",oo=e=>typeof e=="string",so=()=>{};Y&&((gt=window==null?void 0:window.navigator)!=null&>.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function De(e){return typeof e=="function"?e():a.unref(e)}function io(e){return e}function Ue(e){return a.getCurrentScope()?(a.onScopeDispose(e),!0):!1}function ao(e,t=!0){a.getCurrentInstance()?a.onMounted(e):t?e():a.nextTick(e)}function lo(e,t,n={}){const{immediate:r=!0}=n,o=a.ref(!1);let s=null;function i(){s&&(clearTimeout(s),s=null)}function l(){o.value=!1,i()}function d(...f){i(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...f)},De(t))}return r&&(o.value=!0,Y&&d()),Ue(l),{isPending:a.readonly(o),start:d,stop:l}}function yt(e){var t;const n=De(e);return(t=n==null?void 0:n.$el)!=null?t:n}const bt=Y?window:void 0;function co(...e){let t,n,r,o;if(oo(e[0])||Array.isArray(e[0])?([n,r,o]=e,t=bt):[t,n,r,o]=e,!t)return so;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],i=()=>{s.forEach(u=>u()),s.length=0},l=(u,h,b,E)=>(u.addEventListener(h,b,E),()=>u.removeEventListener(h,b,E)),d=a.watch(()=>[yt(t),De(o)],([u,h])=>{i(),u&&s.push(...n.flatMap(b=>r.map(E=>l(u,b,E,h))))},{immediate:!0,flush:"post"}),f=()=>{d(),i()};return Ue(f),f}function uo(e,t=!1){const n=a.ref(),r=()=>n.value=!!e();return r(),ao(r,t),n}const wt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},_t="__vueuse_ssr_handlers__";wt[_t]=wt[_t]||{};var Et=Object.getOwnPropertySymbols,fo=Object.prototype.hasOwnProperty,po=Object.prototype.propertyIsEnumerable,mo=(e,t)=>{var n={};for(var r in e)fo.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Et)for(var r of Et(e))t.indexOf(r)<0&&po.call(e,r)&&(n[r]=e[r]);return n};function ho(e,t,n={}){const r=n,{window:o=bt}=r,s=mo(r,["window"]);let i;const l=uo(()=>o&&"ResizeObserver"in o),d=()=>{i&&(i.disconnect(),i=void 0)},f=a.watch(()=>yt(e),h=>{d(),l.value&&o&&h&&(i=new ResizeObserver(t),i.observe(h,s))},{immediate:!0,flush:"post"}),u=()=>{d(),f()};return Ue(u),{isSupported:l,stop:u}}var St;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(St||(St={}));var go=Object.defineProperty,Tt=Object.getOwnPropertySymbols,yo=Object.prototype.hasOwnProperty,bo=Object.prototype.propertyIsEnumerable,Ct=(e,t,n)=>t in e?go(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wo=(e,t)=>{for(var n in t||(t={}))yo.call(t,n)&&Ct(e,n,t[n]);if(Tt)for(var n of Tt(t))bo.call(t,n)&&Ct(e,n,t[n]);return e};wo({linear:io},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});class _o extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function ye(e,t){if(process.env.NODE_ENV!=="production"){const n=oe(e)?new _o(`[${e}] ${t}`):e;console.warn(n)}}const Ot={current:0},xt=a.ref(0),Rt=2e3,Nt=Symbol("elZIndexContextKey"),kt=Symbol("zIndexContextKey"),Eo=e=>{const t=a.getCurrentInstance()?a.inject(Nt,Ot):Ot,n=e||(a.getCurrentInstance()?a.inject(kt,void 0):void 0),r=a.computed(()=>{const i=a.unref(n);return K(i)?i:Rt}),o=a.computed(()=>r.value+xt.value),s=()=>(t.current++,xt.value=t.current,o.value);return!Y&&!a.inject(Nt)&&ye("ZIndexInjection",`Looks like you are using server rendering, you must provide a z-index provider to ensure the hydration process to be succeed
|
|
6
|
+
usage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`),{initialZIndex:r,currentZIndex:o,nextZIndex:s}};var So={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const To=e=>(t,n)=>Co(t,n,a.unref(e)),Co=(e,t,n)=>Yr(n,e,e).replace(/\{(\w+)\}/g,(r,o)=>{var s;return`${(s=t==null?void 0:t[o])!=null?s:`{${o}}`}`}),Oo=e=>{const t=a.computed(()=>a.unref(e).name),n=a.isRef(e)?e:a.ref(e);return{lang:t,locale:n,t:To(e)}},Pt=Symbol("localeContextKey"),xo=e=>{const t=e||a.inject(Pt,a.ref());return Oo(a.computed(()=>t.value||So))},At="__epPropKey",v=e=>e,Ro=e=>it(e)&&!!e[At],It=(e,t)=>{if(!it(e)||Ro(e))return e;const{values:n,required:r,default:o,type:s,validator:i}=e,d={type:s,required:!!r,validator:n||i?f=>{let u=!1,h=[];if(n&&(h=Array.from(n),st(e,"default")&&h.push(o),u||(u=h.includes(f))),i&&(u||(u=i(f))),!u&&h.length>0){const b=[...new Set(h)].map(E=>JSON.stringify(E)).join(", ");a.warn(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${b}], got value ${JSON.stringify(f)}.`)}return u}:void 0,[At]:!0};return st(e,"default")&&(d.default=o),d},ae=e=>eo(Object.entries(e).map(([t,n])=>[t,It(n,t)])),No=It({type:String,values:["","default","small","large"],required:!1}),ko=Symbol("size"),Po=Symbol("emptyValuesContextKey"),Ao=ae({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>me(e)?!e():!e}}),Bt=e=>Object.keys(e),be=a.ref();function Lt(e,t=void 0){return a.getCurrentInstance()?a.inject(rt,be):be}function Io(e,t){const n=Lt(),r=Ie(e,a.computed(()=>{var l;return((l=n.value)==null?void 0:l.namespace)||pe})),o=xo(a.computed(()=>{var l;return(l=n.value)==null?void 0:l.locale})),s=Eo(a.computed(()=>{var l;return((l=n.value)==null?void 0:l.zIndex)||Rt})),i=a.computed(()=>{var l;return a.unref(t)||((l=n.value)==null?void 0:l.size)||""});return $t(a.computed(()=>a.unref(n)||{})),{ns:r,locale:o,zIndex:s,size:i}}const $t=(e,t,n=!1)=>{var r;const o=!!a.getCurrentInstance(),s=o?Lt():void 0,i=(r=void 0)!=null?r:o?a.provide:void 0;if(!i){ye("provideGlobalConfig","provideGlobalConfig() can only be used inside setup().");return}const l=a.computed(()=>{const d=a.unref(e);return s!=null&&s.value?Bo(s.value,d):d});return i(rt,l),i(Pt,a.computed(()=>l.value.locale)),i(ot,a.computed(()=>l.value.namespace)),i(kt,a.computed(()=>l.value.zIndex)),i(ko,{size:a.computed(()=>l.value.size||"")}),i(Po,a.computed(()=>({emptyValues:l.value.emptyValues,valueOnClear:l.value.valueOnClear}))),(n||!be.value)&&(be.value=l.value),l},Bo=(e,t)=>{const n=[...new Set([...Bt(e),...Bt(t)])],r={};for(const o of n)r[o]=t[o]!==void 0?t[o]:e[o];return r};var ze=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};const Lo="utils/dom/style";function Me(e,t="px"){if(!e)return"";if(K(e)||ro(e))return`${e}${t}`;if(oe(e))return e;ye(Lo,"binding value must be a string or number")}const vt=(e,t)=>(e.install=n=>{for(const r of[e,...Object.values({})])n.component(r.name,r)},e),$o=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),vo=ae({size:{type:v([Number,String])},color:{type:String}}),Fo=a.defineComponent({name:"ElIcon",inheritAttrs:!1}),jo=a.defineComponent({...Fo,props:vo,setup(e){const t=e,n=Ie("icon"),r=a.computed(()=>{const{size:o,color:s}=t;return!o&&!s?{}:{fontSize:to(o)?void 0:Me(o),"--color":s}});return(o,s)=>(a.openBlock(),a.createElementBlock("i",a.mergeProps({class:a.unref(n).b(),style:a.unref(r)},o.$attrs),[a.renderSlot(o.$slots,"default")],16))}});var Do=ze(jo,[["__file","icon.vue"]]);const Ft=vt(Do);/*! Element Plus Icons Vue v2.3.1 */var Uo=a.defineComponent({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),zo=Uo,Mo=a.defineComponent({name:"Close",__name:"close",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),qo=Mo,Vo=a.defineComponent({name:"InfoFilled",__name:"info-filled",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),jt=Vo,Ho=a.defineComponent({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),Jo=Ho,Ko=a.defineComponent({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,n)=>(a.openBlock(),a.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),Wo=Ko;const Go=v([String,Object,Function]),Zo={Close:qo},Dt={primary:jt,success:Jo,warning:Wo,error:zo,info:jt},Xo=e=>e,Qo={esc:"Escape"},Yo=ae({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:v([String,Object,Array])},offset:{type:v(Array),default:[0,0]},badgeClass:{type:String}}),es=a.defineComponent({name:"ElBadge"}),ts=a.defineComponent({...es,props:Yo,setup(e,{expose:t}){const n=e,r=Ie("badge"),o=a.computed(()=>n.isDot?"":K(n.value)&&K(n.max)?n.max<n.value?`${n.max}+`:`${n.value}`:`${n.value}`),s=a.computed(()=>{var i,l,d,f,u;return[{backgroundColor:n.color,marginRight:Me(-((l=(i=n.offset)==null?void 0:i[0])!=null?l:0)),marginTop:Me((f=(d=n.offset)==null?void 0:d[1])!=null?f:0)},(u=n.badgeStyle)!=null?u:{}]});return t({content:o}),(i,l)=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(a.unref(r).b())},[a.renderSlot(i.$slots,"default"),a.createVNode(a.Transition,{name:`${a.unref(r).namespace.value}-zoom-in-center`,persisted:""},{default:a.withCtx(()=>[a.withDirectives(a.createElementVNode("sup",{class:a.normalizeClass([a.unref(r).e("content"),a.unref(r).em("content",i.type),a.unref(r).is("fixed",!!i.$slots.default),a.unref(r).is("dot",i.isDot),a.unref(r).is("hide-zero",!i.showZero&&n.value===0),i.badgeClass]),style:a.normalizeStyle(a.unref(s))},[a.renderSlot(i.$slots,"content",{value:a.unref(o)},()=>[a.createTextVNode(a.toDisplayString(a.unref(o)),1)])],6),[[a.vShow,!i.hidden&&(a.unref(o)||i.isDot||i.$slots.content)]])]),_:3},8,["name"])],2))}});var ns=ze(ts,[["__file","badge.vue"]]);const rs=vt(ns),os=ae({a11y:{type:Boolean,default:!0},locale:{type:v(Object)},size:No,button:{type:v(Object)},link:{type:v(Object)},experimentalFeatures:{type:v(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:v(Object)},zIndex:Number,namespace:{type:String,default:"el"},...Ao}),I={};a.defineComponent({name:"ElConfigProvider",props:os,setup(e,{slots:t}){const n=$t(e);return a.watch(()=>e.message,r=>{var o,s;Object.assign(I,(s=(o=n==null?void 0:n.value)==null?void 0:o.message)!=null?s:{},r??{})},{immediate:!0,deep:!0}),()=>a.renderSlot(t,"default",{config:n==null?void 0:n.value})}});const Ut=["primary","success","info","warning","error"],k=Xo({customClass:"",dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Y?document.body:void 0}),ss=ae({customClass:{type:String,default:k.customClass},dangerouslyUseHTMLString:{type:Boolean,default:k.dangerouslyUseHTMLString},duration:{type:Number,default:k.duration},icon:{type:Go,default:k.icon},id:{type:String,default:k.id},message:{type:v([String,Object,Function]),default:k.message},onClose:{type:v(Function),default:k.onClose},showClose:{type:Boolean,default:k.showClose},type:{type:String,values:Ut,default:k.type},plain:{type:Boolean,default:k.plain},offset:{type:Number,default:k.offset},zIndex:{type:Number,default:k.zIndex},grouping:{type:Boolean,default:k.grouping},repeatNum:{type:Number,default:k.repeatNum}}),is={destroy:()=>!0},F=a.shallowReactive([]),as=e=>{const t=F.findIndex(o=>o.id===e),n=F[t];let r;return t>0&&(r=F[t-1]),{current:n,prev:r}},ls=e=>{const{prev:t}=as(e);return t?t.vm.exposed.bottom.value:0},cs=(e,t)=>F.findIndex(r=>r.id===e)>0?16:t,us=a.defineComponent({name:"ElMessage"}),fs=a.defineComponent({...us,props:ss,emits:is,setup(e,{expose:t,emit:n}){const r=e,{Close:o}=Zo,s=a.ref(!1),{ns:i,zIndex:l}=Io("message"),{currentZIndex:d,nextZIndex:f}=l,u=a.ref(),h=a.ref(!1),b=a.ref(0);let E;const g=a.computed(()=>r.type?r.type==="error"?"danger":r.type:"info"),p=a.computed(()=>{const S=r.type;return{[i.bm("icon",S)]:S&&Dt[S]}}),m=a.computed(()=>r.icon||Dt[r.type]||""),w=a.computed(()=>ls(r.id)),T=a.computed(()=>cs(r.id,r.offset)+w.value),O=a.computed(()=>b.value+T.value),B=a.computed(()=>({top:`${T.value}px`,zIndex:d.value}));function x(){r.duration!==0&&({stop:E}=lo(()=>{R()},r.duration))}function L(){E==null||E()}function R(){h.value=!1,a.nextTick(()=>{var S;s.value||((S=r.onClose)==null||S.call(r),n("destroy"))})}function q({code:S}){S===Qo.esc&&R()}return a.onMounted(()=>{x(),f(),h.value=!0}),a.watch(()=>r.repeatNum,()=>{L(),x()}),co(document,"keydown",q),ho(u,()=>{b.value=u.value.getBoundingClientRect().height}),t({visible:h,bottom:O,close:R}),(S,In)=>(a.openBlock(),a.createBlock(a.Transition,{name:a.unref(i).b("fade"),onBeforeEnter:tt=>s.value=!0,onBeforeLeave:S.onClose,onAfterLeave:tt=>S.$emit("destroy"),persisted:""},{default:a.withCtx(()=>[a.withDirectives(a.createElementVNode("div",{id:S.id,ref_key:"messageRef",ref:u,class:a.normalizeClass([a.unref(i).b(),{[a.unref(i).m(S.type)]:S.type},a.unref(i).is("closable",S.showClose),a.unref(i).is("plain",S.plain),S.customClass]),style:a.normalizeStyle(a.unref(B)),role:"alert",onMouseenter:L,onMouseleave:x},[S.repeatNum>1?(a.openBlock(),a.createBlock(a.unref(rs),{key:0,value:S.repeatNum,type:a.unref(g),class:a.normalizeClass(a.unref(i).e("badge"))},null,8,["value","type","class"])):a.createCommentVNode("v-if",!0),a.unref(m)?(a.openBlock(),a.createBlock(a.unref(Ft),{key:1,class:a.normalizeClass([a.unref(i).e("icon"),a.unref(p)])},{default:a.withCtx(()=>[(a.openBlock(),a.createBlock(a.resolveDynamicComponent(a.unref(m))))]),_:1},8,["class"])):a.createCommentVNode("v-if",!0),a.renderSlot(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(a.openBlock(),a.createElementBlock(a.Fragment,{key:1},[a.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),a.createElementVNode("p",{class:a.normalizeClass(a.unref(i).e("content")),innerHTML:S.message},null,10,["innerHTML"])],2112)):(a.openBlock(),a.createElementBlock("p",{key:0,class:a.normalizeClass(a.unref(i).e("content"))},a.toDisplayString(S.message),3))]),S.showClose?(a.openBlock(),a.createBlock(a.unref(Ft),{key:2,class:a.normalizeClass(a.unref(i).e("closeBtn")),onClick:a.withModifiers(R,["stop"])},{default:a.withCtx(()=>[a.createVNode(a.unref(o))]),_:1},8,["class","onClick"])):a.createCommentVNode("v-if",!0)],46,["id"]),[[a.vShow,h.value]])]),_:3},8,["name","onBeforeEnter","onBeforeLeave","onAfterLeave"]))}});var ds=ze(fs,[["__file","message.vue"]]);let ps=1;const zt=e=>{const t=!e||oe(e)||a.isVNode(e)||me(e)?{message:e}:e,n={...k,...t};if(!n.appendTo)n.appendTo=document.body;else if(oe(n.appendTo)){let r=document.querySelector(n.appendTo);no(r)||(ye("ElMessage","the appendTo option is not an HTMLElement. Falling back to document.body."),r=document.body),n.appendTo=r}return je(I.grouping)&&!n.grouping&&(n.grouping=I.grouping),K(I.duration)&&n.duration===3e3&&(n.duration=I.duration),K(I.offset)&&n.offset===16&&(n.offset=I.offset),je(I.showClose)&&!n.showClose&&(n.showClose=I.showClose),je(I.plain)&&!n.plain&&(n.plain=I.plain),n},ms=e=>{const t=F.indexOf(e);if(t===-1)return;F.splice(t,1);const{handler:n}=e;n.close()},hs=({appendTo:e,...t},n)=>{const r=`message_${ps++}`,o=t.onClose,s=document.createElement("div"),i={...t,id:r,onClose:()=>{o==null||o(),ms(u)},onDestroy:()=>{a.render(null,s)}},l=a.createVNode(ds,i,me(i.message)||a.isVNode(i.message)?{default:me(i.message)?i.message:()=>i.message}:null);l.appContext=n||ee._context,a.render(l,s),e.appendChild(s.firstElementChild);const d=l.component,u={id:r,vnode:l,vm:d,handler:{close:()=>{d.exposed.close()}},props:l.component.props};return u},ee=(e={},t)=>{if(!Y)return{close:()=>{}};const n=zt(e);if(n.grouping&&F.length){const o=F.find(({vnode:s})=>{var i;return((i=s.props)==null?void 0:i.message)===n.message});if(o)return o.props.repeatNum+=1,o.props.type=n.type,o.handler}if(K(I.max)&&F.length>=I.max)return{close:()=>{}};const r=hs(n,t);return F.push(r),r.handler};Ut.forEach(e=>{ee[e]=(t={},n)=>{const r=zt(t);return ee({...r,type:e},n)}});function gs(e){const t=[...F];for(const n of t)(!e||e===n.props.type)&&n.handler.close()}ee.closeAll=gs,ee._context=null;const ys=$o(ee,"$message");function Mt(e,t){return function(){return e.apply(t,arguments)}}const{toString:bs}=Object.prototype,{getPrototypeOf:qe}=Object,{iterator:we,toStringTag:qt}=Symbol,_e=(e=>t=>{const n=bs.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),j=e=>(e=e.toLowerCase(),t=>_e(t)===e),Ee=e=>t=>typeof t===e,{isArray:te}=Array,le=Ee("undefined");function ws(e){return e!==null&&!le(e)&&e.constructor!==null&&!le(e.constructor)&&P(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Vt=j("ArrayBuffer");function _s(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Vt(e.buffer),t}const Es=Ee("string"),P=Ee("function"),Ht=Ee("number"),Se=e=>e!==null&&typeof e=="object",Ss=e=>e===!0||e===!1,Te=e=>{if(_e(e)!=="object")return!1;const t=qe(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(qt in e)&&!(we in e)},Ts=j("Date"),Cs=j("File"),Os=j("Blob"),xs=j("FileList"),Rs=e=>Se(e)&&P(e.pipe),Ns=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||P(e.append)&&((t=_e(e))==="formdata"||t==="object"&&P(e.toString)&&e.toString()==="[object FormData]"))},ks=j("URLSearchParams"),[Ps,As,Is,Bs]=["ReadableStream","Request","Response","Headers"].map(j),Ls=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ce(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),te(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const s=n?Object.getOwnPropertyNames(e):Object.keys(e),i=s.length;let l;for(r=0;r<i;r++)l=s[r],t.call(null,e[l],l,e)}}function Jt(e,t){t=t.toLowerCase();const n=Object.keys(e);let r=n.length,o;for(;r-- >0;)if(o=n[r],t===o.toLowerCase())return o;return null}const W=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Kt=e=>!le(e)&&e!==W;function Ve(){const{caseless:e}=Kt(this)&&this||{},t={},n=(r,o)=>{const s=e&&Jt(t,o)||o;Te(t[s])&&Te(r)?t[s]=Ve(t[s],r):Te(r)?t[s]=Ve({},r):te(r)?t[s]=r.slice():t[s]=r};for(let r=0,o=arguments.length;r<o;r++)arguments[r]&&ce(arguments[r],n);return t}const $s=(e,t,n,{allOwnKeys:r}={})=>(ce(t,(o,s)=>{n&&P(o)?e[s]=Mt(o,n):e[s]=o},{allOwnKeys:r}),e),vs=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Fs=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},js=(e,t,n,r)=>{let o,s,i;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),s=o.length;s-- >0;)i=o[s],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&qe(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Ds=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Us=e=>{if(!e)return null;if(te(e))return e;let t=e.length;if(!Ht(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},zs=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&qe(Uint8Array)),Ms=(e,t)=>{const r=(e&&e[we]).call(e);let o;for(;(o=r.next())&&!o.done;){const s=o.value;t.call(e,s[0],s[1])}},qs=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Vs=j("HTMLFormElement"),Hs=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),Wt=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Js=j("RegExp"),Gt=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};ce(n,(o,s)=>{let i;(i=t(o,s,e))!==!1&&(r[s]=i||o)}),Object.defineProperties(e,r)},Ks=e=>{Gt(e,(t,n)=>{if(P(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(P(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Ws=(e,t)=>{const n={},r=o=>{o.forEach(s=>{n[s]=!0})};return te(e)?r(e):r(String(e).split(t)),n},Gs=()=>{},Zs=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Xs(e){return!!(e&&P(e.append)&&e[qt]==="FormData"&&e[we])}const Qs=e=>{const t=new Array(10),n=(r,o)=>{if(Se(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[o]=r;const s=te(r)?[]:{};return ce(r,(i,l)=>{const d=n(i,o+1);!le(d)&&(s[l]=d)}),t[o]=void 0,s}}return r};return n(e,0)},Ys=j("AsyncFunction"),ei=e=>e&&(Se(e)||P(e))&&P(e.then)&&P(e.catch),Zt=((e,t)=>e?setImmediate:t?((n,r)=>(W.addEventListener("message",({source:o,data:s})=>{o===W&&s===n&&r.length&&r.shift()()},!1),o=>{r.push(o),W.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",P(W.postMessage)),ti=typeof queueMicrotask<"u"?queueMicrotask.bind(W):typeof process<"u"&&process.nextTick||Zt,c={isArray:te,isArrayBuffer:Vt,isBuffer:ws,isFormData:Ns,isArrayBufferView:_s,isString:Es,isNumber:Ht,isBoolean:Ss,isObject:Se,isPlainObject:Te,isReadableStream:Ps,isRequest:As,isResponse:Is,isHeaders:Bs,isUndefined:le,isDate:Ts,isFile:Cs,isBlob:Os,isRegExp:Js,isFunction:P,isStream:Rs,isURLSearchParams:ks,isTypedArray:zs,isFileList:xs,forEach:ce,merge:Ve,extend:$s,trim:Ls,stripBOM:vs,inherits:Fs,toFlatObject:js,kindOf:_e,kindOfTest:j,endsWith:Ds,toArray:Us,forEachEntry:Ms,matchAll:qs,isHTMLForm:Vs,hasOwnProperty:Wt,hasOwnProp:Wt,reduceDescriptors:Gt,freezeMethods:Ks,toObjectSet:Ws,toCamelCase:Hs,noop:Gs,toFiniteNumber:Zs,findKey:Jt,global:W,isContextDefined:Kt,isSpecCompliantForm:Xs,toJSONObject:Qs,isAsyncFn:Ys,isThenable:ei,setImmediate:Zt,asap:ti,isIterable:e=>e!=null&&P(e[we])};function y(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}c.inherits(y,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:c.toJSONObject(this.config),code:this.code,status:this.status}}});const Xt=y.prototype,Qt={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Qt[e]={value:e}}),Object.defineProperties(y,Qt),Object.defineProperty(Xt,"isAxiosError",{value:!0}),y.from=(e,t,n,r,o,s)=>{const i=Object.create(Xt);return c.toFlatObject(e,i,function(d){return d!==Error.prototype},l=>l!=="isAxiosError"),y.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};const ni=null;function He(e){return c.isPlainObject(e)||c.isArray(e)}function Yt(e){return c.endsWith(e,"[]")?e.slice(0,-2):e}function en(e,t,n){return e?e.concat(t).map(function(o,s){return o=Yt(o),!n&&s?"["+o+"]":o}).join(n?".":""):t}function ri(e){return c.isArray(e)&&!e.some(He)}const oi=c.toFlatObject(c,{},null,function(t){return/^is[A-Z]/.test(t)});function Ce(e,t,n){if(!c.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=c.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(p,m){return!c.isUndefined(m[p])});const r=n.metaTokens,o=n.visitor||u,s=n.dots,i=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&c.isSpecCompliantForm(t);if(!c.isFunction(o))throw new TypeError("visitor must be a function");function f(g){if(g===null)return"";if(c.isDate(g))return g.toISOString();if(c.isBoolean(g))return g.toString();if(!d&&c.isBlob(g))throw new y("Blob is not supported. Use a Buffer instead.");return c.isArrayBuffer(g)||c.isTypedArray(g)?d&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function u(g,p,m){let w=g;if(g&&!m&&typeof g=="object"){if(c.endsWith(p,"{}"))p=r?p:p.slice(0,-2),g=JSON.stringify(g);else if(c.isArray(g)&&ri(g)||(c.isFileList(g)||c.endsWith(p,"[]"))&&(w=c.toArray(g)))return p=Yt(p),w.forEach(function(O,B){!(c.isUndefined(O)||O===null)&&t.append(i===!0?en([p],B,s):i===null?p:p+"[]",f(O))}),!1}return He(g)?!0:(t.append(en(m,p,s),f(g)),!1)}const h=[],b=Object.assign(oi,{defaultVisitor:u,convertValue:f,isVisitable:He});function E(g,p){if(!c.isUndefined(g)){if(h.indexOf(g)!==-1)throw Error("Circular reference detected in "+p.join("."));h.push(g),c.forEach(g,function(w,T){(!(c.isUndefined(w)||w===null)&&o.call(t,w,c.isString(T)?T.trim():T,p,b))===!0&&E(w,p?p.concat(T):[T])}),h.pop()}}if(!c.isObject(e))throw new TypeError("data must be an object");return E(e),t}function tn(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Je(e,t){this._pairs=[],e&&Ce(e,this,t)}const nn=Je.prototype;nn.append=function(t,n){this._pairs.push([t,n])},nn.toString=function(t){const n=t?function(r){return t.call(this,r,tn)}:tn;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function si(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function rn(e,t,n){if(!t)return e;const r=n&&n.encode||si;c.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let s;if(o?s=o(t,n):s=c.isURLSearchParams(t)?t.toString():new Je(t,n).toString(r),s){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class on{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){c.forEach(this.handlers,function(r){r!==null&&t(r)})}}const sn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ii={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:Je,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},Ke=typeof window<"u"&&typeof document<"u",We=typeof navigator=="object"&&navigator||void 0,ai=Ke&&(!We||["ReactNative","NativeScript","NS"].indexOf(We.product)<0),li=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ci=Ke&&window.location.href||"http://localhost",N={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ke,hasStandardBrowserEnv:ai,hasStandardBrowserWebWorkerEnv:li,navigator:We,origin:ci},Symbol.toStringTag,{value:"Module"})),...ii};function ui(e,t){return Ce(e,new N.classes.URLSearchParams,Object.assign({visitor:function(n,r,o,s){return N.isNode&&c.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},t))}function fi(e){return c.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function di(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r<o;r++)s=n[r],t[s]=e[s];return t}function an(e){function t(n,r,o,s){let i=n[s++];if(i==="__proto__")return!0;const l=Number.isFinite(+i),d=s>=n.length;return i=!i&&c.isArray(o)?o.length:i,d?(c.hasOwnProp(o,i)?o[i]=[o[i],r]:o[i]=r,!l):((!o[i]||!c.isObject(o[i]))&&(o[i]=[]),t(n,r,o[i],s)&&c.isArray(o[i])&&(o[i]=di(o[i])),!l)}if(c.isFormData(e)&&c.isFunction(e.entries)){const n={};return c.forEachEntry(e,(r,o)=>{t(fi(r),o,n,0)}),n}return null}function pi(e,t,n){if(c.isString(e))try{return(t||JSON.parse)(e),c.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const ue={transitional:sn,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,s=c.isObject(t);if(s&&c.isHTMLForm(t)&&(t=new FormData(t)),c.isFormData(t))return o?JSON.stringify(an(t)):t;if(c.isArrayBuffer(t)||c.isBuffer(t)||c.isStream(t)||c.isFile(t)||c.isBlob(t)||c.isReadableStream(t))return t;if(c.isArrayBufferView(t))return t.buffer;if(c.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return ui(t,this.formSerializer).toString();if((l=c.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Ce(l?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||o?(n.setContentType("application/json",!1),pi(t)):t}],transformResponse:[function(t){const n=this.transitional||ue.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(c.isResponse(t)||c.isReadableStream(t))return t;if(t&&c.isString(t)&&(r&&!this.responseType||o)){const i=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(l){if(i)throw l.name==="SyntaxError"?y.from(l,y.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:N.classes.FormData,Blob:N.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};c.forEach(["delete","get","head","post","put","patch"],e=>{ue.headers[e]={}});const mi=c.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),hi=e=>{const t={};let n,r,o;return e&&e.split(`
|
|
7
7
|
`).forEach(function(i){o=i.indexOf(":"),n=i.substring(0,o).trim().toLowerCase(),r=i.substring(o+1).trim(),!(!n||t[n]&&mi[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},ln=Symbol("internals");function fe(e){return e&&String(e).trim().toLowerCase()}function Oe(e){return e===!1||e==null?e:c.isArray(e)?e.map(Oe):String(e)}function gi(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const yi=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ge(e,t,n,r,o){if(c.isFunction(r))return r.call(this,t,n);if(o&&(t=n),!!c.isString(t)){if(c.isString(r))return t.indexOf(r)!==-1;if(c.isRegExp(r))return r.test(t)}}function bi(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function wi(e,t){const n=c.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(o,s,i){return this[r].call(this,t,o,s,i)},configurable:!0})})}let A=class{constructor(t){t&&this.set(t)}set(t,n,r){const o=this;function s(l,d,f){const u=fe(d);if(!u)throw new Error("header name must be a non-empty string");const h=c.findKey(o,u);(!h||o[h]===void 0||f===!0||f===void 0&&o[h]!==!1)&&(o[h||d]=Oe(l))}const i=(l,d)=>c.forEach(l,(f,u)=>s(f,u,d));if(c.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(c.isString(t)&&(t=t.trim())&&!yi(t))i(hi(t),n);else if(c.isObject(t)&&c.isIterable(t)){let l={},d,f;for(const u of t){if(!c.isArray(u))throw TypeError("Object iterator must return a key-value pair");l[f=u[0]]=(d=l[f])?c.isArray(d)?[...d,u[1]]:[d,u[1]]:u[1]}i(l,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=fe(t),t){const r=c.findKey(this,t);if(r){const o=this[r];if(!n)return o;if(n===!0)return gi(o);if(c.isFunction(n))return n.call(this,o,r);if(c.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=fe(t),t){const r=c.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Ge(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let o=!1;function s(i){if(i=fe(i),i){const l=c.findKey(r,i);l&&(!n||Ge(r,r[l],l,n))&&(delete r[l],o=!0)}}return c.isArray(t)?t.forEach(s):s(t),o}clear(t){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const s=n[r];(!t||Ge(this,this[s],s,t,!0))&&(delete this[s],o=!0)}return o}normalize(t){const n=this,r={};return c.forEach(this,(o,s)=>{const i=c.findKey(r,s);if(i){n[i]=Oe(o),delete n[s];return}const l=t?bi(s):String(s).trim();l!==s&&delete n[s],n[l]=Oe(o),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return c.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=t&&c.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(`
|
|
8
|
-
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[ln]=this[ln]={accessors:{}}).accessors,o=this.prototype;function s(i){const l=fe(i);r[l]||(wi(o,i),r[l]=!0)}return c.isArray(t)?t.forEach(s):s(t),this}};A.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),c.reduceDescriptors(A.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}}),c.freezeMethods(A);function Ze(e,t){const n=this||ue,r=t||n,o=A.from(r.headers);let s=r.data;return c.forEach(e,function(l){s=l.call(n,s,o.normalize(),t?t.status:void 0)}),o.normalize(),s}function cn(e){return!!(e&&e.__CANCEL__)}function ne(e,t,n){y.call(this,e??"canceled",y.ERR_CANCELED,t,n),this.name="CanceledError"}c.inherits(ne,y,{__CANCEL__:!0});function un(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new y("Request failed with status code "+n.status,[y.ERR_BAD_REQUEST,y.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function _i(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Ei(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,s=0,i;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),u=r[s];i||(i=f),n[o]=d,r[o]=f;let h=s,b=0;for(;h!==o;)b+=n[h++],h=h%e;if(o=(o+1)%e,o===s&&(s=(s+1)%e),f-i<t)return;const E=u&&f-u;return E?Math.round(b*1e3/E):void 0}}function Si(e,t){let n=0,r=1e3/t,o,s;const i=(f,u=Date.now())=>{n=u,o=null,s&&(clearTimeout(s),s=null),e.apply(null,f)};return[(...f)=>{const u=Date.now(),h=u-n;h>=r?i(f,u):(o=f,s||(s=setTimeout(()=>{s=null,i(o)},r-h)))},()=>o&&i(o)]}const xe=(e,t,n=3)=>{let r=0;const o=Ei(50,250);return Si(s=>{const i=s.loaded,l=s.lengthComputable?s.total:void 0,d=i-r,f=o(d),u=i<=l;r=i;const h={loaded:i,total:l,progress:l?i/l:void 0,bytes:d,rate:f||void 0,estimated:f&&l&&u?(l-i)/f:void 0,event:s,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(h)},n)},fn=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},dn=e=>(...t)=>c.asap(()=>e(...t)),Ti=N.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,N.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(N.origin),N.navigator&&/(msie|trident)/i.test(N.navigator.userAgent)):()=>!0,Ci=N.hasStandardBrowserEnv?{write(e,t,n,r,o,s){const i=[e+"="+encodeURIComponent(t)];c.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),c.isString(r)&&i.push("path="+r),c.isString(o)&&i.push("domain="+o),s===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Oi(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function xi(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function pn(e,t,n){let r=!Oi(t);return e&&(r||n==!1)?xi(e,t):t}const mn=e=>e instanceof A?{...e}:e;function G(e,t){t=t||{};const n={};function r(f,u,h,b){return c.isPlainObject(f)&&c.isPlainObject(u)?c.merge.call({caseless:b},f,u):c.isPlainObject(u)?c.merge({},u):c.isArray(u)?u.slice():u}function o(f,u,h,b){if(c.isUndefined(u)){if(!c.isUndefined(f))return r(void 0,f,h,b)}else return r(f,u,h,b)}function s(f,u){if(!c.isUndefined(u))return r(void 0,u)}function i(f,u){if(c.isUndefined(u)){if(!c.isUndefined(f))return r(void 0,f)}else return r(void 0,u)}function l(f,u,h){if(h in t)return r(f,u);if(h in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:l,headers:(f,u,h)=>o(mn(f),mn(u),h,!0)};return c.forEach(Object.keys(Object.assign({},e,t)),function(u){const h=d[u]||o,b=h(e[u],t[u],u);c.isUndefined(b)&&h!==l||(n[u]=b)}),n}const hn=e=>{const t=G({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:s,headers:i,auth:l}=t;t.headers=i=A.from(i),t.url=rn(pn(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):"")));let d;if(c.isFormData(n)){if(N.hasStandardBrowserEnv||N.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((d=i.getContentType())!==!1){const[f,...u]=d?d.split(";").map(h=>h.trim()).filter(Boolean):[];i.setContentType([f||"multipart/form-data",...u].join("; "))}}if(N.hasStandardBrowserEnv&&(r&&c.isFunction(r)&&(r=r(t)),r||r!==!1&&Ti(t.url))){const f=o&&s&&Ci.read(s);f&&i.set(o,f)}return t},Ri=typeof XMLHttpRequest<"u"&&function(e){return new Promise(function(n,r){const o=hn(e);let s=o.data;const i=A.from(o.headers).normalize();let{responseType:l,onUploadProgress:d,onDownloadProgress:f}=o,u,h,b,E,g;function p(){E&&E(),g&&g(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let m=new XMLHttpRequest;m.open(o.method.toUpperCase(),o.url,!0),m.timeout=o.timeout;function w(){if(!m)return;const O=A.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders()),x={data:!l||l==="text"||l==="json"?m.responseText:m.response,status:m.status,statusText:m.statusText,headers:O,config:e,request:m};un(function(R){n(R),p()},function(R){r(R),p()},x),m=null}"onloadend"in m?m.onloadend=w:m.onreadystatechange=function(){!m||m.readyState!==4||m.status===0&&!(m.responseURL&&m.responseURL.indexOf("file:")===0)||setTimeout(w)},m.onabort=function(){m&&(r(new y("Request aborted",y.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new y("Network Error",y.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let B=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const x=o.transitional||sn;o.timeoutErrorMessage&&(B=o.timeoutErrorMessage),r(new y(B,x.clarifyTimeoutError?y.ETIMEDOUT:y.ECONNABORTED,e,m)),m=null},s===void 0&&i.setContentType(null),"setRequestHeader"in m&&c.forEach(i.toJSON(),function(B,x){m.setRequestHeader(x,B)}),c.isUndefined(o.withCredentials)||(m.withCredentials=!!o.withCredentials),l&&l!=="json"&&(m.responseType=o.responseType),f&&([b,g]=xe(f,!0),m.addEventListener("progress",b)),d&&m.upload&&([h,E]=xe(d),m.upload.addEventListener("progress",h),m.upload.addEventListener("loadend",E)),(o.cancelToken||o.signal)&&(u=O=>{m&&(r(!O||O.type?new ne(null,e,m):O),m.abort(),m=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const T=_i(o.url);if(T&&N.protocols.indexOf(T)===-1){r(new y("Unsupported protocol "+T+":",y.ERR_BAD_REQUEST,e));return}m.send(s||null)})},Ni=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const s=function(f){if(!o){o=!0,l();const u=f instanceof Error?f:this.reason;r.abort(u instanceof y?u:new ne(u instanceof Error?u.message:u))}};let i=t&&setTimeout(()=>{i=null,s(new y(`timeout ${t} of ms exceeded`,y.ETIMEDOUT))},t);const l=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>c.asap(l),d}},Pi=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,o;for(;r<n;)o=r+t,yield e.slice(r,o),r=o},ki=async function*(e,t){for await(const n of Ai(e))yield*Pi(n,t)},Ai=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},gn=(e,t,n,r)=>{const o=ki(e,t);let s=0,i,l=d=>{i||(i=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:u}=await o.next();if(f){l(),d.close();return}let h=u.byteLength;if(n){let b=s+=h;n(b)}d.enqueue(new Uint8Array(u))}catch(f){throw l(f),f}},cancel(d){return l(d),o.return()}},{highWaterMark:2})},Re=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",yn=Re&&typeof ReadableStream=="function",Ii=Re&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),bn=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Bi=yn&&bn(()=>{let e=!1;const t=new Request(N.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),wn=64*1024,Xe=yn&&bn(()=>c.isReadableStream(new Response("").body)),Ne={stream:Xe&&(e=>e.body)};Re&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Ne[t]&&(Ne[t]=c.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new y(`Response type '${t}' is not supported`,y.ERR_NOT_SUPPORT,r)})})})(new Response);const Li=async e=>{if(e==null)return 0;if(c.isBlob(e))return e.size;if(c.isSpecCompliantForm(e))return(await new Request(N.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(c.isArrayBufferView(e)||c.isArrayBuffer(e))return e.byteLength;if(c.isURLSearchParams(e)&&(e=e+""),c.isString(e))return(await Ii(e)).byteLength},$i=async(e,t)=>{const n=c.toFiniteNumber(e.getContentLength());return n??Li(t)},Qe={http:ni,xhr:Ri,fetch:Re&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:s,timeout:i,onDownloadProgress:l,onUploadProgress:d,responseType:f,headers:u,withCredentials:h="same-origin",fetchOptions:b}=hn(e);f=f?(f+"").toLowerCase():"text";let E=Ni([o,s&&s.toAbortSignal()],i),g;const p=E&&E.unsubscribe&&(()=>{E.unsubscribe()});let m;try{if(d&&Bi&&n!=="get"&&n!=="head"&&(m=await $i(u,r))!==0){let x=new Request(t,{method:"POST",body:r,duplex:"half"}),L;if(c.isFormData(r)&&(L=x.headers.get("content-type"))&&u.setContentType(L),x.body){const[R,q]=fn(m,xe(dn(d)));r=gn(x.body,wn,R,q)}}c.isString(h)||(h=h?"include":"omit");const w="credentials"in Request.prototype;g=new Request(t,{...b,signal:E,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:w?h:void 0});let T=await fetch(g,b);const O=Xe&&(f==="stream"||f==="response");if(Xe&&(l||O&&p)){const x={};["status","statusText","headers"].forEach(S=>{x[S]=T[S]});const L=c.toFiniteNumber(T.headers.get("content-length")),[R,q]=l&&fn(L,xe(dn(l),!0))||[];T=new Response(gn(T.body,wn,R,()=>{q&&q(),p&&p()}),x)}f=f||"text";let B=await Ne[c.findKey(Ne,f)||"text"](T,e);return!O&&p&&p(),await new Promise((x,L)=>{un(x,L,{data:B,headers:A.from(T.headers),status:T.status,statusText:T.statusText,config:e,request:g})})}catch(w){throw p&&p(),w&&w.name==="TypeError"&&/Load failed|fetch/i.test(w.message)?Object.assign(new y("Network Error",y.ERR_NETWORK,e,g),{cause:w.cause||w}):y.from(w,w&&w.code,e,g)}})};c.forEach(Qe,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const _n=e=>`- ${e}`,vi=e=>c.isFunction(e)||e===null||e===!1,En={getAdapter:e=>{e=c.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let s=0;s<t;s++){n=e[s];let i;if(r=n,!vi(n)&&(r=Qe[(i=String(n)).toLowerCase()],r===void 0))throw new y(`Unknown adapter '${i}'`);if(r)break;o[i||"#"+s]=r}if(!r){const s=Object.entries(o).map(([l,d])=>`adapter ${l} `+(d===!1?"is not supported by the environment":"is not available in the build"));let i=t?s.length>1?`since :
|
|
8
|
+
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[ln]=this[ln]={accessors:{}}).accessors,o=this.prototype;function s(i){const l=fe(i);r[l]||(wi(o,i),r[l]=!0)}return c.isArray(t)?t.forEach(s):s(t),this}};A.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),c.reduceDescriptors(A.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}}),c.freezeMethods(A);function Ze(e,t){const n=this||ue,r=t||n,o=A.from(r.headers);let s=r.data;return c.forEach(e,function(l){s=l.call(n,s,o.normalize(),t?t.status:void 0)}),o.normalize(),s}function cn(e){return!!(e&&e.__CANCEL__)}function ne(e,t,n){y.call(this,e??"canceled",y.ERR_CANCELED,t,n),this.name="CanceledError"}c.inherits(ne,y,{__CANCEL__:!0});function un(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new y("Request failed with status code "+n.status,[y.ERR_BAD_REQUEST,y.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function _i(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Ei(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,s=0,i;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),u=r[s];i||(i=f),n[o]=d,r[o]=f;let h=s,b=0;for(;h!==o;)b+=n[h++],h=h%e;if(o=(o+1)%e,o===s&&(s=(s+1)%e),f-i<t)return;const E=u&&f-u;return E?Math.round(b*1e3/E):void 0}}function Si(e,t){let n=0,r=1e3/t,o,s;const i=(f,u=Date.now())=>{n=u,o=null,s&&(clearTimeout(s),s=null),e.apply(null,f)};return[(...f)=>{const u=Date.now(),h=u-n;h>=r?i(f,u):(o=f,s||(s=setTimeout(()=>{s=null,i(o)},r-h)))},()=>o&&i(o)]}const xe=(e,t,n=3)=>{let r=0;const o=Ei(50,250);return Si(s=>{const i=s.loaded,l=s.lengthComputable?s.total:void 0,d=i-r,f=o(d),u=i<=l;r=i;const h={loaded:i,total:l,progress:l?i/l:void 0,bytes:d,rate:f||void 0,estimated:f&&l&&u?(l-i)/f:void 0,event:s,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(h)},n)},fn=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},dn=e=>(...t)=>c.asap(()=>e(...t)),Ti=N.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,N.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(N.origin),N.navigator&&/(msie|trident)/i.test(N.navigator.userAgent)):()=>!0,Ci=N.hasStandardBrowserEnv?{write(e,t,n,r,o,s){const i=[e+"="+encodeURIComponent(t)];c.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),c.isString(r)&&i.push("path="+r),c.isString(o)&&i.push("domain="+o),s===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Oi(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function xi(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function pn(e,t,n){let r=!Oi(t);return e&&(r||n==!1)?xi(e,t):t}const mn=e=>e instanceof A?{...e}:e;function G(e,t){t=t||{};const n={};function r(f,u,h,b){return c.isPlainObject(f)&&c.isPlainObject(u)?c.merge.call({caseless:b},f,u):c.isPlainObject(u)?c.merge({},u):c.isArray(u)?u.slice():u}function o(f,u,h,b){if(c.isUndefined(u)){if(!c.isUndefined(f))return r(void 0,f,h,b)}else return r(f,u,h,b)}function s(f,u){if(!c.isUndefined(u))return r(void 0,u)}function i(f,u){if(c.isUndefined(u)){if(!c.isUndefined(f))return r(void 0,f)}else return r(void 0,u)}function l(f,u,h){if(h in t)return r(f,u);if(h in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:l,headers:(f,u,h)=>o(mn(f),mn(u),h,!0)};return c.forEach(Object.keys(Object.assign({},e,t)),function(u){const h=d[u]||o,b=h(e[u],t[u],u);c.isUndefined(b)&&h!==l||(n[u]=b)}),n}const hn=e=>{const t=G({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:s,headers:i,auth:l}=t;t.headers=i=A.from(i),t.url=rn(pn(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):"")));let d;if(c.isFormData(n)){if(N.hasStandardBrowserEnv||N.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((d=i.getContentType())!==!1){const[f,...u]=d?d.split(";").map(h=>h.trim()).filter(Boolean):[];i.setContentType([f||"multipart/form-data",...u].join("; "))}}if(N.hasStandardBrowserEnv&&(r&&c.isFunction(r)&&(r=r(t)),r||r!==!1&&Ti(t.url))){const f=o&&s&&Ci.read(s);f&&i.set(o,f)}return t},Ri=typeof XMLHttpRequest<"u"&&function(e){return new Promise(function(n,r){const o=hn(e);let s=o.data;const i=A.from(o.headers).normalize();let{responseType:l,onUploadProgress:d,onDownloadProgress:f}=o,u,h,b,E,g;function p(){E&&E(),g&&g(),o.cancelToken&&o.cancelToken.unsubscribe(u),o.signal&&o.signal.removeEventListener("abort",u)}let m=new XMLHttpRequest;m.open(o.method.toUpperCase(),o.url,!0),m.timeout=o.timeout;function w(){if(!m)return;const O=A.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders()),x={data:!l||l==="text"||l==="json"?m.responseText:m.response,status:m.status,statusText:m.statusText,headers:O,config:e,request:m};un(function(R){n(R),p()},function(R){r(R),p()},x),m=null}"onloadend"in m?m.onloadend=w:m.onreadystatechange=function(){!m||m.readyState!==4||m.status===0&&!(m.responseURL&&m.responseURL.indexOf("file:")===0)||setTimeout(w)},m.onabort=function(){m&&(r(new y("Request aborted",y.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new y("Network Error",y.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let B=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const x=o.transitional||sn;o.timeoutErrorMessage&&(B=o.timeoutErrorMessage),r(new y(B,x.clarifyTimeoutError?y.ETIMEDOUT:y.ECONNABORTED,e,m)),m=null},s===void 0&&i.setContentType(null),"setRequestHeader"in m&&c.forEach(i.toJSON(),function(B,x){m.setRequestHeader(x,B)}),c.isUndefined(o.withCredentials)||(m.withCredentials=!!o.withCredentials),l&&l!=="json"&&(m.responseType=o.responseType),f&&([b,g]=xe(f,!0),m.addEventListener("progress",b)),d&&m.upload&&([h,E]=xe(d),m.upload.addEventListener("progress",h),m.upload.addEventListener("loadend",E)),(o.cancelToken||o.signal)&&(u=O=>{m&&(r(!O||O.type?new ne(null,e,m):O),m.abort(),m=null)},o.cancelToken&&o.cancelToken.subscribe(u),o.signal&&(o.signal.aborted?u():o.signal.addEventListener("abort",u)));const T=_i(o.url);if(T&&N.protocols.indexOf(T)===-1){r(new y("Unsupported protocol "+T+":",y.ERR_BAD_REQUEST,e));return}m.send(s||null)})},Ni=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const s=function(f){if(!o){o=!0,l();const u=f instanceof Error?f:this.reason;r.abort(u instanceof y?u:new ne(u instanceof Error?u.message:u))}};let i=t&&setTimeout(()=>{i=null,s(new y(`timeout ${t} of ms exceeded`,y.ETIMEDOUT))},t);const l=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>c.asap(l),d}},ki=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,o;for(;r<n;)o=r+t,yield e.slice(r,o),r=o},Pi=async function*(e,t){for await(const n of Ai(e))yield*ki(n,t)},Ai=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},gn=(e,t,n,r)=>{const o=Pi(e,t);let s=0,i,l=d=>{i||(i=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:u}=await o.next();if(f){l(),d.close();return}let h=u.byteLength;if(n){let b=s+=h;n(b)}d.enqueue(new Uint8Array(u))}catch(f){throw l(f),f}},cancel(d){return l(d),o.return()}},{highWaterMark:2})},Re=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",yn=Re&&typeof ReadableStream=="function",Ii=Re&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),bn=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Bi=yn&&bn(()=>{let e=!1;const t=new Request(N.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),wn=64*1024,Xe=yn&&bn(()=>c.isReadableStream(new Response("").body)),Ne={stream:Xe&&(e=>e.body)};Re&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Ne[t]&&(Ne[t]=c.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new y(`Response type '${t}' is not supported`,y.ERR_NOT_SUPPORT,r)})})})(new Response);const Li=async e=>{if(e==null)return 0;if(c.isBlob(e))return e.size;if(c.isSpecCompliantForm(e))return(await new Request(N.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(c.isArrayBufferView(e)||c.isArrayBuffer(e))return e.byteLength;if(c.isURLSearchParams(e)&&(e=e+""),c.isString(e))return(await Ii(e)).byteLength},$i=async(e,t)=>{const n=c.toFiniteNumber(e.getContentLength());return n??Li(t)},Qe={http:ni,xhr:Ri,fetch:Re&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:s,timeout:i,onDownloadProgress:l,onUploadProgress:d,responseType:f,headers:u,withCredentials:h="same-origin",fetchOptions:b}=hn(e);f=f?(f+"").toLowerCase():"text";let E=Ni([o,s&&s.toAbortSignal()],i),g;const p=E&&E.unsubscribe&&(()=>{E.unsubscribe()});let m;try{if(d&&Bi&&n!=="get"&&n!=="head"&&(m=await $i(u,r))!==0){let x=new Request(t,{method:"POST",body:r,duplex:"half"}),L;if(c.isFormData(r)&&(L=x.headers.get("content-type"))&&u.setContentType(L),x.body){const[R,q]=fn(m,xe(dn(d)));r=gn(x.body,wn,R,q)}}c.isString(h)||(h=h?"include":"omit");const w="credentials"in Request.prototype;g=new Request(t,{...b,signal:E,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:w?h:void 0});let T=await fetch(g,b);const O=Xe&&(f==="stream"||f==="response");if(Xe&&(l||O&&p)){const x={};["status","statusText","headers"].forEach(S=>{x[S]=T[S]});const L=c.toFiniteNumber(T.headers.get("content-length")),[R,q]=l&&fn(L,xe(dn(l),!0))||[];T=new Response(gn(T.body,wn,R,()=>{q&&q(),p&&p()}),x)}f=f||"text";let B=await Ne[c.findKey(Ne,f)||"text"](T,e);return!O&&p&&p(),await new Promise((x,L)=>{un(x,L,{data:B,headers:A.from(T.headers),status:T.status,statusText:T.statusText,config:e,request:g})})}catch(w){throw p&&p(),w&&w.name==="TypeError"&&/Load failed|fetch/i.test(w.message)?Object.assign(new y("Network Error",y.ERR_NETWORK,e,g),{cause:w.cause||w}):y.from(w,w&&w.code,e,g)}})};c.forEach(Qe,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const _n=e=>`- ${e}`,vi=e=>c.isFunction(e)||e===null||e===!1,En={getAdapter:e=>{e=c.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let s=0;s<t;s++){n=e[s];let i;if(r=n,!vi(n)&&(r=Qe[(i=String(n)).toLowerCase()],r===void 0))throw new y(`Unknown adapter '${i}'`);if(r)break;o[i||"#"+s]=r}if(!r){const s=Object.entries(o).map(([l,d])=>`adapter ${l} `+(d===!1?"is not supported by the environment":"is not available in the build"));let i=t?s.length>1?`since :
|
|
9
9
|
`+s.map(_n).join(`
|
|
10
|
-
`):" "+_n(s[0]):"as no adapter specified";throw new y("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:Qe};function Ye(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ne(null,e)}function Sn(e){return Ye(e),e.headers=A.from(e.headers),e.data=Ze.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),En.getAdapter(e.adapter||ue.adapter)(e).then(function(r){return Ye(e),r.data=Ze.call(e,e.transformResponse,r),r.headers=A.from(r.headers),r},function(r){return cn(r)||(Ye(e),r&&r.response&&(r.response.data=Ze.call(e,e.transformResponse,r.response),r.response.headers=A.from(r.response.headers))),Promise.reject(r)})}const Tn="1.10.0",
|
|
11
|
-
`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=G(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:s}=n;r!==void 0&&ke.assertOptions(r,{silentJSONParsing:z.transitional(z.boolean),forcedJSONParsing:z.transitional(z.boolean),clarifyTimeoutError:z.transitional(z.boolean)},!1),o!=null&&(c.isFunction(o)?n.paramsSerializer={serialize:o}:ke.assertOptions(o,{encode:z.function,serialize:z.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ke.assertOptions(n,{baseUrl:z.spelling("baseURL"),withXsrfToken:z.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=s&&c.merge(s.common,s[n.method]);s&&c.forEach(["delete","get","head","post","put","patch","common"],g=>{delete s[g]}),n.headers=A.concat(i,s);const l=[];let d=!0;this.interceptors.request.forEach(function(p){typeof p.runWhen=="function"&&p.runWhen(n)===!1||(d=d&&p.synchronous,l.unshift(p.fulfilled,p.rejected))});const f=[];this.interceptors.response.forEach(function(p){f.push(p.fulfilled,p.rejected)});let u,h=0,b;if(!d){const g=[Sn.bind(this),void 0];for(g.unshift.apply(g,l),g.push.apply(g,f),b=g.length,u=Promise.resolve(n);h<b;)u=u.then(g[h++],g[h++]);return u}b=l.length;let E=n;for(h=0;h<b;){const g=l[h++],p=l[h++];try{E=g(E)}catch(m){p.call(this,m);break}}try{u=Sn.call(this,E)}catch(g){return Promise.reject(g)}for(h=0,b=f.length;h<b;)u=u.then(f[h++],f[h++]);return u}getUri(t){t=G(this.defaults,t);const n=pn(t.baseURL,t.url,t.allowAbsoluteUrls);return rn(n,t.params,t.paramsSerializer)}};c.forEach(["delete","get","head","options"],function(t){Z.prototype[t]=function(n,r){return this.request(G(r||{},{method:t,url:n,data:(r||{}).data}))}}),c.forEach(["post","put","patch"],function(t){function n(r){return function(s,i,l){return this.request(G(l||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:s,data:i}))}}Z.prototype[t]=n(),Z.prototype[t+"Form"]=n(!0)});let ji=class Bn{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});const r=this;this.promise.then(o=>{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](o);r._listeners=null}),this.promise.then=o=>{let s;const i=new Promise(l=>{r.subscribe(l),s=l}).then(o);return i.cancel=function(){r.unsubscribe(s)},i},t(function(s,i,l){r.reason||(r.reason=new ne(s,i,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Bn(function(o){t=o}),cancel:t}}};function Di(e){return function(n){return e.apply(null,n)}}function Ui(e){return c.isObject(e)&&e.isAxiosError===!0}const et={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(et).forEach(([e,t])=>{et[t]=e});function On(e){const t=new Z(e),n=Mt(Z.prototype.request,t);return c.extend(n,Z.prototype,t,{allOwnKeys:!0}),c.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return On(G(e,o))},n}const C=On(ue);C.Axios=Z,C.CanceledError=ne,C.CancelToken=ji,C.isCancel=cn,C.VERSION=Tn,C.toFormData=Ce,C.AxiosError=y,C.Cancel=C.CanceledError,C.all=function(t){return Promise.all(t)},C.spread=Di,C.isAxiosError=Ui,C.mergeConfig=G,C.AxiosHeaders=A,C.formToJSON=e=>an(c.isHTMLForm(e)?new FormData(e):e),C.getAdapter=En.getAdapter,C.HttpStatusCode=et,C.default=C;const{Axios:ra,AxiosError:oa,CanceledError:sa,isCancel:ia,CancelToken:aa,VERSION:la,all:ca,Cancel:ua,isAxiosError:fa,spread:da,toFormData:pa,AxiosHeaders:ma,HttpStatusCode:ha,formToJSON:ga,getAdapter:ya,mergeConfig:ba}=C;class xn{set(t,n,r){let o=null;if(typeof r=="number"&&r>0)o=Date.now()+r*1e3;else if(typeof r>"u"){const i=this.getRaw(t);o=i?i.expire:null}const s={value:n,expire:o};localStorage.setItem(t,JSON.stringify(s))}get(t){const n=this.getRaw(t);return n?n.expire&&Date.now()>n.expire?(this.remove(t),null):n.value:null}getRaw(t){try{const n=localStorage.getItem(t);if(!n)return null;const r=JSON.parse(n);return r&&typeof r=="object"&&"value"in r&&"expire"in r?r:{value:n,expire:null}}catch{return{value:localStorage.getItem(t),expire:null}}}remove(t){localStorage.removeItem(t)}clear(){localStorage.clear()}}const re=new xn;function Rn(e=!0,t,n){const r=M().props;if(!r||!r.isEnabled){n&&n(new Error("统一登陆未开启,请检查配置"));return}const o=Ae();if(!o){n&&n(new Error("未登陆或token失效"));return}C({method:"post",url:r.loginServiceBaseAddress+"/admin-api/system/auth/logout",headers:{"tenant-id":M().tenantId,Authorization:"Bearer "+o}}).then(s=>{s.data.code?n&&n(s):(e&&Nn(),t&&t(s),kn())}).catch(s=>{console.log(s),n&&n(s)})}function Ae(){const e=M().props;return console.log(e),!e||!e.isEnabled?null:re.get(e.tokenName)}function zi(){return M().refreshToken}function Nn(){const e=M().props,t=Mi(e.loginPageBaseAddress,e.clientId,e.clientSecret,e.redirectPath);t&&window.open(t,"_self")}function Mi(e,t,n,r){return!t||!n?(console.error("未配置应用id或应用密钥"),""):(r=r||encodeURIComponent(window.location.href),`${e}/#/login?clientId=${t}&clientSecret=${n}&redirectUrl=${r}`)}function Pn(){return M().userPermission}function de(e){re.set("qlfyEcologicalLogin_loginInfo",e)}function qi(){re.remove("qlfyEcologicalLogin_loginInfo")}function M(){const e=re.get("qlfyEcologicalLogin_loginInfo");return e||{tenantId:7,refreshToken:"",props:null,userPermission:null}}function kn(){const e=M().props;e&&e.tokenName?re.remove(e.tokenName):re.remove("access_token"),qi()}const Vi={style:{display:"none"}},An=a.defineComponent({__name:"index",props:{clientId:{},clientSecret:{},loginPageBaseAddress:{},loginServiceBaseAddress:{},useRouter:{},forceMode:{type:Boolean,default:!0},token:{},isEnabled:{type:Boolean,default:!0},listenToken:{type:Boolean,default:!1},redirectPath:{default:""},tokenName:{default:"access_token"},tokenValidity:{default:60*120},dialogConfig:{}},emits:["loggingIn","loginFail","loginSuccess"],setup(e,{expose:t,emit:n}){const r=e,o=r.useRouter,s=r.useRouter.currentRoute,i=n,l=new xn;let d=null,f=null,u=M(),h="";t({logout:Rn,getToken:Ae,getUserPermission:Pn}),a.onBeforeUnmount(()=>{d&&clearInterval(d),de(u)}),a.watch(()=>s.value.path,(_,D)=>{f&&clearTimeout(f),a.nextTick(()=>{f=setTimeout(()=>{r.isEnabled&&b()},300)})},{deep:!0,immediate:!0}),a.watch(()=>r.isEnabled,_=>{setTimeout(()=>{_&&b(),_||(kn(),d&&clearInterval(d))})},{deep:!0}),a.watch(()=>r.token,_=>{},{});function b(){r.isEnabled&&(In(),E())}function E(){if(g()){p();return}if(m()){w();return}const _=T();if(_){x(_);return}O()}function g(){return!!r.token}function p(){r.token&&(l.set(r.tokenName,r.token,r.tokenValidity),x(r.token))}function m(){return!!s.value.query.token}function w(){const _=s.value.query.token,D=s.value.query.refreshToken;i("loggingIn",_),l.set(r.tokenName,_,r.tokenValidity),u.refreshToken=D,de(u),B(),x(_)}function T(){return l.get(r.tokenName)}function O(){!r.forceMode||r.token?i("loginFail",{msg:"未登录或登陆状态失效",data:null}):Nn()}function B(){let _={...s.value.query};delete _.token,delete _.refreshToken,o.replace({path:s.value.path,query:_})}function x(_){let D={token:_};const nt={"tenant-id":7,Authorization:"Basic "+btoa(r.clientId+":"+r.clientSecret)};C.post(r.loginServiceBaseAddress+"/admin-api/system/oauth2/check-token","",{params:D,headers:nt}).then(U=>{if(U.data.code!==0){R("Token验证失败",U);return}u.tenantId=U.data.data.tenant_id,de(u),L(_)}).catch(U=>{R("Token验证请求失败",U)})}function L(_){l.set(r.tokenName,_,r.tokenValidity),(!h||_!=h)&&q(_),tt()}function R(_,D){Ki(_,D),O()}function q(_){let D={clientId:r.clientId};const nt={"tenant-id":u.tenantId,Authorization:_};C.get(r.loginServiceBaseAddress+"/admin-api/system/auth/get-permission-info",{params:D,headers:nt}).then(U=>{if(U.data.code!==0){R("用户配置获取失败",U);return}S(U.data)}).catch(U=>{R("用户配置获取失败",U)})}function S(_){h=Ae(),u.userPermission=_,de(u),i("loginSuccess",_)}function In(){const _={...r};delete _.useRouter,u.props=_,de(u)}function tt(){r.listenToken&&(d&&clearInterval(d),d=setInterval(()=>{l.get(r.tokenName)||(clearInterval(d),ys.warning("登录状态丢失,正在重新获取~"),setTimeout(()=>{E()},2e3))},1e3))}function Ki(_,D){console.error(`[qlfyEcologicalLogin] ${_}:`,D)}return(_,D)=>(a.openBlock(),a.createElementBlock("div",Vi))}}),Hi=An,Ji={install(e){e.component("qlfyEcologicalLogin",An)}};$.default=Ji,$.getRefreshToken=zi,$.getToken=Ae,$.getUserPermission=Pn,$.logout=Rn,$.qlfyEcologicalLogin=Hi,Object.defineProperties($,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
10
|
+
`):" "+_n(s[0]):"as no adapter specified";throw new y("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:Qe};function Ye(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ne(null,e)}function Sn(e){return Ye(e),e.headers=A.from(e.headers),e.data=Ze.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),En.getAdapter(e.adapter||ue.adapter)(e).then(function(r){return Ye(e),r.data=Ze.call(e,e.transformResponse,r),r.headers=A.from(r.headers),r},function(r){return cn(r)||(Ye(e),r&&r.response&&(r.response.data=Ze.call(e,e.transformResponse,r.response),r.response.headers=A.from(r.response.headers))),Promise.reject(r)})}const Tn="1.10.0",ke={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ke[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Cn={};ke.transitional=function(t,n,r){function o(s,i){return"[Axios v"+Tn+"] Transitional option '"+s+"'"+i+(r?". "+r:"")}return(s,i,l)=>{if(t===!1)throw new y(o(i," has been removed"+(n?" in "+n:"")),y.ERR_DEPRECATED);return n&&!Cn[i]&&(Cn[i]=!0,console.warn(o(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,i,l):!0}},ke.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Fi(e,t,n){if(typeof e!="object")throw new y("options must be an object",y.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=t[s];if(i){const l=e[s],d=l===void 0||i(l,s,e);if(d!==!0)throw new y("option "+s+" must be "+d,y.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new y("Unknown option "+s,y.ERR_BAD_OPTION)}}const Pe={assertOptions:Fi,validators:ke},z=Pe.validators;let Z=class{constructor(t){this.defaults=t||{},this.interceptors={request:new on,response:new on}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const s=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=`
|
|
11
|
+
`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=G(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:s}=n;r!==void 0&&Pe.assertOptions(r,{silentJSONParsing:z.transitional(z.boolean),forcedJSONParsing:z.transitional(z.boolean),clarifyTimeoutError:z.transitional(z.boolean)},!1),o!=null&&(c.isFunction(o)?n.paramsSerializer={serialize:o}:Pe.assertOptions(o,{encode:z.function,serialize:z.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Pe.assertOptions(n,{baseUrl:z.spelling("baseURL"),withXsrfToken:z.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=s&&c.merge(s.common,s[n.method]);s&&c.forEach(["delete","get","head","post","put","patch","common"],g=>{delete s[g]}),n.headers=A.concat(i,s);const l=[];let d=!0;this.interceptors.request.forEach(function(p){typeof p.runWhen=="function"&&p.runWhen(n)===!1||(d=d&&p.synchronous,l.unshift(p.fulfilled,p.rejected))});const f=[];this.interceptors.response.forEach(function(p){f.push(p.fulfilled,p.rejected)});let u,h=0,b;if(!d){const g=[Sn.bind(this),void 0];for(g.unshift.apply(g,l),g.push.apply(g,f),b=g.length,u=Promise.resolve(n);h<b;)u=u.then(g[h++],g[h++]);return u}b=l.length;let E=n;for(h=0;h<b;){const g=l[h++],p=l[h++];try{E=g(E)}catch(m){p.call(this,m);break}}try{u=Sn.call(this,E)}catch(g){return Promise.reject(g)}for(h=0,b=f.length;h<b;)u=u.then(f[h++],f[h++]);return u}getUri(t){t=G(this.defaults,t);const n=pn(t.baseURL,t.url,t.allowAbsoluteUrls);return rn(n,t.params,t.paramsSerializer)}};c.forEach(["delete","get","head","options"],function(t){Z.prototype[t]=function(n,r){return this.request(G(r||{},{method:t,url:n,data:(r||{}).data}))}}),c.forEach(["post","put","patch"],function(t){function n(r){return function(s,i,l){return this.request(G(l||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:s,data:i}))}}Z.prototype[t]=n(),Z.prototype[t+"Form"]=n(!0)});let ji=class Bn{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});const r=this;this.promise.then(o=>{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](o);r._listeners=null}),this.promise.then=o=>{let s;const i=new Promise(l=>{r.subscribe(l),s=l}).then(o);return i.cancel=function(){r.unsubscribe(s)},i},t(function(s,i,l){r.reason||(r.reason=new ne(s,i,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Bn(function(o){t=o}),cancel:t}}};function Di(e){return function(n){return e.apply(null,n)}}function Ui(e){return c.isObject(e)&&e.isAxiosError===!0}const et={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(et).forEach(([e,t])=>{et[t]=e});function On(e){const t=new Z(e),n=Mt(Z.prototype.request,t);return c.extend(n,Z.prototype,t,{allOwnKeys:!0}),c.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return On(G(e,o))},n}const C=On(ue);C.Axios=Z,C.CanceledError=ne,C.CancelToken=ji,C.isCancel=cn,C.VERSION=Tn,C.toFormData=Ce,C.AxiosError=y,C.Cancel=C.CanceledError,C.all=function(t){return Promise.all(t)},C.spread=Di,C.isAxiosError=Ui,C.mergeConfig=G,C.AxiosHeaders=A,C.formToJSON=e=>an(c.isHTMLForm(e)?new FormData(e):e),C.getAdapter=En.getAdapter,C.HttpStatusCode=et,C.default=C;const{Axios:ra,AxiosError:oa,CanceledError:sa,isCancel:ia,CancelToken:aa,VERSION:la,all:ca,Cancel:ua,isAxiosError:fa,spread:da,toFormData:pa,AxiosHeaders:ma,HttpStatusCode:ha,formToJSON:ga,getAdapter:ya,mergeConfig:ba}=C;class xn{set(t,n,r){let o=null;if(typeof r=="number"&&r>0)o=Date.now()+r*1e3;else if(typeof r>"u"){const i=this.getRaw(t);o=i?i.expire:null}const s={value:n,expire:o};localStorage.setItem(t,JSON.stringify(s))}get(t){const n=this.getRaw(t);return n?n.expire&&Date.now()>n.expire?(this.remove(t),null):n.value:null}getRaw(t){try{const n=localStorage.getItem(t);if(!n)return null;const r=JSON.parse(n);return r&&typeof r=="object"&&"value"in r&&"expire"in r?r:{value:n,expire:null}}catch{return{value:localStorage.getItem(t),expire:null}}}remove(t){localStorage.removeItem(t)}clear(){localStorage.clear()}}const re=new xn;function Rn(e=!0,t,n){const r=M().props;if(!r||!r.isEnabled){n&&n(new Error("统一登陆未开启,请检查配置"));return}const o=Ae();if(!o){n&&n(new Error("未登陆或token失效"));return}C({method:"post",url:r.loginServiceBaseAddress+"/admin-api/system/auth/logout",headers:{"tenant-id":M().tenantId,Authorization:"Bearer "+o}}).then(s=>{s.data.code?n&&n(s):(e&&Nn(),t&&t(s),Pn())}).catch(s=>{console.log(s),n&&n(s)})}function Ae(){const e=M().props;return!e||!e.isEnabled?null:re.get(e.tokenName)}function zi(){return M().refreshToken}function Nn(){const e=M().props,t=Mi(e.loginPageBaseAddress,e.clientId,e.clientSecret,e.redirectPath);t&&window.open(t,"_self")}function Mi(e,t,n,r){return!t||!n?(console.error("未配置应用id或应用密钥"),""):(r=r||encodeURIComponent(window.location.href),`${e}/#/login?clientId=${t}&clientSecret=${n}&redirectUrl=${r}`)}function kn(){return M().userPermission}function de(e){re.set("qlfyEcologicalLogin_loginInfo",e)}function qi(){re.remove("qlfyEcologicalLogin_loginInfo")}function M(){const e=re.get("qlfyEcologicalLogin_loginInfo");return e||{tenantId:7,refreshToken:"",props:null,userPermission:null}}function Pn(){const e=M().props;e&&e.tokenName?re.remove(e.tokenName):re.remove("access_token"),qi()}const Vi={style:{display:"none"}},An=a.defineComponent({__name:"index",props:{clientId:{},clientSecret:{},loginPageBaseAddress:{},loginServiceBaseAddress:{},useRouter:{},forceMode:{type:Boolean,default:!0},token:{},isEnabled:{type:Boolean,default:!0},listenToken:{type:Boolean,default:!1},redirectPath:{default:""},tokenName:{default:"access_token"},tokenValidity:{default:60*120},dialogConfig:{}},emits:["loggingIn","loginFail","loginSuccess"],setup(e,{expose:t,emit:n}){const r=e,o=r.useRouter,s=r.useRouter.currentRoute,i=n,l=new xn;let d=null,f=null,u=M(),h="";t({logout:Rn,getToken:Ae,getUserPermission:kn}),a.onBeforeUnmount(()=>{d&&clearInterval(d),de(u)}),a.watch(()=>s.value.path,(_,D)=>{f&&clearTimeout(f),a.nextTick(()=>{f=setTimeout(()=>{r.isEnabled&&b()},300)})},{deep:!0,immediate:!0}),a.watch(()=>r.isEnabled,_=>{setTimeout(()=>{_&&b(),_||(Pn(),d&&clearInterval(d))})},{deep:!0}),a.watch(()=>r.token,_=>{},{});function b(){r.isEnabled&&(In(),E())}function E(){if(g()){p();return}if(m()){w();return}const _=T();if(_){i("loggingIn",_),x(_);return}O()}function g(){return!!r.token}function p(){r.token&&(l.set(r.tokenName,r.token,r.tokenValidity),i("loggingIn",r.token),x(r.token))}function m(){return!!s.value.query.token}function w(){const _=s.value.query.token,D=s.value.query.refreshToken;i("loggingIn",_),l.set(r.tokenName,_,r.tokenValidity),u.refreshToken=D,de(u),B(),x(_)}function T(){return l.get(r.tokenName)}function O(){!r.forceMode||r.token?i("loginFail",{msg:"未登录或登陆状态失效",data:null}):Nn()}function B(){let _={...s.value.query};delete _.token,delete _.refreshToken,o.replace({path:s.value.path,query:_})}function x(_){let D={token:_};const nt={"tenant-id":7,Authorization:"Basic "+btoa(r.clientId+":"+r.clientSecret)};C.post(r.loginServiceBaseAddress+"/admin-api/system/oauth2/check-token","",{params:D,headers:nt}).then(U=>{if(U.data.code!==0){R("Token验证失败",U);return}u.tenantId=U.data.data.tenant_id,de(u),L(_)}).catch(U=>{R("Token验证请求失败",U)})}function L(_){l.set(r.tokenName,_,r.tokenValidity),(!h||_!=h)&&q(_),tt()}function R(_,D){Ki(_,D),O()}function q(_){let D={clientId:r.clientId};const nt={"tenant-id":u.tenantId,Authorization:_};C.get(r.loginServiceBaseAddress+"/admin-api/system/auth/get-permission-info",{params:D,headers:nt}).then(U=>{if(U.data.code!==0){R("用户配置获取失败",U);return}S(U.data)}).catch(U=>{R("用户配置获取失败",U)})}function S(_){h=Ae(),u.userPermission=_,de(u),i("loginSuccess",_)}function In(){const _={...r};delete _.useRouter,u.props=_,de(u)}function tt(){r.listenToken&&(d&&clearInterval(d),d=setInterval(()=>{l.get(r.tokenName)||(clearInterval(d),ys.warning("登录状态丢失,正在重新获取~"),setTimeout(()=>{E()},2e3))},1e3))}function Ki(_,D){console.error(`[qlfyEcologicalLogin] ${_}:`,D)}return(_,D)=>(a.openBlock(),a.createElementBlock("div",Vi))}}),Hi=An,Ji={install(e){e.component("qlfyEcologicalLogin",An)}};$.default=Ji,$.getRefreshToken=zi,$.getToken=Ae,$.getUserPermission=kn,$.logout=Rn,$.qlfyEcologicalLogin=Hi,Object.defineProperties($,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/lib/index.umd.js.gz
CHANGED
|
Binary file
|