export enum STATUS { STATUS_WAITING = 0, STATUS_ACCEPTED = 1, STATUS_WRONG_ANSWER = 2, STATUS_TIME_LIMIT_EXCEEDED = 3, STATUS_MEMORY_LIMIT_EXCEEDED = 4, STATUS_OUTPUT_LIMIT_EXCEEDED = 5, STATUS_RUNTIME_ERROR = 6, STATUS_COMPILE_ERROR = 7, STATUS_SYSTEM_ERROR = 8, STATUS_CANCELED = 9, STATUS_ETC = 10, STATUS_HACKED = 11, STATUS_JUDGING = 20, STATUS_COMPILING = 21, STATUS_FETCHED = 22, STATUS_IGNORED = 30, STATUS_FORMAT_ERROR = 31, STATUS_HACK_SUCCESSFUL = 32, STATUS_HACK_UNSUCCESSFUL = 33, } export const STATUS_TEXTS: Record = { [STATUS.STATUS_WAITING]: 'Waiting', [STATUS.STATUS_ACCEPTED]: 'Accepted', [STATUS.STATUS_WRONG_ANSWER]: 'Wrong Answer', [STATUS.STATUS_TIME_LIMIT_EXCEEDED]: 'Time Exceeded', [STATUS.STATUS_MEMORY_LIMIT_EXCEEDED]: 'Memory Exceeded', [STATUS.STATUS_OUTPUT_LIMIT_EXCEEDED]: 'Output Exceeded', [STATUS.STATUS_RUNTIME_ERROR]: 'Runtime Error', [STATUS.STATUS_COMPILE_ERROR]: 'Compile Error', [STATUS.STATUS_SYSTEM_ERROR]: 'System Error', [STATUS.STATUS_CANCELED]: 'Cancelled', [STATUS.STATUS_ETC]: 'Unknown Error', [STATUS.STATUS_HACKED]: 'Hacked', [STATUS.STATUS_JUDGING]: 'Running', [STATUS.STATUS_COMPILING]: 'Compiling', [STATUS.STATUS_FETCHED]: 'Fetched', [STATUS.STATUS_IGNORED]: 'Ignored', [STATUS.STATUS_FORMAT_ERROR]: 'Format Error', [STATUS.STATUS_HACK_SUCCESSFUL]: 'Hack Successful', [STATUS.STATUS_HACK_UNSUCCESSFUL]: 'Hack Unsuccessful', }; export const STATUS_SHORT_TEXTS: Partial> = { [STATUS.STATUS_ACCEPTED]: 'AC', [STATUS.STATUS_WRONG_ANSWER]: 'WA', [STATUS.STATUS_TIME_LIMIT_EXCEEDED]: 'TLE', [STATUS.STATUS_MEMORY_LIMIT_EXCEEDED]: 'MLE', [STATUS.STATUS_OUTPUT_LIMIT_EXCEEDED]: 'OLE', [STATUS.STATUS_RUNTIME_ERROR]: 'RE', [STATUS.STATUS_COMPILE_ERROR]: 'CE', [STATUS.STATUS_SYSTEM_ERROR]: 'SE', [STATUS.STATUS_CANCELED]: 'IGN', [STATUS.STATUS_HACKED]: 'HK', [STATUS.STATUS_IGNORED]: 'IGN', [STATUS.STATUS_FORMAT_ERROR]: 'FE', }; export const STATUS_CODES: Record = { [STATUS.STATUS_WAITING]: 'pending', [STATUS.STATUS_ACCEPTED]: 'pass', [STATUS.STATUS_WRONG_ANSWER]: 'fail', [STATUS.STATUS_TIME_LIMIT_EXCEEDED]: 'fail', [STATUS.STATUS_MEMORY_LIMIT_EXCEEDED]: 'fail', [STATUS.STATUS_OUTPUT_LIMIT_EXCEEDED]: 'fail', [STATUS.STATUS_RUNTIME_ERROR]: 'fail', [STATUS.STATUS_COMPILE_ERROR]: 'fail', [STATUS.STATUS_SYSTEM_ERROR]: 'fail', [STATUS.STATUS_CANCELED]: 'ignored', [STATUS.STATUS_ETC]: 'fail', [STATUS.STATUS_HACKED]: 'fail', [STATUS.STATUS_JUDGING]: 'progress', [STATUS.STATUS_COMPILING]: 'progress', [STATUS.STATUS_FETCHED]: 'progress', [STATUS.STATUS_IGNORED]: 'ignored', [STATUS.STATUS_FORMAT_ERROR]: 'ignored', [STATUS.STATUS_HACK_SUCCESSFUL]: 'pass', [STATUS.STATUS_HACK_UNSUCCESSFUL]: 'fail', }; export function getScoreColor(score: number | string): string { return [ '#ff4f4f', '#ff694f', '#f8603a', '#fc8354', '#fa9231', '#f7bb3b', '#ecdb44', '#e2ec52', '#b0d628', '#93b127', '#25ad40', ][Math.floor((Number(score) || 0) / 10)]; } export const USER_GENDER_MALE = 0; export const USER_GENDER_FEMALE = 1; export const USER_GENDER_OTHER = 2; export const USER_GENDERS = [USER_GENDER_MALE, USER_GENDER_FEMALE, USER_GENDER_OTHER]; export const USER_GENDER_RANGE = { [USER_GENDER_MALE]: 'Boy ♂', [USER_GENDER_FEMALE]: 'Girl ♀', [USER_GENDER_OTHER]: 'Other', }; export const USER_GENDER_ICONS = { [USER_GENDER_MALE]: '♂', [USER_GENDER_FEMALE]: '♀', [USER_GENDER_OTHER]: '?', };