Compare commits

..

No commits in common. "umi" and "main" have entirely different histories.
umi ... main

48 changed files with 15599 additions and 33864 deletions

19
.eslintignore 100644
View File

@ -0,0 +1,19 @@
config
.husky
**/.gitignore
dist/
deploy_versions/
.temp/
.rn_temp/
node_modules/
.DS_Store
.swc
.husky
.prettierignore
.env.*
**/*.json
**/*.svg
**/*.scss
**/*.md
*.config.js
index.html

9
.eslintrc 100644
View File

@ -0,0 +1,9 @@
{
"extends": ["react-app"],
"plugins": ["prettier"],
"rules": {
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off",
"prettier/prettier": "error"
}
}

30
.gitignore vendored
View File

@ -1,9 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.env.local
/.umirc.local.ts
/config/config.local.ts
/src/.umi
/src/.umi-production
/src/.umi-test
/dist
.swc
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged

2
.npmrc
View File

@ -1,2 +0,0 @@
registry=https://registry.npmmirror.com/

13
.prettierignore 100644
View File

@ -0,0 +1,13 @@
.eslintignore
**/.gitignore
dist/
deploy_versions/
.temp/
.rn_temp/
node_modules/
.DS_Store
.swc
.husky
.prettierignore
.env.*
**/*.svg

12
.prettierrc 100644
View File

@ -0,0 +1,12 @@
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"proseWrap": "preserve",
"arrowParens": "always",
"bracketSpacing": true,
"jsxSingleQuote": true,
"endOfLine": "auto"
}

View File

@ -1,9 +0,0 @@
import { defineConfig } from "umi";
export default defineConfig({
routes: [
{ path: "/", component: "index" },
{ path: "/docs", component: "docs" },
],
npmClient: 'pnpm',
});

20
README.md 100644
View File

@ -0,0 +1,20 @@
# Notify Admin
## 目标
1. 微信小程序的信息管理页面
2. 人资部后台
## 功能
### 主席团管理页面
1. 值班表导入、更新
2. 成员权限管理
3. 特殊维修时间(如学园维修)、值班信息更新
### 值班组长管理页面
ps. 是微信小程序中小组管理页面的pc端替代
1. 值班组长上传本班相关信息

37805
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +1,47 @@
{
"name": "notify-admin",
"version": "0.1.0",
"private": true,
"author": "Dawn1Ocean <1785590531@qq.com>",
"scripts": {
"dev": "umi dev",
"build": "umi build",
"postinstall": "umi setup",
"setup": "umi setup",
"start": "npm run dev"
"author": {
"name": "EVA Tech"
},
"dependencies": {
"@ant-design/icons": "^5.3.5",
"@ant-design/pro-components": "^2.7.0",
"@ant-design/pro-layout": "^7.19.0",
"antd": "^5.15.4",
"axios": "^1.6.8",
"umi": "^4.1.5"
"@types/node": "^16.18.88",
"@types/react": "^18.2.65",
"@types/react-dom": "^18.2.21",
"antd": "^5.15.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.22.3",
"react-scripts": "5.0.1",
"typescript": "^4.9.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"eject": "react-scripts eject",
"prepare": "husky"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@types/react": "^18.0.33",
"@types/react-dom": "^18.0.11",
"@umijs/plugins": "^4.1.5",
"typescript": "^5.0.3"
"eslint-plugin-prettier": "^5.1.3",
"husky": "^9.0.11",
"lint-staged": "^15.2.2",
"stylelint": "^16.2.1"
},
"lint-staged": {
"*.ts": "prettier --write",
"*.tsx": "prettier --write"
}
}

File diff suppressed because it is too large Load Diff

BIN
public/favicon.ico 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

24
public/index.html 100644
View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>EVA-Notify Admin Page</title>
</head>
<body style="margin: 0;">
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>

BIN
public/logo192.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
public/logo512.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -0,0 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

View File

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

View File

@ -1,9 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import React from 'react';
import { Outlet, useOutletContext } from 'umi';
export default function EmptyRoute() {
const context = useOutletContext();
return <Outlet context={context} />;
}

View File

@ -1,16 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
interface IDefaultRuntimeConfig {
onRouteChange?: (props: { routes: any, clientRoutes: any, location: any, action: any, isFirst: boolean }) => void;
patchRoutes?: (props: { routes: any }) => void;
patchClientRoutes?: (props: { routes: any }) => void;
render?: (oldRender: () => void) => void;
rootContainer?: (lastRootContainer: JSX.Element, args?: any) => void;
[key: string]: any;
}
export type RuntimeConfig = IDefaultRuntimeConfig
export function defineApp(config: RuntimeConfig): RuntimeConfig {
return config;
}

View File

@ -1,10 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import React from 'react';
import { HelmetProvider } from '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/@umijs+renderer-react@4.1.5_react-dom@18.1.0_react@18.1.0/node_modules/@umijs/renderer-react';
import { context } from './helmetContext';
export const innerProvider = (container) => {
return React.createElement(HelmetProvider, { context }, container);
}

View File

@ -1,4 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
export const context = {};

View File

@ -1,66 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import { createHashHistory, createMemoryHistory, createBrowserHistory } from '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/@umijs+renderer-react@4.1.5_react-dom@18.1.0_react@18.1.0/node_modules/@umijs/renderer-react';
import type { UmiHistory } from './historyIntelli';
let history: UmiHistory;
let basename: string = '/';
export function createHistory(opts: any) {
let h;
if (opts.type === 'hash') {
h = createHashHistory();
} else if (opts.type === 'memory') {
h = createMemoryHistory(opts);
} else {
h = createBrowserHistory();
}
if (opts.basename) {
basename = opts.basename;
}
history = {
...h,
push(to, state) {
h.push(patchTo(to, h), state);
},
replace(to, state) {
h.replace(patchTo(to, h), state);
},
get location() {
return h.location;
},
get action() {
return h.action;
}
}
return h;
}
// Patch `to` to support basename
// Refs:
// https://github.com/remix-run/history/blob/3e9dab4/packages/history/index.ts#L484
// https://github.com/remix-run/history/blob/dev/docs/api-reference.md#to
function patchTo(to: any, h: History) {
if (typeof to === 'string') {
return `${stripLastSlash(basename)}${to}`;
} else if (typeof to === 'object') {
const currentPathname = h.location.pathname;
return {
...to,
pathname: to.pathname? `${stripLastSlash(basename)}${to.pathname}` : currentPathname,
};
} else {
throw new Error(`Unexpected to: ${to}`);
}
}
function stripLastSlash(path) {
return path.slice(-1) === '/' ? path.slice(0, -1) : path;
}
export { history };

View File

@ -1,132 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import { getRoutes } from './route'
import type { History } from '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/@umijs+renderer-react@4.1.5_react-dom@18.1.0_react@18.1.0/node_modules/@umijs/renderer-react'
type Routes = Awaited<ReturnType<typeof getRoutes>>['routes']
type AllRoute = Routes[keyof Routes]
type IsRoot<T extends any> = 'parentId' extends keyof T ? false : true
// show `/` in not `layout / wrapper` only
type GetAllRouteWithoutLayout<Item extends AllRoute> = Item extends any
? 'isWrapper' extends keyof Item
? never
: 'isLayout' extends keyof Item
? never
: Item
: never
type AllRouteWithoutLayout = GetAllRouteWithoutLayout<AllRoute>
type IndexRoutePathname = '/' extends AllRouteWithoutLayout['path']
? '/'
: never
type GetChildrens<T extends any> = T extends any
? IsRoot<T> extends true
? never
: T
: never
type Childrens = GetChildrens<AllRoute>
type Root = Exclude<AllRoute, Childrens>
type AllIds = AllRoute['id']
type GetChildrensByParentId<
Id extends AllIds,
Item = AllRoute
> = Item extends any
? 'parentId' extends keyof Item
? Item['parentId'] extends Id
? Item
: never
: never
: never
type RouteObject<
Id extends AllIds,
Item = GetChildrensByParentId<Id>
> = IsNever<Item> extends true
? ''
: Item extends AllRoute
? {
[Key in Item['path'] as TrimSlash<Key>]: UnionMerge<
RouteObject<Item['id']>
>
}
: never
type GetRootRouteObject<Item extends Root> = Item extends Root
? {
[K in Item['path'] as TrimSlash<K>]: UnionMerge<RouteObject<Item['id']>>
}
: never
type MergedResult = UnionMerge<GetRootRouteObject<Root>>
// --- patch history types ---
type HistoryTo = Parameters<History['push']>['0']
type HistoryPath = Exclude<HistoryTo, string>
type UmiPathname = Path<MergedResult> | (string & {})
interface UmiPath extends HistoryPath {
pathname: UmiPathname
}
type UmiTo = UmiPathname | UmiPath
type UmiPush = (to: UmiTo, state?: any) => void
type UmiReplace = (to: UmiTo, state?: any) => void
export interface UmiHistory extends History {
push: UmiPush
replace: UmiReplace
}
// --- type utils ---
type TrimLeftSlash<T extends string> = T extends `/${infer R}`
? TrimLeftSlash<R>
: T
type TrimRightSlash<T extends string> = T extends `${infer R}/`
? TrimRightSlash<R>
: T
type TrimSlash<T extends string> = TrimLeftSlash<TrimRightSlash<T>>
type IsNever<T> = [T] extends [never] ? true : false
type IsEqual<A, B> = (<G>() => G extends A ? 1 : 2) extends <G>() => G extends B
? 1
: 2
? true
: false
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (
k: infer I
) => void
? I
: never
type UnionMerge<U> = UnionToIntersection<U> extends infer O
? { [K in keyof O]: O[K] }
: never
type ExcludeEmptyKey<T> = IsEqual<T, ''> extends true ? never : T
type PathConcat<
TKey extends string,
TValue,
N = TrimSlash<TKey>
> = TValue extends string
? ExcludeEmptyKey<N>
:
| ExcludeEmptyKey<N>
| `${N & string}${IsNever<ExcludeEmptyKey<N>> extends true
? ''
: '/'}${UnionPath<TValue>}`
type UnionPath<T> = {
[K in keyof T]-?: PathConcat<K & string, T[K]>
}[keyof T]
type MakeSureLeftSlash<T> = T extends any
? `/${TrimRightSlash<T & string>}`
: never
// exclude `/*`, because it always at the top of the IDE tip list
type Path<T, K = UnionPath<T>> = Exclude<MakeSureLeftSlash<K>, '/*'> | IndexRoutePathname

View File

@ -1,40 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import * as Plugin_0 from '@@/core/helmet.ts';
import { PluginManager } from 'umi';
function __defaultExport (obj) {
if (obj.default) {
return typeof obj.default === 'function' ? obj.default() : obj.default
}
return obj;
}
export function getPlugins() {
return [
{
apply: Plugin_0,
path: process.env.NODE_ENV === 'production' ? void 0 : '@@/core/helmet.ts',
},
];
}
export function getValidKeys() {
return ['patchRoutes','patchClientRoutes','modifyContextOpts','modifyClientRenderOpts','rootContainer','innerProvider','i18nProvider','accessProvider','dataflowProvider','outerProvider','render','onRouteChange',];
}
let pluginManager = null;
export function createPluginManager() {
pluginManager = PluginManager.create({
plugins: getPlugins(),
validKeys: getValidKeys(),
});
return pluginManager;
}
export function getPluginManager() {
return pluginManager;
}

View File

@ -1,287 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import { IConfigFromPluginsJoi } from "./pluginConfigJoi.d";
interface IConfigTypes {
codeSplitting: {
jsStrategy: "bigVendors" | "depPerChunk" | "granularChunks";
jsStrategyOptions?: ({
} | undefined);
cssStrategy?: ("mergeAll" | undefined);
cssStrategyOptions?: ({
} | undefined);
};
title: string;
styles: Array<string | {
src?: (string | undefined);
} | {
content?: (string | undefined);
} | { [x: string]: any }>;
scripts: Array<string | {
src?: (string | undefined);
} | {
content?: (string | undefined);
} | { [x: string]: any }>;
routes: Array<{
component?: (string | undefined);
layout?: (false | undefined);
path?: (string | undefined);
redirect?: (string | undefined);
routes?: IConfigTypes['routes'];
wrappers?: (Array<string> | undefined);
} | { [x: string]: any }>;
routeLoader: {
moduleType: "esm" | "cjs";
};
reactRouter5Compat: boolean | {
};
presets: Array<string>;
plugins: Array<string>;
npmClient: "pnpm" | "tnpm" | "cnpm" | "yarn" | "npm";
mountElementId: string;
metas: Array<{
charset?: (string | undefined);
content?: (string | undefined);
"http-equiv"?: (string | undefined);
name?: (string | undefined);
} | { [x: string]: any }>;
links: Array<{
crossorigin?: (string | undefined);
href?: (string | undefined);
hreflang?: (string | undefined);
media?: (string | undefined);
referrerpolicy?: (string | undefined);
rel?: (string | undefined);
sizes?: (any | undefined);
title?: (any | undefined);
type?: (any | undefined);
} | { [x: string]: any }>;
historyWithQuery: {
};
history: {
type: "browser" | "hash" | "memory";
};
headScripts: Array<string | {
src?: (string | undefined);
} | {
content?: (string | undefined);
} | { [x: string]: any }>;
esbuildMinifyIIFE: boolean;
conventionRoutes: {
base?: (string | undefined);
exclude?: (Array<any> | undefined);
};
conventionLayout: boolean;
base: string;
analyze: {
};
writeToDisk: boolean;
theme: { [x: string]: any };
targets: { [x: string]: any };
svgr: { [x: string]: any };
svgo: { [x: string]: any } | boolean;
stylusLoader: { [x: string]: any };
styleLoader: { [x: string]: any };
srcTranspilerOptions: {
esbuild?: ({ [x: string]: any } | undefined);
swc?: ({ [x: string]: any } | undefined);
};
srcTranspiler: "babel" | "esbuild" | "swc";
sassLoader: { [x: string]: any };
runtimePublicPath: {
};
purgeCSS: { [x: string]: any };
publicPath: string;
proxy: { [x: string]: any } | Array<any>;
postcssLoader: { [x: string]: any };
outputPath: string;
normalCSSLoaderModules: { [x: string]: any };
mfsu: {
cacheDirectory?: (string | undefined);
chainWebpack?: (((...args: any[]) => unknown) | undefined);
esbuild?: (boolean | undefined);
exclude?: (Array<string | any> | undefined);
include?: (Array<string> | undefined);
mfName?: (string | undefined);
remoteAliases?: (Array<string> | undefined);
remoteName?: (string | undefined);
runtimePublicPath?: (boolean | undefined);
shared?: ({ [x: string]: any } | undefined);
strategy?: ("eager" | "normal" | undefined);
} | boolean;
mdx: {
loader?: (string | undefined);
loaderOptions?: ({ [x: string]: any } | undefined);
};
manifest: {
basePath?: (string | undefined);
fileName?: (string | undefined);
};
lessLoader: { [x: string]: any };
jsMinifierOptions: { [x: string]: any };
jsMinifier: "esbuild" | "swc" | "terser" | "uglifyJs" | "none";
inlineLimit: number;
ignoreMomentLocale: boolean;
https: {
cert?: (string | undefined);
hosts?: (Array<string> | undefined);
http2?: (boolean | undefined);
key?: (string | undefined);
};
hash: boolean;
forkTSChecker: { [x: string]: any };
fastRefresh: boolean;
extraPostCSSPlugins: Array<any>;
extraBabelPresets: Array<string | Array<any>>;
extraBabelPlugins: Array<string | Array<any>>;
extraBabelIncludes: Array<string | any>;
externals: { [x: string]: any } | string | ((...args: any[]) => unknown);
esm: {
};
devtool: "cheap-source-map" | "cheap-module-source-map" | "eval" | "eval-source-map" | "eval-cheap-source-map" | "eval-cheap-module-source-map" | "eval-nosources-cheap-source-map" | "eval-nosources-cheap-module-source-map" | "eval-nosources-source-map" | "source-map" | "hidden-source-map" | "hidden-nosources-cheap-source-map" | "hidden-nosources-cheap-module-source-map" | "hidden-nosources-source-map" | "hidden-cheap-source-map" | "hidden-cheap-module-source-map" | "inline-source-map" | "inline-cheap-source-map" | "inline-cheap-module-source-map" | "inline-nosources-cheap-source-map" | "inline-nosources-cheap-module-source-map" | "inline-nosources-source-map" | "nosources-source-map" | "nosources-cheap-source-map" | "nosources-cheap-module-source-map" | boolean;
depTranspiler: "babel" | "esbuild" | "swc" | "none";
define: { [x: string]: any };
deadCode: {
context?: (string | undefined);
detectUnusedExport?: (boolean | undefined);
detectUnusedFiles?: (boolean | undefined);
exclude?: (Array<string> | undefined);
failOnHint?: (boolean | undefined);
patterns?: (Array<string> | undefined);
};
cssPublicPath: string;
cssMinifierOptions: { [x: string]: any };
cssMinifier: "cssnano" | "esbuild" | "parcelCSS" | "none";
cssLoaderModules: { [x: string]: any };
cssLoader: { [x: string]: any };
copy: Array<{
from: string;
to: string;
} | string>;
checkDepCssModules?: boolean;
cacheDirectoryPath: string;
babelLoaderCustomize: string;
autoprefixer: { [x: string]: any };
autoCSSModules: boolean;
alias: { [x: string]: any };
crossorigin: boolean | {
includes?: (Array<any> | undefined);
};
esmi: {
cdnOrigin: string;
shimUrl?: (string | undefined);
};
exportStatic: {
extraRoutePaths?: (((...args: any[]) => unknown) | Array<string> | undefined);
ignorePreRenderError?: (boolean | undefined);
};
favicons: Array<string>;
helmet: boolean;
icons: {
autoInstall?: ({
} | undefined);
defaultComponentConfig?: ({
} | undefined);
alias?: ({
} | undefined);
include?: (Array<string> | undefined);
};
mock: {
exclude?: (Array<string> | undefined);
include?: (Array<string> | undefined);
};
mpa: {
template?: (string | undefined);
layout?: (string | undefined);
getConfigFromEntryFile?: (boolean | undefined);
entry?: ({
} | undefined);
};
phantomDependency: {
exclude?: (Array<string> | undefined);
};
polyfill: {
imports?: (Array<string> | undefined);
};
routePrefetch: {
};
terminal: {
};
tmpFiles: boolean;
clientLoader: {
};
routeProps: {
};
ssr: {
serverBuildPath?: (string | undefined);
platform?: (string | undefined);
builder?: ("esbuild" | "webpack" | undefined);
};
lowImport: {
libs?: (Array<any> | undefined);
css?: (string | undefined);
};
vite: {
};
apiRoute: {
platform?: (string | undefined);
};
monorepoRedirect: boolean | {
srcDir?: (Array<string> | undefined);
exclude?: (Array<any> | undefined);
peerDeps?: (boolean | undefined);
};
test: {
};
clickToComponent: {
/** 默认情况下点击将默认编辑器为vscode, 你可以设置编辑器 vscode 或者 vscode-insiders */
editor?: (string | undefined);
};
legacy: {
buildOnly?: (boolean | undefined);
nodeModulesTransform?: (boolean | undefined);
checkOutput?: (boolean | undefined);
};
/** babel class-properties loose
@doc https://umijs.org/docs/api/config#classpropertiesloose */
classPropertiesLoose: boolean | {
};
ui: {
};
hmrGuardian: boolean;
verifyCommit: {
scope?: (Array<string> | undefined);
allowEmoji?: (boolean | undefined);
};
run: {
globals?: (Array<string> | undefined);
};
};
type PrettifyWithCloseable<T> = {
[K in keyof T]: T[K] | false;
} & {};
export type IConfigFromPlugins = PrettifyWithCloseable<
IConfigFromPluginsJoi & Partial<IConfigTypes>
>;

