Compare commits

...

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

48 changed files with 33822 additions and 15557 deletions

View File

@ -1,19 +0,0 @@
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

View File

@ -1,9 +0,0 @@
{
"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,23 +1,9 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.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*
/.env.local
/.umirc.local.ts
/config/config.local.ts
/src/.umi
/src/.umi-production
/src/.umi-test
/dist
.swc

View File

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

2
.npmrc 100644
View File

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

View File

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

View File

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

9
.umirc.ts 100644
View File

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

View File

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

37825
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +1,25 @@
{
"name": "notify-admin",
"version": "0.1.0",
"private": true,
"author": {
"name": "EVA Tech"
"author": "Dawn1Ocean <1785590531@qq.com>",
"scripts": {
"dev": "umi dev",
"build": "umi build",
"postinstall": "umi setup",
"setup": "umi setup",
"start": "npm run dev"
},
"dependencies": {
"@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"
]
"@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"
},
"devDependencies": {
"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"
"@types/react": "^18.0.33",
"@types/react-dom": "^18.0.11",
"@umijs/plugins": "^4.1.5",
"typescript": "^5.0.3"
}
}

9767
pnpm-lock.yaml 100644

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,24 +0,0 @@
<!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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,25 +0,0 @@
{
"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

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

View File

@ -0,0 +1,9 @@
// @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

@ -0,0 +1,16 @@
// @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

@ -0,0 +1,10 @@
// @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

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

View File

@ -0,0 +1,66 @@
// @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

@ -0,0 +1,132 @@
// @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

@ -0,0 +1,40 @@
// @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

@ -0,0 +1,287 @@
// @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

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

View File

@ -0,0 +1,220 @@
// @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

@ -0,0 +1,16 @@
// @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

@ -0,0 +1,37 @@
// @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

@ -0,0 +1,19 @@
// @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

@ -0,0 +1,87 @@
// @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

@ -0,0 +1,43 @@
{
"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 100644
View File

@ -0,0 +1,136 @@
// 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
}

76
src/.umi/umi.ts 100644
View File

@ -0,0 +1,76 @@
// @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',
};

View File

@ -1,151 +0,0 @@
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;

BIN
src/assets/yay.jpg 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

View File

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

View File

@ -1,15 +0,0 @@
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

@ -0,0 +1,72 @@
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

@ -0,0 +1,85 @@
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

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

View File

@ -0,0 +1,15 @@
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

@ -0,0 +1,61 @@
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;

View File

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

View File

@ -1,15 +0,0 @@
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,23 +1,3 @@
{
"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"]
"extends": "./src/.umi/tsconfig.json",
}

1
typings.d.ts vendored 100644
View File

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