No files matched your search
@@ -0,0 +1 @@
|
||||
node_modules
|
||||
@@ -0,0 +1,573 @@
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #cccccc;
|
||||
}
|
||||
|
||||
button::-moz-focus-inner, input::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* to be compatible with browsers that don't know <main> */
|
||||
main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background-color: #3b5998;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
p, h1, h2, h3, input, textarea, select, button, a, table, label {
|
||||
font-family: 'Oxygen', sans-serif;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
h1>a:link, h1>a:visited {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
h1>a:hover, h1>a:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
p, h2, h3 {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
p {
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
}
|
||||
|
||||
sup, sub {
|
||||
position: relative;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
sup {
|
||||
vertical-align: top;
|
||||
top: -0.4em;
|
||||
}
|
||||
|
||||
sub {
|
||||
vertical-align: bottom;
|
||||
bottom: -0.4em;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: solid #bbbbbb 1px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
p.small, span.small {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.justify {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.marginTop {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.marginLeft {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.marginBottom {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.marginRight {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
svg.inline, img.inline {
|
||||
display: inline;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
margin-right: 0.3em;
|
||||
vertical-align: -0.15em;
|
||||
}
|
||||
|
||||
a:link, a:visited {
|
||||
color: #3b5998;
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover, a:focus {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
button, a.button {
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: #ffffff;
|
||||
background-color: #5e77aa;
|
||||
padding: 0 15px;
|
||||
height: 35px;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
button.small, div.inputWithButton>button {
|
||||
font-size: 14px;
|
||||
padding: 0 12px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
button.small {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
div.inputWithButton>button {
|
||||
border-radius: 2px;
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
width: 75px;
|
||||
margin-left: -79px;
|
||||
vertical-align: 2px;
|
||||
}
|
||||
|
||||
button:enabled:hover, button:enabled:focus, a.button:hover, a.button:focus {
|
||||
background-color: #29457f;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
cursor: not-allowed;
|
||||
color: #dddddd;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
button.fullWidth, a.button.fullWidth {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
button.noLeftRadius, a.button.noLeftRadius {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
button.noRightRadius, a.button.noRightRadius {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
button.gray, a.button.gray {
|
||||
background-color: #808080;
|
||||
}
|
||||
|
||||
button.gray:enabled:hover, button.gray:enabled:focus, a.button.gray:hover, a.button.gray:focus {
|
||||
background-color: #555555;
|
||||
}
|
||||
|
||||
button.red, a.button.red {
|
||||
background-color: #aa5e5e;
|
||||
}
|
||||
|
||||
button.red:enabled:hover, button.red:enabled:focus, a.button.red:hover, a.button.red:focus {
|
||||
background-color: #7f2929;
|
||||
}
|
||||
|
||||
button.yellow, a.button.yellow {
|
||||
background-color: #e8a349;
|
||||
}
|
||||
|
||||
button.yellow:enabled:hover, button.yellow:enabled:focus, a.button.yellow:hover, a.button.yellow:focus {
|
||||
background-color: #c37713;
|
||||
}
|
||||
|
||||
button.green, a.button.green {
|
||||
background-color: #28a745;
|
||||
}
|
||||
|
||||
button.green:enabled:hover, button.green:enabled:focus, a.button.green:hover, a.button.green:focus {
|
||||
background-color: #1b7d31;
|
||||
}
|
||||
|
||||
input.text, select, textarea {
|
||||
background-color: #f9fafb;
|
||||
border: solid #c8d2e1 1px;
|
||||
border-radius: 2px;
|
||||
box-sizing: border-box;
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
input.text, select {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
input[type=checkbox], input[type=radio] {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
textarea {
|
||||
padding: 5px;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
input.text.big, select.big, textarea.big, div.inputWithButton>input.text {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
input.text.big, select.big, div.inputWithButton>input.text {
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
textarea.big {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
input.fullWidth, select.fullWidth, textarea.fullWidth {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
input.text:disabled, select:disabled, textarea:disabled {
|
||||
background-color: #dfdfdf;
|
||||
border: solid #dfdfdf 1px;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
input.text:focus, select:focus, textarea:focus {
|
||||
background-color: #ffffff;
|
||||
border: solid #29457f 2px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
input.text:focus, select:focus {
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
textarea:focus {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
input.text.big:focus, select.big:focus {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
div.inputWithButton>input.text {
|
||||
width: 100%;
|
||||
padding: 0 83px 0 6px;
|
||||
}
|
||||
|
||||
div.inputWithButton>input.text:focus {
|
||||
padding: 0 82px 0 5px;
|
||||
}
|
||||
|
||||
textarea.big:focus {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
div.modal {
|
||||
position: fixed;
|
||||
background-color: #ffffff;
|
||||
border-radius: 3px;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
z-index: 6;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#cover {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background-color: #000000;
|
||||
opacity: 0.5;
|
||||
z-index: 5;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
p.error, p.formError {
|
||||
color: #7f2929;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
p.formError {
|
||||
display: none;
|
||||
}
|
||||
|
||||
header {
|
||||
display: grid;
|
||||
grid-template-columns: auto auto;
|
||||
background-color: #212f4d;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
padding: 0 12px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
header>p {
|
||||
line-height: inherit;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
header>p>span {
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
header>p>span>a:link, header>p>span>a:visited {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
header>p>span:not(:last-child) {
|
||||
border-right: solid white 1px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
main {
|
||||
background-color: #ffffff;
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
main.full {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: calc(100% - 40px);
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: #869ab9;
|
||||
padding: 3px 6px;
|
||||
color: #181f28;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
footer>p {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
div.buttonContainer {
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
div.buttonContainer>button {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#cookiesNotice {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
margin: 20px;
|
||||
background-color: #eeeeee;
|
||||
border: solid #888888 1px;
|
||||
border-radius: 3px;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
#loading {
|
||||
position: fixed;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-top: -32px;
|
||||
margin-left: -32px;
|
||||
z-index: 7;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
div.box {
|
||||
width: 576px;
|
||||
background-color: #eeeeee;
|
||||
border-radius: 3px;
|
||||
margin: 10px auto;
|
||||
padding: 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.circleControl {
|
||||
position: absolute;
|
||||
width: 60px;
|
||||
bottom: 20px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
.circleControl .controlItem {
|
||||
position: relative;
|
||||
height: 60px;
|
||||
margin-top: 10px;
|
||||
opacity: 70%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.circleControl .controlItem:hover {
|
||||
opacity: 100%;
|
||||
}
|
||||
|
||||
.circleControl .controlItem div {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.circleControl .controlBackground {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 50%;
|
||||
}
|
||||
|
||||
.circleControl .controlIcon {
|
||||
width: 75%;
|
||||
height: 75%;
|
||||
margin: auto;
|
||||
margin-top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 599px) {
|
||||
header h1 span {
|
||||
display: none;
|
||||
}
|
||||
footer>p:not(:first-child) {
|
||||
margin-top: 4px;
|
||||
}
|
||||
button, a.button {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
button.marginLeft, a.button.marginLeft {
|
||||
margin-left: 0;
|
||||
}
|
||||
button.marginRight, a.button.marginRight {
|
||||
margin-right: 0;
|
||||
}
|
||||
div.modal {
|
||||
left: 20px;
|
||||
right: 20px;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
div.box {
|
||||
width: initial;
|
||||
}
|
||||
.circleControl {
|
||||
width: 45px;
|
||||
}
|
||||
.circleControl .controlItem {
|
||||
height: 45px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 600px) {
|
||||
footer>p {
|
||||
display: inline;
|
||||
}
|
||||
footer>p:not(:first-child) {
|
||||
padding-left: 6px;
|
||||
}
|
||||
footer>p:not(:last-child) {
|
||||
border-right: solid #181f28 1px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
div.modal {
|
||||
width: 540px;
|
||||
left: 50%;
|
||||
margin-left: -270px;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-height: 399px) {
|
||||
div.modal {
|
||||
top: 20px;
|
||||
max-height: calc(100% - 40px);
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.circleControl {
|
||||
width: 45px;
|
||||
}
|
||||
.circleControl .controlItem {
|
||||
height: 45px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-height: 400px) and (max-height: 499px) {
|
||||
div.modal {
|
||||
top: 50px;
|
||||
max-height: calc(100% - 100px);
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-height: 500px) {
|
||||
div.modal {
|
||||
top: 75px;
|
||||
max-height: calc(100% - 150px);
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
The PNGs in this folder are generated from '../icon.svg'.
|
||||
Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'.
|
||||
@@ -0,0 +1,5 @@
|
||||
<!-- Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="#869ab9" viewBox="0 0 16 16">
|
||||
<path d="m8.335 6.982.8 1.386a.25.25 0 0 0 .451-.039l1.06-2.882a.25.25 0 0 0-.192-.333l-3.026-.523a.25.25 0 0 0-.26.371l.667 1.154-.621.373A2.5 2.5 0 0 0 6 8.632V11h1V8.632a1.5 1.5 0 0 1 .728-1.286l.607-.364Z"/>
|
||||
<path fill-rule="evenodd" d="M6.95.435c.58-.58 1.52-.58 2.1 0l6.515 6.516c.58.58.58 1.519 0 2.098L9.05 15.565c-.58.58-1.519.58-2.098 0L.435 9.05a1.482 1.482 0 0 1 0-2.098L6.95.435Zm1.4.7a.495.495 0 0 0-.7 0L1.134 7.65a.495.495 0 0 0 0 .7l6.516 6.516a.495.495 0 0 0 .7 0l6.516-6.516a.495.495 0 0 0 0-.7L8.35 1.134Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 737 B |
@@ -0,0 +1,23 @@
|
||||
<svg viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<linearGradient id="linear-gradient">
|
||||
<stop offset="0%" stop-color="#ffffff" />
|
||||
<stop offset="100%" stop-color="#000000" />
|
||||
</linearGradient>
|
||||
<circle
|
||||
fill="none"
|
||||
fill-rule="evenodd"
|
||||
stroke="url(#linear-gradient)"
|
||||
stroke-width="6"
|
||||
cx="25"
|
||||
cy="25"
|
||||
r="22" />
|
||||
<animateTransform
|
||||
attributeName="transform"
|
||||
type="rotate"
|
||||
from="0 25 25"
|
||||
to="360 25 25"
|
||||
dur="1.25"
|
||||
repeatCount="indefinite" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 732 B |
@@ -0,0 +1,10 @@
|
||||
<!-- Original image: Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'. -->
|
||||
<svg viewBox="0 0 12 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
fill="#3183ce"
|
||||
fill-rule="evenodd"
|
||||
stroke="#19456d"
|
||||
stroke-width="0.3"
|
||||
stroke-linecap="round"
|
||||
d="m 5.9999998,15.849652 c 0,0 5.8511182,-5.579947 5.8511182,-9.8134832 a 5.8511179,5.8880898 0 0 0 -11.7022358,0 c 0,4.2335362 5.8511176,9.8134832 5.8511176,9.8134832" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 529 B |
@@ -0,0 +1,16 @@
|
||||
<!-- Original image: Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'. -->
|
||||
<svg viewBox="0 0 12 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
fill="#3183ce"
|
||||
fill-rule="evenodd"
|
||||
stroke="#19456d"
|
||||
stroke-width="0.3"
|
||||
stroke-linecap="round"
|
||||
d="m 5.9999998,15.849652 c 0,0 5.8511182,-5.579947 5.8511182,-9.8134832 a 5.8511179,5.8880898 0 0 0 -11.7022358,0 c 0,4.2335362 5.8511176,9.8134832 5.8511176,9.8134832" />
|
||||
<circle
|
||||
fill="#19456d"
|
||||
fill-rule="evenodd"
|
||||
cx="6"
|
||||
cy="6"
|
||||
r="3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 639 B |
@@ -0,0 +1,10 @@
|
||||
<!-- Original image: Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'. -->
|
||||
<svg viewBox="0 0 12 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
fill="#828282"
|
||||
fill-rule="evenodd"
|
||||
stroke="#383838"
|
||||
stroke-width="0.3"
|
||||
stroke-linecap="round"
|
||||
d="m 5.9999998,15.849652 c 0,0 5.8511182,-5.579947 5.8511182,-9.8134832 a 5.8511179,5.8880898 0 0 0 -11.7022358,0 c 0,4.2335362 5.8511176,9.8134832 5.8511176,9.8134832" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 529 B |
@@ -0,0 +1,16 @@
|
||||
<!-- Original image: Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'. -->
|
||||
<svg viewBox="0 0 12 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
fill="#828282"
|
||||
fill-rule="evenodd"
|
||||
stroke="#383838"
|
||||
stroke-width="0.3"
|
||||
stroke-linecap="round"
|
||||
d="m 5.9999998,15.849652 c 0,0 5.8511182,-5.579947 5.8511182,-9.8134832 a 5.8511179,5.8880898 0 0 0 -11.7022358,0 c 0,4.2335362 5.8511176,9.8134832 5.8511176,9.8134832" />
|
||||
<circle
|
||||
fill="#383838"
|
||||
fill-rule="evenodd"
|
||||
cx="6"
|
||||
cy="6"
|
||||
r="3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 639 B |
@@ -0,0 +1,10 @@
|
||||
<!-- Original image: Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'. -->
|
||||
<svg viewBox="0 0 12 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
fill="#28a745"
|
||||
fill-rule="evenodd"
|
||||
stroke="#285624"
|
||||
stroke-width="0.3"
|
||||
stroke-linecap="round"
|
||||
d="m 5.9999998,15.849652 c 0,0 5.8511182,-5.579947 5.8511182,-9.8134832 a 5.8511179,5.8880898 0 0 0 -11.7022358,0 c 0,4.2335362 5.8511176,9.8134832 5.8511176,9.8134832" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 529 B |
@@ -0,0 +1,16 @@
|
||||
<!-- Original image: Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'. -->
|
||||
<svg viewBox="0 0 12 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
fill="#28a745"
|
||||
fill-rule="evenodd"
|
||||
stroke="#285624"
|
||||
stroke-width="0.3"
|
||||
stroke-linecap="round"
|
||||
d="m 5.9999998,15.849652 c 0,0 5.8511182,-5.579947 5.8511182,-9.8134832 a 5.8511179,5.8880898 0 0 0 -11.7022358,0 c 0,4.2335362 5.8511176,9.8134832 5.8511176,9.8134832" />
|
||||
<circle
|
||||
fill="#285624"
|
||||
fill-rule="evenodd"
|
||||
cx="6"
|
||||
cy="6"
|
||||
r="3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 639 B |
@@ -0,0 +1,16 @@
|
||||
<!-- Original image: Copyright (c) 2019 The Bootstrap Authors. License can be found in 'USED_SOFTWARE' in section 'Bootstrap Icons'. -->
|
||||
<svg viewBox="0 0 12 16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
fill="#d24d4d"
|
||||
fill-rule="evenodd"
|
||||
stroke="#752929"
|
||||
stroke-width="0.3"
|
||||
stroke-linecap="round"
|
||||
d="m 5.9999998,15.849652 c 0,0 5.8511182,-5.579947 5.8511182,-9.8134832 a 5.8511179,5.8880898 0 0 0 -11.7022358,0 c 0,4.2335362 5.8511176,9.8134832 5.8511176,9.8134832" />
|
||||
<circle
|
||||
fill="#752929"
|
||||
fill-rule="evenodd"
|
||||
cx="6"
|
||||
cy="6"
|
||||
r="3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 639 B |
@@ -0,0 +1,69 @@
|
||||
var Account = {
|
||||
original: null,
|
||||
countdown: null,
|
||||
|
||||
openGoogleAuthenticate: function () {
|
||||
window.open('/account/googleAuthenticate', 'googleAuthenticate', 'height=600,width=600')
|
||||
},
|
||||
|
||||
authenticatedWithGoogleCallback: function (authenticatedWithGoogleUntil) {
|
||||
var password = document.getElementsByTagName('form')[0].elements.password;
|
||||
var button = document.getElementById('authenticateWithGoogleButton');
|
||||
|
||||
Account.original = {
|
||||
type: password.type,
|
||||
placeholder: password.placeholder,
|
||||
required: password.required,
|
||||
disabled: password.disabled
|
||||
};
|
||||
|
||||
password.type = 'text';
|
||||
password.placeholder = 'Authenticated!'
|
||||
password.value = '';
|
||||
password.required = false;
|
||||
password.disabled = true;
|
||||
|
||||
button.disabled = true;
|
||||
|
||||
Account.countdown = setInterval(function () {
|
||||
var timeLeft = Math.ceil((authenticatedWithGoogleUntil.getTime() - new Date().getTime()) / 1000);
|
||||
|
||||
if (timeLeft > 30) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (timeLeft <= 0) {
|
||||
Account.resetGoogleAuthentication();
|
||||
return;
|
||||
}
|
||||
|
||||
password.placeholder = 'Authenticated! ' + timeLeft + ' seconds left...';
|
||||
}, 1000);
|
||||
},
|
||||
|
||||
resetGoogleAuthentication: function () {
|
||||
if (Account.countdown !== null) {
|
||||
clearInterval(Account.countdown);
|
||||
}
|
||||
|
||||
var password = document.getElementsByTagName('form')[0].elements.password;
|
||||
var button = document.getElementById('authenticateWithGoogleButton');
|
||||
|
||||
password.type = Account.original.type;
|
||||
password.placeholder = Account.original.placeholder
|
||||
password.required = Account.original.required;
|
||||
password.disabled = Account.original.disabled;
|
||||
|
||||
button.disabled = false;
|
||||
}
|
||||
};
|
||||
|
||||
(function () {
|
||||
document.getElementById('authenticateWithGoogleButton').onclick = function () {
|
||||
Account.openGoogleAuthenticate();
|
||||
};
|
||||
|
||||
document.getElementsByTagName('form')[0].onreset = function () {
|
||||
Account.resetGoogleAuthentication();
|
||||
};
|
||||
})();
|
||||
@@ -0,0 +1,10 @@
|
||||
(function () {
|
||||
if (success) {
|
||||
window.opener.Account.authenticatedWithGoogleCallback(authenticatedWithGoogleUntil);
|
||||
window.close();
|
||||
} else {
|
||||
document.getElementById('closeWindowButton').onclick = function () {
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,226 @@
|
||||
var RVR = {
|
||||
isSecure: window.location.protocol === 'https:',
|
||||
cookiesAgreed: false,
|
||||
sessionAvailableHooks: {},
|
||||
|
||||
initGoogleAnalitics: function () {
|
||||
if (typeof GOOGLE_ANALITICS_ID === 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Global site tag (gtag.js) - Google Analytics
|
||||
var script = document.createElement('script');
|
||||
script.src = 'https://www.googletagmanager.com/gtag/js?id=' + GOOGLE_ANALITICS_ID;
|
||||
script.async = true;
|
||||
|
||||
document.head.appendChild(script);
|
||||
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
gtag('js', new Date());
|
||||
gtag('config', GOOGLE_ANALITICS_ID);
|
||||
},
|
||||
|
||||
httpRequest: function (method, url, callback, data) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
||||
xhr.onload = callback;
|
||||
|
||||
xhr.open(method, url, true);
|
||||
|
||||
xhr.responseType = 'json';
|
||||
|
||||
if (method === 'POST') {
|
||||
if (typeof data === 'undefined') {
|
||||
data = new FormData();
|
||||
}
|
||||
|
||||
data.append('anti_csrf_token', ANTI_CSRF_TOKEN);
|
||||
|
||||
xhr.send(data);
|
||||
} else {
|
||||
xhr.send();
|
||||
}
|
||||
},
|
||||
|
||||
setOnsubmitForForm: function (form) {
|
||||
form.onsubmit = function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
document.getElementById('loading').style.visibility = 'visible';
|
||||
|
||||
var formData = new FormData(form);
|
||||
var formError = form.getElementsByClassName('formError')[0];
|
||||
var pageLeaveOnSuccess = form.dataset.redirectOnSuccess || form.dataset.reloadOnSuccess;
|
||||
|
||||
RVR.httpRequest('POST', form.action, function () {
|
||||
if (!pageLeaveOnSuccess) {
|
||||
document.getElementById('loading').style.visibility = 'hidden';
|
||||
}
|
||||
|
||||
if (this.response.error) {
|
||||
if (pageLeaveOnSuccess) {
|
||||
document.getElementById('loading').style.visibility = 'hidden';
|
||||
}
|
||||
|
||||
formError.style.display = 'block';
|
||||
formError.innerHTML = this.response.error.errorText;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.response.redirect) {
|
||||
window.location.replace(this.response.redirect.target);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!pageLeaveOnSuccess) {
|
||||
formError.style.display = 'none';
|
||||
form.reset();
|
||||
} else {
|
||||
if (form.dataset.redirectOnSuccess) {
|
||||
window.location.replace(form.dataset.redirectOnSuccess);
|
||||
} else if (form.dataset.reloadOnSuccess) {
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
}, formData);
|
||||
}
|
||||
},
|
||||
|
||||
showModal: function (id) {
|
||||
document.getElementById(id).style.visibility = 'visible';
|
||||
document.getElementById('cover').style.visibility = 'visible';
|
||||
},
|
||||
|
||||
showModalWithContent: function (title, body, extraButtons) {
|
||||
if (typeof extraButtons === 'undefined') {
|
||||
extraButtons = [];
|
||||
}
|
||||
|
||||
RVR.showModal('modal');
|
||||
|
||||
document.getElementById('modalTitle').textContent = title;
|
||||
|
||||
if (typeof body === 'object') {
|
||||
document.getElementById('modalText').appendChild(body);
|
||||
} else {
|
||||
document.getElementById('modalText').textContent = body;
|
||||
}
|
||||
|
||||
var buttons = document.getElementById('modalButtons');
|
||||
buttons.textContent = '';
|
||||
|
||||
for (var i = 0; i < extraButtons.length; i++) {
|
||||
var extraButton = extraButtons[i];
|
||||
var button = document.createElement(extraButton.type);
|
||||
|
||||
if (extraButton.type === 'a') {
|
||||
button.classList.add('button');
|
||||
}
|
||||
|
||||
for (var i = 0; i < extraButton.classNames.length; i++) {
|
||||
button.classList.add(extraButton.classNames[i]);
|
||||
}
|
||||
|
||||
button.classList.add('marginTop');
|
||||
button.classList.add('marginRight');
|
||||
button.textContent = extraButton.text;
|
||||
|
||||
if (extraButton.type === 'a') {
|
||||
button.href = extraButton.href;
|
||||
} else if (extraButton.type === 'button') {
|
||||
button.onclick = extraButton.onclick;
|
||||
}
|
||||
|
||||
buttons.appendChild(button);
|
||||
}
|
||||
|
||||
var closeButton = document.createElement('button');
|
||||
|
||||
closeButton.classList.add('gray');
|
||||
closeButton.classList.add('marginTop');
|
||||
closeButton.textContent = 'Close';
|
||||
closeButton.onclick = function () {
|
||||
RVR.hideModal();
|
||||
};
|
||||
|
||||
buttons.appendChild(closeButton);
|
||||
},
|
||||
|
||||
hideModal: function () {
|
||||
var modals = document.getElementsByClassName('modal');
|
||||
|
||||
for (var i = 0; i < modals.length; i++) {
|
||||
modals[i].style.visibility = 'hidden';
|
||||
}
|
||||
|
||||
document.getElementById('cover').style.visibility = 'hidden';
|
||||
},
|
||||
|
||||
observeInput: function (input, buttonToToggle) {
|
||||
if (input.defaultValue !== input.value) {
|
||||
buttonToToggle.disabled = false;
|
||||
} else {
|
||||
buttonToToggle.disabled = true;
|
||||
}
|
||||
},
|
||||
|
||||
observeInputsInForm: function (form, observedInputs) {
|
||||
for (var i = 0; i < observedInputs.length; i++) {
|
||||
var input = form.elements[observedInputs[i]];
|
||||
|
||||
switch (input.tagName) {
|
||||
case 'INPUT':
|
||||
case 'TEXTAREA':
|
||||
input.oninput = function () {
|
||||
RVR.observeInput(this, form.elements.submit);
|
||||
};
|
||||
break;
|
||||
case 'SELECT':
|
||||
input.onchange = function () {
|
||||
RVR.observeInput(this, form.elements.submit);
|
||||
};
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
form.onreset = function () {
|
||||
form.elements.submit.disabled = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
(function () {
|
||||
var anchors = document.getElementsByTagName('a');
|
||||
for (var i = 0; i < anchors.length; i++) {
|
||||
var a = anchors[i];
|
||||
if (a.href !== 'javascript:;' && a.target !== '_blank') {
|
||||
a.onclick = function () {
|
||||
document.getElementById('loading').style.visibility = 'visible';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var forms = document.getElementsByTagName('form');
|
||||
for (var i = 0; i < forms.length; i++) {
|
||||
var form = forms[i];
|
||||
|
||||
if (form.dataset.noSubmit) {
|
||||
continue;
|
||||
}
|
||||
|
||||
RVR.setOnsubmitForForm(form);
|
||||
|
||||
if (form.dataset.observeInputs) {
|
||||
RVR.observeInputsInForm(form, form.dataset.observeInputs.split(','));
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById('cover').onclick = function () {
|
||||
RVR.hideModal();
|
||||
};
|
||||
|
||||
RVR.initGoogleAnalitics();
|
||||
})();
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"leaflet": "^1.6.0",
|
||||
"leaflet.markercluster": "^1.4.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
leaflet.markercluster@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz#b53f2c4f2ca7306ddab1dbb6f1861d5e8aa6c5e5"
|
||||
integrity sha512-ZSEpE/EFApR0bJ1w/dUGwTSUvWlpalKqIzkaYdYB7jaftQA/Y2Jav+eT4CMtEYFj+ZK4mswP13Q2acnPBnhGOw==
|
||||
|
||||
leaflet@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308"
|
||||
integrity sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ==
|
||||