View File

@ -1,7 +0,0 @@
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
// Created by Umi Plugin
export interface IConfigFromPluginsJoi {
}

View File

@ -1,220 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.error.cause.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.aggregate-error.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.aggregate-error.cause.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.at.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.find-last.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.find-last-index.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.push.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.reduce.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.reduce-right.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.to-reversed.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.to-sorted.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.to-spliced.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.with.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.map.group-by.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.object.group-by.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.object.has-own.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.promise.any.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.promise.with-resolvers.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.reflect.to-string-tag.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.regexp.flags.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.string.at-alternative.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.string.is-well-formed.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.string.replace-all.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.string.to-well-formed.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.typed-array.at.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.typed-array.find-last.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.typed-array.find-last-index.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.typed-array.set.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.typed-array.to-reversed.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.typed-array.to-sorted.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.typed-array.with.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.suppressed-error.constructor.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.from-async.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.filter-out.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.filter-reject.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.group.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.group-by.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.group-by-to-map.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.group-to-map.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.is-template-object.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.last-index.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.last-item.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array.unique-by.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array-buffer.detached.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array-buffer.transfer.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.array-buffer.transfer-to-fixed-length.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-disposable-stack.constructor.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.constructor.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.async-dispose.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.drop.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.every.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.filter.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.find.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.flat-map.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.for-each.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.from.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.indexed.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.map.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.reduce.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.some.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.take.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.async-iterator.to-array.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.bigint.range.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.composite-key.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.composite-symbol.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.data-view.get-float16.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.data-view.get-uint8-clamped.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.data-view.set-float16.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.data-view.set-uint8-clamped.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.disposable-stack.constructor.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.function.demethodize.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.function.is-callable.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.function.is-constructor.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.function.metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.function.un-this.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.constructor.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.dispose.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.drop.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.every.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.filter.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.find.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.flat-map.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.for-each.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.from.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.indexed.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.map.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.range.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.reduce.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.some.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.take.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.to-array.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.iterator.to-async.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.json.is-raw-json.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.json.parse.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.json.raw-json.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.delete-all.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.emplace.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.every.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.filter.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.find.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.find-key.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.from.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.includes.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.key-by.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.key-of.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.map-keys.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.map-values.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.merge.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.of.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.reduce.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.some.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.update.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.update-or-insert.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.map.upsert.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.clamp.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.deg-per-rad.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.degrees.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.fscale.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.f16round.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.iaddh.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.imulh.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.isubh.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.rad-per-deg.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.radians.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.scale.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.seeded-prng.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.signbit.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.math.umulh.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.number.from-string.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.number.range.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.object.iterate-entries.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.object.iterate-keys.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.object.iterate-values.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.observable.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.promise.try.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.define-metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.delete-metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.get-metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.has-metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.reflect.metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.regexp.escape.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.add-all.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.delete-all.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.difference.v2.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.difference.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.every.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.filter.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.find.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.from.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.intersection.v2.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.intersection.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.is-disjoint-from.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.is-subset-of.v2.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.is-subset-of.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.is-superset-of.v2.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.is-superset-of.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.join.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.map.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.of.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.reduce.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.some.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.symmetric-difference.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.union.v2.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.set.union.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.string.at.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.string.cooked.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.string.code-points.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.string.dedent.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.async-dispose.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.dispose.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.is-registered-symbol.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.is-registered.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.is-well-known-symbol.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.is-well-known.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.matcher.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.metadata.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.metadata-key.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.observable.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.pattern-match.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.symbol.replace-all.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.typed-array.from-async.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.typed-array.filter-out.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.typed-array.filter-reject.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.typed-array.group-by.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.typed-array.to-spliced.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.typed-array.unique-by.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.uint8-array.from-base64.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.uint8-array.from-hex.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.uint8-array.to-base64.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.uint8-array.to-hex.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-map.delete-all.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-map.from.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-map.of.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-map.emplace.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-map.upsert.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-set.add-all.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-set.delete-all.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-set.from.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/esnext.weak-set.of.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.dom-exception.stack.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.immediate.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.self.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.structured-clone.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.url.can-parse.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.url-search-params.delete.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.url-search-params.has.js";
import "/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.url-search-params.size.js";
import '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/regenerator-runtime@0.13.11/node_modules/regenerator-runtime/runtime.js';
export {};

