From: Brendan Hansen Date: Thu, 5 Sep 2019 19:33:09 +0000 (-0500) Subject: competition making and restyling X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=1c1629fa23a7be13dcac2f38f898da86cc6370c7;p=codebox.git competition making and restyling --- diff --git a/.gitignore b/.gitignore index bd2344a..ca9a1b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ config.env .tup/ +.vscode/ \ No newline at end of file diff --git a/codebox/app/app.moon b/codebox/app/app.moon index 11f28b8..06f6d19 100644 --- a/codebox/app/app.moon +++ b/codebox/app/app.moon @@ -64,6 +64,8 @@ class extends lapis.Application ['admin.competition': "/admin/competition"]: controller "admin.competition" ['admin.competition.new': "/admin/competition/new"]: controller "admin.competition.new" + ['admin.competition.edit': "/admin/competition/edit/:competition_id"]: controller "admin.competition.edit" + ['admin.competition.delete': "/admin/competition/delete/:competition_id"]: controller "admin.competition.delete" [test: '/test']: => user = Users\find 5 diff --git a/codebox/controllers/admin/competition/delete.moon b/codebox/controllers/admin/competition/delete.moon new file mode 100644 index 0000000..f195133 --- /dev/null +++ b/codebox/controllers/admin/competition/delete.moon @@ -0,0 +1,25 @@ +import make_controller from require "controllers.controller" +import assert_valid from require "lapis.validate" +import capture_errors, capture_errors_json, yield_error from require 'lapis.application' +import Competitions from require 'models' + +make_controller + middleware: { 'logged_in', 'admin_required' } + + get: capture_errors_json => + assert_valid @params, { + { "competition_id", exists: true, is_integer: true } + } + + comp = Competitions\find @params.competition_id + unless comp + yield_error 'Competition not found' + + comp_problems = comp\get_competition_problems! + if comp_problems + for cp in *comp_problems + cp\delete! + + comp\delete! + + redirect_to: @url_for 'admin.competition' diff --git a/codebox/controllers/admin/competition/edit.moon b/codebox/controllers/admin/competition/edit.moon new file mode 100644 index 0000000..8ec29d0 --- /dev/null +++ b/codebox/controllers/admin/competition/edit.moon @@ -0,0 +1,55 @@ +import make_controller from require "controllers.controller" +import assert_valid from require "lapis.validate" +import capture_errors, capture_errors_json, yield_error from require 'lapis.application' +import Competitions, Problems from require 'models' + +make_controller + layout: require 'views.partials.admin_layout' + + middleware: { 'logged_in', 'admin_required' } + + get: capture_errors_json => + assert_valid @params, { + { "competition_id", exists: true, is_integer: true } + } + + @navbar.selected = 3 + + @comp = Competitions\find @params.competition_id + unless @comp + yield_error "Competition not found" + return + + @comp_problems = @comp\get_problems! + @all_problems = Problems\select! + + -- Postgres puts a space between the date and time, need a T + if @comp.start + @comp.start = @comp.start\gsub " ", "T" + if @comp.end + @comp.end = @comp.end\gsub " ", "T" + + render: true + + post: capture_errors => + @navbar.selected = 3 + + assert_valid @params, { + { "id", exists: true, is_integer: true } + { "name", exists: true } + { "start_time", exists: true } + { "end_time", exists: true } + } + + @comp = Competitions\find @params.id + unless @comp + yield_error "Competition not found" + + @comp\update { + name: @params.name + start: @params.start_time + end: @params.end_time + } + @comp\refresh! + + redirect_to: @url_for "admin.competition.edit", { competition_id: @params.id } diff --git a/codebox/controllers/admin/competition/new.moon b/codebox/controllers/admin/competition/new.moon index eb205ea..fdcc305 100644 --- a/codebox/controllers/admin/competition/new.moon +++ b/codebox/controllers/admin/competition/new.moon @@ -29,4 +29,4 @@ make_controller end: @params.end_time } - redirect_to: @url_for 'admin.compeition' + redirect_to: @url_for 'admin.competition' diff --git a/codebox/controllers/admin/problem/delete.moon b/codebox/controllers/admin/problem/delete.moon index 620d0a4..3c7b5a2 100644 --- a/codebox/controllers/admin/problem/delete.moon +++ b/codebox/controllers/admin/problem/delete.moon @@ -20,6 +20,16 @@ make_controller for tc in *test_cases tc\delete! + competition_problems = problem\get_competitions! + if competition_problems + for cp in *competition_problems + cp\delete! + + jobs = problem\get_jobs! + if jobs + for job in *jobs + job\delete! + problem\delete! json: { success: true } diff --git a/codebox/models/competition_problems.moon b/codebox/models/competition_problems.moon index 96fa7cf..9457559 100644 --- a/codebox/models/competition_problems.moon +++ b/codebox/models/competition_problems.moon @@ -1,3 +1,7 @@ import Model from require 'lapis.db.model' class CompetitionProblems extends Model + @relations: { + { "problem", belongs_to: 'Problems' } + { "competition", belongs_to: 'Competitions' } + } diff --git a/codebox/models/competitions.moon b/codebox/models/competitions.moon index 25e9416..ff738ce 100644 --- a/codebox/models/competitions.moon +++ b/codebox/models/competitions.moon @@ -8,6 +8,7 @@ class Competitions extends Model from problems inner join competition_problems on problems.id = competition_problems.problem_id inner join competitions on competition_problems.competition_id = competitions.id - where competitions.id=? orber by competition_problems.letter asc", @id + where competitions.id=? order by competition_problems.letter asc", @id } + { "competition_problems", has_many: "CompetitionProblems" } } diff --git a/codebox/models/problems.moon b/codebox/models/problems.moon index aab9b91..720b022 100644 --- a/codebox/models/problems.moon +++ b/codebox/models/problems.moon @@ -14,6 +14,7 @@ class Problems extends Model has_many: 'TestCases' order: "testcase_order asc" } + { "competitions", has_many: "CompetitionProblems" } { "correct_jobs", fetch: => db.query "select count(job_id) from jobs where problem_id=? and status=4", @id } diff --git a/codebox/static/css/core.css b/codebox/static/css/core.css index b44ad8c..3707ef2 100644 --- a/codebox/static/css/core.css +++ b/codebox/static/css/core.css @@ -66,16 +66,34 @@ a { display: grid; grid-template-columns: repeat(2, 1fr); } +.split-2 > *:first-child { + margin-right: 12px; +} +.split-2 > *:last-child { + margin-left: 12px; +} .split-3 { display: grid; grid-template-columns: repeat(3, 1fr); } +.split-3 > *:first-child { + margin-right: 12px; +} +.split-3 > *:last-child { + margin-left: 12px; +} .split-4 { display: grid; grid-template-columns: repeat(4, 1fr); } +.split-4 > *:first-child { + margin-right: 12px; +} +.split-4 > *:last-child { + margin-left: 12px; +} .split-lr { display: grid; @@ -591,496 +609,1536 @@ pre .hljs-ln-line { margin-left: 11px; } -.mar-r-11 { - margin-right: 11px; +.mar-r-11 { + margin-right: 11px; +} + +.mar-t-11 { + margin-top: 11px; +} + +.mar-b-11 { + margin-bottom: 11px; +} + +.pad-12 { + padding: 12px; +} + +.pad-l-12 { + padding-left: 12px; +} + +.pad-r-12 { + padding-right: 12px; +} + +.pad-t-12 { + padding-top: 12px; +} + +.pad-b-12 { + padding-bottom: 12px; +} + +.mar-12 { + margin: 12px; +} + +.mar-l-12 { + margin-left: 12px; +} + +.mar-r-12 { + margin-right: 12px; +} + +.mar-t-12 { + margin-top: 12px; +} + +.mar-b-12 { + margin-bottom: 12px; +} + +.pad-13 { + padding: 13px; +} + +.pad-l-13 { + padding-left: 13px; +} + +.pad-r-13 { + padding-right: 13px; +} + +.pad-t-13 { + padding-top: 13px; +} + +.pad-b-13 { + padding-bottom: 13px; +} + +.mar-13 { + margin: 13px; +} + +.mar-l-13 { + margin-left: 13px; +} + +.mar-r-13 { + margin-right: 13px; +} + +.mar-t-13 { + margin-top: 13px; +} + +.mar-b-13 { + margin-bottom: 13px; +} + +.pad-14 { + padding: 14px; +} + +.pad-l-14 { + padding-left: 14px; +} + +.pad-r-14 { + padding-right: 14px; +} + +.pad-t-14 { + padding-top: 14px; +} + +.pad-b-14 { + padding-bottom: 14px; +} + +.mar-14 { + margin: 14px; +} + +.mar-l-14 { + margin-left: 14px; +} + +.mar-r-14 { + margin-right: 14px; +} + +.mar-t-14 { + margin-top: 14px; +} + +.mar-b-14 { + margin-bottom: 14px; +} + +.pad-15 { + padding: 15px; +} + +.pad-l-15 { + padding-left: 15px; +} + +.pad-r-15 { + padding-right: 15px; +} + +.pad-t-15 { + padding-top: 15px; +} + +.pad-b-15 { + padding-bottom: 15px; +} + +.mar-15 { + margin: 15px; +} + +.mar-l-15 { + margin-left: 15px; +} + +.mar-r-15 { + margin-right: 15px; +} + +.mar-t-15 { + margin-top: 15px; +} + +.mar-b-15 { + margin-bottom: 15px; +} + +.pad-16 { + padding: 16px; +} + +.pad-l-16 { + padding-left: 16px; +} + +.pad-r-16 { + padding-right: 16px; +} + +.pad-t-16 { + padding-top: 16px; +} + +.pad-b-16 { + padding-bottom: 16px; +} + +.mar-16 { + margin: 16px; +} + +.mar-l-16 { + margin-left: 16px; +} + +.mar-r-16 { + margin-right: 16px; +} + +.mar-t-16 { + margin-top: 16px; +} + +.mar-b-16 { + margin-bottom: 16px; +} + +.pad-17 { + padding: 17px; +} + +.pad-l-17 { + padding-left: 17px; +} + +.pad-r-17 { + padding-right: 17px; +} + +.pad-t-17 { + padding-top: 17px; +} + +.pad-b-17 { + padding-bottom: 17px; +} + +.mar-17 { + margin: 17px; +} + +.mar-l-17 { + margin-left: 17px; +} + +.mar-r-17 { + margin-right: 17px; +} + +.mar-t-17 { + margin-top: 17px; +} + +.mar-b-17 { + margin-bottom: 17px; +} + +.pad-18 { + padding: 18px; +} + +.pad-l-18 { + padding-left: 18px; +} + +.pad-r-18 { + padding-right: 18px; +} + +.pad-t-18 { + padding-top: 18px; +} + +.pad-b-18 { + padding-bottom: 18px; +} + +.mar-18 { + margin: 18px; +} + +.mar-l-18 { + margin-left: 18px; +} + +.mar-r-18 { + margin-right: 18px; +} + +.mar-t-18 { + margin-top: 18px; +} + +.mar-b-18 { + margin-bottom: 18px; +} + +.pad-19 { + padding: 19px; +} + +.pad-l-19 { + padding-left: 19px; +} + +.pad-r-19 { + padding-right: 19px; +} + +.pad-t-19 { + padding-top: 19px; +} + +.pad-b-19 { + padding-bottom: 19px; +} + +.mar-19 { + margin: 19px; +} + +.mar-l-19 { + margin-left: 19px; +} + +.mar-r-19 { + margin-right: 19px; +} + +.mar-t-19 { + margin-top: 19px; +} + +.mar-b-19 { + margin-bottom: 19px; +} + +.pad-20 { + padding: 20px; +} + +.pad-l-20 { + padding-left: 20px; +} + +.pad-r-20 { + padding-right: 20px; +} + +.pad-t-20 { + padding-top: 20px; +} + +.pad-b-20 { + padding-bottom: 20px; +} + +.mar-20 { + margin: 20px; +} + +.mar-l-20 { + margin-left: 20px; +} + +.mar-r-20 { + margin-right: 20px; +} + +.mar-t-20 { + margin-top: 20px; +} + +.mar-b-20 { + margin-bottom: 20px; +} + +.pad-21 { + padding: 21px; +} + +.pad-l-21 { + padding-left: 21px; +} + +.pad-r-21 { + padding-right: 21px; +} + +.pad-t-21 { + padding-top: 21px; +} + +.pad-b-21 { + padding-bottom: 21px; +} + +.mar-21 { + margin: 21px; +} + +.mar-l-21 { + margin-left: 21px; +} + +.mar-r-21 { + margin-right: 21px; +} + +.mar-t-21 { + margin-top: 21px; +} + +.mar-b-21 { + margin-bottom: 21px; +} + +.pad-22 { + padding: 22px; +} + +.pad-l-22 { + padding-left: 22px; +} + +.pad-r-22 { + padding-right: 22px; +} + +.pad-t-22 { + padding-top: 22px; +} + +.pad-b-22 { + padding-bottom: 22px; +} + +.mar-22 { + margin: 22px; +} + +.mar-l-22 { + margin-left: 22px; +} + +.mar-r-22 { + margin-right: 22px; +} + +.mar-t-22 { + margin-top: 22px; +} + +.mar-b-22 { + margin-bottom: 22px; +} + +.pad-23 { + padding: 23px; +} + +.pad-l-23 { + padding-left: 23px; +} + +.pad-r-23 { + padding-right: 23px; +} + +.pad-t-23 { + padding-top: 23px; +} + +.pad-b-23 { + padding-bottom: 23px; +} + +.mar-23 { + margin: 23px; +} + +.mar-l-23 { + margin-left: 23px; +} + +.mar-r-23 { + margin-right: 23px; +} + +.mar-t-23 { + margin-top: 23px; +} + +.mar-b-23 { + margin-bottom: 23px; +} + +.pad-24 { + padding: 24px; +} + +.pad-l-24 { + padding-left: 24px; +} + +.pad-r-24 { + padding-right: 24px; +} + +.pad-t-24 { + padding-top: 24px; +} + +.pad-b-24 { + padding-bottom: 24px; +} + +.mar-24 { + margin: 24px; +} + +.mar-l-24 { + margin-left: 24px; +} + +.mar-r-24 { + margin-right: 24px; +} + +.mar-t-24 { + margin-top: 24px; +} + +.mar-b-24 { + margin-bottom: 24px; +} + +.pad-25 { + padding: 25px; +} + +.pad-l-25 { + padding-left: 25px; +} + +.pad-r-25 { + padding-right: 25px; +} + +.pad-t-25 { + padding-top: 25px; +} + +.pad-b-25 { + padding-bottom: 25px; +} + +.mar-25 { + margin: 25px; +} + +.mar-l-25 { + margin-left: 25px; +} + +.mar-r-25 { + margin-right: 25px; +} + +.mar-t-25 { + margin-top: 25px; +} + +.mar-b-25 { + margin-bottom: 25px; +} + +.pad-26 { + padding: 26px; +} + +.pad-l-26 { + padding-left: 26px; +} + +.pad-r-26 { + padding-right: 26px; +} + +.pad-t-26 { + padding-top: 26px; +} + +.pad-b-26 { + padding-bottom: 26px; +} + +.mar-26 { + margin: 26px; +} + +.mar-l-26 { + margin-left: 26px; +} + +.mar-r-26 { + margin-right: 26px; +} + +.mar-t-26 { + margin-top: 26px; +} + +.mar-b-26 { + margin-bottom: 26px; +} + +.pad-27 { + padding: 27px; +} + +.pad-l-27 { + padding-left: 27px; +} + +.pad-r-27 { + padding-right: 27px; +} + +.pad-t-27 { + padding-top: 27px; +} + +.pad-b-27 { + padding-bottom: 27px; +} + +.mar-27 { + margin: 27px; +} + +.mar-l-27 { + margin-left: 27px; +} + +.mar-r-27 { + margin-right: 27px; +} + +.mar-t-27 { + margin-top: 27px; +} + +.mar-b-27 { + margin-bottom: 27px; +} + +.pad-28 { + padding: 28px; +} + +.pad-l-28 { + padding-left: 28px; +} + +.pad-r-28 { + padding-right: 28px; +} + +.pad-t-28 { + padding-top: 28px; +} + +.pad-b-28 { + padding-bottom: 28px; +} + +.mar-28 { + margin: 28px; +} + +.mar-l-28 { + margin-left: 28px; +} + +.mar-r-28 { + margin-right: 28px; +} + +.mar-t-28 { + margin-top: 28px; +} + +.mar-b-28 { + margin-bottom: 28px; +} + +.pad-29 { + padding: 29px; +} + +.pad-l-29 { + padding-left: 29px; +} + +.pad-r-29 { + padding-right: 29px; +} + +.pad-t-29 { + padding-top: 29px; +} + +.pad-b-29 { + padding-bottom: 29px; +} + +.mar-29 { + margin: 29px; +} + +.mar-l-29 { + margin-left: 29px; +} + +.mar-r-29 { + margin-right: 29px; +} + +.mar-t-29 { + margin-top: 29px; +} + +.mar-b-29 { + margin-bottom: 29px; +} + +.pad-30 { + padding: 30px; +} + +.pad-l-30 { + padding-left: 30px; +} + +.pad-r-30 { + padding-right: 30px; +} + +.pad-t-30 { + padding-top: 30px; +} + +.pad-b-30 { + padding-bottom: 30px; +} + +.mar-30 { + margin: 30px; +} + +.mar-l-30 { + margin-left: 30px; +} + +.mar-r-30 { + margin-right: 30px; +} + +.mar-t-30 { + margin-top: 30px; +} + +.mar-b-30 { + margin-bottom: 30px; +} + +.pad-31 { + padding: 31px; +} + +.pad-l-31 { + padding-left: 31px; +} + +.pad-r-31 { + padding-right: 31px; +} + +.pad-t-31 { + padding-top: 31px; +} + +.pad-b-31 { + padding-bottom: 31px; +} + +.mar-31 { + margin: 31px; +} + +.mar-l-31 { + margin-left: 31px; +} + +.mar-r-31 { + margin-right: 31px; +} + +.mar-t-31 { + margin-top: 31px; +} + +.mar-b-31 { + margin-bottom: 31px; +} + +.pad-32 { + padding: 32px; +} + +.pad-l-32 { + padding-left: 32px; +} + +.pad-r-32 { + padding-right: 32px; +} + +.pad-t-32 { + padding-top: 32px; +} + +.pad-b-32 { + padding-bottom: 32px; +} + +.mar-32 { + margin: 32px; +} + +.mar-l-32 { + margin-left: 32px; +} + +.mar-r-32 { + margin-right: 32px; +} + +.mar-t-32 { + margin-top: 32px; +} + +.mar-b-32 { + margin-bottom: 32px; +} + +.pad-33 { + padding: 33px; +} + +.pad-l-33 { + padding-left: 33px; +} + +.pad-r-33 { + padding-right: 33px; +} + +.pad-t-33 { + padding-top: 33px; +} + +.pad-b-33 { + padding-bottom: 33px; +} + +.mar-33 { + margin: 33px; +} + +.mar-l-33 { + margin-left: 33px; +} + +.mar-r-33 { + margin-right: 33px; +} + +.mar-t-33 { + margin-top: 33px; +} + +.mar-b-33 { + margin-bottom: 33px; +} + +.pad-34 { + padding: 34px; +} + +.pad-l-34 { + padding-left: 34px; +} + +.pad-r-34 { + padding-right: 34px; +} + +.pad-t-34 { + padding-top: 34px; +} + +.pad-b-34 { + padding-bottom: 34px; +} + +.mar-34 { + margin: 34px; +} + +.mar-l-34 { + margin-left: 34px; +} + +.mar-r-34 { + margin-right: 34px; +} + +.mar-t-34 { + margin-top: 34px; +} + +.mar-b-34 { + margin-bottom: 34px; +} + +.pad-35 { + padding: 35px; +} + +.pad-l-35 { + padding-left: 35px; +} + +.pad-r-35 { + padding-right: 35px; +} + +.pad-t-35 { + padding-top: 35px; +} + +.pad-b-35 { + padding-bottom: 35px; +} + +.mar-35 { + margin: 35px; +} + +.mar-l-35 { + margin-left: 35px; +} + +.mar-r-35 { + margin-right: 35px; +} + +.mar-t-35 { + margin-top: 35px; +} + +.mar-b-35 { + margin-bottom: 35px; +} + +.pad-36 { + padding: 36px; +} + +.pad-l-36 { + padding-left: 36px; +} + +.pad-r-36 { + padding-right: 36px; +} + +.pad-t-36 { + padding-top: 36px; +} + +.pad-b-36 { + padding-bottom: 36px; +} + +.mar-36 { + margin: 36px; +} + +.mar-l-36 { + margin-left: 36px; +} + +.mar-r-36 { + margin-right: 36px; +} + +.mar-t-36 { + margin-top: 36px; +} + +.mar-b-36 { + margin-bottom: 36px; +} + +.pad-37 { + padding: 37px; +} + +.pad-l-37 { + padding-left: 37px; +} + +.pad-r-37 { + padding-right: 37px; +} + +.pad-t-37 { + padding-top: 37px; +} + +.pad-b-37 { + padding-bottom: 37px; +} + +.mar-37 { + margin: 37px; +} + +.mar-l-37 { + margin-left: 37px; +} + +.mar-r-37 { + margin-right: 37px; } -.mar-t-11 { - margin-top: 11px; +.mar-t-37 { + margin-top: 37px; } -.mar-b-11 { - margin-bottom: 11px; +.mar-b-37 { + margin-bottom: 37px; } -.pad-12 { - padding: 12px; +.pad-38 { + padding: 38px; } -.pad-l-12 { - padding-left: 12px; +.pad-l-38 { + padding-left: 38px; } -.pad-r-12 { - padding-right: 12px; +.pad-r-38 { + padding-right: 38px; } -.pad-t-12 { - padding-top: 12px; +.pad-t-38 { + padding-top: 38px; } -.pad-b-12 { - padding-bottom: 12px; +.pad-b-38 { + padding-bottom: 38px; } -.mar-12 { - margin: 12px; +.mar-38 { + margin: 38px; } -.mar-l-12 { - margin-left: 12px; +.mar-l-38 { + margin-left: 38px; } -.mar-r-12 { - margin-right: 12px; +.mar-r-38 { + margin-right: 38px; } -.mar-t-12 { - margin-top: 12px; +.mar-t-38 { + margin-top: 38px; } -.mar-b-12 { - margin-bottom: 12px; +.mar-b-38 { + margin-bottom: 38px; } -.pad-13 { - padding: 13px; +.pad-39 { + padding: 39px; } -.pad-l-13 { - padding-left: 13px; +.pad-l-39 { + padding-left: 39px; } -.pad-r-13 { - padding-right: 13px; +.pad-r-39 { + padding-right: 39px; } -.pad-t-13 { - padding-top: 13px; +.pad-t-39 { + padding-top: 39px; } -.pad-b-13 { - padding-bottom: 13px; +.pad-b-39 { + padding-bottom: 39px; } -.mar-13 { - margin: 13px; +.mar-39 { + margin: 39px; } -.mar-l-13 { - margin-left: 13px; +.mar-l-39 { + margin-left: 39px; } -.mar-r-13 { - margin-right: 13px; +.mar-r-39 { + margin-right: 39px; } -.mar-t-13 { - margin-top: 13px; +.mar-t-39 { + margin-top: 39px; } -.mar-b-13 { - margin-bottom: 13px; +.mar-b-39 { + margin-bottom: 39px; } -.pad-14 { - padding: 14px; +.pad-40 { + padding: 40px; } -.pad-l-14 { - padding-left: 14px; +.pad-l-40 { + padding-left: 40px; } -.pad-r-14 { - padding-right: 14px; +.pad-r-40 { + padding-right: 40px; } -.pad-t-14 { - padding-top: 14px; +.pad-t-40 { + padding-top: 40px; } -.pad-b-14 { - padding-bottom: 14px; +.pad-b-40 { + padding-bottom: 40px; } -.mar-14 { - margin: 14px; +.mar-40 { + margin: 40px; } -.mar-l-14 { - margin-left: 14px; +.mar-l-40 { + margin-left: 40px; } -.mar-r-14 { - margin-right: 14px; +.mar-r-40 { + margin-right: 40px; } -.mar-t-14 { - margin-top: 14px; +.mar-t-40 { + margin-top: 40px; } -.mar-b-14 { - margin-bottom: 14px; +.mar-b-40 { + margin-bottom: 40px; } -.pad-15 { - padding: 15px; +.pad-41 { + padding: 41px; } -.pad-l-15 { - padding-left: 15px; +.pad-l-41 { + padding-left: 41px; } -.pad-r-15 { - padding-right: 15px; +.pad-r-41 { + padding-right: 41px; } -.pad-t-15 { - padding-top: 15px; +.pad-t-41 { + padding-top: 41px; } -.pad-b-15 { - padding-bottom: 15px; +.pad-b-41 { + padding-bottom: 41px; } -.mar-15 { - margin: 15px; +.mar-41 { + margin: 41px; } -.mar-l-15 { - margin-left: 15px; +.mar-l-41 { + margin-left: 41px; } -.mar-r-15 { - margin-right: 15px; +.mar-r-41 { + margin-right: 41px; } -.mar-t-15 { - margin-top: 15px; +.mar-t-41 { + margin-top: 41px; } -.mar-b-15 { - margin-bottom: 15px; +.mar-b-41 { + margin-bottom: 41px; } -.pad-16 { - padding: 16px; +.pad-42 { + padding: 42px; } -.pad-l-16 { - padding-left: 16px; +.pad-l-42 { + padding-left: 42px; } -.pad-r-16 { - padding-right: 16px; +.pad-r-42 { + padding-right: 42px; } -.pad-t-16 { - padding-top: 16px; +.pad-t-42 { + padding-top: 42px; } -.pad-b-16 { - padding-bottom: 16px; +.pad-b-42 { + padding-bottom: 42px; } -.mar-16 { - margin: 16px; +.mar-42 { + margin: 42px; } -.mar-l-16 { - margin-left: 16px; +.mar-l-42 { + margin-left: 42px; } -.mar-r-16 { - margin-right: 16px; +.mar-r-42 { + margin-right: 42px; } -.mar-t-16 { - margin-top: 16px; +.mar-t-42 { + margin-top: 42px; } -.mar-b-16 { - margin-bottom: 16px; +.mar-b-42 { + margin-bottom: 42px; } -.pad-17 { - padding: 17px; +.pad-43 { + padding: 43px; } -.pad-l-17 { - padding-left: 17px; +.pad-l-43 { + padding-left: 43px; } -.pad-r-17 { - padding-right: 17px; +.pad-r-43 { + padding-right: 43px; } -.pad-t-17 { - padding-top: 17px; +.pad-t-43 { + padding-top: 43px; } -.pad-b-17 { - padding-bottom: 17px; +.pad-b-43 { + padding-bottom: 43px; } -.mar-17 { - margin: 17px; +.mar-43 { + margin: 43px; } -.mar-l-17 { - margin-left: 17px; +.mar-l-43 { + margin-left: 43px; } -.mar-r-17 { - margin-right: 17px; +.mar-r-43 { + margin-right: 43px; } -.mar-t-17 { - margin-top: 17px; +.mar-t-43 { + margin-top: 43px; } -.mar-b-17 { - margin-bottom: 17px; +.mar-b-43 { + margin-bottom: 43px; } -.pad-18 { - padding: 18px; +.pad-44 { + padding: 44px; } -.pad-l-18 { - padding-left: 18px; +.pad-l-44 { + padding-left: 44px; } -.pad-r-18 { - padding-right: 18px; +.pad-r-44 { + padding-right: 44px; } -.pad-t-18 { - padding-top: 18px; +.pad-t-44 { + padding-top: 44px; } -.pad-b-18 { - padding-bottom: 18px; +.pad-b-44 { + padding-bottom: 44px; } -.mar-18 { - margin: 18px; +.mar-44 { + margin: 44px; } -.mar-l-18 { - margin-left: 18px; +.mar-l-44 { + margin-left: 44px; } -.mar-r-18 { - margin-right: 18px; +.mar-r-44 { + margin-right: 44px; } -.mar-t-18 { - margin-top: 18px; +.mar-t-44 { + margin-top: 44px; } -.mar-b-18 { - margin-bottom: 18px; +.mar-b-44 { + margin-bottom: 44px; } -.pad-19 { - padding: 19px; +.pad-45 { + padding: 45px; } -.pad-l-19 { - padding-left: 19px; +.pad-l-45 { + padding-left: 45px; } -.pad-r-19 { - padding-right: 19px; +.pad-r-45 { + padding-right: 45px; } -.pad-t-19 { - padding-top: 19px; +.pad-t-45 { + padding-top: 45px; } -.pad-b-19 { - padding-bottom: 19px; +.pad-b-45 { + padding-bottom: 45px; } -.mar-19 { - margin: 19px; +.mar-45 { + margin: 45px; } -.mar-l-19 { - margin-left: 19px; +.mar-l-45 { + margin-left: 45px; } -.mar-r-19 { - margin-right: 19px; +.mar-r-45 { + margin-right: 45px; } -.mar-t-19 { - margin-top: 19px; +.mar-t-45 { + margin-top: 45px; } -.mar-b-19 { - margin-bottom: 19px; +.mar-b-45 { + margin-bottom: 45px; } -.pad-20 { - padding: 20px; +.pad-46 { + padding: 46px; } -.pad-l-20 { - padding-left: 20px; +.pad-l-46 { + padding-left: 46px; } -.pad-r-20 { - padding-right: 20px; +.pad-r-46 { + padding-right: 46px; } -.pad-t-20 { - padding-top: 20px; +.pad-t-46 { + padding-top: 46px; } -.pad-b-20 { - padding-bottom: 20px; +.pad-b-46 { + padding-bottom: 46px; } -.mar-20 { - margin: 20px; +.mar-46 { + margin: 46px; } -.mar-l-20 { - margin-left: 20px; +.mar-l-46 { + margin-left: 46px; } -.mar-r-20 { - margin-right: 20px; +.mar-r-46 { + margin-right: 46px; } -.mar-t-20 { - margin-top: 20px; +.mar-t-46 { + margin-top: 46px; } -.mar-b-20 { - margin-bottom: 20px; +.mar-b-46 { + margin-bottom: 46px; } -.pad-21 { - padding: 21px; +.pad-47 { + padding: 47px; } -.pad-l-21 { - padding-left: 21px; +.pad-l-47 { + padding-left: 47px; } -.pad-r-21 { - padding-right: 21px; +.pad-r-47 { + padding-right: 47px; } -.pad-t-21 { - padding-top: 21px; +.pad-t-47 { + padding-top: 47px; } -.pad-b-21 { - padding-bottom: 21px; +.pad-b-47 { + padding-bottom: 47px; } -.mar-21 { - margin: 21px; +.mar-47 { + margin: 47px; } -.mar-l-21 { - margin-left: 21px; +.mar-l-47 { + margin-left: 47px; } -.mar-r-21 { - margin-right: 21px; +.mar-r-47 { + margin-right: 47px; } -.mar-t-21 { - margin-top: 21px; +.mar-t-47 { + margin-top: 47px; } -.mar-b-21 { - margin-bottom: 21px; +.mar-b-47 { + margin-bottom: 47px; } -.pad-22 { - padding: 22px; +.pad-48 { + padding: 48px; } -.pad-l-22 { - padding-left: 22px; +.pad-l-48 { + padding-left: 48px; } -.pad-r-22 { - padding-right: 22px; +.pad-r-48 { + padding-right: 48px; } -.pad-t-22 { - padding-top: 22px; +.pad-t-48 { + padding-top: 48px; } -.pad-b-22 { - padding-bottom: 22px; +.pad-b-48 { + padding-bottom: 48px; } -.mar-22 { - margin: 22px; +.mar-48 { + margin: 48px; } -.mar-l-22 { - margin-left: 22px; +.mar-l-48 { + margin-left: 48px; } -.mar-r-22 { - margin-right: 22px; +.mar-r-48 { + margin-right: 48px; } -.mar-t-22 { - margin-top: 22px; +.mar-t-48 { + margin-top: 48px; } -.mar-b-22 { - margin-bottom: 22px; +.mar-b-48 { + margin-bottom: 48px; } -.pad-23 { - padding: 23px; +.pad-49 { + padding: 49px; } -.pad-l-23 { - padding-left: 23px; +.pad-l-49 { + padding-left: 49px; } -.pad-r-23 { - padding-right: 23px; +.pad-r-49 { + padding-right: 49px; } -.pad-t-23 { - padding-top: 23px; +.pad-t-49 { + padding-top: 49px; } -.pad-b-23 { - padding-bottom: 23px; +.pad-b-49 { + padding-bottom: 49px; } -.mar-23 { - margin: 23px; +.mar-49 { + margin: 49px; } -.mar-l-23 { - margin-left: 23px; +.mar-l-49 { + margin-left: 49px; } -.mar-r-23 { - margin-right: 23px; +.mar-r-49 { + margin-right: 49px; } -.mar-t-23 { - margin-top: 23px; +.mar-t-49 { + margin-top: 49px; } -.mar-b-23 { - margin-bottom: 23px; +.mar-b-49 { + margin-bottom: 49px; } .sidebar-problem-list { @@ -2018,7 +3076,7 @@ button + button, button + a.button, a.button + button, a.button + a.button { margin-left: 12px; } -input, textarea { +input, textarea, select { border: none; background-color: #111; color: white; @@ -2026,11 +3084,16 @@ input, textarea { display: inline-block; padding: 0.25rem; } -input::placeholder, textarea::placeholder { +input::placeholder, textarea::placeholder, select::placeholder { color: #999; } -form input, form textarea { +input[type=submit] { + cursor: pointer; + background-color: #0077c2; +} + +form input, form textarea, form select { z-index: 20; box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.7); padding: 0.75rem; @@ -2046,10 +3109,10 @@ form label { box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.7); background-color: #0077c2; width: 100%; - line-height: 48px; + line-height: 44px; display: inline-block; - padding-left: 12px; - margin-top: 16px; + padding: 4px 12px 4px; + margin-top: 12px; } .error-list ul li { diff --git a/codebox/static/css/core.css.map b/codebox/static/css/core.css.map index 7d0bbc6..117b018 100644 --- a/codebox/static/css/core.css.map +++ b/codebox/static/css/core.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA;EACC;EACA;EACA,YCIc;EDHd,QCoBe;EDnBf;EAEA;EAEA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA,kBClCY;EDoCZ;;AAEA;EACC;EACA;;;AE/CJ;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAIA;EACC;EACA;;;AAFD;EACC;EACA;;;AAFD;EACC;EACA;;;AAIF;EACC;EACA;;AAGC;EACC;;AAGD;EACC;;;AAKH;EC3CI;ED6CH;;AAGC;EAEC;;AAIF;EAGC;;;AAIF;EACC;EACA;;;AAGD;EACC;;AAEA;EAAW;;AACX;EAAW;;AACX;EAAW;;AACX;EAAW;;AAEC;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;ACwEA;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;ACwEN;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;;ACyEb;ECvFI;EDyFH;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAIA;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;E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;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADwGA;EACI;;AACA;EACI;EACA;EACA;EACA,OEzHI;;AF2HR;EACI,KE9HS;EF+HT,ME/HS;EFgIT;EACA;;AAIR;EACI,kBJhIO;;AIiIP;AAAA;EAEI;;AAEJ;EACI,OJtIG;;AIwIP;EACI,kBErII;;AFwIJ;EACI,OJ9IA;;AIkJZ;EACF,kBJ1IW;;AI2IL;AAAA;EAEI;;AAGA;EACI,OJnJR;;AIsJN;EACC,OJrJU;;;AOPb;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EAEA;EACA;EACA;EACA;;;AAGD;ELhCI;EKkCH;EACA,kBP7Bc;EO8Bd;EAEA;EACA;EACA;EACA;EAEA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACC;;;AAKD;EACC;ELlEE;EKqEF;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;ELhFE;EKkFF,kBP5Ea;EO6Eb;EACA;EAEA;EACA;EACA;;;AAOD;EL/FG;EKkGF;EACA,kBPzFe;EO0Ff;EACA;;AAEA;EACC,kBPlGY;;;AOuGf;EACC;EACA;;;AAGD;EAKC;ELvHG;EK0HH;EACA;EAEA;EACA;EACA;EACA,OPjIO;;AOoHP;EACC;;;AAeF;ELnII;EKsIH,kBPhIc;EOiId;EACA;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EAGC;EACA;;AAEA;EACC;;;AAKD;EACC;EACA,kBP5JQ;EO6JR;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA","file":"core.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA;EACC;EACA;EACA,YCIc;EDHd,QCoBe;EDnBf;EAEA;EAEA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA,kBClCY;EDoCZ;;AAEA;EACC;EACA;;;AE/CJ;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAIA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;;AATF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;;AATF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;;AAKH;EACC;EACA;;AAGC;EACC;;AAGD;EACC;;;AAKH;ECnDI;EDqDH;;AAGC;EAEC;;AAIF;EAGC;;;AAIF;EACC;EACA;;;AAGD;EACC;;AAEA;EAAW;;AACX;EAAW;;AACX;EAAW;;AACX;EAAW;;AAEC;EAAW,kBD9Ed;;AC+ES;EAAW,kBD9Ed;;AC+EE;EAAW,kBD9Ed;;ACgFA;EAAW,kBD9Ed;;AC+ES;EAAW,kBD9Ed;;AC+EE;EAAW,kBD9Ed;;ACgFN;EAAW,kBD9Ed;;AC+ES;EAAW,kBD9Ed;;AC+EE;EAAW,kBD9Ed;;;ACiFb;EC/FI;EDiGH;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAIA;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AE5HhB;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;;;AC9CF;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;ECNA;EACA;EACA;EACA;EACA;;;ADMJ;ECVI;EACA;EACA;EACA;EACA;;;ADWJ;EAMI;EACA;EACA;EACA;EACA;EACA;EACA,kBEjCc;;AFsBd;AAAA;AAAA;ECRA,oBDWwB;ECVxB,iBDUwB;ECTxB,YDSwB;;AAUxB;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OEzDU;EF0DV;EACA;EACA;ECzCJ,6BD0CiC;ECzCjC,0BDyCiC;ECxCjC,wBDwCiC;ECvCjC,qBDuCiC;ECnCjC,6BDoCiC;ECnCjC,0BDmCiC;EClCjC,wBDkCiC;ECjCjC,qBDiCiC;EC7BjC,oCD8BwC;EC7BxC,iCD6BwC;EC5BxC,+BD4BwC;EC3BxC,4BD2BwC;;AAGxC;EACI;EACA,KExEO;EFyEP,MEzEO;EF0EP;EACA;EACA;EACA,kBExEG;EFyEH;EACA;ECxDJ,6BDyDiC;ECxDjC,0BDwDiC;ECvDjC,wBDuDiC;ECtDjC,qBDsDiC;EClDjC,6BDmDiC;EClDjC,0BDkDiC;ECjDjC,wBDiDiC;EChDjC,qBDgDiC;EC5CjC,oCD6CwC;EC5CxC,iCD4CwC;EC3CxC,+BD2CwC;EC1CxC,4BD0CwC;;AAGxC;EACI;EACA;EACA;EACA;;AAuBA;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADwGA;EACI;;AACA;EACI;EACA;EACA;EACA,OEzHI;;AF2HR;EACI,KE9HS;EF+HT,ME/HS;EFgIT;EACA;;AAIR;EACI,kBJhIO;;AIiIP;AAAA;EAEI;;AAEJ;EACI,OJtIG;;AIwIP;EACI,kBErII;;AFwIJ;EACI,OJ9IA;;AIkJZ;EACF,kBJ1IW;;AI2IL;AAAA;EAEI;;AAGA;EACI,OJnJR;;AIsJN;EACC,OJrJU;;;AOPb;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EAEA;EACA;EACA;EACA;;;AAGD;ELhCI;EKkCH;EACA,kBP7Bc;EO8Bd;EAEA;EACA;EACA;EACA;EAEA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA,kBP5Dc;;;AOgEd;EACC;ELvEE;EK0EF;EACA;EACA;;AAID;EACC;EACA;;AAGD;EACC;ELtFE;EKwFF,kBPlFa;EOmFb;EACA;EAEA;EACA;EACA;;;AAOD;ELrGG;EKwGF;EACA,kBP/Fe;EOgGf;EACA;;AAEA;EACC,kBPxGY;;;AO6Gf;EACC;EACA;;;AAGD;EAKC;EL7HG;EKgIH;EACA;EAEA;EACA;EACA;EACA,OPvIO;;AO0HP;EACC;;;AAeF;ELzII;EK4IH,kBPtIc;EOuId;EACA;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EAGC;EACA;;AAEA;EACC;;;AAKD;EACC;EACA,kBPlKQ;EOmKR;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA","file":"core.css"} \ No newline at end of file diff --git a/codebox/static/scss/_utils.scss b/codebox/static/scss/_utils.scss index 4eed3ec..feab6a2 100644 --- a/codebox/static/scss/_utils.scss +++ b/codebox/static/scss/_utils.scss @@ -24,6 +24,14 @@ a { .split-#{$i} { display: grid; grid-template-columns: repeat(#{$i}, 1fr); + + & > *:first-child { + margin-right: 12px; + } + + & > *:last-child { + margin-left: 12px; + } } } @@ -103,7 +111,7 @@ pre { width: 100%; } -@for $i from 1 to 24 { +@for $i from 1 to 50 { .pad-#{$i} { padding: #{$i}px; } .pad-l-#{$i} { padding-left: #{$i}px; } .pad-r-#{$i} { padding-right: #{$i}px; } diff --git a/codebox/static/scss/core.scss b/codebox/static/scss/core.scss index 3f4dcb0..719b85d 100644 --- a/codebox/static/scss/core.scss +++ b/codebox/static/scss/core.scss @@ -49,7 +49,7 @@ button, a.button { } } -input, textarea { +input, textarea, select { border: none; background-color: #111; color: white; @@ -63,8 +63,13 @@ input, textarea { } } +input[type="submit"] { + cursor: pointer; + background-color: $primary-dark; +} + form { - input, textarea { + input, textarea, select { z-index: 20; @include elevate(2px, rgba(0, 0, 0, 0.7)); @@ -73,6 +78,7 @@ form { width: 100%; } + textarea { background-color: #111; height: 50vh; @@ -83,11 +89,11 @@ form { @include elevate(2px, rgba(0, 0, 0, 0.7)); background-color: $primary-dark; width: 100%; - line-height: 48px; + line-height: 44px; display: inline-block; - padding-left: 12px; - margin-top: 16px; + padding: 4px 12px 4px; + margin-top: 12px; } } diff --git a/codebox/views/admin/competition.moon b/codebox/views/admin/competition.moon index 0c01de4..8c07245 100644 --- a/codebox/views/admin/competition.moon +++ b/codebox/views/admin/competition.moon @@ -9,8 +9,11 @@ class AdminCompetition extends html.Widget -> text 'Create a competition' for comp in *@competitions - div class: 'header-line', -> + div class: 'option-line', -> span comp.name + div class: 'button-list', -> + a href: (@url_for "admin.competition.edit", { competition_id: comp.id }), "Edit" + a href: (@url_for "admin.competition.delete", { competition_id: comp.id}), 'Delete' div class: 'box', -> div class: 'highlight pad-12 split-lr', -> @@ -20,5 +23,3 @@ class AdminCompetition extends html.Widget div class: 'highlight pad-12 split-lr', -> span 'End time' span comp.end - - diff --git a/codebox/views/admin/competition/edit.moon b/codebox/views/admin/competition/edit.moon new file mode 100644 index 0000000..297a52f --- /dev/null +++ b/codebox/views/admin/competition/edit.moon @@ -0,0 +1,53 @@ +html = require "lapis.html" + +class AdminCompetitionEdit extends html.Widget + content: => + h1 "Editing '#{@comp.name}'" + + div class: 'content', -> + div class: 'split-2', -> + form method: 'POST', -> + input type: 'hidden', name: 'id', value: "#{@comp.id}", "" + + label for: 'name', 'Competition name' + input type: 'text', name: 'name', value: "#{@comp.name}", "" + + label for: 'start_time', 'Start time' + input type: 'datetime-local', name: 'start_time', value: "#{@comp.start}", "" + + label for: 'end_time', 'End time' + input type: 'datetime-local', name: 'end_time', value: "#{@comp.end}", "" + + input type: 'submit', value: 'Save competition' + + div -> + div class: 'header-line', -> + span "Problems" + + div class: 'box', -> + if @comp_problems + for cp in *@comp_problems + div class: 'highlight split-lr', -> + div class: 'tabbed-split tab-32 primary-dark', -> + span class: 'pad-12', -> text cp.letter + div class: 'pad-12', -> text "#{cp.name}" + + div class: 'pad-12 button-list', -> + a 'Remove' + + h2 class: 'mar-t-32', "Add problem" + form method: 'POST', action: '/test', -> + input type: 'hidden', name: 'competition_id', value: "#{@comp.id}", "" + + label for: 'problem_name', 'Problem name' + element 'select', name: 'problem_name', -> + for prob in *@all_problems + option value: "#{prob.short_name}", "#{prob.name}" + + label for: 'letter', 'Problem letter' + element 'select', -> + for i = 0, 25, 1 + letter = string.char (65 + i) + option value: "#{letter}", "#{letter}" + + input type: 'submit', value: 'Add problem' diff --git a/codebox/views/admin/problem.moon b/codebox/views/admin/problem.moon index bde1c9f..a7872b1 100644 --- a/codebox/views/admin/problem.moon +++ b/codebox/views/admin/problem.moon @@ -10,16 +10,27 @@ class AdminProblems extends html.Widget br '' for problem in *@problems - div class: 'option-line', -> - span "#{problem.name}" - div class: 'button-list', -> - a href: (@url_for 'admin.problem.edit', problem_name: problem.short_name), 'Edit' - a { 'data-problem-delete': problem.short_name }, 'Delete' - div class: 'box', -> - div class: 'highlight pad-12 split-lr', -> - span "Short name:" - span "#{problem.short_name}" - div class: 'highlight pad-12 split-lr', -> - span "Time limit:" - span "#{problem.time_limit}ms" + div class: 'w50 left pad-12', -> + div class: 'option-line', -> + span "#{problem.name}" + div class: 'button-list', -> + a href: (@url_for 'admin.problem.edit', problem_name: problem.short_name), 'Edit' + a { 'data-problem-delete': problem.short_name }, 'Delete' + + div class: 'box', -> + div class: 'highlight pad-12 split-lr', -> + span "Short name:" + span "#{problem.short_name}" + div class: 'highlight pad-12 split-lr', -> + span "Time limit:" + span "#{problem.time_limit}ms" + div class: 'highlight pad-12 split-lr', -> + span "Correct submissions:" + span "#{problem\get_correct_jobs![1].count}" + div class: 'highlight pad-12 split-lr', -> + span "Wrong submissions:" + span "#{problem\get_wrong_answer_jobs![1].count}" + div class: 'highlight pad-12 split-lr', -> + span "Timed out submissions:" + span "#{problem\get_timed_out_jobs![1].count}" diff --git a/codebox/views/admin/problem/edit.moon b/codebox/views/admin/problem/edit.moon index c03eb8e..611713c 100644 --- a/codebox/views/admin/problem/edit.moon +++ b/codebox/views/admin/problem/edit.moon @@ -6,29 +6,34 @@ class AdminProblemEdit extends html.Widget h1 "Editing '#{@problem.name}'" div class: 'content', -> - form method: 'POST', -> - input type: 'hidden', name: 'csrf_token', value: @csrf_token - input type: 'hidden', name: 'problem_id', value: @problem.id + div class: 'split-2', -> + div -> + h2 class: 'pad-l-12', 'Problem info' + form method: 'POST', -> + input type: 'hidden', name: 'csrf_token', value: @csrf_token + input type: 'hidden', name: 'problem_id', value: @problem.id - label for: 'name', 'Problem name' - input type: 'text', name: 'name', placeholder: 'Problem name', value: @problem.name, "" + label for: 'name', 'Problem name' + input type: 'text', name: 'name', placeholder: 'Problem name', value: @problem.name, "" - label for: 'name', 'Short name' - input type: 'text', name: 'short_name', placeholder: 'Short URL name', value: @problem.short_name, "" + label for: 'name', 'Short name' + input type: 'text', name: 'short_name', placeholder: 'Short URL name', value: @problem.short_name, "" - label for: 'name', 'Problem description' - textarea name: 'description', placeholder: 'Problem description', @problem.description + label for: 'name', 'Problem description' + textarea name: 'description', placeholder: 'Problem description', @problem.description - label for: 'name', 'Time limit' - input type: 'number', value: 500, name: 'time_limit', value: @problem.time_limit, "" + label for: 'name', 'Time limit' + input type: 'number', value: 500, name: 'time_limit', value: @problem.time_limit, "" - input type: 'submit', value: 'Update problem' + input type: 'submit', value: 'Update problem info' - h2 style: 'margin: 48px 0 16px; padding-left: 12px', 'Test cases' + div -> + h2 class: 'pad-l-12', 'Test cases' - div class: 'test-cases', -> - for test_case in *@test_cases - widget (TestCase test_case.testcase_order, test_case.uuid, test_case.input, test_case.output) + div class: 'test-cases', -> + for test_case in *@test_cases + widget (TestCase test_case.testcase_order, test_case.uuid, test_case.input, test_case.output) - button { 'data-new-tc': @problem.short_name }, 'New test case' - button { 'data-tc-save-all': true }, 'Save all' + button { 'data-new-tc': @problem.short_name }, 'New test case' + button { 'data-tc-save-all': true }, 'Save all' + \ No newline at end of file diff --git a/codebox/views/admin/submission.moon b/codebox/views/admin/submission.moon index 20b1d43..d45e585 100644 --- a/codebox/views/admin/submission.moon +++ b/codebox/views/admin/submission.moon @@ -7,22 +7,23 @@ class AdminSubmission extends html.Widget div class: 'content', -> for job in *@jobs - div class: 'option-line', -> - span "#{job.job_id}" - div class: 'button-list', -> - a href: (@url_for 'admin.submission.edit', {}, { submission_id: job.job_id }), 'View' + div class: 'w50 left pad-12', -> + div class: 'option-line', -> + span "#{job.job_id}" + div class: 'button-list', -> + a href: (@url_for 'admin.submission.edit', {}, { submission_id: job.job_id }), 'View' - div class: 'box', -> - div class: 'highlight pad-12 split-lr', -> - span 'Status:' - span Jobs.statuses\to_name job.status - div class: 'highlight pad-12 split-lr', -> - span 'Username:' - span job\get_user!.username - div class: 'highlight pad-12 split-lr', -> - span 'Problem:' - span job\get_problem!.short_name - div class: 'highlight pad-12 split-lr', -> - span 'Language:' - span job.lang + div class: 'box', -> + div class: 'highlight pad-12 split-lr', -> + span 'Status:' + span Jobs.statuses\to_name job.status + div class: 'highlight pad-12 split-lr', -> + span 'Username:' + span job\get_user!.username + div class: 'highlight pad-12 split-lr', -> + span 'Problem:' + span job\get_problem!.short_name + div class: 'highlight pad-12 split-lr', -> + span 'Language:' + span job.lang diff --git a/codebox/views/admin/user.moon b/codebox/views/admin/user.moon index f813587..ae68b2f 100644 --- a/codebox/views/admin/user.moon +++ b/codebox/views/admin/user.moon @@ -6,15 +6,16 @@ class AdminUsers extends html.Widget div class: 'content', -> for user in *@users - div class: 'option-line', -> - span "#{user.username}" - div class: 'button-list', -> - button { 'data-user-reset-password': user.username }, 'Reset password' - button { 'data-user-delete': user.username }, 'Delete' - div class: 'box', -> - div class: 'highlight pad-12 split-lr', -> - span "Nickname:" - span "#{user.nickname}" - div class: 'highlight pad-12 split-lr', -> - span "Email:" - span "#{user.email}" + div class: 'w50 left pad-12', -> + div class: 'option-line', -> + span "#{user.username}" + div class: 'button-list', -> + button { 'data-user-reset-password': user.username }, 'Reset password' + button { 'data-user-delete': user.username }, 'Delete' + div class: 'box', -> + div class: 'highlight pad-12 split-lr', -> + span "Nickname:" + span "#{user.nickname}" + div class: 'highlight pad-12 split-lr', -> + span "Email:" + span "#{user.email}" diff --git a/codebox/views/ssr/job_result.moon b/codebox/views/ssr/job_result.moon index bd32efc..4fa8a89 100644 --- a/codebox/views/ssr/job_result.moon +++ b/codebox/views/ssr/job_result.moon @@ -55,15 +55,15 @@ class JobResultView extends html.Widget div class: "highlight pad-12 pad-b-4 split-lr", -> div "Status:" div "#{@status_str}" + div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", -> + div "User:" + div "#{@username}" div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", -> div "Problem:" div "#{@problem}" div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", -> div "Time submittted:" div "#{@time_started}" - div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", -> - div "Bytes:" - div "N/A" div -> if @show_slash div class: 'header-line', ->