mirror of
https://github.com/eyebluecn/tank-front
synced 2024-04-21 12:31:55 +00:00
add simple
This commit is contained in:
+16
-1
@@ -19,7 +19,6 @@
|
||||
"echarts": "4.8.0",
|
||||
"echarts-for-react": "2.0.16",
|
||||
"photoswipe": "^4.1.3",
|
||||
"prettier": "^2.6.2",
|
||||
"qs": "^6.10.3",
|
||||
"react": "17.0.2",
|
||||
"react-dom": "17.0.2",
|
||||
@@ -44,5 +43,21 @@
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"prettier": "^2.8.8",
|
||||
"husky": "^8.0.3",
|
||||
"lint-staged": "^13.2.2"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{js,jsx,ts,tsx}": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
tabWidth: 2,
|
||||
singleQuote: true,
|
||||
}
|
||||
+118
-84
@@ -1,102 +1,136 @@
|
||||
/**
|
||||
* 管理当前所有的菜单
|
||||
*/
|
||||
import React from "react";
|
||||
import React from 'react';
|
||||
import MenuItem from './MenuItem';
|
||||
import Moon from '../model/global/Moon';
|
||||
import User from '../model/user/User';
|
||||
import {UserRole} from '../model/user/UserRole';
|
||||
import { UserRole } from '../model/user/UserRole';
|
||||
import Sun from '../../common/model/global/Sun';
|
||||
import {
|
||||
AppstoreOutlined,
|
||||
DashboardOutlined,
|
||||
DeleteOutlined,
|
||||
PoweroffOutlined,
|
||||
SettingOutlined,
|
||||
ShareAltOutlined,
|
||||
TeamOutlined
|
||||
AppstoreOutlined,
|
||||
CloudSyncOutlined,
|
||||
DashboardOutlined,
|
||||
DeleteOutlined,
|
||||
PoweroffOutlined,
|
||||
SettingOutlined,
|
||||
ShareAltOutlined,
|
||||
TeamOutlined,
|
||||
} from '@ant-design/icons';
|
||||
import {LoginOutlined} from "@ant-design/icons/lib";
|
||||
import Preference from "../model/preference/Preference";
|
||||
import Lang from "../model/global/Lang";
|
||||
|
||||
import { LoginOutlined } from '@ant-design/icons/lib';
|
||||
import Preference from '../model/preference/Preference';
|
||||
import Lang from '../model/global/Lang';
|
||||
|
||||
export default class MenuManager {
|
||||
//单例模式
|
||||
private static singleton: MenuManager;
|
||||
|
||||
//单例模式
|
||||
private static singleton: MenuManager;
|
||||
constructor() {}
|
||||
|
||||
constructor() {
|
||||
|
||||
static getSingleton(): MenuManager {
|
||||
if (!MenuManager.singleton) {
|
||||
//初始化一个mainLand.
|
||||
MenuManager.singleton = new MenuManager();
|
||||
}
|
||||
|
||||
static getSingleton(): MenuManager {
|
||||
if (!MenuManager.singleton) {
|
||||
//初始化一个mainLand.
|
||||
MenuManager.singleton = new MenuManager();
|
||||
|
||||
}
|
||||
return MenuManager.singleton;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取到当前高亮的菜单
|
||||
*/
|
||||
getSelectedKeys(): string[] {
|
||||
|
||||
let keys: string[] = this.getMenuItems()
|
||||
.filter((menuItem: MenuItem, index: number) => {
|
||||
return menuItem.active;
|
||||
}).map((menuItem: MenuItem, index: number) => {
|
||||
return menuItem.url;
|
||||
});
|
||||
|
||||
return keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* 高亮某个菜单
|
||||
*/
|
||||
selectMenu(url: string) {
|
||||
|
||||
this.getMenuItems().forEach((menuItem: MenuItem, index: number) => {
|
||||
menuItem.active = menuItem.url === url;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
getMenuItems(): MenuItem[] {
|
||||
let user: User = Moon.getSingleton().user;
|
||||
let preference: Preference = Moon.getSingleton().preference;
|
||||
|
||||
let menuItems: MenuItem[] = [];
|
||||
|
||||
if (!preference.installed) {
|
||||
menuItems = [
|
||||
new MenuItem(Lang.t("layout.install"), '/install/index', <SettingOutlined/>),
|
||||
];
|
||||
} else if (user.role === UserRole.GUEST) {
|
||||
menuItems = [
|
||||
new MenuItem(Lang.t("user.login"), '/user/login', <LoginOutlined/>),
|
||||
];
|
||||
} else {
|
||||
menuItems.push(new MenuItem(Lang.t("layout.allFiles"), '/matter/list', <AppstoreOutlined/>))
|
||||
menuItems.push(new MenuItem(Lang.t("layout.myShare"), '/share/list', <ShareAltOutlined/>))
|
||||
menuItems.push(new MenuItem(Lang.t("layout.bin"), '/bin/list', <DeleteOutlined/>))
|
||||
|
||||
if (user.role === UserRole.ADMINISTRATOR) {
|
||||
menuItems.push(new MenuItem(Lang.t("layout.setting"), '/preference/index', <SettingOutlined/>))
|
||||
menuItems.push(new MenuItem(Lang.t("layout.dashboard"), '/dashboard/index', <DashboardOutlined/>))
|
||||
menuItems.push(new MenuItem(Lang.t("layout.users"), `${Sun.getSingleton().isMobile ? '/mobile' : ''}/user/list`,
|
||||
<TeamOutlined/>))
|
||||
}
|
||||
menuItems.push(new MenuItem(Lang.t("layout.logout"), '/user/logout', <PoweroffOutlined/>))
|
||||
|
||||
|
||||
}
|
||||
|
||||
return menuItems;
|
||||
return MenuManager.singleton;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取到当前高亮的菜单
|
||||
*/
|
||||
getSelectedKeys(): string[] {
|
||||
let keys: string[] = this.getMenuItems()
|
||||
.filter((menuItem: MenuItem, index: number) => {
|
||||
return menuItem.active;
|
||||
})
|
||||
.map((menuItem: MenuItem, index: number) => {
|
||||
return menuItem.url;
|
||||
});
|
||||
|
||||
return keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* 高亮某个菜单
|
||||
*/
|
||||
selectMenu(url: string) {
|
||||
this.getMenuItems().forEach((menuItem: MenuItem, index: number) => {
|
||||
menuItem.active = menuItem.url === url;
|
||||
});
|
||||
}
|
||||
|
||||
getMenuItems(): MenuItem[] {
|
||||
let user: User = Moon.getSingleton().user;
|
||||
let preference: Preference = Moon.getSingleton().preference;
|
||||
|
||||
let menuItems: MenuItem[] = [];
|
||||
|
||||
if (!preference.installed) {
|
||||
menuItems = [
|
||||
new MenuItem(
|
||||
Lang.t('layout.install'),
|
||||
'/install/index',
|
||||
<SettingOutlined />
|
||||
),
|
||||
];
|
||||
} else if (user.role === UserRole.GUEST) {
|
||||
menuItems = [
|
||||
new MenuItem(Lang.t('user.login'), '/user/login', <LoginOutlined />),
|
||||
];
|
||||
} else {
|
||||
menuItems.push(
|
||||
new MenuItem(
|
||||
Lang.t('layout.allFiles'),
|
||||
'/matter/list',
|
||||
<AppstoreOutlined />
|
||||
)
|
||||
);
|
||||
menuItems.push(
|
||||
new MenuItem(Lang.t('layout.space'), '/space', <CloudSyncOutlined />)
|
||||
);
|
||||
menuItems.push(
|
||||
new MenuItem(
|
||||
Lang.t('layout.myShare'),
|
||||
'/share/list',
|
||||
<ShareAltOutlined />
|
||||
)
|
||||
);
|
||||
menuItems.push(
|
||||
new MenuItem(Lang.t('layout.bin'), '/bin/list', <DeleteOutlined />)
|
||||
);
|
||||
|
||||
if (user.role === UserRole.ADMINISTRATOR) {
|
||||
menuItems.push(
|
||||
new MenuItem(
|
||||
Lang.t('layout.setting'),
|
||||
'/preference/index',
|
||||
<SettingOutlined />
|
||||
)
|
||||
);
|
||||
menuItems.push(
|
||||
new MenuItem(
|
||||
Lang.t('layout.dashboard'),
|
||||
'/dashboard/index',
|
||||
<DashboardOutlined />
|
||||
)
|
||||
);
|
||||
menuItems.push(
|
||||
new MenuItem(
|
||||
Lang.t('layout.users'),
|
||||
`${Sun.getSingleton().isMobile ? '/mobile' : ''}/user/list`,
|
||||
<TeamOutlined />
|
||||
)
|
||||
);
|
||||
}
|
||||
menuItems.push(
|
||||
new MenuItem(
|
||||
Lang.t('layout.logout'),
|
||||
'/user/logout',
|
||||
<PoweroffOutlined />
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return menuItems;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -307,6 +307,7 @@ let LangEn = {
|
||||
goToLogin: "Go To Login",
|
||||
roleGuest: "Guest",
|
||||
roleUser: "User",
|
||||
roleUserRoleSpace: "User Space Role",
|
||||
roleAdministrator: "Administrator",
|
||||
statusActive: "Ok",
|
||||
statusDisabled: "Disabled",
|
||||
|
||||
@@ -1,377 +1,387 @@
|
||||
let LangZh = {
|
||||
eyeblueTank: "蓝眼云盘",
|
||||
dashboard: {
|
||||
totalInvokeNum: '总PV',
|
||||
weekRate: '周环比',
|
||||
dayRate: '日环比',
|
||||
yesterdayInvoke: '昨日PV',
|
||||
totalUV: '总UV',
|
||||
yesterdayUV: '昨日UV',
|
||||
totalMatterNum: '总文件数',
|
||||
yesterdayMatterNum: '昨日文件数',
|
||||
totalFileSize: '文件总大小',
|
||||
yesterdayMatterSize: '昨日文件大小',
|
||||
recentDayInvokeUV: '最近{}日PV/UV',
|
||||
downloadMatterTop10: '文件下载量TOP10',
|
||||
activeIpTop10: '活跃IP TOP10',
|
||||
loading: '加载中…',
|
||||
date: '日期',
|
||||
num: '数量',
|
||||
warnHint: '温馨提示:本页面数据每日凌晨0点清洗一次。',
|
||||
reRun: '立即重跑',
|
||||
},
|
||||
install: {
|
||||
configMysql: "配置数据库",
|
||||
dbType: "数据库类型",
|
||||
port: "端口",
|
||||
schema: "库名",
|
||||
username: "用户名",
|
||||
password: "密码",
|
||||
charset: "编码",
|
||||
mysqlConnectionPass: "MySQL连接测试通过",
|
||||
testMysqlConnection: "测试MySQL连接",
|
||||
notice: "注意",
|
||||
sqliteNotice1: "sqlite是一个轻量的文件数据库,无需安装即可使用",
|
||||
mysqlNotice1: "如果数据库和蓝眼云盘安装在同一台服务器,Host可以直接填写 127.0.0.1。",
|
||||
mysqlNotice2: "数据库账户的权限要求要能够创建表,否则第二步\"创建表\"操作会出错",
|
||||
validateMysqlFirst: "请首先验证数据库连接",
|
||||
preStep: "上一步",
|
||||
nextStep: "下一步",
|
||||
createTable: "创建表",
|
||||
installed: "已安装",
|
||||
installedButMissing: "已安装,字段缺失",
|
||||
toBeInstalled: "待安装",
|
||||
allFields: "所有字段",
|
||||
missingFields: "缺失字段",
|
||||
tableNotice: "点击\"一键建表\"后会按照以下逻辑执行操作:",
|
||||
tableNotice1: "如果某表不存在,则直接创建表。",
|
||||
tableNotice2: "如果某表存在并且字段齐全,那么不会对该表做任何操作。",
|
||||
tableNotice3: "如果某表存在但是部分字段缺失,那么会在该表中增加缺失字段。",
|
||||
tableNotice4: "如果表中有多余的字段(多余字段即不是蓝眼云盘需要的字段),不会做删除处理,而会维持原样。",
|
||||
oneKeyCreate: "一键建表",
|
||||
createFinish: "建表完成",
|
||||
createTableSuccess: "建表成功",
|
||||
crateTableFirst: "请首先点击'一键建表'",
|
||||
setAdministrator: "设置管理员",
|
||||
detectAdministrator: "检测到系统中已经存在有以下管理员:",
|
||||
useOrCreateAdministrator: "你可以使用其中一位管理员的用户名和密码进行验证,或者创建一位新的管理员账户",
|
||||
validateAdministrator: "验证管理员账户",
|
||||
createAdministrator: "创建管理员账户",
|
||||
administratorUsername: "管理员用户名",
|
||||
administratorPassword: "管理员密码",
|
||||
administratorRePassword: "再次输入密码",
|
||||
usernameRule: "由于用户名将作为文件上传的目录,因此只允许字母数字以及\"_\"。",
|
||||
congratulationInstall: "恭喜,安装成功!",
|
||||
configAdminFirst: "请首先配置管理员信息!",
|
||||
createAdminSuccess: "创建管理员成功!",
|
||||
validateAdminSuccess: "验证管理员成功!",
|
||||
pressToHome: "点击下方按钮来完成安装过程并进入首页。",
|
||||
enterHome: "完成,并进入首页",
|
||||
finish: "完成",
|
||||
},
|
||||
layout: {
|
||||
allFiles: "全部文件",
|
||||
myShare: "我的分享",
|
||||
bin: "回收站",
|
||||
setting: "网站设置",
|
||||
dashboard: "监控统计",
|
||||
users: "用户管理",
|
||||
logout: "退出登录",
|
||||
about: "关于",
|
||||
install: "安装网站",
|
||||
dragMouseUp: "可以松手啦~"
|
||||
},
|
||||
matter: {
|
||||
file: "文件",
|
||||
directory: "文件夹",
|
||||
rename: "重命名",
|
||||
download: "下载",
|
||||
delete: "删除",
|
||||
hardDelete: "彻底删除",
|
||||
recovery: "恢复",
|
||||
more: "更多",
|
||||
share: "分享",
|
||||
close: "关闭",
|
||||
size: "大小",
|
||||
preview: "预览",
|
||||
move: "移动",
|
||||
moveTo: "移动到",
|
||||
upload: "上传",
|
||||
create: "新建",
|
||||
createTime: "创建时间",
|
||||
updateTime: "修改时间",
|
||||
deleteTime: "删除时间",
|
||||
root: "根目录",
|
||||
fillInPicLink: "请填写图片链接",
|
||||
rePick: "重新选择",
|
||||
chooseImage: "选择图片",
|
||||
uploadMode: "上传模式",
|
||||
fillMode: "填写模式",
|
||||
sizeExceedLimit: "文件大小超过了限制{}>{}",
|
||||
dropNotDirectory: "不可拖拽文件夹进行上传",
|
||||
setPublic: "设置为公有文件",
|
||||
setPrivate: "设置为私有文件",
|
||||
copyLink: "复制下载链接",
|
||||
enterName: "请输入名称",
|
||||
publicFileEveryoneCanVisit: "公有文件,任何人可以访问",
|
||||
fileDetail: "文件详情",
|
||||
expire: "有效期",
|
||||
copyLinkAndCode: "复制链接+提取码",
|
||||
uploaded: "已上传",
|
||||
uploadDir: '上传文件夹',
|
||||
uploadInfo: '上传信息',
|
||||
uploadErrorInfo: '部分文件上传失败,可导出csv文件查看',
|
||||
exportCSV: '导出上传错误详情',
|
||||
speed: "速度",
|
||||
fileInfo: "文件基本信息",
|
||||
fileName: "文件名",
|
||||
path: "路径",
|
||||
copyPath: "复制路径",
|
||||
publicOrPrivate: "文件公开性",
|
||||
privateInfo: "私有文件,只有自己或者授权的用户可以下载",
|
||||
publicInfo: "公有文件,任何人可以通过链接下载",
|
||||
downloadTimes: "下载次数",
|
||||
operations: "操作",
|
||||
oneTimeLink: "一次性链接",
|
||||
oneTimeLinkInfo: "使用一次性链接下载后链接立即失效,可以分享这个链接给朋友,点击复制",
|
||||
imageCache: "图片缓存",
|
||||
searchFile: "搜索文件",
|
||||
noContentYet: "该目录下暂无任何内容",
|
||||
allFiles: "全部文件",
|
||||
newDirectory: "新建文件夹",
|
||||
notChoose: "没有选择文件",
|
||||
exceed1000: "最多只能同时选取1000个文件",
|
||||
noImageCache: "暂无图片缓存数据",
|
||||
recycleBin: "回收站",
|
||||
deleted: "已删除",
|
||||
unCompatibleBrowser: "当前浏览器不支持,请切换浏览器尝试",
|
||||
canIUse: "查看当前浏览器是否支持,点击跳转",
|
||||
intoRecycleBin: "放入回收站",
|
||||
finishingTip: "后台文件整理中,请稍候..."
|
||||
},
|
||||
router: {
|
||||
allFiles: "全部文件",
|
||||
fileDetail: "文件详情",
|
||||
login: "登录",
|
||||
autoLogin: "自动登录",
|
||||
register: "注册",
|
||||
users: "用户列表",
|
||||
userDetail: "用户详情",
|
||||
changePassword: "修改密码",
|
||||
editUser: "编辑用户",
|
||||
createUser: "创建用户",
|
||||
shareDetail: "分享详情",
|
||||
myShare: "我的分享",
|
||||
dashboard: "监控统计",
|
||||
install: "安装网站",
|
||||
setting: "网站设置"
|
||||
},
|
||||
preference: {
|
||||
basic: "基本信息",
|
||||
preview: "预览引擎",
|
||||
scan: "扫描磁盘",
|
||||
websiteName: "网站名称",
|
||||
logo: "Logo",
|
||||
logoSquare: "logo请使用正方形图片,否则在显示时会裁剪成正方形",
|
||||
onlyAllowIco: "只允许上传.ico图标",
|
||||
copyright: "版权信息(支持html)",
|
||||
extraInfo: "备案信息(支持html)",
|
||||
zipMaxNumLimit: "zip下载数量限制",
|
||||
zipMaxSizeLimit: "zip下载大小限制(B)",
|
||||
current: "当前值",
|
||||
noLimit: "无限制",
|
||||
userDefaultSizeLimit: "用户默认总大小限制(B) ",
|
||||
matterBinDefaultSaveDay: "回收站默认保留天数",
|
||||
enterMatterBinDefaultSaveDay: "默认回收站默认保留天数必填!",
|
||||
docLink: "文档链接",
|
||||
tankDocLink: "https://tank-doc.eyeblue.cn/zh",
|
||||
allowRegister: "允许自主注册",
|
||||
systemCleanup: "重置系统",
|
||||
systemCleanupDescription: "重置系统将清空除管理员账号外所有数据",
|
||||
systemCleanupPrompt: "重置系统将清空除管理员账号外所有数据,事关重大,请输入登录密码",
|
||||
previewConfig: "文件预览配置",
|
||||
editPreference: "设置网站偏好",
|
||||
editPreviewEngine: "设置预览引擎",
|
||||
enterWebsiteName: "请输入网站名称!",
|
||||
enterZipMaxNumLimit: "zip最大数量限制必填!",
|
||||
enterZipMaxSizeLimit: "zip大小限制必填!",
|
||||
enterUserDefaultSizeLimit: "默认用户空间大小必填!",
|
||||
engine: "{}号预览引擎",
|
||||
noEngine: "暂无在线预览引擎配置",
|
||||
newEngine: "添加一个预览引擎",
|
||||
engineReg: "引擎格式",
|
||||
engineSuffix: "匹配后缀",
|
||||
enginePreview: "预览方式",
|
||||
defaultPreview: "默认引擎",
|
||||
previewEngine: "{}号引擎",
|
||||
defaultPreviewDesc: "默认预览引擎,不可移除",
|
||||
engineRegHelper: "此处填写模板语法:{url}表示文件路径,预览时会自动替换成对应的文件url;{b64url}表示base64机密后的路径,适用于kkfileview;",
|
||||
engineUsageHint: "对于一个文件的预览,使用第一个匹配到后缀名的引擎,没有配匹到则使用系统默认预览引擎",
|
||||
engineRegPlaceHolder: "例如:https://xxx.xxx.xxx?url={url}",
|
||||
engineSuffixPlaceHolder: '输入后缀,使用逗号分隔,不用带. 例如:doc,ppt,xls',
|
||||
previewCurrent: "本站预览",
|
||||
previewOpen: "新标签打开",
|
||||
editScan: "设置磁盘扫描",
|
||||
enableScan: "开启磁盘扫描",
|
||||
disabledScan: "暂未开启磁盘扫描",
|
||||
scanCron: "定时扫描",
|
||||
cron: "cron表达式",
|
||||
cronValidate: "cron表达式不能为空",
|
||||
scanScope: "扫描范围",
|
||||
scanUsers: "扫描用户",
|
||||
scanPerTenSeconds: "每十秒",
|
||||
scanPerThirtySeconds: "每三十秒",
|
||||
scanPerMinute: "每分钟",
|
||||
scanPerHour: "每小时",
|
||||
scanCustom: "自定义",
|
||||
chooseUsers: "模糊搜索用户",
|
||||
chooseUsersValidate: "请选择至少一个用户",
|
||||
scanLoading: "扫描中,请稍后...",
|
||||
matterBinDefaultTip: "设置0表示关闭回收站功能"
|
||||
},
|
||||
share: {
|
||||
shareDetail: "分享详情",
|
||||
shareTime: "分享时间",
|
||||
expireTime: "失效时间",
|
||||
noExpire: "永久有效",
|
||||
expired: "已过期",
|
||||
copyLinkAndCode: "复制链接+提取码",
|
||||
shareSuccess: "分享成功",
|
||||
sharer: "分享者",
|
||||
link: "链接",
|
||||
copyLink: "复制链接",
|
||||
code: "提取码",
|
||||
copyCode: "复制提取码",
|
||||
copySuccess: "复制成功",
|
||||
more: "更多",
|
||||
cancelShare: "取消分享",
|
||||
getLink: "获取链接",
|
||||
allFiles: "全部文件",
|
||||
noContent: "该目录下暂无任何内容",
|
||||
enterCode: "请输入提取码",
|
||||
getFiles: "提取文件",
|
||||
codeError: "提取码错误",
|
||||
cancelPrompt: "此操作将永久取消该分享, 是否继续?",
|
||||
hour: "1小时",
|
||||
day: "1天",
|
||||
week: "1周",
|
||||
month: "1个月",
|
||||
year: "1年",
|
||||
infinity: "永远有效",
|
||||
emptyHint: "暂无任何分享",
|
||||
},
|
||||
user: {
|
||||
redirecting: "正在转跳...",
|
||||
oldPassword: "旧密码",
|
||||
newPassword: "新密码",
|
||||
confirmNewPassword: "确认新密码",
|
||||
cannotBeNull: "不能为空!",
|
||||
passwordNotSame: "两次输入不一致!",
|
||||
role: "角色",
|
||||
singleFileSizeLimit: "单文件限制",
|
||||
totalFileSizeLimit: "空间限制",
|
||||
current: "当前值",
|
||||
noLimit: "无限制",
|
||||
totalFileSize: "已使用空间",
|
||||
status: "状态",
|
||||
lastLogin: "上次登录",
|
||||
lastLoginIp: "上次登录IP",
|
||||
lastLoginTime: "上次登录时间",
|
||||
resetPassword: "重置密码",
|
||||
transfiguration: "变身",
|
||||
changePassword: "修改密码",
|
||||
enterPassword: "输入密码",
|
||||
enterUsername: "请输入用户名",
|
||||
enterNewPassword: "请输入新密码",
|
||||
profile: "个人详情",
|
||||
avatar: "头像",
|
||||
username: "用户名",
|
||||
password: "密码",
|
||||
confirmPassword: "确认密码",
|
||||
disabled: "已禁用",
|
||||
disableUser: "禁用该用户",
|
||||
activeUser: "激活该用户",
|
||||
deleteUser: "删除该用户",
|
||||
deleteHint: "此操作将删除用户【{}】的所有记录,包括文件,分享,用户信息等内容,确定继续?",
|
||||
disable: "禁用",
|
||||
sync: "同步",
|
||||
active: "激活",
|
||||
welcomeLogin: "欢迎登录",
|
||||
logining: "正在登录...",
|
||||
login: "登录",
|
||||
loginSuccess: "登录成功",
|
||||
toToRegister: "立即注册",
|
||||
welcomeRegister: "欢迎注册",
|
||||
registering: "正在登录...",
|
||||
register: "注册",
|
||||
goToLogin: "前往登录",
|
||||
roleGuest: "游客",
|
||||
roleUser: "注册用户",
|
||||
roleAdministrator: "管理员",
|
||||
statusActive: "正常",
|
||||
statusDisabled: "禁用",
|
||||
webdavLink: "WebDAV 地址",
|
||||
docLink: "文档链接",
|
||||
createUser: "创建用户",
|
||||
editUser: "编辑用户",
|
||||
editSomebodyPassword: "修改{}的密码",
|
||||
transfigurationPromptText: "变身提示",
|
||||
transfigurationPrompt: "您将使用该用户的身份登录。请复制以下链接到其他浏览器访问,在当前浏览器访问会导致当前用户登录信息失效。",
|
||||
allUsers: "全部用户",
|
||||
partialUsers: "局部用户",
|
||||
searchUser: "搜索用户"
|
||||
},
|
||||
model: {
|
||||
usernameRule: "用户名只能包含字母,数字和\"_\"",
|
||||
passwordRule: "密码长度至少为6位",
|
||||
linkCodeText: "链接:{} 提取码:{}",
|
||||
copyLinkCodeSuccess: "复制链接提取码成功",
|
||||
eyeblueTank: '蓝眼云盘',
|
||||
dashboard: {
|
||||
totalInvokeNum: '总PV',
|
||||
weekRate: '周环比',
|
||||
dayRate: '日环比',
|
||||
yesterdayInvoke: '昨日PV',
|
||||
totalUV: '总UV',
|
||||
yesterdayUV: '昨日UV',
|
||||
totalMatterNum: '总文件数',
|
||||
yesterdayMatterNum: '昨日文件数',
|
||||
totalFileSize: '文件总大小',
|
||||
yesterdayMatterSize: '昨日文件大小',
|
||||
recentDayInvokeUV: '最近{}日PV/UV',
|
||||
downloadMatterTop10: '文件下载量TOP10',
|
||||
activeIpTop10: '活跃IP TOP10',
|
||||
loading: '加载中…',
|
||||
date: '日期',
|
||||
num: '数量',
|
||||
warnHint: '温馨提示:本页面数据每日凌晨0点清洗一次。',
|
||||
reRun: '立即重跑',
|
||||
},
|
||||
install: {
|
||||
configMysql: '配置数据库',
|
||||
dbType: '数据库类型',
|
||||
port: '端口',
|
||||
schema: '库名',
|
||||
username: '用户名',
|
||||
password: '密码',
|
||||
charset: '编码',
|
||||
mysqlConnectionPass: 'MySQL连接测试通过',
|
||||
testMysqlConnection: '测试MySQL连接',
|
||||
notice: '注意',
|
||||
sqliteNotice1: 'sqlite是一个轻量的文件数据库,无需安装即可使用',
|
||||
mysqlNotice1:
|
||||
'如果数据库和蓝眼云盘安装在同一台服务器,Host可以直接填写 127.0.0.1。',
|
||||
mysqlNotice2:
|
||||
'数据库账户的权限要求要能够创建表,否则第二步"创建表"操作会出错',
|
||||
validateMysqlFirst: '请首先验证数据库连接',
|
||||
preStep: '上一步',
|
||||
nextStep: '下一步',
|
||||
createTable: '创建表',
|
||||
installed: '已安装',
|
||||
installedButMissing: '已安装,字段缺失',
|
||||
toBeInstalled: '待安装',
|
||||
allFields: '所有字段',
|
||||
missingFields: '缺失字段',
|
||||
tableNotice: '点击"一键建表"后会按照以下逻辑执行操作:',
|
||||
tableNotice1: '如果某表不存在,则直接创建表。',
|
||||
tableNotice2: '如果某表存在并且字段齐全,那么不会对该表做任何操作。',
|
||||
tableNotice3: '如果某表存在但是部分字段缺失,那么会在该表中增加缺失字段。',
|
||||
tableNotice4:
|
||||
'如果表中有多余的字段(多余字段即不是蓝眼云盘需要的字段),不会做删除处理,而会维持原样。',
|
||||
oneKeyCreate: '一键建表',
|
||||
createFinish: '建表完成',
|
||||
createTableSuccess: '建表成功',
|
||||
crateTableFirst: "请首先点击'一键建表'",
|
||||
setAdministrator: '设置管理员',
|
||||
detectAdministrator: '检测到系统中已经存在有以下管理员:',
|
||||
useOrCreateAdministrator:
|
||||
'你可以使用其中一位管理员的用户名和密码进行验证,或者创建一位新的管理员账户',
|
||||
validateAdministrator: '验证管理员账户',
|
||||
createAdministrator: '创建管理员账户',
|
||||
administratorUsername: '管理员用户名',
|
||||
administratorPassword: '管理员密码',
|
||||
administratorRePassword: '再次输入密码',
|
||||
usernameRule: '由于用户名将作为文件上传的目录,因此只允许字母数字以及"_"。',
|
||||
congratulationInstall: '恭喜,安装成功!',
|
||||
configAdminFirst: '请首先配置管理员信息!',
|
||||
createAdminSuccess: '创建管理员成功!',
|
||||
validateAdminSuccess: '验证管理员成功!',
|
||||
pressToHome: '点击下方按钮来完成安装过程并进入首页。',
|
||||
enterHome: '完成,并进入首页',
|
||||
finish: '完成',
|
||||
},
|
||||
layout: {
|
||||
allFiles: '个人文件',
|
||||
myShare: '我的分享',
|
||||
bin: '回收站',
|
||||
setting: '网站设置',
|
||||
dashboard: '监控统计',
|
||||
users: '用户管理',
|
||||
logout: '退出登录',
|
||||
about: '关于',
|
||||
install: '安装网站',
|
||||
dragMouseUp: '可以松手啦~',
|
||||
},
|
||||
matter: {
|
||||
file: '文件',
|
||||
directory: '文件夹',
|
||||
rename: '重命名',
|
||||
download: '下载',
|
||||
delete: '删除',
|
||||
hardDelete: '彻底删除',
|
||||
recovery: '恢复',
|
||||
more: '更多',
|
||||
share: '分享',
|
||||
close: '关闭',
|
||||
size: '大小',
|
||||
preview: '预览',
|
||||
move: '移动',
|
||||
moveTo: '移动到',
|
||||
upload: '上传',
|
||||
create: '新建',
|
||||
createTime: '创建时间',
|
||||
updateTime: '修改时间',
|
||||
deleteTime: '删除时间',
|
||||
root: '根目录',
|
||||
fillInPicLink: '请填写图片链接',
|
||||
rePick: '重新选择',
|
||||
chooseImage: '选择图片',
|
||||
uploadMode: '上传模式',
|
||||
fillMode: '填写模式',
|
||||
sizeExceedLimit: '文件大小超过了限制{}>{}',
|
||||
dropNotDirectory: '不可拖拽文件夹进行上传',
|
||||
setPublic: '设置为公有文件',
|
||||
setPrivate: '设置为私有文件',
|
||||
copyLink: '复制下载链接',
|
||||
enterName: '请输入名称',
|
||||
publicFileEveryoneCanVisit: '公有文件,任何人可以访问',
|
||||
fileDetail: '文件详情',
|
||||
expire: '有效期',
|
||||
copyLinkAndCode: '复制链接+提取码',
|
||||
uploaded: '已上传',
|
||||
uploadDir: '上传文件夹',
|
||||
uploadInfo: '上传信息',
|
||||
uploadErrorInfo: '部分文件上传失败,可导出csv文件查看',
|
||||
exportCSV: '导出上传错误详情',
|
||||
speed: '速度',
|
||||
fileInfo: '文件基本信息',
|
||||
fileName: '文件名',
|
||||
path: '路径',
|
||||
copyPath: '复制路径',
|
||||
publicOrPrivate: '文件公开性',
|
||||
privateInfo: '私有文件,只有自己或者授权的用户可以下载',
|
||||
publicInfo: '公有文件,任何人可以通过链接下载',
|
||||
downloadTimes: '下载次数',
|
||||
operations: '操作',
|
||||
oneTimeLink: '一次性链接',
|
||||
oneTimeLinkInfo:
|
||||
'使用一次性链接下载后链接立即失效,可以分享这个链接给朋友,点击复制',
|
||||
imageCache: '图片缓存',
|
||||
searchFile: '搜索文件',
|
||||
noContentYet: '该目录下暂无任何内容',
|
||||
allFiles: '全部文件',
|
||||
newDirectory: '新建文件夹',
|
||||
notChoose: '没有选择文件',
|
||||
exceed1000: '最多只能同时选取1000个文件',
|
||||
noImageCache: '暂无图片缓存数据',
|
||||
recycleBin: '回收站',
|
||||
deleted: '已删除',
|
||||
unCompatibleBrowser: '当前浏览器不支持,请切换浏览器尝试',
|
||||
canIUse: '查看当前浏览器是否支持,点击跳转',
|
||||
intoRecycleBin: '放入回收站',
|
||||
finishingTip: '后台文件整理中,请稍候...',
|
||||
},
|
||||
router: {
|
||||
allFiles: '全部文件',
|
||||
fileDetail: '文件详情',
|
||||
login: '登录',
|
||||
autoLogin: '自动登录',
|
||||
register: '注册',
|
||||
users: '用户列表',
|
||||
userDetail: '用户详情',
|
||||
changePassword: '修改密码',
|
||||
editUser: '编辑用户',
|
||||
createUser: '创建用户',
|
||||
shareDetail: '分享详情',
|
||||
myShare: '我的分享',
|
||||
dashboard: '监控统计',
|
||||
install: '安装网站',
|
||||
setting: '网站设置',
|
||||
},
|
||||
preference: {
|
||||
basic: '基本信息',
|
||||
preview: '预览引擎',
|
||||
scan: '扫描磁盘',
|
||||
websiteName: '网站名称',
|
||||
logo: 'Logo',
|
||||
logoSquare: 'logo请使用正方形图片,否则在显示时会裁剪成正方形',
|
||||
onlyAllowIco: '只允许上传.ico图标',
|
||||
copyright: '版权信息(支持html)',
|
||||
extraInfo: '备案信息(支持html)',
|
||||
zipMaxNumLimit: 'zip下载数量限制',
|
||||
zipMaxSizeLimit: 'zip下载大小限制(B)',
|
||||
current: '当前值',
|
||||
noLimit: '无限制',
|
||||
userDefaultSizeLimit: '用户默认总大小限制(B) ',
|
||||
matterBinDefaultSaveDay: '回收站默认保留天数',
|
||||
enterMatterBinDefaultSaveDay: '默认回收站默认保留天数必填!',
|
||||
docLink: '文档链接',
|
||||
tankDocLink: 'https://tank-doc.eyeblue.cn/zh',
|
||||
allowRegister: '允许自主注册',
|
||||
systemCleanup: '重置系统',
|
||||
systemCleanupDescription: '重置系统将清空除管理员账号外所有数据',
|
||||
systemCleanupPrompt:
|
||||
'重置系统将清空除管理员账号外所有数据,事关重大,请输入登录密码',
|
||||
previewConfig: '文件预览配置',
|
||||
editPreference: '设置网站偏好',
|
||||
editPreviewEngine: '设置预览引擎',
|
||||
enterWebsiteName: '请输入网站名称!',
|
||||
enterZipMaxNumLimit: 'zip最大数量限制必填!',
|
||||
enterZipMaxSizeLimit: 'zip大小限制必填!',
|
||||
enterUserDefaultSizeLimit: '默认用户空间大小必填!',
|
||||
engine: '{}号预览引擎',
|
||||
noEngine: '暂无在线预览引擎配置',
|
||||
newEngine: '添加一个预览引擎',
|
||||
engineReg: '引擎格式',
|
||||
engineSuffix: '匹配后缀',
|
||||
enginePreview: '预览方式',
|
||||
defaultPreview: '默认引擎',
|
||||
previewEngine: '{}号引擎',
|
||||
defaultPreviewDesc: '默认预览引擎,不可移除',
|
||||
engineRegHelper:
|
||||
'此处填写模板语法:{url}表示文件路径,预览时会自动替换成对应的文件url;{b64url}表示base64机密后的路径,适用于kkfileview;',
|
||||
engineUsageHint:
|
||||
'对于一个文件的预览,使用第一个匹配到后缀名的引擎,没有配匹到则使用系统默认预览引擎',
|
||||
engineRegPlaceHolder: '例如:https://xxx.xxx.xxx?url={url}',
|
||||
engineSuffixPlaceHolder:
|
||||
'输入后缀,使用逗号分隔,不用带. 例如:doc,ppt,xls',
|
||||
previewCurrent: '本站预览',
|
||||
previewOpen: '新标签打开',
|
||||
editScan: '设置磁盘扫描',
|
||||
enableScan: '开启磁盘扫描',
|
||||
disabledScan: '暂未开启磁盘扫描',
|
||||
scanCron: '定时扫描',
|
||||
cron: 'cron表达式',
|
||||
cronValidate: 'cron表达式不能为空',
|
||||
scanScope: '扫描范围',
|
||||
scanUsers: '扫描用户',
|
||||
scanPerTenSeconds: '每十秒',
|
||||
scanPerThirtySeconds: '每三十秒',
|
||||
scanPerMinute: '每分钟',
|
||||
scanPerHour: '每小时',
|
||||
scanCustom: '自定义',
|
||||
chooseUsers: '模糊搜索用户',
|
||||
chooseUsersValidate: '请选择至少一个用户',
|
||||
scanLoading: '扫描中,请稍后...',
|
||||
matterBinDefaultTip: '设置0表示关闭回收站功能',
|
||||
},
|
||||
share: {
|
||||
shareDetail: '分享详情',
|
||||
shareTime: '分享时间',
|
||||
expireTime: '失效时间',
|
||||
noExpire: '永久有效',
|
||||
expired: '已过期',
|
||||
copyLinkAndCode: '复制链接+提取码',
|
||||
shareSuccess: '分享成功',
|
||||
sharer: '分享者',
|
||||
link: '链接',
|
||||
copyLink: '复制链接',
|
||||
code: '提取码',
|
||||
copyCode: '复制提取码',
|
||||
copySuccess: '复制成功',
|
||||
more: '更多',
|
||||
cancelShare: '取消分享',
|
||||
getLink: '获取链接',
|
||||
allFiles: '全部文件',
|
||||
noContent: '该目录下暂无任何内容',
|
||||
enterCode: '请输入提取码',
|
||||
getFiles: '提取文件',
|
||||
codeError: '提取码错误',
|
||||
cancelPrompt: '此操作将永久取消该分享, 是否继续?',
|
||||
hour: '1小时',
|
||||
day: '1天',
|
||||
week: '1周',
|
||||
month: '1个月',
|
||||
year: '1年',
|
||||
infinity: '永远有效',
|
||||
emptyHint: '暂无任何分享',
|
||||
},
|
||||
user: {
|
||||
redirecting: '正在转跳...',
|
||||
oldPassword: '旧密码',
|
||||
newPassword: '新密码',
|
||||
confirmNewPassword: '确认新密码',
|
||||
cannotBeNull: '不能为空!',
|
||||
passwordNotSame: '两次输入不一致!',
|
||||
role: '角色',
|
||||
singleFileSizeLimit: '单文件限制',
|
||||
totalFileSizeLimit: '空间限制',
|
||||
current: '当前值',
|
||||
noLimit: '无限制',
|
||||
totalFileSize: '已使用空间',
|
||||
status: '状态',
|
||||
lastLogin: '上次登录',
|
||||
lastLoginIp: '上次登录IP',
|
||||
lastLoginTime: '上次登录时间',
|
||||
resetPassword: '重置密码',
|
||||
transfiguration: '变身',
|
||||
changePassword: '修改密码',
|
||||
enterPassword: '输入密码',
|
||||
enterUsername: '请输入用户名',
|
||||
enterNewPassword: '请输入新密码',
|
||||
profile: '个人详情',
|
||||
avatar: '头像',
|
||||
username: '用户名',
|
||||
password: '密码',
|
||||
confirmPassword: '确认密码',
|
||||
disabled: '已禁用',
|
||||
disableUser: '禁用该用户',
|
||||
activeUser: '激活该用户',
|
||||
deleteUser: '删除该用户',
|
||||
deleteHint:
|
||||
'此操作将删除用户【{}】的所有记录,包括文件,分享,用户信息等内容,确定继续?',
|
||||
disable: '禁用',
|
||||
sync: '同步',
|
||||
active: '激活',
|
||||
welcomeLogin: '欢迎登录',
|
||||
logining: '正在登录...',
|
||||
login: '登录',
|
||||
loginSuccess: '登录成功',
|
||||
toToRegister: '立即注册',
|
||||
welcomeRegister: '欢迎注册',
|
||||
registering: '正在登录...',
|
||||
register: '注册',
|
||||
goToLogin: '前往登录',
|
||||
roleGuest: '游客',
|
||||
roleUser: '注册用户',
|
||||
roleUserRoleSpace: '用户空间角色',
|
||||
roleAdministrator: '管理员',
|
||||
statusActive: '正常',
|
||||
statusDisabled: '禁用',
|
||||
webdavLink: 'WebDAV 地址',
|
||||
docLink: '文档链接',
|
||||
createUser: '创建用户',
|
||||
editUser: '编辑用户',
|
||||
editSomebodyPassword: '修改{}的密码',
|
||||
transfigurationPromptText: '变身提示',
|
||||
transfigurationPrompt:
|
||||
'您将使用该用户的身份登录。请复制以下链接到其他浏览器访问,在当前浏览器访问会导致当前用户登录信息失效。',
|
||||
allUsers: '全部用户',
|
||||
partialUsers: '局部用户',
|
||||
searchUser: '搜索用户',
|
||||
},
|
||||
model: {
|
||||
usernameRule: '用户名只能包含字母,数字和"_"',
|
||||
passwordRule: '密码长度至少为6位',
|
||||
linkCodeText: '链接:{} 提取码:{}',
|
||||
copyLinkCodeSuccess: '复制链接提取码成功',
|
||||
},
|
||||
plugin: {
|
||||
cannotPreview: '无法预览',
|
||||
emptyHintDefault: '没有符合条件的项目',
|
||||
everyPage: '每页',
|
||||
items: '条',
|
||||
total: '共',
|
||||
clickRefresh: '点击刷新',
|
||||
},
|
||||
loading: '加载中',
|
||||
selectAll: '全选',
|
||||
edit: '修改',
|
||||
createTime: '创建时间',
|
||||
download: '下载',
|
||||
close: '关闭',
|
||||
required: '必填',
|
||||
cancel: '取消',
|
||||
delete: '删除',
|
||||
deleteDirectly: '直接删除',
|
||||
actionCanNotRevertConfirm: '此操作不可撤回, 是否继续?',
|
||||
actionDeleteConfirm: '确定删除吗?',
|
||||
actionRecoveryConfirm: '确定恢复吗?',
|
||||
prompt: '提示',
|
||||
confirm: '确定',
|
||||
copy: '复制',
|
||||
copySuccess: '复制成功!',
|
||||
copyError: '复制失败!',
|
||||
showMore: '显示更多',
|
||||
username: '用户名',
|
||||
password: '密码',
|
||||
submit: '提交',
|
||||
save: '保存',
|
||||
create: '创建',
|
||||
finish: '完成',
|
||||
operationSuccess: '操作成功',
|
||||
operation: '操作',
|
||||
notFound: '404 页面找不到',
|
||||
login: '登录',
|
||||
logout: '退出',
|
||||
yes: '是',
|
||||
no: '否',
|
||||
all: '所有',
|
||||
refresh: '刷新',
|
||||
inputRequired: '该项必填',
|
||||
};
|
||||
|
||||
},
|
||||
plugin: {
|
||||
cannotPreview: "无法预览",
|
||||
emptyHintDefault: "没有符合条件的项目",
|
||||
everyPage: "每页",
|
||||
items: "条",
|
||||
total: "共",
|
||||
clickRefresh: "点击刷新",
|
||||
},
|
||||
loading: "加载中",
|
||||
selectAll: "全选",
|
||||
edit: "修改",
|
||||
createTime: "创建时间",
|
||||
download: "下载",
|
||||
close: "关闭",
|
||||
required: "必填",
|
||||
cancel: "取消",
|
||||
delete: "删除",
|
||||
deleteDirectly: "直接删除",
|
||||
actionCanNotRevertConfirm: "此操作不可撤回, 是否继续?",
|
||||
actionDeleteConfirm: "确定删除吗?",
|
||||
actionRecoveryConfirm: "确定恢复吗?",
|
||||
prompt: "提示",
|
||||
confirm: "确定",
|
||||
copy: "复制",
|
||||
copySuccess: "复制成功!",
|
||||
copyError: "复制失败!",
|
||||
showMore: "显示更多",
|
||||
username: "用户名",
|
||||
password: "密码",
|
||||
submit: "提交",
|
||||
save: "保存",
|
||||
create: "创建",
|
||||
finish: "完成",
|
||||
operationSuccess: "操作成功",
|
||||
operation: "操作",
|
||||
notFound: "404 页面找不到",
|
||||
login: "登录",
|
||||
logout: "退出",
|
||||
yes: "是",
|
||||
no: "否",
|
||||
all: "所有",
|
||||
refresh: "刷新",
|
||||
inputRequired: "该项必填",
|
||||
|
||||
}
|
||||
|
||||
export default LangZh
|
||||
export default LangZh;
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import BaseEntity from "../base/BaseEntity";
|
||||
import User from "../user/User";
|
||||
|
||||
export default class Space extends BaseEntity {
|
||||
|
||||
userUuid: string | null = null
|
||||
user: User | null = null
|
||||
|
||||
constructor(reactComponent?: React.Component) {
|
||||
|
||||
super(reactComponent);
|
||||
|
||||
}
|
||||
|
||||
assign(obj: any) {
|
||||
super.assign(obj);
|
||||
this.assignEntity("user", User)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import BaseEntity from "../../base/BaseEntity";
|
||||
import User from "../../user/User";
|
||||
import {SpaceMemberRole} from "./SpaceMemberRole";
|
||||
|
||||
export default class Space extends BaseEntity {
|
||||
spaceUuid: string | null = null
|
||||
userUuid: string | null = null
|
||||
role: SpaceMemberRole | null = null
|
||||
user: User | null = null
|
||||
|
||||
constructor(reactComponent?: React.Component) {
|
||||
|
||||
super(reactComponent);
|
||||
|
||||
}
|
||||
|
||||
assign(obj: any) {
|
||||
super.assign(obj);
|
||||
this.assignEntity("user", User)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
import SelectionOption from "../../base/option/SelectionOption";
|
||||
import Lang from "../../global/Lang";
|
||||
|
||||
enum SpaceMemberRole {
|
||||
READ_ONLY = 'READ_ONLY',
|
||||
READ_WRITE = 'READ_WRITE',
|
||||
ADMIN='ADMIN'
|
||||
}
|
||||
|
||||
const SpaceMemberRoles:SpaceMemberRole[] = Object.keys(SpaceMemberRole).map(k => k as SpaceMemberRole);
|
||||
|
||||
const SpaceMemberRoleMap: Record<SpaceMemberRole, SelectionOption> = {
|
||||
[SpaceMemberRole.READ_ONLY]: {
|
||||
name: Lang.t("spaceMember.readOnly"),
|
||||
value: SpaceMemberRole.READ_ONLY
|
||||
},
|
||||
[SpaceMemberRole.READ_WRITE]: {
|
||||
name: Lang.t("spaceMember.readWrite"),
|
||||
value: SpaceMemberRole.READ_WRITE
|
||||
},
|
||||
[SpaceMemberRole.ADMIN]: {
|
||||
name: Lang.t("spaceMember.admin"),
|
||||
value: SpaceMemberRole.ADMIN
|
||||
}
|
||||
}
|
||||
|
||||
const SpaceMemberRoleList: SelectionOption[] = [];
|
||||
SpaceMemberRoles.forEach((type: SpaceMemberRole, index: number) => {
|
||||
SpaceMemberRoleList.push(SpaceMemberRoleMap[type]);
|
||||
})
|
||||
|
||||
export {SpaceMemberRole, SpaceMemberRoles, SpaceMemberRoleMap, SpaceMemberRoleList};
|
||||
@@ -6,6 +6,7 @@ import Lang from "../global/Lang";
|
||||
enum UserRole {
|
||||
GUEST = 'GUEST',
|
||||
USER = 'USER',
|
||||
SPACE = "SPACE",
|
||||
ADMINISTRATOR = 'ADMINISTRATOR',
|
||||
}
|
||||
|
||||
@@ -22,6 +23,11 @@ let UserRoleMap: { [key in keyof typeof UserRole]: ColorSelectionOption } = {
|
||||
'value': 'USER',
|
||||
'color': Color.PRIMARY,
|
||||
},
|
||||
SPACE: {
|
||||
'name': Lang.t("user.roleUserRoleSpace"),
|
||||
'value': UserRole.SPACE,
|
||||
'color': Color.SUCCESS,
|
||||
},
|
||||
ADMINISTRATOR: {
|
||||
'name': Lang.t("user.roleAdministrator"),
|
||||
'value': 'ADMINISTRATOR',
|
||||
|
||||
+172
-166
@@ -1,192 +1,198 @@
|
||||
import React from "react";
|
||||
import {Redirect, Route, RouteComponentProps, withRouter,} from "react-router-dom";
|
||||
import React from 'react';
|
||||
import {
|
||||
Redirect,
|
||||
Route,
|
||||
RouteComponentProps,
|
||||
withRouter,
|
||||
} from 'react-router-dom';
|
||||
|
||||
import "./Frame.less";
|
||||
import TankComponent from "../common/component/TankComponent";
|
||||
import UserLogin from "./user/Login";
|
||||
import UserRegister from "./user/Register";
|
||||
import './Frame.less';
|
||||
import TankComponent from '../common/component/TankComponent';
|
||||
import UserLogin from './user/Login';
|
||||
import UserRegister from './user/Register';
|
||||
|
||||
import UserList from "./user/List";
|
||||
import MobileUserList from "./user/MobileList";
|
||||
import UserDetail from "./user/Detail";
|
||||
import UserEdit from "./user/Edit";
|
||||
import UserAuthentication from "./user/Authentication";
|
||||
import UserList from './user/List';
|
||||
import MobileUserList from './user/MobileList';
|
||||
import UserDetail from './user/Detail';
|
||||
import UserEdit from './user/Edit';
|
||||
import UserAuthentication from './user/Authentication';
|
||||
|
||||
import PreferenceIndex from "./preference/Index";
|
||||
import PreferenceEdit from "./preference/Edit";
|
||||
import PreferenceEngineEdit from "./preference/PreviewEngineEdit";
|
||||
import PreferenceScanEdit from "./preference/ScanEdit";
|
||||
import PreferenceIndex from './preference/Index';
|
||||
import PreferenceEdit from './preference/Edit';
|
||||
import PreferenceEngineEdit from './preference/PreviewEngineEdit';
|
||||
import PreferenceScanEdit from './preference/ScanEdit';
|
||||
|
||||
import DashboardIndex from "./dashboard/Index";
|
||||
import InstallIndex from "./install/Index";
|
||||
import DashboardIndex from './dashboard/Index';
|
||||
import InstallIndex from './install/Index';
|
||||
|
||||
import MatterList from "./matter/List";
|
||||
import MatterDetail from "./matter/Detail";
|
||||
import MatterList from './matter/List';
|
||||
import MatterDetail from './matter/Detail';
|
||||
|
||||
import BinList from "./bin/List";
|
||||
import BinList from './bin/List';
|
||||
|
||||
import ShareList from "./share/List";
|
||||
import ShareDetail from "./share/Detail";
|
||||
import User from "../common/model/user/User";
|
||||
import Moon from "../common/model/global/Moon";
|
||||
import Sun from "../common/model/global/Sun";
|
||||
import FrameLoading from "./widget/FrameLoading";
|
||||
import Preference from "../common/model/preference/Preference";
|
||||
import {WebResultCode} from "../common/model/base/WebResultCode";
|
||||
import MessageBoxUtil from "../common/util/MessageBoxUtil";
|
||||
import BottomLayout from "./layout/BottomLayout";
|
||||
import SideLayout from "./layout/SideLayout";
|
||||
import TopLayout from "./layout/TopLayout";
|
||||
import ContentLayout from "./layout/ContentLayout";
|
||||
import ShareList from './share/List';
|
||||
import ShareDetail from './share/Detail';
|
||||
import User from '../common/model/user/User';
|
||||
import Moon from '../common/model/global/Moon';
|
||||
import Sun from '../common/model/global/Sun';
|
||||
import FrameLoading from './widget/FrameLoading';
|
||||
import Preference from '../common/model/preference/Preference';
|
||||
import { WebResultCode } from '../common/model/base/WebResultCode';
|
||||
import MessageBoxUtil from '../common/util/MessageBoxUtil';
|
||||
import BottomLayout from './layout/BottomLayout';
|
||||
import SideLayout from './layout/SideLayout';
|
||||
import TopLayout from './layout/TopLayout';
|
||||
import ContentLayout from './layout/ContentLayout';
|
||||
|
||||
interface IProps extends RouteComponentProps<{}> {
|
||||
}
|
||||
import SpaceList from './space/List';
|
||||
|
||||
interface IState {
|
||||
}
|
||||
interface IProps extends RouteComponentProps<{}> {}
|
||||
|
||||
interface IState {}
|
||||
|
||||
class RawFrame extends TankComponent<IProps, IState> {
|
||||
user: User = Moon.getSingleton().user;
|
||||
user: User = Moon.getSingleton().user;
|
||||
|
||||
preference: Preference = Moon.getSingleton().preference;
|
||||
preference: Preference = Moon.getSingleton().preference;
|
||||
|
||||
//是否已经完成初始化
|
||||
initialized: boolean = false;
|
||||
//是否已经完成初始化
|
||||
initialized: boolean = false;
|
||||
|
||||
constructor(props: IProps) {
|
||||
super(props);
|
||||
}
|
||||
constructor(props: IProps) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
//装载全局的路由
|
||||
Sun.getSingleton().reactRouter = this.props.history;
|
||||
//装在全局Frame
|
||||
Sun.getSingleton().frameComponent = this;
|
||||
componentDidMount() {
|
||||
//装载全局的路由
|
||||
Sun.getSingleton().reactRouter = this.props.history;
|
||||
//装在全局Frame
|
||||
Sun.getSingleton().frameComponent = this;
|
||||
|
||||
this.initialize();
|
||||
}
|
||||
this.initialize();
|
||||
}
|
||||
|
||||
//获取当前登录者的信息
|
||||
initialize() {
|
||||
let that = this;
|
||||
let pathname: string = that.props.location.pathname;
|
||||
//获取当前登录者的信息
|
||||
initialize() {
|
||||
let that = this;
|
||||
let pathname: string = that.props.location.pathname;
|
||||
|
||||
this.preference.httpFetch(
|
||||
function () {
|
||||
// 白名单,不要求登录
|
||||
let whitePaths = [
|
||||
"/user/login",
|
||||
"/user/register",
|
||||
"/user/authentication",
|
||||
];
|
||||
// 尝试登录名单,登录失败不做处理
|
||||
let tryLoginPaths = [
|
||||
"/share/detail",
|
||||
];
|
||||
this.preference.httpFetch(
|
||||
function () {
|
||||
// 白名单,不要求登录
|
||||
let whitePaths = [
|
||||
'/user/login',
|
||||
'/user/register',
|
||||
'/user/authentication',
|
||||
];
|
||||
// 尝试登录名单,登录失败不做处理
|
||||
let tryLoginPaths = ['/share/detail'];
|
||||
|
||||
if (whitePaths.findIndex((path) => pathname.startsWith(path)) >= 0) {
|
||||
that.initialized = true;
|
||||
that.updateUI();
|
||||
} else if (tryLoginPaths.findIndex((path) => pathname.startsWith(path)) >= 0) {
|
||||
that.user.httpInfo(false, function () {
|
||||
that.initialized = true;
|
||||
that.updateUI();
|
||||
});
|
||||
} else {
|
||||
that.user.httpInfo(true, function () {
|
||||
that.initialized = true;
|
||||
that.updateUI();
|
||||
});
|
||||
}
|
||||
},
|
||||
function (errMessage: string, response: any) {
|
||||
that.initialized = true;
|
||||
that.updateUI();
|
||||
if (
|
||||
response &&
|
||||
response.data &&
|
||||
response.data["code"] === WebResultCode.NOT_INSTALLED
|
||||
) {
|
||||
MessageBoxUtil.warning("网站尚未安装,即将引导进入安装页面!");
|
||||
that.preference.installed = false;
|
||||
Sun.navigateTo("/install/index");
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
let content: React.ReactNode;
|
||||
|
||||
if (this.initialized) {
|
||||
content = (
|
||||
<div className="pages-frame-inner">
|
||||
<SideLayout/>
|
||||
|
||||
<TopLayout/>
|
||||
|
||||
<ContentLayout>
|
||||
{this.preference.installed ? (
|
||||
<div className="pages-content">
|
||||
<Route
|
||||
exact
|
||||
path="/"
|
||||
render={() => <Redirect to="/matter/list"/>}
|
||||
/>
|
||||
<Route path="/user/login" component={UserLogin}/>
|
||||
<Route path="/user/register" component={UserRegister}/>
|
||||
<Route path="/user/detail/:uuid" component={UserDetail}/>
|
||||
<Route path="/user/list" component={UserList}/>
|
||||
<Route path="/mobile/user/list" component={MobileUserList}/>
|
||||
<Route path="/user/create" component={UserEdit}/>
|
||||
<Route path="/user/edit/:uuid" component={UserEdit}/>
|
||||
<Route
|
||||
path="/user/authentication/:authentication"
|
||||
component={UserAuthentication}
|
||||
/>
|
||||
|
||||
<Route path="/dashboard/index" component={DashboardIndex}/>
|
||||
|
||||
<Route path="/preference/index" component={PreferenceIndex}/>
|
||||
<Route path="/preference/edit" component={PreferenceEdit}/>
|
||||
<Route
|
||||
path="/preference/engine/edit"
|
||||
component={PreferenceEngineEdit}
|
||||
/>
|
||||
<Route
|
||||
path="/preference/scan/edit"
|
||||
component={PreferenceScanEdit}
|
||||
/>
|
||||
|
||||
<Route path="/matter/detail/:uuid" component={MatterDetail}/>
|
||||
<Route
|
||||
exact
|
||||
path="/matter"
|
||||
render={() => <Redirect to="/matter/list"/>}
|
||||
/>
|
||||
<Route path="/matter/list" component={MatterList}/>
|
||||
|
||||
<Route path="/share/list" component={ShareList}/>
|
||||
<Route path="/share/detail/:uuid" component={ShareDetail}/>
|
||||
|
||||
<Route path="/bin/list" component={BinList}/>
|
||||
</div>
|
||||
) : (
|
||||
<div className="pages-content">
|
||||
<Route path="/install/index" component={InstallIndex}/>
|
||||
</div>
|
||||
)}
|
||||
</ContentLayout>
|
||||
|
||||
<BottomLayout/>
|
||||
</div>
|
||||
);
|
||||
if (whitePaths.findIndex((path) => pathname.startsWith(path)) >= 0) {
|
||||
that.initialized = true;
|
||||
that.updateUI();
|
||||
} else if (
|
||||
tryLoginPaths.findIndex((path) => pathname.startsWith(path)) >= 0
|
||||
) {
|
||||
that.user.httpInfo(false, function () {
|
||||
that.initialized = true;
|
||||
that.updateUI();
|
||||
});
|
||||
} else {
|
||||
content = <FrameLoading/>;
|
||||
that.user.httpInfo(true, function () {
|
||||
that.initialized = true;
|
||||
that.updateUI();
|
||||
});
|
||||
}
|
||||
},
|
||||
function (errMessage: string, response: any) {
|
||||
that.initialized = true;
|
||||
that.updateUI();
|
||||
if (
|
||||
response &&
|
||||
response.data &&
|
||||
response.data['code'] === WebResultCode.NOT_INSTALLED
|
||||
) {
|
||||
MessageBoxUtil.warning('网站尚未安装,即将引导进入安装页面!');
|
||||
that.preference.installed = false;
|
||||
Sun.navigateTo('/install/index');
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return <div className="pages-frame">{content}</div>;
|
||||
render() {
|
||||
let content: React.ReactNode;
|
||||
|
||||
if (this.initialized) {
|
||||
content = (
|
||||
<div className="pages-frame-inner">
|
||||
<SideLayout />
|
||||
|
||||
<TopLayout />
|
||||
|
||||
<ContentLayout>
|
||||
{this.preference.installed ? (
|
||||
<div className="pages-content">
|
||||
<Route
|
||||
exact
|
||||
path="/"
|
||||
render={() => <Redirect to="/matter/list" />}
|
||||
/>
|
||||
<Route path="/user/login" component={UserLogin} />
|
||||
<Route path="/user/register" component={UserRegister} />
|
||||
<Route path="/user/detail/:uuid" component={UserDetail} />
|
||||
<Route path="/user/list" component={UserList} />
|
||||
<Route path="/mobile/user/list" component={MobileUserList} />
|
||||
<Route path="/user/create" component={UserEdit} />
|
||||
<Route path="/user/edit/:uuid" component={UserEdit} />
|
||||
<Route
|
||||
path="/user/authentication/:authentication"
|
||||
component={UserAuthentication}
|
||||
/>
|
||||
|
||||
<Route path="/dashboard/index" component={DashboardIndex} />
|
||||
|
||||
<Route path="/preference/index" component={PreferenceIndex} />
|
||||
<Route path="/preference/edit" component={PreferenceEdit} />
|
||||
<Route
|
||||
path="/preference/engine/edit"
|
||||
component={PreferenceEngineEdit}
|
||||
/>
|
||||
<Route
|
||||
path="/preference/scan/edit"
|
||||
component={PreferenceScanEdit}
|
||||
/>
|
||||
|
||||
<Route path="/matter/detail/:uuid" component={MatterDetail} />
|
||||
<Route
|
||||
exact
|
||||
path="/matter"
|
||||
render={() => <Redirect to="/matter/list" />}
|
||||
/>
|
||||
<Route path="/matter/list" component={MatterList} />
|
||||
|
||||
<Route path="/share/list" component={ShareList} />
|
||||
<Route path="/share/detail/:uuid" component={ShareDetail} />
|
||||
|
||||
<Route path="/bin/list" component={BinList} />
|
||||
<Route path="/space" component={SpaceList} />
|
||||
</div>
|
||||
) : (
|
||||
<div className="pages-content">
|
||||
<Route path="/install/index" component={InstallIndex} />
|
||||
</div>
|
||||
)}
|
||||
</ContentLayout>
|
||||
|
||||
<BottomLayout />
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
content = <FrameLoading />;
|
||||
}
|
||||
|
||||
return <div className="pages-frame">{content}</div>;
|
||||
}
|
||||
}
|
||||
|
||||
const Frame = withRouter<IProps, React.ComponentType<IProps>>(RawFrame);
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import React from 'react';
|
||||
|
||||
const List = () => {
|
||||
return (
|
||||
<div>
|
||||
<h1>Space List</h1>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default List;
|
||||
@@ -2348,7 +2348,7 @@ ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0:
|
||||
require-from-string "^2.0.2"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
ansi-escapes@^4.2.1, ansi-escapes@^4.3.1:
|
||||
ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1:
|
||||
version "4.3.2"
|
||||
resolved "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
|
||||
integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
|
||||
@@ -2389,6 +2389,11 @@ ansi-styles@^5.0.0:
|
||||
resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
|
||||
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
|
||||
|
||||
ansi-styles@^6.0.0:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
|
||||
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
|
||||
|
||||
antd@4.19.2:
|
||||
version "4.19.2"
|
||||
resolved "https://registry.npmmirror.com/antd/-/antd-4.19.2.tgz#5438478aedf61bf670784611cba077387ff0f1b3"
|
||||
@@ -2535,6 +2540,11 @@ ast-types-flow@^0.0.7:
|
||||
resolved "https://registry.npmmirror.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
|
||||
integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
|
||||
|
||||
astral-regex@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
||||
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
||||
|
||||
async-validator@^4.0.2:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.0.7.tgz#034a0fd2103a6b2ebf010da75183bec299247afe"
|
||||
@@ -2810,7 +2820,7 @@ brace-expansion@^1.1.7:
|
||||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
||||
braces@^3.0.1, braces@~3.0.2:
|
||||
braces@^3.0.1, braces@^3.0.2, braces@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
||||
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||
@@ -2921,6 +2931,11 @@ case-sensitive-paths-webpack-plugin@^2.4.0:
|
||||
resolved "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
|
||||
integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==
|
||||
|
||||
chalk@5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.npmmirror.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3"
|
||||
integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==
|
||||
|
||||
chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||
@@ -3005,6 +3020,29 @@ clean-stack@^2.0.0:
|
||||
resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
|
||||
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
|
||||
|
||||
cli-cursor@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
|
||||
integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
|
||||
dependencies:
|
||||
restore-cursor "^3.1.0"
|
||||
|
||||
cli-truncate@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
|
||||
integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
|
||||
dependencies:
|
||||
slice-ansi "^3.0.0"
|
||||
string-width "^4.2.0"
|
||||
|
||||
cli-truncate@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389"
|
||||
integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
|
||||
dependencies:
|
||||
slice-ansi "^5.0.0"
|
||||
string-width "^5.0.0"
|
||||
|
||||
cliui@^7.0.2:
|
||||
version "7.0.4"
|
||||
resolved "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
|
||||
@@ -3067,6 +3105,11 @@ colorette@^2.0.10:
|
||||
resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
|
||||
integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
|
||||
|
||||
colorette@^2.0.19:
|
||||
version "2.0.20"
|
||||
resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
|
||||
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
|
||||
|
||||
combined-stream@^1.0.8:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
||||
@@ -3079,6 +3122,11 @@ comma-separated-values@^3.6.4:
|
||||
resolved "https://registry.npmmirror.com/comma-separated-values/-/comma-separated-values-3.6.4.tgz#c309ec7024f74b7ae19223372054242617e35bd2"
|
||||
integrity sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ==
|
||||
|
||||
commander@^10.0.0:
|
||||
version "10.0.1"
|
||||
resolved "https://registry.npmmirror.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
|
||||
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
|
||||
|
||||
commander@^2.20.0:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
@@ -3495,7 +3543,7 @@ debug@2.6.9, debug@^2.6.0, debug@^2.6.9:
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
|
||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
@@ -3782,6 +3830,11 @@ duplexer@^0.1.2:
|
||||
resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
|
||||
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
|
||||
|
||||
eastasianwidth@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
|
||||
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
|
||||
|
||||
echarts-for-react@2.0.16:
|
||||
version "2.0.16"
|
||||
resolved "https://registry.npmmirror.com/echarts-for-react/-/echarts-for-react-2.0.16.tgz#8134a53dff90882c1e6a95c45ceab21e00f6c9f5"
|
||||
@@ -4233,6 +4286,21 @@ execa@^5.0.0:
|
||||
signal-exit "^3.0.3"
|
||||
strip-final-newline "^2.0.0"
|
||||
|
||||
execa@^7.0.0:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.npmmirror.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43"
|
||||
integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==
|
||||
dependencies:
|
||||
cross-spawn "^7.0.3"
|
||||
get-stream "^6.0.1"
|
||||
human-signals "^4.3.0"
|
||||
is-stream "^3.0.0"
|
||||
merge-stream "^2.0.0"
|
||||
npm-run-path "^5.1.0"
|
||||
onetime "^6.0.0"
|
||||
signal-exit "^3.0.7"
|
||||
strip-final-newline "^3.0.0"
|
||||
|
||||
exit@^0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
|
||||
@@ -4556,7 +4624,7 @@ get-package-type@^0.1.0:
|
||||
resolved "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
|
||||
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
|
||||
|
||||
get-stream@^6.0.0:
|
||||
get-stream@^6.0.0, get-stream@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
||||
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
|
||||
@@ -4859,6 +4927,16 @@ human-signals@^2.1.0:
|
||||
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
||||
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
||||
|
||||
human-signals@^4.3.0:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2"
|
||||
integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
|
||||
|
||||
husky@^8.0.3:
|
||||
version "8.0.3"
|
||||
resolved "https://registry.npmmirror.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184"
|
||||
integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==
|
||||
|
||||
iconv-lite@0.4.24, iconv-lite@^0.4.4:
|
||||
version "0.4.24"
|
||||
resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||
@@ -5047,6 +5125,11 @@ is-fullwidth-code-point@^3.0.0:
|
||||
resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
|
||||
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
|
||||
|
||||
is-fullwidth-code-point@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
|
||||
integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
|
||||
|
||||
is-generator-fn@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
|
||||
@@ -5134,6 +5217,11 @@ is-stream@^2.0.0:
|
||||
resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
|
||||
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
|
||||
|
||||
is-stream@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
|
||||
integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
|
||||
|
||||
is-string@^1.0.5, is-string@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
|
||||
@@ -5876,6 +5964,11 @@ levn@~0.3.0:
|
||||
prelude-ls "~1.1.2"
|
||||
type-check "~0.3.2"
|
||||
|
||||
lilconfig@2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
|
||||
integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
|
||||
|
||||
lilconfig@^2.0.3, lilconfig@^2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
|
||||
@@ -5886,6 +5979,39 @@ lines-and-columns@^1.1.6:
|
||||
resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
|
||||
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
|
||||
|
||||
lint-staged@^13.2.2:
|
||||
version "13.2.2"
|
||||
resolved "https://registry.npmmirror.com/lint-staged/-/lint-staged-13.2.2.tgz#5e711d3139c234f73402177be2f8dd312e6508ca"
|
||||
integrity sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==
|
||||
dependencies:
|
||||
chalk "5.2.0"
|
||||
cli-truncate "^3.1.0"
|
||||
commander "^10.0.0"
|
||||
debug "^4.3.4"
|
||||
execa "^7.0.0"
|
||||
lilconfig "2.1.0"
|
||||
listr2 "^5.0.7"
|
||||
micromatch "^4.0.5"
|
||||
normalize-path "^3.0.0"
|
||||
object-inspect "^1.12.3"
|
||||
pidtree "^0.6.0"
|
||||
string-argv "^0.3.1"
|
||||
yaml "^2.2.2"
|
||||
|
||||
listr2@^5.0.7:
|
||||
version "5.0.8"
|
||||
resolved "https://registry.npmmirror.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23"
|
||||
integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==
|
||||
dependencies:
|
||||
cli-truncate "^2.1.0"
|
||||
colorette "^2.0.19"
|
||||
log-update "^4.0.0"
|
||||
p-map "^4.0.0"
|
||||
rfdc "^1.3.0"
|
||||
rxjs "^7.8.0"
|
||||
through "^2.3.8"
|
||||
wrap-ansi "^7.0.0"
|
||||
|
||||
loader-runner@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
|
||||
@@ -5974,6 +6100,16 @@ lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17
|
||||
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
log-update@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
|
||||
integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
|
||||
dependencies:
|
||||
ansi-escapes "^4.3.0"
|
||||
cli-cursor "^3.1.0"
|
||||
slice-ansi "^4.0.0"
|
||||
wrap-ansi "^6.2.0"
|
||||
|
||||
loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
||||
@@ -6084,6 +6220,14 @@ micromatch@^4.0.2, micromatch@^4.0.4:
|
||||
braces "^3.0.1"
|
||||
picomatch "^2.2.3"
|
||||
|
||||
micromatch@^4.0.5:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
|
||||
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
|
||||
dependencies:
|
||||
braces "^3.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
|
||||
version "1.52.0"
|
||||
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||
@@ -6106,6 +6250,11 @@ mimic-fn@^2.1.0:
|
||||
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
||||
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
||||
|
||||
mimic-fn@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
|
||||
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
|
||||
|
||||
mini-create-react-context@^0.4.0:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e"
|
||||
@@ -6259,6 +6408,13 @@ npm-run-path@^4.0.1:
|
||||
dependencies:
|
||||
path-key "^3.0.0"
|
||||
|
||||
npm-run-path@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
|
||||
integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
|
||||
dependencies:
|
||||
path-key "^4.0.0"
|
||||
|
||||
nth-check@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
|
||||
@@ -6293,6 +6449,11 @@ object-inspect@^1.11.0, object-inspect@^1.9.0:
|
||||
resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
|
||||
integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
|
||||
|
||||
object-inspect@^1.12.3:
|
||||
version "1.12.3"
|
||||
resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
|
||||
integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
|
||||
|
||||
object-is@^1.0.1:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
|
||||
@@ -6384,13 +6545,20 @@ once@^1.3.0:
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
onetime@^5.1.2:
|
||||
onetime@^5.1.0, onetime@^5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
|
||||
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
|
||||
dependencies:
|
||||
mimic-fn "^2.1.0"
|
||||
|
||||
onetime@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
|
||||
integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
|
||||
dependencies:
|
||||
mimic-fn "^4.0.0"
|
||||
|
||||
open@^8.0.9, open@^8.4.0:
|
||||
version "8.4.0"
|
||||
resolved "https://registry.npmmirror.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
|
||||
@@ -6566,6 +6734,11 @@ path-key@^3.0.0, path-key@^3.1.0:
|
||||
resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
||||
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
||||
|
||||
path-key@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
|
||||
integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
|
||||
|
||||
path-parse@^1.0.6, path-parse@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||
@@ -6608,11 +6781,16 @@ picocolors@^1.0.0:
|
||||
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||
|
||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3:
|
||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
pidtree@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.npmmirror.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c"
|
||||
integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==
|
||||
|
||||
pify@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
|
||||
@@ -7179,10 +7357,10 @@ prelude-ls@~1.1.2:
|
||||
resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||
integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
|
||||
|
||||
prettier@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.npmmirror.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
|
||||
integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
|
||||
prettier@^2.8.8:
|
||||
version "2.8.8"
|
||||
resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
|
||||
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
|
||||
|
||||
pretty-bytes@^5.3.0, pretty-bytes@^5.4.1:
|
||||
version "5.6.0"
|
||||
@@ -8055,6 +8233,14 @@ resolve@^2.0.0-next.3:
|
||||
is-core-module "^2.2.0"
|
||||
path-parse "^1.0.6"
|
||||
|
||||
restore-cursor@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
|
||||
integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
|
||||
dependencies:
|
||||
onetime "^5.1.0"
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
retry@^0.13.1:
|
||||
version "0.13.1"
|
||||
resolved "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
|
||||
@@ -8065,6 +8251,11 @@ reusify@^1.0.4:
|
||||
resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
rfdc@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
|
||||
integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
|
||||
|
||||
rimraf@^3.0.0, rimraf@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
|
||||
@@ -8096,6 +8287,13 @@ run-parallel@^1.1.9:
|
||||
dependencies:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
rxjs@^7.8.0:
|
||||
version "7.8.1"
|
||||
resolved "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
|
||||
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||
@@ -8319,7 +8517,7 @@ side-channel@^1.0.4:
|
||||
get-intrinsic "^1.0.2"
|
||||
object-inspect "^1.9.0"
|
||||
|
||||
signal-exit@^3.0.2, signal-exit@^3.0.3:
|
||||
signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
|
||||
version "3.0.7"
|
||||
resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
|
||||
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
|
||||
@@ -8344,6 +8542,32 @@ slash@^4.0.0:
|
||||
resolved "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
|
||||
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
|
||||
|
||||
slice-ansi@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
|
||||
integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
|
||||
dependencies:
|
||||
ansi-styles "^4.0.0"
|
||||
astral-regex "^2.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
|
||||
slice-ansi@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
|
||||
integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
|
||||
dependencies:
|
||||
ansi-styles "^4.0.0"
|
||||
astral-regex "^2.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
|
||||
slice-ansi@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a"
|
||||
integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
|
||||
dependencies:
|
||||
ansi-styles "^6.0.0"
|
||||
is-fullwidth-code-point "^4.0.0"
|
||||
|
||||
sockjs@^0.3.21:
|
||||
version "0.3.24"
|
||||
resolved "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
|
||||
@@ -8457,6 +8681,11 @@ stackframe@^1.1.1:
|
||||
resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
|
||||
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
|
||||
|
||||
string-argv@^0.3.1:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
|
||||
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
|
||||
|
||||
string-convert@^0.2.0:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97"
|
||||
@@ -8492,6 +8721,15 @@ string-width@^4.1.0, string-width@^4.2.0:
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
string-width@^5.0.0:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
|
||||
integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
|
||||
dependencies:
|
||||
eastasianwidth "^0.2.0"
|
||||
emoji-regex "^9.2.2"
|
||||
strip-ansi "^7.0.1"
|
||||
|
||||
string.prototype.matchall@^4.0.6:
|
||||
version "4.0.6"
|
||||
resolved "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
|
||||
@@ -8579,6 +8817,11 @@ strip-final-newline@^2.0.0:
|
||||
resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
|
||||
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
|
||||
|
||||
strip-final-newline@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
|
||||
integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
|
||||
|
||||
strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
|
||||
@@ -8773,6 +9016,11 @@ throat@^6.0.1:
|
||||
resolved "https://registry.npmmirror.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
|
||||
integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==
|
||||
|
||||
through@^2.3.8:
|
||||
version "2.3.8"
|
||||
resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
|
||||
|
||||
thunky@^1.0.2:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
|
||||
@@ -8887,6 +9135,11 @@ tslib@^2.0.3, tslib@^2.3.0:
|
||||
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
|
||||
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
|
||||
|
||||
tslib@^2.1.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
|
||||
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
|
||||
|
||||
tsutils@^3.21.0:
|
||||
version "3.21.0"
|
||||
resolved "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
|
||||
@@ -9506,6 +9759,15 @@ workbox-window@6.5.1:
|
||||
"@types/trusted-types" "^2.0.2"
|
||||
workbox-core "6.5.1"
|
||||
|
||||
wrap-ansi@^6.2.0:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
|
||||
integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
|
||||
dependencies:
|
||||
ansi-styles "^4.0.0"
|
||||
string-width "^4.1.0"
|
||||
strip-ansi "^6.0.0"
|
||||
|
||||
wrap-ansi@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||
@@ -9570,6 +9832,11 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
|
||||
resolved "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
|
||||
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
|
||||
|
||||
yaml@^2.2.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.npmmirror.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073"
|
||||
integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==
|
||||
|
||||
yargs-parser@^20.2.2:
|
||||
version "20.2.9"
|
||||
resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
|
||||
|
||||
Reference in New Issue
Block a user