View File

@ -1,16 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import React from 'react';
export async function getRoutes() {
const routes = {"1":{"path":"/","parentId":"@@/global-layout","id":"1"},"2":{"path":"/docs","parentId":"@@/global-layout","id":"2"},"@@/global-layout":{"id":"@@/global-layout","path":"/","isLayout":true}} as const;
return {
routes,
routeComponents: {
'1': React.lazy(() => import(/* webpackChunkName: "p__index" */'@/pages/index.tsx')),
'2': React.lazy(() => import(/* webpackChunkName: "p__docs" */'@/pages/docs.tsx')),
'@@/global-layout': React.lazy(() => import(/* webpackChunkName: "layouts__index" */'/home/dean/Coding/EVA Tea/Notify-Admin/src/layouts/index.tsx')),
},
};
}

View File

@ -1,37 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
let count = 0;
let groupLevel = 0;
function send(type: string, message?: string) {
if(process.env.NODE_ENV==='production'){
return;
}else{
const encodedMessage = message ? `&m=${encodeURI(message)}` : '';
fetch(`/__umi/api/terminal?type=${type}&t=${Date.now()}&c=${count++}&g=${groupLevel}${encodedMessage}`, { mode: 'no-cors' })
}
}
function prettyPrint(obj: any) {
return JSON.stringify(obj, null, 2);
}
function stringifyObjs(objs: any[]) {
const obj = objs.length > 1 ? objs.map(stringify).join(' ') : objs[0];
return typeof obj === 'object' ? `${prettyPrint(obj)}` : obj.toString();
}
function stringify(obj: any) {
return typeof obj === 'object' ? `${JSON.stringify(obj)}` : obj.toString();
}
const terminal = {
log(...objs: any[]) { send('log', stringifyObjs(objs)) },
info(...objs: any[]) { send('info', stringifyObjs(objs)) },
warn(...objs: any[]) { send('warn', stringifyObjs(objs)) },
error(...objs: any[]) { send('error', stringifyObjs(objs)) },
group() { groupLevel++ },
groupCollapsed() { groupLevel++ },
groupEnd() { groupLevel && --groupLevel },
clear() { send('clear') },
trace(...args: any[]) { console.trace(...args) },
profile(...args: any[]) { console.profile(...args) },
profileEnd(...args: any[]) { console.profileEnd(...args) },
};
export { terminal };

