From 32a0190c82ca7e34720f93f0a0132bf489aba4d8 Mon Sep 17 00:00:00 2001 From: Achilles Rasquinha Date: Fri, 2 Feb 2018 14:52:15 +0530 Subject: [PATCH] removed dist bundle and added to gitignore --- .gitignore | 3 +- dist/css/style.css | 5773 -------------------------------------------- dist/js/bundle.js | 2773 --------------------- src/index.js | 4 + 4 files changed, 6 insertions(+), 8547 deletions(-) delete mode 100644 dist/css/style.css delete mode 100644 dist/js/bundle.js diff --git a/.gitignore b/.gitignore index 4dda704c..04fe98df 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ Thumbs.db test.db *.log .cache -/temp \ No newline at end of file +/temp +dist \ No newline at end of file diff --git a/dist/css/style.css b/dist/css/style.css deleted file mode 100644 index f79372f2..00000000 --- a/dist/css/style.css +++ /dev/null @@ -1,5773 +0,0 @@ -/*! - * Bootstrap v4.0.0 (https://getbootstrap.com) - * Copyright 2011-2018 The Bootstrap Authors - * Copyright 2011-2018 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -*, *::before, *::after { - -webkit-box-sizing: border-box; - box-sizing: border-box; } -html { - font-family: sans-serif; - line-height: 1.15; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - -ms-overflow-style: scrollbar; - -webkit-tap-highlight-color: transparent; } -@-ms-viewport { - width: device-width; } -article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section { - display: block; } -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #212529; - text-align: left; - background-color: #fff; } -[tabindex="-1"]:focus { - outline: 0 !important; } -hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; - height: 0; - overflow: visible; } -h1, h2, h3, h4, h5, h6 { - margin-top: 0; - margin-bottom: 0.5rem; } -p { - margin-top: 0; - margin-bottom: 1rem; } -abbr[title], abbr[data-original-title] { - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - cursor: help; - border-bottom: 0; } -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; } -ol, ul, dl { - margin-top: 0; - margin-bottom: 1rem; } -ol ol, ul ul, ol ul, ul ol { - margin-bottom: 0; } -dt { - font-weight: 700; } -dd { - margin-bottom: .5rem; - margin-left: 0; } -blockquote { - margin: 0 0 1rem; } -dfn { - font-style: italic; } -b, strong { - font-weight: bolder; } -small { - font-size: 80%; } -sub, sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; } -sub { - bottom: -.25em; } -sup { - top: -.5em; } -a { - color: #007bff; - text-decoration: none; - background-color: transparent; - -webkit-text-decoration-skip: objects; } -a:hover { - color: #0056b3; - text-decoration: underline; } -a:not([href]):not([tabindex]) { - color: inherit; - text-decoration: none; } -a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { - color: inherit; - text-decoration: none; } -a:not([href]):not([tabindex]):focus { - outline: 0; } -pre, code, kbd, samp { - font-family: monospace, monospace; - font-size: 1em; } -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; - -ms-overflow-style: scrollbar; } -figure { - margin: 0 0 1rem; } -img { - vertical-align: middle; - border-style: none; } -svg:not(:root) { - overflow: hidden; } -table { - border-collapse: collapse; } -caption { - padding-top: 0.75rem; - padding-bottom: 0.75rem; - color: #6c757d; - text-align: left; - caption-side: bottom; } -th { - text-align: inherit; } -label { - display: inline-block; - margin-bottom: .5rem; } -button { - border-radius: 0; } -button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; } -input, button, select, optgroup, textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; } -button, input { - overflow: visible; } -button, select { - text-transform: none; } -button, html [type="button"], [type="reset"], [type="submit"] { - -webkit-appearance: button; } -button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { - padding: 0; - border-style: none; } -input[type="radio"], input[type="checkbox"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; } -input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"] { - -webkit-appearance: listbox; } -textarea { - overflow: auto; - resize: vertical; } -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; } -legend { - display: block; - width: 100%; - max-width: 100%; - padding: 0; - margin-bottom: .5rem; - font-size: 1.5rem; - line-height: inherit; - color: inherit; - white-space: normal; } -progress { - vertical-align: baseline; } -[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { - height: auto; } -[type="search"] { - outline-offset: -2px; - -webkit-appearance: none; } -[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } -::-webkit-file-upload-button { - font: inherit; - -webkit-appearance: button; } -output { - display: inline-block; } -summary { - display: list-item; - cursor: pointer; } -template { - display: none; } -[hidden] { - display: none !important; } -h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { - margin-bottom: 0.5rem; - font-family: inherit; - font-weight: 500; - line-height: 1.2; - color: inherit; } -h1, .h1 { - font-size: 2.5rem; } -h2, .h2 { - font-size: 2rem; } -h3, .h3 { - font-size: 1.75rem; } -h4, .h4 { - font-size: 1.5rem; } -h5, .h5 { - font-size: 1.25rem; } -h6, .h6 { - font-size: 1rem; } -.lead { - font-size: 1.25rem; - font-weight: 300; } -.display-1 { - font-size: 6rem; - font-weight: 300; - line-height: 1.2; } -.display-2 { - font-size: 5.5rem; - font-weight: 300; - line-height: 1.2; } -.display-3 { - font-size: 4.5rem; - font-weight: 300; - line-height: 1.2; } -.display-4 { - font-size: 3.5rem; - font-weight: 300; - line-height: 1.2; } -hr { - margin-top: 1rem; - margin-bottom: 1rem; - border: 0; - border-top: 1px solid rgba(0, 0, 0, 0.1); } -small, .small { - font-size: 80%; - font-weight: 400; } -mark, .mark { - padding: 0.2em; - background-color: #fcf8e3; } -.list-unstyled { - padding-left: 0; - list-style: none; } -.list-inline { - padding-left: 0; - list-style: none; } -.list-inline-item { - display: inline-block; } -.list-inline-item:not(:last-child) { - margin-right: 0.5rem; } -.initialism { - font-size: 90%; - text-transform: uppercase; } -.blockquote { - margin-bottom: 1rem; - font-size: 1.25rem; } -.blockquote-footer { - display: block; - font-size: 80%; - color: #6c757d; } -.blockquote-footer::before { - content: "\2014 \00A0"; } -.img-fluid { - max-width: 100%; - height: auto; } -.img-thumbnail { - padding: 0.25rem; - background-color: #fff; - border: 1px solid #dee2e6; - border-radius: 0.25rem; - max-width: 100%; - height: auto; } -.figure { - display: inline-block; } -.figure-img { - margin-bottom: 0.5rem; - line-height: 1; } -.figure-caption { - font-size: 90%; - color: #6c757d; } -code, kbd, pre, samp { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } -code { - font-size: 87.5%; - color: #e83e8c; - word-break: break-word; } -a > code { - color: inherit; } -kbd { - padding: 0.2rem 0.4rem; - font-size: 87.5%; - color: #fff; - background-color: #212529; - border-radius: 0.2rem; } -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: 700; } -pre { - display: block; - font-size: 87.5%; - color: #212529; } -pre code { - font-size: inherit; - color: inherit; - word-break: normal; } -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; } -.container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; } -@media (min-width: 576px) { - .container { - max-width: 540px; } } -@media (min-width: 768px) { - .container { - max-width: 720px; } } -@media (min-width: 992px) { - .container { - max-width: 960px; } } -@media (min-width: 1200px) { - .container { - max-width: 1140px; } } -.container-fluid { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; } -.row { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; } -.no-gutters { - margin-right: 0; - margin-left: 0; } -.no-gutters > .col, .no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; } -.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, .col-xl-auto { - position: relative; - width: 100%; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; } -.col { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; } -.col-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: none; } -.col-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 8.33333%; - flex: 0 0 8.33333%; - max-width: 8.33333%; } -.col-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 16.66667%; - flex: 0 0 16.66667%; - max-width: 16.66667%; } -.col-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; } -.col-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 33.33333%; - flex: 0 0 33.33333%; - max-width: 33.33333%; } -.col-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 41.66667%; - flex: 0 0 41.66667%; - max-width: 41.66667%; } -.col-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; } -.col-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 58.33333%; - flex: 0 0 58.33333%; - max-width: 58.33333%; } -.col-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 66.66667%; - flex: 0 0 66.66667%; - max-width: 66.66667%; } -.col-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; } -.col-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 83.33333%; - flex: 0 0 83.33333%; - max-width: 83.33333%; } -.col-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 91.66667%; - flex: 0 0 91.66667%; - max-width: 91.66667%; } -.col-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; } -.order-first { - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; } -.order-last { - -webkit-box-ordinal-group: 14; - -ms-flex-order: 13; - order: 13; } -.order-0 { - -webkit-box-ordinal-group: 1; - -ms-flex-order: 0; - order: 0; } -.order-1 { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; } -.order-2 { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; } -.order-3 { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; } -.order-4 { - -webkit-box-ordinal-group: 5; - -ms-flex-order: 4; - order: 4; } -.order-5 { - -webkit-box-ordinal-group: 6; - -ms-flex-order: 5; - order: 5; } -.order-6 { - -webkit-box-ordinal-group: 7; - -ms-flex-order: 6; - order: 6; } -.order-7 { - -webkit-box-ordinal-group: 8; - -ms-flex-order: 7; - order: 7; } -.order-8 { - -webkit-box-ordinal-group: 9; - -ms-flex-order: 8; - order: 8; } -.order-9 { - -webkit-box-ordinal-group: 10; - -ms-flex-order: 9; - order: 9; } -.order-10 { - -webkit-box-ordinal-group: 11; - -ms-flex-order: 10; - order: 10; } -.order-11 { - -webkit-box-ordinal-group: 12; - -ms-flex-order: 11; - order: 11; } -.order-12 { - -webkit-box-ordinal-group: 13; - -ms-flex-order: 12; - order: 12; } -.offset-1 { - margin-left: 8.33333%; } -.offset-2 { - margin-left: 16.66667%; } -.offset-3 { - margin-left: 25%; } -.offset-4 { - margin-left: 33.33333%; } -.offset-5 { - margin-left: 41.66667%; } -.offset-6 { - margin-left: 50%; } -.offset-7 { - margin-left: 58.33333%; } -.offset-8 { - margin-left: 66.66667%; } -.offset-9 { - margin-left: 75%; } -.offset-10 { - margin-left: 83.33333%; } -.offset-11 { - margin-left: 91.66667%; } -@media (min-width: 576px) { - .col-sm { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; } - .col-sm-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: none; } - .col-sm-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 8.33333%; - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-sm-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 16.66667%; - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-sm-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; } - .col-sm-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 33.33333%; - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-sm-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 41.66667%; - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-sm-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; } - .col-sm-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 58.33333%; - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-sm-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 66.66667%; - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-sm-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; } - .col-sm-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 83.33333%; - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-sm-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 91.66667%; - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-sm-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; } - .order-sm-first { - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; } - .order-sm-last { - -webkit-box-ordinal-group: 14; - -ms-flex-order: 13; - order: 13; } - .order-sm-0 { - -webkit-box-ordinal-group: 1; - -ms-flex-order: 0; - order: 0; } - .order-sm-1 { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; } - .order-sm-2 { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; } - .order-sm-3 { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; } - .order-sm-4 { - -webkit-box-ordinal-group: 5; - -ms-flex-order: 4; - order: 4; } - .order-sm-5 { - -webkit-box-ordinal-group: 6; - -ms-flex-order: 5; - order: 5; } - .order-sm-6 { - -webkit-box-ordinal-group: 7; - -ms-flex-order: 6; - order: 6; } - .order-sm-7 { - -webkit-box-ordinal-group: 8; - -ms-flex-order: 7; - order: 7; } - .order-sm-8 { - -webkit-box-ordinal-group: 9; - -ms-flex-order: 8; - order: 8; } - .order-sm-9 { - -webkit-box-ordinal-group: 10; - -ms-flex-order: 9; - order: 9; } - .order-sm-10 { - -webkit-box-ordinal-group: 11; - -ms-flex-order: 10; - order: 10; } - .order-sm-11 { - -webkit-box-ordinal-group: 12; - -ms-flex-order: 11; - order: 11; } - .order-sm-12 { - -webkit-box-ordinal-group: 13; - -ms-flex-order: 12; - order: 12; } - .offset-sm-0 { - margin-left: 0; } - .offset-sm-1 { - margin-left: 8.33333%; } - .offset-sm-2 { - margin-left: 16.66667%; } - .offset-sm-3 { - margin-left: 25%; } - .offset-sm-4 { - margin-left: 33.33333%; } - .offset-sm-5 { - margin-left: 41.66667%; } - .offset-sm-6 { - margin-left: 50%; } - .offset-sm-7 { - margin-left: 58.33333%; } - .offset-sm-8 { - margin-left: 66.66667%; } - .offset-sm-9 { - margin-left: 75%; } - .offset-sm-10 { - margin-left: 83.33333%; } - .offset-sm-11 { - margin-left: 91.66667%; } } -@media (min-width: 768px) { - .col-md { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; } - .col-md-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: none; } - .col-md-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 8.33333%; - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-md-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 16.66667%; - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-md-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; } - .col-md-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 33.33333%; - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-md-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 41.66667%; - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-md-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; } - .col-md-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 58.33333%; - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-md-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 66.66667%; - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-md-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; } - .col-md-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 83.33333%; - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-md-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 91.66667%; - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-md-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; } - .order-md-first { - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; } - .order-md-last { - -webkit-box-ordinal-group: 14; - -ms-flex-order: 13; - order: 13; } - .order-md-0 { - -webkit-box-ordinal-group: 1; - -ms-flex-order: 0; - order: 0; } - .order-md-1 { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; } - .order-md-2 { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; } - .order-md-3 { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; } - .order-md-4 { - -webkit-box-ordinal-group: 5; - -ms-flex-order: 4; - order: 4; } - .order-md-5 { - -webkit-box-ordinal-group: 6; - -ms-flex-order: 5; - order: 5; } - .order-md-6 { - -webkit-box-ordinal-group: 7; - -ms-flex-order: 6; - order: 6; } - .order-md-7 { - -webkit-box-ordinal-group: 8; - -ms-flex-order: 7; - order: 7; } - .order-md-8 { - -webkit-box-ordinal-group: 9; - -ms-flex-order: 8; - order: 8; } - .order-md-9 { - -webkit-box-ordinal-group: 10; - -ms-flex-order: 9; - order: 9; } - .order-md-10 { - -webkit-box-ordinal-group: 11; - -ms-flex-order: 10; - order: 10; } - .order-md-11 { - -webkit-box-ordinal-group: 12; - -ms-flex-order: 11; - order: 11; } - .order-md-12 { - -webkit-box-ordinal-group: 13; - -ms-flex-order: 12; - order: 12; } - .offset-md-0 { - margin-left: 0; } - .offset-md-1 { - margin-left: 8.33333%; } - .offset-md-2 { - margin-left: 16.66667%; } - .offset-md-3 { - margin-left: 25%; } - .offset-md-4 { - margin-left: 33.33333%; } - .offset-md-5 { - margin-left: 41.66667%; } - .offset-md-6 { - margin-left: 50%; } - .offset-md-7 { - margin-left: 58.33333%; } - .offset-md-8 { - margin-left: 66.66667%; } - .offset-md-9 { - margin-left: 75%; } - .offset-md-10 { - margin-left: 83.33333%; } - .offset-md-11 { - margin-left: 91.66667%; } } -@media (min-width: 992px) { - .col-lg { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; } - .col-lg-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: none; } - .col-lg-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 8.33333%; - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-lg-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 16.66667%; - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-lg-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; } - .col-lg-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 33.33333%; - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-lg-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 41.66667%; - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-lg-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; } - .col-lg-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 58.33333%; - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-lg-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 66.66667%; - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-lg-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; } - .col-lg-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 83.33333%; - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-lg-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 91.66667%; - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-lg-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; } - .order-lg-first { - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; } - .order-lg-last { - -webkit-box-ordinal-group: 14; - -ms-flex-order: 13; - order: 13; } - .order-lg-0 { - -webkit-box-ordinal-group: 1; - -ms-flex-order: 0; - order: 0; } - .order-lg-1 { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; } - .order-lg-2 { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; } - .order-lg-3 { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; } - .order-lg-4 { - -webkit-box-ordinal-group: 5; - -ms-flex-order: 4; - order: 4; } - .order-lg-5 { - -webkit-box-ordinal-group: 6; - -ms-flex-order: 5; - order: 5; } - .order-lg-6 { - -webkit-box-ordinal-group: 7; - -ms-flex-order: 6; - order: 6; } - .order-lg-7 { - -webkit-box-ordinal-group: 8; - -ms-flex-order: 7; - order: 7; } - .order-lg-8 { - -webkit-box-ordinal-group: 9; - -ms-flex-order: 8; - order: 8; } - .order-lg-9 { - -webkit-box-ordinal-group: 10; - -ms-flex-order: 9; - order: 9; } - .order-lg-10 { - -webkit-box-ordinal-group: 11; - -ms-flex-order: 10; - order: 10; } - .order-lg-11 { - -webkit-box-ordinal-group: 12; - -ms-flex-order: 11; - order: 11; } - .order-lg-12 { - -webkit-box-ordinal-group: 13; - -ms-flex-order: 12; - order: 12; } - .offset-lg-0 { - margin-left: 0; } - .offset-lg-1 { - margin-left: 8.33333%; } - .offset-lg-2 { - margin-left: 16.66667%; } - .offset-lg-3 { - margin-left: 25%; } - .offset-lg-4 { - margin-left: 33.33333%; } - .offset-lg-5 { - margin-left: 41.66667%; } - .offset-lg-6 { - margin-left: 50%; } - .offset-lg-7 { - margin-left: 58.33333%; } - .offset-lg-8 { - margin-left: 66.66667%; } - .offset-lg-9 { - margin-left: 75%; } - .offset-lg-10 { - margin-left: 83.33333%; } - .offset-lg-11 { - margin-left: 91.66667%; } } -@media (min-width: 1200px) { - .col-xl { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; } - .col-xl-auto { - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: none; } - .col-xl-1 { - -webkit-box-flex: 0; - -ms-flex: 0 0 8.33333%; - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-xl-2 { - -webkit-box-flex: 0; - -ms-flex: 0 0 16.66667%; - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-xl-3 { - -webkit-box-flex: 0; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; } - .col-xl-4 { - -webkit-box-flex: 0; - -ms-flex: 0 0 33.33333%; - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-xl-5 { - -webkit-box-flex: 0; - -ms-flex: 0 0 41.66667%; - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-xl-6 { - -webkit-box-flex: 0; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; } - .col-xl-7 { - -webkit-box-flex: 0; - -ms-flex: 0 0 58.33333%; - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-xl-8 { - -webkit-box-flex: 0; - -ms-flex: 0 0 66.66667%; - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-xl-9 { - -webkit-box-flex: 0; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; } - .col-xl-10 { - -webkit-box-flex: 0; - -ms-flex: 0 0 83.33333%; - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-xl-11 { - -webkit-box-flex: 0; - -ms-flex: 0 0 91.66667%; - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-xl-12 { - -webkit-box-flex: 0; - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; } - .order-xl-first { - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; } - .order-xl-last { - -webkit-box-ordinal-group: 14; - -ms-flex-order: 13; - order: 13; } - .order-xl-0 { - -webkit-box-ordinal-group: 1; - -ms-flex-order: 0; - order: 0; } - .order-xl-1 { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; } - .order-xl-2 { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; } - .order-xl-3 { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; } - .order-xl-4 { - -webkit-box-ordinal-group: 5; - -ms-flex-order: 4; - order: 4; } - .order-xl-5 { - -webkit-box-ordinal-group: 6; - -ms-flex-order: 5; - order: 5; } - .order-xl-6 { - -webkit-box-ordinal-group: 7; - -ms-flex-order: 6; - order: 6; } - .order-xl-7 { - -webkit-box-ordinal-group: 8; - -ms-flex-order: 7; - order: 7; } - .order-xl-8 { - -webkit-box-ordinal-group: 9; - -ms-flex-order: 8; - order: 8; } - .order-xl-9 { - -webkit-box-ordinal-group: 10; - -ms-flex-order: 9; - order: 9; } - .order-xl-10 { - -webkit-box-ordinal-group: 11; - -ms-flex-order: 10; - order: 10; } - .order-xl-11 { - -webkit-box-ordinal-group: 12; - -ms-flex-order: 11; - order: 11; } - .order-xl-12 { - -webkit-box-ordinal-group: 13; - -ms-flex-order: 12; - order: 12; } - .offset-xl-0 { - margin-left: 0; } - .offset-xl-1 { - margin-left: 8.33333%; } - .offset-xl-2 { - margin-left: 16.66667%; } - .offset-xl-3 { - margin-left: 25%; } - .offset-xl-4 { - margin-left: 33.33333%; } - .offset-xl-5 { - margin-left: 41.66667%; } - .offset-xl-6 { - margin-left: 50%; } - .offset-xl-7 { - margin-left: 58.33333%; } - .offset-xl-8 { - margin-left: 66.66667%; } - .offset-xl-9 { - margin-left: 75%; } - .offset-xl-10 { - margin-left: 83.33333%; } - .offset-xl-11 { - margin-left: 91.66667%; } } -.table { - width: 100%; - max-width: 100%; - margin-bottom: 1rem; - background-color: transparent; } -.table th, .table td { - padding: 0.75rem; - vertical-align: top; - border-top: 1px solid #dee2e6; } -.table thead th { - vertical-align: bottom; - border-bottom: 2px solid #dee2e6; } -.table tbody + tbody { - border-top: 2px solid #dee2e6; } -.table .table { - background-color: #fff; } -.table-sm th, .table-sm td { - padding: 0.3rem; } -.table-bordered { - border: 1px solid #dee2e6; } -.table-bordered th, .table-bordered td { - border: 1px solid #dee2e6; } -.table-bordered thead th, .table-bordered thead td { - border-bottom-width: 2px; } -.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(0, 0, 0, 0.05); } -.table-hover tbody tr:hover { - background-color: rgba(0, 0, 0, 0.075); } -.table-primary, .table-primary > th, .table-primary > td { - background-color: #b8daff; } -.table-hover .table-primary:hover { - background-color: #9fcdff; } -.table-hover .table-primary:hover > td, .table-hover .table-primary:hover > th { - background-color: #9fcdff; } -.table-secondary, .table-secondary > th, .table-secondary > td { - background-color: #d6d8db; } -.table-hover .table-secondary:hover { - background-color: #c8cbcf; } -.table-hover .table-secondary:hover > td, .table-hover .table-secondary:hover > th { - background-color: #c8cbcf; } -.table-success, .table-success > th, .table-success > td { - background-color: #c3e6cb; } -.table-hover .table-success:hover { - background-color: #b1dfbb; } -.table-hover .table-success:hover > td, .table-hover .table-success:hover > th { - background-color: #b1dfbb; } -.table-info, .table-info > th, .table-info > td { - background-color: #bee5eb; } -.table-hover .table-info:hover { - background-color: #abdde5; } -.table-hover .table-info:hover > td, .table-hover .table-info:hover > th { - background-color: #abdde5; } -.table-warning, .table-warning > th, .table-warning > td { - background-color: #ffeeba; } -.table-hover .table-warning:hover { - background-color: #ffe8a1; } -.table-hover .table-warning:hover > td, .table-hover .table-warning:hover > th { - background-color: #ffe8a1; } -.table-danger, .table-danger > th, .table-danger > td { - background-color: #f5c6cb; } -.table-hover .table-danger:hover { - background-color: #f1b0b7; } -.table-hover .table-danger:hover > td, .table-hover .table-danger:hover > th { - background-color: #f1b0b7; } -.table-light, .table-light > th, .table-light > td { - background-color: #fdfdfe; } -.table-hover .table-light:hover { - background-color: #ececf6; } -.table-hover .table-light:hover > td, .table-hover .table-light:hover > th { - background-color: #ececf6; } -.table-dark, .table-dark > th, .table-dark > td { - background-color: #c6c8ca; } -.table-hover .table-dark:hover { - background-color: #b9bbbe; } -.table-hover .table-dark:hover > td, .table-hover .table-dark:hover > th { - background-color: #b9bbbe; } -.table-active, .table-active > th, .table-active > td { - background-color: rgba(0, 0, 0, 0.075); } -.table-hover .table-active:hover { - background-color: rgba(0, 0, 0, 0.075); } -.table-hover .table-active:hover > td, .table-hover .table-active:hover > th { - background-color: rgba(0, 0, 0, 0.075); } -.table .thead-dark th { - color: #fff; - background-color: #212529; - border-color: #32383e; } -.table .thead-light th { - color: #495057; - background-color: #e9ecef; - border-color: #dee2e6; } -.table-dark { - color: #fff; - background-color: #212529; } -.table-dark th, .table-dark td, .table-dark thead th { - border-color: #32383e; } -.table-dark.table-bordered { - border: 0; } -.table-dark.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(255, 255, 255, 0.05); } -.table-dark.table-hover tbody tr:hover { - background-color: rgba(255, 255, 255, 0.075); } -@media (max-width: 575.98px) { - .table-responsive-sm { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; } - .table-responsive-sm > .table-bordered { - border: 0; } } -@media (max-width: 767.98px) { - .table-responsive-md { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; } - .table-responsive-md > .table-bordered { - border: 0; } } -@media (max-width: 991.98px) { - .table-responsive-lg { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; } - .table-responsive-lg > .table-bordered { - border: 0; } } -@media (max-width: 1199.98px) { - .table-responsive-xl { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; } - .table-responsive-xl > .table-bordered { - border: 0; } } -.table-responsive { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; } -.table-responsive > .table-bordered { - border: 0; } -.form-control { - display: block; - width: 100%; - padding: 0.375rem 0.75rem; - font-size: 1rem; - line-height: 1.5; - color: #495057; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ced4da; - border-radius: 0.25rem; - -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; - transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } -.form-control::-ms-expand { - background-color: transparent; - border: 0; } -.form-control:focus { - color: #495057; - background-color: #fff; - border-color: #80bdff; - outline: 0; - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } -.form-control::-webkit-input-placeholder { - color: #6c757d; - opacity: 1; } -.form-control:-ms-input-placeholder { - color: #6c757d; - opacity: 1; } -.form-control::-ms-input-placeholder { - color: #6c757d; - opacity: 1; } -.form-control::placeholder { - color: #6c757d; - opacity: 1; } -.form-control:disabled, .form-control[readonly] { - background-color: #e9ecef; - opacity: 1; } -select.form-control:not([size]):not([multiple]) { - height: calc(2.25rem + 2px); } -select.form-control:focus::-ms-value { - color: #495057; - background-color: #fff; } -.form-control-file, .form-control-range { - display: block; - width: 100%; } -.col-form-label { - padding-top: calc(0.375rem + 1px); - padding-bottom: calc(0.375rem + 1px); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5; } -.col-form-label-lg { - padding-top: calc(0.5rem + 1px); - padding-bottom: calc(0.5rem + 1px); - font-size: 1.25rem; - line-height: 1.5; } -.col-form-label-sm { - padding-top: calc(0.25rem + 1px); - padding-bottom: calc(0.25rem + 1px); - font-size: 0.875rem; - line-height: 1.5; } -.form-control-plaintext { - display: block; - width: 100%; - padding-top: 0.375rem; - padding-bottom: 0.375rem; - margin-bottom: 0; - line-height: 1.5; - background-color: transparent; - border: solid transparent; - border-width: 1px 0; } -.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control, .input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text, .input-group-sm > .input-group-append > .form-control-plaintext.input-group-text, .input-group-sm > .input-group-prepend > .form-control-plaintext.btn, .input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control, .input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text, .input-group-lg > .input-group-append > .form-control-plaintext.input-group-text, .input-group-lg > .input-group-prepend > .form-control-plaintext.btn, .input-group-lg > .input-group-append > .form-control-plaintext.btn { - padding-right: 0; - padding-left: 0; } -.form-control-sm, .input-group-sm > .form-control, .input-group-sm > .input-group-prepend > .input-group-text, .input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, .input-group-sm > .input-group-append > .btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; } -select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), .input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), .input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]), .input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]), .input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) { - height: calc(1.8125rem + 2px); } -.form-control-lg, .input-group-lg > .form-control, .input-group-lg > .input-group-prepend > .input-group-text, .input-group-lg > .input-group-append > .input-group-text, .input-group-lg > .input-group-prepend > .btn, .input-group-lg > .input-group-append > .btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 0.3rem; } -select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]), .input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]), .input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]), .input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]), .input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) { - height: calc(2.875rem + 2px); } -.form-group { - margin-bottom: 1rem; } -.form-text { - display: block; - margin-top: 0.25rem; } -.form-row { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin-right: -5px; - margin-left: -5px; } -.form-row > .col, .form-row > [class*="col-"] { - padding-right: 5px; - padding-left: 5px; } -.form-check { - position: relative; - display: block; - padding-left: 1.25rem; } -.form-check-input { - position: absolute; - margin-top: 0.3rem; - margin-left: -1.25rem; } -.form-check-input:disabled ~ .form-check-label { - color: #6c757d; } -.form-check-label { - margin-bottom: 0; } -.form-check-inline { - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - padding-left: 0; - margin-right: 0.75rem; } -.form-check-inline .form-check-input { - position: static; - margin-top: 0; - margin-right: 0.3125rem; - margin-left: 0; } -.valid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 80%; - color: #28a745; } -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: .5rem; - margin-top: .1rem; - font-size: .875rem; - line-height: 1; - color: #fff; - background-color: rgba(40, 167, 69, 0.8); - border-radius: .2rem; } -.was-validated .form-control:valid, .form-control.is-valid, .was-validated -.custom-select:valid, .custom-select.is-valid { - border-color: #28a745; } -.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated - .custom-select:valid:focus, .custom-select.is-valid:focus { - border-color: #28a745; - -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); } -.was-validated .form-control:valid ~ .valid-feedback, .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback, .form-control.is-valid ~ .valid-tooltip, .was-validated - .custom-select:valid ~ .valid-feedback, .was-validated - .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback, .custom-select.is-valid ~ .valid-tooltip { - display: block; } -.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { - color: #28a745; } -.was-validated .form-check-input:valid ~ .valid-feedback, .was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, .form-check-input.is-valid ~ .valid-tooltip { - display: block; } -.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { - color: #28a745; } -.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { - background-color: #71dd8a; } -.was-validated .custom-control-input:valid ~ .valid-feedback, .was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback, .custom-control-input.is-valid ~ .valid-tooltip { - display: block; } -.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { - background-color: #34ce57; } -.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { - -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); } -.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { - border-color: #28a745; } -.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before { - border-color: inherit; } -.was-validated .custom-file-input:valid ~ .valid-feedback, .was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback, .custom-file-input.is-valid ~ .valid-tooltip { - display: block; } -.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { - -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); } -.invalid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 80%; - color: #dc3545; } -.invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: .5rem; - margin-top: .1rem; - font-size: .875rem; - line-height: 1; - color: #fff; - background-color: rgba(220, 53, 69, 0.8); - border-radius: .2rem; } -.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated -.custom-select:invalid, .custom-select.is-invalid { - border-color: #dc3545; } -.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated - .custom-select:invalid:focus, .custom-select.is-invalid:focus { - border-color: #dc3545; - -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); } -.was-validated .form-control:invalid ~ .invalid-feedback, .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback, .form-control.is-invalid ~ .invalid-tooltip, .was-validated - .custom-select:invalid ~ .invalid-feedback, .was-validated - .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback, .custom-select.is-invalid ~ .invalid-tooltip { - display: block; } -.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { - color: #dc3545; } -.was-validated .form-check-input:invalid ~ .invalid-feedback, .was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, .form-check-input.is-invalid ~ .invalid-tooltip { - display: block; } -.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { - color: #dc3545; } -.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { - background-color: #efa2a9; } -.was-validated .custom-control-input:invalid ~ .invalid-feedback, .was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback, .custom-control-input.is-invalid ~ .invalid-tooltip { - display: block; } -.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { - background-color: #e4606d; } -.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { - -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); } -.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { - border-color: #dc3545; } -.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before { - border-color: inherit; } -.was-validated .custom-file-input:invalid ~ .invalid-feedback, .was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback, .custom-file-input.is-invalid ~ .invalid-tooltip { - display: block; } -.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { - -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); } -.form-inline { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row wrap; - flex-flow: row wrap; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; } -.form-inline .form-check { - width: 100%; } -@media (min-width: 576px) { - .form-inline label { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin-bottom: 0; } - .form-inline .form-group { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 0; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row wrap; - flex-flow: row wrap; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - margin-bottom: 0; } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; } - .form-inline .form-control-plaintext { - display: inline-block; } - .form-inline .input-group { - width: auto; } - .form-inline .form-check { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - width: auto; - padding-left: 0; } - .form-inline .form-check-input { - position: relative; - margin-top: 0; - margin-right: 0.25rem; - margin-left: 0; } - .form-inline .custom-control { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .form-inline .custom-control-label { - margin-bottom: 0; } } -.btn { - display: inline-block; - font-weight: 400; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid transparent; - padding: 0.375rem 0.75rem; - font-size: 1rem; - line-height: 1.5; - border-radius: 0.25rem; - -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } -.btn:hover, .btn:focus { - text-decoration: none; } -.btn:focus, .btn.focus { - outline: 0; - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } -.btn.disabled, .btn:disabled { - opacity: 0.65; } -.btn:not(:disabled):not(.disabled) { - cursor: pointer; } -.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active { - background-image: none; } -a.btn.disabled, fieldset:disabled a.btn { - pointer-events: none; } -.btn-primary { - color: #fff; - background-color: #007bff; - border-color: #007bff; } -.btn-primary:hover { - color: #fff; - background-color: #0069d9; - border-color: #0062cc; } -.btn-primary:focus, .btn-primary.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); } -.btn-primary.disabled, .btn-primary:disabled { - color: #fff; - background-color: #007bff; - border-color: #007bff; } -.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle { - color: #fff; - background-color: #0062cc; - border-color: #005cbf; } -.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); } -.btn-secondary { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; } -.btn-secondary:hover { - color: #fff; - background-color: #5a6268; - border-color: #545b62; } -.btn-secondary:focus, .btn-secondary.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); } -.btn-secondary.disabled, .btn-secondary:disabled { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; } -.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle { - color: #fff; - background-color: #545b62; - border-color: #4e555b; } -.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); } -.btn-success { - color: #fff; - background-color: #28a745; - border-color: #28a745; } -.btn-success:hover { - color: #fff; - background-color: #218838; - border-color: #1e7e34; } -.btn-success:focus, .btn-success.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); } -.btn-success.disabled, .btn-success:disabled { - color: #fff; - background-color: #28a745; - border-color: #28a745; } -.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle { - color: #fff; - background-color: #1e7e34; - border-color: #1c7430; } -.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); } -.btn-info { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; } -.btn-info:hover { - color: #fff; - background-color: #138496; - border-color: #117a8b; } -.btn-info:focus, .btn-info.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); } -.btn-info.disabled, .btn-info:disabled { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; } -.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle { - color: #fff; - background-color: #117a8b; - border-color: #10707f; } -.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); } -.btn-warning { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; } -.btn-warning:hover { - color: #212529; - background-color: #e0a800; - border-color: #d39e00; } -.btn-warning:focus, .btn-warning.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); } -.btn-warning.disabled, .btn-warning:disabled { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; } -.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle { - color: #212529; - background-color: #d39e00; - border-color: #c69500; } -.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); } -.btn-danger { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; } -.btn-danger:hover { - color: #fff; - background-color: #c82333; - border-color: #bd2130; } -.btn-danger:focus, .btn-danger.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); } -.btn-danger.disabled, .btn-danger:disabled { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; } -.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #bd2130; - border-color: #b21f2d; } -.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); } -.btn-light { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; } -.btn-light:hover { - color: #212529; - background-color: #e2e6ea; - border-color: #dae0e5; } -.btn-light:focus, .btn-light.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); } -.btn-light.disabled, .btn-light:disabled { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; } -.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle { - color: #212529; - background-color: #dae0e5; - border-color: #d3d9df; } -.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); } -.btn-dark { - color: #fff; - background-color: #343a40; - border-color: #343a40; } -.btn-dark:hover { - color: #fff; - background-color: #23272b; - border-color: #1d2124; } -.btn-dark:focus, .btn-dark.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } -.btn-dark.disabled, .btn-dark:disabled { - color: #fff; - background-color: #343a40; - border-color: #343a40; } -.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle { - color: #fff; - background-color: #1d2124; - border-color: #171a1d; } -.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } -.btn-outline-primary { - color: #007bff; - background-color: transparent; - background-image: none; - border-color: #007bff; } -.btn-outline-primary:hover { - color: #fff; - background-color: #007bff; - border-color: #007bff; } -.btn-outline-primary:focus, .btn-outline-primary.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); } -.btn-outline-primary.disabled, .btn-outline-primary:disabled { - color: #007bff; - background-color: transparent; } -.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle { - color: #fff; - background-color: #007bff; - border-color: #007bff; } -.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); } -.btn-outline-secondary { - color: #6c757d; - background-color: transparent; - background-image: none; - border-color: #6c757d; } -.btn-outline-secondary:hover { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; } -.btn-outline-secondary:focus, .btn-outline-secondary.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); } -.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { - color: #6c757d; - background-color: transparent; } -.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; } -.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); } -.btn-outline-success { - color: #28a745; - background-color: transparent; - background-image: none; - border-color: #28a745; } -.btn-outline-success:hover { - color: #fff; - background-color: #28a745; - border-color: #28a745; } -.btn-outline-success:focus, .btn-outline-success.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); } -.btn-outline-success.disabled, .btn-outline-success:disabled { - color: #28a745; - background-color: transparent; } -.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle { - color: #fff; - background-color: #28a745; - border-color: #28a745; } -.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); } -.btn-outline-info { - color: #17a2b8; - background-color: transparent; - background-image: none; - border-color: #17a2b8; } -.btn-outline-info:hover { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; } -.btn-outline-info:focus, .btn-outline-info.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); } -.btn-outline-info.disabled, .btn-outline-info:disabled { - color: #17a2b8; - background-color: transparent; } -.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; } -.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); } -.btn-outline-warning { - color: #ffc107; - background-color: transparent; - background-image: none; - border-color: #ffc107; } -.btn-outline-warning:hover { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; } -.btn-outline-warning:focus, .btn-outline-warning.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); } -.btn-outline-warning.disabled, .btn-outline-warning:disabled { - color: #ffc107; - background-color: transparent; } -.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; } -.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); } -.btn-outline-danger { - color: #dc3545; - background-color: transparent; - background-image: none; - border-color: #dc3545; } -.btn-outline-danger:hover { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; } -.btn-outline-danger:focus, .btn-outline-danger.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); } -.btn-outline-danger.disabled, .btn-outline-danger:disabled { - color: #dc3545; - background-color: transparent; } -.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; } -.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); } -.btn-outline-light { - color: #f8f9fa; - background-color: transparent; - background-image: none; - border-color: #f8f9fa; } -.btn-outline-light:hover { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; } -.btn-outline-light:focus, .btn-outline-light.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); } -.btn-outline-light.disabled, .btn-outline-light:disabled { - color: #f8f9fa; - background-color: transparent; } -.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; } -.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); } -.btn-outline-dark { - color: #343a40; - background-color: transparent; - background-image: none; - border-color: #343a40; } -.btn-outline-dark:hover { - color: #fff; - background-color: #343a40; - border-color: #343a40; } -.btn-outline-dark:focus, .btn-outline-dark.focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } -.btn-outline-dark.disabled, .btn-outline-dark:disabled { - color: #343a40; - background-color: transparent; } -.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle { - color: #fff; - background-color: #343a40; - border-color: #343a40; } -.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus { - -webkit-box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } -.btn-link { - font-weight: 400; - color: #007bff; - background-color: transparent; } -.btn-link:hover { - color: #0056b3; - text-decoration: underline; - background-color: transparent; - border-color: transparent; } -.btn-link:focus, .btn-link.focus { - text-decoration: underline; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } -.btn-link:disabled, .btn-link.disabled { - color: #6c757d; } -.btn-lg, .btn-group-lg > .btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 0.3rem; } -.btn-sm, .btn-group-sm > .btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; } -.btn-block { - display: block; - width: 100%; } -.btn-block + .btn-block { - margin-top: 0.5rem; } -input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { - width: 100%; } -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; } -.fade.show { - opacity: 1; } -.collapse { - display: none; } -.collapse.show { - display: block; } -tr.collapse.show { - display: table-row; } -tbody.collapse.show { - display: table-row-group; } -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - transition: height 0.35s ease; } -.dropup, .dropdown { - position: relative; } -.dropdown-toggle::after { - display: inline-block; - width: 0; - height: 0; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; } -.dropdown-toggle:empty::after { - margin-left: 0; } -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 10rem; - padding: 0.5rem 0; - margin: 0.125rem 0 0; - font-size: 1rem; - color: #212529; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 0.25rem; } -.dropup .dropdown-menu { - margin-top: 0; - margin-bottom: 0.125rem; } -.dropup .dropdown-toggle::after { - display: inline-block; - width: 0; - height: 0; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; } -.dropup .dropdown-toggle:empty::after { - margin-left: 0; } -.dropright .dropdown-menu { - margin-top: 0; - margin-left: 0.125rem; } -.dropright .dropdown-toggle::after { - display: inline-block; - width: 0; - height: 0; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-bottom: 0.3em solid transparent; - border-left: 0.3em solid; } -.dropright .dropdown-toggle:empty::after { - margin-left: 0; } -.dropright .dropdown-toggle::after { - vertical-align: 0; } -.dropleft .dropdown-menu { - margin-top: 0; - margin-right: 0.125rem; } -.dropleft .dropdown-toggle::after { - display: inline-block; - width: 0; - height: 0; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; } -.dropleft .dropdown-toggle::after { - display: none; } -.dropleft .dropdown-toggle::before { - display: inline-block; - width: 0; - height: 0; - margin-right: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0.3em solid; - border-bottom: 0.3em solid transparent; } -.dropleft .dropdown-toggle:empty::after { - margin-left: 0; } -.dropleft .dropdown-toggle::before { - vertical-align: 0; } -.dropdown-divider { - height: 0; - margin: 0.5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; } -.dropdown-item { - display: block; - width: 100%; - padding: 0.25rem 1.5rem; - clear: both; - font-weight: 400; - color: #212529; - text-align: inherit; - white-space: nowrap; - background-color: transparent; - border: 0; } -.dropdown-item:hover, .dropdown-item:focus { - color: #16181b; - text-decoration: none; - background-color: #f8f9fa; } -.dropdown-item.active, .dropdown-item:active { - color: #fff; - text-decoration: none; - background-color: #007bff; } -.dropdown-item.disabled, .dropdown-item:disabled { - color: #6c757d; - background-color: transparent; } -.dropdown-menu.show { - display: block; } -.dropdown-header { - display: block; - padding: 0.5rem 1.5rem; - margin-bottom: 0; - font-size: 0.875rem; - color: #6c757d; - white-space: nowrap; } -.btn-group, .btn-group-vertical { - position: relative; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - vertical-align: middle; } -.btn-group > .btn, .btn-group-vertical > .btn { - position: relative; - -webkit-box-flex: 0; - -ms-flex: 0 1 auto; - flex: 0 1 auto; } -.btn-group > .btn:hover, .btn-group-vertical > .btn:hover { - z-index: 1; } -.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn.active { - z-index: 1; } -.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group, .btn-group-vertical .btn + .btn, .btn-group-vertical .btn + .btn-group, .btn-group-vertical .btn-group + .btn, .btn-group-vertical .btn-group + .btn-group { - margin-left: -1px; } -.btn-toolbar { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } -.btn-toolbar .input-group { - width: auto; } -.btn-group > .btn:first-child { - margin-left: 0; } -.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .btn-group > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } -.btn-group > .btn:not(:first-child), .btn-group > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } -.dropdown-toggle-split { - padding-right: 0.5625rem; - padding-left: 0.5625rem; } -.dropdown-toggle-split::after { - margin-left: 0; } -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { - padding-right: 0.375rem; - padding-left: 0.375rem; } -.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { - padding-right: 0.75rem; - padding-left: 0.75rem; } -.btn-group-vertical { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } -.btn-group-vertical .btn, .btn-group-vertical .btn-group { - width: 100%; } -.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; } -.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), .btn-group-vertical > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } -.btn-group-vertical > .btn:not(:first-child), .btn-group-vertical > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-top-right-radius: 0; } -.btn-group-toggle > .btn, .btn-group-toggle > .btn-group > .btn { - margin-bottom: 0; } -.btn-group-toggle > .btn input[type="radio"], .btn-group-toggle > .btn input[type="checkbox"], .btn-group-toggle > .btn-group > .btn input[type="radio"], .btn-group-toggle > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; } -.input-group { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - width: 100%; } -.input-group > .form-control, .input-group > .custom-select, .input-group > .custom-file { - position: relative; - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - width: 1%; - margin-bottom: 0; } -.input-group > .form-control:focus, .input-group > .custom-select:focus, .input-group > .custom-file:focus { - z-index: 3; } -.input-group > .form-control + .form-control, .input-group > .form-control + .custom-select, .input-group > .form-control + .custom-file, .input-group > .custom-select + .form-control, .input-group > .custom-select + .custom-select, .input-group > .custom-select + .custom-file, .input-group > .custom-file + .form-control, .input-group > .custom-file + .custom-select, .input-group > .custom-file + .custom-file { - margin-left: -1px; } -.input-group > .form-control:not(:last-child), .input-group > .custom-select:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } -.input-group > .form-control:not(:first-child), .input-group > .custom-select:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } -.input-group > .custom-file { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; } -.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::before { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } -.input-group > .custom-file:not(:first-child) .custom-file-label, .input-group > .custom-file:not(:first-child) .custom-file-label::before { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } -.input-group-prepend, .input-group-append { - display: -webkit-box; - display: -ms-flexbox; - display: flex; } -.input-group-prepend .btn, .input-group-append .btn { - position: relative; - z-index: 2; } -.input-group-prepend .btn + .btn, .input-group-prepend .btn + .input-group-text, .input-group-prepend .input-group-text + .input-group-text, .input-group-prepend .input-group-text + .btn, .input-group-append .btn + .btn, .input-group-append .btn + .input-group-text, .input-group-append .input-group-text + .input-group-text, .input-group-append .input-group-text + .btn { - margin-left: -1px; } -.input-group-prepend { - margin-right: -1px; } -.input-group-append { - margin-left: -1px; } -.input-group-text { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - padding: 0.375rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - text-align: center; - white-space: nowrap; - background-color: #e9ecef; - border: 1px solid #ced4da; - border-radius: 0.25rem; } -.input-group-text input[type="radio"], .input-group-text input[type="checkbox"] { - margin-top: 0; } -.input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .input-group-text, .input-group > .input-group-append:not(:last-child) > .btn, .input-group > .input-group-append:not(:last-child) > .input-group-text, .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } -.input-group > .input-group-append > .btn, .input-group > .input-group-append > .input-group-text, .input-group > .input-group-prepend:not(:first-child) > .btn, .input-group > .input-group-prepend:not(:first-child) > .input-group-text, .input-group > .input-group-prepend:first-child > .btn:not(:first-child), .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } -.custom-control { - position: relative; - display: block; - min-height: 1.5rem; - padding-left: 1.5rem; } -.custom-control-inline { - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - margin-right: 1rem; } -.custom-control-input { - position: absolute; - z-index: -1; - opacity: 0; } -.custom-control-input:checked ~ .custom-control-label::before { - color: #fff; - background-color: #007bff; } -.custom-control-input:focus ~ .custom-control-label::before { - -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } -.custom-control-input:active ~ .custom-control-label::before { - color: #fff; - background-color: #b3d7ff; } -.custom-control-input:disabled ~ .custom-control-label { - color: #6c757d; } -.custom-control-input:disabled ~ .custom-control-label::before { - background-color: #e9ecef; } -.custom-control-label { - margin-bottom: 0; } -.custom-control-label::before { - position: absolute; - top: 0.25rem; - left: 0; - display: block; - width: 1rem; - height: 1rem; - pointer-events: none; - content: ""; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: #dee2e6; } -.custom-control-label::after { - position: absolute; - top: 0.25rem; - left: 0; - display: block; - width: 1rem; - height: 1rem; - content: ""; - background-repeat: no-repeat; - background-position: center center; - background-size: 50% 50%; } -.custom-checkbox .custom-control-label::before { - border-radius: 0.25rem; } -.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { - background-color: #007bff; } -.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); } -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { - background-color: #007bff; } -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); } -.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(0, 123, 255, 0.5); } -.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { - background-color: rgba(0, 123, 255, 0.5); } -.custom-radio .custom-control-label::before { - border-radius: 50%; } -.custom-radio .custom-control-input:checked ~ .custom-control-label::before { - background-color: #007bff; } -.custom-radio .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); } -.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(0, 123, 255, 0.5); } -.custom-select { - display: inline-block; - width: 100%; - height: calc(2.25rem + 2px); - padding: 0.375rem 1.75rem 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - vertical-align: middle; - background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; - background-size: 8px 10px; - border: 1px solid #ced4da; - border-radius: 0.25rem; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; } -.custom-select:focus { - border-color: #80bdff; - outline: 0; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); } -.custom-select:focus::-ms-value { - color: #495057; - background-color: #fff; } -.custom-select[multiple], .custom-select[size]:not([size="1"]) { - height: auto; - padding-right: 0.75rem; - background-image: none; } -.custom-select:disabled { - color: #6c757d; - background-color: #e9ecef; } -.custom-select::-ms-expand { - opacity: 0; } -.custom-select-sm { - height: calc(1.8125rem + 2px); - padding-top: 0.375rem; - padding-bottom: 0.375rem; - font-size: 75%; } -.custom-select-lg { - height: calc(2.875rem + 2px); - padding-top: 0.375rem; - padding-bottom: 0.375rem; - font-size: 125%; } -.custom-file { - position: relative; - display: inline-block; - width: 100%; - height: calc(2.25rem + 2px); - margin-bottom: 0; } -.custom-file-input { - position: relative; - z-index: 2; - width: 100%; - height: calc(2.25rem + 2px); - margin: 0; - opacity: 0; } -.custom-file-input:focus ~ .custom-file-control { - border-color: #80bdff; - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } -.custom-file-input:focus ~ .custom-file-control::before { - border-color: #80bdff; } -.custom-file-input:lang(en) ~ .custom-file-label::after { - content: "Browse"; } -.custom-file-label { - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 1; - height: calc(2.25rem + 2px); - padding: 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - background-color: #fff; - border: 1px solid #ced4da; - border-radius: 0.25rem; } -.custom-file-label::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - z-index: 3; - display: block; - height: calc(calc(2.25rem + 2px) - 1px * 2); - padding: 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - content: "Browse"; - background-color: #e9ecef; - border-left: 1px solid #ced4da; - border-radius: 0 0.25rem 0.25rem 0; } -.nav { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; } -.nav-link { - display: block; - padding: 0.5rem 1rem; } -.nav-link:hover, .nav-link:focus { - text-decoration: none; } -.nav-link.disabled { - color: #6c757d; } -.nav-tabs { - border-bottom: 1px solid #dee2e6; } -.nav-tabs .nav-item { - margin-bottom: -1px; } -.nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } -.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e9ecef #e9ecef #dee2e6; } -.nav-tabs .nav-link.disabled { - color: #6c757d; - background-color: transparent; - border-color: transparent; } -.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { - color: #495057; - background-color: #fff; - border-color: #dee2e6 #dee2e6 #fff; } -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; } -.nav-pills .nav-link { - border-radius: 0.25rem; } -.nav-pills .nav-link.active, .nav-pills .show > .nav-link { - color: #fff; - background-color: #007bff; } -.nav-fill .nav-item { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - text-align: center; } -.nav-justified .nav-item { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - text-align: center; } -.tab-content > .tab-pane { - display: none; } -.tab-content > .active { - display: block; } -.navbar { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - padding: 0.5rem 1rem; } -.navbar > .container, .navbar > .container-fluid { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; } -.navbar-brand { - display: inline-block; - padding-top: 0.3125rem; - padding-bottom: 0.3125rem; - margin-right: 1rem; - font-size: 1.25rem; - line-height: inherit; - white-space: nowrap; } -.navbar-brand:hover, .navbar-brand:focus { - text-decoration: none; } -.navbar-nav { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none; } -.navbar-nav .nav-link { - padding-right: 0; - padding-left: 0; } -.navbar-nav .dropdown-menu { - position: static; - float: none; } -.navbar-text { - display: inline-block; - padding-top: 0.5rem; - padding-bottom: 0.5rem; } -.navbar-collapse { - -ms-flex-preferred-size: 100%; - flex-basis: 100%; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; } -.navbar-toggler { - padding: 0.25rem 0.75rem; - font-size: 1.25rem; - line-height: 1; - background-color: transparent; - border: 1px solid transparent; - border-radius: 0.25rem; } -.navbar-toggler:hover, .navbar-toggler:focus { - text-decoration: none; } -.navbar-toggler:not(:disabled):not(.disabled) { - cursor: pointer; } -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - content: ""; - background: no-repeat center center; - background-size: 100% 100%; } -@media (max-width: 575.98px) { - .navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid { - padding-right: 0; - padding-left: 0; } } -@media (min-width: 576px) { - .navbar-expand-sm { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } - .navbar-expand-sm .navbar-nav { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; } - .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-sm .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; } - .navbar-expand-sm .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; } - .navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; } - .navbar-expand-sm .navbar-collapse { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; } - .navbar-expand-sm .navbar-toggler { - display: none; } - .navbar-expand-sm .dropup .dropdown-menu { - top: auto; - bottom: 100%; } } -@media (max-width: 767.98px) { - .navbar-expand-md > .container, .navbar-expand-md > .container-fluid { - padding-right: 0; - padding-left: 0; } } -@media (min-width: 768px) { - .navbar-expand-md { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } - .navbar-expand-md .navbar-nav { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; } - .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-md .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; } - .navbar-expand-md .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; } - .navbar-expand-md > .container, .navbar-expand-md > .container-fluid { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; } - .navbar-expand-md .navbar-collapse { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; } - .navbar-expand-md .navbar-toggler { - display: none; } - .navbar-expand-md .dropup .dropdown-menu { - top: auto; - bottom: 100%; } } -@media (max-width: 991.98px) { - .navbar-expand-lg > .container, .navbar-expand-lg > .container-fluid { - padding-right: 0; - padding-left: 0; } } -@media (min-width: 992px) { - .navbar-expand-lg { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } - .navbar-expand-lg .navbar-nav { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; } - .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-lg .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; } - .navbar-expand-lg .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; } - .navbar-expand-lg > .container, .navbar-expand-lg > .container-fluid { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; } - .navbar-expand-lg .navbar-collapse { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; } - .navbar-expand-lg .navbar-toggler { - display: none; } - .navbar-expand-lg .dropup .dropdown-menu { - top: auto; - bottom: 100%; } } -@media (max-width: 1199.98px) { - .navbar-expand-xl > .container, .navbar-expand-xl > .container-fluid { - padding-right: 0; - padding-left: 0; } } -@media (min-width: 1200px) { - .navbar-expand-xl { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } - .navbar-expand-xl .navbar-nav { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; } - .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-xl .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; } - .navbar-expand-xl .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; } - .navbar-expand-xl > .container, .navbar-expand-xl > .container-fluid { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; } - .navbar-expand-xl .navbar-collapse { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; } - .navbar-expand-xl .navbar-toggler { - display: none; } - .navbar-expand-xl .dropup .dropdown-menu { - top: auto; - bottom: 100%; } } -.navbar-expand { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } -.navbar-expand > .container, .navbar-expand > .container-fluid { - padding-right: 0; - padding-left: 0; } -.navbar-expand .navbar-nav { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; } -.navbar-expand .navbar-nav .dropdown-menu { - position: absolute; } -.navbar-expand .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; } -.navbar-expand .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; } -.navbar-expand > .container, .navbar-expand > .container-fluid { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; } -.navbar-expand .navbar-collapse { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; } -.navbar-expand .navbar-toggler { - display: none; } -.navbar-expand .dropup .dropdown-menu { - top: auto; - bottom: 100%; } -.navbar-light .navbar-brand { - color: rgba(0, 0, 0, 0.9); } -.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { - color: rgba(0, 0, 0, 0.9); } -.navbar-light .navbar-nav .nav-link { - color: rgba(0, 0, 0, 0.5); } -.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { - color: rgba(0, 0, 0, 0.7); } -.navbar-light .navbar-nav .nav-link.disabled { - color: rgba(0, 0, 0, 0.3); } -.navbar-light .navbar-nav .show > .nav-link, .navbar-light .navbar-nav .active > .nav-link, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .nav-link.active { - color: rgba(0, 0, 0, 0.9); } -.navbar-light .navbar-toggler { - color: rgba(0, 0, 0, 0.5); - border-color: rgba(0, 0, 0, 0.1); } -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); } -.navbar-light .navbar-text { - color: rgba(0, 0, 0, 0.5); } -.navbar-light .navbar-text a { - color: rgba(0, 0, 0, 0.9); } -.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { - color: rgba(0, 0, 0, 0.9); } -.navbar-dark .navbar-brand { - color: #fff; } -.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { - color: #fff; } -.navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.5); } -.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { - color: rgba(255, 255, 255, 0.75); } -.navbar-dark .navbar-nav .nav-link.disabled { - color: rgba(255, 255, 255, 0.25); } -.navbar-dark .navbar-nav .show > .nav-link, .navbar-dark .navbar-nav .active > .nav-link, .navbar-dark .navbar-nav .nav-link.show, .navbar-dark .navbar-nav .nav-link.active { - color: #fff; } -.navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.5); - border-color: rgba(255, 255, 255, 0.1); } -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); } -.navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.5); } -.navbar-dark .navbar-text a { - color: #fff; } -.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { - color: #fff; } -.card { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - border: 1px solid rgba(0, 0, 0, 0.125); - border-radius: 0.25rem; } -.card > hr { - margin-right: 0; - margin-left: 0; } -.card > .list-group:first-child .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } -.card > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } -.card-body { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - padding: 1.25rem; } -.card-title { - margin-bottom: 0.75rem; } -.card-subtitle { - margin-top: -0.375rem; - margin-bottom: 0; } -.card-text:last-child { - margin-bottom: 0; } -.card-link:hover { - text-decoration: none; } -.card-link + .card-link { - margin-left: 1.25rem; } -.card-header { - padding: 0.75rem 1.25rem; - margin-bottom: 0; - background-color: rgba(0, 0, 0, 0.03); - border-bottom: 1px solid rgba(0, 0, 0, 0.125); } -.card-header:first-child { - border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; } -.card-header + .list-group .list-group-item:first-child { - border-top: 0; } -.card-footer { - padding: 0.75rem 1.25rem; - background-color: rgba(0, 0, 0, 0.03); - border-top: 1px solid rgba(0, 0, 0, 0.125); } -.card-footer:last-child { - border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); } -.card-header-tabs { - margin-right: -0.625rem; - margin-bottom: -0.75rem; - margin-left: -0.625rem; - border-bottom: 0; } -.card-header-pills { - margin-right: -0.625rem; - margin-left: -0.625rem; } -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 1.25rem; } -.card-img { - width: 100%; - border-radius: calc(0.25rem - 1px); } -.card-img-top { - width: 100%; - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); } -.card-img-bottom { - width: 100%; - border-bottom-right-radius: calc(0.25rem - 1px); - border-bottom-left-radius: calc(0.25rem - 1px); } -.card-deck { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; } -.card-deck .card { - margin-bottom: 15px; } -@media (min-width: 576px) { - .card-deck { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row wrap; - flex-flow: row wrap; - margin-right: -15px; - margin-left: -15px; } - .card-deck .card { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - margin-right: 15px; - margin-bottom: 0; - margin-left: 15px; } } -.card-group { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; } -.card-group > .card { - margin-bottom: 15px; } -@media (min-width: 576px) { - .card-group { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-flow: row wrap; - flex-flow: row wrap; } - .card-group > .card { - -webkit-box-flex: 1; - -ms-flex: 1 0 0%; - flex: 1 0 0%; - margin-bottom: 0; } - .card-group > .card + .card { - margin-left: 0; - border-left: 0; } - .card-group > .card:first-child { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .card-group > .card:first-child .card-img-top, .card-group > .card:first-child .card-header { - border-top-right-radius: 0; } - .card-group > .card:first-child .card-img-bottom, .card-group > .card:first-child .card-footer { - border-bottom-right-radius: 0; } - .card-group > .card:last-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .card-group > .card:last-child .card-img-top, .card-group > .card:last-child .card-header { - border-top-left-radius: 0; } - .card-group > .card:last-child .card-img-bottom, .card-group > .card:last-child .card-footer { - border-bottom-left-radius: 0; } - .card-group > .card:only-child { - border-radius: 0.25rem; } - .card-group > .card:only-child .card-img-top, .card-group > .card:only-child .card-header { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } - .card-group > .card:only-child .card-img-bottom, .card-group > .card:only-child .card-footer { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } - .card-group > .card:not(:first-child):not(:last-child):not(:only-child) { - border-radius: 0; } - .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top, .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom, .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header, .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer { - border-radius: 0; } } -.card-columns .card { - margin-bottom: 0.75rem; } -@media (min-width: 576px) { - .card-columns { - -webkit-column-count: 3; - column-count: 3; - -webkit-column-gap: 1.25rem; - column-gap: 1.25rem; } - .card-columns .card { - display: inline-block; - width: 100%; } } -.breadcrumb { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - padding: 0.75rem 1rem; - margin-bottom: 1rem; - list-style: none; - background-color: #e9ecef; - border-radius: 0.25rem; } -.breadcrumb-item + .breadcrumb-item::before { - display: inline-block; - padding-right: 0.5rem; - padding-left: 0.5rem; - color: #6c757d; - content: "/"; } -.breadcrumb-item + .breadcrumb-item:hover::before { - text-decoration: underline; } -.breadcrumb-item + .breadcrumb-item:hover::before { - text-decoration: none; } -.breadcrumb-item.active { - color: #6c757d; } -.pagination { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - padding-left: 0; - list-style: none; - border-radius: 0.25rem; } -.page-link { - position: relative; - display: block; - padding: 0.5rem 0.75rem; - margin-left: -1px; - line-height: 1.25; - color: #007bff; - background-color: #fff; - border: 1px solid #dee2e6; } -.page-link:hover { - color: #0056b3; - text-decoration: none; - background-color: #e9ecef; - border-color: #dee2e6; } -.page-link:focus { - z-index: 2; - outline: 0; - -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } -.page-link:not(:disabled):not(.disabled) { - cursor: pointer; } -.page-item:first-child .page-link { - margin-left: 0; - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } -.page-item:last-child .page-link { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; } -.page-item.active .page-link { - z-index: 1; - color: #fff; - background-color: #007bff; - border-color: #007bff; } -.page-item.disabled .page-link { - color: #6c757d; - pointer-events: none; - cursor: auto; - background-color: #fff; - border-color: #dee2e6; } -.pagination-lg .page-link { - padding: 0.75rem 1.5rem; - font-size: 1.25rem; - line-height: 1.5; } -.pagination-lg .page-item:first-child .page-link { - border-top-left-radius: 0.3rem; - border-bottom-left-radius: 0.3rem; } -.pagination-lg .page-item:last-child .page-link { - border-top-right-radius: 0.3rem; - border-bottom-right-radius: 0.3rem; } -.pagination-sm .page-link { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; } -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: 0.2rem; - border-bottom-left-radius: 0.2rem; } -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: 0.2rem; - border-bottom-right-radius: 0.2rem; } -.badge { - display: inline-block; - padding: 0.25em 0.4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25rem; } -.badge:empty { - display: none; } -.btn .badge { - position: relative; - top: -1px; } -.badge-pill { - padding-right: 0.6em; - padding-left: 0.6em; - border-radius: 10rem; } -.badge-primary { - color: #fff; - background-color: #007bff; } -.badge-primary[href]:hover, .badge-primary[href]:focus { - color: #fff; - text-decoration: none; - background-color: #0062cc; } -.badge-secondary { - color: #fff; - background-color: #6c757d; } -.badge-secondary[href]:hover, .badge-secondary[href]:focus { - color: #fff; - text-decoration: none; - background-color: #545b62; } -.badge-success { - color: #fff; - background-color: #28a745; } -.badge-success[href]:hover, .badge-success[href]:focus { - color: #fff; - text-decoration: none; - background-color: #1e7e34; } -.badge-info { - color: #fff; - background-color: #17a2b8; } -.badge-info[href]:hover, .badge-info[href]:focus { - color: #fff; - text-decoration: none; - background-color: #117a8b; } -.badge-warning { - color: #212529; - background-color: #ffc107; } -.badge-warning[href]:hover, .badge-warning[href]:focus { - color: #212529; - text-decoration: none; - background-color: #d39e00; } -.badge-danger { - color: #fff; - background-color: #dc3545; } -.badge-danger[href]:hover, .badge-danger[href]:focus { - color: #fff; - text-decoration: none; - background-color: #bd2130; } -.badge-light { - color: #212529; - background-color: #f8f9fa; } -.badge-light[href]:hover, .badge-light[href]:focus { - color: #212529; - text-decoration: none; - background-color: #dae0e5; } -.badge-dark { - color: #fff; - background-color: #343a40; } -.badge-dark[href]:hover, .badge-dark[href]:focus { - color: #fff; - text-decoration: none; - background-color: #1d2124; } -.jumbotron { - padding: 2rem 1rem; - margin-bottom: 2rem; - background-color: #e9ecef; - border-radius: 0.3rem; } -@media (min-width: 576px) { - .jumbotron { - padding: 4rem 2rem; } } -.jumbotron-fluid { - padding-right: 0; - padding-left: 0; - border-radius: 0; } -.alert { - position: relative; - padding: 0.75rem 1.25rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: 0.25rem; } -.alert-heading { - color: inherit; } -.alert-link { - font-weight: 700; } -.alert-dismissible { - padding-right: 4rem; } -.alert-dismissible .close { - position: absolute; - top: 0; - right: 0; - padding: 0.75rem 1.25rem; - color: inherit; } -.alert-primary { - color: #004085; - background-color: #cce5ff; - border-color: #b8daff; } -.alert-primary hr { - border-top-color: #9fcdff; } -.alert-primary .alert-link { - color: #002752; } -.alert-secondary { - color: #383d41; - background-color: #e2e3e5; - border-color: #d6d8db; } -.alert-secondary hr { - border-top-color: #c8cbcf; } -.alert-secondary .alert-link { - color: #202326; } -.alert-success { - color: #155724; - background-color: #d4edda; - border-color: #c3e6cb; } -.alert-success hr { - border-top-color: #b1dfbb; } -.alert-success .alert-link { - color: #0b2e13; } -.alert-info { - color: #0c5460; - background-color: #d1ecf1; - border-color: #bee5eb; } -.alert-info hr { - border-top-color: #abdde5; } -.alert-info .alert-link { - color: #062c33; } -.alert-warning { - color: #856404; - background-color: #fff3cd; - border-color: #ffeeba; } -.alert-warning hr { - border-top-color: #ffe8a1; } -.alert-warning .alert-link { - color: #533f03; } -.alert-danger { - color: #721c24; - background-color: #f8d7da; - border-color: #f5c6cb; } -.alert-danger hr { - border-top-color: #f1b0b7; } -.alert-danger .alert-link { - color: #491217; } -.alert-light { - color: #818182; - background-color: #fefefe; - border-color: #fdfdfe; } -.alert-light hr { - border-top-color: #ececf6; } -.alert-light .alert-link { - color: #686868; } -.alert-dark { - color: #1b1e21; - background-color: #d6d8d9; - border-color: #c6c8ca; } -.alert-dark hr { - border-top-color: #b9bbbe; } -.alert-dark .alert-link { - color: #040505; } -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 1rem 0; } - to { - background-position: 0 0; } } -@keyframes progress-bar-stripes { - from { - background-position: 1rem 0; } - to { - background-position: 0 0; } } -.progress { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - height: 1rem; - overflow: hidden; - font-size: 0.75rem; - background-color: #e9ecef; - border-radius: 0.25rem; } -.progress-bar { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - color: #fff; - text-align: center; - background-color: #007bff; - -webkit-transition: width 0.6s ease; - transition: width 0.6s ease; } -.progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 1rem 1rem; } -.progress-bar-animated { - -webkit-animation: progress-bar-stripes 1s linear infinite; - animation: progress-bar-stripes 1s linear infinite; } -.media { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; } -.media-body { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; } -.list-group { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; } -.list-group-item-action { - width: 100%; - color: #495057; - text-align: inherit; } -.list-group-item-action:hover, .list-group-item-action:focus { - color: #495057; - text-decoration: none; - background-color: #f8f9fa; } -.list-group-item-action:active { - color: #212529; - background-color: #e9ecef; } -.list-group-item { - position: relative; - display: block; - padding: 0.75rem 1.25rem; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.125); } -.list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } -.list-group-item:hover, .list-group-item:focus { - z-index: 1; - text-decoration: none; } -.list-group-item.disabled, .list-group-item:disabled { - color: #6c757d; - background-color: #fff; } -.list-group-item.active { - z-index: 2; - color: #fff; - background-color: #007bff; - border-color: #007bff; } -.list-group-flush .list-group-item { - border-right: 0; - border-left: 0; - border-radius: 0; } -.list-group-flush:first-child .list-group-item:first-child { - border-top: 0; } -.list-group-flush:last-child .list-group-item:last-child { - border-bottom: 0; } -.list-group-item-primary { - color: #004085; - background-color: #b8daff; } -.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { - color: #004085; - background-color: #9fcdff; } -.list-group-item-primary.list-group-item-action.active { - color: #fff; - background-color: #004085; - border-color: #004085; } -.list-group-item-secondary { - color: #383d41; - background-color: #d6d8db; } -.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { - color: #383d41; - background-color: #c8cbcf; } -.list-group-item-secondary.list-group-item-action.active { - color: #fff; - background-color: #383d41; - border-color: #383d41; } -.list-group-item-success { - color: #155724; - background-color: #c3e6cb; } -.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { - color: #155724; - background-color: #b1dfbb; } -.list-group-item-success.list-group-item-action.active { - color: #fff; - background-color: #155724; - border-color: #155724; } -.list-group-item-info { - color: #0c5460; - background-color: #bee5eb; } -.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { - color: #0c5460; - background-color: #abdde5; } -.list-group-item-info.list-group-item-action.active { - color: #fff; - background-color: #0c5460; - border-color: #0c5460; } -.list-group-item-warning { - color: #856404; - background-color: #ffeeba; } -.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { - color: #856404; - background-color: #ffe8a1; } -.list-group-item-warning.list-group-item-action.active { - color: #fff; - background-color: #856404; - border-color: #856404; } -.list-group-item-danger { - color: #721c24; - background-color: #f5c6cb; } -.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { - color: #721c24; - background-color: #f1b0b7; } -.list-group-item-danger.list-group-item-action.active { - color: #fff; - background-color: #721c24; - border-color: #721c24; } -.list-group-item-light { - color: #818182; - background-color: #fdfdfe; } -.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { - color: #818182; - background-color: #ececf6; } -.list-group-item-light.list-group-item-action.active { - color: #fff; - background-color: #818182; - border-color: #818182; } -.list-group-item-dark { - color: #1b1e21; - background-color: #c6c8ca; } -.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { - color: #1b1e21; - background-color: #b9bbbe; } -.list-group-item-dark.list-group-item-action.active { - color: #fff; - background-color: #1b1e21; - border-color: #1b1e21; } -.close { - float: right; - font-size: 1.5rem; - font-weight: 700; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: .5; } -.close:hover, .close:focus { - color: #000; - text-decoration: none; - opacity: .75; } -.close:not(:disabled):not(.disabled) { - cursor: pointer; } -button.close { - padding: 0; - background-color: transparent; - border: 0; - -webkit-appearance: none; } -.modal-open { - overflow: hidden; } -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: hidden; - outline: 0; } -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; } -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; } -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform 0.3s ease-out; - transition: -webkit-transform 0.3s ease-out; - transition: transform 0.3s ease-out; - transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; - -webkit-transform: translate(0, -25%); - transform: translate(0, -25%); } -.modal.show .modal-dialog { - -webkit-transform: translate(0, 0); - transform: translate(0, 0); } -.modal-dialog-centered { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - min-height: calc(100% - (0.5rem * 2)); } -.modal-content { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; - outline: 0; } -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; } -.modal-backdrop.fade { - opacity: 0; } -.modal-backdrop.show { - opacity: 0.5; } -.modal-header { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - padding: 1rem; - border-bottom: 1px solid #e9ecef; - border-top-left-radius: 0.3rem; - border-top-right-radius: 0.3rem; } -.modal-header .close { - padding: 1rem; - margin: -1rem -1rem -1rem auto; } -.modal-title { - margin-bottom: 0; - line-height: 1.5; } -.modal-body { - position: relative; - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - padding: 1rem; } -.modal-footer { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - padding: 1rem; - border-top: 1px solid #e9ecef; } -.modal-footer > :not(:first-child) { - margin-left: .25rem; } -.modal-footer > :not(:last-child) { - margin-right: .25rem; } -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; } -@media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; } - .modal-dialog-centered { - min-height: calc(100% - (1.75rem * 2)); } - .modal-sm { - max-width: 300px; } } -@media (min-width: 992px) { - .modal-lg { - max-width: 800px; } } -.tooltip { - position: absolute; - z-index: 1070; - display: block; - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - opacity: 0; } -.tooltip.show { - opacity: 0.9; } -.tooltip .arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; } -.tooltip .arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; } -.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { - padding: 0.4rem 0; } -.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { - bottom: 0; } -.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { - top: 0; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000; } -.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { - padding: 0 0.4rem; } -.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; } -.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { - right: 0; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000; } -.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { - padding: 0.4rem 0; } -.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { - top: 0; } -.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { - bottom: 0; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000; } -.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { - padding: 0 0.4rem; } -.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; } -.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { - left: 0; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000; } -.tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 0.25rem; } -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; } -.popover .arrow { - position: absolute; - display: block; - width: 1rem; - height: 0.5rem; - margin: 0 0.3rem; } -.popover .arrow::before, .popover .arrow::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; } -.bs-popover-top, .bs-popover-auto[x-placement^="top"] { - margin-bottom: 0.5rem; } -.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow { - bottom: calc((0.5rem + 1px) * -1); } -.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before, .bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after { - border-width: 0.5rem 0.5rem 0; } -.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before { - bottom: 0; - border-top-color: rgba(0, 0, 0, 0.25); } -.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after { - bottom: 1px; - border-top-color: #fff; } -.bs-popover-right, .bs-popover-auto[x-placement^="right"] { - margin-left: 0.5rem; } -.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow { - left: calc((0.5rem + 1px) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; } -.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before, .bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after { - border-width: 0.5rem 0.5rem 0.5rem 0; } -.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before { - left: 0; - border-right-color: rgba(0, 0, 0, 0.25); } -.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after { - left: 1px; - border-right-color: #fff; } -.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { - margin-top: 0.5rem; } -.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow { - top: calc((0.5rem + 1px) * -1); } -.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before, .bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after { - border-width: 0 0.5rem 0.5rem 0.5rem; } -.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before { - top: 0; - border-bottom-color: rgba(0, 0, 0, 0.25); } -.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after { - top: 1px; - border-bottom-color: #fff; } -.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 1rem; - margin-left: -0.5rem; - content: ""; - border-bottom: 1px solid #f7f7f7; } -.bs-popover-left, .bs-popover-auto[x-placement^="left"] { - margin-right: 0.5rem; } -.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow { - right: calc((0.5rem + 1px) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; } -.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before, .bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after { - border-width: 0.5rem 0 0.5rem 0.5rem; } -.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before { - right: 0; - border-left-color: rgba(0, 0, 0, 0.25); } -.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after { - right: 1px; - border-left-color: #fff; } -.popover-header { - padding: 0.5rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - color: inherit; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); } -.popover-header:empty { - display: none; } -.popover-body { - padding: 0.5rem 0.75rem; - color: #212529; } -.carousel { - position: relative; } -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; } -.carousel-item { - position: relative; - display: none; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - width: 100%; - -webkit-transition: -webkit-transform 0.6s ease; - transition: -webkit-transform 0.6s ease; - transition: transform 0.6s ease; - transition: transform 0.6s ease, -webkit-transform 0.6s ease; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - perspective: 1000px; } -.carousel-item.active, .carousel-item-next, .carousel-item-prev { - display: block; } -.carousel-item-next, .carousel-item-prev { - position: absolute; - top: 0; } -.carousel-item-next.carousel-item-left, .carousel-item-prev.carousel-item-right { - -webkit-transform: translateX(0); - transform: translateX(0); } -@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { - .carousel-item-next.carousel-item-left, .carousel-item-prev.carousel-item-right { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } } -.carousel-item-next, .active.carousel-item-right { - -webkit-transform: translateX(100%); - transform: translateX(100%); } -@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { - .carousel-item-next, .active.carousel-item-right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } } -.carousel-item-prev, .active.carousel-item-left { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); } -@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) { - .carousel-item-prev, .active.carousel-item-left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); } } -.carousel-control-prev, .carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - width: 15%; - color: #fff; - text-align: center; - opacity: 0.5; } -.carousel-control-prev:hover, .carousel-control-prev:focus, .carousel-control-next:hover, .carousel-control-next:focus { - color: #fff; - text-decoration: none; - outline: 0; - opacity: .9; } -.carousel-control-prev { - left: 0; } -.carousel-control-next { - right: 0; } -.carousel-control-prev-icon, .carousel-control-next-icon { - display: inline-block; - width: 20px; - height: 20px; - background: transparent no-repeat center center; - background-size: 100% 100%; } -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); } -.carousel-control-next-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); } -.carousel-indicators { - position: absolute; - right: 0; - bottom: 10px; - left: 0; - z-index: 15; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding-left: 0; - margin-right: 15%; - margin-left: 15%; - list-style: none; } -.carousel-indicators li { - position: relative; - -webkit-box-flex: 0; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - width: 30px; - height: 3px; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - background-color: rgba(255, 255, 255, 0.5); } -.carousel-indicators li::before { - position: absolute; - top: -10px; - left: 0; - display: inline-block; - width: 100%; - height: 10px; - content: ""; } -.carousel-indicators li::after { - position: absolute; - bottom: -10px; - left: 0; - display: inline-block; - width: 100%; - height: 10px; - content: ""; } -.carousel-indicators .active { - background-color: #fff; } -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; } -.align-baseline { - vertical-align: baseline !important; } -.align-top { - vertical-align: top !important; } -.align-middle { - vertical-align: middle !important; } -.align-bottom { - vertical-align: bottom !important; } -.align-text-bottom { - vertical-align: text-bottom !important; } -.align-text-top { - vertical-align: text-top !important; } -.bg-primary { - background-color: #007bff !important; } -a.bg-primary:hover, a.bg-primary:focus, button.bg-primary:hover, button.bg-primary:focus { - background-color: #0062cc !important; } -.bg-secondary { - background-color: #6c757d !important; } -a.bg-secondary:hover, a.bg-secondary:focus, button.bg-secondary:hover, button.bg-secondary:focus { - background-color: #545b62 !important; } -.bg-success { - background-color: #28a745 !important; } -a.bg-success:hover, a.bg-success:focus, button.bg-success:hover, button.bg-success:focus { - background-color: #1e7e34 !important; } -.bg-info { - background-color: #17a2b8 !important; } -a.bg-info:hover, a.bg-info:focus, button.bg-info:hover, button.bg-info:focus { - background-color: #117a8b !important; } -.bg-warning { - background-color: #ffc107 !important; } -a.bg-warning:hover, a.bg-warning:focus, button.bg-warning:hover, button.bg-warning:focus { - background-color: #d39e00 !important; } -.bg-danger { - background-color: #dc3545 !important; } -a.bg-danger:hover, a.bg-danger:focus, button.bg-danger:hover, button.bg-danger:focus { - background-color: #bd2130 !important; } -.bg-light { - background-color: #f8f9fa !important; } -a.bg-light:hover, a.bg-light:focus, button.bg-light:hover, button.bg-light:focus { - background-color: #dae0e5 !important; } -.bg-dark { - background-color: #343a40 !important; } -a.bg-dark:hover, a.bg-dark:focus, button.bg-dark:hover, button.bg-dark:focus { - background-color: #1d2124 !important; } -.bg-white { - background-color: #fff !important; } -.bg-transparent { - background-color: transparent !important; } -.border { - border: 1px solid #dee2e6 !important; } -.border-top { - border-top: 1px solid #dee2e6 !important; } -.border-right { - border-right: 1px solid #dee2e6 !important; } -.border-bottom { - border-bottom: 1px solid #dee2e6 !important; } -.border-left { - border-left: 1px solid #dee2e6 !important; } -.border-0 { - border: 0 !important; } -.border-top-0 { - border-top: 0 !important; } -.border-right-0 { - border-right: 0 !important; } -.border-bottom-0 { - border-bottom: 0 !important; } -.border-left-0 { - border-left: 0 !important; } -.border-primary { - border-color: #007bff !important; } -.border-secondary { - border-color: #6c757d !important; } -.border-success { - border-color: #28a745 !important; } -.border-info { - border-color: #17a2b8 !important; } -.border-warning { - border-color: #ffc107 !important; } -.border-danger { - border-color: #dc3545 !important; } -.border-light { - border-color: #f8f9fa !important; } -.border-dark { - border-color: #343a40 !important; } -.border-white { - border-color: #fff !important; } -.rounded { - border-radius: 0.25rem !important; } -.rounded-top { - border-top-left-radius: 0.25rem !important; - border-top-right-radius: 0.25rem !important; } -.rounded-right { - border-top-right-radius: 0.25rem !important; - border-bottom-right-radius: 0.25rem !important; } -.rounded-bottom { - border-bottom-right-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; } -.rounded-left { - border-top-left-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; } -.rounded-circle { - border-radius: 50% !important; } -.rounded-0 { - border-radius: 0 !important; } -.clearfix::after { - display: block; - clear: both; - content: ""; } -.d-none { - display: none !important; } -.d-inline { - display: inline !important; } -.d-inline-block { - display: inline-block !important; } -.d-block { - display: block !important; } -.d-table { - display: table !important; } -.d-table-row { - display: table-row !important; } -.d-table-cell { - display: table-cell !important; } -.d-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } -.d-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } -@media (min-width: 576px) { - .d-sm-none { - display: none !important; } - .d-sm-inline { - display: inline !important; } - .d-sm-inline-block { - display: inline-block !important; } - .d-sm-block { - display: block !important; } - .d-sm-table { - display: table !important; } - .d-sm-table-row { - display: table-row !important; } - .d-sm-table-cell { - display: table-cell !important; } - .d-sm-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } - .d-sm-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } -@media (min-width: 768px) { - .d-md-none { - display: none !important; } - .d-md-inline { - display: inline !important; } - .d-md-inline-block { - display: inline-block !important; } - .d-md-block { - display: block !important; } - .d-md-table { - display: table !important; } - .d-md-table-row { - display: table-row !important; } - .d-md-table-cell { - display: table-cell !important; } - .d-md-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } - .d-md-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } -@media (min-width: 992px) { - .d-lg-none { - display: none !important; } - .d-lg-inline { - display: inline !important; } - .d-lg-inline-block { - display: inline-block !important; } - .d-lg-block { - display: block !important; } - .d-lg-table { - display: table !important; } - .d-lg-table-row { - display: table-row !important; } - .d-lg-table-cell { - display: table-cell !important; } - .d-lg-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } - .d-lg-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } -@media (min-width: 1200px) { - .d-xl-none { - display: none !important; } - .d-xl-inline { - display: inline !important; } - .d-xl-inline-block { - display: inline-block !important; } - .d-xl-block { - display: block !important; } - .d-xl-table { - display: table !important; } - .d-xl-table-row { - display: table-row !important; } - .d-xl-table-cell { - display: table-cell !important; } - .d-xl-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } - .d-xl-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } -@media print { - .d-print-none { - display: none !important; } - .d-print-inline { - display: inline !important; } - .d-print-inline-block { - display: inline-block !important; } - .d-print-block { - display: block !important; } - .d-print-table { - display: table !important; } - .d-print-table-row { - display: table-row !important; } - .d-print-table-cell { - display: table-cell !important; } - .d-print-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } - .d-print-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } -.embed-responsive { - position: relative; - display: block; - width: 100%; - padding: 0; - overflow: hidden; } -.embed-responsive::before { - display: block; - content: ""; } -.embed-responsive .embed-responsive-item, .embed-responsive iframe, .embed-responsive embed, .embed-responsive object, .embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; } -.embed-responsive-21by9::before { - padding-top: 42.85714%; } -.embed-responsive-16by9::before { - padding-top: 56.25%; } -.embed-responsive-4by3::before { - padding-top: 75%; } -.embed-responsive-1by1::before { - padding-top: 100%; } -.flex-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; } -.flex-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; } -.flex-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; } -.flex-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; } -.flex-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; } -.flex-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; } -.flex-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; } -.justify-content-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; } -.justify-content-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; } -.justify-content-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; } -.justify-content-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; } -.justify-content-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; } -.align-items-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; } -.align-items-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; } -.align-items-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; } -.align-items-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; } -.align-items-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; } -.align-content-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; } -.align-content-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; } -.align-content-center { - -ms-flex-line-pack: center !important; - align-content: center !important; } -.align-content-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; } -.align-content-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; } -.align-content-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; } -.align-self-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; } -.align-self-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; } -.align-self-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; } -.align-self-center { - -ms-flex-item-align: center !important; - align-self: center !important; } -.align-self-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; } -.align-self-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; } -@media (min-width: 576px) { - .flex-sm-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; } - .flex-sm-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; } - .flex-sm-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; } - .flex-sm-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; } - .flex-sm-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; } - .flex-sm-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; } - .flex-sm-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; } - .justify-content-sm-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; } - .justify-content-sm-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; } - .justify-content-sm-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; } - .justify-content-sm-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; } - .justify-content-sm-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; } - .align-items-sm-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; } - .align-items-sm-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; } - .align-items-sm-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; } - .align-items-sm-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; } - .align-items-sm-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; } - .align-content-sm-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; } - .align-content-sm-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; } - .align-content-sm-center { - -ms-flex-line-pack: center !important; - align-content: center !important; } - .align-content-sm-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; } - .align-content-sm-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; } - .align-content-sm-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; } - .align-self-sm-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; } - .align-self-sm-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; } - .align-self-sm-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; } - .align-self-sm-center { - -ms-flex-item-align: center !important; - align-self: center !important; } - .align-self-sm-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; } - .align-self-sm-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; } } -@media (min-width: 768px) { - .flex-md-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; } - .flex-md-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; } - .flex-md-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; } - .flex-md-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; } - .flex-md-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; } - .flex-md-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; } - .flex-md-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; } - .justify-content-md-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; } - .justify-content-md-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; } - .justify-content-md-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; } - .justify-content-md-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; } - .justify-content-md-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; } - .align-items-md-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; } - .align-items-md-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; } - .align-items-md-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; } - .align-items-md-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; } - .align-items-md-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; } - .align-content-md-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; } - .align-content-md-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; } - .align-content-md-center { - -ms-flex-line-pack: center !important; - align-content: center !important; } - .align-content-md-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; } - .align-content-md-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; } - .align-content-md-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; } - .align-self-md-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; } - .align-self-md-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; } - .align-self-md-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; } - .align-self-md-center { - -ms-flex-item-align: center !important; - align-self: center !important; } - .align-self-md-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; } - .align-self-md-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; } } -@media (min-width: 992px) { - .flex-lg-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; } - .flex-lg-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; } - .flex-lg-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; } - .flex-lg-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; } - .flex-lg-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; } - .flex-lg-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; } - .flex-lg-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; } - .justify-content-lg-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; } - .justify-content-lg-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; } - .justify-content-lg-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; } - .justify-content-lg-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; } - .justify-content-lg-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; } - .align-items-lg-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; } - .align-items-lg-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; } - .align-items-lg-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; } - .align-items-lg-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; } - .align-items-lg-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; } - .align-content-lg-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; } - .align-content-lg-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; } - .align-content-lg-center { - -ms-flex-line-pack: center !important; - align-content: center !important; } - .align-content-lg-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; } - .align-content-lg-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; } - .align-content-lg-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; } - .align-self-lg-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; } - .align-self-lg-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; } - .align-self-lg-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; } - .align-self-lg-center { - -ms-flex-item-align: center !important; - align-self: center !important; } - .align-self-lg-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; } - .align-self-lg-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; } } -@media (min-width: 1200px) { - .flex-xl-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; } - .flex-xl-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; } - .flex-xl-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; } - .flex-xl-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; } - .flex-xl-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; } - .flex-xl-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; } - .flex-xl-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; } - .justify-content-xl-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; } - .justify-content-xl-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; } - .justify-content-xl-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; } - .justify-content-xl-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; } - .justify-content-xl-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; } - .align-items-xl-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; } - .align-items-xl-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; } - .align-items-xl-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; } - .align-items-xl-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; } - .align-items-xl-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; } - .align-content-xl-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; } - .align-content-xl-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; } - .align-content-xl-center { - -ms-flex-line-pack: center !important; - align-content: center !important; } - .align-content-xl-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; } - .align-content-xl-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; } - .align-content-xl-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; } - .align-self-xl-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; } - .align-self-xl-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; } - .align-self-xl-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; } - .align-self-xl-center { - -ms-flex-item-align: center !important; - align-self: center !important; } - .align-self-xl-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; } - .align-self-xl-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; } } -.float-left { - float: left !important; } -.float-right { - float: right !important; } -.float-none { - float: none !important; } -@media (min-width: 576px) { - .float-sm-left { - float: left !important; } - .float-sm-right { - float: right !important; } - .float-sm-none { - float: none !important; } } -@media (min-width: 768px) { - .float-md-left { - float: left !important; } - .float-md-right { - float: right !important; } - .float-md-none { - float: none !important; } } -@media (min-width: 992px) { - .float-lg-left { - float: left !important; } - .float-lg-right { - float: right !important; } - .float-lg-none { - float: none !important; } } -@media (min-width: 1200px) { - .float-xl-left { - float: left !important; } - .float-xl-right { - float: right !important; } - .float-xl-none { - float: none !important; } } -.position-static { - position: static !important; } -.position-relative { - position: relative !important; } -.position-absolute { - position: absolute !important; } -.position-fixed { - position: fixed !important; } -.position-sticky { - position: -webkit-sticky !important; - position: sticky !important; } -.fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; } -.fixed-bottom { - position: fixed; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; } -@supports ((position: -webkit-sticky) or (position: sticky)) { - .sticky-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; } } -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - -webkit-clip-path: inset(50%); - clip-path: inset(50%); - border: 0; } -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - overflow: visible; - clip: auto; - white-space: normal; - -webkit-clip-path: none; - clip-path: none; } -.w-25 { - width: 25% !important; } -.w-50 { - width: 50% !important; } -.w-75 { - width: 75% !important; } -.w-100 { - width: 100% !important; } -.h-25 { - height: 25% !important; } -.h-50 { - height: 50% !important; } -.h-75 { - height: 75% !important; } -.h-100 { - height: 100% !important; } -.mw-100 { - max-width: 100% !important; } -.mh-100 { - max-height: 100% !important; } -.m-0 { - margin: 0 !important; } -.mt-0, .my-0 { - margin-top: 0 !important; } -.mr-0, .mx-0 { - margin-right: 0 !important; } -.mb-0, .my-0 { - margin-bottom: 0 !important; } -.ml-0, .mx-0 { - margin-left: 0 !important; } -.m-1 { - margin: 0.25rem !important; } -.mt-1, .my-1 { - margin-top: 0.25rem !important; } -.mr-1, .mx-1 { - margin-right: 0.25rem !important; } -.mb-1, .my-1 { - margin-bottom: 0.25rem !important; } -.ml-1, .mx-1 { - margin-left: 0.25rem !important; } -.m-2 { - margin: 0.5rem !important; } -.mt-2, .my-2 { - margin-top: 0.5rem !important; } -.mr-2, .mx-2 { - margin-right: 0.5rem !important; } -.mb-2, .my-2 { - margin-bottom: 0.5rem !important; } -.ml-2, .mx-2 { - margin-left: 0.5rem !important; } -.m-3 { - margin: 1rem !important; } -.mt-3, .my-3 { - margin-top: 1rem !important; } -.mr-3, .mx-3 { - margin-right: 1rem !important; } -.mb-3, .my-3 { - margin-bottom: 1rem !important; } -.ml-3, .mx-3 { - margin-left: 1rem !important; } -.m-4 { - margin: 1.5rem !important; } -.mt-4, .my-4 { - margin-top: 1.5rem !important; } -.mr-4, .mx-4 { - margin-right: 1.5rem !important; } -.mb-4, .my-4 { - margin-bottom: 1.5rem !important; } -.ml-4, .mx-4 { - margin-left: 1.5rem !important; } -.m-5 { - margin: 3rem !important; } -.mt-5, .my-5 { - margin-top: 3rem !important; } -.mr-5, .mx-5 { - margin-right: 3rem !important; } -.mb-5, .my-5 { - margin-bottom: 3rem !important; } -.ml-5, .mx-5 { - margin-left: 3rem !important; } -.p-0 { - padding: 0 !important; } -.pt-0, .py-0 { - padding-top: 0 !important; } -.pr-0, .px-0 { - padding-right: 0 !important; } -.pb-0, .py-0 { - padding-bottom: 0 !important; } -.pl-0, .px-0 { - padding-left: 0 !important; } -.p-1 { - padding: 0.25rem !important; } -.pt-1, .py-1 { - padding-top: 0.25rem !important; } -.pr-1, .px-1 { - padding-right: 0.25rem !important; } -.pb-1, .py-1 { - padding-bottom: 0.25rem !important; } -.pl-1, .px-1 { - padding-left: 0.25rem !important; } -.p-2 { - padding: 0.5rem !important; } -.pt-2, .py-2 { - padding-top: 0.5rem !important; } -.pr-2, .px-2 { - padding-right: 0.5rem !important; } -.pb-2, .py-2 { - padding-bottom: 0.5rem !important; } -.pl-2, .px-2 { - padding-left: 0.5rem !important; } -.p-3 { - padding: 1rem !important; } -.pt-3, .py-3 { - padding-top: 1rem !important; } -.pr-3, .px-3 { - padding-right: 1rem !important; } -.pb-3, .py-3 { - padding-bottom: 1rem !important; } -.pl-3, .px-3 { - padding-left: 1rem !important; } -.p-4 { - padding: 1.5rem !important; } -.pt-4, .py-4 { - padding-top: 1.5rem !important; } -.pr-4, .px-4 { - padding-right: 1.5rem !important; } -.pb-4, .py-4 { - padding-bottom: 1.5rem !important; } -.pl-4, .px-4 { - padding-left: 1.5rem !important; } -.p-5 { - padding: 3rem !important; } -.pt-5, .py-5 { - padding-top: 3rem !important; } -.pr-5, .px-5 { - padding-right: 3rem !important; } -.pb-5, .py-5 { - padding-bottom: 3rem !important; } -.pl-5, .px-5 { - padding-left: 3rem !important; } -.m-auto { - margin: auto !important; } -.mt-auto, .my-auto { - margin-top: auto !important; } -.mr-auto, .mx-auto { - margin-right: auto !important; } -.mb-auto, .my-auto { - margin-bottom: auto !important; } -.ml-auto, .mx-auto { - margin-left: auto !important; } -@media (min-width: 576px) { - .m-sm-0 { - margin: 0 !important; } - .mt-sm-0, .my-sm-0 { - margin-top: 0 !important; } - .mr-sm-0, .mx-sm-0 { - margin-right: 0 !important; } - .mb-sm-0, .my-sm-0 { - margin-bottom: 0 !important; } - .ml-sm-0, .mx-sm-0 { - margin-left: 0 !important; } - .m-sm-1 { - margin: 0.25rem !important; } - .mt-sm-1, .my-sm-1 { - margin-top: 0.25rem !important; } - .mr-sm-1, .mx-sm-1 { - margin-right: 0.25rem !important; } - .mb-sm-1, .my-sm-1 { - margin-bottom: 0.25rem !important; } - .ml-sm-1, .mx-sm-1 { - margin-left: 0.25rem !important; } - .m-sm-2 { - margin: 0.5rem !important; } - .mt-sm-2, .my-sm-2 { - margin-top: 0.5rem !important; } - .mr-sm-2, .mx-sm-2 { - margin-right: 0.5rem !important; } - .mb-sm-2, .my-sm-2 { - margin-bottom: 0.5rem !important; } - .ml-sm-2, .mx-sm-2 { - margin-left: 0.5rem !important; } - .m-sm-3 { - margin: 1rem !important; } - .mt-sm-3, .my-sm-3 { - margin-top: 1rem !important; } - .mr-sm-3, .mx-sm-3 { - margin-right: 1rem !important; } - .mb-sm-3, .my-sm-3 { - margin-bottom: 1rem !important; } - .ml-sm-3, .mx-sm-3 { - margin-left: 1rem !important; } - .m-sm-4 { - margin: 1.5rem !important; } - .mt-sm-4, .my-sm-4 { - margin-top: 1.5rem !important; } - .mr-sm-4, .mx-sm-4 { - margin-right: 1.5rem !important; } - .mb-sm-4, .my-sm-4 { - margin-bottom: 1.5rem !important; } - .ml-sm-4, .mx-sm-4 { - margin-left: 1.5rem !important; } - .m-sm-5 { - margin: 3rem !important; } - .mt-sm-5, .my-sm-5 { - margin-top: 3rem !important; } - .mr-sm-5, .mx-sm-5 { - margin-right: 3rem !important; } - .mb-sm-5, .my-sm-5 { - margin-bottom: 3rem !important; } - .ml-sm-5, .mx-sm-5 { - margin-left: 3rem !important; } - .p-sm-0 { - padding: 0 !important; } - .pt-sm-0, .py-sm-0 { - padding-top: 0 !important; } - .pr-sm-0, .px-sm-0 { - padding-right: 0 !important; } - .pb-sm-0, .py-sm-0 { - padding-bottom: 0 !important; } - .pl-sm-0, .px-sm-0 { - padding-left: 0 !important; } - .p-sm-1 { - padding: 0.25rem !important; } - .pt-sm-1, .py-sm-1 { - padding-top: 0.25rem !important; } - .pr-sm-1, .px-sm-1 { - padding-right: 0.25rem !important; } - .pb-sm-1, .py-sm-1 { - padding-bottom: 0.25rem !important; } - .pl-sm-1, .px-sm-1 { - padding-left: 0.25rem !important; } - .p-sm-2 { - padding: 0.5rem !important; } - .pt-sm-2, .py-sm-2 { - padding-top: 0.5rem !important; } - .pr-sm-2, .px-sm-2 { - padding-right: 0.5rem !important; } - .pb-sm-2, .py-sm-2 { - padding-bottom: 0.5rem !important; } - .pl-sm-2, .px-sm-2 { - padding-left: 0.5rem !important; } - .p-sm-3 { - padding: 1rem !important; } - .pt-sm-3, .py-sm-3 { - padding-top: 1rem !important; } - .pr-sm-3, .px-sm-3 { - padding-right: 1rem !important; } - .pb-sm-3, .py-sm-3 { - padding-bottom: 1rem !important; } - .pl-sm-3, .px-sm-3 { - padding-left: 1rem !important; } - .p-sm-4 { - padding: 1.5rem !important; } - .pt-sm-4, .py-sm-4 { - padding-top: 1.5rem !important; } - .pr-sm-4, .px-sm-4 { - padding-right: 1.5rem !important; } - .pb-sm-4, .py-sm-4 { - padding-bottom: 1.5rem !important; } - .pl-sm-4, .px-sm-4 { - padding-left: 1.5rem !important; } - .p-sm-5 { - padding: 3rem !important; } - .pt-sm-5, .py-sm-5 { - padding-top: 3rem !important; } - .pr-sm-5, .px-sm-5 { - padding-right: 3rem !important; } - .pb-sm-5, .py-sm-5 { - padding-bottom: 3rem !important; } - .pl-sm-5, .px-sm-5 { - padding-left: 3rem !important; } - .m-sm-auto { - margin: auto !important; } - .mt-sm-auto, .my-sm-auto { - margin-top: auto !important; } - .mr-sm-auto, .mx-sm-auto { - margin-right: auto !important; } - .mb-sm-auto, .my-sm-auto { - margin-bottom: auto !important; } - .ml-sm-auto, .mx-sm-auto { - margin-left: auto !important; } } -@media (min-width: 768px) { - .m-md-0 { - margin: 0 !important; } - .mt-md-0, .my-md-0 { - margin-top: 0 !important; } - .mr-md-0, .mx-md-0 { - margin-right: 0 !important; } - .mb-md-0, .my-md-0 { - margin-bottom: 0 !important; } - .ml-md-0, .mx-md-0 { - margin-left: 0 !important; } - .m-md-1 { - margin: 0.25rem !important; } - .mt-md-1, .my-md-1 { - margin-top: 0.25rem !important; } - .mr-md-1, .mx-md-1 { - margin-right: 0.25rem !important; } - .mb-md-1, .my-md-1 { - margin-bottom: 0.25rem !important; } - .ml-md-1, .mx-md-1 { - margin-left: 0.25rem !important; } - .m-md-2 { - margin: 0.5rem !important; } - .mt-md-2, .my-md-2 { - margin-top: 0.5rem !important; } - .mr-md-2, .mx-md-2 { - margin-right: 0.5rem !important; } - .mb-md-2, .my-md-2 { - margin-bottom: 0.5rem !important; } - .ml-md-2, .mx-md-2 { - margin-left: 0.5rem !important; } - .m-md-3 { - margin: 1rem !important; } - .mt-md-3, .my-md-3 { - margin-top: 1rem !important; } - .mr-md-3, .mx-md-3 { - margin-right: 1rem !important; } - .mb-md-3, .my-md-3 { - margin-bottom: 1rem !important; } - .ml-md-3, .mx-md-3 { - margin-left: 1rem !important; } - .m-md-4 { - margin: 1.5rem !important; } - .mt-md-4, .my-md-4 { - margin-top: 1.5rem !important; } - .mr-md-4, .mx-md-4 { - margin-right: 1.5rem !important; } - .mb-md-4, .my-md-4 { - margin-bottom: 1.5rem !important; } - .ml-md-4, .mx-md-4 { - margin-left: 1.5rem !important; } - .m-md-5 { - margin: 3rem !important; } - .mt-md-5, .my-md-5 { - margin-top: 3rem !important; } - .mr-md-5, .mx-md-5 { - margin-right: 3rem !important; } - .mb-md-5, .my-md-5 { - margin-bottom: 3rem !important; } - .ml-md-5, .mx-md-5 { - margin-left: 3rem !important; } - .p-md-0 { - padding: 0 !important; } - .pt-md-0, .py-md-0 { - padding-top: 0 !important; } - .pr-md-0, .px-md-0 { - padding-right: 0 !important; } - .pb-md-0, .py-md-0 { - padding-bottom: 0 !important; } - .pl-md-0, .px-md-0 { - padding-left: 0 !important; } - .p-md-1 { - padding: 0.25rem !important; } - .pt-md-1, .py-md-1 { - padding-top: 0.25rem !important; } - .pr-md-1, .px-md-1 { - padding-right: 0.25rem !important; } - .pb-md-1, .py-md-1 { - padding-bottom: 0.25rem !important; } - .pl-md-1, .px-md-1 { - padding-left: 0.25rem !important; } - .p-md-2 { - padding: 0.5rem !important; } - .pt-md-2, .py-md-2 { - padding-top: 0.5rem !important; } - .pr-md-2, .px-md-2 { - padding-right: 0.5rem !important; } - .pb-md-2, .py-md-2 { - padding-bottom: 0.5rem !important; } - .pl-md-2, .px-md-2 { - padding-left: 0.5rem !important; } - .p-md-3 { - padding: 1rem !important; } - .pt-md-3, .py-md-3 { - padding-top: 1rem !important; } - .pr-md-3, .px-md-3 { - padding-right: 1rem !important; } - .pb-md-3, .py-md-3 { - padding-bottom: 1rem !important; } - .pl-md-3, .px-md-3 { - padding-left: 1rem !important; } - .p-md-4 { - padding: 1.5rem !important; } - .pt-md-4, .py-md-4 { - padding-top: 1.5rem !important; } - .pr-md-4, .px-md-4 { - padding-right: 1.5rem !important; } - .pb-md-4, .py-md-4 { - padding-bottom: 1.5rem !important; } - .pl-md-4, .px-md-4 { - padding-left: 1.5rem !important; } - .p-md-5 { - padding: 3rem !important; } - .pt-md-5, .py-md-5 { - padding-top: 3rem !important; } - .pr-md-5, .px-md-5 { - padding-right: 3rem !important; } - .pb-md-5, .py-md-5 { - padding-bottom: 3rem !important; } - .pl-md-5, .px-md-5 { - padding-left: 3rem !important; } - .m-md-auto { - margin: auto !important; } - .mt-md-auto, .my-md-auto { - margin-top: auto !important; } - .mr-md-auto, .mx-md-auto { - margin-right: auto !important; } - .mb-md-auto, .my-md-auto { - margin-bottom: auto !important; } - .ml-md-auto, .mx-md-auto { - margin-left: auto !important; } } -@media (min-width: 992px) { - .m-lg-0 { - margin: 0 !important; } - .mt-lg-0, .my-lg-0 { - margin-top: 0 !important; } - .mr-lg-0, .mx-lg-0 { - margin-right: 0 !important; } - .mb-lg-0, .my-lg-0 { - margin-bottom: 0 !important; } - .ml-lg-0, .mx-lg-0 { - margin-left: 0 !important; } - .m-lg-1 { - margin: 0.25rem !important; } - .mt-lg-1, .my-lg-1 { - margin-top: 0.25rem !important; } - .mr-lg-1, .mx-lg-1 { - margin-right: 0.25rem !important; } - .mb-lg-1, .my-lg-1 { - margin-bottom: 0.25rem !important; } - .ml-lg-1, .mx-lg-1 { - margin-left: 0.25rem !important; } - .m-lg-2 { - margin: 0.5rem !important; } - .mt-lg-2, .my-lg-2 { - margin-top: 0.5rem !important; } - .mr-lg-2, .mx-lg-2 { - margin-right: 0.5rem !important; } - .mb-lg-2, .my-lg-2 { - margin-bottom: 0.5rem !important; } - .ml-lg-2, .mx-lg-2 { - margin-left: 0.5rem !important; } - .m-lg-3 { - margin: 1rem !important; } - .mt-lg-3, .my-lg-3 { - margin-top: 1rem !important; } - .mr-lg-3, .mx-lg-3 { - margin-right: 1rem !important; } - .mb-lg-3, .my-lg-3 { - margin-bottom: 1rem !important; } - .ml-lg-3, .mx-lg-3 { - margin-left: 1rem !important; } - .m-lg-4 { - margin: 1.5rem !important; } - .mt-lg-4, .my-lg-4 { - margin-top: 1.5rem !important; } - .mr-lg-4, .mx-lg-4 { - margin-right: 1.5rem !important; } - .mb-lg-4, .my-lg-4 { - margin-bottom: 1.5rem !important; } - .ml-lg-4, .mx-lg-4 { - margin-left: 1.5rem !important; } - .m-lg-5 { - margin: 3rem !important; } - .mt-lg-5, .my-lg-5 { - margin-top: 3rem !important; } - .mr-lg-5, .mx-lg-5 { - margin-right: 3rem !important; } - .mb-lg-5, .my-lg-5 { - margin-bottom: 3rem !important; } - .ml-lg-5, .mx-lg-5 { - margin-left: 3rem !important; } - .p-lg-0 { - padding: 0 !important; } - .pt-lg-0, .py-lg-0 { - padding-top: 0 !important; } - .pr-lg-0, .px-lg-0 { - padding-right: 0 !important; } - .pb-lg-0, .py-lg-0 { - padding-bottom: 0 !important; } - .pl-lg-0, .px-lg-0 { - padding-left: 0 !important; } - .p-lg-1 { - padding: 0.25rem !important; } - .pt-lg-1, .py-lg-1 { - padding-top: 0.25rem !important; } - .pr-lg-1, .px-lg-1 { - padding-right: 0.25rem !important; } - .pb-lg-1, .py-lg-1 { - padding-bottom: 0.25rem !important; } - .pl-lg-1, .px-lg-1 { - padding-left: 0.25rem !important; } - .p-lg-2 { - padding: 0.5rem !important; } - .pt-lg-2, .py-lg-2 { - padding-top: 0.5rem !important; } - .pr-lg-2, .px-lg-2 { - padding-right: 0.5rem !important; } - .pb-lg-2, .py-lg-2 { - padding-bottom: 0.5rem !important; } - .pl-lg-2, .px-lg-2 { - padding-left: 0.5rem !important; } - .p-lg-3 { - padding: 1rem !important; } - .pt-lg-3, .py-lg-3 { - padding-top: 1rem !important; } - .pr-lg-3, .px-lg-3 { - padding-right: 1rem !important; } - .pb-lg-3, .py-lg-3 { - padding-bottom: 1rem !important; } - .pl-lg-3, .px-lg-3 { - padding-left: 1rem !important; } - .p-lg-4 { - padding: 1.5rem !important; } - .pt-lg-4, .py-lg-4 { - padding-top: 1.5rem !important; } - .pr-lg-4, .px-lg-4 { - padding-right: 1.5rem !important; } - .pb-lg-4, .py-lg-4 { - padding-bottom: 1.5rem !important; } - .pl-lg-4, .px-lg-4 { - padding-left: 1.5rem !important; } - .p-lg-5 { - padding: 3rem !important; } - .pt-lg-5, .py-lg-5 { - padding-top: 3rem !important; } - .pr-lg-5, .px-lg-5 { - padding-right: 3rem !important; } - .pb-lg-5, .py-lg-5 { - padding-bottom: 3rem !important; } - .pl-lg-5, .px-lg-5 { - padding-left: 3rem !important; } - .m-lg-auto { - margin: auto !important; } - .mt-lg-auto, .my-lg-auto { - margin-top: auto !important; } - .mr-lg-auto, .mx-lg-auto { - margin-right: auto !important; } - .mb-lg-auto, .my-lg-auto { - margin-bottom: auto !important; } - .ml-lg-auto, .mx-lg-auto { - margin-left: auto !important; } } -@media (min-width: 1200px) { - .m-xl-0 { - margin: 0 !important; } - .mt-xl-0, .my-xl-0 { - margin-top: 0 !important; } - .mr-xl-0, .mx-xl-0 { - margin-right: 0 !important; } - .mb-xl-0, .my-xl-0 { - margin-bottom: 0 !important; } - .ml-xl-0, .mx-xl-0 { - margin-left: 0 !important; } - .m-xl-1 { - margin: 0.25rem !important; } - .mt-xl-1, .my-xl-1 { - margin-top: 0.25rem !important; } - .mr-xl-1, .mx-xl-1 { - margin-right: 0.25rem !important; } - .mb-xl-1, .my-xl-1 { - margin-bottom: 0.25rem !important; } - .ml-xl-1, .mx-xl-1 { - margin-left: 0.25rem !important; } - .m-xl-2 { - margin: 0.5rem !important; } - .mt-xl-2, .my-xl-2 { - margin-top: 0.5rem !important; } - .mr-xl-2, .mx-xl-2 { - margin-right: 0.5rem !important; } - .mb-xl-2, .my-xl-2 { - margin-bottom: 0.5rem !important; } - .ml-xl-2, .mx-xl-2 { - margin-left: 0.5rem !important; } - .m-xl-3 { - margin: 1rem !important; } - .mt-xl-3, .my-xl-3 { - margin-top: 1rem !important; } - .mr-xl-3, .mx-xl-3 { - margin-right: 1rem !important; } - .mb-xl-3, .my-xl-3 { - margin-bottom: 1rem !important; } - .ml-xl-3, .mx-xl-3 { - margin-left: 1rem !important; } - .m-xl-4 { - margin: 1.5rem !important; } - .mt-xl-4, .my-xl-4 { - margin-top: 1.5rem !important; } - .mr-xl-4, .mx-xl-4 { - margin-right: 1.5rem !important; } - .mb-xl-4, .my-xl-4 { - margin-bottom: 1.5rem !important; } - .ml-xl-4, .mx-xl-4 { - margin-left: 1.5rem !important; } - .m-xl-5 { - margin: 3rem !important; } - .mt-xl-5, .my-xl-5 { - margin-top: 3rem !important; } - .mr-xl-5, .mx-xl-5 { - margin-right: 3rem !important; } - .mb-xl-5, .my-xl-5 { - margin-bottom: 3rem !important; } - .ml-xl-5, .mx-xl-5 { - margin-left: 3rem !important; } - .p-xl-0 { - padding: 0 !important; } - .pt-xl-0, .py-xl-0 { - padding-top: 0 !important; } - .pr-xl-0, .px-xl-0 { - padding-right: 0 !important; } - .pb-xl-0, .py-xl-0 { - padding-bottom: 0 !important; } - .pl-xl-0, .px-xl-0 { - padding-left: 0 !important; } - .p-xl-1 { - padding: 0.25rem !important; } - .pt-xl-1, .py-xl-1 { - padding-top: 0.25rem !important; } - .pr-xl-1, .px-xl-1 { - padding-right: 0.25rem !important; } - .pb-xl-1, .py-xl-1 { - padding-bottom: 0.25rem !important; } - .pl-xl-1, .px-xl-1 { - padding-left: 0.25rem !important; } - .p-xl-2 { - padding: 0.5rem !important; } - .pt-xl-2, .py-xl-2 { - padding-top: 0.5rem !important; } - .pr-xl-2, .px-xl-2 { - padding-right: 0.5rem !important; } - .pb-xl-2, .py-xl-2 { - padding-bottom: 0.5rem !important; } - .pl-xl-2, .px-xl-2 { - padding-left: 0.5rem !important; } - .p-xl-3 { - padding: 1rem !important; } - .pt-xl-3, .py-xl-3 { - padding-top: 1rem !important; } - .pr-xl-3, .px-xl-3 { - padding-right: 1rem !important; } - .pb-xl-3, .py-xl-3 { - padding-bottom: 1rem !important; } - .pl-xl-3, .px-xl-3 { - padding-left: 1rem !important; } - .p-xl-4 { - padding: 1.5rem !important; } - .pt-xl-4, .py-xl-4 { - padding-top: 1.5rem !important; } - .pr-xl-4, .px-xl-4 { - padding-right: 1.5rem !important; } - .pb-xl-4, .py-xl-4 { - padding-bottom: 1.5rem !important; } - .pl-xl-4, .px-xl-4 { - padding-left: 1.5rem !important; } - .p-xl-5 { - padding: 3rem !important; } - .pt-xl-5, .py-xl-5 { - padding-top: 3rem !important; } - .pr-xl-5, .px-xl-5 { - padding-right: 3rem !important; } - .pb-xl-5, .py-xl-5 { - padding-bottom: 3rem !important; } - .pl-xl-5, .px-xl-5 { - padding-left: 3rem !important; } - .m-xl-auto { - margin: auto !important; } - .mt-xl-auto, .my-xl-auto { - margin-top: auto !important; } - .mr-xl-auto, .mx-xl-auto { - margin-right: auto !important; } - .mb-xl-auto, .my-xl-auto { - margin-bottom: auto !important; } - .ml-xl-auto, .mx-xl-auto { - margin-left: auto !important; } } -.text-justify { - text-align: justify !important; } -.text-nowrap { - white-space: nowrap !important; } -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } -.text-left { - text-align: left !important; } -.text-right { - text-align: right !important; } -.text-center { - text-align: center !important; } -@media (min-width: 576px) { - .text-sm-left { - text-align: left !important; } - .text-sm-right { - text-align: right !important; } - .text-sm-center { - text-align: center !important; } } -@media (min-width: 768px) { - .text-md-left { - text-align: left !important; } - .text-md-right { - text-align: right !important; } - .text-md-center { - text-align: center !important; } } -@media (min-width: 992px) { - .text-lg-left { - text-align: left !important; } - .text-lg-right { - text-align: right !important; } - .text-lg-center { - text-align: center !important; } } -@media (min-width: 1200px) { - .text-xl-left { - text-align: left !important; } - .text-xl-right { - text-align: right !important; } - .text-xl-center { - text-align: center !important; } } -.text-lowercase { - text-transform: lowercase !important; } -.text-uppercase { - text-transform: uppercase !important; } -.text-capitalize { - text-transform: capitalize !important; } -.font-weight-light { - font-weight: 300 !important; } -.font-weight-normal { - font-weight: 400 !important; } -.font-weight-bold { - font-weight: 700 !important; } -.font-italic { - font-style: italic !important; } -.text-white { - color: #fff !important; } -.text-primary { - color: #007bff !important; } -a.text-primary:hover, a.text-primary:focus { - color: #0062cc !important; } -.text-secondary { - color: #6c757d !important; } -a.text-secondary:hover, a.text-secondary:focus { - color: #545b62 !important; } -.text-success { - color: #28a745 !important; } -a.text-success:hover, a.text-success:focus { - color: #1e7e34 !important; } -.text-info { - color: #17a2b8 !important; } -a.text-info:hover, a.text-info:focus { - color: #117a8b !important; } -.text-warning { - color: #ffc107 !important; } -a.text-warning:hover, a.text-warning:focus { - color: #d39e00 !important; } -.text-danger { - color: #dc3545 !important; } -a.text-danger:hover, a.text-danger:focus { - color: #bd2130 !important; } -.text-light { - color: #f8f9fa !important; } -a.text-light:hover, a.text-light:focus { - color: #dae0e5 !important; } -.text-dark { - color: #343a40 !important; } -a.text-dark:hover, a.text-dark:focus { - color: #1d2124 !important; } -.text-muted { - color: #6c757d !important; } -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; } -.visible { - visibility: visible !important; } -.invisible { - visibility: hidden !important; } -@media print { - *, *::before, *::after { - text-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; } - a:not(.btn) { - text-decoration: underline; } - abbr[title]::after { - content: " (" attr(title) ")"; } - pre { - white-space: pre-wrap !important; } - pre, blockquote { - border: 1px solid #999; - page-break-inside: avoid; } - thead { - display: table-header-group; } - tr, img { - page-break-inside: avoid; } - p, h2, h3 { - orphans: 3; - widows: 3; } - h2, h3 { - page-break-after: avoid; } - @page { - size: a3; } - body { - min-width: 992px !important; } - .container { - min-width: 992px !important; } - .navbar { - display: none; } - .badge { - border: 1px solid #000; } - .table { - border-collapse: collapse !important; } - .table td, .table th { - background-color: #fff !important; } - .table-bordered th, .table-bordered td { - border: 1px solid #ddd !important; } } -.awesomplete [hidden] { - display: none; } -.awesomplete .visually-hidden { - position: absolute; - clip: rect(0, 0, 0, 0); } -.awesomplete { - display: inline-block; - position: relative; } -.awesomplete > input { - display: block; } -.awesomplete > ul { - position: absolute; - left: 0; - z-index: 1; - min-width: 100%; - -webkit-box-sizing: border-box; - box-sizing: border-box; - list-style: none; - padding: 0; - margin: 0; - background: #fff; } -.awesomplete > ul:empty { - display: none; } -.awesomplete > ul { - border-radius: .3em; - margin: .2em 0 0; - background: rgba(255, 255, 255, 0.9); - background: -webkit-gradient(linear, left top, right bottom, from(white), to(rgba(255, 255, 255, 0.8))); - background: linear-gradient(to bottom right, white, rgba(255, 255, 255, 0.8)); - border: 1px solid rgba(0, 0, 0, 0.3); - -webkit-box-shadow: 0.05em 0.2em 0.6em rgba(0, 0, 0, 0.2); - box-shadow: 0.05em 0.2em 0.6em rgba(0, 0, 0, 0.2); - text-shadow: none; } -@supports ((-webkit-transform: scale(0)) or (transform: scale(0))) { - .awesomplete > ul { - -webkit-transition: 0.3s cubic-bezier(0.4, 0.2, 0.5, 1.4); - transition: 0.3s cubic-bezier(0.4, 0.2, 0.5, 1.4); - -webkit-transform-origin: 1.43em -.43em; - transform-origin: 1.43em -.43em; } - .awesomplete > ul[hidden], .awesomplete > ul:empty { - opacity: 0; - -webkit-transform: scale(0); - transform: scale(0); - display: block; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; } } -/* Pointer */ -.awesomplete > ul:before { - content: ""; - position: absolute; - top: -.43em; - left: 1em; - width: 0; - height: 0; - padding: .4em; - background: white; - border: inherit; - border-right: 0; - border-bottom: 0; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); } -.awesomplete > ul > li { - position: relative; - padding: .2em .5em; - cursor: pointer; } -.awesomplete > ul > li:hover { - background: #b8d3e0; - color: black; } -.awesomplete > ul > li[aria-selected="true"] { - background: #3d6d8f; - color: white; } -.awesomplete mark { - background: #eaff00; } -.awesomplete li:hover mark { - background: #b5d100; } -.awesomplete li[aria-selected="true"] mark { - background: #3d6b00; - color: inherit; } -html { - font-size: 14px; } -.hide { - display: none !important; } -.page-error { - text-align: center; - padding: 200px 0px; } -.form-body { - max-width: 600px; } -.form-body .form-toolbar { - height: 2rem; - margin-bottom: 1rem; } -.form-body .alert { - margin-top: 1rem; } -.dropdown-menu-right { - right: 0; - left: auto; } -.awesomplete { - display: block; } -.awesomplete > ul > li { - padding: .75rem .375rem; } -.awesomplete > ul > li:hover { - background: #dee2e6; - color: #212529; } -.awesomplete > ul > li[aria-selected="true"] { - background: #dee2e6; - color: #212529; } -.awesomplete > ul > li[aria-selected="true"]:hover { - background: #dee2e6; - color: #212529; } -mark { - padding: none; - background: inherit; } -.awesomplete li[aria-selected="true"] mark, .awesomplete li[aria-selected="false"] mark { - background: inherit; - color: inherit; - padding: 0px; } diff --git a/dist/js/bundle.js b/dist/js/bundle.js deleted file mode 100644 index 71692006..00000000 --- a/dist/js/bundle.js +++ /dev/null @@ -1,2773 +0,0 @@ -var desk = (function () { -'use strict'; - -const number_formats = { - "#,###.##": { fraction_sep: ".", group_sep: ",", precision: 2 }, - "#.###,##": { fraction_sep: ",", group_sep: ".", precision: 2 }, - "# ###.##": { fraction_sep: ".", group_sep: " ", precision: 2 }, - "# ###,##": { fraction_sep: ",", group_sep: " ", precision: 2 }, - "#'###.##": { fraction_sep: ".", group_sep: "'", precision: 2 }, - "#, ###.##": { fraction_sep: ".", group_sep: ", ", precision: 2 }, - "#,##,###.##": { fraction_sep: ".", group_sep: ",", precision: 2 }, - "#,###.###": { fraction_sep: ".", group_sep: ",", precision: 3 }, - "#.###": { fraction_sep: "", group_sep: ".", precision: 0 }, - "#,###": { fraction_sep: "", group_sep: ",", precision: 0 }, -}; - -var number_format = { - // parse a formatted number string - // from "4,555,000.34" -> 4555000.34 - parse_number(number, format='#,###.##') { - if (!number) { - return 0; - } - if (typeof number === 'number') { - return number; - } - const info = this.get_format_info(format); - return parseFloat(this.remove_separator(number, info.group_sep)); - }, - - format_number(number, format = '#,###.##', precision = null) { - if (!number) { - number = 0; - } - let info = this.get_format_info(format); - if (precision) { - info.precision = precision; - } - let is_negative = false; - - number = this.parse_number(number); - if (number < 0) { - is_negative = true; - } - number = Math.abs(number); - number = number.toFixed(info.precision); - - var parts = number.split('.'); - - // get group position and parts - var group_position = info.group_sep ? 3 : 0; - - if (group_position) { - var integer = parts[0]; - var str = ''; - var offset = integer.length % group_position; - for (var i = integer.length; i >= 0; i--) { - var l = this.remove_separator(str, info.group_sep).length; - if (format == "#,##,###.##" && str.indexOf(",") != -1) { // INR - group_position = 2; - l += 1; - } - - str += integer.charAt(i); - - if (l && !((l + 1) % group_position) && i != 0) { - str += info.group_sep; - } - } - parts[0] = str.split("").reverse().join(""); - } - if (parts[0] + "" == "") { - parts[0] = "0"; - } - - // join decimal - parts[1] = (parts[1] && info.fraction_sep) ? (info.fraction_sep + parts[1]) : ""; - - // join - return (is_negative ? "-" : "") + parts[0] + parts[1]; - }, - - get_format_info(format) { - let format_info = number_formats[format]; - - if (!format_info) { - throw `Unknown number format "${format}"`; - } - - return format_info; - }, - - round(num, precision) { - var is_negative = num < 0 ? true : false; - var d = parseInt(precision || 0); - var m = Math.pow(10, d); - var n = +(d ? Math.abs(num) * m : Math.abs(num)).toFixed(8); // Avoid rounding errors - var i = Math.floor(n), f = n - i; - var r = ((!precision && f == 0.5) ? ((i % 2 == 0) ? i : i + 1) : Math.round(n)); - r = d ? r / m : r; - return is_negative ? -r : r; - }, - - remove_separator(text, sep) { - return text.replace(new RegExp(sep === "." ? "\\." : sep, "g"), ''); - } -}; - -let utils = {}; - -Object.assign(utils, number_format); - -Object.assign(utils, { - slug(text) { - return text.toLowerCase().replace(/ /g, '_'); - }, - - async_handler(fn) { - return (req, res, next) => Promise.resolve(fn(req, res, next)) - .catch((err) => { - console.log(err); - // handle error - res.status(err.status_code || 500).send({error: err.message}); - }); - }, - - async sleep(seconds) { - return new Promise(resolve => { - setTimeout(resolve, seconds * 1000); - }); - } -}); - -var utils_1 = utils; - -var model = { - standard_fields: [ - { - fieldname: 'name', fieldtype: 'Data', reqd: 1 - }, - { - fieldname: 'owner', fieldtype: 'Link', reqd: 1, options: 'User' - }, - { - fieldname: 'modified_by', fieldtype: 'Link', reqd: 1, options: 'User' - }, - { - fieldname: 'creation', fieldtype: 'Datetime', reqd: 1 - }, - { - fieldname: 'modified', fieldtype: 'Datetime', reqd: 1 - }, - { - fieldname: 'keywords', fieldtype: 'Text' - }, - { - fieldname: 'docstatus', fieldtype: 'Int', reqd: 1, default: 0 - } - ], - child_fields: [ - { - fieldname: 'idx', fieldtype: 'Int', reqd: 1 - }, - { - fieldname: 'parent', fieldtype: 'Data', reqd: 1 - }, - { - fieldname: 'parenttype', fieldtype: 'Link', reqd: 1, options: 'DocType' - }, - { - fieldname: 'parentfield', fieldtype: 'Data', reqd: 1 - } - ] -}; - -var frappejs = { - async init() { - if (this._initialized) return; - this.init_config(); - this.init_globals(); - this._initialized = true; - }, - - init_config() { - this.config = { - backend: 'sqlite', - port: 8000 - }; - }, - - init_globals() { - this.meta_cache = {}; - this.modules = {}; - this.docs = {}; - this.flags = { - cache_docs: false - }; - }, - - add_to_cache(doc) { - if (!this.flags.cache_docs) return; - - // add to `docs` cache - if (doc.doctype && doc.name) { - if (!this.docs[doc.doctype]) { - this.docs[doc.doctype] = {}; - } - this.docs[doc.doctype][doc.name] = doc; - } - }, - - get_doc_from_cache(doctype, name) { - if (this.docs[doctype] && this.docs[doctype][name]) { - return this.docs[doctype][name]; - } - }, - - get_meta(doctype) { - if (!this.meta_cache[doctype]) { - this.meta_cache[doctype] = new (this.get_meta_class(doctype))(); - } - return this.meta_cache[doctype]; - }, - - get_meta_class(doctype) { - doctype = this.slug(doctype); - if (this.modules[doctype] && this.modules[doctype].Meta) { - return this.modules[doctype].Meta; - } else { - return this.BaseMeta; - } - }, - - async get_doc(data, name) { - if (typeof data==='string' && typeof name==='string') { - let doc = this.get_doc_from_cache(data, name); - if (!doc) { - let controller_class = this.get_controller_class(data); - doc = new controller_class({doctype:data, name: name}); - await doc.load(); - this.add_to_cache(doc); - } - return doc; - } else { - let controller_class = this.get_controller_class(data.doctype); - var doc = new controller_class(data); - } - return doc; - }, - - get_controller_class(doctype) { - doctype = this.slug(doctype); - if (this.modules[doctype] && this.modules[doctype].Document) { - return this.modules[doctype].Document; - } else { - return this.BaseDocument; - } - }, - - async get_new_doc(doctype) { - let doc = await frappe.get_doc({doctype: doctype}); - doc.set_name(); - doc.__not_inserted = true; - this.add_to_cache(doc); - return doc; - }, - - async insert(data) { - const doc = await this.get_doc(data); - return await doc.insert(); - }, - - login(user='guest', user_key) { - this.session = new this._session.Session(user); - if (user && user_key) { - this.authenticate(user_key); - } - }, - - close() { - this.db.close(); - - if (this.server) { - this.server.close(); - } - } -}; - -var document$1 = class BaseDocument { - constructor(data) { - this.handlers = {}; - this.setup(); - Object.assign(this, data); - } - - setup() { - // add handlers - } - - clear_handlers() { - this.handlers = {}; - } - - add_handler(key, method) { - if (!this.handlers[key]) { - this.handlers[key] = []; - } - this.handlers[key].push(method || key); - } - - get(fieldname) { - return this[fieldname]; - } - - // set value and trigger change - async set(fieldname, value) { - this[fieldname] = await this.validate_field(fieldname, value); - await this.trigger('change', {doc: this, fieldname: fieldname, value: value}); - } - - set_name() { - // assign a random name by default - // override this to set a name - if (!this.name) { - this.name = Math.random().toString(36).substr(3); - } - } - - set_keywords() { - let keywords = []; - for (let fieldname of this.meta.get_keyword_fields()) { - keywords.push(this[fieldname]); - } - this.keywords = keywords.join(', '); - } - - get meta() { - if (!this._meta) { - this._meta = frappejs.get_meta(this.doctype); - } - return this._meta; - } - - append(key, document) { - if (!this[key]) { - this[key] = []; - } - this[key].push(this.init_doc(document)); - } - - init_doc(data) { - if (data.prototype instanceof Document) { - return data; - } else { - return new Document(d); - } - } - - async validate_field (key, value) { - let df = this.meta.get_field(key); - if (df && df.fieldtype=='Select') { - return this.meta.validate_select(df, value); - } - return value; - } - - get_valid_dict() { - let doc = {}; - for(let df of this.meta.get_valid_fields()) { - doc[df.fieldname] = this.get(df.fieldname); - } - return doc; - } - - set_standard_values() { - let now = new Date(); - if (this.docstatus === null || this.docstatus === undefined) { - this.docstatus = 0; - } - if (!this.owner) { - this.owner = frappejs.session.user; - this.creation = now; - } - this.modified_by = frappejs.session.user; - this.modified = now; - } - - async load() { - let data = await frappejs.db.get(this.doctype, this.name); - if (data.name) { - Object.assign(this, data); - } else { - throw new frappejs.errors.NotFound(`Not Found: ${this.doctype} ${this.name}`); - } - } - - async insert() { - this.set_name(); - this.set_standard_values(); - this.set_keywords(); - await this.trigger('validate'); - await this.trigger('before_insert'); - await frappejs.db.insert(this.doctype, this.get_valid_dict()); - await this.trigger('after_insert'); - await this.trigger('after_save'); - } - - async delete() { - await this.trigger('before_delete'); - await frappejs.db.delete(this.doctype, this.name); - await this.trigger('after_delete'); - } - - async trigger(key, params) { - if (this.handlers[key]) { - for (let method of this.handlers[key]) { - if (typeof method === 'string') { - await this[method](params); - } else { - await method(params); - } - } - } - } - - async update() { - this.set_standard_values(); - this.set_keywords(); - await this.trigger('validate'); - await this.trigger('before_update'); - await frappejs.db.update(this.doctype, this.get_valid_dict()); - await this.trigger('after_update'); - await this.trigger('after_save'); - return this; - } -}; - -var meta = class BaseMeta extends document$1 { - constructor(data) { - super(data); - this.event_handlers = {}; - this.list_options = { - fields: ['name', 'modified'] - }; - if (this.setup_meta) { - this.setup_meta(); - } - } - - get_field(fieldname) { - if (!this.field_map) { - this.field_map = {}; - for (let df of this.fields) { - this.field_map[df.fieldname] = df; - } - } - return this.field_map[fieldname]; - } - - on(key, fn) { - if (!this.event_handlers[key]) { - this.event_handlers[key] = []; - } - this.event_handlers[key].push(fn); - } - - async set(fieldname, value) { - this[fieldname] = value; - await this.trigger(fieldname); - } - - get(fieldname) { - return this[fieldname]; - } - - get_valid_fields() { - if (!this._valid_fields) { - this._valid_fields = []; - - const doctype_fields = this.fields.map((df) => df.fieldname); - - // standard fields - for (let df of frappejs.model.standard_fields) { - if (frappejs.db.type_map[df.fieldtype] && !doctype_fields.includes(df.fieldname)) { - this._valid_fields.push(df); - } - } - - // parent fields - if (this.istable) { - for (let df of frappejs.model.child_fields) { - if (frappejs.db.type_map[df.fieldtype] && !doctype_fields.includes(df.fieldname)) { - this._valid_fields.push(df); - } - } - } - - // doctype fields - for (let df of this.fields) { - if (frappejs.db.type_map[df.fieldtype]) { - this._valid_fields.push(df); - } - } - } - - return this._valid_fields; - } - - get_keyword_fields() { - return this.keyword_fields || this.meta.fields.filter(df => df.reqd).map(df => df.fieldname); - } - - validate_select(df, value) { - let options = df.options; - if (typeof options === 'string') { - // values given as string - options = df.options.split('\n'); - } - if (!options.includes(value)) { - throw new frappejs.errors.ValueError(`${value} must be one of ${options.join(", ")}`); - } - return value; - } - - async trigger(key, event = {}) { - Object.assign(event, { - doc: this, - name: key - }); - - if (this.event_handlers[key]) { - for (var handler of this.event_handlers[key]) { - await handler(event); - } - } - } -}; - -class Session { - constructor(user, user_key) { - this.user = user || 'guest'; - if (this.user !== 'guest') { - this.login(user_key); - } - } - - login(user_key) { - // could be password, sessionid, otp - } - -} - -var session = { Session: Session }; - -class BaseError extends Error { - constructor(status_code, ...params) { - super(...params); - this.status_code = status_code; - } -} - -class ValidationError extends BaseError { - constructor(...params) { super(417, ...params); } -} - -var errors = { - ValidationError: ValidationError, - ValueError: class ValueError extends ValidationError { }, - NotFound: class NotFound extends BaseError { - constructor(...params) { super(404, ...params); } - }, - Forbidden: class Forbidden extends BaseError { - constructor(...params) { super(403, ...params); } - }, -}; - -var common = { - init_libs(frappe) { - Object.assign(frappe, utils_1); - frappe.model = model; - frappe.BaseDocument = document$1; - frappe.BaseMeta = meta; - frappe._session = session; - frappe.errors = errors; - } -}; - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; -var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); -}; - -// path.resolve([from ...], to) -// posix version -function resolve() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : '/'; - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -} - -// path.normalize(path) -// posix version -function normalize(path) { - var isPathAbsolute = isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isPathAbsolute).join('/'); - - if (!path && !isPathAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isPathAbsolute ? '/' : '') + path; -} - -// posix version -function isAbsolute(path) { - return path.charAt(0) === '/'; -} - -// posix version -function join() { - var paths = Array.prototype.slice.call(arguments, 0); - return normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -} - - -// path.relative(from, to) -// posix version -function relative(from, to) { - from = resolve(from).substr(1); - to = resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -} - -var sep = '/'; -var delimiter = ':'; - -function dirname(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; -} - -function basename(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -} - - -function extname(path) { - return splitPath(path)[3]; -} -var path = { - extname: extname, - basename: basename, - dirname: dirname, - sep: sep, - delimiter: delimiter, - relative: relative, - join: join, - isAbsolute: isAbsolute, - normalize: normalize, - resolve: resolve -}; -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' ? - function (str, start, len) { return str.substr(start, len) } : - function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - }; - - -var path$1 = Object.freeze({ - resolve: resolve, - normalize: normalize, - isAbsolute: isAbsolute, - join: join, - relative: relative, - sep: sep, - delimiter: delimiter, - dirname: dirname, - basename: basename, - extname: extname, - default: path -}); - -var path$2 = ( path$1 && path ) || path$1; - -var rest_client = class RESTClient { - constructor({server, protocol='http'}) { - this.server = server; - this.protocol = protocol; - - this.init_type_map(); - - this.json_headers = { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }; - } - - connect() { - - } - - async insert(doctype, doc) { - doc.doctype = doctype; - let url = this.protocol + '://' + path$2.join(this.server, `/api/resource/${frappejs.slug(doctype)}`); - let response = await frappejs.fetch(url, { - method: 'POST', - headers: this.json_headers, - body: JSON.stringify(doc) - }); - - return await response.json(); - } - - async get(doctype, name) { - let url = this.protocol + '://' + path$2.join(this.server, `/api/resource/${frappejs.slug(doctype)}/${name}`); - let response = await frappejs.fetch(url, { - method: 'GET', - headers: this.json_headers - }); - return await response.json(); - } - - async get_all({doctype, fields, filters, start, limit, sort_by, order}) { - let url = this.protocol + '://' + path$2.join(this.server, `/api/resource/${frappejs.slug(doctype)}`); - - url = url + "?" + this.get_query_string({ - fields: JSON.stringify(fields), - filters: JSON.stringify(filters), - start: start, - limit: limit, - sort_by: sort_by, - order: order - }); - - let response = await frappejs.fetch(url, { - method: 'GET', - headers: this.json_headers - }); - return await response.json(); - - } - - async update(doctype, doc) { - doc.doctype = doctype; - let url = this.protocol + '://' + path$2.join(this.server, `/api/resource/${frappejs.slug(doctype)}/${doc.name}`); - let response = await frappejs.fetch(url, { - method: 'PUT', - headers: this.json_headers, - body: JSON.stringify(doc) - }); - - return await response.json(); - } - - async delete(doctype, name) { - let url = this.protocol + '://' + path$2.join(this.server, `/api/resource/${frappejs.slug(doctype)}/${name}`); - - let response = await frappejs.fetch(url, { - method: 'DELETE', - headers: this.json_headers - }); - - return await response.json(); - } - - get_query_string(params) { - return Object.keys(params) - .map(k => params[k] != null ? encodeURIComponent(k) + '=' + encodeURIComponent(params[k]) : null) - .filter(v => v) - .join('&'); - } - - async get_value(doctype, name, fieldname) { - let url = this.protocol + '://' + path$2.join(this.server, `/api/resource/${frappejs.slug(doctype)}/${name}/${fieldname}`); - let response = await frappejs.fetch(url, { - method: 'GET', - headers: this.json_headers - }); - return (await response.json()).value; - } - - init_type_map() { - this.type_map = { - 'Currency': true - ,'Int': true - ,'Float': true - ,'Percent': true - ,'Check': true - ,'Small Text': true - ,'Long Text': true - ,'Code': true - ,'Text Editor': true - ,'Date': true - ,'Datetime': true - ,'Time': true - ,'Text': true - ,'Data': true - ,'Link': true - ,'Dynamic Link':true - ,'Password': true - ,'Select': true - ,'Read Only': true - ,'Attach': true - ,'Attach Image':true - ,'Signature': true - ,'Color': true - ,'Barcode': true - ,'Geolocation': true - }; - } - - close() { - - } - -}; - -class Dropdown { - constructor({parent, label, btn_class = 'btn-secondary', items = []}) { - Object.assign(this, arguments[0]); - - this.dropdown_items = []; - this.setup_background_click(); - this.make(); - - // init items - if (this.items) { - for (item of this.items) { - this.add_item(item.label, item.action); - } - } - } - - setup_background_click() { - if (!document.dropdown_setup) { - frappejs.dropdowns = []; - // setup hiding all dropdowns on click - document.addEventListener('click', (event) => { - for (let d of frappejs.dropdowns) { - if (d.button !== event.target) { - d.collapse(); - } - } - }); - document.dropdown_setup = true; - } - frappejs.dropdowns.push(this); - } - - make() { - this.dropdown = frappejs.ui.add('div', 'dropdown', this.parent); - this.make_button(); - this.dropdown_menu = frappejs.ui.add('div', 'dropdown-menu', this.dropdown); - } - - make_button() { - this.button = frappejs.ui.add('button', 'btn ' + this.btn_class, - this.dropdown); - frappejs.ui.add_class(this.button, 'dropdown-toggle'); - this.button.textContent = this.label; - this.button.addEventListener('click', () => { - this.toggle(); - }); - } - - expand() { - this.dropdown.classList.add('show'); - this.dropdown_menu.classList.add('show'); - } - - collapse() { - this.dropdown.classList.remove('show'); - this.dropdown_menu.classList.remove('show'); - } - - toggle() { - this.dropdown.classList.toggle('show'); - this.dropdown_menu.classList.toggle('show'); - } - - add_item(label, action) { - let item = frappejs.ui.add('button', 'dropdown-item', this.dropdown_menu); - item.textContent = label; - item.setAttribute('type', 'button'); - if (typeof action === 'string') { - item.src = action; - item.addEventListener('click', async () => { - await frappejs.router.set_route(action); - this.toggle(); - }); - } else { - item.addEventListener('click', async () => { - await action(); - this.toggle(); - }); - } - this.dropdown_items.push(item); - } - - float_right() { - frappejs.ui.add_class(this.dropdown, 'float-right'); - frappejs.ui.add_class(this.dropdown_menu, 'dropdown-menu-right'); - } -} - -var dropdown = Dropdown; - -var ui = { - add(tag, className, parent) { - let element = document.createElement(tag); - if (className) { - for (let c of className.split(' ')) { - this.add_class(element, c); - } - } - if (parent) { - parent.appendChild(element); - } - return element; - }, - - remove(element) { - element.parentNode.removeChild(element); - }, - - add_class(element, className) { - if (element.classList) { - element.classList.add(className); - } else { - element.className += " " + className; - } - }, - - remove_class(element, className) { - if (element.classList) { - element.classList.remove(className); - } else { - element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); - } - }, - - toggle(element, default_display = '') { - element.style.display = element.style.display === 'none' ? default_display : 'none'; - }, - - make_dropdown(label, parent, btn_class = 'btn-secondary') { - return new dropdown({parent: parent, label:label, btn_class:btn_class}); - } - -}; - -var router = class Router { - constructor() { - this.last_route = null; - this.current_page = null; - this.static_routes = []; - this.dynamic_routes = []; - } - - add(route, handler) { - let page = {handler: handler, route: route}; - - // '/todo/:name/:place'.match(/:([^/]+)/g); - page.param_keys = route.match(/:([^/]+)/g); - - if (page.param_keys) { - // make expression - // '/todo/:name/:place'.replace(/\/:([^/]+)/g, "\/([^/]+)"); - page.depth = route.split('/').length; - page.expression = route.replace(/\/:([^/]+)/g, "\/([^/]+)"); - this.dynamic_routes.push(page); - this.sort_dynamic_routes(); - } else { - this.static_routes.push(page); - this.sort_static_routes(); - } - } - - sort_dynamic_routes() { - // routes with more parts first - this.dynamic_routes = this.dynamic_routes.sort((a, b) => { - if (a.depth < b.depth) { - return 1; - } else if (a.depth > b.depth) { - return -1; - } else { - if (a.param_keys.length !== b.param_keys.length) { - return a.param_keys.length > b.param_keys.length ? 1 : -1; - } else { - return a.route.length > b.route.length ? 1 : -1; - } - } - }); - } - - sort_static_routes() { - // longer routes on first - this.static_routes = this.static_routes.sort((a, b) => { - return a.route.length > b.route.length ? 1 : -1; - }); - } - - listen() { - window.addEventListener('hashchange', (event) => { - let route = this.get_route_string(); - if (this.last_route !== route) { - this.show(route); - } - }); - } - - // split and get routes - get_route() { - let route = this.get_route_string(); - if (route) { - return route.split('/'); - } else { - return []; - } - } - - async set_route(...parts) { - const route = parts.join('/'); - - // setting this first, does not trigger show via hashchange, - // since we want to this with async/await, we need to trigger - // the show method - this.last_route = route; - - window.location.hash = route; - await this.show(route); - } - - async show(route) { - if (route && route[0]==='#') { - route = route.substr(1); - } - - this.last_route = route; - - if (!route) { - route = this.default; - } - let page = this.match(route); - - if (page) { - if (typeof page.handler==='function') { - await page.handler(page.params); - } else { - await page.handler.show(page.params); - } - } else { - await this.match('not-found').handler({route: route}); - } - } - - match(route) { - // match static - for(let page of this.static_routes) { - if (page.route === route) { - return {handler: page.handler}; - } - } - - // match dynamic - for(let page of this.dynamic_routes) { - let matches = route.match(new RegExp(page.expression)); - - if (matches && matches.length == page.param_keys.length + 1) { - let params = {}; - for (let i=0; i < page.param_keys.length; i++) { - params[page.param_keys[i].substr(1)] = matches[i + 1]; - } - return {handler:page.handler, params: params}; - } - } - } - - get_route_string() { - let route = window.location.hash; - if (route && route[0]==='#') { - route = route.substr(1); - } - return route; - } -}; - -var observable = class Observable { - constructor() { - this._handlers = {}; - } - - on(event, fn) { - if (!this._handlers[event]) { - this._handlers[event] = []; - } - this._handlers[event].push(fn); - } - - async trigger(event, params) { - if (this._handlers[event]) { - for (let handler of this._handlers[event]) { - await handler(params); - } - } - } -}; - -var page = class Page extends observable { - constructor(title) { - super(); - this.title = title; - this.make(); - } - - make() { - this.wrapper = frappejs.ui.add('div', 'page hide', frappejs.desk.body); - this.body = frappejs.ui.add('div', 'page-body', this.wrapper); - } - - hide() { - this.wrapper.classList.add('hide'); - this.trigger('hide'); - } - - async show(params) { - if (frappejs.router.current_page) { - frappejs.router.current_page.hide(); - } - this.wrapper.classList.remove('hide'); - this.body.classList.remove('hide'); - - if (this.page_error) { - this.page_error.classList.add('hide'); - } - - frappejs.router.current_page = this; - document.title = this.title; - - await this.trigger('show', params); - } - - render_error(title, message) { - if (!this.page_error) { - this.page_error = frappejs.ui.add('div', 'page-error', this.wrapper); - } - this.body.classList.add('hide'); - this.page_error.classList.remove('hide'); - this.page_error.innerHTML = `

${title ? title : ""}

${message ? message : ""}

`; - } -}; - -var list = class BaseList { - constructor({doctype, parent, fields}) { - this.doctype = doctype; - this.parent = parent; - this.fields = fields; - - this.meta = frappejs.get_meta(this.doctype); - - this.start = 0; - this.page_length = 20; - - this.body = null; - this.rows = []; - this.data = []; - } - - async run() { - this.make_body(); - - let data = await this.get_data(); - - for (let i=0; i< Math.min(this.page_length, data.length); i++) { - this.render_row(this.start + i, data[i]); - } - - if (this.start > 0) { - this.data = this.data.concat(data); - } else { - this.data = data; - } - - this.clear_empty_rows(); - this.update_more(data.length > this.page_length); - } - - async get_data() { - return await frappejs.db.get_all({ - doctype: this.doctype, - fields: this.get_fields(), - filters: this.get_filters(), - start: this.start, - limit: this.page_length + 1 - }); - } - - get_fields() { - return ['name']; - } - - async append() { - this.start += this.page_length; - await this.run(); - } - - get_filters() { - let filters = {}; - if (this.search_input.value) { - filters.keywords = ['like', '%' + this.search_input.value + '%']; - } - return filters; - } - - make_body() { - if (!this.body) { - this.make_toolbar(); - //this.make_new(); - this.body = frappejs.ui.add('div', 'list-body', this.parent); - this.make_more_btn(); - } - } - - make_toolbar() { - this.toolbar = frappejs.ui.add('div', 'list-toolbar', this.parent); - this.toolbar.innerHTML = ` -
-
- -
- -
- `; - - this.search_input = this.toolbar.querySelector('input'); - this.search_input.addEventListener('keypress', (event) => { - if (event.keyCode===13) { - this.run(); - } - }); - - this.search_button = this.toolbar.querySelector('.btn-search'); - this.search_button.addEventListener('click', (event) => { - this.run(); - }); - } - - make_more_btn() { - this.more_btn = frappejs.ui.add('button', 'btn btn-secondary hide', this.parent); - this.more_btn.textContent = 'More'; - this.more_btn.addEventListener('click', () => { - this.append(); - }); - } - - render_row(i, data) { - let row = this.get_row(i); - row.innerHTML = this.get_row_html(data); - row.style.display = 'block'; - } - - get_row_html(data) { - return `${data.name}`; - } - - get_row(i) { - if (!this.rows[i]) { - this.rows[i] = frappejs.ui.add('div', 'list-row py-2', this.body); - } - return this.rows[i]; - } - - clear_empty_rows() { - if (this.rows.length > this.data.length) { - for (let i=this.data.length; i < this.rows.length; i++) { - let row = this.get_row(i); - row.innerHTML = ''; - row.style.display = 'none'; - } - } - } - - update_more(show) { - if (show) { - this.more_btn.classList.remove('hide'); - } else { - this.more_btn.classList.add('hide'); - } - } - -}; - -class BaseControl { - constructor(docfield, form) { - Object.assign(this, docfield); - this.form = form; - if (!this.fieldname) { - this.fieldname = frappejs.slug(this.label); - } - this.parent = form.form; - if (this.setup) { - this.setup(); - } - } - - bind(doc) { - this.doc = doc; - this.set_doc_value(); - } - - refresh() { - this.make(); - this.set_doc_value(); - } - - set_doc_value() { - if (this.doc) { - this.set_input_value(this.doc.get(this.fieldname)); - } - } - - make() { - if (!this.form_group) { - this.make_form_group(); - this.make_label(); - this.make_input(); - this.set_input_name(); - this.make_description(); - this.bind_change_event(); - } - } - - make_form_group() { - this.form_group = frappejs.ui.add('div', 'form-group', this.parent); - } - - make_label() { - this.label_element = frappejs.ui.add('label', null, this.form_group); - this.label_element.textContent = this.label; - } - - make_input() { - this.input = frappejs.ui.add('input', 'form-control', this.form_group); - this.input.setAttribute('autocomplete', 'off'); - } - - set_input_name() { - this.input.setAttribute('name', this.fieldname); - } - - make_description() { - if (this.description) { - this.description_element = frappejs.ui.add('small', 'form-text text-muted', this.form_group); - this.description_element.textContent = this.description; - } - } - - set_input_value(value) { - this.input.value = this.format(value); - } - - format(value) { - if (value === undefined || value === null) { - value = ''; - } - return value; - } - - async get_parsed_value() { - return await this.parse(this.input.value); - } - - get_input_value() { - return this.input.value; - } - - async parse(value) { - return value; - } - - async validate(value) { - return value; - } - - bind_change_event() { - this.input.addEventListener('change', (e) => this.handle_change(e)); - } - - async handle_change(e) { - let value = await this.parse(this.get_input_value()); - value = await this.validate(value); - if (this.doc[this.fieldname] !== value) { - await this.doc.set(this.fieldname, value); - } - } - - disable() { - this.input.setAttribute('disabled', 'disabled'); - } - - enable() { - this.input.removeAttribute('disabled'); - } -} - -var base = BaseControl; - -class DataControl extends base { - make() { - super.make(); - this.input.setAttribute('type', 'text'); - } -} - -var data = DataControl; - -class TextControl extends base { - make_input() { - this.input = frappe.ui.add('textarea', 'form-control', this.form_group); - } - make() { - super.make(); - this.input.setAttribute('rows', '8'); - } -} - -var text = TextControl; - -class SelectControl extends base { - make_input() { - this.input = frappe.ui.add('select', 'form-control', this.form_group); - - let options = this.options; - if (typeof options==='string') { - options = options.split('\n'); - } - - for (let value of options) { - let option = frappe.ui.add('option', null, this.input); - option.textContent = value; - option.setAttribute('value', value); - } - } - make() { - super.make(); - this.input.setAttribute('row', '3'); - } -} - -var select = SelectControl; - -function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; -} - -var awesomplete = createCommonjsModule(function (module) { -/** - * Simple, lightweight, usable local autocomplete library for modern browsers - * Because there weren’t enough autocomplete scripts in the world? Because I’m completely insane and have NIH syndrome? Probably both. :P - * @author Lea Verou http://leaverou.github.io/awesomplete - * MIT license - */ - -(function () { - -var _ = function (input, o) { - var me = this; - - // Setup - - this.isOpened = false; - - this.input = $(input); - this.input.setAttribute("autocomplete", "off"); - this.input.setAttribute("aria-autocomplete", "list"); - - o = o || {}; - - configure(this, { - minChars: 2, - maxItems: 10, - autoFirst: false, - data: _.DATA, - filter: _.FILTER_CONTAINS, - sort: o.sort === false ? false : _.SORT_BYLENGTH, - item: _.ITEM, - replace: _.REPLACE - }, o); - - this.index = -1; - - // Create necessary elements - - this.container = $.create("div", { - className: "awesomplete", - around: input - }); - - this.ul = $.create("ul", { - hidden: "hidden", - inside: this.container - }); - - this.status = $.create("span", { - className: "visually-hidden", - role: "status", - "aria-live": "assertive", - "aria-relevant": "additions", - inside: this.container - }); - - // Bind events - - this._events = { - input: { - "input": this.evaluate.bind(this), - "blur": this.close.bind(this, { reason: "blur" }), - "keydown": function(evt) { - var c = evt.keyCode; - - // If the dropdown `ul` is in view, then act on keydown for the following keys: - // Enter / Esc / Up / Down - if(me.opened) { - if (c === 13 && me.selected) { // Enter - evt.preventDefault(); - me.select(); - } - else if (c === 27) { // Esc - me.close({ reason: "esc" }); - } - else if (c === 38 || c === 40) { // Down/Up arrow - evt.preventDefault(); - me[c === 38? "previous" : "next"](); - } - } - } - }, - form: { - "submit": this.close.bind(this, { reason: "submit" }) - }, - ul: { - "mousedown": function(evt) { - var li = evt.target; - - if (li !== this) { - - while (li && !/li/i.test(li.nodeName)) { - li = li.parentNode; - } - - if (li && evt.button === 0) { // Only select on left click - evt.preventDefault(); - me.select(li, evt.target); - } - } - } - } - }; - - $.bind(this.input, this._events.input); - $.bind(this.input.form, this._events.form); - $.bind(this.ul, this._events.ul); - - if (this.input.hasAttribute("list")) { - this.list = "#" + this.input.getAttribute("list"); - this.input.removeAttribute("list"); - } - else { - this.list = this.input.getAttribute("data-list") || o.list || []; - } - - _.all.push(this); -}; - -_.prototype = { - set list(list) { - if (Array.isArray(list)) { - this._list = list; - } - else if (typeof list === "string" && list.indexOf(",") > -1) { - this._list = list.split(/\s*,\s*/); - } - else { // Element or CSS selector - list = $(list); - - if (list && list.children) { - var items = []; - slice.apply(list.children).forEach(function (el) { - if (!el.disabled) { - var text = el.textContent.trim(); - var value = el.value || text; - var label = el.label || text; - if (value !== "") { - items.push({ label: label, value: value }); - } - } - }); - this._list = items; - } - } - - if (document.activeElement === this.input) { - this.evaluate(); - } - }, - - get selected() { - return this.index > -1; - }, - - get opened() { - return this.isOpened; - }, - - close: function (o) { - if (!this.opened) { - return; - } - - this.ul.setAttribute("hidden", ""); - this.isOpened = false; - this.index = -1; - - $.fire(this.input, "awesomplete-close", o || {}); - }, - - open: function () { - this.ul.removeAttribute("hidden"); - this.isOpened = true; - - if (this.autoFirst && this.index === -1) { - this.goto(0); - } - - $.fire(this.input, "awesomplete-open"); - }, - - destroy: function() { - //remove events from the input and its form - $.unbind(this.input, this._events.input); - $.unbind(this.input.form, this._events.form); - - //move the input out of the awesomplete container and remove the container and its children - var parentNode = this.container.parentNode; - - parentNode.insertBefore(this.input, this.container); - parentNode.removeChild(this.container); - - //remove autocomplete and aria-autocomplete attributes - this.input.removeAttribute("autocomplete"); - this.input.removeAttribute("aria-autocomplete"); - - //remove this awesomeplete instance from the global array of instances - var indexOfAwesomplete = _.all.indexOf(this); - - if (indexOfAwesomplete !== -1) { - _.all.splice(indexOfAwesomplete, 1); - } - }, - - next: function () { - var count = this.ul.children.length; - this.goto(this.index < count - 1 ? this.index + 1 : (count ? 0 : -1) ); - }, - - previous: function () { - var count = this.ul.children.length; - var pos = this.index - 1; - - this.goto(this.selected && pos !== -1 ? pos : count - 1); - }, - - // Should not be used, highlights specific item without any checks! - goto: function (i) { - var lis = this.ul.children; - - if (this.selected) { - lis[this.index].setAttribute("aria-selected", "false"); - } - - this.index = i; - - if (i > -1 && lis.length > 0) { - lis[i].setAttribute("aria-selected", "true"); - this.status.textContent = lis[i].textContent; - - // scroll to highlighted element in case parent's height is fixed - this.ul.scrollTop = lis[i].offsetTop - this.ul.clientHeight + lis[i].clientHeight; - - $.fire(this.input, "awesomplete-highlight", { - text: this.suggestions[this.index] - }); - } - }, - - select: function (selected, origin) { - if (selected) { - this.index = $.siblingIndex(selected); - } else { - selected = this.ul.children[this.index]; - } - - if (selected) { - var suggestion = this.suggestions[this.index]; - - var allowed = $.fire(this.input, "awesomplete-select", { - text: suggestion, - origin: origin || selected - }); - - if (allowed) { - this.replace(suggestion); - this.close({ reason: "select" }); - $.fire(this.input, "awesomplete-selectcomplete", { - text: suggestion - }); - } - } - }, - - evaluate: function() { - var me = this; - var value = this.input.value; - - if (value.length >= this.minChars && this._list.length > 0) { - this.index = -1; - // Populate list with options that match - this.ul.innerHTML = ""; - - this.suggestions = this._list - .map(function(item) { - return new Suggestion(me.data(item, value)); - }) - .filter(function(item) { - return me.filter(item, value); - }); - - if (this.sort !== false) { - this.suggestions = this.suggestions.sort(this.sort); - } - - this.suggestions = this.suggestions.slice(0, this.maxItems); - - this.suggestions.forEach(function(text) { - me.ul.appendChild(me.item(text, value)); - }); - - if (this.ul.children.length === 0) { - this.close({ reason: "nomatches" }); - } else { - this.open(); - } - } - else { - this.close({ reason: "nomatches" }); - } - } -}; - -// Static methods/properties - -_.all = []; - -_.FILTER_CONTAINS = function (text, input) { - return RegExp($.regExpEscape(input.trim()), "i").test(text); -}; - -_.FILTER_STARTSWITH = function (text, input) { - return RegExp("^" + $.regExpEscape(input.trim()), "i").test(text); -}; - -_.SORT_BYLENGTH = function (a, b) { - if (a.length !== b.length) { - return a.length - b.length; - } - - return a < b? -1 : 1; -}; - -_.ITEM = function (text, input) { - var html = input.trim() === "" ? text : text.replace(RegExp($.regExpEscape(input.trim()), "gi"), "$&"); - return $.create("li", { - innerHTML: html, - "aria-selected": "false" - }); -}; - -_.REPLACE = function (text) { - this.input.value = text.value; -}; - -_.DATA = function (item/*, input*/) { return item; }; - -// Private functions - -function Suggestion(data) { - var o = Array.isArray(data) - ? { label: data[0], value: data[1] } - : typeof data === "object" && "label" in data && "value" in data ? data : { label: data, value: data }; - - this.label = o.label || o.value; - this.value = o.value; -} -Object.defineProperty(Suggestion.prototype = Object.create(String.prototype), "length", { - get: function() { return this.label.length; } -}); -Suggestion.prototype.toString = Suggestion.prototype.valueOf = function () { - return "" + this.label; -}; - -function configure(instance, properties, o) { - for (var i in properties) { - var initial = properties[i], - attrValue = instance.input.getAttribute("data-" + i.toLowerCase()); - - if (typeof initial === "number") { - instance[i] = parseInt(attrValue); - } - else if (initial === false) { // Boolean options must be false by default anyway - instance[i] = attrValue !== null; - } - else if (initial instanceof Function) { - instance[i] = null; - } - else { - instance[i] = attrValue; - } - - if (!instance[i] && instance[i] !== 0) { - instance[i] = (i in o)? o[i] : initial; - } - } -} - -// Helpers - -var slice = Array.prototype.slice; - -function $(expr, con) { - return typeof expr === "string"? (con || document).querySelector(expr) : expr || null; -} - -function $$(expr, con) { - return slice.call((con || document).querySelectorAll(expr)); -} - -$.create = function(tag, o) { - var element = document.createElement(tag); - - for (var i in o) { - var val = o[i]; - - if (i === "inside") { - $(val).appendChild(element); - } - else if (i === "around") { - var ref = $(val); - ref.parentNode.insertBefore(element, ref); - element.appendChild(ref); - } - else if (i in element) { - element[i] = val; - } - else { - element.setAttribute(i, val); - } - } - - return element; -}; - -$.bind = function(element, o) { - if (element) { - for (var event in o) { - var callback = o[event]; - - event.split(/\s+/).forEach(function (event) { - element.addEventListener(event, callback); - }); - } - } -}; - -$.unbind = function(element, o) { - if (element) { - for (var event in o) { - var callback = o[event]; - - event.split(/\s+/).forEach(function(event) { - element.removeEventListener(event, callback); - }); - } - } -}; - -$.fire = function(target, type, properties) { - var evt = document.createEvent("HTMLEvents"); - - evt.initEvent(type, true, true ); - - for (var j in properties) { - evt[j] = properties[j]; - } - - return target.dispatchEvent(evt); -}; - -$.regExpEscape = function (s) { - return s.replace(/[-\\^$*+?.()|[\]{}]/g, "\\$&"); -}; - -$.siblingIndex = function (el) { - /* eslint-disable no-cond-assign */ - for (var i = 0; el = el.previousElementSibling; i++); - return i; -}; - -// Initialization - -function init() { - $$("input.awesomplete").forEach(function (input) { - new _(input); - }); -} - -// Are we in a browser? Check for Document constructor -if (typeof Document !== "undefined") { - // DOM already loaded? - if (document.readyState !== "loading") { - init(); - } - else { - // Wait for it - document.addEventListener("DOMContentLoaded", init); - } -} - -_.$ = $; -_.$$ = $$; - -// Make sure to export Awesomplete on self when in a browser -if (typeof self !== "undefined") { - self.Awesomplete = _; -} - -// Expose Awesomplete as a CJS module -if ('object' === "object" && module.exports) { - module.exports = _; -} - -return _; - -}()); -}); - -class LinkControl extends base { - make() { - super.make(); - this.input.setAttribute('type', 'text'); - this.awesomplete = new awesomplete(this.input, { - autoFirst: true, - minChars: 0, - maxItems: 99 - }); - - // rebuild the list on input - this.input.addEventListener('input', async (event) => { - this.awesomplete.list = await this.get_list(this.input.value); - }); - } - - async get_list(query) { - return (await frappejs.db.get_all({ - doctype: this.options, - filters: this.get_filters(query), - limit: 50 - })).map(d => d.name); - } - - get_filters(query) { - return { keywords: ["like", query] } - } -} - -var link = LinkControl; - -class FloatControl extends base { - make() { - super.make(); - this.input.setAttribute('type', 'text'); - this.input.classList.add('text-right'); - } -} - -var float_1 = FloatControl; - -class CurrencyControl extends float_1 { - parse(value) { - return frappejs.parse_number(value); - } - format(value) { - return frappejs.format_number(value); - } -} - -var currency = CurrencyControl; - -const control_classes = { - Data: data, - Text: text, - Select: select, - Link: link, - Float: float_1, - Currency: currency -}; - -var controls = { - get_control_class(fieldtype) { - return control_classes[fieldtype]; - }, - make_control(field, parent) { - const control_class = this.get_control_class(field.fieldtype); - let control = new control_class(field, parent); - control.make(); - return control; - } -}; - -var form = class BaseForm extends observable { - constructor({doctype, parent, submit_label='Submit'}) { - super(); - this.parent = parent; - this.doctype = doctype; - this.submit_label = submit_label; - - this.controls = {}; - this.controls_list = []; - - this.meta = frappejs.get_meta(this.doctype); - if (this.setup) { - this.setup(); - } - this.make(); - } - - make() { - if (this.body || !this.parent) { - return; - } - - this.body = frappejs.ui.add('div', 'form-body', this.parent); - this.make_toolbar(); - - this.form = frappejs.ui.add('form', null, this.body); - for(let df of this.meta.fields) { - if (controls.get_control_class(df.fieldtype)) { - let control = controls.make_control(df, this); - this.controls_list.push(control); - this.controls[df.fieldname] = control; - } - } - } - - make_toolbar() { - this.toolbar = frappejs.ui.add('div', 'form-toolbar text-right', this.body); - this.toolbar.innerHTML = ` - - - `; - - this.btn_submit = this.toolbar.querySelector('.btn-submit'); - this.btn_submit.addEventListener('click', async (event) => { - this.submit(); - event.preventDefault(); - }); - - this.btn_delete = this.toolbar.querySelector('.btn-delete'); - this.btn_delete.addEventListener('click', async () => { - await this.doc.delete(); - this.show_alert('Deleted', 'success'); - this.trigger('delete'); - }); - } - - async use(doc, is_new = false) { - if (this.doc) { - // clear handlers of outgoing doc - this.doc.clear_handlers(); - } - this.clear_alert(); - this.doc = doc; - this.is_new = is_new; - for (let control of this.controls_list) { - control.bind(this.doc); - } - - // refresh value in control - this.doc.add_handler('change', (params) => { - let control = this.controls[params.fieldname]; - if (control && control.get_input_value() !== control.format(params.fieldname)) { - control.set_doc_value(); - } - }); - - this.trigger('use', {doc:doc}); - } - - async submit() { - try { - if (this.is_new || this.doc.__not_inserted) { - await this.doc.insert(); - } else { - await this.doc.update(); - } - await this.refresh(); - this.show_alert('Saved', 'success'); - } catch (e) { - this.show_alert('Failed', 'danger'); - } - await this.trigger('submit'); - } - - refresh() { - for(let control of this.controls_list) { - control.refresh(); - } - } - - show_alert(message, type, clear_after = 5) { - this.clear_alert(); - this.alert = frappejs.ui.add('div', `alert alert-${type}`, this.body); - this.alert.textContent = message; - setTimeout(() => { - this.clear_alert(); - }, clear_after * 1000); - } - - clear_alert() { - if (this.alert) { - frappejs.ui.remove(this.alert); - this.alert = null; - } - } - -}; - -var view = { - get_form_class(doctype) { - return this.get_view_class(doctype, 'Form', form); - }, - get_list_class(doctype) { - return this.get_view_class(doctype, 'List', list); - }, - get_view_class(doctype, class_name, default_class) { - let client_module = this.get_client_module(doctype); - if (client_module && client_module[class_name]) { - return client_module[class_name]; - } else { - return default_class; - } - }, - - get_client_module(doctype) { - return frappe.modules[`${doctype}_client`]; - } -}; - -var formpage = class FormPage extends page { - constructor(doctype) { - let meta = frappe.get_meta(doctype); - super(`Edit ${meta.name}`); - this.meta = meta; - - this.form = new (view.get_form_class(doctype))({ - doctype: doctype, - parent: this.body - }); - - this.on('show', async (params) => { - await this.show_doc(params.doctype, params.name); - }); - - // if name is different after saving, change the route - this.form.on('submit', async (params) => { - let route = frappe.router.get_route(); - if (!(route && route[2] === this.form.doc.name)) { - await frappe.router.set_route('edit', this.form.doc.doctype, this.form.doc.name); - this.form.show_alert('Added', 'success'); - } - }); - - this.form.on('delete', async (params) => { - await frappe.router.set_route('list', this.form.doctype); - }); - } - - async show_doc(doctype, name) { - try { - this.doc = await frappe.get_doc(doctype, name); - this.form.use(this.doc); - } catch (e) { - this.render_error(e.status_code, e.message); - } - } -}; - -var listpage = class FormPage extends page { - constructor(doctype) { - let meta = frappe.get_meta(doctype); - super(`List ${meta.name}`); - this.list = new (view.get_list_class(doctype))({ - doctype: doctype, - parent: this.body - }); - this.on('show', async () => { - await this.list.run(); - }); - } -}; - -var navbar = class Navbar { - constructor({brand_label = 'Home'} = {}) { - Object.assign(this, arguments[0]); - this.items = {}; - this.navbar = frappejs.ui.add('div', 'navbar navbar-expand-md border-bottom', document.querySelector('body')); - - this.brand = frappejs.ui.add('a', 'navbar-brand', this.navbar); - this.brand.href = '#'; - this.brand.textContent = brand_label; - - this.toggler = frappejs.ui.add('button', 'navbar-toggler', this.navbar); - this.toggler.setAttribute('type', 'button'); - this.toggler.setAttribute('data-toggle', 'collapse'); - this.toggler.setAttribute('data-target', 'desk-navbar'); - this.toggler.innerHTML = ``; - - this.navbar_collapse = frappejs.ui.add('div', 'collapse navbar-collapse', this.navbar); - this.navbar_collapse.setAttribute('id', 'desk-navbar'); - - this.nav = frappejs.ui.add('ul', 'navbar-nav mr-auto', this.navbar_collapse); - } - - add_item(label, route) { - let item = frappejs.ui.add('li', 'nav-item', this.nav); - item.link = frappejs.ui.add('a', 'nav-link', item); - item.link.textContent = label; - item.link.href = route; - this.items[label] = item; - return item; - } - - add_dropdown(label) { - - } - - add_search() { - let form = frappejs.ui.add('form', 'form-inline my-2 my-md-0', this.nav); - - } -}; - -var desk = class Desk { - constructor() { - frappejs.router = new router(); - frappejs.router.listen(); - - let body = document.querySelector('body'); - this.navbar = new navbar(); - this.container = frappejs.ui.add('div', 'container-fluid', body); - - this.container_row = frappejs.ui.add('div', 'row', this.container); - this.sidebar = frappejs.ui.add('div', 'col-md-2 p-3 sidebar', this.container_row); - this.body = frappejs.ui.add('div', 'col-md-10 p-3 main', this.container_row); - - this.sidebar_items = []; - this.pages = { - lists: {}, - forms: {} - }; - - this.init_routes(); - - // this.search = new Search(this.nav); - } - - init_routes() { - frappejs.router.add('not-found', async (params) => { - if (!this.not_found_page) { - this.not_found_page = new page('Not Found'); - } - await this.not_found_page.show(); - this.not_found_page.render_error('Not Found', params ? params.route : ''); - }); - - frappejs.router.add('list/:doctype', async (params) => { - let page$$1 = this.get_list_page(params.doctype); - await page$$1.show(params); - }); - - frappejs.router.add('edit/:doctype/:name', async (params) => { - let page$$1 = this.get_form_page(params.doctype); - await page$$1.show(params); - }); - - frappejs.router.add('new/:doctype', async (params) => { - let doc = await frappejs.get_new_doc(params.doctype); - // unset the name, its local - await frappejs.router.set_route('edit', doc.doctype, doc.name); - await doc.set('name', ''); - }); - - } - - get_list_page(doctype) { - if (!this.pages.lists[doctype]) { - this.pages.lists[doctype] = new listpage(doctype); - } - return this.pages.lists[doctype]; - } - - get_form_page(doctype) { - if (!this.pages.forms[doctype]) { - this.pages.forms[doctype] = new formpage(doctype); - } - return this.pages.forms[doctype]; - } - - add_sidebar_item(label, action) { - let item = frappejs.ui.add('a', '', frappejs.ui.add('p', null, frappejs.desk.sidebar)); - item.textContent = label; - if (typeof action === 'string') { - item.href = action; - } else { - item.addEventHandler('click', () => { - action(); - }); - } - } - -}; - -frappejs.ui = ui; - - -var client = { - async start({server}) { - window.frappe = frappejs; - frappejs.init(); - common.init_libs(frappejs); - - frappejs.fetch = window.fetch.bind(); - frappejs.db = await new rest_client({server: server}); - - frappejs.flags.cache_docs = true; - - frappejs.desk = new desk(); - await frappejs.login(); - } -}; - -var autoname = "hash"; -var name = "ToDo"; -var doctype = "DocType"; -var issingle = 0; -var keyword_fields = ["subject","description"]; -var fields = [{"fieldname":"subject","label":"Subject","fieldtype":"Data","reqd":1},{"fieldname":"description","label":"Description","fieldtype":"Text"},{"fieldname":"status","label":"Status","fieldtype":"Select","options":["Open","Closed"],"default":"Open","reqd":1}]; -var todo = { - autoname: autoname, - name: name, - doctype: doctype, - issingle: issingle, - keyword_fields: keyword_fields, - fields: fields -}; - -var todo$1 = Object.freeze({ - autoname: autoname, - name: name, - doctype: doctype, - issingle: issingle, - keyword_fields: keyword_fields, - fields: fields, - default: todo -}); - -var require$$0$3 = ( todo$1 && todo ) || todo$1; - -class ToDoMeta extends meta { - setup_meta() { - Object.assign(this, require$$0$3); - } -} - -class ToDo extends document$1 { - setup() { - this.add_handler('validate'); - } - validate() { - if (!this.status) { - this.status = 'Open'; - } - } -} - -var todo$2 = { - Document: ToDo, - Meta: ToDoMeta -}; - -var name$1 = "Account"; -var doctype$1 = "DocType"; -var issingle$1 = 0; -var keyword_fields$1 = ["name","account_type"]; -var fields$1 = [{"fieldname":"name","label":"Account Name","fieldtype":"Data","reqd":1},{"fieldname":"parent_account","label":"Parent Account","fieldtype":"Link","options":"Account"},{"fieldname":"account_type","label":"Account Type","fieldtype":"Select","options":["Asset","Liability","Equity","Income","Expense"]}]; -var account = { - name: name$1, - doctype: doctype$1, - issingle: issingle$1, - keyword_fields: keyword_fields$1, - fields: fields$1 -}; - -var account$1 = Object.freeze({ - name: name$1, - doctype: doctype$1, - issingle: issingle$1, - keyword_fields: keyword_fields$1, - fields: fields$1, - default: account -}); - -var require$$0$4 = ( account$1 && account ) || account$1; - -class AccountMeta extends meta { - setup_meta() { - Object.assign(this, require$$0$4); - } -} - -class Account extends document$1 { - setup() { - this.add_handler('validate'); - } - async validate() { - if (!this.account_type) { - if (this.parent_account) { - this.account_type = await frappejs.db.get_value('Account', this.parent_account, 'account_type'); - } else { - this.account_type = 'Asset'; - } - } - } -} - -var account$2 = { - Document: Account, - Meta: AccountMeta -}; - -var name$2 = "Item"; -var doctype$2 = "DocType"; -var issingle$2 = 0; -var keyword_fields$2 = ["name","description"]; -var fields$2 = [{"fieldname":"name","label":"Item Name","fieldtype":"Data","reqd":1},{"fieldname":"description","label":"Description","fieldtype":"Text"},{"fieldname":"unit","label":"Unit","fieldtype":"Select","options":["No","Kg","Gram","Hour","Day"]},{"fieldname":"rate","label":"Rate","fieldtype":"Currency"}]; -var item$1 = { - name: name$2, - doctype: doctype$2, - issingle: issingle$2, - keyword_fields: keyword_fields$2, - fields: fields$2 -}; - -var item$2 = Object.freeze({ - name: name$2, - doctype: doctype$2, - issingle: issingle$2, - keyword_fields: keyword_fields$2, - fields: fields$2, - default: item$1 -}); - -var require$$0$5 = ( item$2 && item$1 ) || item$2; - -class ItemMeta extends meta { - setup_meta() { - Object.assign(this, require$$0$5); - } -} - -class Item extends document$1 { -} - -var item$3 = { - Document: Item, - Meta: ItemMeta -}; - -var name$3 = "Customer"; -var doctype$3 = "DocType"; -var issingle$3 = 0; -var istable = 0; -var keyword_fields$3 = ["name"]; -var fields$3 = [{"fieldname":"name","label":"Name","fieldtype":"Data","reqd":1}]; -var customer = { - name: name$3, - doctype: doctype$3, - issingle: issingle$3, - istable: istable, - keyword_fields: keyword_fields$3, - fields: fields$3 -}; - -var customer$1 = Object.freeze({ - name: name$3, - doctype: doctype$3, - issingle: issingle$3, - istable: istable, - keyword_fields: keyword_fields$3, - fields: fields$3, - default: customer -}); - -var require$$0$6 = ( customer$1 && customer ) || customer$1; - -class CustomerMeta extends meta { - setup_meta() { - Object.assign(this, require$$0$6); - } -} - -class Customer extends document$1 { -} - -var customer$2 = { - Document: Customer, - Meta: CustomerMeta -}; - -class ToDoList extends list { - get_fields() { - return ['name', 'subject', 'status']; - } - get_row_html(data) { - let symbol = data.status=="Closed" ? "✔" : ""; - return `${symbol} ${data.subject}`; - } -} - -var todo_client = { - List: ToDoList -}; - -class AccountList extends list { - get_fields() { - return ['name', 'account_type']; - } - get_row_html(data) { - return `${data.name} (${data.account_type})`; - } -} - -class AccountForm extends form { - make() { - super.make(); - - // override controller event - this.controls['parent_account'].get_filters = (query) => { - return { - keywords: ["like", query], - name: ["!=", this.doc.name] - } - }; - } -} - -var account_client = { - Form: AccountForm, - List: AccountList -}; - -// start server -client.start({ - server: 'localhost:8000', - container: document.querySelector('.wrapper'), -}).then(() => { - - // require modules - frappe.modules.todo = todo$2; - frappe.modules.account = account$2; - frappe.modules.item = item$3; - frappe.modules.customer = customer$2; - - frappe.modules.todo_client = todo_client; - frappe.modules.account_client = account_client; - - frappe.desk.add_sidebar_item('ToDo', '#list/todo'); - frappe.desk.add_sidebar_item('Accounts', '#list/account'); - frappe.desk.add_sidebar_item('Items', '#list/item'); - frappe.desk.add_sidebar_item('Customers', '#list/customer'); - - frappe.router.default = '#list/todo'; - - frappe.router.show(window.location.hash); -}); - -var src = false; - -return src; - -}()); diff --git a/src/index.js b/src/index.js index 427b6087..b22eb570 100644 --- a/src/index.js +++ b/src/index.js @@ -6,6 +6,8 @@ client.start({ container: document.querySelector('.wrapper'), }).then(() => { + frappe.modules.session = require('frappejs/models/doctype/session/session.js') + // require modules frappe.modules.todo = require('frappejs/models/doctype/todo/todo.js'); frappe.modules.account = require('../models/doctype/account/account.js'); @@ -15,6 +17,8 @@ client.start({ frappe.modules.todo_client = require('frappejs/models/doctype/todo/todo_client.js'); frappe.modules.account_client = require('../models/doctype/account/account_client.js'); + frappe.desk.add_sidebar_item('Session', '#list/session'); + frappe.desk.add_sidebar_item('ToDo', '#list/todo'); frappe.desk.add_sidebar_item('Accounts', '#list/account'); frappe.desk.add_sidebar_item('Items', '#list/item');