{"version":3,"sources":["store/commonSlice.js","components/Loading/FullScreenLoading.js","components/Loading/index.js","theme/light.js","theme/dark.js","features/routes.js","features/App.js","store/rootStore.js","serviceWorker.js","index.js","store/authSlice.js","config.js","services/axiosBaseQuery.js","services/generateBasicEndpoints.js","services/auth.js","services/problem.js","services/problemSet.js","services/optimization.js","services/result.js","services/inputServices.js","services/solverVersionServices.js","services/coap.js","languages/enUS/common.js","languages/enUS/index.js","languages/enUS/home.js","languages/enUS/solver.js","languages/enUS/tool.js","languages/enUS/statistic.js","languages/enUS/signup.js","languages/enUS/problem.js","languages/enUS/problemSet.js","languages/enUS/optimization.js","languages/enUS/result.js","languages/enUS/profile.js","languages/enUS/competition.js","languages/zhCN/index.js","languages/zhCN/common.js","languages/zhCN/home.js","languages/zhCN/solver.js","languages/zhCN/tool.js","languages/zhCN/statistic.js","languages/zhCN/signup.js","languages/zhCN/problem.js","languages/zhCN/problemSet.js","languages/zhCN/optimization.js","languages/zhCN/result.js","languages/zhCN/profile.js","languages/zhCN/competition.js","languages/index.js","features/Language.js"],"names":["commonSlice","createSlice","name","initialState","theme","locale","opened","problemPool","reducers","changeTheme","state","action","payload","changeLocale","changeOpenMenu","changePool","actions","CircularIndeterminate","Box","sx","position","left","right","top","bottom","height","zIndex","display","justifyContent","alignItems","CircularProgress","size","loadable","func","baseLoadable","fallback","lightTheme","createTheme","breakpoints","keys","values","xs","sm","md","lg","xl","unit","direction","components","MuiCssBaseline","styleOverrides","body","MuiButtonBase","defaultProps","disableTouchRipple","MuiButton","disableElevation","MuiContainer","root","paddingLeft","paddingRight","MuiLink","underline","marginTop","marginLeft","MuiTab","palette","mode","primary","main","light","dark","contrastText","divider","primaryDark","common","black","white","text","secondary","disabled","grey","A100","A200","A400","A700","error","success","warning","info","contrastThreshold","tonalOffset","background","paper","default","active","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","shape","borderRadius","unstable_strictMode","typography","button","textTransform","nprogress","color","props","MuiBadge","overlap","shadows","transitions","easing","easeInOut","easeOut","easeIn","sharp","duration","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","darkTheme","scrollbarColor","backgroundColor","minHeight","border","sizeLarge","padding","fontSize","lineHeight","letterSpacing","fontFamily","fontWeight","containedPrimary","variants","variant","style","borderColor","WebkitFontSmoothing","MuiDivider","MuiListItemButton","MuiSelect","IconComponent","type","compare","iconFilled","MuiPaper","textDecorationLine","outlined","boxShadow","MuiTableCell","head","MuiToggleButtonGroup","MuiToggleButton","MuiTooltip","paddingTop","paddingBottom","MuiSwitch","width","transform","switchBase","opacity","track","thumb","flexShrink","icon","fontFamilyCode","fontFamilyTagline","fontFamilySystem","fontWeightExtraBold","h1","h2","h3","h4","h5","h6","subtitle1","body1","body2","caption","htmlFontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","subtitle2","overline","mixins","toolbar","NotFound","Home","routes","index","element","path","localeMap","enLocale","zhLocale","MUILocaleMap","themeMap","App","dispatch","useDispatch","useSelector","React","useContext","LanguageContext","language","app","useRoutes","auth","initialized","coapApi","useGetAccountQuery","undefined","refetchOnMountOrArgChange","account","data","isLoading","useEffect","authActions","setAccount","redirectLogin","ThemeProvider","outerTheme","locales","LocalizationProvider","dateAdapter","AdapterDateFns","CssBaseline","maxSnack","LanguageApp","Language","store","configureStore","reducer","reducerPath","commonReducer","authReducer","middleware","getDefaultMiddleware","concat","setupListeners","Boolean","window","location","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","authSlice","user","Cookie","remove","config","tokenStorageKey","baseURL","axiosBaseQuery","a","axiosOptions","getState","headers","restOptions","defaultLocale","axios","withCredentials","response","access_token","code","status","message","console","log","request","generateBasicEndpoints","basePaths","providesTag","queryList","query","url","method","providesTags","result","map","id","update","Number","invalidatesTags","batchDelete","ids","add","builder","login","mutation","logout","getAccount","signup","sendVerificationCode","resetPassword","updateProfile","updatePassword","updateEmail","sendEmailVerificationCode","deleteAccount","password","params","problem","getFiles","getFile","createFolder","file_name","parent_id","parentId","batchDeleteFiles","uploadProblemFile","getProblem","getProblemResults","project_name","job_id","optimization_id","problem_set_id","request_id","solver_version","create_dtt","problemSet","getProblemSets","addProblemSet","deleteProblemSet","getProblemSet","updateProblemSet","deleteProblemSetDetail","updateProblemSetDetail","getOptimizations","cancelOptimizations","requestId","addOptimizationByProblem","formData","append","addOptimizationByProblems","addOptimizationByProblemSet","getOptimizationByProblem","getOptimizationByProblems","getResults","getResult","cancelResult","resultId","inputServices","solverVersionServices","solverCode","solverVersion","input","categoryEndpoints","solverEndpoints","itemEndpoints","createApi","baseQuery","tagTypes","endpoints","getCategories","updateCategory","deleteCategories","addCategory","getSolvers","updateSolver","deleteSolvers","addSolver","getItems","updateItem","deleteItems","addItem","getInputs","getSolverVersion","getSolverVersions","listJobs","page","squeueResultVOList","JOBNUMBER","getJob","jobId","killJob","addJob","getDailyCount","getJobStatistics","getJobStatus","getCommonProblems","getCompetitions","transformResponse","meta","arg","now","Date","avaliableList","list","filter","item","startDate","isAfter","total","length","getCompetition","optimization","useGetCategoriesQuery","useGetSolversQuery","useUpdateCategoryMutation","useDeleteCategoriesMutation","useAddCategoryMutation","useGetItemsQuery","useUpdateSolverMutation","useDeleteSolversMutation","useAddSolverMutation","useListJobsQuery","useUpdateItemMutation","useDeleteItemsMutation","useAddItemMutation","useGetJobQuery","useKillJobMutation","useAddJobMutation","useGetDailyCountQuery","useGetJobStatisticsQuery","useGetJobStatusQuery","useGetCommonProblemsQuery","useGetCompetitionsQuery","useGetCompetitionQuery","dictionary","home","solvers","tools","statistics","footer","terms","qa","EULA","privacyPolicy","form","submit","reset","cancel","refresh","close","sendCode","resend","ok","delete","clear","view","search","back","upload","filters","done","edit","save","backHome","positionOption1","positionOption2","positionOption3","positionOption4","positionOption5","positionOption6","industryOption1","industryOption2","industryOption3","industryOption4","industryOption5","industryOption6","industryOption7","industryOption8","industryOption9","industryOption10","industryOption11","industryOption12","industryOption13","others","fullname","age","title","company","address","email","newPassword","confirmPassword","nickname","industry","institute","phone","region","city","reasons","signin","signout","verificationCode","forgetPassword","irreversibleActionWarn","columns","creator","createTime","updater","updateTime","empty","autoRedirect","redirectImmediately","messages","dragValidateInfo","dragValidateSuccess","dragValidateRequired","status504","subtitle","about","desc","support","showMore","quickStart","solver","module","solverList","groupBy","problemType","expandAll","collapseAll","inputType","submissionForm","uploadProblem","useCommonProblem","commonProblemFile","selectVersion","tool","jobNumber","jobPassword","viewQueue","viewResult","dequeue","waiting","processing","finished","failed","deleted","statistic","tab","website","start","end","to","pie","signUpAgreement","signUpAgreementLink","signUpAgreementAnd","signUpAgreementLink2","signUpGroup1","signUpGroup2","usernameFormat","registrationForm","betterExperience","activeSuccess","activeError","addToPool","backToPrevLevel","fileUpload","largeFileUpload","newDirection","directoryName","directoryNameConvention","directoryNameConvention1","directoryNameConvention2","attributes","testRecord","fileName","problemName","analyzing","poolSelectedItems","poolNewProblemSet","poolAddToExit","poolSelectedInfo","dragFileTitle","baseFileLimitInfo","largeFileLimitInfo","disabledFileWarning","exception","gettingSparkMD5","description","solved","tag","deleteWarning","modifySuggestion","problemFileError","removeWarning","detailOneBreadcrumb","detailTwoBreadcrumb","detailDiffBreadcrumb","compareSelectErrorWarning","problemSetId","fromSubmittedDate","toSubmittedDate","submittedTime","startTime","endTime","failureReason","submitter","steps","label1","label2","parameter","fromCreateTime","toCreateTime","detail","cannotCancel","profile","changePassword","oldPassword","changeEmail","changeEmailDesc","activity","accountInfo","accountTooltip","tooltips","username","competition","fields","subject","sponsoredBy","endDate","prize","deadline","ongoing","ended","local","localStorage","getItem","zh","toLowerCase","dictionaryList","enUS","zhCN","languageOptions","createContext","LanguageProvider","languageContext","useState","provider","setLanguage","setItem","reload","Provider","value","children"],"mappings":"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","file":"static/js/main.3d6a1c59.chunk.js","sourcesContent":["import { createSlice } from '@reduxjs/toolkit';\n\nconst initialState = {\n // 主题\n theme: 'light',\n\n // 语种\n locale: 'zhCN',\n\n // 控制台侧边栏展开\n opened: true,\n\n // 问题池:问题 Id 数组\n problemPool: [],\n};\n\nexport const commonSlice = createSlice({\n name: 'common',\n initialState,\n reducers: {\n // 切换主题\n changeTheme: (state, action) => {\n state.theme = action.payload;\n },\n // 切换语种\n changeLocale: (state, action) => {\n state.locale = action.payload;\n },\n // 切换侧边栏展开状态\n changeOpenMenu: (state, action) => {\n state.opened = action.payload;\n },\n // 修改问题池\n changePool: (state, action) => {\n state.problemPool = action.payload;\n },\n },\n});\n\nexport const { changeTheme, changeLocale, changeOpenMenu, changePool } =\n commonSlice.actions;\n\nexport default commonSlice.reducer;\n","import * as React from 'react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Box from '@mui/material/Box';\n\nexport default function CircularIndeterminate() {\n return (\n \n \n \n );\n}\n","import React from \"react\";\nimport baseLoadable from \"@loadable/component\";\n\nimport FullScreenLoading from \"./FullScreenLoading\";\n\nfunction loadable(func) {\n return baseLoadable(func, { fallback: });\n}\n\nexport { loadable, FullScreenLoading };\n","import { createTheme } from '@mui/material/styles';\n\nconst lightTheme = createTheme({\n breakpoints: {\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n values: { xs: 0, sm: 768, md: 992, lg: 1200, xl: 1536 },\n unit: 'px',\n },\n direction: 'ltr',\n components: {\n MuiCssBaseline: { styleOverrides: { body: null } },\n MuiButtonBase: { defaultProps: { disableTouchRipple: true } },\n MuiButton: {\n defaultProps: { disableElevation: true },\n },\n MuiContainer: {\n styleOverrides: {\n root: {\n '@media (min-width:900px)': {\n paddingLeft: '16px',\n paddingRight: '16px',\n },\n },\n },\n },\n MuiLink: {\n defaultProps: { underline: 'none' },\n styleOverrides: {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n '&.MuiTypography-body1 > svg': { marginTop: 2 },\n '& svg:last-child': { marginLeft: 2 },\n },\n },\n },\n MuiTab: { defaultProps: { disableTouchRipple: true } },\n },\n palette: {\n mode: 'light',\n primary: {\n 50: '#F0F7FF',\n 100: '#C2E0FF',\n 200: '#A5D8FF',\n 300: '#66B2FF',\n 400: '#3399FF',\n 500: '#007FFF',\n 600: '#0072E5',\n 700: '#0059B2',\n 800: '#004C99',\n 900: '#003A75',\n main: '#007FFF',\n light: '#66B2FF',\n dark: '#0059B2',\n contrastText: '#fff',\n },\n divider: '#E5E8EC',\n primaryDark: {\n 50: '#E2EDF8',\n 100: '#CEE0F3',\n 200: '#91B9E3',\n 300: '#5090D3',\n 400: '#265D97',\n 500: '#1E4976',\n 600: '#173A5E',\n 700: '#132F4C',\n 800: '#001E3C',\n 900: '#0A1929',\n main: '#5090D3',\n },\n common: { black: '#1D1D1D', white: '#fff' },\n text: {\n primary: '#20262D',\n secondary: '#46505A',\n disabled: 'rgba(0, 0, 0, 0.38)',\n },\n grey: {\n 50: '#F3F6F9',\n 100: '#EAEEF3',\n 200: '#E5E8EC',\n 300: '#D7DCE1',\n 400: '#BFC7CF',\n 500: '#AAB4BE',\n 600: '#7F8E9D',\n 700: '#46505A',\n 800: '#2F3A45',\n 900: '#20262D',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161',\n },\n error: {\n 50: '#FFF0F1',\n 100: '#FFDBDE',\n 200: '#FFBDC2',\n 300: '#FF99A2',\n 400: '#FF7A86',\n 500: '#FF505F',\n 600: '#EB0014',\n 700: '#C70011',\n 800: '#94000D',\n 900: '#570007',\n main: '#EB0014',\n light: '#FF99A2',\n dark: '#C70011',\n contrastText: '#fff',\n },\n success: {\n 50: '#E9FBF0',\n 100: '#C6F6D9',\n 200: '#9AEFBC',\n 300: '#6AE79C',\n 400: '#3EE07F',\n 500: '#21CC66',\n 600: '#1DB45A',\n 700: '#1AA251',\n 800: '#178D46',\n 900: '#0F5C2E',\n main: '#1AA251',\n light: '#6AE79C',\n dark: '#1AA251',\n contrastText: '#fff',\n },\n warning: {\n 50: '#FFF9EB',\n 100: '#FFF4DB',\n 200: '#FFEDC2',\n 300: '#FFE4A3',\n 400: '#FFD980',\n 500: '#FCC419',\n 600: '#FAB005',\n 700: '#F1A204',\n 800: '#DB9A00',\n 900: '#8F6400',\n main: '#F1A204',\n light: '#FFE4A3',\n dark: '#F1A204',\n contrastText: 'rgba(0, 0, 0, 0.87)',\n },\n secondary: {\n main: '#9c27b0',\n light: '#ba68c8',\n dark: '#7b1fa2',\n contrastText: '#fff',\n },\n info: {\n main: '#0288d1',\n light: '#03a9f4',\n dark: '#01579b',\n contrastText: '#fff',\n },\n contrastThreshold: 3,\n tonalOffset: 0.2,\n background: { paper: '#fff', default: '#fff' },\n action: {\n active: 'rgba(0, 0, 0, 0.54)',\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n disabled: 'rgba(0, 0, 0, 0.26)',\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12,\n },\n },\n shape: { borderRadius: 4 },\n unstable_strictMode: true,\n typography: {\n button: {\n textTransform: 'initial',\n },\n },\n nprogress: { color: '#007FFF' },\n props: { MuiBadge: { overlap: 'rectangular' } },\n shadows: [\n 'none',\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)',\n '0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)',\n '0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)',\n '0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)',\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)',\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\n '0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)',\n '0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)',\n '0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)',\n '0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)',\n '0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)',\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)',\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)',\n '0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)',\n '0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)',\n '0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)',\n '0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)',\n '0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)',\n '0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)',\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)',\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)',\n '0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)',\n '0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)',\n '0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)',\n ],\n transitions: {\n easing: {\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)',\n },\n duration: {\n shortest: 150,\n shorter: 200,\n short: 250,\n standard: 300,\n complex: 375,\n enteringScreen: 225,\n leavingScreen: 195,\n },\n },\n zIndex: {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500,\n },\n});\n\nexport default lightTheme;\n","import { createTheme } from '@mui/material/styles';\n\nconst darkTheme = createTheme({\n breakpoints: {\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n values: { xs: 0, sm: 600, md: 900, lg: 1200, xl: 1536 },\n unit: 'px',\n },\n direction: 'ltr',\n components: {\n MuiCssBaseline: {\n styleOverrides: {\n body: {\n scrollbarColor: '#6b6b6b #2b2b2b',\n '&::-webkit-scrollbar, & *::-webkit-scrollbar': {\n backgroundColor: '#2b2b2b',\n },\n '&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb': {\n borderRadius: 8,\n backgroundColor: '#6b6b6b',\n minHeight: 24,\n border: '3px solid #2b2b2b',\n },\n '&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus':\n { backgroundColor: '#959595' },\n '&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active':\n { backgroundColor: '#959595' },\n '&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover':\n { backgroundColor: '#959595' },\n '&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner': {\n backgroundColor: '#2b2b2b',\n },\n },\n },\n },\n MuiButtonBase: { defaultProps: { disableTouchRipple: true } },\n MuiButton: {\n defaultProps: { disableElevation: true },\n styleOverrides: {\n sizeLarge: {\n padding: '1rem 1.25rem',\n fontSize: '1rem',\n lineHeight: 1.3125,\n letterSpacing: 0,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 700,\n },\n containedPrimary: { backgroundColor: '#007FFF', color: '#fff' },\n },\n variants: [\n {\n props: { variant: 'code' },\n style: {\n color: '#BFC7CF',\n border: '1px solid',\n borderColor: '#265D97',\n backgroundColor: '#132F4C',\n fontSize: '0.875rem',\n lineHeight: 1.5,\n letterSpacing: 0,\n fontFamily:\n 'Consolas,Menlo,Monaco,Andale Mono,Ubuntu Mono,monospace',\n fontWeight: 600,\n WebkitFontSmoothing: 'subpixel-antialiased',\n '&:hover, &.Mui-focusVisible': {\n borderColor: '#3399FF',\n backgroundColor: '#173A5E',\n '& .MuiButton-endIcon': { color: '#66B2FF' },\n },\n '& .MuiButton-startIcon': { color: '#BFC7CF' },\n '& .MuiButton-endIcon': { color: '#BFC7CF' },\n },\n },\n ],\n },\n MuiContainer: {\n styleOverrides: {\n root: {\n '@media (min-width:900px)': {\n paddingLeft: '16px',\n paddingRight: '16px',\n },\n },\n },\n },\n MuiDivider: { styleOverrides: { root: { borderColor: '#132F4C' } } },\n MuiLink: {\n defaultProps: { underline: 'none' },\n styleOverrides: {\n root: {\n color: '#3399FF',\n fontWeight: 700,\n display: 'inline-flex',\n alignItems: 'center',\n '&.MuiTypography-body1 > svg': { marginTop: 2 },\n '& svg:last-child': { marginLeft: 2 },\n },\n },\n },\n MuiListItemButton: {\n styleOverrides: {\n root: { borderRadius: 5, '&:hover, &:focus': { backgroundColor: '' } },\n },\n },\n MuiSelect: {\n defaultProps: { IconComponent: { type: {}, compare: null } },\n styleOverrides: { iconFilled: { top: 'calc(50% - .25em)' } },\n },\n MuiTab: { defaultProps: { disableTouchRipple: true } },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundColor: '#0A1929',\n '&[href]': { textDecorationLine: 'none' },\n },\n outlined: {\n display: 'block',\n borderColor: '#265D97',\n backgroundColor: '#132F4C',\n 'a&, button&': {\n '&:hover': { boxShadow: '1px 1px 20px 0 rgb(90 105 120 / 20%)' },\n },\n },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: { padding: '8px 16px', borderColor: '#132F4C' },\n head: { color: '#fff', fontWeight: 700 },\n body: { color: '#AAB4BE' },\n },\n },\n MuiToggleButtonGroup: {\n styleOverrides: { root: { backgroundColor: '#0A1929' } },\n },\n MuiToggleButton: {\n styleOverrides: {\n root: {\n textTransform: 'none',\n fontWeight: 700,\n color: '#D7DCE1',\n borderColor: '#1E4976',\n '&.Mui-selected': {\n borderColor: '#007FFF !important',\n color: '#fff',\n backgroundColor: '#004C99',\n },\n },\n },\n },\n MuiTooltip: {\n styleOverrides: { tooltip: { paddingTop: 7, paddingBottom: 7 } },\n },\n MuiSwitch: {\n styleOverrides: {\n root: {\n width: 32,\n height: 20,\n padding: 0,\n '& .MuiSwitch-switchBase': {\n '&.Mui-checked': { transform: 'translateX(11px)', color: '#fff' },\n },\n },\n switchBase: {\n height: 20,\n width: 20,\n padding: 0,\n color: '#fff',\n '&.Mui-checked + .MuiSwitch-track': { opacity: 1 },\n },\n track: { opacity: 1, borderRadius: 32, backgroundColor: '#2F3A45' },\n thumb: { flexShrink: 0, width: '14px', height: '14px' },\n },\n },\n },\n palette: {\n mode: 'dark',\n primary: {\n 50: '#F0F7FF',\n 100: '#C2E0FF',\n 200: '#A5D8FF',\n 300: '#66B2FF',\n 400: '#3399FF',\n 500: '#007FFF',\n 600: '#0072E5',\n 700: '#0059B2',\n 800: '#004C99',\n 900: '#003A75',\n main: '#3399FF',\n light: '#66B2FF',\n dark: '#0059B2',\n contrastText: 'rgba(0, 0, 0, 0.87)',\n },\n divider: '#132F4C',\n primaryDark: {\n 50: '#E2EDF8',\n 100: '#CEE0F3',\n 200: '#91B9E3',\n 300: '#5090D3',\n 400: '#265D97',\n 500: '#1E4976',\n 600: '#173A5E',\n 700: '#132F4C',\n 800: '#001E3C',\n 900: '#0A1929',\n main: '#5090D3',\n },\n background: { default: '#001E3C', paper: '#0A1929' },\n common: { black: '#1D1D1D', white: '#fff' },\n text: {\n primary: '#fff',\n secondary: '#AAB4BE',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)',\n },\n grey: {\n 50: '#F3F6F9',\n 100: '#EAEEF3',\n 200: '#E5E8EC',\n 300: '#D7DCE1',\n 400: '#BFC7CF',\n 500: '#AAB4BE',\n 600: '#7F8E9D',\n 700: '#46505A',\n 800: '#2F3A45',\n 900: '#20262D',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161',\n },\n error: {\n 50: '#FFF0F1',\n 100: '#FFDBDE',\n 200: '#FFBDC2',\n 300: '#FF99A2',\n 400: '#FF7A86',\n 500: '#FF505F',\n 600: '#EB0014',\n 700: '#C70011',\n 800: '#94000D',\n 900: '#570007',\n main: '#EB0014',\n light: '#FF99A2',\n dark: '#C70011',\n contrastText: '#fff',\n },\n success: {\n 50: '#E9FBF0',\n 100: '#C6F6D9',\n 200: '#9AEFBC',\n 300: '#6AE79C',\n 400: '#3EE07F',\n 500: '#21CC66',\n 600: '#1DB45A',\n 700: '#1AA251',\n 800: '#178D46',\n 900: '#0F5C2E',\n main: '#1DB45A',\n light: '#6AE79C',\n dark: '#1AA251',\n contrastText: 'rgba(0, 0, 0, 0.87)',\n },\n warning: {\n 50: '#FFF9EB',\n 100: '#FFF4DB',\n 200: '#FFEDC2',\n 300: '#FFE4A3',\n 400: '#FFD980',\n 500: '#FCC419',\n 600: '#FAB005',\n 700: '#F1A204',\n 800: '#DB9A00',\n 900: '#8F6400',\n main: '#F1A204',\n light: '#FFE4A3',\n dark: '#F1A204',\n contrastText: 'rgba(0, 0, 0, 0.87)',\n },\n secondary: {\n main: '#ce93d8',\n light: '#f3e5f5',\n dark: '#ab47bc',\n contrastText: 'rgba(0, 0, 0, 0.87)',\n },\n info: {\n main: '#29b6f6',\n light: '#4fc3f7',\n dark: '#0288d1',\n contrastText: 'rgba(0, 0, 0, 0.87)',\n },\n contrastThreshold: 3,\n tonalOffset: 0.2,\n action: {\n active: '#fff',\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24,\n },\n },\n shape: { borderRadius: 10 },\n unstable_strictMode: true,\n typography: {\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontFamilyCode: 'Consolas,Menlo,Monaco,Andale Mono,Ubuntu Mono,monospace',\n fontFamilyTagline:\n '\"PlusJakartaSans-ExtraBold\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontFamilySystem:\n '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeightExtraBold: 800,\n h1: {\n fontFamily:\n '\"PlusJakartaSans-ExtraBold\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontSize: 'clamp(2.625rem, 1.2857rem + 3.5714vw, 4rem)',\n fontWeight: 800,\n lineHeight: 1.1142857142857143,\n },\n h2: {\n fontFamily:\n '\"PlusJakartaSans-ExtraBold\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontSize: 'clamp(1.5rem, 0.9643rem + 1.4286vw, 2.25rem)',\n fontWeight: 800,\n lineHeight: 1.2222222222222223,\n color: '#E5E8EC',\n },\n h3: {\n fontSize: '2.25rem',\n lineHeight: 1.2222222222222223,\n letterSpacing: 0,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 400,\n },\n h4: {\n fontSize: '1.75rem',\n lineHeight: 1.5,\n letterSpacing: 0,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 400,\n },\n h5: {\n fontSize: '1.5rem',\n lineHeight: 1.5,\n letterSpacing: 0,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 400,\n },\n h6: {\n fontSize: '1.25rem',\n lineHeight: 1.5,\n letterSpacing: 0,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 500,\n },\n button: {\n textTransform: 'initial',\n fontWeight: 700,\n letterSpacing: 0,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontSize: '0.875rem',\n lineHeight: 1.75,\n },\n subtitle1: {\n fontSize: '1.125rem',\n lineHeight: 1.3333333333333333,\n letterSpacing: 0,\n fontWeight: 500,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n },\n body1: {\n fontSize: '1rem',\n lineHeight: 1.5,\n letterSpacing: 0,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 400,\n },\n body2: {\n fontSize: '0.875rem',\n lineHeight: 1.5,\n letterSpacing: 0,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 400,\n },\n caption: {\n display: 'inline-block',\n fontSize: '0.75rem',\n lineHeight: 1.5,\n letterSpacing: 0,\n fontWeight: 700,\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n },\n htmlFontSize: 16,\n fontSize: 14,\n fontWeightLight: 300,\n fontWeightRegular: 400,\n fontWeightMedium: 500,\n fontWeightBold: 700,\n subtitle2: {\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 500,\n fontSize: '0.875rem',\n lineHeight: 1.57,\n },\n overline: {\n fontFamily:\n '\"IBM Plex Sans\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\n fontWeight: 400,\n fontSize: '0.75rem',\n lineHeight: 2.66,\n textTransform: 'uppercase',\n },\n },\n nprogress: { color: '#3399FF' },\n props: { MuiBadge: { overlap: 'rectangular' } },\n mixins: {\n toolbar: {\n minHeight: 56,\n '@media (min-width:0px) and (orientation: landscape)': { minHeight: 48 },\n '@media (min-width:600px)': { minHeight: 64 },\n },\n },\n shadows: [\n 'none',\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)',\n '0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)',\n '0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)',\n '0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)',\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)',\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\n '0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)',\n '0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)',\n '0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)',\n '0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)',\n '0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)',\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)',\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)',\n '0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)',\n '0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)',\n '0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)',\n '0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)',\n '0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)',\n '0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)',\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)',\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)',\n '0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)',\n '0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)',\n '0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)',\n ],\n transitions: {\n easing: {\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)',\n },\n duration: {\n shortest: 150,\n shorter: 200,\n short: 250,\n standard: 300,\n complex: 375,\n enteringScreen: 225,\n leavingScreen: 195,\n },\n },\n zIndex: {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500,\n },\n});\n\nexport default darkTheme;\n","import React from 'react';\nimport { Navigate } from 'react-router-dom';\n\nimport { loadable } from 'components/Loading';\n\nconst NotFound = loadable((props) => import('components/ErrorPage/NotFound'));\nconst ActiveRedirect = loadable((props) => import('components/ErrorPage/ActiveRedirect'));\n\n// Home\nconst Home = loadable((props) => import('features/Home'));\n\n// Solver\nconst SolverLayout = loadable((props) => import('features/Solvers'));\nconst SolverList = loadable((props) => import('features/Solvers/List'));\nconst SolverDetail = loadable((props) => import('features/Solvers/Detail'));\n\n// Tools\nconst Tools = loadable((props) => import('features/Tools'));\n\n// Sign up\nconst SignUp = loadable((props) => import('features/SignUp'));\n\n// Result\nconst ResultLayout = loadable((props) => import('features/Results'));\nconst ResultQueue = loadable((props) => import('features/Results/Queue'));\nconst ResultDetail = loadable((props) => import('features/Results/Detail'));\n\n// Statistics\nconst Statistics = loadable((props) => import('features/Statistics'));\n\n// Competitions\nconst CompetitionsList = loadable((props) => import('features/Competitions/List'));\nconst CompetitionsDetail = loadable((props) => import('features/Competitions/Detail'));\n\n// 控制台\nconst PrivateLayout = loadable((props) =>\n import('components/Layout/PrivateLayout')\n);\nconst Problem = loadable((props) => import('features/Console/Problem'));\nconst ProblemDetail = loadable((props) =>\n import('features/Console/Problem/Detail')\n);\nconst ProblemSet = loadable((props) => import('features/Console/ProblemSet'));\nconst ProblemSetDetail = loadable((props) =>\n import('features/Console/ProblemSet/Detail')\n);\nconst Optimization = loadable((props) =>\n import('features/Console/Optimization')\n);\nconst OptimizationDetailByProblem = loadable((props) =>\n import('features/Console/Optimization/Detail/DetailByProblem')\n);\nconst OptimizationDetailByProblems = loadable((props) =>\n import('features/Console/Optimization/Detail/DetailByProblems')\n);\nconst Result = loadable((props) => import('features/Console/Result'));\nconst Profile = loadable((props) => import('features/Console/Profile'));\nconst ProfileHome = loadable((props) =>\n import('features/Console/Profile/Home')\n);\nconst ProfileAccount = loadable((props) =>\n import('features/Console/Profile/Account')\n);\n\nconst routes = [\n { index: true, element: },\n { path: '*', element: },\n];\n\nexport default routes;\n","import React, { useEffect } from 'react';\nimport { createTheme, ThemeProvider } from '@mui/material/styles';\nimport * as locales from '@mui/material/locale';\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\nimport enLocale from 'date-fns/locale/en-US';\nimport zhLocale from 'date-fns/locale/zh-CN';\nimport { SnackbarProvider } from 'notistack';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useRoutes } from 'react-router-dom';\n\nimport { coapApi } from 'services/coap'\nimport { authActions } from 'store/authSlice'\nimport lightTheme from 'theme/light';\nimport darkTheme from 'theme/dark';\nimport { LanguageContext, LanguageProvider } from './Language';\nimport routes from './routes'\n\n// date-fns locale data\nconst localeMap = {\n 'en-us': enLocale,\n 'zh-cn': zhLocale,\n};\n\n// Material UI locale data\nconst MUILocaleMap = {\n 'en-us': 'enUS',\n 'zh-cn': 'zhCN',\n};\n\n// 主题\nconst themeMap = {\n light: lightTheme,\n dark: darkTheme,\n};\n\nfunction App() {\n const dispatch = useDispatch();\n const { theme } = useSelector((state) => state.common);\n const languageContext = React.useContext(LanguageContext);\n const locale = languageContext.language;\n const app = useRoutes(routes);\n const initialized = useSelector((state) => state.auth.initialized);\n\n const {\n data: account,\n isLoading,\n error,\n } = coapApi.useGetAccountQuery(undefined, {\n refetchOnMountOrArgChange: true,\n });\n\n useEffect(() => {\n if (account) {\n dispatch(authActions.setAccount(account));\n }\n }, [account, dispatch]);\n\n useEffect(() => {\n if (error) {\n dispatch(authActions.redirectLogin());\n }\n }, [error, dispatch]);\n\n return (\n \n \n createTheme(outerTheme, locales[MUILocaleMap[locale] || 'enUS'])\n }\n >\n \n \n \n {app}\n \n \n \n \n );\n}\n\nconst LanguageApp = () => {\n return (\n \n \n \n );\n};\n\nexport default LanguageApp;\n","import { configureStore } from '@reduxjs/toolkit';\nimport { setupListeners } from '@reduxjs/toolkit/query';\n\nimport { coapApi } from 'services/coap';\nimport commonReducer from 'store/commonSlice';\nimport authReducer from 'store/authSlice';\n\nexport const store = configureStore({\n reducer: {\n // Add the generated reducer as a specific top-level slice\n [coapApi.reducerPath]: coapApi.reducer,\n\n // Modules reducer\n common: commonReducer,\n auth: authReducer,\n },\n // Adding the api middleware enables caching, invalidation, polling,\n // and other useful features of `rtk-query`.\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware().concat(coapApi.middleware),\n});\n\n// optional, but required for refetchOnFocus/refetchOnReconnect behaviors\n// see `setupListeners` docs - takes an optional callback as the 2nd arg for customization\nsetupListeners(store.dispatch);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter } from 'react-router-dom';\n\nimport App from 'features/App';\nimport { store } from 'store/rootStore';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import { createSlice } from '@reduxjs/toolkit';\nimport Cookie from 'js-cookie';\n\nconst initialState = {\n initialized: false,\n user: null,\n};\n\nexport const authSlice = createSlice({\n name: 'auth',\n initialState,\n reducers: {\n setAccount: (state, action) => {\n state.user = action.payload;\n state.initialized = true;\n },\n redirectLogin: (state, action) => {\n state.initialized = true;\n state.user = null;\n Cookie.remove('Authorization');\n },\n },\n});\n\nexport const authActions = {\n ...authSlice.actions,\n};\n\nexport default authSlice.reducer;\n","const name = '';\nconst tokenStorageKey = 'gAccessToken';\nconst baseURL = '/api/copt/v1/';\n\nconst config = {\n name,\n tokenStorageKey,\n baseURL,\n};\n\nexport default config;\n","import axios from 'axios';\n\nimport { authActions } from 'store/authSlice';\n\nimport { defaultLocale } from '../languages';\n\nconst axiosBaseQuery =\n ({ baseURL } = { baseURL: '' }) =>\n async (axiosOptions = {}, { dispatch, getState }) => {\n try {\n const { headers = {}, ...restOptions } = axiosOptions;\n headers[\"Accept-Language\"] = defaultLocale;\n const response = await axios({\n baseURL,\n withCredentials: true,\n headers,\n ...restOptions,\n });\n if (response?.data?.access_token) {\n // login api\n return { data: response?.data };\n }\n if (response?.data?.code !== 0) {\n // Backend service internal error\n return { error: { status: response?.data?.code, message: response?.data?.message } };\n }\n return { data: response?.data?.data };\n } catch (error) {\n if (error.response) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n console.log(error.response.data);\n console.log(error.response.status);\n console.log(error.response.headers);\n\n if (error.response.status === 401) {\n // Not logged in or expired\n dispatch(authActions.redirectLogin());\n }\n return { error: { status: error.response.status, message: 'Internal Server Error', response: error.response.data } };\n }\n if (error.request) {\n // The request was made but no response was received\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\n // http.ClientRequest in node.js\n return { error: { status: 500, message: 'Internal Server Error!', request: error.request } };\n }\n console.log('Error', error.message);\n return { error };\n }\n };\nexport default axiosBaseQuery;\n\n","const generateBasicEndpoints = (basePaths, providesTag) => ({\n queryList: {\n query: () => ({ url: basePaths[0], method: 'GET' }),\n providesTags: (result) =>\n result\n ? [...result.map(({ id }) => ({ type: providesTag, id })), { type: providesTag, id: 'LIST' }]\n : [{ type: providesTag, id: 'LIST' }],\n },\n update: {\n query: ({ id, ...data }) => ({\n url: `${basePaths[1]}`,\n method: 'POST',\n body: { id: Number(id), ...data },\n }),\n invalidatesTags: (result, error, { id }) => [{ type: providesTag, id }],\n },\n batchDelete: {\n query: (ids) => ({\n url: `${basePaths[2]}`,\n method: 'DELETE',\n body: { ids },\n }),\n invalidatesTags: (result, error, ids) => ids.map((id) => ({ type: providesTag, id })),\n },\n add: {\n query: (data) => ({\n url: `${basePaths[3]}`,\n method: 'POST',\n body: data,\n }),\n invalidatesTags: [{ type: providesTag, id: 'LIST' }],\n },\n query: {\n query: (id) => ({ url: `${basePaths[0]}/${id}`, method: 'GET' }),\n providesTags: (result, error, id) => [{ type: providesTag, id }],\n },\n});\n\nexport default generateBasicEndpoints;\n","const type = 'Auth';\n\nconst auth = (builder) => ({\n // 登录\n login: builder.mutation({\n query: (data) => ({\n url: `/user/login`,\n method: 'POST',\n data: { 'g-recaptcha-response': 'string', ...data },\n }),\n }),\n // 退出\n logout: builder.mutation({\n query: () => ({\n url: `/user/logout`,\n method: 'DELETE',\n }),\n }),\n // 获取登录用户信息\n getAccount: builder.query({\n query: () => ({\n url: `/user/account`,\n method: 'GET',\n }),\n providesTags: [{ type, id: 'CURRENT' }],\n }),\n // 注册\n signup: builder.mutation({\n query: (data) => ({\n url: `/user/register`,\n method: 'POST',\n data,\n }),\n }),\n // 发送重置密码验证码\n sendVerificationCode: builder.mutation({\n query: (data) => ({\n url: `/user/reset-password-code`,\n method: 'POST',\n data,\n }),\n }),\n // 重置密码\n resetPassword: builder.mutation({\n query: (data) => ({\n url: `/user/resetPassword`,\n method: 'PATCH',\n data,\n }),\n invalidatesTags: [{ type, id: 'CURRENT' }],\n }),\n // 更新个人信息\n updateProfile: builder.mutation({\n query: (data) => ({\n url: `/user/update`,\n method: 'PATCH',\n data,\n }),\n invalidatesTags: [{ type, id: 'CURRENT' }],\n }),\n // 修改密码\n updatePassword: builder.mutation({\n query: (data) => ({\n url: `/user/updatePassword`,\n method: 'PATCH',\n data,\n }),\n invalidatesTags: [{ type, id: 'CURRENT' }],\n }),\n // 修改邮箱\n updateEmail: builder.mutation({\n query: (data) => ({\n url: `/user/modify-email-address`,\n method: 'PATCH',\n data,\n }),\n invalidatesTags: [{ type, id: 'CURRENT' }],\n }),\n // 修改邮箱发送验证吗\n sendEmailVerificationCode: builder.mutation({\n query: (data) => ({\n url: `/user/modify-email-code`,\n method: 'POST',\n data,\n }),\n }),\n // 删除账号\n deleteAccount: builder.mutation({\n query: (password) => ({\n url: `/user/cancel`,\n method: 'PATCH',\n params: { password }\n }),\n }),\n});\n\nexport default auth;\n","const type = 'problem';\n\nconst problem = (builder) => ({\n getFiles: builder.query({\n query: (path) => ({\n url: '/file/special_folder',\n method: 'POST',\n data: { path },\n }),\n }),\n getFile: builder.query({\n query: (id) => ({\n url: `/file/${id}`,\n method: 'GET',\n }),\n }),\n createFolder: builder.mutation({\n query: ({ name, parentId }) => ({\n url: '/file/create_folder',\n method: 'POST',\n data: { file_name: name, parent_id: parentId },\n }),\n }),\n batchDeleteFiles: builder.mutation({\n query: (data) => ({\n url: '/file',\n method: 'DELETE',\n data,\n }),\n }),\n // 普通文件上传\n uploadProblemFile: builder.mutation({\n query: (data) => ({\n url: '/file/upload_regular_file',\n method: 'POST',\n data,\n }),\n invalidatesTags: [{ type, id: 'LIST' }],\n }),\n getProblem: builder.query({\n query: (id) => ({\n url: `/problem?id=${id}`,\n method: 'GET',\n }),\n }),\n // 获取基于指定问题的结果\n getProblemResults: builder.query({\n query: (data) => ({\n url: 'optimization/opt_result/query',\n method: 'POST',\n data: {\n project_name: `default`,\n id: null,\n job_id: null,\n name: null,\n optimization_id: null,\n problem_set_id: null,\n request_id: null,\n solver_version: null,\n create_dtt: [null, null],\n ...data,\n },\n }),\n }),\n});\n\nexport default problem;\n","const type = 'Problem Set';\n\nconst problemSet = (builder) => ({\n getProblemSets: builder.query({\n query: (data) => ({\n url: '/problems/query',\n method: 'POST',\n data: {\n project_name: `default`,\n ...data,\n },\n }),\n providesTags: (result) =>\n result\n ? [...result?.data.map(({ id }) => ({ type, id })), { type, id: 'LIST' }]\n : [{ type, id: 'LIST' }],\n }),\n addProblemSet: builder.mutation({\n query: (data) => ({\n url: '/problems/add',\n method: 'POST',\n data: {\n project_name: `default`,\n ...data,\n },\n }),\n invalidatesTags: [{ type, id: 'LIST' }],\n }),\n deleteProblemSet: builder.mutation({\n query: (id) => ({\n url: `/problems/delete/${id}`,\n method: 'DELETE',\n }),\n invalidatesTags: (result, error, id) => [\n { type, id },\n { type, id: 'LIST' },\n ],\n }),\n getProblemSet: builder.query({\n query: (id) => ({\n url: `/problems/${id}`,\n method: 'GET',\n }),\n providesTags: (result, error, id) => [{ type, id }],\n }),\n // 更新问题集头信息\n updateProblemSet: builder.mutation({\n query: (data) => ({\n url: `/problems`,\n method: 'PATCH',\n data,\n }),\n invalidatesTags: (result, error, { id }) => [{ type, id }],\n }),\n // 移除问题集下问题\n deleteProblemSetDetail: builder.mutation({\n query: (data) => ({\n url: `/problems/removeProblems`,\n method: 'DELETE',\n data,\n }),\n invalidatesTags: (result, error, { id }) => [{ type, id }],\n }),\n // 问题集下添加问题\n updateProblemSetDetail: builder.mutation({\n query: (data) => ({\n url: `/problems/addProblems`,\n method: 'POST',\n data,\n }),\n invalidatesTags: (result, error, { id }) => [{ type, id }],\n }),\n});\n\nexport default problemSet;\n","const type = 'Optimization';\n\n// 测算发起\n// 单个问题,多个参数\nexport const URL_OPTIMIZE_SINGLE_PROBLEM = `optimization/base_problem`; // TODO\n// 多个问题,一个参数\nexport const URL_OPTIMIZE_MULTY_PROBLEMS = `optimization/base_parameter`;\n// 一个问题集,一个参数\nexport const URL_OPTIMIZE_PROBLEM_SET = `optimization/base_problemSet`;\n\n// 测算请求详情\n// 针对单个问题,多个参数,获取优化结果\nexport const URL_SINGLE_OPTIMIZITION_DETAIL = `optimization/base_problem/`; // TODO\n// 针对多个问题,一个参数,获取优化结果\nexport const URL_MULTY_OPTIMIZITION_DETAIL = `optimization/base_problemSet/`;\n\n// 单个问题的优化结果详情(原始日志)\nexport const URL_OPTIMIZATION_LOG = `optimization/opt_result_log`;\n\nconst problemSet = (builder) => ({\n getOptimizations: builder.query({\n query: (data) => ({\n url: '/optimization/query',\n method: 'POST',\n data: {\n project_name: `default`,\n ...data,\n },\n }),\n providesTags: (result) =>\n result\n ? [\n ...result?.data.map(({ id }) => ({ type, id })),\n { type, id: 'LIST' },\n ]\n : [{ type, id: 'LIST' }],\n }),\n cancelOptimizations: builder.mutation({\n query: (id) => ({\n url: '/optimization/cancel',\n method: 'POST',\n data: {\n requestId: id,\n },\n }),\n invalidatesTags: (result, error, id) => [\n { type, id },\n { type, id: 'LIST' },\n ],\n }),\n\n // 基于单个问题发起测算\n addOptimizationByProblem: builder.mutation({\n query: (formData) => {\n formData.append('project_name', `default`);\n return {\n url: '/optimization/base_problem',\n method: 'POST',\n data: formData,\n }\n },\n invalidatesTags: [{ type, id: 'LIST' }],\n }),\n // 基于多个问题发起测算\n addOptimizationByProblems: builder.mutation({\n query: (formData) => {\n formData.append('project_name', `default`);\n return {\n url: '/optimization/base_parameter',\n method: 'POST',\n data: formData,\n }\n },\n invalidatesTags: [{ type, id: 'LIST' }],\n }),\n // 基于问题集发起测算\n addOptimizationByProblemSet: builder.mutation({\n query: (formData) => {\n formData.append('project_name', `default`);\n return {\n url: '/optimization/base_problemSet',\n method: 'POST',\n data: formData,\n };\n },\n invalidatesTags: [{ type, id: 'LIST' }],\n }),\n\n // 针对单个问题,多个参数,获取优化结果\n getOptimizationByProblem: builder.query({\n query: (id) => ({\n url: `/optimization/base_problem/${id}`,\n method: 'GET',\n }),\n providesTags: (result, error, id) => [{ type, id }],\n }),\n // 针对多个问题,一个参数,获取优化结果\n getOptimizationByProblems: builder.query({\n query: (id) => ({\n url: `/optimization/base_problemSet/${id}`,\n method: 'GET',\n }),\n providesTags: (result, error, id) => [{ type, id }],\n }),\n});\n\nexport default problemSet;\n","const type = 'Result';\n\nconst result = (builder) => ({\n getResults: builder.query({\n query: (data) => ({\n url: 'optimization/opt_result/query',\n method: 'POST',\n data: {\n project_name: `default`,\n ...data,\n },\n }),\n providesTags: (result) =>\n result\n ? [...result?.data.map(({ id }) => ({ type, id })), { type, id: 'LIST' }]\n : [{ type, id: 'LIST' }],\n }),\n\n getResult: builder.query({\n query: (id) => ({\n url: `/optimization/result/${id}`,\n method: 'GET',\n }),\n providesTags: (result, error, id) => [{ type, id }],\n }),\n cancelResult: builder.mutation({\n query: (id) => ({\n url: '/optimization/cancel',\n method: 'POST',\n data: {\n resultId: id,\n },\n }),\n invalidatesTags: (result, error, id) => [\n { type, id },\n { type, id: 'LIST' },\n ],\n }),\n});\n\nexport default result;\n","const providesTag = 'Input';\n\nconst inputServices = {\n queryList: {\n query: () => ({ url: '/home/inputs/', method: 'GET' }),\n providesTags: (result) =>\n result\n ? [...result.map(({ id }) => ({ type: providesTag, id })), { type: providesTag, id: 'LIST' }]\n : [{ type: providesTag, id: 'LIST' }],\n },\n query: {\n query: (id) => ({ url: `/home/input/${id}`, method: 'GET' }),\n providesTags: (result, error, id) => [{ type: providesTag, id }],\n },\n};\n\nexport default inputServices;\n","const providesTag = 'SolverVersion';\n\nconst solverVersionServices = {\n queryList: {\n query: (request) => ({\n url: '/home/solverVersions/query',\n method: 'POST',\n data: {\n solverCode: request?.solverCode ?? \"\",\n solverVersion: request?.solverVersion ?? \"\",\n input: request?.input ?? \"\",\n },\n }),\n providesTags: (result) =>\n result\n ? [...result.map(({ id }) => ({ type: providesTag, id })), { type: providesTag, id: 'LIST' }]\n : [{ type: providesTag, id: 'LIST' }],\n },\n query: {\n query: (id) => ({ url: `/home/solverVersionInfo/${id}`, method: 'GET' }),\n providesTags: (result, error, id) => [{ type: providesTag, id }],\n },\n};\n\nexport default solverVersionServices;\n","import { createApi } from '@reduxjs/toolkit/query/react';\nimport isAfter from 'date-fns/isAfter';\n\nimport config from 'config';\nimport axiosBaseQuery from './axiosBaseQuery';\nimport generateBasicEndpoints from './generateBasicEndpoints';\nimport auth from './auth';\nimport problem from './problem';\nimport problemSet from './problemSet';\nimport optimization from './optimization';\nimport result from './result';\nimport inputServices from './inputServices';\nimport solverVersionServices from './solverVersionServices';\n\nconst { baseURL } = config;\n\nconst categoryEndpoints = generateBasicEndpoints(\n [\n '/home/categories',\n '/home/updateCategory',\n '/home/deleteCategory',\n '/home/addCategory',\n ],\n 'Category'\n);\nconst solverEndpoints = generateBasicEndpoints(\n [\n '/home/solvers',\n '/home/updateSolver',\n '/home/deleteSolver',\n '/home/addSolver',\n ],\n 'Solver'\n);\nconst itemEndpoints = generateBasicEndpoints(\n ['/home/items', '/home/updateItem', '/home/deleteItem', '/home/addItem'],\n 'Item'\n);\n\nexport const coapApi = createApi({\n reducerPath: 'coapApi',\n baseQuery: axiosBaseQuery({ baseURL }),\n tagTypes: [\n 'Solver',\n 'Category',\n 'Item',\n 'Jobs',\n 'Problem',\n 'Problem Set',\n 'Optimization',\n 'Result',\n 'Auth',\n 'Input',\n 'SolverVersion',\n ],\n endpoints: (builder) => ({\n // category\n getCategories: builder.query(categoryEndpoints.queryList),\n updateCategory: builder.mutation(categoryEndpoints.update),\n deleteCategories: builder.mutation(categoryEndpoints.batchDelete),\n addCategory: builder.mutation(categoryEndpoints.add),\n\n // solver\n getSolvers: builder.query(solverEndpoints.queryList),\n updateSolver: builder.mutation(solverEndpoints.update),\n deleteSolvers: builder.mutation(solverEndpoints.batchDelete),\n addSolver: builder.mutation(solverEndpoints.add),\n\n // item\n getItems: builder.query(itemEndpoints.queryList),\n updateItem: builder.mutation(itemEndpoints.update),\n deleteItems: builder.mutation(itemEndpoints.batchDelete),\n addItem: builder.mutation(itemEndpoints.add),\n\n // input\n getInputs: builder.query(inputServices.queryList),\n\n // solver version\n getSolverVersion: builder.query(solverVersionServices.query),\n getSolverVersions: builder.query(solverVersionServices.queryList),\n\n // job\n listJobs: builder.query({\n query: (name) => ({\n url: 'optimization/squeue',\n method: 'GET',\n }),\n providesTags: (result, error, page) =>\n result?.squeueResultVOList\n ? [\n ...result?.squeueResultVOList.map(({ JOBNUMBER }) => ({\n type: 'Jobs',\n id: JOBNUMBER,\n })),\n { type: 'Jobs', id: 'LIST' },\n ]\n : [{ type: 'Jobs', id: 'LIST' }],\n }),\n getJob: builder.query({\n query: (data) => ({\n url: `optimization/visitor/result`,\n method: 'POST',\n data,\n }),\n providesTags: (result, error, data) => [\n { type: 'Jobs', id: data?.jobId },\n ],\n }),\n killJob: builder.mutation({\n query(data) {\n return {\n url: `optimization/visitor/cancel`,\n method: 'POST',\n data,\n };\n },\n invalidatesTags: (result, error, data) => [\n { type: 'Jobs', id: data?.jobId },\n { type: 'Jobs', id: 'LIST' },\n ],\n }),\n addJob: builder.mutation({\n query(data) {\n return {\n url: `optimization/visitor/base_problem`,\n method: 'POST',\n data,\n };\n },\n invalidatesTags: [{ type: 'Jobs', id: 'LIST' }],\n }),\n\n // statistics\n getDailyCount: builder.query({\n query: (data) => ({\n url: `statistic/days`,\n method: 'POST',\n data,\n }),\n }),\n getJobStatistics: builder.query({\n query: (data) => ({\n url: `statistic/dimension`,\n method: 'POST',\n data,\n }),\n }),\n getJobStatus: builder.query({\n query: (data) => ({\n url: `statistic/state`,\n method: 'POST',\n data,\n }),\n }),\n\n // common problem\n getCommonProblems: builder.query({\n query: (data) => ({\n url: '/problem/common-problems',\n method: 'POST',\n data,\n }),\n }),\n\n // competitions\n getCompetitions: builder.query({\n query: (data) => ({\n baseURL: '',\n url: '/competitions/list.json',\n method: 'GET',\n }),\n transformResponse: (response, meta, arg) => {\n const now = new Date();\n const avaliableList = response?.list?.filter(\n (item) => !item?.startDate || isAfter(now, item?.startDate)\n ) || [];\n return {\n list: avaliableList,\n total: avaliableList?.length\n }\n },\n }),\n // competitions\n getCompetition: builder.query({\n query: (id) => ({\n baseURL: '',\n url: `/competitions/${id}/detail.json`,\n method: 'GET',\n }),\n }),\n\n ...auth(builder),\n ...problem(builder),\n ...problemSet(builder),\n ...optimization(builder),\n ...result(builder),\n }),\n});\n\n// Export hooks for usage in functional components, which are\n// auto-generated based on the defined endpoints\nexport const {\n // category\n useGetCategoriesQuery,\n useUpdateCategoryMutation,\n useDeleteCategoriesMutation,\n useAddCategoryMutation,\n // solver\n useGetSolversQuery,\n useUpdateSolverMutation,\n useDeleteSolversMutation,\n useAddSolverMutation,\n // item\n useGetItemsQuery,\n useUpdateItemMutation,\n useDeleteItemsMutation,\n useAddItemMutation,\n // job\n useListJobsQuery,\n useGetJobQuery,\n useKillJobMutation,\n useAddJobMutation,\n // statistics\n useGetDailyCountQuery,\n useGetJobStatisticsQuery,\n useGetJobStatusQuery,\n // common problem\n useGetCommonProblemsQuery,\n // competitions\n useGetCompetitionsQuery,\n useGetCompetitionQuery,\n} = coapApi;\n","const common = {\n home: 'home',\n solvers: 'solvers',\n tools: 'tools',\n statistics: 'statistics',\n console: 'Console',\n footer: {\n terms: 'TERMS OF USE',\n qa: 'QUESTIONS AND COMMENTS',\n EULA: `EULA`,\n privacyPolicy: `Privacy Policy`,\n },\n form: {\n submit: 'Submit',\n reset: 'Reset',\n cancel: 'Cancel',\n refresh: 'Refresh',\n close: 'Close',\n sendCode: 'Send Code',\n resend: 'Resend',\n ok: 'Ok',\n delete: 'Delete',\n clear: 'Clear',\n view: 'View',\n add: 'Add',\n search: 'Search',\n remove: 'Remove',\n back: 'Back',\n upload: 'Upload',\n filters: 'Filters',\n done: 'Done',\n edit: 'Edit',\n save: 'Save',\n },\n ok: 'Ok',\n 'detail-introduction': 'Detailed introduction',\n backHome: 'Back to Home',\n positionOption1: 'Academic-researcher',\n positionOption2: 'Academic-student',\n positionOption3: 'OR algorithm engineer',\n positionOption4: 'Business analyst',\n positionOption5: 'Data scientist',\n positionOption6: 'IT engineer',\n industryOption1: 'Education',\n industryOption2: 'Manufacturing',\n industryOption3: 'Financial service',\n industryOption4: 'Insurance',\n industryOption5: 'Media & Entertainment',\n industryOption6: 'Energy',\n industryOption7: 'Government',\n industryOption8: 'Healthcare',\n industryOption9: 'Logistics & Transportation',\n industryOption10: 'Aviation',\n industryOption11: 'Software',\n industryOption12: 'Retail',\n industryOption13: 'Telecommunications',\n others: 'Others',\n fullname: 'Fullname',\n age: 'Age',\n title: 'Title',\n company: 'Company',\n address: 'Address',\n account: 'User name',\n email: 'Email Address',\n password: 'Password',\n newPassword: 'New Password',\n confirmPassword: 'Re-enter password',\n name: 'Name',\n nickname: 'Nickname',\n industry: 'Industry',\n institute: 'Company/Education Institute',\n position: 'Position',\n phone: 'Phone',\n region: 'Country or region',\n city: 'City',\n reasons: 'Reasons for application & the scenarios that you need COAP',\n signin: 'Sign In',\n signout: 'Sign Out',\n signup: 'Sign Up',\n verificationCode: 'Verification Code',\n forgetPassword: 'Forget Password',\n irreversibleActionWarn: 'This operation is irreversible. Are you sure?',\n columns: {\n action: 'Action',\n id: 'ID',\n creator: 'Creator',\n createTime: 'Create Time',\n updater: 'Updater',\n updateTime: 'Update Time',\n },\n empty: 'Empty',\n autoRedirect:\n 'It will automatically redirect to the home page after {{ count }} seconds, ',\n redirectImmediately: 'go now',\n messages: {\n dragValidateInfo: 'Hold down the slider and drag to the far right',\n dragValidateSuccess: 'Verification succeeded',\n dragValidateRequired: 'Please drag the slider to verify!',\n response: {\n status504: 'Network timeout(504),please try again later!',\n },\n },\n};\n\nexport default common;\n","import common from './common';\nimport home from './home';\nimport solver from './solver';\nimport tool from './tool';\nimport statistic from './statistic';\nimport signup from './signup';\nimport problem from './problem';\nimport problemSet from './problemSet';\nimport optimization from './optimization';\nimport result from './result';\nimport profile from './profile';\nimport competition from './competition';\n\nconst dictionary = {\n common,\n home,\n solver,\n tool,\n statistic,\n signup,\n problem,\n problemSet,\n optimization,\n result,\n profile,\n competition,\n};\n\nexport default dictionary;\n","const home = {\n title: 'COAP (Center for Optimization Algorithm Platform)',\n subtitle: `COAP is a free online service for solving numerical optimization problems. \n Since its establishment, COAP has been supported by many domestic and international researchers \n from Shanghai University of Finance and Economics, Stanford operations research, \n Beijing International Center for Mathematical Research(Peking University), \n Shanghai Center for Mathematical Sciences(Fudan University), Tsinghua Institute for Interdisciplinary Sciences, etc. \n COAP platform is developed for the purpose of supporting academic students and researchers in aspects of scientific computing, \n especially problems of operations research.`,\n solvers: {\n title: `Solvers`,\n info: `Support solving numerical optimization problems concurrently by both commercial and open-source solvers, including COPT, COIN, Leaves, etc.\n We keep integrating more popular solvers on markets\n `,\n },\n tools: {\n title: `Tools`,\n info: `View job status, manage jobs in queue, and retrieve optimization logs and solution of finished jobs`,\n },\n statistics: {\n title: `Statistics`,\n info: `View data of problem types, inputs, and different solvers on COAP server`,\n },\n about: {\n title: 'about',\n desc: `COAP, Center for Optimization Algorithm Platform, is a free online service for solving numerical optimization problems, \n which is hosted by Shanghai University of Finance and Economics and collaborates with leading industry and academic partners, \n including Cardinal Operations with Stanford operations research, Beijing International Center for Mathematical Research(Peking University), \n Shanghai Center for Mathematical Sciences(Fudan University), X-Technology with Tsinghua University, \n etc. The distributed high-performance servers and related software are provided by Shanghai University of Finance and Economics, \n and Cardinal Operations provides technical support.`,\n support: `The distributed high-performance servers and related software are provided by Shanghai University of Finance and Economics`,\n },\n showMore: 'show more',\n quickStart: 'Get Started',\n};\n\nexport default home;\n","const solver = {\n module: 'Solver',\n solverList: 'Solver List',\n groupBy: 'Group By',\n problemType: 'Problem Type',\n solver: 'Solver',\n filters: 'Filters',\n expandAll: 'Expand All',\n collapseAll: 'Collapse All',\n inputType: 'Input Type',\n submissionForm: 'Submission Form',\n uploadProblem: 'Upload Problem File',\n useCommonProblem: 'Use Common Problem',\n commonProblemFile: 'Common Problem File',\n selectVersion: \"Select Version\",\n};\n\nexport default solver;\n","const tool = {\n module: 'Tool',\n subtitle1:\n 'Enter the job number and the password of the job you wish to dequeue/view, You can leave these blank if viewing the queue.',\n subtitle2: 'You can leave these blank if viewing the queue.',\n form: {\n jobNumber: 'Job Number',\n jobPassword: 'Job Password',\n viewQueue: 'View Job Queue',\n viewResult: 'View Job Results',\n dequeue: 'Dequeue Job',\n },\n status: {\n title: 'Status',\n waiting: 'Waiting',\n processing: 'Processing',\n finished: 'Completed',\n failed: 'Failed',\n cancel: 'Cancelled',\n deleted: 'Deleted',\n },\n};\n\nexport default tool;\n","const statistics = {\n module: 'Statistics',\n tab: {\n solvers: 'Solvers Statistic',\n website: 'Website Statistic',\n },\n form: {\n start: 'Start Date',\n end: 'End Date',\n to: 'to',\n },\n pie: {\n title: 'Job Status',\n },\n};\nexport default statistics;\n","const signup = {\n signUpAgreement: `I have read and accept to`,\n signUpAgreementLink: ` the End User License Agreement (EULA)`,\n signUpAgreementAnd: ` and`,\n signUpAgreementLink2: ` Privacy Policy.`,\n signUpGroup1: 'Login your account by username/email',\n signUpGroup2: 'Improve your personal information',\n usernameFormat:\n 'A username only contain alphanumeric characters (letters A-Z, numbers 0-9) with the exception of underscore (_) and hyphen (-).\\nA username cannot be shorter than 5 characters and its first character should start with a letter.\\nUsernames are case-insensitive. That is, \"Admin\" is the same user as \"admin\".',\n registrationForm: 'Registration Form',\n betterExperience:\n 'Better Online Optimization Experience——after registering for free, you can enjoy the personal problem set management function, conveniently manage the problem set and view the historical results',\n activeSuccess: `The activation is successful, please use your account or email to log in to the system.`,\n activeError: `Activation failed, please check your email.`,\n};\n\nexport default signup;\n","const problem = {\n name: 'Problem',\n id: 'Problem ID',\n addToPool: 'Add to Pool',\n backToPrevLevel: 'Back to previous level',\n root: 'All Files',\n fileUpload: 'File Upload',\n largeFileUpload: 'Large File Upload',\n newDirection: 'New directory',\n directoryName: 'Directory name',\n directoryNameConvention: 'Directory naming convention',\n directoryNameConvention1: `1. A directory only contains alphanumeric characters (letters A-Z, numbers 0-9), hyphen (-);`,\n directoryNameConvention2: `2. A directory cannot be longer than 128 characters.`,\n attributes: 'Attributes',\n testRecord: 'Test Record',\n fileName: 'File Name',\n problemName: 'Problem Name',\n path: 'Path',\n size: 'Size',\n analyzing: 'Analyzing',\n deleted: 'Deleted',\n poolSelectedItems: 'Selected items',\n poolNewProblemSet: 'New Problem Set',\n poolAddToExit: 'Add to Existing Problem Set',\n poolSelectedInfo: 'Please Select a Problem Set',\n dragFileTitle: `Drag files here, or click to upload directly`,\n baseFileLimitInfo: `Problem files of size less than 500MB could be uploaded simultaneously. DO NOT refresh or close it until the upload task is finished.`,\n largeFileLimitInfo: `Large problem file of size less than {{ size }} could be uploaded sequentially. DO NOT refresh or close it until the upload task is finished.`,\n disabledFileWarning: `The following files are not allowed to upload, please check the file format and size.`,\n exception: 'Exception',\n messages: {\n gettingSparkMD5: 'The file is large and is being verified, please wait!',\n },\n};\n\nexport default problem;\n","const problemSet = {\n name: 'Problem Set',\n id: 'Problem Set ID',\n title: 'Title',\n description: 'Description',\n total: 'Number of Problems',\n solved: 'Solved',\n tag: 'Tag',\n deleteWarning:\n 'This operation is irreversible and you are sure to delete the problem set ?',\n modifySuggestion: 'Please enter a problem set title (required) and comments',\n messages: {\n problemFileError: 'Problem file error!',\n removeWarning: 'This operation is irreversible and you are sure to remove the problem?',\n },\n};\n\nexport default problemSet;\n","const optimization = {\n name: 'Optimization',\n detailOneBreadcrumb: 'Detail(Based on Problem)',\n detailTwoBreadcrumb: 'Detail(Based on Problem Set)',\n detailDiffBreadcrumb: 'Comparison with problem set',\n compare: 'Diff',\n compareSelectErrorWarning:\n 'Please select two requests based on the same problem set for comparison',\n id: 'Request ID',\n solverVersion: 'Solver Version',\n problemSetId: 'Problem Set ID',\n state: 'Status',\n type: 'Type',\n fromSubmittedDate: 'From Submitted Date',\n toSubmittedDate: 'To Submitted Date',\n submittedTime: 'Submitted Time',\n startTime: 'Start Time',\n endTime: 'End Time',\n failureReason: 'Failure Reason',\n submitter: 'Submitter',\n steps: {\n label1: 'Select Solver',\n label2: 'Fill the Form',\n },\n parameter: 'Parameter',\n};\n\nexport default optimization;\n","const result = {\n name: 'Result',\n id: 'Result ID',\n jobId: 'JOB ID',\n fromCreateTime: 'From Create Time',\n toCreateTime: 'To Create Time',\n detail: 'Detail',\n messages: {\n cannotCancel: 'This optimization task has ended and cannot be canceled!',\n },\n};\n\nexport default result;\n","const profile = {\n name: 'Profile',\n updateProfile: 'Update Profile',\n changePassword: 'Change Password',\n oldPassword: 'Old Password',\n newPassword: 'New Password',\n changeEmail: 'Change Email',\n changeEmailDesc:\n 'Please enter your new email, click send code, then enter the verification code received in your email',\n activity: 'Activity',\n deleteAccount: 'Delete Account',\n accountInfo: 'Account',\n createTime: 'Registration time',\n updateTime: 'Last update time',\n home: 'Home',\n account: 'Account',\n accountTooltip: 'Username cannot be changed once registered',\n tooltips: {\n deleteAccount: {\n title: 'Are you sure you want to do this?',\n message:\n 'We will immediately delete all of your problem files, along with all of your problem set, requests, and results. Your username will be available to anyone on COAP',\n },\n },\n username: 'Your username or email',\n password: 'Confirm your password',\n};\n\nexport default profile;\n","const competition = {\n name: 'Competitons',\n description:\n 'Challenge yourself with real-world intelligent decision-making problems and grow your analytics and modeling skills by competing with top talents.',\n fields: {\n title: 'Title',\n subject: 'Subject',\n status: 'Status',\n sponsoredBy: 'Sponsored By',\n startDate: 'Starts at',\n endDate: 'Ends at',\n prize: 'Prize',\n deadline: 'Deadline',\n },\n status: {\n ongoing: 'Ongoing',\n ended: 'Ended',\n },\n};\n\nexport default competition;","import common from './common';\nimport home from './home';\nimport solver from './solver';\nimport tool from './tool';\nimport statistic from './statistic';\nimport signup from './signup';\nimport problem from './problem';\nimport problemSet from './problemSet';\nimport optimization from './optimization';\nimport result from './result';\nimport profile from './profile';\nimport competition from './competition';\n\nconst dictionary = {\n common,\n home,\n solver,\n tool,\n statistic,\n signup,\n problem,\n problemSet,\n optimization,\n result,\n profile,\n competition,\n};\n\nexport default dictionary;\n","const common = {\n home: '首页',\n solvers: '求解器',\n tools: '工具',\n statistics: '统计',\n console: '控制台',\n footer: {\n terms: '使用须知',\n qa: '问题与评论',\n EULA: `EULA`,\n privacyPolicy: `隐私政策`,\n },\n form: {\n submit: '提交',\n reset: '重置',\n cancel: '取消',\n refresh: '刷新',\n close: '关闭',\n sendCode: '发送验证码',\n resend: '重新发送',\n ok: '确定',\n delete: '删除',\n clear: '清空',\n view: '查看',\n add: '新增',\n search: '搜索',\n remove: '移除',\n back: '返回',\n upload: '上传',\n filters: '过滤',\n done: '完成',\n edit: '编辑',\n save: '保存',\n },\n ok: '确定',\n 'detail-introduction': '详细介绍',\n backHome: '返回首页',\n positionOption1: '学术研究-学者',\n positionOption2: '学术研究-学生',\n positionOption3: '运筹算法工程师',\n positionOption4: '商业分析师',\n positionOption5: '数据科学家',\n positionOption6: 'IT工程师',\n industryOption1: '科研机构',\n industryOption2: '制造行业',\n industryOption3: '金融行业',\n industryOption4: '保险行业',\n industryOption5: '传媒行业',\n industryOption6: '能源行业',\n industryOption7: '政府部门',\n industryOption8: '医疗行业',\n industryOption9: '物流与交通运输行业',\n industryOption10: '航空行业',\n industryOption11: '软件行业',\n industryOption12: '零售行业',\n industryOption13: '通信行业',\n others: '其他',\n fullname: '全称',\n age: '年龄',\n title: '标题',\n company: '公司',\n address: '地址',\n account: '用户名',\n email: '邮箱',\n password: '密码',\n newPassword: '新密码',\n confirmPassword: '再次输入密码',\n name: '姓名',\n nickname: '昵称',\n industry: '行业',\n institute: '公司/学校',\n position: '职位',\n phone: '手机号码',\n region: '使用国家或地区',\n city: '使用城市',\n reasons: '测试原因/使用求解服务的具体场景',\n signin: '登录',\n signout: '退出',\n signup: '注册',\n verificationCode: '验证码',\n forgetPassword: '忘记密码',\n irreversibleActionWarn: '此操作不可撤销,确定?',\n columns: {\n action: '操作',\n id: 'ID',\n creator: '创建人',\n createTime: '创建时间',\n updater: '更新人',\n updateTime: '更新时间',\n },\n empty: '空',\n autoRedirect: '{{ count }} 秒后将自动跳转到首页,',\n redirectImmediately: '立即跳转',\n messages: {\n dragValidateInfo: '按住滑块,拖动到最右边',\n dragValidateSuccess: '验证成功',\n dragValidateRequired: '请拖动滑块进行验证!',\n response: {\n status504: '连接超时(504),请你稍后重试!',\n },\n },\n};\n\nexport default common;\n","const home = {\n title: 'COAP(Center for Optimization Algorithm Platform)',\n subtitle: `COAP 是一个面向公众的优化算法服务平台,全称为 Center for Optimization Algorithm Platform。COAP 自成立以来获得来自上海财经大学、斯坦福大学、北大国际数学中心、复旦上海数学中心、清华交叉信息学院等多个海内外科研工作者支持,旨在为公众用户提供免费的科学计算及运筹学问题求解服务。`,\n solvers: {\n info: `COAP 目前支持 COPT、COIN 等5+个商用和开源求解器引擎调用,能够支持多用户的并发请求,未来将逐步集成全球各大主流求解器引擎`,\n },\n tools: {\n info: `查看任务当前状态,进行任务管理,获取求解日志和结果等信息`,\n },\n statistics: {\n info: `平台内不同求解引擎的相关使用情况统计`,\n },\n about: {\n title: '关于',\n desc: `COAP 是一个面向公众的优化算法服务平台,全称为 Center for Optimization Algorithm Platform。它由上海财经大学主导成立,\n 依托背靠斯坦福运筹学的杉数科技、北大国际数学中心、复旦上海数学中心及清华交叉信息学院等多个国内外科研单位和企业支持,\n 旨在为公众用户提供免费的科学计算及运筹学问题求解。本平台支持的求解器运行所需的分布式高性能服务器和软件,\n 由上海财经大学提供,由杉数科技提供技术支持。`,\n support: `本平台支持的求解器运行所需的分布式高性能服务器和软件,\n 由上海财经大学提供`,\n },\n showMore: '更多',\n quickStart: '快速开始',\n};\n\nexport default home;\n","const solver = {\n module: '求解器',\n solverList: '求解器列表',\n groupBy: '分组',\n problemType: '问题类型',\n solver: '求解器',\n filters: '过滤条件',\n expandAll: '展开所有',\n collapseAll: '折叠所有',\n inputType: '输入类型',\n submissionForm: '表单',\n uploadProblem: '上传问题文件',\n useCommonProblem: '使用公共问题',\n commonProblemFile: '公共问题',\n selectVersion: \"版本选择\",\n};\n\nexport default solver;\n","const tool = {\n module: '工具',\n subtitle1:\n '请输入任务编号和密码来查看或者取消任务,留空的话将展示任务队列。',\n subtitle2: '留空的话将展示任务队列。',\n form: {\n jobNumber: '任务编号',\n jobPassword: '任务密码',\n viewQueue: '查看任务队列',\n viewResult: '查看结果',\n dequeue: '取消任务',\n },\n status: {\n title: '状态',\n waiting: '等待中',\n processing: '进行中',\n finished: '已完成',\n failed: '失败',\n cancel: '已取消',\n deleted: '已删除',\n },\n};\n\nexport default tool;\n","const statistics = {\n module: '统计',\n tab: {\n solvers: '任务统计',\n website: '网站统计',\n },\n form: {\n start: '开始日期',\n end: '结束日期',\n to: '至',\n },\n pie: {\n title: '任务状态分布',\n },\n};\nexport default statistics;\n","const signup = {\n signUpAgreement: `我已阅读并接受`,\n signUpAgreementLink: ` 用户使用协议`,\n signUpAgreementAnd: ` 和`,\n signUpAgreementLink2: ` 隐私政策。`,\n signUpGroup1: '通过用户名/邮箱登录账号',\n signUpGroup2: '完善个人信息',\n usernameFormat:\n '用户名命名规则:1、请使用英文字母(A-Z,a-z)、数字(0-9)或者连接符(-)、下划线(_),并且以英文字母开头;2、总长度控制在 5-128 个字符,3、大小写不敏感,大写将自动转换为小写。比如,Admin和admin是同一用户。',\n registrationForm: '注册表单',\n betterExperience:\n '升级您的在线优化体验——免费注册后您可享受个人问题集管理功能,便捷地管理问题集与查看历史结果',\n activeSuccess: `激活成功,请使用您的账户或者邮箱登录系统。`,\n activeError: `激活失败,请检查您的邮箱。`,\n};\n\nexport default signup;\n","const problem = {\n name: '问题',\n id: '问题ID',\n addToPool: '添加到处理池',\n backToPrevLevel: '返回上层',\n root: '全部文件',\n fileUpload: '文件上传',\n largeFileUpload: '大文件上传',\n newDirection: '新建目录',\n directoryName: '目录名',\n directoryNameConvention: '目录命名规范',\n directoryNameConvention1: `1、请使用英文字母(A-Z,a-z)、数字(0-9)或者连接符(-),并且以英文字母开头;`,\n directoryNameConvention2: `2、目录名长度不多于 128 个字符。`,\n attributes: '问题属性',\n testRecord: '求解记录',\n fileName: '文件名',\n problemName: '问题名',\n path: '路径',\n size: '大小',\n analyzing: '分析中',\n deleted: '已删除',\n poolSelectedItems: '已选择',\n poolNewProblemSet: '新增问题集',\n poolAddToExit: '添加到问题集',\n poolSelectedInfo: '请选择添加到的问题集',\n dragFileTitle: `将文件拖到此处,或单击直接上传`,\n baseFileLimitInfo: `最多可以同时上传2000个文件,并且单个文件的大小不能超过500M。在文件上传过程中请勿刷新或关闭页面,否则上传任务将被中断并且列表将被删除。`,\n largeFileLimitInfo: `一次只能上传一个文件,并且文件大小不能超过{{ size }} 。 在文件上传过程中,请勿刷新或关闭页面,否则上传任务将被中断并且列表将被清除。`,\n disabledFileWarning: `以下文件不允许上传,请检查文件格式和大小等`,\n exception: '解析失败',\n messages: {\n gettingSparkMD5: '文件较大,正在校验中... 请耐心等待!',\n },\n};\n\nexport default problem;\n","const problemSet = {\n name: '问题集',\n id: '问题集ID',\n title: '标题',\n description: '描述',\n total: '问题数量',\n solved: '已解决',\n tag: 'Tag',\n deleteWarning: '此操作不可撤销,确定删除此问题集?',\n modifySuggestion: '请输入问题标题(必填)和描述',\n messages: {\n problemFileError: '问题文件异常!',\n removeWarning: '此操作不可撤销,确定移除此问题?',\n },\n};\n\nexport default problemSet;\n","const optimization = {\n name: '请求',\n detailOneBreadcrumb: '详情(基于问题)',\n detailTwoBreadcrumb: '详情(基于问题集)',\n detailDiffBreadcrumb: '基于问题集对比',\n compare: '对比',\n compareSelectErrorWarning: '请选择两个基于同一个问题的请求进行对比',\n id: '请求ID',\n solverVersion: '求解器版本号',\n problemSetId: '问题集ID',\n state: '状态',\n type: '类型',\n fromSubmittedDate: '提交开始',\n toSubmittedDate: '提交结束',\n submittedTime: '提交时间',\n startTime: '计算开始',\n endTime: '计算结束',\n failureReason: '失败原因',\n submitter: '发起人',\n steps: {\n label1: '选择求解器',\n label2: '填写表单',\n },\n parameter: '参数',\n};\n\nexport default optimization;\n","const result = {\n name: '结果',\n id: '结果ID',\n jobId: 'JOB ID',\n fromCreateTime: '开始时间',\n toCreateTime: '结束时间',\n detail: '详情',\n messages: {\n cannotCancel: '任务已结束,无法取消或中止!',\n },\n};\n\nexport default result;\n","const profile = {\n name: '用户设置',\n updateProfile: '更新',\n changePassword: '修改密码',\n oldPassword: '旧密码',\n newPassword: '新密码',\n changeEmail: '修改邮箱',\n changeEmailDesc:\n '请输入您的新邮箱,点击发送验证码,然后输入您新邮箱中收到的验证码',\n activity: '活动',\n deleteAccount: '删除账号',\n accountInfo: '账号',\n createTime: '注册时间',\n updateTime: '上次更新时间',\n home: '个人主页',\n account: '账号',\n accountTooltip: '登录用户名注册后无法二次修改',\n tooltips: {\n deleteAccount: {\n title: '您确定执行此操作?',\n message:\n '我们将立即删除您的所有问题文件,以及您的所有问题集、历史请求和结果。并且您的用户名将可供 COAP 上的任何人使用',\n },\n },\n username: '您的用户名或邮箱',\n password: '请输入确认密码',\n};\n\nexport default profile;\n","const competition = {\n name: '竞赛',\n description: '在解决各行业智能决策问题中挑战自我,在与顶尖人才的较量中提升分析与建模能力。',\n fields: {\n title: '标题',\n subject: '简介',\n status: '状态',\n sponsoredBy: '举办方',\n startDate: '开始时间',\n endDate: '结束时间',\n prize: '奖金',\n deadline: '截止时间'\n },\n status: {\n ongoing: '进行中',\n ended: '已结束',\n }\n}\n\nexport default competition;","import enUS from './enUS';\nimport zhCN from './zhCN';\n\nexport const localeMap = {\n zh: 'zh-cn',\n 'zh-cn': 'zh-cn',\n};\n\nconst local =\n window?.localStorage?.getItem('locale') || window?.navigator?.language;\n\nexport const defaultLocale = localeMap[local?.toLowerCase()] || 'en-us';\n\nexport const dictionaryList = {\n 'en-us': enUS,\n 'zh-cn': zhCN\n};\n\nexport const languageOptions = [\n { id: 'en-us', text: 'English'},\n { id: 'zh-cn', text: '中文-简体' }\n];","import React, { createContext, useContext, useState } from 'react';\n\nimport { defaultLocale, dictionaryList } from '../languages';\n\n// create the language context with default selected language\nexport const LanguageContext = createContext({\n language: defaultLocale,\n dictionary: dictionaryList[defaultLocale],\n});\n\n// it provides the language context to app\nexport function LanguageProvider(props) {\n const languageContext = useContext(LanguageContext);\n const [language, setLanguage] = useState(languageContext.language);\n const [dictionary, setDictionary] = useState(languageContext.dictionary);\n\n const provider = {\n language,\n dictionary,\n setLanguage: (locale) => {\n // setLanguage(locale); // it will update the language in state\n // setDictionary(dictionaryList[locale]);\n window?.localStorage?.setItem('locale', locale);\n // 通过重新加载网页的方式解决 api 重新调用问题\n window.location.reload();\n },\n };\n\n return (\n \n {props.children}\n \n );\n}\n"],"sourceRoot":""}