View File

@ -1,19 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
// defineApp
export { defineApp } from './core/defineApp'
export type { RuntimeConfig } from './core/defineApp'
// plugins
// plugins types.d.ts
// @umijs/renderer-*
export { createBrowserHistory, createHashHistory, createMemoryHistory, Helmet, HelmetProvider, createSearchParams, generatePath, matchPath, matchRoutes, Navigate, NavLink, Outlet, resolvePath, useLocation, useMatch, useNavigate, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes, useSearchParams, useAppData, useClientLoaderData, useRouteProps, useSelectedRoutes, useServerLoaderData, renderClient, __getRoot, Link, useRouteData, __useFetcher, withRouter } from '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/@umijs+renderer-react@4.1.5_react-dom@18.1.0_react@18.1.0/node_modules/@umijs/renderer-react';
export type { History } from '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/@umijs+renderer-react@4.1.5_react-dom@18.1.0_react@18.1.0/node_modules/@umijs/renderer-react'
// umi/client/client/plugin
export { ApplyPluginsType, PluginManager } from '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/umi@4.1.5_@babel+core@7.24.3_@types+react@18.2.73_eslint@8.57.0_prettier@3.2.5_react-dom@18.2_w7wwsm3x2bx2p22eiznh2vdwtm/node_modules/umi/client/client/plugin.js';
export { history, createHistory } from './core/history';
export { terminal } from './core/terminal';
// react ssr
export const useServerInsertedHTML: Function = () => {};
// test
export { TestBrowser } from './testBrowser';

