react-toolkits 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.js +4 -0
  3. package/.turbo/turbo-build.log +20 -0
  4. package/CHANGELOG.md +10 -0
  5. package/dist/512_orange_nobackground-L6MFCL6M.png +0 -0
  6. package/dist/index.css +230 -0
  7. package/dist/index.css.map +1 -0
  8. package/dist/index.d.mts +191 -0
  9. package/dist/index.esm.js +3152 -0
  10. package/dist/index.esm.js.map +1 -0
  11. package/package.json +63 -0
  12. package/postcss.config.js +9 -0
  13. package/src/assets/512_orange_nobackground.png +0 -0
  14. package/src/components/DynamicTags/index.tsx +160 -0
  15. package/src/components/FilterForm/index.tsx +62 -0
  16. package/src/components/FormModal/hooks.tsx +48 -0
  17. package/src/components/FormModal/index.tsx +138 -0
  18. package/src/components/Highlight/index.tsx +51 -0
  19. package/src/components/PermissionButton/index.tsx +36 -0
  20. package/src/components/QueryList/index.tsx +158 -0
  21. package/src/components/index.ts +27 -0
  22. package/src/constants/index.ts +3 -0
  23. package/src/features/permission/components/PermissionList.tsx +129 -0
  24. package/src/features/permission/hooks/index.ts +140 -0
  25. package/src/features/permission/index.ts +5 -0
  26. package/src/features/permission/types/index.ts +33 -0
  27. package/src/hooks/index.ts +2 -0
  28. package/src/hooks/use-fetcher.tsx +102 -0
  29. package/src/hooks/use-permission.tsx +58 -0
  30. package/src/index.ts +7 -0
  31. package/src/layouts/Layout.tsx +81 -0
  32. package/src/layouts/NavBar.tsx +176 -0
  33. package/src/layouts/index.ts +6 -0
  34. package/src/pages/Login/default.tsx +864 -0
  35. package/src/pages/Login/index.tsx +111 -0
  36. package/src/pages/index.ts +4 -0
  37. package/src/pages/permission/RoleDetail.tsx +40 -0
  38. package/src/pages/permission/RoleList.tsx +226 -0
  39. package/src/pages/permission/UserList.tsx +248 -0
  40. package/src/pages/permission/index.tsx +31 -0
  41. package/src/shims.d.ts +20 -0
  42. package/src/stores/index.ts +3 -0
  43. package/src/stores/menu.ts +27 -0
  44. package/src/stores/queryTrigger.ts +27 -0
  45. package/src/stores/token.ts +25 -0
  46. package/src/styles/index.css +5 -0
  47. package/src/types/index.ts +27 -0
  48. package/tailwind.config.js +5 -0
  49. package/tsconfig.json +11 -0
  50. package/tsup.config.ts +26 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/tsup@7.1.0_postcss@8.4.27_typescript@5.1.6/node_modules/tsup/assets/esm_shims.js","../src/components/DynamicTags/index.tsx","../src/components/FilterForm/index.tsx","../src/components/FormModal/index.tsx","../src/components/FormModal/hooks.tsx","../src/components/Highlight/index.tsx","../src/stores/menu.ts","../src/stores/token.ts","../src/stores/queryTrigger.ts","../src/stores/index.ts","../src/hooks/use-fetcher.tsx","../src/hooks/use-permission.tsx","../src/hooks/index.ts","../src/components/PermissionButton/index.tsx","../src/components/QueryList/index.tsx","../src/components/index.ts","../src/features/permission/hooks/index.ts","../src/features/permission/components/PermissionList.tsx","../src/features/permission/types/index.ts","../src/features/permission/index.ts","../src/pages/permission/UserList.tsx","../src/pages/permission/RoleList.tsx","../src/pages/permission/RoleDetail.tsx","../src/index.ts","../src/pages/index.ts","../src/pages/Login/index.tsx","../src/constants/index.ts","../src/pages/Login/default.tsx","../src/pages/permission/index.tsx","../src/layouts/index.ts","../src/layouts/Layout.tsx","../src/layouts/NavBar.tsx"],"names":["Space","theme","jsx","jsxs","Button","Form","useRef","useState","_a","Modal","useEffect","create","persist","init_hooks","useCallback","swrKey","useSWRMutation","Typography","App","Card","Col","Input","Row","Tag","useMemo","Fragment","Link","Skeleton","Spin","useSWRImmutable","Navigate","UserList","RoleList","RoleDetail"],"mappings":"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AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH;AAAA,QACD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;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","sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import { PlusOutlined } from '@ant-design/icons'\nimport type { InputRef } from 'antd'\nimport { Input, Space, Tag, theme } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useRef, useState } from 'react'\n\nexport interface DynamicTagsProps {\n initialTags?: string[]\n addable?: boolean\n removable?: boolean\n // 返回 Promise。如果返回 Promise.resolve(true),则添加; 如果返回 Promise.resolve(false) 或 Promise.reject,则不添加\n addCallback?: (addedTag: string) => Promise<boolean>\n // 返回 Promise。如果返回 Promise.resolve(true),则删除; 如果返回 Promise.resolve(false) 或 Promise.reject,则不删除\n removeCallback?: (removedTag: string) => Promise<boolean>\n}\n\nconst DynamicTags: FC<DynamicTagsProps> = props => {\n const { initialTags, addable, removable, addCallback, removeCallback } = props\n const { token } = theme.useToken()\n const [tags, setTags] = useState<string[]>([])\n const [inputVisible, setInputVisible] = useState(false)\n const [inputValue, setInputValue] = useState('')\n const [editInputIndex, setEditInputIndex] = useState(-1)\n const [editInputValue, setEditInputValue] = useState<string>('')\n const inputRef = useRef<InputRef>(null)\n const editInputRef = useRef<InputRef>(null)\n\n useEffect(() => {\n setTags(initialTags ?? [])\n }, [initialTags])\n\n useEffect(() => {\n if (inputVisible) {\n inputRef.current?.focus()\n }\n }, [inputVisible])\n\n useEffect(() => {\n editInputRef.current?.focus()\n }, [inputValue])\n\n const handleClose = async (removedTag: string) => {\n const success = await removeCallback?.(removedTag)\n\n if (success) {\n const newTags = tags.filter(tag => tag !== removedTag)\n setTags(newTags)\n }\n }\n\n const showInput = () => {\n setInputVisible(true)\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value)\n }\n\n const handleInputConfirm = async () => {\n if (inputValue && tags.indexOf(inputValue) === -1) {\n const success = await addCallback?.(inputValue)\n\n if (success) {\n setTags([...tags, inputValue])\n }\n }\n\n setInputVisible(false)\n setInputValue('')\n }\n\n const handleEditInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setEditInputValue(e.target.value)\n }\n\n const handleEditInputConfirm = () => {\n const newTags = [...tags]\n newTags[editInputIndex] = editInputValue\n setTags(newTags)\n setEditInputIndex(-1)\n setInputValue('')\n }\n\n const tagInputStyle: React.CSSProperties = {\n width: 78,\n verticalAlign: 'top',\n }\n\n const tagPlusStyle: React.CSSProperties = {\n background: token.colorBgContainer,\n borderStyle: 'dashed',\n }\n\n return (\n <Space wrap size={[0, 8]}>\n <Space wrap size={[0, 8]}>\n {tags.map((tag, index) => {\n if (editInputIndex === index) {\n return (\n <Input\n ref={editInputRef}\n key={tag}\n size=\"small\"\n style={tagInputStyle}\n value={editInputValue}\n onChange={handleEditInputChange}\n onBlur={handleEditInputConfirm}\n onPressEnter={handleEditInputConfirm}\n />\n )\n }\n\n return (\n <Tag\n key={tag}\n closable={removable}\n style={{ userSelect: 'none' }}\n onClose={async e => {\n e.preventDefault()\n await handleClose(tag)\n }}\n >\n <span\n onDoubleClick={e => {\n if (index !== 0) {\n setEditInputIndex(index)\n setEditInputValue(tag)\n e.preventDefault()\n }\n }}\n >\n {tag}\n </span>\n </Tag>\n )\n })}\n </Space>\n {addable &&\n (inputVisible ? (\n <Input\n ref={inputRef}\n type=\"text\"\n size=\"small\"\n style={tagInputStyle}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputConfirm}\n onPressEnter={handleInputConfirm}\n />\n ) : (\n <Tag style={tagPlusStyle} onClick={showInput}>\n <PlusOutlined />\n &nbsp;添加\n </Tag>\n ))}\n </Space>\n )\n}\n\nexport default DynamicTags\n","import type { FormInstance, FormProps } from 'antd'\nimport { Button, Col, Form, Row, Space, theme } from 'antd'\nimport type { PropsWithChildren } from 'react'\n\nexport interface FilterFormProps<Values>\n extends Pick<\n FormProps<Values>,\n | 'initialValues'\n | 'requiredMark'\n | 'onError'\n | 'onChange'\n | 'onValuesChange'\n | 'onFinish'\n | 'onFinishFailed'\n | 'layout'\n | 'labelCol'\n > {\n form?: FormInstance<Values>\n onReset?: () => void\n confirmText?: React.ReactNode\n}\n\nconst FilterForm = <Values = unknown,>(props: PropsWithChildren<FilterFormProps<Values>>) => {\n const { children, confirmText, form, onReset, ...restProps } = props\n const { token } = theme.useToken()\n\n const formStyle = {\n maxWidth: 'none',\n background: token.colorFillAlter,\n borderWidth: token.lineWidth,\n borderStyle: token.lineType,\n borderColor: token.colorBorder,\n borderRadius: token.borderRadiusLG,\n padding: 24,\n marginBottom: 24,\n }\n\n return (\n <Form {...restProps} form={form} autoComplete=\"off\">\n {children && (\n <div style={formStyle}>\n <Row gutter={18}>\n {children}\n <Col flex=\"auto\" />\n <Col flex=\"auto\" span={24} style={{ textAlign: 'right' }}>\n <Space>\n <Button type=\"primary\" htmlType=\"submit\">\n {confirmText || '查询'}\n </Button>\n <Button htmlType=\"reset\" onClick={onReset}>\n 重置\n </Button>\n </Space>\n </Col>\n </Row>\n </div>\n )}\n </Form>\n )\n}\n\nexport default FilterForm\n","/* eslint-disable react/jsx-indent */\nimport type { FormInstance, FormProps, ModalProps } from 'antd'\nimport { Button, Form, Modal } from 'antd'\nimport type { ForwardedRef } from 'react'\nimport { forwardRef, useId, useImperativeHandle, useRef, useState } from 'react'\n\ntype RenderChildren<T> = (props: {\n form: FormInstance<T>\n open?: boolean\n closeFn?: VoidFunction\n}) => JSX.Element | JSX.Element[]\n\ntype ChildrenType<T> = RenderChildren<T> | JSX.Element | JSX.Element[]\n\nexport type RecursivePartial<T> = T extends object\n ? {\n [P in keyof T]?: T[P] extends (infer U)[]\n ? RecursivePartial<U>[]\n : T[P] extends object\n ? RecursivePartial<T[P]>\n : T[P]\n }\n : any\n\nexport interface FormModalProps<T>\n extends Pick<ModalProps, 'width' | 'title' | 'open' | 'afterClose' | 'bodyStyle' | 'maskClosable'>,\n Pick<FormProps, 'labelCol' | 'layout' | 'colon'> {\n children?: ChildrenType<T>\n footer?: ModalProps['footer']\n closeFn?: VoidFunction\n initialValues?: RecursivePartial<T>\n onConfirm?: (values: T) => void\n}\n\nexport interface FormModalRef<T = object> {\n setFieldsValue: (values: RecursivePartial<T>) => void\n}\n\nconst InternalFormModal = <T extends object>(props: FormModalProps<T>, ref: ForwardedRef<FormModalRef<T>>) => {\n const {\n width,\n children,\n title,\n open,\n footer,\n layout,\n labelCol,\n bodyStyle,\n initialValues,\n maskClosable,\n closeFn,\n afterClose,\n onConfirm,\n } = props\n const id = useId()\n const [form] = Form.useForm<T>()\n const formRef = useRef<FormInstance<T>>(null)\n const isRenderProps = typeof children === 'function'\n const [confirmLoading, setConfirmLoading] = useState(false)\n\n useImperativeHandle(ref, () => {\n return {\n setFieldsValue(values) {\n formRef.current?.setFieldsValue(values)\n },\n }\n })\n\n return (\n <Modal\n destroyOnClose\n bodyStyle={bodyStyle}\n style={{ textAlign: 'start' }}\n width={width}\n open={open}\n title={title}\n forceRender={true}\n getContainer={false}\n maskClosable={maskClosable}\n footer={\n typeof footer === 'object'\n ? footer\n : [\n <Button\n key=\"cancel\"\n onClick={() => {\n closeFn?.()\n }}\n >\n 取消\n </Button>,\n <Button form={id} key=\"submit\" type=\"primary\" htmlType=\"submit\" loading={confirmLoading}>\n 确定\n </Button>,\n ]\n }\n afterClose={() => {\n afterClose?.()\n form.resetFields()\n }}\n onCancel={closeFn}\n >\n <Form\n form={form}\n ref={formRef}\n id={id}\n autoComplete=\"off\"\n labelAlign=\"right\"\n labelWrap={true}\n layout={layout}\n initialValues={initialValues}\n labelCol={\n labelCol || {\n flex: !layout || layout === 'horizontal' ? '120px' : '0',\n }\n }\n onFinish={async values => {\n try {\n setConfirmLoading(true)\n await onConfirm?.(values)\n closeFn?.()\n form.resetFields()\n } finally {\n setConfirmLoading(false)\n }\n }}\n >\n {isRenderProps ? children({ form, open, closeFn }) : children}\n </Form>\n </Modal>\n )\n}\n\nconst FormModal = forwardRef(InternalFormModal) as <T extends object>(\n props: FormModalProps<T> & { ref?: ForwardedRef<FormModalRef<T>> },\n) => React.ReactElement\n\nexport default FormModal\n","import type { FormModalProps, FormModalRef, RecursivePartial } from './index'\nimport FormModal from './index'\nimport { useCallback, useMemo, useRef, useState } from 'react'\nimport type { Merge } from 'ts-essentials'\nimport { createPortal } from 'react-dom'\n\nexport type UseFormModalProps<T> = Merge<\n Omit<FormModalProps<T>, 'open' | 'onCancel' | 'closeFn' | 'children' | 'onConfirm'>,\n {\n content: FormModalProps<T>['children']\n onConfirm?: (values: T) => void\n }\n>\n\nexport function useFormModal<T extends object>(props: UseFormModalProps<T>) {\n const { content, onConfirm, ...restProps } = props\n const [open, setOpen] = useState(false)\n const [title, setTitle] = useState<FormModalProps<T>['title']>()\n const formRef = useRef<FormModalRef>(null)\n\n const showModal = (options?: { initialValues?: RecursivePartial<T>; title?: FormModalProps<T>['title'] }) => {\n setTitle(options?.title ?? restProps.title)\n\n if (options?.initialValues) {\n formRef.current?.setFieldsValue(options?.initialValues)\n }\n\n setOpen(true)\n }\n\n const closeModal = useCallback(() => {\n setOpen(false)\n }, [])\n\n const Modal = useMemo(() => {\n return (\n <FormModal {...restProps} open={open} closeFn={closeModal} title={title} onConfirm={onConfirm}>\n {content}\n </FormModal>\n )\n }, [title, content, restProps, open, closeModal, onConfirm])\n\n return {\n Modal: createPortal(Modal, document.body),\n showModal,\n closeModal,\n }\n}\n","import type { PropsWithChildren, ReactNode } from 'react'\nimport { useEffect, useState } from 'react'\nimport { flushSync } from 'react-dom'\nimport { createRoot } from 'react-dom/client'\n\nconst splitByTags = (str: string) => {\n const regex = /(<[^>]*>)/\n return str.split(regex).filter(part => part !== '')\n}\n\nfunction renderToString(node: ReactNode): Promise<string> {\n const container = document.createElement('div')\n const root = createRoot(container)\n\n return new Promise(resolve => {\n setTimeout(() => {\n flushSync(() => {\n root.render(node)\n })\n resolve(container.innerHTML)\n })\n })\n}\n\nexport interface HighlightTextsProps extends PropsWithChildren {\n texts: Array<string | number>\n}\n\nconst Highlight = (props: HighlightTextsProps) => {\n const { texts, children } = props\n const [htmlString, setHtmlString] = useState<string>('')\n\n useEffect(() => {\n renderToString(children).then(str => {\n const result = splitByTags(str)\n\n for (const text of texts) {\n for (let index = 0; index < result.length; index++) {\n // TODO: 忽略 HTML tag\n result[index] = result[index].replace(String(text), `<span style='color: #DC143C;'>${text}</span>`)\n }\n }\n\n setHtmlString(result.join(''))\n })\n }, [children, texts])\n\n return <p dangerouslySetInnerHTML={{ __html: htmlString }}></p>\n}\n\nexport default Highlight\n","import { create } from 'zustand'\nimport { persist } from 'zustand/middleware'\n\nexport interface MenuState {\n openKeys: string[]\n selectedKeys: string[]\n setOpenKeys: (keys: string[]) => void\n setSelectedKeys: (keys: string[]) => void\n}\n\nexport const useMenuStore = create<MenuState>()(\n persist(\n set => ({\n openKeys: [],\n selectedKeys: [],\n setOpenKeys: keys => set({ openKeys: keys }),\n setSelectedKeys: keys => set({ selectedKeys: keys }),\n }),\n {\n name: 'menu',\n partialize: state => ({\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n }),\n },\n ),\n)\n","import { create } from 'zustand'\nimport { persist } from 'zustand/middleware'\n\nexport interface TokenState {\n token: string\n setToken: (token: string) => void\n clearToken: () => void\n}\n\nexport const useTokenStore = create<TokenState>()(\n persist(\n set => ({\n token: '',\n setToken: token => set({ token }),\n clearToken: () => {\n set({ token: '' })\n useTokenStore.persist.clearStorage()\n },\n }),\n {\n name: 'token',\n partialize: state => ({ token: state.token }),\n },\n ),\n)\n","import type { QueryListKey } from '@/components/QueryList'\nimport type { PaginationParams } from '@/types'\nimport { create } from 'zustand'\n\ntype TriggerFunction = (arg?: Partial<PaginationParams>) => void\n\nexport interface QueryTriggerState {\n triggers: Map<QueryListKey, TriggerFunction>\n setTrigger: (key: QueryListKey, trigger: TriggerFunction) => void\n trigger: (key: QueryListKey, arg?: Partial<PaginationParams>) => void\n}\n\nexport const useQueryTriggerStore = create<QueryTriggerState>((set, get) => ({\n triggers: new Map(),\n setTrigger: (key: QueryListKey, trigger: TriggerFunction) => {\n set({\n triggers: new Map(get().triggers).set(key, trigger),\n })\n },\n trigger: (key: QueryListKey, arg?: Partial<PaginationParams>) => {\n const trigger = get().triggers.get(key)\n\n if (trigger) {\n trigger(arg)\n }\n },\n}))\n","export * from './menu'\nexport * from './token'\nexport * from './queryTrigger'\n","import { useTokenStore } from '@/stores'\nimport type { BackendResponse } from '@/types'\nimport { App } from 'antd'\nimport type { AxiosError, AxiosInstance, AxiosRequestConfig } from 'axios'\nimport axios from 'axios'\nimport { useNavigate } from 'react-router-dom'\nimport type { Merge } from 'ts-essentials'\n\n// 覆盖 AxiosInstance 各种请求方法的返回值,为了方便我们在 interceptors.response 里把 AxiosResponse 直接打平成后端返回的数据,去掉了 axios 的封装。\ntype ShimmedAxiosInstance = Merge<\n AxiosInstance,\n {\n request<T = unknown, D = unknown>(config: AxiosRequestConfig<D>): Promise<T>\n get<T = unknown, D = unknown>(url: string, config?: AxiosRequestConfig<D>): Promise<T>\n delete<T = unknown, D = unknown>(url: string, config?: AxiosRequestConfig<D>): Promise<T>\n head<T = unknown, D = unknown>(url: string, config?: AxiosRequestConfig<D>): Promise<T>\n post<T = unknown, D = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig<D>): Promise<T>\n put<T = unknown, D = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig<D>): Promise<T>\n patch<T = unknown, D = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig<D>): Promise<T>\n }\n>\n\nexport class FetcherError extends Error {\n code: number\n // 跳过错误提示\n skip: boolean\n\n constructor(message: string, code: number, skip = false) {\n super(message)\n this.code = code\n this.skip = skip\n }\n}\n\nexport function useFetcher() {\n const { notification } = App.useApp()\n const clearToken = useTokenStore(state => state.clearToken)\n const navigate = useNavigate()\n const token = useTokenStore(state => state.token)\n\n const defaultOptions: AxiosRequestConfig = {\n withCredentials: true,\n }\n\n const instance = axios.create(defaultOptions) as ShimmedAxiosInstance\n\n instance.interceptors.request.use(config => {\n const headers = config.headers\n headers.set('Authorization', `Bearer ${token}`)\n return config\n })\n\n instance.interceptors.response.use(\n response => {\n if (response.data.code === 0 || response.data.status === 0) {\n return response.data.data\n }\n\n throw new FetcherError(response.data.msg, 0)\n },\n (error: AxiosError<BackendResponse<unknown>>) => {\n if (error.response) {\n // 请求成功发出且服务器也响应了状态码,但状态码超出了 2xx 的范围\n if (error.response.status === 401) {\n throw new FetcherError('未登录或登录已过期', error.response.status)\n } else if (error.response.status === 403) {\n throw new FetcherError('无权限,请联系管理员进行授权', error.response.status)\n } else if ([404, 405].includes(error.response.status)) {\n throw new FetcherError('Not Found or Method not Allowed', error.response.status, true)\n } else if (error.response.status === 412) {\n throw new FetcherError('未注册用户', error.response.status)\n } else {\n throw new FetcherError(error.response.data?.msg, error.response.status)\n }\n } else if (error.request) {\n // 请求已经成功发起,但没有收到响应\n console.log(error.request)\n }\n\n return Promise.reject(error)\n },\n )\n\n return <T = unknown,>(config: AxiosRequestConfig) =>\n instance.request<T>(config).catch((err: FetcherError) => {\n switch (err.code) {\n case 401:\n case 412:\n clearToken()\n navigate(err.code === 401 ? '/login' : '/login?not_registered=1', { replace: true })\n break\n default:\n if (!err.skip) {\n notification.error({\n message: '请求出错',\n description: err.message,\n })\n }\n }\n throw err\n })\n}\n","import useSWRImmutable from 'swr/immutable'\nimport { useFetcher } from './use-fetcher'\n\nexport interface PermissionCheckResult {\n [k: string]: boolean\n}\n\nexport function usePermissions(codes: Record<string, string>) {\n const fetcher = useFetcher()\n\n const { data, isLoading } = useSWRImmutable(\n Object.keys(codes).length > 0\n ? {\n method: 'POST',\n url: '/api/usystem/user/check',\n data: { permissions: Object.values(codes) },\n }\n : null,\n config =>\n fetcher<PermissionCheckResult>(config).then(res => {\n if (res.has_all) {\n return Object.keys(codes).reduce(\n (acc, curr) => {\n acc[curr] = true\n return acc\n },\n {} as Record<string, boolean>,\n )\n }\n\n return Object.entries(codes).reduce(\n (acc, curr) => {\n acc[curr[0]] = (res as Record<string, boolean>)[curr[1] as string]\n return acc\n },\n {} as Record<string, boolean>,\n )\n }),\n )\n\n return { data, isLoading }\n}\n\nexport function usePermission(code?: string) {\n const { data, isLoading } = usePermissions(code ? { [code]: code } : {})\n\n if (!code) {\n return {\n accessible: true,\n isValidating: false,\n }\n }\n\n return {\n accessible: data?.[code] ?? false,\n isValidating: isLoading,\n }\n}\n","export * from './use-fetcher'\nexport * from './use-permission'\n","import { usePermission } from '@/hooks'\nimport type { ButtonProps } from 'antd'\nimport { Button, Tooltip } from 'antd'\nimport type { FC, PropsWithChildren } from 'react'\n\nexport interface PermissionButtonProps extends Omit<ButtonProps, 'disabled'> {\n code: string\n showLoading?: boolean\n}\n\nconst PermissionButton: FC<PropsWithChildren<PermissionButtonProps>> = props => {\n const { children, code, showLoading, ...restProps } = props\n const { accessible, isValidating } = usePermission(code)\n\n if (isValidating) {\n return (\n <Button loading={showLoading} disabled={!showLoading} {...restProps}>\n {children}\n </Button>\n )\n }\n\n if (!accessible) {\n return (\n <Tooltip defaultOpen={false} title=\"无权限,请联系管理员进行授权\">\n <Button disabled {...restProps}>\n {children}\n </Button>\n </Tooltip>\n )\n }\n\n return <Button {...restProps}>{children}</Button>\n}\n\nexport default PermissionButton\n","import { useFetcher, usePermission } from '@/hooks'\nimport { useQueryTriggerStore } from '@/stores'\nimport type { ListResponse, PaginationParams } from '@/types'\nimport type { FormInstance, FormProps } from 'antd'\nimport { Form, Result, Spin, Table } from 'antd'\nimport type { TableProps } from 'antd/es/table'\nimport type { AxiosRequestConfig } from 'axios'\nimport type { ReactNode } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport useSWRMutation from 'swr/mutation'\nimport FilterForm from '../FilterForm'\n\nexport type QueryListKey = Omit<AxiosRequestConfig, 'data' | 'params'>\n\nexport interface QueryListProps<Item, Values>\n extends Pick<TableProps<Item>, 'columns' | 'rowKey' | 'tableLayout' | 'expandable' | 'rowSelection' | 'bordered'>,\n Pick<FormProps<Values>, 'initialValues' | 'labelCol'> {\n // 由于表单的值和分页数据是封装在组件内部的,不便于在组件外部构造 swr key,所以组件内部的 useSWRMutation hook 使用的 key 是排除了 arg 字段的。\n // 因此 swr 的缓存并未发挥作用,同一个 key 的所有页面共享缓存。\n swrKey: QueryListKey\n confirmText?: ReactNode\n code?: string\n renderForm?: (form: FormInstance<Values>) => ReactNode\n // 把表单的值和分页数据转换成请求参数\n transformArg?: (arg: Values & PaginationParams) => unknown\n}\n\nconst QueryList = <Item extends object, Values = NonNullable<unknown>>(props: QueryListProps<Item, Values>) => {\n const { code, confirmText, labelCol, swrKey, renderForm, transformArg, initialValues, ...tableProps } = props\n const { accessible, isValidating } = usePermission(code)\n const [form] = Form.useForm<Values>()\n const setTrigger = useQueryTriggerStore(state => state.setTrigger)\n\n const [paginationData, setPaginationData] = useState<PaginationParams>({\n page: 1,\n perPage: 10,\n })\n\n const fetcher = useFetcher()\n\n const { data, isMutating, trigger } = useSWRMutation(\n swrKey,\n async (\n key,\n {\n arg,\n }: {\n arg?: Partial<PaginationParams>\n },\n ) => {\n const newPaginationData = {\n page: arg?.page ?? paginationData.page ?? 1,\n perPage: arg?.perPage ?? paginationData.perPage ?? 10,\n }\n\n setPaginationData(newPaginationData)\n\n const values = form.getFieldsValue()\n\n const fetcherArg = {\n ...values,\n ...newPaginationData,\n }\n\n return fetcher<ListResponse<Item>>({\n ...key,\n // TODO: 兼容 params 与 data\n params: typeof transformArg === 'function' ? transformArg(fetcherArg) : fetcherArg,\n })\n },\n )\n\n const onFinish = async () => {\n await trigger({ page: 1 })\n }\n\n const onReset = useCallback(async () => {\n try {\n form.resetFields()\n await form.validateFields()\n await trigger({ page: 1 })\n } catch (_) {\n console.log('表单校验失败')\n }\n }, [form, trigger])\n\n const onPaginationChange = useCallback(\n async (currentPage: number, currentSize: number) => {\n await trigger({\n page: currentPage,\n perPage: currentSize,\n })\n },\n [trigger],\n )\n\n useEffect(() => {\n setTrigger(swrKey, trigger)\n }, [swrKey, setTrigger, trigger])\n\n useEffect(() => {\n ;(async () => {\n try {\n await form.validateFields()\n await trigger()\n } catch (_) {\n form.resetFields()\n }\n })()\n }, [form, trigger])\n\n if (isValidating) {\n return (\n <Spin\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 200,\n }}\n />\n )\n }\n\n if (!accessible) {\n return <Result status={403} subTitle=\"无权限,请联系管理员进行授权\" />\n }\n\n return (\n <>\n <FilterForm<Values>\n initialValues={initialValues}\n form={form}\n labelCol={labelCol}\n confirmText={confirmText}\n onFinish={onFinish}\n onReset={onReset}\n >\n {renderForm?.(form)}\n </FilterForm>\n <Table\n {...tableProps}\n dataSource={data?.List}\n loading={isMutating}\n pagination={{\n showSizeChanger: true,\n showQuickJumper: true,\n current: paginationData.page,\n pageSize: paginationData.perPage,\n total: data?.Total,\n onChange: onPaginationChange,\n }}\n />\n </>\n )\n}\n\nexport default QueryList\n","import type { DynamicTagsProps } from './DynamicTags'\nimport DynamicTags from './DynamicTags'\nimport type { FilterFormProps } from './FilterForm'\nimport FilterForm from './FilterForm'\nimport type { FormModalProps, FormModalRef } from './FormModal'\nimport FormModal from './FormModal'\nimport type { UseFormModalProps } from './FormModal/hooks'\nimport { useFormModal } from './FormModal/hooks'\nimport type { HighlightTextsProps } from './Highlight'\nimport Highlight from './Highlight'\nimport type { PermissionButtonProps } from './PermissionButton'\nimport PermissionButton from './PermissionButton'\nimport type { QueryListKey, QueryListProps } from './QueryList'\nimport QueryList from './QueryList'\n\nexport { FormModal, PermissionButton, DynamicTags, QueryList, FilterForm, Highlight, useFormModal }\nexport type {\n DynamicTagsProps,\n FilterFormProps,\n UseFormModalProps,\n FormModalProps,\n FormModalRef,\n QueryListProps,\n QueryListKey,\n HighlightTextsProps,\n PermissionButtonProps,\n}\n","import { useFetcher, usePermission } from '@/hooks'\nimport useSWR from 'swr'\nimport useSWRMutation from 'swr/mutation'\nimport type { PermissionEnumItem, RoleEnumItem } from '../types'\n\nexport function useAllPermissions() {\n return useSWR<PermissionEnumItem[]>({\n url: '/api/usystem/user/allPermssions',\n })\n}\n\nexport function useAllRoles() {\n const { accessible } = usePermission('200005')\n\n return useSWR<RoleEnumItem[]>(\n accessible\n ? {\n url: '/api/usystem/role/all',\n }\n : null,\n )\n}\n\nexport function useRole(name: string) {\n return useSWR({\n url: '/api/usystem/role/info',\n params: { name },\n })\n}\n\nexport function useCreateRole() {\n const fetcher = useFetcher()\n\n return useSWRMutation(\n '/api/usystem/role/create',\n (\n url,\n {\n arg,\n }: {\n arg: { name: string; permissions: string[] }\n },\n ) => fetcher({ method: 'POST', url, data: arg }),\n )\n}\n\nexport function useUpdateRole() {\n const fetcher = useFetcher()\n\n return useSWRMutation(\n '/api/usystem/role/update',\n (\n url,\n {\n arg,\n }: {\n arg: { id: number; name: string; permissions: string[] }\n },\n ) => fetcher({ method: 'POST', url, data: arg }),\n )\n}\n\nexport function useRemoveRole() {\n const fetcher = useFetcher()\n\n return useSWRMutation(\n '/api/usystem/role/delete',\n (\n url,\n {\n arg,\n }: {\n arg: { id: number; name: string }\n },\n ) => fetcher({ method: 'POST', url, data: arg }),\n )\n}\n\nexport function useCreateUser() {\n const fetcher = useFetcher()\n\n return useSWRMutation(\n '/api/usystem/user/create',\n (\n url,\n {\n arg,\n }: {\n arg: { name: string; roles: string[] }\n },\n ) =>\n fetcher({\n method: 'POST',\n url,\n data: arg,\n }),\n )\n}\n\nexport function useUpdateUser() {\n const fetcher = useFetcher()\n\n return useSWRMutation(\n '/api/usystem/user/update',\n (\n url,\n {\n arg,\n }: {\n arg: { id: string; name: string; roles: string[] }\n },\n ) =>\n fetcher({\n method: 'POST',\n url,\n data: arg,\n }),\n )\n}\n\nexport function useRemoveUser() {\n const fetcher = useFetcher()\n\n return useSWRMutation(\n '/api/usystem/user/delete',\n (\n url,\n {\n arg,\n }: {\n arg: { id: string; name: string }\n },\n ) =>\n fetcher({\n method: 'POST',\n url,\n data: arg,\n }),\n )\n}\n","import { Checkbox, Collapse, Skeleton, Typography } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { CheckboxValueType } from 'antd/es/checkbox/Group'\nimport { useEffect, useState } from 'react'\nimport { useAllPermissions } from '../hooks'\n\nconst { Text } = Typography\n\nconst PermissionList = ({\n expand = true,\n value,\n readonly,\n onChange,\n}: {\n expand?: boolean\n value?: CheckboxValueType[]\n readonly?: boolean\n onChange?: (checkedValue: CheckboxValueType[]) => void\n}) => {\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [internalValue, setInternalValue] = useState<CheckboxValueType[]>(value ?? [])\n const { data: permissions, isLoading, error } = useAllPermissions()\n\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n setActiveKey((permissions ?? []).map(({ category }) => category))\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n const onCollapseChange = (key: string | string[]) => {\n setActiveKey(key as string[])\n }\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: CheckboxValueType[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, category: string, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">权限获取失败</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={(permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.category,\n item.permissions.map(permission => permission.value),\n )\n }}\n >\n 全选\n </Checkbox>\n ),\n children: (\n <Checkbox.Group\n style={{ width: '100%' }}\n options={item.permissions.map(permission => ({\n label: permission.label,\n value: permission.value,\n disabled: readonly,\n onChange(e) {\n onCheckChange(e, item.category, [permission.value])\n },\n }))}\n value={internalValue}\n />\n ),\n }))}\n onChange={onCollapseChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionList\n","export interface PermissionEnumItem {\n category: string\n permissions: {\n label: string\n value: string\n route: string\n }[]\n}\n\nexport interface RoleEnumItem {\n id: string\n name: string\n}\n\nexport interface RoleListItem {\n id: number\n name: string\n ctime: string\n}\n\nexport interface Role {\n id: number\n name: string\n ctime: string\n permissions: string[]\n}\n\nexport interface UserListItem {\n id: string\n name: string\n ctime: string\n roles: string[]\n}\n","import PermissionList from './components/PermissionList'\n\nexport * from './hooks'\nexport * from './types'\nexport { PermissionList }\n","import { Highlight, PermissionButton, QueryList } from '@/components'\nimport { useFormModal } from '@/components/FormModal/hooks'\nimport type { UserListItem } from '@/features/permission'\nimport { useAllRoles, useCreateUser, useRemoveUser, useUpdateUser } from '@/features/permission'\nimport { useQueryTriggerStore } from '@/stores'\nimport { UserAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Col, Form, Input, Row, Select, Space, Tag } from 'antd'\nimport type { FC } from 'react'\nimport { useMemo } from 'react'\nimport { Link } from 'react-router-dom'\n\nconst { Option } = Select\n\nexport const swrKey = {\n url: '/api/usystem/user/list',\n}\n\nfunction useCreatingUserModal() {\n const { message } = App.useApp()\n const create = useCreateUser()\n const { data: roles, isLoading } = useAllRoles()\n const trigger = useQueryTriggerStore(state => state.trigger)\n\n return useFormModal<{ id: string; name: string; roles: string[] }>({\n title: '创建角色',\n labelCol: { flex: '80px' },\n content: (\n <>\n <Form.Item noStyle shouldUpdate={(prevValues, currentValue) => prevValues.type !== currentValue.type}>\n {({ getFieldValue }) => (\n <Form.Item label=\"名称\" name=\"name\" rules={[{ required: true }]}>\n <Input disabled={getFieldValue('id')} />\n </Form.Item>\n )}\n </Form.Item>\n <Form.Item label=\"角色\" name=\"roles\">\n <Select allowClear mode=\"multiple\" loading={isLoading}>\n {(roles ?? []).map(role => (\n <Option value={role.name} key={role.id}>\n {role.name}\n </Option>\n ))}\n </Select>\n </Form.Item>\n </>\n ),\n async onConfirm(values) {\n await create.trigger(values, {\n onSuccess() {\n message.success('用户创建成功')\n trigger(swrKey)\n },\n })\n },\n })\n}\n\nfunction useUpdatingUserModal() {\n const { message } = App.useApp()\n const update = useUpdateUser()\n const { data: roles, isLoading } = useAllRoles()\n const trigger = useQueryTriggerStore(state => state.trigger)\n\n return useFormModal<{ id: string; name: string; roles: string[] }>({\n title: '更新角色',\n labelCol: { flex: '80px' },\n content: (\n <>\n <Form.Item hidden name=\"id\">\n <Input />\n </Form.Item>\n <Form.Item noStyle shouldUpdate={(prevValues, currentValue) => prevValues.type !== currentValue.type}>\n {({ getFieldValue }) => (\n <Form.Item label=\"名称\" name=\"name\" rules={[{ required: true }]}>\n <Input disabled={getFieldValue('id')} />\n </Form.Item>\n )}\n </Form.Item>\n <Form.Item label=\"角色\" name=\"roles\">\n <Select allowClear mode=\"multiple\" loading={isLoading}>\n {(roles ?? []).map(role => (\n <Option value={role.name} key={role.id}>\n {role.name}\n </Option>\n ))}\n </Select>\n </Form.Item>\n </>\n ),\n async onConfirm(values) {\n await update.trigger(values, {\n onSuccess() {\n message.success('用户更新成功')\n trigger(swrKey)\n },\n })\n },\n })\n}\n\nconst UserList: FC = () => {\n const { modal, message } = App.useApp()\n const remove = useRemoveUser()\n const trigger = useQueryTriggerStore(state => state.trigger)\n const { showModal: showCreatingModal, Modal: CreatingModal } = useCreatingUserModal()\n const { showModal: showUpdatingModal, Modal: UpdatingModal } = useUpdatingUserModal()\n\n const columns = useMemo<TableColumnsType<UserListItem>>(() => {\n return [\n {\n title: '名称',\n dataIndex: 'name',\n key: 'name',\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: '角色',\n dataIndex: 'roles',\n key: 'roles',\n width: '40%',\n render(value: string[]) {\n return (\n <Row gutter={[4, 4]}>\n {(value || []).map((item: string) => (\n <Col key={item}>\n {item === 'root' ? (\n <Tag color=\"#f50\">{item}</Tag>\n ) : (\n <Tag color=\"#ff5a00\">\n <Link to={`/permission/role/${item}`}>{item}</Link>\n </Tag>\n )}\n </Col>\n ))}\n </Row>\n )\n },\n },\n {\n title: '创建时间',\n dataIndex: 'Ctime',\n key: 'ctime',\n },\n {\n title: '操作',\n width: 150,\n align: 'center',\n render: (value: UserListItem) => (\n <Space>\n <PermissionButton\n size=\"small\"\n type=\"link\"\n code=\"100003\"\n onClick={() => {\n showUpdatingModal({\n initialValues: {\n id: value.id,\n name: value.name,\n roles: value.roles,\n },\n })\n }}\n >\n 更新\n </PermissionButton>\n <PermissionButton\n danger\n size=\"small\"\n code=\"100004\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: '删除用户',\n content: <Highlight texts={[value.name]}>\n 确定要删除用户&nbsp;\n {value.name}\n&nbsp;吗?\n </Highlight>,\n async onOk() {\n await remove.trigger(\n {\n id: value.id,\n name: value.name,\n },\n {\n async onSuccess() {\n await message.success('用户删除成功')\n trigger(swrKey)\n },\n },\n )\n },\n })\n }}\n >\n 删除\n </PermissionButton>\n </Space>\n ),\n },\n ]\n }, [trigger, remove, message, modal, showUpdatingModal])\n\n return (\n <>\n <Card\n title=\"用户\"\n extra={\n <PermissionButton\n type=\"primary\"\n icon={<UserAddOutlined />}\n code=\"100002\"\n onClick={() => {\n showCreatingModal()\n }}\n >\n 创建用户\n </PermissionButton>\n }\n >\n <QueryList\n code=\"100001\"\n swrKey={swrKey}\n rowKey=\"id\"\n columns={columns}\n transformArg={arg => {\n const { page, perPage, ...restValues } = arg\n\n return {\n ...(restValues ?? {}),\n page,\n size: perPage,\n }\n }}\n />\n </Card>\n {CreatingModal}\n {UpdatingModal}\n </>\n )\n}\n\nexport default UserList\n","import { Highlight, PermissionButton, QueryList } from '@/components'\nimport { useFormModal } from '@/components/FormModal/hooks'\nimport type { Role, RoleListItem } from '@/features/permission'\nimport { PermissionList, useCreateRole, useRemoveRole, useUpdateRole } from '@/features/permission'\nimport { useFetcher, usePermission } from '@/hooks'\nimport { useQueryTriggerStore } from '@/stores'\nimport { UsergroupAddOutlined } from '@ant-design/icons'\nimport type { TableColumnsType } from 'antd'\nimport { App, Card, Form, Input, Space } from 'antd'\nimport { useMemo } from 'react'\nimport { Link } from 'react-router-dom'\n\nexport const swrKey = {\n url: '/api/usystem/role/list',\n}\n\nconst RoleList = () => {\n const { accessible: viewable } = usePermission('200005')\n const { modal, message } = App.useApp()\n const fetcher = useFetcher()\n const create = useCreateRole()\n const remove = useRemoveRole()\n const update = useUpdateRole()\n const trigger = useQueryTriggerStore(state => state.trigger)\n\n const { showModal: showCreateModal, Modal: CreateModal } = useFormModal<{\n name: string\n permissions: string[]\n }>({\n title: '创建角色',\n width: '50vw',\n layout: 'vertical',\n content: (\n <>\n <Form.Item label=\"名称\" name=\"name\" rules={[{ required: true }]}>\n <Input addonBefore=\"role_\" />\n </Form.Item>\n <Form.Item label=\"权限\" name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n ),\n async onConfirm(values) {\n await create.trigger(\n {\n name: `role_${values.name}`,\n permissions: values.permissions,\n },\n {\n async onSuccess() {\n await message.success('角色创建成功')\n trigger(swrKey)\n },\n },\n )\n },\n })\n\n const { showModal: showUpdateModal, Modal: UpdateModal } = useFormModal<{\n id: number\n name: string\n permissions: string[]\n }>({\n title: '更新角色',\n width: '50vw',\n layout: 'vertical',\n content: (\n <>\n <Form.Item hidden label=\"ID\" name=\"id\">\n <Input />\n </Form.Item>\n <Form.Item label=\"名称\" name=\"name\" rules={[{ required: true }]}>\n <Input disabled addonBefore=\"role_\" />\n </Form.Item>\n <Form.Item label=\"权限\" name=\"permissions\">\n <PermissionList />\n </Form.Item>\n </>\n ),\n async onConfirm(values) {\n await update.trigger(\n {\n id: values.id,\n name: `role_${values.name}`,\n permissions: values.permissions,\n },\n {\n async onSuccess() {\n await message.success('角色更新成功')\n trigger(swrKey)\n },\n },\n )\n },\n })\n\n const columns = useMemo<TableColumnsType<RoleListItem>>(\n () => [\n {\n title: '名称',\n key: 'name',\n render(value: RoleListItem) {\n if (viewable) {\n return <Link to={`${value.name}`}>{value.name}</Link>\n } else {\n return <>{value.name}</>\n }\n },\n },\n {\n title: 'ID',\n dataIndex: 'id',\n key: 'id',\n },\n {\n title: '创建时间',\n dataIndex: 'ctime',\n key: 'ctime',\n },\n {\n title: '操作',\n width: 150,\n align: 'center',\n render: (value: RoleListItem) => {\n return (\n <Space size=\"small\">\n <PermissionButton\n code=\"200003\"\n size=\"small\"\n type=\"link\"\n onClick={async () => {\n const role = await fetcher<Role>({\n method: 'GET',\n url: '/api/usystem/role/info',\n params: { name: value.name },\n })\n showUpdateModal({\n initialValues: {\n id: role?.id,\n permissions: role?.permissions,\n name: role?.name.replace(/^role_/, ''),\n },\n })\n }}\n >\n 更新\n </PermissionButton>\n <PermissionButton\n danger\n code=\"200004\"\n size=\"small\"\n type=\"link\"\n onClick={() => {\n modal.confirm({\n title: '删除角色',\n content: <Highlight texts={[value.name]}>\n 确定要删除角色&nbsp;\n {value.name}\n&nbsp;吗?\n </Highlight>,\n async onOk() {\n await remove.trigger(\n {\n id: value.id,\n name: value.name,\n },\n {\n async onSuccess() {\n await message.success('角色删除成功')\n trigger(swrKey)\n },\n },\n )\n },\n })\n }}\n >\n 删除\n </PermissionButton>\n </Space>\n )\n },\n },\n ],\n [trigger, viewable, fetcher, modal, message, remove, showUpdateModal],\n )\n\n return (\n <>\n <Card\n title=\"角色\"\n extra={\n <PermissionButton\n type=\"primary\"\n code=\"200002\"\n icon={<UsergroupAddOutlined />}\n onClick={() => {\n showCreateModal()\n }}\n >\n 创建角色\n </PermissionButton>\n }\n >\n <QueryList\n rowKey=\"name\"\n columns={columns}\n code=\"200001\"\n swrKey={swrKey}\n transformArg={arg => {\n const { page, perPage, ...restValues } = arg\n return {\n ...restValues,\n page,\n size: perPage,\n }\n }}\n />\n </Card>\n {CreateModal}\n {UpdateModal}\n </>\n )\n}\n\nexport default RoleList\n","import { PermissionList, useRole } from '@/features/permission'\nimport { Breadcrumb, Card, Descriptions, Skeleton } from 'antd'\nimport { Link, useParams } from 'react-router-dom'\n\nconst RoleDetail = () => {\n const params = useParams()\n const { data, isLoading } = useRole(params.name as string)\n\n return (\n <>\n <Breadcrumb\n style={{ marginBottom: 24 }}\n items={[\n {\n key: '1',\n title: <Link to=\"/permission/role\">角色</Link>,\n },\n {\n key: '2',\n title: params.name,\n },\n ]}\n />\n <Card title=\"权限详情\">\n <Skeleton loading={isLoading}>\n <Descriptions column={3} layout=\"vertical\">\n <Descriptions.Item label=\"名称\">{data?.name}</Descriptions.Item>\n <Descriptions.Item label=\"ID\">{data?.id}</Descriptions.Item>\n <Descriptions.Item label=\"创建时间\">{data?.ctime}</Descriptions.Item>\n <Descriptions.Item label=\"权限\" span={3}>\n <PermissionList readonly value={data?.permissions} />\n </Descriptions.Item>\n </Descriptions>\n </Skeleton>\n </Card>\n </>\n )\n}\n\nexport default RoleDetail\n","import './styles/index.css'\n\nexport * from './components'\nexport * from './hooks'\nexport * from './stores'\nexport * from './pages'\nexport * from './layouts'\n","import Login from './Login'\nimport permission from './permission'\n\nexport { Login, permission }\n","import { SSO_URL } from '@/constants'\nimport { useTokenStore } from '@/stores'\nimport { AliyunOutlined } from '@ant-design/icons'\nimport { Alert, Button, Card, Col, Divider, Row, Space, Spin, Typography } from 'antd'\nimport type { FC, PropsWithChildren } from 'react'\nimport { useEffect, useState } from 'react'\nimport { Navigate, useSearchParams } from 'react-router-dom'\nimport useSWRImmutable from 'swr/immutable'\nimport Default from './default'\n\nconst { Title } = Typography\n\nconst Login: FC<PropsWithChildren> = props => {\n const { children } = props\n const [searchParams, setSearchParams] = useSearchParams()\n const token = useTokenStore(state => state.token)\n const setToken = useTokenStore(state => state.setToken)\n const [showAlert, setShowAlert] = useState(false)\n\n const { isLoading } = useSWRImmutable<{ token: string }>(\n searchParams.has('ticket')\n ? {\n url: '/api/usystem/user/login',\n params: {\n ticket: searchParams.get('ticket'),\n },\n }\n : null,\n {\n onSuccess: data => {\n setToken(data.token)\n },\n },\n )\n\n useEffect(() => {\n if (searchParams.has('not_registered')) {\n setShowAlert(true)\n searchParams.delete('not_registered')\n setSearchParams(searchParams)\n }\n }, [searchParams, setSearchParams])\n\n if (isLoading) {\n return (\n <Spin\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100vw',\n height: '100vh',\n }}\n />\n )\n }\n\n if (token) {\n return <Navigate replace to=\"/\" />\n }\n\n return (\n <Row>\n <Col span={10} offset={3}>\n <div className=\"h-screen flex justify-end items-center\">\n <Default />\n </div>\n </Col>\n <Col span={5} offset={3}>\n <div className=\"h-screen relative\">\n <Card hoverable className=\"absolute left-0 right-0 top-1/2 -translate-y-1/2\">\n {showAlert && (\n <div className=\"absolute -top-12 left-0 right-0\">\n <Alert\n banner\n closable\n message=\"您还未在平台注册,请联系管理员\"\n type=\"error\"\n onClose={() => {\n setShowAlert(false)\n }}\n />\n </div>\n )}\n <div className=\"text-center mb-6\">\n <Title level={5}>登录方式</Title>\n <div className=\"min-h-10\">{children}</div>\n </div>\n <Divider plain>第三方登录方式</Divider>\n <div className=\"w-full flex justify-center\">\n <Space size=\"small\">\n <Button\n type=\"link\"\n size=\"small\"\n shape=\"round\"\n icon={<AliyunOutlined />}\n href={`${SSO_URL}/login?service=${encodeURIComponent(window.location.origin)}/login`}\n target=\"_self\"\n >\n IDass 登录\n </Button>\n </Space>\n </div>\n </Card>\n </div>\n </Col>\n </Row>\n )\n}\n\nexport default Login\n","export const SSO_URL = 'https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1'\n\nexport const SECRET = new TextEncoder().encode('cc7e0d44fd473002f1c42167459001140ec6389b7353f8088f4d9a95f2f596f2')\n","import type { FC } from 'react'\n\nconst Default: FC = () => {\n return (\n <svg viewBox=\"0 0 1620 1028\" xmlns=\"http://www.w3.org/2000/svg\">\n <g id=\"a\"></g>\n <g id=\"b\">\n <g id=\"c\">\n <g>\n <path\n fill=\"#e8f2fa\"\n d=\"M1543.84,1025.63c-92.65,0-1442.29,.34-1443.07-2.11l-.13-.31s-.13-.3-.13-.45c-.52-1.23-207.95-345.42,114.53-585.03,126.18-93.75-7.9-155.64,92.44-260.01,115.31-119.94,241.15,12.74,369.38-41.64,22.66-9.6,45.39-25.05,68.15-48.76C797.78,32.37,870.19,6.95,944.96,1.25c143.27-10.86,304.51,50.23,387.71,139.53,16.75,17.98,92.93,111.03,32.88,238.91-37.91,80.74,120.91,157.86,177.35,250.06,143.49,234.42,2.24,392.82,.93,395.87Z\"\n ></path>\n <g opacity=\".5\">\n <g opacity=\".5\">\n <path\n fill=\"#a9c2ff\"\n d=\"M522.98,381s-10.51-89.31-55.62-142.6c-6-7.08-17.47-2.57-17.28,6.76,0,.16,0,.31,.01,.47,.58,15.93,51.09,83.13,72.89,135.37Z\"\n ></path>\n </g>\n <g opacity=\".5\">\n <path\n fill=\"#a9c2ff\"\n d=\"M528.46,406.57s-44.95-111.62-121.74-160.99c-4.68-3.01-11.02-1.92-14.16,2.72-2.04,3.02-2.96,7.73-.67,15.1,6.12,19.63,91.75,85.72,136.57,143.18Z\"\n ></path>\n </g>\n </g>\n <g>\n <path\n fill=\"#73b471\"\n d=\"M1088.4,378.19s-40.25-25.14-19.73-56.1c0,0,16.18-18.86,32.87-23.19,0,0-10.72,47-1.98,48.49,8.75,1.48,8.23-53.25,8.23-53.25,0,0,44.27-19.36,61.23-16.97,0,0-28.81,45.13-19.97,44.38,8.84-.75,40.96-46.29,40.96-46.29,0,0,44.84-6.49,50.9,20.56,6.05,27.05-6.03,39.94-12.69,41.34-6.66,1.4-48.94-.94-48.07,4.68,.87,5.62,29.08,15.74,45.22,11.39,0,0-19.38,43.29-42.36,40.09-22.99-3.2-29.54-17.99-43.78-19.7-14.24-1.71-24.84,1.75-17.85,5.95,6.98,4.2,31.27,2.59,42.4,13.03,11.13,10.43,20.22,16.96-1.39,20.52-21.61,3.56-59.96-.84-66.97-17.88l-7.01-17.04Z\"\n ></path>\n <g>\n <path\n fill=\"#73b471\"\n d=\"M1220.24,303.33s-116.93,33.06-131.84,74.86c0,0-.22,18.97-12.65,40.22l-.34,8.36s13.25-27.92,20-31.54c0,0-24.32-37.87,124.83-91.9Z\"\n ></path>\n <path\n fill=\"#73b471\"\n d=\"M1075.75,418.41s-18.91,26.66-10.13,60.45l4.63-1.05s-2.94-36.94,7.12-55.03c10.06-18.09-1.62-4.37-1.62-4.37Z\"\n ></path>\n </g>\n </g>\n <g>\n <path\n fill=\"#9bd399\"\n d=\"M925.53,377.18s-67.6,6.07-70.13-47.44c0,0,2.69-35.79,18.25-55.28,0,0,27.38,63.45,38.71,57.55,11.32-5.9-35.54-68.47-35.54-68.47,0,0,34.61-60.79,56.16-72.8,0,0,4.97,77.02,14.52,68.48,9.54-8.54,8.04-88.93,8.04-88.93,0,0,46.15-46.48,75.98-20.59,29.83,25.89,26.82,51.24,20.33,58.64-6.49,7.4-57.15,41.49-51.4,47.2,5.75,5.71,46.78-7.17,61.69-26.21,0,0,14.28,66.7-14.89,83.01-29.17,16.31-49.21,4.98-67.06,15.39-17.84,10.41-27.12,23.62-15.53,22.38,11.59-1.24,38.19-24.21,59.83-21.88,21.64,2.33,37.62,1.94,15.74,24.83-21.87,22.89-69.75,51.18-92.22,37.65l-22.48-13.53Z\"\n ></path>\n <g>\n <path\n fill=\"#9bd399\"\n d=\"M1014.06,176.32s-106.69,139.76-88.53,200.87c0,0,15.78,22.04,19.44,57.32l6.67,9.92s-8.34-43.67-3.63-53.71c0,0-60.01-22.45,66.05-214.39Z\"\n ></path>\n <path\n fill=\"#9bd399\"\n d=\"M944.97,434.5s.76,47.15,39.44,78.42l4.44-5.24s-34.61-39.97-38.32-69.55c-3.71-29.58-5.56-3.62-5.56-3.62Z\"\n ></path>\n </g>\n </g>\n <g>\n <g>\n <path\n fill=\"#b6cfff\"\n d=\"M290.34,904.31s-18.93-22.41-1.17-36.64c0,0,12.98-7.97,23.56-7.32,0,0-14.99,25.5-10.14,28.04,4.85,2.54,14.69-29.64,14.69-29.64,0,0,29.53-2.91,39.03,1.73,0,0-25.25,20.96-19.93,22.2,5.32,1.25,32.58-19.32,32.58-19.32,0,0,27.48,4.74,26.02,21.75-1.47,17.01-10.94,22.26-15.1,21.81-4.16-.45-28.51-9.88-29.04-6.42-.53,3.46,14.13,14.77,24.39,15.29,0,0-19.38,21.68-32.26,15.42-12.88-6.26-13.98-16.17-22.01-19.89-8.03-3.72-14.88-3.71-11.57,.08,3.31,3.79,17.84,7.48,22.43,15.72,4.59,8.24,8.71,13.79-4.61,11.76-13.32-2.03-34.98-11.92-35.93-23.25l-.95-11.32Z\"\n ></path>\n <g>\n <path\n fill=\"#b6cfff\"\n d=\"M381.48,885.57s-74.65-2.92-91.14,18.74c0,0-3.65,11.08-14.87,21.16l-1.75,4.83s12.94-13.84,17.56-14.67c0,0-7.24-26.83,90.19-30.06Z\"\n ></path>\n <path\n fill=\"#b6cfff\"\n d=\"M275.48,925.47s-16.02,12.02-17.14,33.5l2.91,.26s5.12-22.21,14.37-30.89c9.25-8.68-.14-2.87-.14-2.87Z\"\n ></path>\n </g>\n </g>\n <g>\n <path\n fill=\"#a9c2ff\"\n d=\"M224.15,876.13s30.12-17.11,16.06-40.33c0,0-11.24-14.26-23.29-17.92,0,0,6.42,34.62,0,35.44-6.43,.81-4.42-39.11-4.42-39.11,0,0-31.72-15.48-44.17-14.26,0,0,19.68,33.81,13.25,33-6.43-.81-28.51-35.03-28.51-35.03,0,0-32.53-6.11-37.75,13.44-5.22,19.55,3.21,29.33,8.03,30.55,4.82,1.22,35.74,.81,34.94,4.89-.8,4.07-21.69,10.59-33.33,6.92,0,0,12.85,32.18,29.72,30.55,16.87-1.63,22.09-12.22,32.53-13.03,10.44-.81,18.07,2.04,12.85,4.89-5.22,2.85-22.89,.93-31.32,8.21-8.43,7.27-15.26,11.75,.4,15.01,15.66,3.26,43.77,1.22,49.39-11l5.62-12.22Z\"\n ></path>\n <g>\n <path\n fill=\"#a9c2ff\"\n d=\"M130.18,817.47s84.33,27.7,93.97,58.66c0,0-.4,13.85,8.03,29.74v6.11s-8.83-20.78-13.65-23.63c0,0,18.87-26.88-88.35-70.88Z\"\n ></path>\n <path\n fill=\"#a9c2ff\"\n d=\"M232.18,905.87s13.01,20.03,5.59,44.42l-3.35-.91s3.25-26.86-3.56-40.37c-6.8-13.51,1.31-3.14,1.31-3.14Z\"\n ></path>\n </g>\n </g>\n <g>\n <path\n fill=\"#cedfff\"\n d=\"M272.06,852.53s-39.7-22.55-21.17-53.16c0,0,14.82-18.79,30.7-23.63,0,0-8.47,45.64,0,46.72,8.47,1.07,5.82-51.55,5.82-51.55,0,0,41.82-20.4,58.23-18.79,0,0-25.94,44.57-17.47,43.49,8.47-1.07,37.58-46.18,37.58-46.18,0,0,42.88-8.05,49.76,17.72,6.88,25.77-4.23,38.66-10.59,40.27-6.35,1.61-47.11,1.07-46.05,6.44,1.06,5.37,28.58,13.96,43.94,9.13,0,0-16.94,42.42-39.17,40.27-22.23-2.15-29.11-16.11-42.88-17.18-13.76-1.07-23.82,2.69-16.94,6.44,6.88,3.76,30.17,1.23,41.29,10.82,11.12,9.59,20.12,15.49-.53,19.79-20.64,4.3-57.7,1.61-65.11-14.5l-7.41-16.11Z\"\n ></path>\n <g>\n <path\n fill=\"#cedfff\"\n d=\"M395.93,775.21s-111.16,36.51-123.87,77.32c0,0,.53,18.26-10.59,39.2v8.05s11.65-27.39,18-31.14c0,0-24.88-35.44,116.46-93.43Z\"\n ></path>\n <path\n fill=\"#cedfff\"\n d=\"M261.48,891.73s-17.14,26.41-7.37,58.55l4.41-1.2s-4.28-35.41,4.69-53.21c8.97-17.81-1.73-4.14-1.73-4.14Z\"\n ></path>\n </g>\n </g>\n <path\n fill=\"#bbd3ff\"\n d=\"M270.72,1019.99c42.95,0,77.77-35.32,77.77-78.89H192.96c0,43.57,34.82,78.89,77.77,78.89Z\"\n ></path>\n <path\n fill=\"#bbd3ff\"\n d=\"M349.57,1024.01H191.88c0-5.37,4.3-9.73,9.59-9.73h138.49c5.3,0,9.59,4.36,9.59,9.73h0Z\"\n ></path>\n <rect fill=\"#80a1e6\" height=\"2.42\" width=\"159.86\" y=\"941.11\" x=\"190.4\"></rect>\n </g>\n <path\n fill=\"#768cee\"\n d=\"M801.19,578.05l-34.8,419.74s-3.65,25.44,15.01,25.49c30.68,.07,152.69,0,152.69,0,0,0-23.09-5.3-22.81-17.21,.33-14.05,40.67-431.99,40.67-431.99l-150.76,3.97Z\"\n ></path>\n <path\n fill=\"#a9c2ff\"\n d=\"M945.58,1015.66c-6.03,.02-124.16,.22-154.03-.17-13.02-.16-15.3-11.74-15.41-19.24-.05-3.59,.4-6.25,.4-6.25l.9-10.91,2.31-27.81,2.04-24.57,2.62-31.57,2.2-26.64,24.73-298.26,150.76-3.97s-16.99,174.91-29.01,302.22c-1.34,14.19-2.62,27.79-3.8,40.48-.38,4.05-.75,8.02-1.11,11.88-1.11,12.05-2.13,23.11-3.02,32.88-.47,5.15-.9,9.93-1.29,14.31-1.53,17.17-2.43,28.13-2.44,30.22,0,1.22,.1,2.35,.29,3.4,2.47,13.38,21.59,13.98,23.86,13.98Z\"\n ></path>\n <polygon\n fill=\"#a9c2ff\"\n points=\"435.05 349.47 519.82 694.86 531.43 742.16 570.91 903.04 1304.39 903.04 1158.87 349.47 435.05 349.47\"\n ></polygon>\n <polygon\n fill=\"#768cee\"\n points=\"435.05 349.46 423.31 353.44 555.29 915.06 570.91 903.04 435.05 349.46\"\n ></polygon>\n <polygon\n fill=\"#809bf5\"\n points=\"555.29 915.06 1284.26 915.06 1304.39 903.04 570.91 903.04 555.29 915.06\"\n ></polygon>\n <rect\n fill=\"#a9c2ff\"\n transform=\"translate(1780.4 2038.92) rotate(180)\"\n height=\"7.61\"\n width=\"157.83\"\n y=\"1015.66\"\n x=\"811.28\"\n ></rect>\n <polygon\n fill=\"#899bfa\"\n points=\"928.99 915.05 928.18 920.87 779.74 951.29 781.78 926.72 782.75 915.05 928.99 915.05\"\n ></polygon>\n <g opacity=\".5\">\n <path\n fill=\"#899bfa\"\n d=\"M945.58,1015.66c-6.03,.02-124.16,.22-154.03-.17-13.02-.16-15.3-11.74-15.41-19.24l147.73-28.19c-1.53,17.17-2.43,28.13-2.44,30.22,0,1.22,.1,2.35,.29,3.4,2.47,13.38,21.59,13.98,23.86,13.98Z\"\n ></path>\n </g>\n <polygon\n fill=\"#899bfa\"\n points=\"435.05 349.46 1158.87 349.46 1276.31 794.36 544.24 794.36 435.05 349.46\"\n ></polygon>\n <polygon\n fill=\"#5158bf\"\n points=\"1242.18 775.08 564.46 775.08 540.24 677.22 530.87 639.35 527.05 623.91 502.16 523.34 500.87 518.1 487.71 464.94 481.83 441.15 476.81 420.86 472.71 404.31 465.03 373.3 1132.98 373.3 1141.41 404.31 1145.91 420.86 1151.42 441.15 1157.88 464.94 1200.47 621.65 1200.47 621.65 1204.08 634.93 1205.76 641.09 1235.16 749.28 1242.18 775.08\"\n ></polygon>\n <polygon\n fill=\"#5d6cd2\"\n points=\"973.57 757.36 624.87 757.36 605.71 662.1 598.3 632.14 595.28 619.93 575.59 540.37 574.57 536.23 564.16 494.17 559.5 475.35 555.53 459.3 552.29 446.21 546.22 421.68 887.42 421.68 973.57 757.36\"\n ></polygon>\n <polygon fill=\"#899bfa\" points=\"819.24 794.36 571.16 904.34 544.24 794.36 819.24 794.36\"></polygon>\n <g>\n <path\n fill=\"#2a3967\"\n d=\"M1384.19,552.09c.04-.99,.79-11.66,16.82-12.22,0,0-7.88,.95-9.24,4.47,0,0,5.37-4.34,9.74-2.95,4.37,1.4,6.94,9.16,6.96,11.72,.03,2.55-2.4,10.79-5.18,11.49-1.05,.27-2.26,.19-3.36,0,.74,1.17,1.46,2.46,2.15,3.9,6.4,13.32-.2,26.33-5.61,24.89-3.47-.92-4.45,5.09-4.45,5.09l-33.74-27.7s12.39-26.01,25.91-18.69Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M1292.25,718.6c2.82,2.53,10.3-6.16,11.33-7.32,.05-.11,.11-.17,.11-.17l-2.28-6.44s-9.82-.38-11.44,1.27c-1.63,1.65-.81,9.96,2.28,12.65Z\"\n ></path>\n <path\n fill=\"#25468f\"\n d=\"M1372.45,944.42l7.17,2.71s31.12-43.79,34.96-82.31c.68-6.88-.72-21.46-.19-24.57,.25-1.45,.55-3.2,.89-5.21,1.01-5.88,2.4-13.93,4-23.09,3.66-21.09,8.41-48.04,12.09-67.85l-1.93-.63-20.89-6.84-4.32-13.91-15.56-4.15s-3.47,6.9-6.58,39.47c-.57,4.27-1.09,8.98-1.49,14.09-1.21,15.6-1.3,34.94,1.48,57.06,.71,5.66,3.67,27.92,3.33,34.81-1.57,31.49-12.96,80.44-12.96,80.44Z\"\n ></path>\n <path\n fill=\"#1e3865\"\n d=\"M1380.6,772.11l33.78,68.12c.25-1.45,.55-3.2,.89-5.21,1.01-5.88,2.4-13.93,4-23.09,3.66-21.09,8.41-48.04,12.09-67.85l-1.93-.63-20.89-6.84-4.32-13.91-15.56-4.15s-3.47,6.9-6.58,39.47c-.57,4.27-1.09,8.98-1.49,14.09Z\"\n ></path>\n <path\n fill=\"#25468f\"\n d=\"M1395.46,727.29l.78-6.8c13.1,3.53,48.1-9.86,48.1-9.86,0,0,12.69,11.32,11.03,38.44-.81,13.24-2.3,69.5-3.85,86.15-.56,6.03,3.3,21.56,4.85,25.75,15.23,41.17-2.35,91.87-2.35,91.87l-4.56-1.87s-28.85-106.12-31.83-117.36c-5.63-21.25-10.15-48.9-13.17-70.25-.42,.02-9.01-36.08-9.01-36.08Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M1385.52,648.37c22.52,1.25,17.57-32.81,16.2-32.63-2.76-1.46-7.7-8.55-10.56-20.41l-.97,.46-16.25,7.75s1.73,5.36,3,10.5c.99,4.02,1.71,7.9,1.11,8.98-1.28,.53-2.05,.86-2.05,.86,0,0,0,0,0,.02-.16,.42,3.52,24.15,9.53,24.48Z\"\n ></path>\n <path\n fill=\"#f99352\"\n d=\"M1373.93,603.53s1.73,5.36,3,10.5c9.5-2.69,12.38-12.82,13.25-18.25l-16.25,7.75Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M1371.93,609.21s22.73-5.34,19.23-19.64c-3.49-14.31-2.91-24.63-17.57-21.83-14.66,2.8-16.13,8.97-16.11,14.03,.02,5.06,8.45,28.46,14.45,27.44Z\"\n ></path>\n <path\n fill=\"#2a3967\"\n d=\"M1356.2,573.64c2.44-5.19,5.32-4.91,7.12-3.99,10.68-10.02,21.15-1.83,21.15-1.83,4.03,9.88,12.77,13.92,12.77,13.92,0,0-3.49,3.63-13.61,3.55-3.09-.02-6.2-1.46-9.03-3.45,5.45,5.57,11.85,8.97,11.85,8.97-12.67-2.46-21.16-17.34-22.03-18.92-1.07,1.61-3.13,5.03-3.3,7.92-.23,3.93,1.1,11.55-1.12,11.84,0,0-7.47-10.23-3.8-18Z\"\n ></path>\n <path\n fill=\"#1e3865\"\n d=\"M1427.51,956.62h36.09s.87-5.58-1.02-9.81c-1.81-4.06-4.64-5.91-3.96-10.82-2.29,2.4-6.03,5.08-11.25,4.37-.64,1.05-4.13,6.68-6.26,8.23-2.36,1.72-12.88,1.11-13.6,8.04Z\"\n ></path>\n <path\n fill=\"#1e3865\"\n d=\"M1350.02,956.62h36.09s1.35-5.84-1.02-9.81c-2.1-3.52-1.29-5.52,.26-8.43-1.64,.68-3.75,1.3-6.08,1.16-1.8-.1-3.7-.93-5.37-1.91-1.55,1.8-8.2,9.44-10.28,10.96-2.36,1.72-12.88,1.11-13.6,8.04Z\"\n ></path>\n <path\n fill=\"#899bfa\"\n d=\"M1445.02,667.38c-1.94-6.38-3.95-12.51-5.98-18.16-4.62-12.85-7.56-19.56-10.05-24.76-4.74-9.89-25.93-9.27-25.93-9.27-4.08,14.92-15.3,24.22-15.3,24.22-5.98-3.56-10.43-16.08-10.43-16.08l-13.09,7.06h0s-4.05,2.45-7.58,12.75c-5.25,15.32-13.77,37.08-19.68,43.73-1.38,1.55-5.42,3.9-10.31,6.39h0c-.11,.17-.19,.25-.24,.25,.32,.73,1.74,4.18,4.04,7.69,1.87,2.85,4.32,5.73,7.22,7.21,2.23-1.09,6.25-2.7,7.95-3.76,6.16-3.82,15.33-9.32,22.51-20.93l2,27.29,3.62,49.37c5.57,1.76,10.87,3.13,15.89,4.18,.33-4.14,1.65-9.09,1.65-9.09-.06,2.6,2.94,7.56,4.71,10.27,46.22,7.51,67.88-12.94,67.88-12.94-1.8-18.1-9.58-54.72-18.91-85.41Z\"\n ></path>\n <path\n fill=\"#6f7deb\"\n d=\"M1398.39,612.43s3.84,.26,4.67,2.76c0,0-5.02,20.49-15.29,24.22l10.62-26.97Z\"\n ></path>\n <path\n fill=\"#6f7deb\"\n d=\"M1387.77,639.4s-9.82-17.97-9.78-20.4c0,0-3.73,3.35-3.49,5.85,0,0,8.27,13.43,13.26,14.55Z\"\n ></path>\n <path\n fill=\"#6f7deb\"\n d=\"M1414.09,632.11c-.28,.97-20.31,49.54-38.28,67.44-7.87,7.84,17.2,5.57,17.44,4.12,.24-1.46,20.84-71.56,20.84-71.56Z\"\n ></path>\n <path\n fill=\"#6f7deb\"\n d=\"M1370.8,712.54l1.71,27.4c54.8-12.91,50.2-101.44,50.2-101.44l-27.52,57.64-24.15,16.01s-.09,.14-.25,.39Z\"\n ></path>\n <path\n fill=\"#a9c2ff\"\n d=\"M1326.37,693.41c.01,.06,.04,.09,.07,.09-.02-.04-.03-.08-.04-.1-.04-.09-.05-.09-.03,.01Z\"\n ></path>\n <g>\n <path\n fill=\"#ff912b\"\n d=\"M1353.48,655.68l10.91,49.33c1.74,7.86-4.13,14.22-13.1,14.22h-262c-8.97,0-17.65-6.37-19.39-14.22l-10.91-49.33c-.07-.3-.12-.6-.16-.9-1.13-7.44,4.63-13.32,13.26-13.32h262c8.63,0,16.99,5.88,19.15,13.32,.1,.3,.17,.6,.24,.9Z\"\n ></path>\n <g>\n <g>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1089.87 697 1087.3 697 1080.51 666.3 1083.08 666.3 1089.87 697\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1107.58 678.97 1089.17 678.97 1087.24 670.28 1105.66 670.28 1107.58 678.97\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1116.16 691.42 1091.92 691.42 1090 682.74 1114.24 682.74 1116.16 691.42\"\n ></polygon>\n </g>\n <g>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1148.77 697 1146.2 697 1139.41 666.3 1141.98 666.3 1148.77 697\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1152.7 678.97 1134.29 678.97 1132.37 670.28 1150.78 670.28 1152.7 678.97\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1158.37 691.42 1134.13 691.42 1132.21 682.74 1156.45 682.74 1158.37 691.42\"\n ></polygon>\n </g>\n <g>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1207.67 697 1205.1 697 1198.31 666.3 1200.88 666.3 1207.67 697\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1197.82 678.97 1179.4 678.97 1177.48 670.28 1195.89 670.28 1197.82 678.97\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1200.57 691.42 1176.33 691.42 1174.41 682.74 1198.65 682.74 1200.57 691.42\"\n ></polygon>\n </g>\n <g>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1245.35 668.78 1215.1 668.78 1214.52 666.18 1244.78 666.18 1245.35 668.78\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1228.12 671.23 1232.26 689.91 1223.69 689.91 1219.56 671.23 1228.12 671.23\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1240.4 671.23 1245.84 695.82 1237.28 695.82 1231.84 671.23 1240.4 671.23\"\n ></polygon>\n </g>\n <g>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1292.98 682.95 1262.72 682.95 1262.14 680.35 1292.4 680.35 1292.98 682.95\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1272.86 672.31 1276.99 690.99 1268.42 690.99 1264.29 672.31 1272.86 672.31\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1284.48 669.36 1289.92 693.94 1281.35 693.94 1275.91 669.36 1284.48 669.36\"\n ></polygon>\n </g>\n <g>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1340.63 697.23 1310.37 697.23 1309.79 694.63 1340.05 694.63 1340.63 697.23\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1317.78 673.28 1321.91 691.96 1313.34 691.96 1309.21 673.28 1317.78 673.28\"\n ></polygon>\n <polygon\n fill=\"#e8f2fa\"\n points=\"1328.74 667.37 1334.18 691.96 1325.62 691.96 1320.18 667.37 1328.74 667.37\"\n ></polygon>\n </g>\n </g>\n </g>\n <g>\n <path\n fill=\"#ffae73\"\n d=\"M1327.16,714.82c2.99-.01,7.7-.22,10.42-1.28,0,0-8.7-.13-6.85-2.92,.34-.51,4.66-.12,9.49-.12,1.98,0,6.88,2.75,6.62,2.88,3.5-.47,6.68-1.16,7.71-1.38,.27-.06,.38-.11,.38-.11l3.09,9.13s-.65,.16-1.79,.38c-2.87,.72-8.79,2.26-14.37,4.46-7.81,3.14-13.55-.76-16.16-3.52-1.65-1.75-2.95-4.07-2.86-5.75,.1-1.84,2.5-1.76,4.32-1.77Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M1348.16,715.52l1.9,7.04s2.39-.44,6.18-1.16c1.14-.22,1.79-.39,1.79-.39,3.04-.6,6.67-1.43,10.63-2.31h.06c6.78-1.65,14.37-3.63,20.77-5.83,.57-.2,1.14-.41,1.69-.61,3.78-1.42-3.53-20.9-6.84-18.47-.88,.65-1.82,1.31-2.8,1.99-5.49,3.78-12.47,7.99-18.67,11.54-3.04,1.76-5.91,3.36-8.3,4.68-3.85,2.14-6.4,3.52-6.4,3.52Z\"\n ></path>\n <path\n fill=\"#899bfa\"\n d=\"M1381.53,695.79s-.4,13.3,11.88,19.77c14.19-5.2,21.78-26.66,27.64-41.4,.81-2.03,1.57-4.07,2.33-6.05,2.71-7.37,4.88-14.63,6.18-20.91,.81-3.74-14.97-22.61-16.97-18.15-3.09,7.09-6.34,16.28-9.38,25.41-1.68,5.01-3.31,10.01-4.94,14.63-.92,2.8-1.85,5.44-2.71,7.86-1.68,4.62-3.2,8.36-4.55,10.73-.87,1.54-3.36,3.69-6.67,6.11-.88,.65-1.82,1.31-2.8,1.99Z\"\n ></path>\n </g>\n </g>\n <polygon\n fill=\"#3c4aaa\"\n points=\"1141.41 404.31 472.71 404.31 465.03 373.3 1132.98 373.3 1141.41 404.31\"\n ></polygon>\n <g>\n <path\n fill=\"#e8f2fa\"\n d=\"M506.59,389.09c.87,2.78-.86,5.05-3.87,5.07-3.01,.02-6.16-2.22-7.03-4.99-.87-2.78,.86-5.05,3.87-5.07,3.01-.02,6.16,2.21,7.03,4.99Z\"\n ></path>\n <path\n fill=\"#e8f2fa\"\n d=\"M529.14,388.93c.87,2.78-.86,5.05-3.87,5.07-3.01,.02-6.16-2.21-7.03-4.99-.87-2.78,.86-5.05,3.87-5.07,3.01-.02,6.16,2.21,7.03,4.99Z\"\n ></path>\n <path\n fill=\"#e8f2fa\"\n d=\"M551.69,388.77c.87,2.78-.86,5.05-3.87,5.07-3.01,.02-6.16-2.21-7.03-4.99-.87-2.78,.86-5.05,3.87-5.07,3.01-.02,6.16,2.21,7.03,4.99Z\"\n ></path>\n </g>\n <path\n fill=\"#ff912b\"\n d=\"M559.5,475.35s78.71,.3,135.79,44.69c57.08,44.39,48.85,84.22,96.21,94.2,77.61,16.36,29.43-67.66,130.21-58.92l51.86,202.04h-348.7l-26.57-125.21-38.8-156.79Z\"\n ></path>\n <path\n fill=\"#fff\"\n d=\"M809.47,617.1c-5.34,0-11.34-.72-18.11-2.15-26.14-5.51-35.78-20.39-47.98-39.22-10.11-15.61-22.69-35.03-48.52-55.11-16.21-12.61-44.82-29.59-89.01-38.86-26.44-5.54-46.15-5.68-46.35-5.68v-1.46c.2,0,20.06,.14,46.64,5.72,24.54,5.15,60,16.11,89.59,39.13,26.02,20.24,38.68,39.77,48.85,55.47,12.49,19.28,21.51,33.21,47.07,38.59,36.4,7.67,44.63-6.84,54.16-23.64,10.62-18.71,22.66-39.93,75.97-35.3l-.12,1.45c-52.41-4.55-64.2,16.24-74.6,34.58-4.82,8.5-9.38,16.53-17.46,21.49-5.44,3.34-12.02,4.99-20.12,4.99Z\"\n ></path>\n <path\n fill=\"#fc7400\"\n d=\"M577.88,549.18l20.01,80.88,26.98,127.29h348.7l-17.58-66.1s-51.62-29.18-121.62-3.75c-70,25.44-147.49,1.96-152.48-55.25-5.62-64.51-64.06-95.58-104.01-83.08Z\"\n ></path>\n <path\n fill=\"#fff\"\n d=\"M665.98,587.45c-20.04-31.44-57-47.24-87.89-37.57l-.42-1.39c31.49-9.85,69.13,6.2,89.52,38.17l-1.21,.79Z\"\n ></path>\n <g>\n <polygon\n fill=\"#fff\"\n points=\"795.85 620.61 784.52 619.43 785.69 607.94 797.02 609.12 795.85 620.61\"\n ></polygon>\n <polygon\n fill=\"#fff\"\n points=\"892.8 636.61 701.9 596.39 702.28 594.51 893.18 634.73 892.8 636.61\"\n ></polygon>\n <path\n fill=\"#fff\"\n d=\"M698.84,595.11c.19-1.82,1.79-3.15,3.59-2.96,1.8,.19,3.1,1.82,2.92,3.64s-1.79,3.15-3.59,2.96c-1.8-.19-3.1-1.82-2.92-3.64Z\"\n ></path>\n <path\n fill=\"#fff\"\n d=\"M889.74,635.33c.19-1.82,1.79-3.15,3.59-2.96,1.8,.19,3.1,1.82,2.92,3.64-.19,1.82-1.79,3.15-3.59,2.96-1.8-.19-3.1-1.82-2.92-3.64Z\"\n ></path>\n </g>\n <g>\n <polygon\n fill=\"#fff\"\n points=\"656.9 504.31 648.61 496.38 656.42 487.98 664.71 495.9 656.9 504.31\"\n ></polygon>\n <polygon fill=\"#fff\" points=\"687.13 528 622.39 462.58 623.73 461.23 688.46 526.64 687.13 528\"></polygon>\n <path\n fill=\"#fff\"\n d=\"M620.52,459.81c1.14-1.42,3.2-1.64,4.6-.49,1.4,1.15,1.62,3.24,.48,4.67-1.14,1.42-3.2,1.64-4.6,.49-1.4-1.15-1.62-3.24-.48-4.67Z\"\n ></path>\n <path\n fill=\"#fff\"\n d=\"M685.26,525.23c1.14-1.42,3.2-1.64,4.6-.49s1.62,3.24,.48,4.67c-1.14,1.42-3.2,1.64-4.6,.49-1.4-1.15-1.62-3.24-.48-4.67Z\"\n ></path>\n </g>\n <g>\n <polygon\n fill=\"#fff\"\n points=\"882.44 557.53 877.99 568.16 867.5 563.65 871.96 553.01 882.44 557.53\"\n ></polygon>\n <polygon\n fill=\"#fff\"\n points=\"863.91 587.74 862.2 586.94 886.44 533.18 888.16 533.98 863.91 587.74\"\n ></polygon>\n <path\n fill=\"#fff\"\n d=\"M862,590.48c-1.71-.59-2.63-2.47-2.05-4.21,.58-1.74,2.44-2.66,4.15-2.08,1.71,.59,2.63,2.47,2.05,4.21-.58,1.74-2.44,2.66-4.15,2.08Z\"\n ></path>\n <path\n fill=\"#fff\"\n d=\"M886.25,536.72c-1.71-.59-2.63-2.47-2.05-4.21,.58-1.74,2.44-2.66,4.15-2.08,1.71,.59,2.63,2.47,2.05,4.21-.58,1.74-2.44,2.66-4.15,2.08Z\"\n ></path>\n </g>\n <g>\n <path\n fill=\"#cedfff\"\n d=\"M933.58,440.32l17.72,74.3c.76,3.18-2.2,5.76-6.61,5.76h-182.3c-4.41,0-8.6-2.58-9.35-5.76l-17.72-74.3c-.76-3.18,2.2-5.76,6.61-5.76h182.3c4.41,0,8.59,2.58,9.35,5.76Z\"\n ></path>\n <g>\n <g>\n <polygon\n fill=\"#25468f\"\n points=\"781.52 483.78 762.12 483.78 757.43 464.1 776.83 464.1 781.52 483.78\"\n ></polygon>\n <polygon\n fill=\"#25468f\"\n points=\"793.57 493.62 774.17 493.62 769.47 473.94 788.88 473.94 793.57 493.62\"\n ></polygon>\n </g>\n <g>\n <polygon\n fill=\"#25468f\"\n points=\"826.82 483.78 807.42 483.78 802.72 464.1 822.12 464.1 826.82 483.78\"\n ></polygon>\n <g>\n <polygon\n fill=\"#6b98f6\"\n points=\"838.87 493.62 819.47 493.62 814.77 473.94 834.17 473.94 838.87 493.62\"\n ></polygon>\n <path\n fill=\"#183a76\"\n d=\"M839.9,494.47h-21.06l-5.1-21.36h21.06l5.1,21.36Zm-19.8-1.68h17.75l-4.29-18h-17.75l4.29,18Z\"\n ></path>\n </g>\n </g>\n <g>\n <polygon\n fill=\"#6b98f6\"\n points=\"872.12 483.78 852.71 483.78 848.02 464.1 867.42 464.1 872.12 483.78\"\n ></polygon>\n <path\n fill=\"#25468f\"\n d=\"M873.14,484.62h-21.06l-5.1-21.36h21.06l5.1,21.36Zm-19.8-1.68h17.75l-4.29-18h-17.75l4.29,18Z\"\n ></path>\n <polygon\n fill=\"#6b98f6\"\n points=\"884.16 493.62 864.76 493.62 860.07 473.94 879.47 473.94 884.16 493.62\"\n ></polygon>\n <path\n fill=\"#25468f\"\n d=\"M885.19,494.47h-21.06l-5.1-21.36h21.06l5.1,21.36Zm-19.8-1.68h17.75l-4.29-18h-17.75l4.29,18Z\"\n ></path>\n <polygon\n fill=\"#25468f\"\n points=\"873.14 484.58 861.71 484.58 858.97 473.1 870.4 473.1 873.14 484.58\"\n ></polygon>\n </g>\n <g>\n <polygon\n fill=\"#25468f\"\n points=\"917.41 483.78 898.01 483.78 893.31 464.1 912.72 464.1 917.41 483.78\"\n ></polygon>\n <polygon\n fill=\"#25468f\"\n points=\"929.46 493.62 910.06 493.62 905.36 473.94 924.77 473.94 929.46 493.62\"\n ></polygon>\n <polygon\n fill=\"#6b98f6\"\n points=\"916.86 483.31 907.97 483.31 905.84 474.37 914.73 474.37 916.86 483.31\"\n ></polygon>\n </g>\n </g>\n </g>\n <g>\n <path\n fill=\"#3c4aaa\"\n d=\"M429.21,674.95h-67.18c-8.96,0-17.83-7.37-19.81-16.46l-50.55-231.5c-1.98-9.09,3.67-16.46,12.63-16.46h67.18c8.96,0,17.83,7.37,19.81,16.46l50.55,231.5c1.98,9.09-3.67,16.46-12.63,16.46Z\"\n ></path>\n <rect fill=\"#a9c2ff\" height=\".44\" width=\"99.62\" y=\"462.59\" x=\"299.49\"></rect>\n <rect fill=\"#a9c2ff\" height=\".44\" width=\"99.63\" y=\"517.14\" x=\"311.4\"></rect>\n <rect fill=\"#a9c2ff\" height=\".44\" width=\"99.63\" y=\"571.69\" x=\"323.31\"></rect>\n <path\n fill=\"#fff\"\n d=\"M360.43,446.51c.13-1.17-5.02-21.24-5.02-21.24l18.26,15.01-8.97-.32-4.27,6.56Z\"\n ></path>\n <path\n fill=\"#cedfff\"\n d=\"M415.47,651.23h-35.38l-7.83-35.84h35.38l7.83,35.84Zm-33.8-2h31.35l-6.95-31.85h-31.35l6.95,31.85Z\"\n ></path>\n <polygon\n fill=\"#ff7536\"\n points=\"390.05 630.85 356.68 630.85 349.29 597 382.66 597 390.05 630.85\"\n ></polygon>\n <polygon fill=\"#ff7536\" points=\"382 651.12 379.75 649.34 405.73 615.5 407.98 617.27 382 651.12\"></polygon>\n <g>\n <path\n fill=\"#cedfff\"\n d=\"M315.51,446.51c.13-1.17-5.02-21.24-5.02-21.24l18.26,15.01-8.97-.32-4.27,6.56Z\"\n ></path>\n <g>\n <polygon\n fill=\"#cedfff\"\n points=\"322.59 486.27 319.9 486.27 318.83 481.4 337.08 481.4 338.1 486.08 335.41 486.08 334.99 484.13 322.12 484.13 322.59 486.27\"\n ></polygon>\n <polygon\n fill=\"#cedfff\"\n points=\"332.96 498.16 330.27 498.16 326.91 482.76 329.6 482.76 332.96 498.16\"\n ></polygon>\n <polygon\n fill=\"#cedfff\"\n points=\"335.38 499.13 328.28 499.13 327.68 496.4 334.79 496.4 335.38 499.13\"\n ></polygon>\n </g>\n <polygon\n fill=\"#cedfff\"\n points=\"371.78 500.83 369.35 499.06 382.17 478.6 384.6 480.37 371.78 500.83\"\n ></polygon>\n <g>\n <path\n fill=\"#cedfff\"\n d=\"M340.97,548.52c-5.13,0-10.23-4.24-11.37-9.44-1.14-5.21,2.11-9.44,7.25-9.44s10.23,4.24,11.37,9.44c1.14,5.21-2.11,9.44-7.25,9.44Zm-3.58-16.39c-3.78,0-6.17,3.12-5.33,6.95,.84,3.83,4.59,6.95,8.37,6.95s6.17-3.12,5.33-6.95c-.84-3.83-4.59-6.95-8.37-6.95Z\"\n ></path>\n <path\n fill=\"#cedfff\"\n d=\"M358.69,556.72c-.32,0-.67-.13-.97-.38l-12.38-10.57c-.58-.5-.74-1.28-.36-1.76,.38-.48,1.17-.46,1.75,.03l12.38,10.57c.58,.5,.74,1.28,.36,1.76-.19,.23-.47,.35-.78,.35Z\"\n ></path>\n </g>\n <polygon\n fill=\"#cedfff\"\n points=\"385.5 528.76 390.11 537.32 398.98 537.32 392.96 542.61 397.57 551.16 389.24 545.87 383.22 551.16 384.09 542.61 375.76 537.32 384.63 537.32 385.5 528.76\"\n ></polygon>\n </g>\n </g>\n <g>\n <path\n fill=\"#fa8b79\"\n d=\"M1241.96,453.88s.24,13.48-1.75,13.23c-1.99-.25-4.7-11.3-4.72-11.14-.02,.17,.9,11.62-1.6,12.19-2.51,.57-5.05-12.13-5.05-12.13,0,0,1.68,10.9-.08,11.19-1.76,.29-4.54-10.28-5.27-10.31-.73-.03,2.34,9.06,.19,9.53-2.15,.46-6.94-12.33-5.32-13.96,1.62-1.63,4.15,.11,4.15,.11,0,0,3.12-2.35,5.52-1.02,0,0,5.62-1.14,7.31,1.39,0,0,3.51-3.06,6.61,.91Z\"\n ></path>\n <g>\n <path\n fill=\"#cedfff\"\n d=\"M1278.23,402.24l45.59,166.75c1.95,7.13-2.5,12.92-9.94,12.92h-307.72c-7.44,0-15.05-5.78-17-12.92l-45.59-166.75c-1.95-7.13,2.5-12.92,9.94-12.92h307.72c7.44,0,15.05,5.78,17,12.92Z\"\n ></path>\n <g>\n <polygon\n fill=\"#b0c0ff\"\n points=\"1038.92 477.47 999.17 477.47 988.15 437.16 1027.89 437.16 1038.92 477.47\"\n ></polygon>\n <polygon\n fill=\"#5158bf\"\n points=\"1026.48 467.6 1006.21 467.6 1000.59 447.03 1020.86 447.03 1026.48 467.6\"\n ></polygon>\n <polygon\n fill=\"#ff7536\"\n points=\"1000.44 478.4 997.91 476.54 1026.63 436.23 1029.16 438.08 1000.44 478.4\"\n ></polygon>\n <polygon\n fill=\"#ff7536\"\n points=\"1010.63 455.62 970.89 455.62 959.87 415.3 999.61 415.3 1010.63 455.62\"\n ></polygon>\n </g>\n <g>\n <polygon\n fill=\"#ff7536\"\n points=\"1033.21 525.04 1001.26 525.04 992.4 492.63 1024.35 492.63 1033.21 525.04\"\n ></polygon>\n <polygon\n fill=\"#fc7600\"\n points=\"1064.86 525.04 1032.91 525.04 1024.05 492.63 1056 492.63 1064.86 525.04\"\n ></polygon>\n <polygon\n fill=\"#ff8111\"\n points=\"1096.81 525.04 1064.86 525.04 1056 492.63 1087.95 492.63 1096.81 525.04\"\n ></polygon>\n <polygon\n fill=\"#6b98f6\"\n points=\"1128.76 525.04 1096.81 525.04 1087.95 492.63 1119.9 492.63 1128.76 525.04\"\n ></polygon>\n <polygon\n fill=\"#899bfa\"\n points=\"1160.71 525.04 1128.76 525.04 1119.9 492.63 1151.85 492.63 1160.71 525.04\"\n ></polygon>\n <polygon\n fill=\"#697ee3\"\n points=\"1192.66 525.04 1160.71 525.04 1151.85 492.63 1183.8 492.63 1192.66 525.04\"\n ></polygon>\n <polygon\n fill=\"#5158bf\"\n points=\"1224.61 525.04 1192.66 525.04 1183.8 492.63 1215.75 492.63 1224.61 525.04\"\n ></polygon>\n <polygon\n fill=\"#25468f\"\n points=\"1256.56 525.04 1224.61 525.04 1215.75 492.63 1247.7 492.63 1256.56 525.04\"\n ></polygon>\n <polygon\n fill=\"#a1b3ff\"\n points=\"1042.07 557.45 1010.12 557.45 1001.26 525.04 1033.21 525.04 1042.07 557.45\"\n ></polygon>\n <polygon\n fill=\"#899bfa\"\n points=\"1073.72 557.45 1041.77 557.45 1032.91 525.04 1064.86 525.04 1073.72 557.45\"\n ></polygon>\n <polygon\n fill=\"#5158bf\"\n points=\"1105.67 557.45 1073.72 557.45 1064.86 525.04 1096.81 525.04 1105.67 557.45\"\n ></polygon>\n <polygon\n fill=\"#25468f\"\n points=\"1137.62 557.45 1105.67 557.45 1096.81 525.04 1128.76 525.04 1137.62 557.45\"\n ></polygon>\n </g>\n <path\n fill=\"#ff8111\"\n d=\"M1258.13,429.21h-167.36c-2.3,0-4.7-1.91-5.34-4.24h0c-.64-2.33,.72-4.24,3.02-4.24h167.36c2.3,0,4.7,1.91,5.34,4.24h0c.64,2.33-.72,4.24-3.02,4.24Z\"\n ></path>\n <path\n fill=\"#6b98f6\"\n d=\"M1263.98,450.63h-167.36c-2.3,0-4.7-1.91-5.34-4.24h0c-.64-2.33,.72-4.24,3.02-4.24h167.36c2.3,0,4.7,1.91,5.34,4.24h0c.64,2.33-.72,4.24-3.02,4.24Z\"\n ></path>\n <path\n fill=\"#5158bf\"\n d=\"M1269.84,472.05h-167.36c-2.3,0-4.7-1.91-5.34-4.24h0c-.64-2.33,.72-4.24,3.02-4.24h167.36c2.3,0,4.7,1.91,5.34,4.24h0c.64,2.33-.72,4.24-3.02,4.24Z\"\n ></path>\n <g>\n <path\n fill=\"#5158bf\"\n d=\"M1062.31,418.73h5.04c2.65,0,4.59,1.44,5.2,3.65,.51,1.88-.29,3.01-1.75,3.47l4.24,4.34h-2.34l-3.9-4h-2.45l1.09,4h-1.99l-3.14-11.47Zm6.45,5.68c1.42,0,2.12-.75,1.79-1.95-.34-1.23-1.39-1.9-2.86-1.9h-2.89l1.05,3.85h2.91Z\"\n ></path>\n <path\n fill=\"#5158bf\"\n d=\"M1068.12,446.11c-.88-3.21,.8-5.93,4.21-5.93,1.97,0,3.33,.56,4.77,1.56l-.84,1.52c-1.08-.75-2.06-1.23-3.5-1.23-2.08,0-3.16,1.85-2.55,4.08,.64,2.36,2.65,4.1,4.96,4.1,1.07,0,1.94-.34,2.49-.87l-.59-2.15h-2.89l-.48-1.75h4.81l1.32,4.82c-.85,.97-2.23,1.79-4.23,1.79-3.54,0-6.56-2.56-7.48-5.93Z\"\n ></path>\n <path\n fill=\"#5158bf\"\n d=\"M1074.44,463.09h5.07c1.29,0,2.41,.36,3.23,1.02,.64,.51,1.07,1.13,1.29,1.93,.38,1.38-.2,2.11-.92,2.56,1.45,.46,2.58,1.23,3.01,2.82,.56,2.05-.8,3.15-3.32,3.15h-5.23l-3.14-11.47Zm5.99,4.83c1.28,0,1.99-.51,1.7-1.59-.25-.9-1.11-1.46-2.38-1.46h-2.86l.83,3.05h2.71Zm1.91,4.85c1.36,0,2.03-.54,1.74-1.61-.26-.97-1.18-1.54-2.75-1.54h-3.15l.86,3.15h3.29Z\"\n ></path>\n </g>\n </g>\n </g>\n <g>\n <g>\n <path\n fill=\"#ffae73\"\n d=\"M640.44,422.49c-.89,1.03-1,2.18-.56,3.41,0,0,0,.01,0,.02,.81,2.27,3.49,4.81,6.6,7.35,.4,.33,.75,.62,1.06,.9,.08,.07,.16,.14,.24,.22,.06,.06,.12,.11,.18,.17,2.9,2.71,1.81,3.34,7.03,8.85,5.95,6.28,10.04,6.39,11.21,5.82,.99-.49-1.02-3.82-3.23-7.56-.11-.18-.21-.36-.32-.55-.3-.5-.59-1-.88-1.5-2.6-4.5-1.93-6.62-1.32-13.32,.5-5.45,8.35-30.42,8.35-30.42l-11.4-1.99s-3.43,19.89-7.21,22.95c-2.02,1.63-4.29,1.65-6.23,2.86-.14,.08-.27,.17-.4,.26-1.1,.74-2.23,1.51-3.12,2.54Z\"\n ></path>\n <path\n fill=\"#1e3865\"\n d=\"M640.44,422.49c-.89,1.03-1,2.18-.56,3.41,0,0,0,.01,0,.02,.99,2.27,3.61,4.8,6.62,7.33,.39,.33,.74,.64,1.05,.92,.08,.07,.16,.14,.24,.22,.06,.06,.12,.11,.18,.17,2.9,2.71,1.81,3.34,7.03,8.85,5.95,6.28,10.04,6.39,11.21,5.82,.99-.49-1.02-3.82-3.23-7.56-1.16-.43-6.54-2.65-10.6-7.92-3.45-4.47-5.79-10.16-8.14-13.65-.26-.05-.41-.08-.67-.13-1.1,.74-2.23,1.51-3.12,2.54Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M732.33,415.27c.7,3.57,5.72,2.97,11.32,1.58,5.6-1.39,4.27,.26,12.24-.63,7.97-.9,10.39-3.91,10.63-5.11,.22-1.07-3.72-1.44-7.95-1.94-.53-.06-1.07-.13-1.6-.19-4.77-.61-8.26-3.73-12.6-6.29-4.1-2.43-10.23-12.33-10.23-12.33l-10.93,.88s5.74,8.84,7.96,12.68c1.31,2.26,1.24,5.25,1.07,7.56-.08,1.25-.17,2.54,.08,3.79Z\"\n ></path>\n <path\n fill=\"#1e3865\"\n d=\"M743.65,416.85c5.6-1.39,4.27,.26,12.24-.63,7.97-.9,10.39-3.91,10.63-5.11,.22-1.07-3.72-1.44-7.95-1.94l-.04,.08s-4.78,3.44-11.42,3.6c-5.41,.13-11.14-1.44-14.87-1.38-.08,1.25-.17,2.54,.08,3.79,.7,3.57,5.72,2.97,11.32,1.58Z\"\n ></path>\n <path\n fill=\"#f28018\"\n d=\"M690.43,344.35l-10.22,27.9-13.34,36.43s-3.62,.35-7.09-.66c-3.19-.94-6.86-3.39-6.86-3.39,0,0,3.71-39.12,10.62-61.57,1.77-5.76,3.76-10.43,5.95-13.05,10.72-12.85,20.95,14.33,20.95,14.33Z\"\n ></path>\n <path\n fill=\"#ff912b\"\n d=\"M680.04,300.04c-5.82-1.9-21-.03-37.47,2.99-4.55,.84-9.14-1.27-11.53-5.28h0l-41.44-3.28s-13.68,30.76-6.19,50.36c1.1,2.88,3.52,4.68,7.24,4.74h0s25.04,.04,33.05,.04c20.61,0,43.62-14.37,46.59-14.97,4.87-.99,6.82,8.89,11.69,19.27,4.87,10.38,45.79,45.96,45.79,45.96,0,0,6.29,.06,8.89-.92,2.79-1.06,3.82-2.44,3.82-2.44,0,0-45.34-91.51-60.45-96.45Z\"\n ></path>\n <path\n fill=\"#10294c\"\n d=\"M626.64,174.3c-3.08-1.86-6.08-2.14-7.92-2.09-1.28,.04-2.56-.05-3.82-.23-15.82-2.35-25.34,20.95-25.9,27.99-1.02,12.93-7.77,14.9-17.26,23-19.03,16.23-13.45,35.1-3.04,42.11,6.24,4.21,17.25,0,17.25,0,.16,.11,30.09-16.98,44.85-25.22,22.12-3.19,4.73-60.19-4.16-65.55Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M618.43,232.84c.06,.04-7.26,2.58-12.16,.38-4.61-2.07-8.1-9.76-8.03-9.76,2.1-.1,4.4-1.96,6.17-14.16l.89,.32,15.01,5.48s-1.09,4.89-1.79,9.54c-.59,3.91-.91,7.65-.09,8.2Z\"\n ></path>\n <path\n fill=\"#f9924f\"\n d=\"M620.31,215.1s-.6,2.64-1.47,7.56c-8.62-1.57-12.32-8.31-13.54-13.04l15.01,5.48Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M622.54,219.95s-20.53-2.8-18.62-15.74c1.91-12.95,.55-22.02,13.74-20.79,13.19,1.24,15,6.56,15.4,11.04,.4,4.48-5.13,25.88-10.52,25.49Z\"\n ></path>\n <path\n fill=\"#10294c\"\n d=\"M632.32,187.37s-13.15,11.49-22.09,12.42c-8.94,.93-12.33-1.98-12.33-1.98,0,0,5.27-4.44,8.44-11.6,.93-2.11,2.91-3.56,5.18-3.76,6.38-.56,18.49-.81,20.79,4.93Z\"\n ></path>\n <path\n fill=\"#10294c\"\n d=\"M624.1,186.34s4.4,4.31,5.78,7.51c1.34,3.09,1.74,10.47,.67,13.4,0,0,6.85-13.51,2.97-20.08-4.11-6.96-9.43-.84-9.43-.84Z\"\n ></path>\n <path\n fill=\"#899bfa\"\n d=\"M635.72,263.52c-.62,42.17-.17,33.35-4.72,37.36-1.1,.96-4.18,1.54-8.23,1.81-12.75,.86-35.15-1.27-36-3.66-2.94-8.27-.86-10.84-3.32-23.49-.26-1.35-.57-2.8-.94-4.39-2.05-8.69-4.04-11.65,3.22-25.62,6.58-12.65,13.42-22.92,14.03-22.55,17.36,10.45,18.76,1.67,18.76,1.67,0,0,17.51,18.31,17.2,38.88Z\"\n ></path>\n <path\n fill=\"#ff912b\"\n d=\"M680.21,372.25l-13.34,36.43s-3.62,.35-7.09-.66c-3.19-.94-6.86-3.39-6.86-3.39,0,0,3.71-39.12,10.62-61.57l16.67,29.18Z\"\n ></path>\n <path\n fill=\"#899bfa\"\n d=\"M618.52,224.64s17.86,3.07,19.96,10.87c2.1,7.8,9,55.16,9,55.16,0,0-5.04,4.99-9.23,.73-4.19-4.26-13.2-44.31-13.2-44.31l-6.53-22.46Z\"\n ></path>\n <path\n fill=\"#6f7deb\"\n d=\"M622.77,302.69c-12.75,.86-35.15-1.27-36-3.66-2.94-8.27-.86-10.84-3.32-23.49l6.15-17.56s-1.02,19.55,4.67,24.7c5.68,5.14,23.28,9.93,26.04,14.23,1.33,2.06,2.21,4.13,2.47,5.79Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M608.17,294.46s12.57-2.84,14.6-1.71c2.03,1.13,6.99,5.25,7.61,6.69,.62,1.43-4.52-1.09-6.19-1.54-1.08-.29-3.93,.71-5.34,1.19-5.93,2.01-9.57,.97-9.57,.97l-1.11-5.6Z\"\n ></path>\n <path\n fill=\"#899bfa\"\n d=\"M599.74,222.97s-16.88,1.05-22.73,9.32c-8.23,11.64-24.55,61.25-15.2,67.87,10.53,7.45,47.95,1.95,47.95,1.95,0,0,1.24-5.9-.49-8.76-1.73-2.86-29.88-7.47-31.18-8.79-1.3-1.32,16.24-25.7,16.24-29.65s5.41-31.95,5.41-31.95Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M623.38,296.31s2.63,3.45,3.5,3.86c.86,.41,1.42,.31,1.42,.31l-1.78-3.24-3.14-.93Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M622.77,292.76l7.66,3.77s-.33,.54-1.27,.5c-.94-.04-3.32-.93-3.32-.93l-3.07-3.34Z\"\n ></path>\n </g>\n <g>\n <polygon\n fill=\"#10294c\"\n points=\"688.18 301.63 608.17 301.63 608.17 303.42 687.47 303.42 688.18 301.63\"\n ></polygon>\n <polygon\n fill=\"#10294c\"\n points=\"626.88 303.42 687.47 303.42 705.7 257.44 645.2 257.44 626.88 303.42\"\n ></polygon>\n <path\n fill=\"#e8f2fa\"\n d=\"M672.18,280.43c.46-1.62-.46-2.93-2.06-2.93s-3.26,1.31-3.71,2.93,.46,2.93,2.06,2.93,3.26-1.31,3.71-2.93Z\"\n ></path>\n </g>\n </g>\n <polygon\n fill=\"#fff\"\n points=\"666.18 584.13 672.4 589.62 666.99 595.92 660.77 590.43 666.18 584.13\"\n ></polygon>\n <g>\n <path\n fill=\"#f28018\"\n d=\"M586.7,695.57c-1.24-4.18-1.86-4.55-1.86-4.55,0,0-38.53,4.87-45.07,4.44-3.88-.25-50.15-15.91-50.15-15.91l-28.09,27.33s69.67,11.64,79.49,10.88c16.23-1.26,41-15.79,41-15.79,0,0,5.65-3.12,4.67-6.4Z\"\n ></path>\n <path\n fill=\"#104c82\"\n d=\"M481.4,1007.55s.54,13.24,3.05,16.46l34.88,.2c-.24-1.37-.39-4.52-5.21-5.38-6.09-1.08-13.25-5.39-16.94-13.56-3.88-8.6-15.77,2.27-15.77,2.27Z\"\n ></path>\n <path\n fill=\"#104c82\"\n d=\"M412.95,1005.64s-2.43,17.59,.87,17.9c.44,.04,14.05,.26,19.95,.36,6.93,.12,18.33-.13,18.33-.13,1.43,.06,2.37-1.51,1.64-2.77-.8-1.37-2.33-2.84-5.24-3.41-6.07-1.19-16.2-5.71-19.74-13.95-3.73-8.66-15.8,1.99-15.8,1.99Z\"\n ></path>\n <path\n fill=\"#6f7deb\"\n d=\"M499.53,825.34s-9.7,34.42-37.49,94.2c-27.79,59.78-29,88.58-29,88.58,0,0-4.21,1.51-9.79,.91-6.04-.65-10.3-3.39-10.3-3.39,0,0,1.8-71.15,14.93-101.31,13.13-30.17,15.8-112.71,15.8-112.71l55.84,33.73Z\"\n ></path>\n <path\n fill=\"#899bfa\"\n d=\"M515.1,795.72s.77,53.3-8.32,118.75c-9.09,65.44-4.84,95.88-4.84,95.88,0,0-2.41,1.78-9.82,1.75-8.68-.03-13.12-3.67-13.12-3.67,0,0-13.01-65.47-9.28-98.23,3.73-32.76-17.82-112.4-17.82-112.4l63.2-2.08Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M493.98,662.86c-.09,4.18-.64,8.74-2.29,10.97l-9.25,4.93-10.26-7.71s3.76-8.46,2.84-20.82c-.09-.74-.46-5.48-.46-5.58l5.13,2.6,13.93,7.06s0,.28,.09,.65c.09,1.4,.28,4.46,.28,7.9Z\"\n ></path>\n <path\n fill=\"#ff912b\"\n d=\"M442.72,802.31c3.36,15.58,75.23,8.74,74.29-.77-.04-.32-.22-4.72-.48-10.65-.54-12.83-1.38-32.89-1.48-34.45,0-.03,0-.05,0-.08-1.29-13.24-2.54-26.19-2.62-34.65-.07-7.34-1.07-14.84-2.39-21.65-1.22-6.29-2.72-11.99-4.03-16.44-.92-3.13-2.63-5.89-4.9-8.05-1.62-1.54-3.51-2.78-5.6-3.62-.57-.24-1.15-.44-1.74-.62-8.46-2.49-16.99-5.66-20.16-4.72-8.59,2.56-18.15,18-22.67,37.55-8.46,36.6-10.41,88-8.21,98.15Z\"\n ></path>\n <path\n fill=\"#ffa05e\"\n d=\"M493.98,662.86c-5.22-2.14-15.21-6.97-17.96-12.45-1.19-2.42,.64-3.16,3.66-3.16l13.93,7.06s0,.28,.09,.65c.09,1.4,.28,4.46,.28,7.9Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M500.32,653.44s-25.01,7.91-29.63-7.96c-4.62-15.87-10.96-25.54,4.82-31.27,15.77-5.72,20.65-.6,23.46,4.32,2.81,4.92,7.74,32.44,1.35,34.91Z\"\n ></path>\n <path\n fill=\"#0b3563\"\n d=\"M497.99,617s-1.59,18.47-5.36,17.67c-3.77-.8-7.18-1.4-6.63,4.17,.55,5.57,.73,12.26-10.88,13.25-11.61,.99-23.25-29.64-20.06-35.39,9.2-16.59,56.22-19.93,42.93,.3Z\"\n ></path>\n <path\n fill=\"#f28018\"\n d=\"M516.52,790.89c-.54-12.83-1.38-32.89-1.48-34.45,0-.03,0-.05,0-.08l-42.46-25.75s-1.64,60.11,43.95,60.29Z\"\n ></path>\n <g>\n <g>\n <path\n fill=\"#0b3563\"\n d=\"M663,586.79l7.65,6.75s-13.11,14.24-11.89,29.23l-19.58,16.77-16.21-14.32,13.56-22.81s14.53-.53,26.48-15.63Z\"\n ></path>\n <path\n fill=\"#fff\"\n d=\"M643.1,611.15c1.58-1.84,4.33-2.03,6.15-.43,1.81,1.6,2.01,4.39,.43,6.23-1.58,1.84-4.33,2.03-6.15,.43-1.81-1.6-2.01-4.39-.43-6.23Z\"\n ></path>\n <polygon\n fill=\"#fff\"\n points=\"644.37 617.69 643.11 616.58 666.23 589.63 667.49 590.74 644.37 617.69\"\n ></polygon>\n </g>\n <polygon\n fill=\"#6d76ff\"\n points=\"635.64 643.68 619.42 629.36 622.96 625.23 639.18 639.54 635.64 643.68\"\n ></polygon>\n <path\n fill=\"#0b3563\"\n d=\"M458.23,834.69l-.79-.69c-4.26-3.76-4.71-10.32-1-14.64l162.97-190,16.22,14.32-162.97,190c-3.71,4.32-10.17,4.78-14.43,1.02Z\"\n ></path>\n </g>\n <path\n fill=\"#ffae73\"\n d=\"M549.94,736.45s3.13-2.82,3.87-4.77c.25-.68,2.39-3.74,6.03-3.47,3.33,.25,9.24-6.94,9.24-6.94,.86,1.9,3.83,9.03-.42,12.65-3.47,2.95-11.81,8.05-16.87,11.41-5.44,3.61-1.85-8.88-1.85-8.88Z\"\n ></path>\n <path\n fill=\"#ff912b\"\n d=\"M550.35,735.4s-42.11,7.26-45.84,5.42c-5.96-2.94,2.31-46.28,2.31-46.28,0,0,.36-9.82-10.96-12.14-9.83-2.01-19.31,5.46-19.31,5.46,0,0-8.63,7.83-7.52,16.51,2.44,19.25,6.24,58.39,18.93,64.39,16.37,7.74,63.73-21.46,63.73-21.46,0,0,1.58-1.96,1.35-5.6-.2-3.21-2.7-6.3-2.7-6.3Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M588.46,698.68s10.63-3.93,9.69-9.44c-.94-5.51-4.25-4.82-6.25-2.92-2,1.9-.89,11.66-3.44,12.36Z\"\n ></path>\n <path\n fill=\"#ffae73\"\n d=\"M553.07,733.63s1.45-4.32,3-6.17c1.55-1.85,2.2-4.99,2.91-3.95,.7,1.05-.56,4.8,0,6.23,.56,1.43-5.9,3.89-5.9,3.89Z\"\n ></path>\n </g>\n <rect fill=\"#a9c2ff\" height=\"67.09\" width=\"190.42\" y=\"956.62\" x=\"1304.39\"></rect>\n <rect fill=\"#1e3865\" ry=\"2.37\" rx=\"2.37\" height=\"4.74\" width=\"1620\" y=\"1023.26\"></rect>\n </g>\n </g>\n </g>\n </svg>\n )\n}\n\nexport default Default\n","import { lazy } from 'react'\nimport type { RouteObject } from 'react-router-dom'\nimport { Navigate } from 'react-router-dom'\n\nconst UserList = lazy(() => import('./UserList'))\nconst RoleList = lazy(() => import('./RoleList'))\nconst RoleDetail = lazy(() => import('./RoleDetail'))\n\nconst routes: RouteObject = {\n path: 'permission',\n children: [\n {\n index: true,\n element: <Navigate relative=\"path\" to=\"user\" />,\n },\n {\n path: 'user',\n element: <UserList />,\n },\n {\n path: 'role',\n element: <RoleList />,\n },\n {\n path: 'role/:name',\n element: <RoleDetail />,\n },\n ],\n}\n\nexport default routes\n","import type { LayoutProps } from './Layout'\nimport Layout from './Layout'\nimport type { ItemType2, NavBarProps } from './NavBar'\n\nexport { Layout }\nexport type { ItemType2, LayoutProps, NavBarProps }\n","import logo from '@/assets/512_orange_nobackground.png'\nimport { Layout as AntdLayout, Spin, theme } from 'antd'\nimport type { FC, ReactNode } from 'react'\nimport { Suspense } from 'react'\nimport { Link, Outlet } from 'react-router-dom'\nimport type { ItemType2 } from './NavBar'\nimport NavBar from './NavBar'\n\nconst { Header, Sider, Content } = AntdLayout\n\nexport interface LayoutProps {\n title?: ReactNode\n items: ItemType2[]\n header?: ReactNode\n}\n\nconst Layout: FC<LayoutProps> = props => {\n const { title, items, header } = props\n const {\n token: { colorBgContainer, colorBorder },\n } = theme.useToken()\n\n return (\n <AntdLayout hasSider className=\"h-screen\">\n <Sider\n width={256}\n style={{\n overflow: 'auto',\n height: '100vh',\n position: 'fixed',\n left: 0,\n top: 0,\n bottom: 0,\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colorBorder,\n }}\n theme=\"light\"\n >\n <div className=\"flex items-end px-6 py-4\">\n <img src={logo} alt=\"logo\" className=\"w-8\" />\n <Link className=\"font-bold text-lg ml-2\" to=\"/\">\n {title}\n </Link>\n </div>\n <NavBar items={items} />\n </Sider>\n <AntdLayout className=\"ml-64\">\n <Header\n style={{\n padding: '0 24px',\n background: colorBgContainer,\n borderBottomWidth: 1,\n borderBottomStyle: 'solid',\n borderBottomColor: colorBorder,\n }}\n >\n {header}\n </Header>\n <Content className=\"p-6 overflow-auto bg-gray-50\">\n <Suspense\n fallback={\n <Spin\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '50vh',\n }}\n />\n }\n >\n <Outlet />\n </Suspense>\n </Content>\n </AntdLayout>\n </AntdLayout>\n )\n}\n\nexport default Layout\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useMenuStore } from '@/stores'\nimport Icon, * as Icons from '@ant-design/icons'\nimport { Menu } from 'antd'\nimport type {\n ItemType,\n MenuDividerType,\n MenuItemGroupType,\n MenuItemType,\n SubMenuType,\n} from 'antd/es/menu/hooks/useItems'\nimport type { FC, ForwardRefExoticComponent, ReactNode } from 'react'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\nimport type { Merge } from 'ts-essentials'\n\n// 扩展 antd Menu 的类型,使其支持一些我们想要的自定义字段。\ntype MenuItemType2 = Merge<\n Omit<MenuItemType, 'icon'>,\n {\n code /** 权限编号 **/?: string\n route /** 前端路由地址 **/?: string\n icon?: string\n }\n>\n\ntype SubMenuType2 = Merge<\n Omit<SubMenuType, 'icon'>,\n {\n children?: ItemType2[]\n icon?: string\n }\n>\n\ntype MenuItemGroupType2 = Merge<MenuItemGroupType, { children?: ItemType2[] }>\n\nexport type ItemType2 = MenuItemType2 | SubMenuType2 | MenuItemGroupType2 | MenuDividerType | null\n\nconst withLink = (label?: ReactNode, route?: string): ReactNode => {\n if (!label) {\n return <></>\n }\n\n if (route) {\n return <Link to={route}>{label}</Link>\n }\n\n return label\n}\n\n/**\n * 转换导航配置,主要做了以下几件事情\n * 1. 用 Link 元素包装 route\n * 2. 收集 code,用于权限判断\n */\nfunction transformItems(items: ItemType2[]) {\n const result: ItemType[] = []\n\n for (let i = 0; i < items.length; i++) {\n if (items[i] === null) {\n result[i] = null\n } else if ((items[i] as MenuDividerType).type === 'divider') {\n result[i] = { ...items[i] } as MenuDividerType\n } else {\n // 引入 icon\n const iconName = (items[i] as MenuItemType2 | SubMenuType2).icon\n\n if ((items[i] as SubMenuType2 | MenuItemGroupType2).children) {\n const { children, ...restProps } = items[i] as SubMenuType2 | MenuItemGroupType2\n result[i] = {\n ...restProps,\n children: transformItems(children ?? []),\n icon: iconName ? <Icon component={(Icons as any)[iconName] as ForwardRefExoticComponent<any>} /> : null,\n } as SubMenuType | MenuItemGroupType\n } else {\n const { route, label, code, ...restProps } = items[i] as MenuItemType2\n // const isPass = code\n // ? await httpClient.post<PermissionCheckResult>('/usystem/user/check', { permissions: [code] }).then(res => {\n // if (res.has_all) {\n // return true\n // }\n //\n // return res[code] ?? false\n // })\n // : true\n\n const isPass = true\n\n result[i] = isPass\n ? ({\n ...restProps,\n label: withLink(label, route),\n icon: iconName ? <Icon component={(Icons as any)[iconName] as ForwardRefExoticComponent<any>} /> : null,\n } as MenuItemType)\n : null\n }\n }\n }\n\n return result\n}\n\n// 拍平导航配置,并且注入 keypath 字段\nfunction flatItems(\n items: ItemType2[],\n result: Merge<MenuItemType2, { keypath?: string[] }>[] = [],\n keypath: string[] = [],\n) {\n for (const item of items) {\n const children = (item as SubMenuType2 | MenuItemGroupType2)!.children as ItemType2[]\n\n if (Array.isArray(children)) {\n const _keys =\n (item as MenuItemGroupType2)!.type !== 'group' && item!.key ? [...keypath, item!.key as string] : keypath\n flatItems(children, result, _keys)\n } else {\n result.push(Object.assign(item as MenuItemType2, { keypath }))\n }\n }\n\n return result\n}\n\nexport interface NavBarProps {\n items: ItemType2[]\n}\n\nconst NavBar: FC<NavBarProps> = props => {\n const { items } = props\n const location = useLocation()\n const flattenItems = useMemo(() => flatItems(items ?? []), [items])\n const [internalItems, setInternalItems] = useState<ItemType<MenuItemType>[]>([])\n\n useEffect(() => {\n setInternalItems(transformItems(items ?? []))\n }, [items])\n\n const openKeys = useMenuStore(state => state.openKeys)\n const selectedKeys = useMenuStore(state => state.selectedKeys)\n const setOpenKeys = useMenuStore(state => state.setOpenKeys)\n const setSelectedKeys = useMenuStore(state => state.setSelectedKeys)\n\n const onOpenChange = useCallback(\n (keys: string[]) => {\n const latestOpenKey = keys?.find(key => openKeys?.indexOf(key) === -1)\n const match = flattenItems.find(item => latestOpenKey === item.key)\n const _openKeys = (match?.keypath ?? [latestOpenKey]) as string[]\n setOpenKeys(_openKeys)\n },\n [flattenItems, openKeys, setOpenKeys],\n )\n\n useEffect(() => {\n const match = flattenItems.find(item => location.pathname === item.route)\n\n if (match) {\n const key = match.key as string\n const keypath = match.keypath as string[]\n setSelectedKeys([key])\n setOpenKeys(keypath)\n }\n }, [flattenItems, location, setOpenKeys, setSelectedKeys])\n\n return (\n <Menu\n style={{ borderRight: 'none' }}\n items={internalItems}\n mode=\"inline\"\n openKeys={openKeys}\n selectedKeys={selectedKeys}\n onOpenChange={onOpenChange}\n />\n )\n}\n\nexport default NavBar\n"]}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "react-toolkits",
3
+ "version": "0.0.1",
4
+ "sideEffects": [
5
+ "**/*.css"
6
+ ],
7
+ "module": "./dist/index.esm.js",
8
+ "typings": "./dist/index.d.mts",
9
+ "exports": {
10
+ ".": "./dist/index.esm.js",
11
+ "./style.css": "./dist/index.css"
12
+ },
13
+ "typesVersions": {},
14
+ "license": "MIT",
15
+ "author": "chaos1ee <chaos.maybeeee@gmail.com>",
16
+ "homepage": "https://github.com/chaos1ee/everythingflow/tree/main/packages/react-toolkits#readme",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "ssh://git@github.com/chaos1ee/everythingflow.git",
20
+ "directory": "packages/react-toolkits"
21
+ },
22
+ "publishConfig": {
23
+ "access": "public",
24
+ "registry": "https://registry.npmjs.org/"
25
+ },
26
+ "dependencies": {
27
+ "@ant-design/icons": "^5.1.4",
28
+ "antd": "^5.7.3",
29
+ "axios": "^1.4.0",
30
+ "dayjs": "^1.11.9",
31
+ "lodash-es": "^4.17.21",
32
+ "react-router-dom": "^6.14.2",
33
+ "swr": "^2.2.0",
34
+ "zustand": "^4.3.9"
35
+ },
36
+ "devDependencies": {
37
+ "@types/lodash-es": "^4.17.8",
38
+ "@types/node": "^20.4.5",
39
+ "@types/react": "^18.2.16",
40
+ "@types/react-dom": "^18.2.7",
41
+ "autoprefixer": "^10.4.14",
42
+ "eslint-import-resolver-typescript": "^3.5.5",
43
+ "postcss": "^8.4.27",
44
+ "prettier": "^3.0.0",
45
+ "react": "^18.2.0",
46
+ "react-dom": "^18.2.0",
47
+ "tailwindcss": "^3.3.3",
48
+ "ts-essentials": "^9.3.2",
49
+ "tsup": "^7.1.0",
50
+ "typescript": "^5.1.6",
51
+ "@everythingflow/eslint-config-mono": "0.0.1",
52
+ "tailwind-config": "0.0.1",
53
+ "tsconfig": "0.0.1"
54
+ },
55
+ "peerDependencies": {
56
+ "react": "^18.2.0",
57
+ "react-dom": "^18.2.0"
58
+ },
59
+ "scripts": {
60
+ "build": "tsup",
61
+ "check-types": "tsc --noEmit"
62
+ }
63
+ }
@@ -0,0 +1,9 @@
1
+ // If you want to use other PostCSS plugins, see the following:
2
+ // https://tailwindcss.com/docs/using-with-preprocessors
3
+
4
+ module.exports = {
5
+ plugins: {
6
+ tailwindcss: {},
7
+ autoprefixer: {},
8
+ },
9
+ }