View File

@ -1,87 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import React, { useEffect, useState } from 'react';
import { ApplyPluginsType } from 'umi';
import { renderClient, RenderClientOpts } from '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/@umijs+renderer-react@4.1.5_react-dom@18.1.0_react@18.1.0/node_modules/@umijs/renderer-react';
import { createHistory } from './core/history';
import { createPluginManager } from './core/plugin';
import { getRoutes } from './core/route';
import type { Location } from 'history';
const publicPath = '/';
const runtimePublicPath = false;
type TestBrowserProps = {
location?: Partial<Location>;
historyRef?: React.MutableRefObject<Location>;
};
export function TestBrowser(props: TestBrowserProps) {
const pluginManager = createPluginManager();
const [context, setContext] = useState<RenderClientOpts | undefined>(
undefined
);
useEffect(() => {
const genContext = async () => {
const { routes, routeComponents } = await getRoutes(pluginManager);
// allow user to extend routes
await pluginManager.applyPlugins({
key: 'patchRoutes',
type: ApplyPluginsType.event,
args: {
routes,
routeComponents,
},
});
const contextOpts = pluginManager.applyPlugins({
key: 'modifyContextOpts',
type: ApplyPluginsType.modify,
initialValue: {},
});
const basename = contextOpts.basename || '/';
const history = createHistory({
type: 'memory',
basename,
});
const context = {
routes,
routeComponents,
pluginManager,
rootElement: contextOpts.rootElement || document.getElementById('root'),
publicPath,
runtimePublicPath,
history,
basename,
components: true,
};
const modifiedContext = pluginManager.applyPlugins({
key: 'modifyClientRenderOpts',
type: ApplyPluginsType.modify,
initialValue: context,
});
return modifiedContext;
};
genContext().then((context) => {
setContext(context);
if (props.location) {
context?.history?.push(props.location);
}
if (props.historyRef) {
props.historyRef.current = context?.history;
}
});
}, []);
if (context === undefined) {
return <div id="loading" />;
}
const Children = renderClient(context);
return (
<React.Fragment>
<Children />
</React.Fragment>
);
}

View File

@ -1,43 +0,0 @@
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"moduleResolution": "bundler",
"importHelpers": true,
"noEmit": true,
"jsx": "react-jsx",
"esModuleInterop": true,
"sourceMap": true,
"baseUrl": "../../",
"strict": true,
"resolveJsonModule": true,
"allowSyntheticDefaultImports": true,
"paths": {
"@/*": [
"src/*"
],
"@@/*": [
"src/.umi/*"
],
"umi": [
"/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/umi@4.1.5_@babel+core@7.24.3_@types+react@18.2.73_eslint@8.57.0_prettier@3.2.5_react-dom@18.2_w7wwsm3x2bx2p22eiznh2vdwtm/node_modules/umi"
],
"umi/typings": [
"src/.umi/typings"
]
}
},
"include": [
"../../.umirc.ts",
"../../**/*.d.ts",
"../../**/*.ts",
"../../**/*.tsx"
]
}

136
src/.umi/typings.d.ts vendored
View File

@ -1,136 +0,0 @@
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
type CSSModuleClasses = { readonly [key: string]: string }
declare module '*.css' {
const classes: CSSModuleClasses
export default classes
}
declare module '*.scss' {
const classes: CSSModuleClasses
export default classes
}
declare module '*.sass' {
const classes: CSSModuleClasses
export default classes
}
declare module '*.less' {
const classes: CSSModuleClasses
export default classes
}
declare module '*.styl' {
const classes: CSSModuleClasses
export default classes
}
declare module '*.stylus' {
const classes: CSSModuleClasses
export default classes
}
// images
declare module '*.jpg' {
const src: string
export default src
}
declare module '*.jpeg' {
const src: string
export default src
}
declare module '*.png' {
const src: string
export default src
}
declare module '*.gif' {
const src: string
export default src
}
declare module '*.svg' {
import * as React from 'react';
export const ReactComponent: React.FunctionComponent<React.SVGProps<
SVGSVGElement
> & { title?: string }>;
const src: string
export default src
}
declare module '*.ico' {
const src: string
export default src
}
declare module '*.webp' {
const src: string
export default src
}
declare module '*.avif' {
const src: string
export default src
}
// media
declare module '*.mp4' {
const src: string
export default src
}
declare module '*.webm' {
const src: string
export default src
}
declare module '*.ogg' {
const src: string
export default src
}
declare module '*.mp3' {
const src: string
export default src
}
declare module '*.wav' {
const src: string
export default src
}
declare module '*.flac' {
const src: string
export default src
}
declare module '*.aac' {
const src: string
export default src
}
// fonts
declare module '*.woff' {
const src: string
export default src
}
declare module '*.woff2' {
const src: string
export default src
}
declare module '*.eot' {
const src: string
export default src
}
declare module '*.ttf' {
const src: string
export default src
}
declare module '*.otf' {
const src: string
export default src
}
// other
declare module '*.wasm' {
const initWasm: (options: WebAssembly.Imports) => Promise<WebAssembly.Exports>
export default initWasm
}
declare module '*.webmanifest' {
const src: string
export default src
}
declare module '*.pdf' {
const src: string
export default src
}
declare module '*.txt' {
const src: string
export default src
}

View File

@ -1,76 +0,0 @@
// @ts-nocheck
// This file is generated by Umi automatically
// DO NOT CHANGE IT MANUALLY!
import './core/polyfill';
import { renderClient } from '/home/dean/Coding/EVA Tea/Notify-Admin/node_modules/.pnpm/@umijs+renderer-react@4.1.5_react-dom@18.1.0_react@18.1.0/node_modules/@umijs/renderer-react';
import { getRoutes } from './core/route';
import { createPluginManager } from './core/plugin';
import { createHistory } from './core/history';
import { ApplyPluginsType } from 'umi';
const publicPath = "/";
const runtimePublicPath = false;
async function render() {
const pluginManager = createPluginManager();
const { routes, routeComponents } = await getRoutes(pluginManager);
// allow user to extend routes
await pluginManager.applyPlugins({
key: 'patchRoutes',
type: ApplyPluginsType.event,
args: {
routes,
routeComponents,
},
});
const contextOpts = pluginManager.applyPlugins({
key: 'modifyContextOpts',
type: ApplyPluginsType.modify,
initialValue: {},
});
const basename = contextOpts.basename || '/';
const historyType = contextOpts.historyType || 'browser';
const history = createHistory({
type: historyType,
basename,
...contextOpts.historyOpts,
});
return (pluginManager.applyPlugins({
key: 'render',
type: ApplyPluginsType.compose,
initialValue() {
const context = {
routes,
routeComponents,
pluginManager,
rootElement: contextOpts.rootElement || document.getElementById('root'),
publicPath,
runtimePublicPath,
history,
historyType,
basename,
callback: contextOpts.callback,
};
const modifiedContext = pluginManager.applyPlugins({
key: 'modifyClientRenderOpts',
type: ApplyPluginsType.modify,
initialValue: context,
});
return renderClient(modifiedContext);
},
}))();
}
render();
window.g_umi = {
version: '4.1.5',
};

151
src/App.tsx 100644
View File

@ -0,0 +1,151 @@
import { useState, FC } from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import {
TeamOutlined,
UserOutlined,
DesktopOutlined,
HomeOutlined,
} from '@ant-design/icons';
import type { MenuProps } from 'antd';
import { Breadcrumb, Layout, Menu, theme } from 'antd';
import { AppRouter } from './router';
import PageFooter from './components/PageFooter';
const { Content, Sider } = Layout;
type MenuItem = Required<MenuProps>['items'][number];
type KeyRouterMap = Map<React.Key, string>;
const keyRouterMap: KeyRouterMap = new Map();
function getItem(
label: React.ReactNode,
key: React.Key,
icon?: React.ReactNode,
children?: MenuItem[],
): MenuItem {
return {
key,
icon,
children,
label,
} as MenuItem;
}
function defMenu(
label: React.ReactNode,
key: React.Key,
icon: React.ReactNode,
path: string,
): MenuItem {
keyRouterMap.set(key, path);
return getItem(label, key, icon);
}
function defRootMenu(
label: React.ReactNode,
key: React.Key,
icon: React.ReactNode,
children: MenuItem[],
): MenuItem {
return getItem(label, key, icon, children);
}
function defSubMenu(
label: React.ReactNode,
key: React.Key,
path: string,
): MenuItem {
keyRouterMap.set(key, path);
return getItem(label, key);
}
const items: MenuItem[] = [
defMenu('主页', 'mainpage', <DesktopOutlined />, '/'),
defRootMenu('展示信息管理', 'sub1', <UserOutlined />, [
defSubMenu('选项1', '1', '/admin/hello1'),
defSubMenu('选项2', '2', '/admin/hello2'),
defSubMenu('选项3', '3', '/admin/hello3'),
]),
defRootMenu('值班组长', 'sub2', <TeamOutlined />, [
defSubMenu('选项1', '4', '/duty/hi1'),
defSubMenu('选项2', '5', '/duty/hi2'),
]),
defMenu('关于我们', 'aboutpage', <UserOutlined />, '/about'),
];
interface BreadcrumbItem {
href: string;
title: JSX.Element;
}
const AppLayout: FC<{ router: JSX.Element }> = (props) => {
const [collapsed, setCollapsed] = useState(false);
const { colorBgContainer, borderRadiusLG } = theme.getDesignToken();
const navigate = useNavigate();
const location = useLocation();
const pathArray = location.pathname.split('/');
const currentRouteItems: BreadcrumbItem[] = [
{
href: '/',
title: <HomeOutlined />,
},
];
for (var i = 1; i < pathArray.length; i++) {
currentRouteItems.push({
href: '',
title: <span>{pathArray[i]}</span>,
});
}
return (
<Layout style={{ minHeight: '100vh' }}>
<Sider
collapsible
collapsed={collapsed}
onCollapse={(value) => setCollapsed(value)}
>
<div className='demo-logo-vertical' />
<Menu
theme='dark'
defaultSelectedKeys={['1']}
mode='inline'
items={items}
onClick={(info: { key: React.Key }) => {
console.log('path', keyRouterMap.get(info.key));
navigate(keyRouterMap.get(info.key) || '/');
}}
/>
</Sider>
<Layout>
<Content style={{ margin: '0 16px' }}>
<Breadcrumb style={{ margin: '16px 0' }} items={currentRouteItems} />
<div
style={{
padding: 24,
minHeight: 360,
background: colorBgContainer,
borderRadius: borderRadiusLG,
}}
>
<div>{props.router}</div>
</div>
</Content>
<PageFooter />
</Layout>
</Layout>
);
};
const App: FC = () => {
return (
<div className='app'>
<AppLayout router={<AppRouter />} />
</div>
);
};
export default App;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

View File

@ -12,12 +12,9 @@ const PageFooter: React.FC = () => {
yearStr = startYear.toString() + ' - ' + curYear.toString();
}
return (
<div>
<Footer style={{ textAlign: 'center', color: '#808080' }}>
EVA Tea <br /> <br />
&copy; {yearStr} EVA Tech
<Footer style={{ textAlign: 'center' }}>
EVA-Notify Admin Page &copy; {yearStr} EVA Tech
</Footer>
</div>
);
};

15
src/index.tsx 100644
View File

@ -0,0 +1,15 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { BrowserRouter } from 'react-router-dom';
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement,
);
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>,
);

View File

@ -1,72 +0,0 @@
import Todo from '@/components/Todo';
import {
ClockCircleOutlined,
CrownFilled,
CrownOutlined,
SmileOutlined,
TeamOutlined,
ThunderboltOutlined,
} from '@ant-design/icons';
export default {
route: {
path: '/',
routes: [
{
path: '/dashboard',
name: '仪表盘',
icon: <SmileOutlined />,
component: './Welcome',
},
{
path: '/admin',
name: '主席团管理',
icon: <CrownOutlined />,
access: 'canAdmin',
component: './Admin',
routes: [
{
path: '/admin/dutytable',
name: '值班表管理',
icon: 'https://gw.alipayobjects.com/zos/antfincdn/upvrAjAPQX/Logo_Tech%252520UI.svg',
component: './Welcome',
},
{
path: '/admin/dutyinfo',
name: '值班信息管理',
icon: <CrownFilled />,
component: './Welcome',
},
],
},
{
name: '值班管理',
icon: <TeamOutlined />,
path: '/duty',
routes: [
{
path: '/duty/conclusion',
name: '值班总结',
icon: <CrownFilled />,
component: '@/components/Todo',
},
],
},
{
path: '/logs',
name: '日志',
icon: <ClockCircleOutlined />,
component: './Welcome',
},
{
path: '/about',
name: '关于',
icon: <ThunderboltOutlined />,
component: './Welcome',
},
],
},
location: {
pathname: '/',
},
};

View File

@ -1,85 +0,0 @@
import {
GithubFilled,
InfoCircleFilled,
QuestionCircleFilled,
} from '@ant-design/icons';
import { PageContainer, ProCard, ProLayout } from '@ant-design/pro-components';
import { useState } from 'react';
import defaultProps from './_defaultProps';
import PageFooter from '@/components/PageFooter';
export default () => {
const [pathname, setPathname] = useState('/dashboard');
return (
<div
id="test-pro-layout"
style={{
height: '100vh',
}}
>
<ProLayout
title='EVA Tea'
siderWidth={216}
bgLayoutImgList={[
{
src: 'https://img.alicdn.com/imgextra/i2/O1CN01O4etvp1DvpFLKfuWq_!!6000000000279-2-tps-609-606.png',
left: 85,
bottom: 100,
height: '303px',
},
{
src: 'https://img.alicdn.com/imgextra/i2/O1CN01O4etvp1DvpFLKfuWq_!!6000000000279-2-tps-609-606.png',
bottom: -68,
right: -45,
height: '303px',
},
{
src: 'https://img.alicdn.com/imgextra/i3/O1CN018NxReL1shX85Yz6Cx_!!6000000005798-2-tps-884-496.png',
bottom: 0,
left: 0,
width: '331px',
},
]}
{...defaultProps}
location={{
pathname,
}}
avatarProps={{
src: 'https://gw.alipayobjects.com/zos/antfincdn/efFD%24IOql2/weixintupian_20170331104822.jpg',
title: '七妮妮',
size: 'small',
}}
actionsRender={(props) => {
if (props.isMobile) return [];
return [
<InfoCircleFilled key="InfoCircleFilled" />,
<QuestionCircleFilled key="QuestionCircleFilled" />,
<GithubFilled key="GithubFilled" />,
];
}}
menuItemRender={(item, dom) => (
<div
onClick={() => {
setPathname(item.path || '/welcome');
}}
>
{dom}
</div>
)}
>
<PageContainer>
<ProCard
style={{
height: '80vh',
minHeight: 800,
}}
>
<div />
</ProCard>
<PageFooter />
</PageContainer>
</ProLayout>
</div>
);
};

View File

@ -1,9 +0,0 @@
const DocsPage = () => {
return (
<div>
<p>This is umi docs.</p>
</div>
);
};
export default DocsPage;

View File

@ -1,15 +0,0 @@
import yayJpg from '../assets/yay.jpg';
export default function HomePage() {
return (
<div>
<h2>Yay! Welcome to umi!</h2>
<p>
<img src={yayJpg} width="388" />
</p>
<p>
To get started, edit <code>pages/index.tsx</code> and save to reload.
</p>
</div>
);
}

View File

@ -1,61 +0,0 @@
import { FC } from 'react';
import { EllipsisOutlined } from '@ant-design/icons';
import { ProList } from '@ant-design/pro-components';
import { Progress, Tag } from 'antd';
const data = [
'语雀的天空',
'Ant Design',
'蚂蚁金服体验科技',
'TechUI',
'TechUI 2.0',
'Bigfish',
'Umi',
].map((item) => ({
title: item,
subTitle: <Tag color='#5BD8A6'></Tag>,
actions: [<EllipsisOutlined />],
avatar:
'https://gw.alipayobjects.com/zos/antfincdn/UCSiy1j6jx/xingzhuang.svg',
content: (
<div
style={{
flex: 1,
display: 'flex',
justifyContent: 'flex-end',
}}
>
<div
style={{
width: 200,
}}
>
<div></div>
<Progress percent={80} />
</div>
</div>
),
}));
const LogsPage: FC = () => {
return (
<ProList<any>
pagination={{
defaultPageSize: 5,
showSizeChanger: true,
}}
metas={{
title: {},
subTitle: {},
type: {},
avatar: {},
content: {},
actions: {},
}}
headerTitle='翻页'
dataSource={data}
/>
);
};
export default LogsPage;

1
src/react-app-env.d.ts vendored 100644
View File

@ -0,0 +1 @@
/// <reference types="react-scripts" />

15
src/router.tsx 100644
View File

@ -0,0 +1,15 @@
import { Routes, Route } from 'react-router-dom';
import Todo from './components/Todo';
export const AppRouter: React.FC = () => {
return (
<Routes>
<Route path='/' element={<Todo />} />
<Route path='/admin/hello1' element={<Todo />} />
<Route path='/admin/hello2' element={<Todo />} />
<Route path='/admin/hello3' element={<Todo />} />
<Route path='/duty/hi1' element={<Todo />} />
<Route path='/duty/hi2' element={<Todo />} />
</Routes>
);
};

View File

@ -1,3 +1,23 @@
{
"extends": "./src/.umi/tsconfig.json",
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["src"]
}

1
typings.d.ts vendored
View File

@ -1 +0,0 @@
import 'umi/typings';