new shitty design

This commit is contained in:
Leah 2020-06-12 14:49:54 +00:00
parent 77997c2ecc
commit 386d6d769e
72 changed files with 2084 additions and 1228 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
oeffisearch
cache
data
node_modules

View File

@ -1,84 +0,0 @@
.product_selector > label {
width: 32px;
height: 32px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.product_selector > input {
display: none;
}
input[id=national] + label[for=national] {
content: url("../img/product_highspeed_grey.svg");
}
input[id=national]:checked + label[for=national] {
content: url("../img/product_highspeed_color.svg");
}
input[id=regional] + label[for=regional] {
content: url("../img/product_train_grey.svg");
}
input[id=regional]:checked + label[for=regional] {
content: url("../img/product_train_color.svg");
}
input[id=suburban] + label[for=suburban] {
content: url("../img/product_suburban_grey.svg");
}
input[id=suburban]:checked + label[for=suburban] {
content: url("../img/product_suburban_color.svg");
}
input[id=subway] + label[for=subway] {
content: url("../img/product_subway_grey.svg");
}
input[id=subway]:checked + label[for=subway] {
content: url("../img/product_subway_color.svg");
}
input[id=tram] + label[for=tram] {
content: url("../img/product_tram_grey.svg");
}
input[id=tram]:checked + label[for=tram] {
content: url("../img/product_tram_color.svg");
}
input[id=bus] + label[for=bus] {
content: url("../img/product_bus_grey.svg");
}
input[id=bus]:checked + label[for=bus] {
content: url("../img/product_bus_color.svg");
}
input[id=ferry] + label[for=ferry] {
content: url("../img/product_ferry_grey.svg");
}
input[id=ferry]:checked + label[for=ferry] {
content: url("../img/product_ferry_color.svg");
}
input[id=taxi] + label[for=taxi] {
content: url("../img/product_call_grey.svg");
}
input[id=taxi]:checked + label[for=taxi] {
content: url("../img/product_call_color.svg");
}

View File

@ -1,687 +0,0 @@
html, body {
margin: 0;
font-family: Roboto, Arial, sans-serif;
}
.hidden {
display: none !important;
}
* {
box-sizing: border-box;
border-collapse: collapse;
}
canvas {
flex-grow: 1;
}
table {
border-bottom: 1px solid rgba(0, 0, 0, 0.3);
width: 100%;
}
table, tr {
background-color: #fff;
margin: 0 0 15px 0;
}
#journeysView table {
margin: 15px auto;
}
td, th {
text-align: center;
padding: 5px 3px;
overflow: hidden;
}
tr:nth-child(odd) {
background-color: #f2f2f2;
}
tbody tr {
cursor: pointer;
}
tbody tr:hover {
background-color: #ddd;
}
tbody tr:hover td {
background-color: transparent;
}
input[type="date"],
input[type="time"],
input[type="text"],
#deparr {
box-sizing: border-box;
width: 100%;
padding: .3em .5em;
border-radius: 3px;
font-size: 1.5em;
padding: 7px;
border: none;
outline: none;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
background-color: white;
color: black;
margin-top: 8px;
}
#datetime {
display: flex;
flex-direction: row;
}
#deparr {
padding: 0 !important;
overflow: hidden;
width: 84px;
flex-shrink: 0;
display: inline-block;
}
.switch {
position: relative;
display: inline-block;
width: 84px;
height: 100%;
}
/* Hide default HTML checkbox */
.switch input {
opacity: 0;
width: 0;
height: 0;
}
/* The slider */
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #bbb;
height: 100%;
}
.slider:before {
position: absolute;
font-size: 13px;
padding-top: calc(25% - 7px);
line-height: 100%;
text-align: center;
content: "DEP";
height: 100%;
width: 42px;
background-color: white;
transition: .2s;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
}
input:checked + .slider:before {
content: "ARR";
transform: translateX(42px);
}
input:active,
input:focus{
box-shadow: 0 .1em .5em rgba(0, 0, 0, .6);
}
#header {
position: relative;
box-shadow: 0 0 15px rgba(0, 0, 0, .6);
background-color: #43a047;
color: white;
padding: 0 0 0 9vw;
}
#departuresView,
#searchView,
#journeyView,
#journeysView {
display: flex;
flex-direction: column;
}
#settingsView {
padding: 10px;
}
#journeyView tbody td:nth-child(3) {
text-align: left;
}
#journeyView tbody:not(:last-child) {
border-bottom: 1px solid rgba(0, 0, 0, .2);
}
#journeyView p {
color: white;
width: 100%;
}
#journeyView p::before {
-webkit-filter: drop-shadow( 0 0 5px rgba(0, 0, 0, .6) );
filter: drop-shadow( 0 0 5px rgba(0, 0, 0, .6) );
margin-right: 4px;
vertical-align: sub;
}
#journeyView p.change,
#journeyView p.walk,
#journeyView p.transfer {
text-shadow: 0 0 15px rgba(0, 0, 0, .6);
text-align: center;
}
#journeyView p.change::before {
content: url("../img/baseline-import_export-24px.svg");
}
#journeyView p.walk::before {
content: url("../img/baseline-directions_walk-24px.svg");
}
#journeyView p.transfer::before {
content: url("../img/baseline-directions-24px_white.svg");
}
#searchView {
background-color: rgba(67, 160, 71, 0.6);
color: white;
}
#searchView table {
width: 100%;
color: black;
}
#searchView .button,
#searchView label:not(.switch) {
cursor: pointer;
border-radius: 3px;
background-color: white;
width: 40px;
padding: 3px;
height: 40px;
display: inline-block;
margin-top: 8px;
margin-bottom: 8px;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
#searchView #date {
flex-grow: 1;
margin-left: 8px;
}
#searchView .product_selector {
margin-right: auto;
}
#searchView .row {
display: flex;
flex-direction: row;
}
#searchView .swap {
margin-left: 5px;
content: url("../img/baseline-swap_vert-24px.svg");
}
#searchView .settings {
margin-left: 5px;
content: url("../img/baseline-settings-20px.svg");
}
#searchView .search {
margin-left: 5px;
content: url("../img/baseline-navigation-24px.svg");
color: blue;
}
#searchView .departures {
content: url("../img/baseline-departure_board-24px.svg");
}
#searchView .directions {
content: url("../img/baseline-directions-24px.svg");
}
#departuresView tbody td {
text-align: right;
}
#departuresView tbody td:first-child {
text-align: left;
}
.suggestionsbox {
border-radius: 3px;
width: 100%;
box-shadow: 0 .4em .8em rgba(0, 0, 0, .5);
}
.suggestions {
position: relative;
display: none;
overflow: visible;
z-index: 999;
height: 0;
}
.suggestions.typing,
.suggestions.mouseover {
display: block;
}
.loadMore {
cursor: pointer;
content: url("../img/baseline-expand_more-24px.svg");
border-radius: 100%;
height: 48px;
width: 48px;
background-color: #eee;
margin: 0 auto;
transition: box-shadow 150ms;
border: 1px solid rgba(0, 0, 0, .1);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.flipped {
transform: rotate(180deg);
}
.loadMore:hover {
box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .3);
}
.loadMore.flipped {
margin-top: 15px;
}
.suggestionsbox p {
font-size: 1.2em;
background-color: white;
color: black;
margin: 0;
border-top: 1px solid rgba(0, 0, 0, .2);
padding: .3em .6em;
cursor: pointer;
}
.back {
cursor: pointer;
position: absolute;
left: 17px;
top: 17px;
width: 32px;
height: 32px;
content: url("../img/back.svg");
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.reload {
cursor: pointer;
position: absolute;
right: 17px;
top: 17px;
width: 32px;
height: 32px;
content: url("../img/baseline-refresh-24px.svg");
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.reload.spinning {
animation: spin 2s linear infinite;
}
.btn {
color: #fff;
position: relative;
margin-top: 30px;
padding: 0;
overflow: hidden;
border-width: 0;
outline: none;
border-radius: 2px;
content: 'OK';
border-radius: 4px;
color: white;
width: fit-content;
margin-left: 5px;
margin-top: 10px;
transition: background-color 100ms;
cursor: pointer;
background-color: rgba(20, 30, 255, .7);
}
.btn:hover, .btn:focus {
background-color: rgba(70, 100, 255, .8);
}
.btn > * {
position: relative;
}
.btn span {
display: block;
padding: 12px 24px;
}
.btn.orange {
background-color: #e36420;;
}
.btn.orange:hover, .btn.orange:focus {
background-color: #e67e22;
}
.buttons {
justify-content: flex-end;
display: flex;
}
.btn.red {
background-color: #d0493b;
}
.btn.red:hover, .btn.red:focus {
background-color: #e74c3c;
}
#spinner {
margin: calc(50vh - 60px) auto;
border: 2px solid rgba(255, 255, 255, .7); /* Light grey */
border-top: 4px solid #3498db; /* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#journeysView {
min-height: 100vh;
}
#journeysCanvas {
flex-grow: 1;
flex-direction: column;
display: flex;
}
#modal {
display: flex;
}
#modal-box {
margin: auto;
border-radius: 4px;
background-color: white;
width: fit-content;
width: -moz-fit-content;
padding: 15px;
box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}
#dismiss {
content: 'OK';
border-radius: 4px;
background-color: rgba(20, 30, 255, .7);
color: white;
width: fit-content;
width: -moz-fit-content;
padding: 8px 20px;
margin-left: auto;
margin-top: 10px;
transition: background-color 300ms;
}
#dismiss:hover {
background-color: rgba(70, 100, 255, .8);
cursor: pointer;
}
@media (max-width: 799px) {
#searchView {
padding: 10px;
}
div#settings {
padding: 15px 5vw;
}
#header {
padding: 0 0 0 50px;
}
.back {
left: 10px;
}
#datetime {
flex-wrap: wrap;
}
#searchView #date {
width: initial;
}
#searchView #time {
width: 100%;
flex-shrink: 0;
}
#searchView table {
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4);
border-radius: 5px;
overflow: hidden;
border: none;
}
}
@media (min-width: 800px) {
#searchView {
box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .4);
padding: 50px;
margin: auto;
width: 80vw;
max-width: 800px;
color: white;
}
#searchView #date {
margin-right: 8px;
}
#searchView #time {
width: 40%;
}
div#settings {
padding: 30px 30px;
margin: 0 8vw;
}
#header {
padding: 0 10vw;
}
td p {
display: inline;
margin-right: 5px;
}
td, th {
padding: 10px 5px;
}
table {
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4);
border-radius: 5px;
overflow: hidden;
border: none;
margin: 50px auto;
width: 80vw;
}
}
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
overflow: hidden;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal-header {
background-color: #43a047;
color: white;
border-radius: 6px 6px 0px 0px;
min-height: 16.4;
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
margin-top: -2px;
}
.modal-header .modal-close {
width:53px;
float:right;
margin:-15px;
margin-left:0px;
height:53px;
border-left: 1px solid #00000040;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAABO0lEQVR42u3bURKDIAwEUNiLoyfXC3Ss4mYTh81Xv4R90wqEad+2ra1caIuXAQxgAAMYwAAGMIABDGAAA0zVGOMYYxzqibPGxdtJ/PqsCM8aF4xJKBHY40IxwcrPngbY970rJ3r1zKu5hH4DVAhR4Sk/gWiEyPC0d0AUQnR46kuQjaAIT18FWAiq8CHL4FsEZfiws8Asgjp86GHoKUJG+PDT4F2ErPCttdYVd4OzS2F0eFk/YCaIIry0IfIkkCq8FOBuMGV4OUDFkgK83Qh9GoC1Ff4kAPsw9CmAf5scdWdJCnB3h5eJgOzw2QioED4TAVXCZyGgUvgMBFQLr0ZAxfBKBFQNr0JA5fAKBFQPH40gbYtXfDb1dljRzGCPS7sdVnZymON2/2Nk8TKAAQxgAAMYwAAGMIABDLBmnWRS+u5G6HkFAAAAAElFTkSuQmCC') center no-repeat;
background-size:30px;
cursor:pointer;
}
.modal-header .modal-close:hover {
border-radius: 0px 6px 0px 0px;
}
.modal-title {
margin: 0;
line-height: 1.4;
}
.modal-open {
overflow: hidden;
}
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto;
}
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
.modal-content {
position: relative;
background-color: #fff;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, .2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
.modal-body {
position: relative;
}
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
}
}
.cancelled {
text-decoration-line: line-through;
}
.showremarks {
vertical-align: bottom;
cursor: pointer;
}
.remark {
vertical-align: middle;
}
.showremarks.hint,
.remark.hint {
content: url("../img/info-24px.svg");
}
.showremarks.status,
.remark.status {
content: url("../img/warning-24px.svg");
}
.showremarks.other,
.remark.other {
content: url("../img/help-24px.svg");
}
.remarks td {
margin: 0 10px;
text-align: left;
display: block;
}
/*.remarks {
display: none;
position: absolute;
z-index: 1;
}*/
.remarks {
/*background: #000000d0;*/
border: 1px solid #ddd;
padding: 0;
width: 100%;
margin: 0;
box-shadow: none;
}
/*.showremarks:hover+.remarks {
display: inline-block;
}*/
.travelynx {
vertical-align: bottom;
cursor: pointer;
content: url("../img/travelynx.svg");
}

BIN
client/favicon-512x512.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
client/favicon-64x64.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -1 +0,0 @@
<svg height="100%" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g color="white"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" fill="currentColor"></path></g></svg>

Before

Width:  |  Height:  |  Size: 200 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 1H5c-1.1 0-1.99.9-1.99 2L3 15.93c0 .69.35 1.3.88 1.66L12 23l8.11-5.41c.53-.36.88-.97.88-1.66L21 3c0-1.1-.9-2-2-2zm-9 15l-5-5 1.41-1.41L10 13.17l7.59-7.59L19 7l-9 9z"/></svg>

Before

Width:  |  Height:  |  Size: 306 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M16 1c-2.4 0-4.52 1.21-5.78 3.05.01-.01.01-.02.02-.03C9.84 4 9.42 4 9 4c-4.42 0-8 .5-8 4v10c0 .88.39 1.67 1 2.22V22c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22v-3.08c3.39-.49 6-3.39 6-6.92 0-3.87-3.13-7-7-7zM4.5 19c-.83 0-1.5-.67-1.5-1.5S3.67 16 4.5 16s1.5.67 1.5 1.5S5.33 19 4.5 19zM3 13V8h6c0 1.96.81 3.73 2.11 5H3zm10.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm.5-9H15v5l3.62 2.16.75-1.23-2.87-1.68z"/></svg>

Before

Width:  |  Height:  |  Size: 690 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.71 11.29l-9-9c-.39-.39-1.02-.39-1.41 0l-9 9c-.39.39-.39 1.02 0 1.41l9 9c.39.39 1.02.39 1.41 0l9-9c.39-.38.39-1.01 0-1.41zM14 14.5V12h-4v3H8v-4c0-.55.45-1 1-1h5V7.5l3.5 3.5-3.5 3.5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 322 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path style="fill: white;" d="M21.71 11.29l-9-9c-.39-.39-1.02-.39-1.41 0l-9 9c-.39.39-.39 1.02 0 1.41l9 9c.39.39 1.02.39 1.41 0l9-9c.39-.38.39-1.01 0-1.41zM14 14.5V12h-4v3H8v-4c0-.55.45-1 1-1h5V7.5l3.5 3.5-3.5 3.5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 343 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path style="fill: white;" d="M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7"/></svg>

Before

Width:  |  Height:  |  Size: 370 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 182 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path style="fill: white;" d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 229 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z"/></svg>

Before

Width:  |  Height:  |  Size: 182 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 292 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path style="fill: white;" d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 361 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><path fill="none" d="M0 0h20v20H0V0z"/><path d="M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z"/></svg>

Before

Width:  |  Height:  |  Size: 774 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z"/><path d="M0 0h24v24H0z" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

74
client/img/bus.svg Normal file
View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
sodipodi:docname="bus_new_path.svg"
id="svg8"
version="1.1"
viewBox="0 0 46.347183 46.347183"
height="46.347183mm"
width="46.347183mm">
<sodipodi:namedview
inkscape:current-layer="text24"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="123.55024"
inkscape:cx="19.749611"
inkscape:zoom="2.3291599"
showgrid="false"
id="namedview197"
inkscape:window-height="959"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff"
inkscape:document-rotation="0" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-32.443024,-29.353207)">
<g
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text24"
aria-label="NV">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:0.75;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="Bu">
<path
id="path343"
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="M 38.961739,63.039505 V 41.721263 h 7.657583 q 4.114303,0 6.251984,1.50809 2.152323,1.508089 2.152323,4.377853 0,1.654506 -0.761366,2.825838 -0.761366,1.171332 -2.240172,1.727715 1.669148,0.43925 2.562288,1.639865 0.893141,1.200615 0.893141,2.92833 0,3.133313 -1.991264,4.714611 -1.976623,1.566657 -5.871302,1.59594 z m 5.139219,-9.063181 v 5.109935 h 3.367579 q 1.390957,0 2.137681,-0.62959 0.746724,-0.644233 0.746724,-1.800923 0,-2.664781 -2.650138,-2.679422 z m 0,-3.36758 h 2.679422 q 1.68379,-0.01464 2.40123,-0.614949 0.717441,-0.600308 0.717441,-1.77164 0,-1.347032 -0.776007,-1.932698 -0.776008,-0.600307 -2.503722,-0.600307 h -2.518364 z" />
<path
id="path345"
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 67.498315,61.326432 q -1.566656,2.005906 -4.231437,2.005906 -2.606213,0 -3.953245,-1.50809 -1.33239,-1.522732 -1.33239,-4.363212 V 47.19724 h 4.934236 v 10.29308 q 0,2.035189 1.976623,2.035189 1.698431,0 2.415872,-1.215257 V 47.19724 h 4.963519 v 15.842265 h -4.626761 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

70
client/img/d.svg Normal file
View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
sodipodi:docname="d_new_path.svg"
id="svg8"
version="1.1"
viewBox="0 0 46.347183 46.347183"
height="46.347183mm"
width="46.347183mm">
<sodipodi:namedview
inkscape:current-layer="text24"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="122.69156"
inkscape:cx="18.890932"
inkscape:zoom="2.3291599"
showgrid="false"
id="namedview197"
inkscape:window-height="959"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff"
inkscape:document-rotation="0" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-32.443024,-29.353207)">
<g
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text24"
aria-label="NV">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:0.75;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="D">
<path
id="path221"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 46.490228,63.185921 3.689696,-21.318243 6.266626,0.01464 q 2.767272,0 4.831745,1.464165 2.064473,1.449523 2.92833,3.967887 0.746724,2.210889 0.453891,4.773178 l -0.102492,0.893141 q -0.395324,2.869763 -1.903414,5.197785 -1.50809,2.328023 -3.880037,3.660413 -2.371948,1.317748 -5.124578,1.347032 z m 8.023625,-17.350356 -2.328023,13.39711 1.464165,0.01464 q 2.576931,0 4.128946,-1.991265 1.566656,-1.991264 1.859489,-6.090926 l 0.02928,-0.483174 q 0.102492,-2.342664 -0.732082,-3.557921 -0.834574,-1.215257 -2.503722,-1.273824 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></svg>

Before

Width:  |  Height:  |  Size: 406 B

74
client/img/ic.svg Normal file
View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
sodipodi:docname="ic_new_path.svg"
id="svg8"
version="1.1"
viewBox="0 0 46.347183 46.347183"
height="46.347183mm"
width="46.347183mm">
<sodipodi:namedview
inkscape:current-layer="text24"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="89.131197"
inkscape:cx="17.602914"
inkscape:zoom="2.3291599"
showgrid="false"
id="namedview197"
inkscape:window-height="959"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff"
inkscape:document-rotation="0" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-32.443024,-29.353207)">
<g
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text24"
aria-label="NV">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="IC">
<path
id="path86"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';stroke-width:0.0700042"
d="m 46.663246,63.193146 h -5.007444 l 3.704337,-21.318243 h 4.992803 z" />
<path
id="path88"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';stroke-width:0.0700042"
d="m 68.08398,55.930887 q -0.190341,2.240173 -1.478806,3.982529 -1.273824,1.742356 -3.36758,2.679422 -2.079114,0.937066 -4.509628,0.893141 -3.338296,-0.07321 -5.256352,-2.152323 -1.918057,-2.079114 -2.093756,-5.637035 -0.131775,-2.371947 0.512457,-5.168503 0.658875,-2.796555 2.12304,-4.861027 1.478806,-2.079115 3.470071,-3.10403 2.005906,-1.039557 4.377853,-0.995632 3.484713,0.05857 5.505261,2.093756 2.035189,2.035189 2.210889,5.607752 l -4.992803,-0.01464 q 0.02928,-1.94734 -0.702799,-2.781914 -0.732083,-0.834574 -2.313381,-0.89314 -3.953245,-0.131775 -4.817103,6.149493 -0.395324,2.84048 -0.395324,4.055737 -0.07321,3.601846 2.66478,3.704337 1.77164,0.05857 2.825838,-0.863857 1.054199,-0.937066 1.347032,-2.635497 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

78
client/img/ice.svg Normal file
View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
sodipodi:docname="ice_new_path.svg"
id="svg8"
version="1.1"
viewBox="0 0 46.347183 46.347183"
height="46.347183mm"
width="46.347183mm">
<sodipodi:namedview
inkscape:current-layer="text24"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="89.131197"
inkscape:cx="18.890932"
inkscape:zoom="2.3291599"
showgrid="false"
id="namedview197"
inkscape:window-height="959"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff"
inkscape:document-rotation="0" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-32.443024,-29.353207)">
<g
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text24"
aria-label="NV">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="ICE">
<path
id="path127"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';stroke-width:0.0700042"
d="M 37.709877,63.193146 H 32.702433 L 36.40677,41.874903 h 4.992803 z" />
<path
id="path129"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';stroke-width:0.0700042"
d="m 59.130611,55.930887 q -0.190341,2.240173 -1.478806,3.982529 -1.273824,1.742356 -3.36758,2.679422 -2.079114,0.937066 -4.509628,0.893141 -3.338296,-0.07321 -5.256352,-2.152323 -1.918057,-2.079114 -2.093756,-5.637035 -0.131775,-2.371947 0.512457,-5.168503 0.658875,-2.796555 2.12304,-4.861027 1.478806,-2.079115 3.470071,-3.10403 2.005906,-1.039557 4.377853,-0.995632 3.484713,0.05857 5.50526,2.093756 2.03519,2.035189 2.21089,5.607752 l -4.992803,-0.01464 q 0.02928,-1.94734 -0.702799,-2.781914 -0.732083,-0.834574 -2.313381,-0.89314 -3.953246,-0.131775 -4.817103,6.149493 -0.395324,2.84048 -0.395324,4.055737 -0.07321,3.601846 2.66478,3.704337 1.77164,0.05857 2.825838,-0.863857 1.054199,-0.937066 1.347032,-2.635497 z" />
<path
id="path131"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';stroke-width:0.0700042"
d="m 74.958236,54.159248 h -7.833283 l -0.89314,5.080652 h 9.268164 L 74.81182,63.193146 H 60.536211 l 3.689696,-21.318243 h 14.304892 l -0.688158,3.967887 h -9.282806 l -0.790649,4.494987 h 7.847924 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

87
client/img/ice_ic.svg Normal file
View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
sodipodi:docname="ic_ice_new_path.svg"
id="svg8"
version="1.1"
viewBox="0 0 46.347183 46.347183"
height="46.347183mm"
width="46.347183mm">
<sodipodi:namedview
inkscape:current-layer="text24"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="122.69156"
inkscape:cx="18.890932"
inkscape:zoom="2.3291599"
showgrid="false"
id="namedview197"
inkscape:window-height="959"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff"
inkscape:document-rotation="0" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-32.443024,-29.353207)">
<g
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text24"
aria-label="NV">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:0.75;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="IC
ICE">
<path
id="path172"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 45.938483,51.388664 h -5.007444 l 3.704337,-21.318242 h 4.992803 z" />
<path
id="path174"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 67.359217,44.126406 q -0.190341,2.240172 -1.478806,3.982529 -1.273824,1.742356 -3.36758,2.679422 -2.079114,0.937065 -4.509628,0.89314 -3.338296,-0.07321 -5.256353,-2.152322 -1.918056,-2.079115 -2.093755,-5.637036 -0.131775,-2.371947 0.512457,-5.168502 0.658875,-2.796555 2.12304,-4.861028 1.478806,-2.079114 3.470071,-3.10403 2.005906,-1.039557 4.377853,-0.995632 3.484713,0.05857 5.50526,2.093756 2.03519,2.035189 2.210889,5.607752 l -4.992802,-0.01464 q 0.02928,-1.947339 -0.702799,-2.781913 -0.732083,-0.834574 -2.313381,-0.893141 -3.953246,-0.131775 -4.817103,6.149493 -0.395324,2.84048 -0.395324,4.055737 -0.07321,3.601846 2.66478,3.704338 1.771639,0.05857 2.825838,-0.863858 1.054199,-0.937065 1.347032,-2.635497 z" />
<path
id="path176"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 37.709876,74.997629 h -5.007445 l 3.704338,-21.318242 h 4.992802 z" />
<path
id="path178"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 59.13061,67.735371 q -0.190342,2.240172 -1.478807,3.982529 -1.273823,1.742356 -3.367579,2.679422 -2.079115,0.937065 -4.509628,0.89314 -3.338297,-0.07321 -5.256353,-2.152322 -1.918056,-2.079115 -2.093756,-5.637036 -0.131775,-2.371947 0.512458,-5.168502 0.658874,-2.796555 2.123039,-4.861028 1.478807,-2.079114 3.470071,-3.10403 2.005906,-1.039557 4.377854,-0.995632 3.484712,0.05857 5.50526,2.093756 2.035189,2.035189 2.210889,5.607752 l -4.992802,-0.01464 q 0.02928,-1.947339 -0.7028,-2.781913 -0.732082,-0.834574 -2.31338,-0.893141 -3.953246,-0.131775 -4.817103,6.149493 -0.395325,2.84048 -0.395325,4.055737 -0.07321,3.601846 2.664781,3.704338 1.771639,0.05857 2.825838,-0.863858 1.054199,-0.937065 1.347032,-2.635497 z" />
<path
id="path180"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 74.958235,65.963731 h -7.833283 l -0.893141,5.080653 h 9.268165 l -0.688158,3.953245 H 60.536209 l 3.689696,-21.318242 h 14.304892 l -0.688157,3.967887 h -9.282806 l -0.790649,4.494987 h 7.847924 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>

Before

Width:  |  Height:  |  Size: 234 B

74
client/img/nv.svg Normal file
View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="46.347183mm"
height="46.347183mm"
viewBox="0 0 46.347183 46.347183"
version="1.1"
id="svg8"
sodipodi:docname="nahverkehr_new_path.svg"
inkscape:version="1.0 (4035a4f, 2020-05-01)">
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="959"
id="namedview197"
showgrid="false"
inkscape:zoom="2.3291599"
inkscape:cx="79.213111"
inkscape:cy="88.701858"
inkscape:window-x="0"
inkscape:window-y="23"
inkscape:window-maximized="0"
inkscape:current-layer="text24" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-32.443024,-29.353207)"
id="layer1">
<g
aria-label="NV"
id="text24"
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="NV">
<path
id="path46"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';stroke-width:0.0700042"
d="M 51.978165,63.185921 H 47.131779 L 42.036485,49.730244 39.693821,63.185921 h -5.007445 l 3.689696,-21.318243 h 4.890311 l 5.080653,13.455677 2.328022,-13.455677 h 5.007444 z" />
<path
id="path48"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';stroke-width:0.0700042"
d="m 64.277152,57.329261 6.530175,-15.461583 h 5.739527 L 66.239133,63.185921 H 60.763156 L 57.190593,41.867678 h 5.41741 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="500" width="500" xmlns="http://www.w3.org/2000/svg">
<path d="M 249.5 -0.5 C 387.571187458 -0.5 499.5 111.428812542 499.5 249.5 C 499.5 387.571187458 387.571187458 499.5 249.5 499.5 C 111.428812542 499.5 -0.5 387.571187458 -0.5 249.5 C -0.5 111.428812542 111.428812542 -0.5 249.5 -0.5 Z" fill="#a3007c"/>
<g transform="scale(0.93, 0.93)">
<path d="M178.20792 263.87558C178.20776 271.38825 176.67741 278.10092 173.61686 284.0136C170.62558 289.92634 166.48668 294.83041 161.20016 298.72583C155.07863 303.31689 148.33118 306.58627 140.9578 308.53399C133.65374 310.48171 124.36731 311.45557 113.09846 311.45557L45.276115 311.45557L45.276115 156.09022L105.58583 156.09022C118.10679 156.09037 127.2541 156.50774 133.0278 157.34232C138.87084 158.17721 144.64443 160.02059 150.34858 162.87245C156.26117 165.86374 160.64353 169.8983 163.49568 174.97613C166.41712 179.98469 167.87791 185.72349 167.87805 192.19258C167.87791 199.70532 165.89541 206.34842 161.93055 212.12191C157.96542 217.82604 152.36574 222.27796 145.13148 225.4777L145.13148 226.31243C155.28731 228.3298 163.32164 232.50348 169.2345 238.83348C175.21663 245.16364 178.20776 253.51099 178.20792 263.87558M126.87162 200.01823C126.87151 197.44458 126.21068 194.87081 124.88912 192.29692C123.63691 189.72327 121.37617 187.81033 118.10688 186.5581C115.18521 185.44525 111.53325 184.85398 107.15096 184.78429C102.83808 184.64529 96.751466 184.57573 88.891101 184.57561L85.134787 184.57561L85.134787 217.44336L91.395311 217.44336C97.725325 217.44345 103.11633 217.33911 107.56833 217.13033C112.02017 216.92174 115.53302 216.22613 118.10688 215.04349C121.72398 213.44368 124.08906 211.39162 125.20214 208.88731C126.31502 206.31364 126.87151 203.35729 126.87162 200.01823M136.67977 263.24953C136.67966 258.31072 135.7058 254.51963 133.75819 251.87624C131.87993 249.16341 128.64533 247.14613 124.05438 245.8244C120.92402 244.92017 116.61122 244.43324 111.11596 244.36361C105.62053 244.29412 99.881725 244.25934 93.899521 244.25927L85.134787 244.25927L85.134787 282.97018L88.056365 282.97018C99.325235 282.97021 107.39435 282.93543 112.26373 282.86584C117.13293 282.79631 121.61964 281.89201 125.72385 280.15294C129.89743 278.41394 132.74945 276.11842 134.2799 273.26637C135.8797 270.34483 136.67966 267.00589 136.67977 263.24953M344.11181 255.21519C344.11166 274.41417 338.26851 289.12639 326.58235 299.35189C314.89591 309.57741 297.67948 314.69017 274.93302 314.69017C252.18638 314.69017 234.96996 309.57741 223.28369 299.35189C211.66692 289.12639 205.85855 274.44895 205.85857 255.31953L205.85857 156.09022L246.13461 156.09022L246.13461 253.02401C246.13455 263.80607 248.39529 271.8404 252.91684 277.12702C257.43826 282.41372 264.77698 285.05705 274.93302 285.05702C284.94976 285.05705 292.2537 282.51806 296.84486 277.44005C301.50535 272.36211 303.83566 264.22344 303.83577 253.02401L303.83577 156.09022L344.11181 156.09022L344.11181 255.21519M506.05073 262.62348C506.05059 277.92701 499.5466 290.37849 486.53876 299.97794C473.60023 309.50785 456.00122 314.2728 433.74167 314.2728C420.87276 314.2728 409.63861 313.15982 400.03918 310.93386C390.50925 308.63833 381.57062 305.75154 373.22327 302.27346L373.22327 265.02334L377.60564 265.02334C385.88342 271.63171 395.13507 276.70969 405.36063 280.25729C415.65566 283.80494 425.53337 285.57876 434.99378 285.57873C437.42835 285.57876 440.62817 285.37007 444.59325 284.95268C448.55816 284.53534 451.79276 283.83973 454.29706 282.86584C457.35767 281.61376 459.86188 280.04863 461.80969 278.17045C463.82687 276.29232 464.83551 273.50987 464.83561 269.82308C464.83551 266.41462 463.37472 263.49304 460.45324 261.05835C457.60113 258.55419 453.39267 256.64125 447.82785 255.31953C441.98462 253.92836 435.79366 252.64148 429.25497 251.45887C422.7857 250.20683 416.69908 248.6417 410.9951 246.76348C397.91753 242.52031 388.49197 236.7815 382.7184 229.54704C377.01435 222.24318 374.16234 213.20021 374.16235 202.4181C374.16234 187.94946 380.63154 176.15881 393.56998 167.04614C406.57791 157.86419 423.27262 153.27314 443.65417 153.27298C453.8796 153.27314 463.96599 154.28178 473.91337 156.2989C483.93009 158.24678 492.59047 160.7162 499.89455 163.70719L499.89455 199.49652L495.61652 199.49652C489.35587 194.48822 481.66935 190.31454 472.55693 186.97547C463.51384 183.56709 454.26219 181.86284 444.80193 181.86271C441.46291 181.86284 438.12396 182.10631 434.78509 182.59311C431.51564 183.0106 428.3506 183.84534 425.28997 185.09732C422.57701 186.14086 420.24671 187.74077 418.29905 189.89705C416.35127 191.98401 415.37742 194.38388 415.37747 197.09665C415.37742 201.20089 416.94255 204.36593 420.07286 206.59178C423.20306 208.74829 429.11577 210.73079 437.81102 212.53928C443.51497 213.72192 448.97553 214.86968 454.19272 215.98257C459.47929 217.09565 465.14853 218.62599 471.20048 220.57362C483.09535 224.46915 491.86008 229.79059 497.49468 236.53796C503.19857 243.21592 506.05059 251.91108 506.05073 262.62348" fill="#ffffff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="500" width="500" xmlns="http://www.w3.org/2000/svg">
<path d="M 249.5 -0.5 C 387.571187458 -0.5 499.5 111.428812542 499.5 249.5 C 499.5 387.571187458 387.571187458 499.5 249.5 499.5 C 111.428812542 499.5 -0.5 387.571187458 -0.5 249.5 C -0.5 111.428812542 111.428812542 -0.5 249.5 -0.5 Z" fill="#a9a9a9"/>
<g transform="scale(0.93, 0.93)">
<path d="M178.20792 263.87558C178.20776 271.38825 176.67741 278.10092 173.61686 284.0136C170.62558 289.92634 166.48668 294.83041 161.20016 298.72583C155.07863 303.31689 148.33118 306.58627 140.9578 308.53399C133.65374 310.48171 124.36731 311.45557 113.09846 311.45557L45.276115 311.45557L45.276115 156.09022L105.58583 156.09022C118.10679 156.09037 127.2541 156.50774 133.0278 157.34232C138.87084 158.17721 144.64443 160.02059 150.34858 162.87245C156.26117 165.86374 160.64353 169.8983 163.49568 174.97613C166.41712 179.98469 167.87791 185.72349 167.87805 192.19258C167.87791 199.70532 165.89541 206.34842 161.93055 212.12191C157.96542 217.82604 152.36574 222.27796 145.13148 225.4777L145.13148 226.31243C155.28731 228.3298 163.32164 232.50348 169.2345 238.83348C175.21663 245.16364 178.20776 253.51099 178.20792 263.87558M126.87162 200.01823C126.87151 197.44458 126.21068 194.87081 124.88912 192.29692C123.63691 189.72327 121.37617 187.81033 118.10688 186.5581C115.18521 185.44525 111.53325 184.85398 107.15096 184.78429C102.83808 184.64529 96.751466 184.57573 88.891101 184.57561L85.134787 184.57561L85.134787 217.44336L91.395311 217.44336C97.725325 217.44345 103.11633 217.33911 107.56833 217.13033C112.02017 216.92174 115.53302 216.22613 118.10688 215.04349C121.72398 213.44368 124.08906 211.39162 125.20214 208.88731C126.31502 206.31364 126.87151 203.35729 126.87162 200.01823M136.67977 263.24953C136.67966 258.31072 135.7058 254.51963 133.75819 251.87624C131.87993 249.16341 128.64533 247.14613 124.05438 245.8244C120.92402 244.92017 116.61122 244.43324 111.11596 244.36361C105.62053 244.29412 99.881725 244.25934 93.899521 244.25927L85.134787 244.25927L85.134787 282.97018L88.056365 282.97018C99.325235 282.97021 107.39435 282.93543 112.26373 282.86584C117.13293 282.79631 121.61964 281.89201 125.72385 280.15294C129.89743 278.41394 132.74945 276.11842 134.2799 273.26637C135.8797 270.34483 136.67966 267.00589 136.67977 263.24953M344.11181 255.21519C344.11166 274.41417 338.26851 289.12639 326.58235 299.35189C314.89591 309.57741 297.67948 314.69017 274.93302 314.69017C252.18638 314.69017 234.96996 309.57741 223.28369 299.35189C211.66692 289.12639 205.85855 274.44895 205.85857 255.31953L205.85857 156.09022L246.13461 156.09022L246.13461 253.02401C246.13455 263.80607 248.39529 271.8404 252.91684 277.12702C257.43826 282.41372 264.77698 285.05705 274.93302 285.05702C284.94976 285.05705 292.2537 282.51806 296.84486 277.44005C301.50535 272.36211 303.83566 264.22344 303.83577 253.02401L303.83577 156.09022L344.11181 156.09022L344.11181 255.21519M506.05073 262.62348C506.05059 277.92701 499.5466 290.37849 486.53876 299.97794C473.60023 309.50785 456.00122 314.2728 433.74167 314.2728C420.87276 314.2728 409.63861 313.15982 400.03918 310.93386C390.50925 308.63833 381.57062 305.75154 373.22327 302.27346L373.22327 265.02334L377.60564 265.02334C385.88342 271.63171 395.13507 276.70969 405.36063 280.25729C415.65566 283.80494 425.53337 285.57876 434.99378 285.57873C437.42835 285.57876 440.62817 285.37007 444.59325 284.95268C448.55816 284.53534 451.79276 283.83973 454.29706 282.86584C457.35767 281.61376 459.86188 280.04863 461.80969 278.17045C463.82687 276.29232 464.83551 273.50987 464.83561 269.82308C464.83551 266.41462 463.37472 263.49304 460.45324 261.05835C457.60113 258.55419 453.39267 256.64125 447.82785 255.31953C441.98462 253.92836 435.79366 252.64148 429.25497 251.45887C422.7857 250.20683 416.69908 248.6417 410.9951 246.76348C397.91753 242.52031 388.49197 236.7815 382.7184 229.54704C377.01435 222.24318 374.16234 213.20021 374.16235 202.4181C374.16234 187.94946 380.63154 176.15881 393.56998 167.04614C406.57791 157.86419 423.27262 153.27314 443.65417 153.27298C453.8796 153.27314 463.96599 154.28178 473.91337 156.2989C483.93009 158.24678 492.59047 160.7162 499.89455 163.70719L499.89455 199.49652L495.61652 199.49652C489.35587 194.48822 481.66935 190.31454 472.55693 186.97547C463.51384 183.56709 454.26219 181.86284 444.80193 181.86271C441.46291 181.86284 438.12396 182.10631 434.78509 182.59311C431.51564 183.0106 428.3506 183.84534 425.28997 185.09732C422.57701 186.14086 420.24671 187.74077 418.29905 189.89705C416.35127 191.98401 415.37742 194.38388 415.37747 197.09665C415.37742 201.20089 416.94255 204.36593 420.07286 206.59178C423.20306 208.74829 429.11577 210.73079 437.81102 212.53928C443.51497 213.72192 448.97553 214.86968 454.19272 215.98257C459.47929 217.09565 465.14853 218.62599 471.20048 220.57362C483.09535 224.46915 491.86008 229.79059 497.49468 236.53796C503.19857 243.21592 506.05059 251.91108 506.05073 262.62348" fill="#ffffff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="500" width="500" xmlns="http://www.w3.org/2000/svg">
<path d="M 249.5 -0.5 C 387.571187458 -0.5 499.5 111.428812542 499.5 249.5 C 499.5 387.571187458 387.571187458 499.5 249.5 499.5 C 111.428812542 499.5 -0.5 387.571187458 -0.5 249.5 C -0.5 111.428812542 111.428812542 -0.5 249.5 -0.5 Z" fill="#a3007c"/>
<g transform="translate(45, 45) scale(17, 17)">
<path d="M 20 15.5 c -1.25 0 -2.45 -.2 -3.57 -.57 -.35 -.11 -.74 -.03 -1.02 .24 l -2.2 2.2 c -2.83 -1.44 -5.15 -3.75 -6.59 -6.58 l 2.2 -2.21 c .28 -.27 .36 -.66 .25 -1.01 C 8.7 6.45 8.5 5.25 8.5 4 c 0 -.55 -.45 -1 -1 -1 H 4 c -.55 0 -1 .45 -1 1 0 9.39 7.61 17 17 17 .55 0 1 -.45 1 -1 v -3.5 c 0 -.55 -.45 -1 -1 -1 z" fill="#ffffff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 847 B

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="500" width="500" xmlns="http://www.w3.org/2000/svg">
<path d="M 249.5 -0.5 C 387.571187458 -0.5 499.5 111.428812542 499.5 249.5 C 499.5 387.571187458 387.571187458 499.5 249.5 499.5 C 111.428812542 499.5 -0.5 387.571187458 -0.5 249.5 C -0.5 111.428812542 111.428812542 -0.5 249.5 -0.5 Z" fill="#a9a9a9"/>
<g transform="translate(45, 45) scale(17, 17)">
<path d="M 20 15.5 c -1.25 0 -2.45 -.2 -3.57 -.57 -.35 -.11 -.74 -.03 -1.02 .24 l -2.2 2.2 c -2.83 -1.44 -5.15 -3.75 -6.59 -6.58 l 2.2 -2.21 c .28 -.27 .36 -.66 .25 -1.01 C 8.7 6.45 8.5 5.25 8.5 4 c 0 -.55 -.45 -1 -1 -1 H 4 c -.55 0 -1 .45 -1 1 0 9.39 7.61 17 17 17 .55 0 1 -.45 1 -1 v -3.5 c 0 -.55 -.45 -1 -1 -1 z" fill="#ffffff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 847 B

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="500" width="500" xmlns="http://www.w3.org/2000/svg">
<path d="M 249.5 -0.5 C 387.571187458 -0.5 499.5 111.428812542 499.5 249.5 C 499.5 387.571187458 387.571187458 499.5 249.5 499.5 C 111.428812542 499.5 -0.5 387.571187458 -0.5 249.5 C -0.5 111.428812542 111.428812542 -0.5 249.5 -0.5 Z" fill="#ffffff"/>
<g transform="translate(-124, -282.36217)">
<path d="M 530.96544,727.09056 C 518.61233,731.51828 424.32729,729.55598 371.47722,713.67181 C 242.6438,674.95072 188.03985,698.09969 188.71925,698.44999 C 234.50268,749.59823 301.00643,781.86217 375.00001,781.86217 C 433.98426,781.86217 488.2424,761.35276 530.96544,727.09056 z M 553.7215,706.36522 C 506.77439,716.60935 450.5039,712.13823 401.70643,703.18706 C 354.10678,691.99951 300.55231,671.99455 270.35714,674.50504 L 298.92857,540.21932 L 467.14285,540.21932 L 478.92857,480.93318 L 311.07143,480.93318 L 328.21428,397.36218 L 500.71428,397.36218 L 511.42857,339.50504 L 270,339.50504 L 199.28571,673.07647 C 177.5,676.64789 174.84375,681.51396 174.76786,681.49928 C 143.87047,639.76479 125.49999,588.19576 125.49999,532.36218 C 125.49999,394.63817 237.276,282.86218 375.00001,282.86218 C 512.72399,282.86218 624.5,394.63817 624.5,532.36218 C 624.5,600.02229 597.49914,661.40668 553.7215,706.36522 z" fill="#0080c0" stroke-width="1"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="500" width="500" xmlns="http://www.w3.org/2000/svg">
<path d="M 249.5 -0.5 C 387.571187458 -0.5 499.5 111.428812542 499.5 249.5 C 499.5 387.571187458 387.571187458 499.5 249.5 499.5 C 111.428812542 499.5 -0.5 387.571187458 -0.5 249.5 C -0.5 111.428812542 111.428812542 -0.5 249.5 -0.5 Z" fill="#ffffff"/>
<g transform="translate(-124, -282.36217)">
<path d="M 530.96544,727.09056 C 518.61233,731.51828 424.32729,729.55598 371.47722,713.67181 C 242.6438,674.95072 188.03985,698.09969 188.71925,698.44999 C 234.50268,749.59823 301.00643,781.86217 375.00001,781.86217 C 433.98426,781.86217 488.2424,761.35276 530.96544,727.09056 z M 553.7215,706.36522 C 506.77439,716.60935 450.5039,712.13823 401.70643,703.18706 C 354.10678,691.99951 300.55231,671.99455 270.35714,674.50504 L 298.92857,540.21932 L 467.14285,540.21932 L 478.92857,480.93318 L 311.07143,480.93318 L 328.21428,397.36218 L 500.71428,397.36218 L 511.42857,339.50504 L 270,339.50504 L 199.28571,673.07647 C 177.5,676.64789 174.84375,681.51396 174.76786,681.49928 C 143.87047,639.76479 125.49999,588.19576 125.49999,532.36218 C 125.49999,394.63817 237.276,282.86218 375.00001,282.86218 C 512.72399,282.86218 624.5,394.63817 624.5,532.36218 C 624.5,600.02229 597.49914,661.40668 553.7215,706.36522 z" fill="#a9a9a9" stroke-width="1"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="2200" width="2200" xmlns="http://www.w3.org/2000/svg">
<g android:pivotX="1100" android:pivotY="1100" transform="scale(0.93, 0.93)">
<path d="M0,2200L2200,2200L2200,0l-2200,0Z" fill="#ff0000"/>
<path d="M270,1203.2c0,0,-6.8,8.3,-20,24.5c-13.2,16.2,-20,24.5,-20,24.5l-47.6,60.3c0,0,-5.9,9,-17.3,26.4c-11.4,17.4,-17.3,26.3,-17.3,26.3l-58.3,108.2c0,0,-2.6,10.1,-7.6,29.8c-5,19.6,-7.6,29.7,-7.6,29.7l-0.7,87c0,0,2.4,10.2,6.9,30c4.5,19.8,6.8,30,6.8,30l7.5,15.2c0,0,6.5,8.2,19.1,24.3c12.6,16,19.1,24.3,19.1,24.3l31.3,26c0,0,8.5,5.9,24.9,17.3c16.4,11.3,24.9,17.2,24.9,17.2l1.1,0.6c0,0,9.4,3.9,27.8,11.6c18.4,7.6,27.9,11.6,27.9,11.6l49.4,13.6c0,0,10.6,1.9,31.1,5.4c20.4,3.5,31,5.3,31,5.3l36.8,2.6c0,0,10.8,0.4,31.6,1.3c20.9,0.8,31.7,1.3,31.7,1.3l1725.6,19.3l-2,-1640.9l-585.4,0.9c0,0,-10.7,0.5,-31.5,1.6c-20.9,1.1,-31.6,1.6,-31.6,1.6l-196.4,20c0,0,-10.4,2.3,-30.7,6.8c-20.3,4.4,-30.7,6.7,-30.7,6.7l-111.3,38.2c0,0,-9.8,4.4,-28.7,13c-18.9,8.6,-28.7,13,-28.7,13l-62.7,36c0,0,-8.8,6.2,-25.9,18c-17.1,11.9,-25.9,18,-25.9,18L936.1,528.9c0,0,-7.8,7.4,-23,21.6c-15.2,14.3,-23,21.6,-23,21.6L675.9,799c0,0,-7.2,8,-21.1,23.6c-13.9,15.6,-21,23.6,-21,23.6Z" fill="#ffffff"/>
<path d="M528.4,1342.5l-0.9,-1.3l-1.1,-1.2l-1,-1.2l-1.1,-1.1l-1.2,-1.2l-1.2,-1.1l-1.2,-1.2l-1.3,-1.1l-1.3,-1.1l-1.4,-1l-1.4,-1.1l-1.4,-1l-1.5,-1.1l-1.5,-1l-1.6,-0.9l-1.6,-1l-1.6,-0.9l-1.7,-0.9l-1.7,-0.9l-1.8,-0.9l-1.8,-0.9l-1.8,-0.8l-1.9,-0.8l-1.9,-0.8l-1.9,-0.8l-1.9,-0.7l-2,-0.7l-2.1,-0.7l-2,-0.7l-2.1,-0.6l-2.1,-0.6l-2.1,-0.6l-2.2,-0.6l-2.2,-0.5l-2.2,-0.6l-2.3,-0.5l-2.2,-0.4l-2.3,-0.5l-2.4,-0.4l-2.3,-0.4l-2.3,-0.3l-2.4,-0.4l-2.4,-0.3l-2.4,-0.3l-2.5,-0.2l-2.4,-0.2l-2.5,-0.2l-2.5,-0.2l-2.5,-0.2l-2.5,-0.1l-2.5,-0.1l-2.5,-0.1l-2.6,0l-2.5,0l-2.6,0l-2.6,0.1l-2.5,0l-2.6,0.1l-2.6,0.1l-2.6,0.2l-2.6,0.2L404,1307l-2.6,0.2l-2.6,0.3l-2.6,0.3l-2.6,0.3l-2.6,0.3l-2.6,0.4l-2.5,0.4l-2.6,0.4l-2.6,0.4l-2.6,0.5l-2.5,0.5l-2.6,0.5l-2.5,0.6l-2.6,0.5l-2.5,0.6l-2.5,0.6l-2.5,0.7l-2.5,0.7l-2.4,0.7l-2.5,0.7l-2.4,0.7l-2.4,0.8l-2.4,0.8l-2.4,0.8l-2.4,0.8l-2.3,0.9l-2.3,0.8l-2.3,0.9l-2.3,1l-2.2,0.9l-2.2,1l-2.2,0.9l-2.2,1l-2.1,1.1l-2.1,1l-2.1,1.1l-2.1,1l-2,1.1l-2,1.1l-1.9,1.2l-2,1.1l-1.9,1.2l-1.8,1.1l-1.8,1.2l-1.8,1.3l-1.8,1.2l-1.7,1.2l-1.7,1.3l-1.6,1.2l-1.6,1.3l-1.6,1.3l-1.5,1.3l-1.5,1.3l-1.4,1.3l-1.4,1.4l-1.4,1.3l-1.3,1.4l-1.3,1.3l-1.2,1.4l-1.2,1.4l-1.2,1.4l-1.1,1.4l-1,1.4l-1,1.4l-1,1.4l-0.9,1.4l-0.9,1.5l-0.8,1.4l-0.8,1.4l-0.7,1.5l-0.7,1.4l-0.7,1.4l-0.6,1.5l-0.5,1.4l-0.5,1.5l-0.5,1.4l-0.4,1.5l-0.3,1.4l-0.3,1.4l-0.3,1.5l-0.2,1.4l-0.1,1.5l-0.2,1.4l0,1.4l0,1.4l0,1.5l0.1,1.4l0.1,1.4l0.2,1.4l0.2,1.4l0.3,1.4l0.4,1.3l0.3,1.4l0.5,1.4l0.4,1.3l0.6,1.3l0.5,1.4l0.7,1.3l0.6,1.3l0.7,1.3l0.8,1.3l0.8,1.3l0.9,1.2l0.9,1.3l0.9,1.2l1,1.2l1.1,1.2l1,1.2l1.2,1.2l1.1,1.1l1.2,1.1l1.3,1.2l1.3,1.1l1.3,1l1.4,1.1l1.5,1.1l1.4,1l1.5,1l1.6,1l1.6,1l1.6,0.9l1.6,0.9l1.7,0.9l1.8,0.9l1.8,0.9l1.8,0.8l1.8,0.8l1.9,0.8l1.9,0.8l1.9,0.8l2,0.7l2,0.7l2.1,0.7l2,0.6l2.1,0.7l2.1,0.6l2.2,0.6l2.2,0.5l2.2,0.5l2.2,0.5l2.3,0.5l2.3,0.5l2.3,0.4l2.3,0.4l2.3,0.4l2.4,0.3l2.4,0.4l2.4,0.3l2.4,0.2l2.5,0.3l2.4,0.2l2.5,0.2l2.5,0.1l2.5,0.2l2.5,0.1l2.5,0.1l2.6,0l2.5,0l2.6,0l2.5,0l2.6,0l2.6,-0.1l2.6,-0.1l2.6,-0.2l2.6,-0.1l2.5,-0.2l2.6,-0.3l2.6,-0.2l2.6,-0.3l2.6,-0.3l2.6,-0.3l2.6,-0.3l2.6,-0.4l2.6,-0.4l2.6,-0.5l2.6,-0.4l2.5,-0.5l2.6,-0.5l2.5,-0.5l2.6,-0.6l2.5,-0.6l2.5,-0.6l2.5,-0.6l2.5,-0.7l2.5,-0.7l2.4,-0.7l2.5,-0.7l2.4,-0.7l2.4,-0.8l2.4,-0.8l2.3,-0.8l2.4,-0.9l2.3,-0.9l2.3,-0.8l2.3,-1l2.3,-0.9l2.2,-0.9l2.2,-1l2.2,-1l2.1,-1l2.1,-1l2.1,-1.1l2.1,-1l2,-1.1l2,-1.1l2,-1.2l2,-1.1l1.9,-1.1l1.8,-1.2l1.9,-1.2l1.8,-1.2l1.8,-1.2l1.7,-1.3l1.7,-1.2l1.7,-1.3l1.6,-1.2l1.6,-1.3l1.5,-1.3l1.5,-1.3l1.5,-1.3l1.4,-1.4l1.4,-1.3l1.3,-1.4l1.3,-1.3l1.3,-1.4l1.2,-1.4l1.2,-1.4l1.1,-1.3l1.1,-1.4l1,-1.5l1,-1.4l0.9,-1.4l0.9,-1.4l0.9,-1.4l0.8,-1.5l0.8,-1.4l0.7,-1.4l0.6,-1.5l0.6,-1.4l0.6,-1.5l0.5,-1.4l0.5,-1.5l0.4,-1.4l0.4,-1.4l0.3,-1.5l0.3,-1.4l0.3,-1.5l0.1,-1.4l0.2,-1.4l0.1,-1.5l0,-1.4l0,-1.4l-0.1,-1.4l-0.1,-1.4l-0.2,-1.4l-0.2,-1.4l-0.2,-1.4l-0.3,-1.4l-0.4,-1.4l-0.4,-1.3l-0.4,-1.4l-0.5,-1.3l-0.6,-1.4l-0.6,-1.3l-0.6,-1.3l-0.7,-1.3l-0.8,-1.3l-0.7,-1.3l-0.9,-1.2l-0.9,-1.3l-0.9,-1.2Z" fill="#ff0000"/>
<path d="M431.6,1187.9l39.7,4.4c0,0,9.7,1.8,28.6,5.3c18.8,3.6,28.5,5.4,28.5,5.4l1.2,0.3c0,0,9.7,1.9,28.5,5.6c18.8,3.8,28.5,5.7,28.5,5.7l28.4,3.8L926.6,856.7c0,0,7.3,-7.8,21.7,-23C962.6,818.6,970,810.8,970,810.8L1237.5,553.7L1042.7,530.9L797.6,779.6c0,0,-7.4,7.8,-21.6,23.1c-14.3,15.2,-21.7,23,-21.7,23Z" fill="#ff0000"/>
<path d="M1614.8,2037.4l4.8,-0.1l4.8,-0.1l4.8,-0.3l4.7,-0.3l4.8,-0.4l4.8,-0.5l4.7,-0.6l4.7,-0.6l4.8,-0.8l4.7,-0.8l4.7,-1l4.6,-1l4.7,-1.1l4.6,-1.2l4.6,-1.3l4.6,-1.4l4.6,-1.5l4.5,-1.5l4.5,-1.7l4.5,-1.7l4.4,-1.8l4.4,-1.9l4.4,-2l4.3,-2l4.3,-2.1l4.2,-2.3l4.2,-2.3l4.2,-2.3l4.1,-2.5l4,-2.5l4,-2.6l4,-2.7l3.9,-2.7l3.9,-2.9l3.8,-2.9l3.7,-2.9l3.7,-3.1l3.7,-3.1l3.5,-3.2l3.6,-3.2l3.4,-3.3l3.4,-3.4l3.3,-3.4l3.3,-3.5l3.2,-3.6l3.1,-3.6l3.1,-3.7l3,-3.7l2.9,-3.8l2.8,-3.9l2.8,-3.9l2.7,-3.9l2.6,-4l2.6,-4.1l2.4,-4.1l2.4,-4.1l2.4,-4.2l2.2,-4.3l2.1,-4.2l2.1,-4.3l2,-4.4l1.9,-4.4l1.8,-4.4l1.8,-4.5l1.6,-4.5l1.6,-4.5l1.5,-4.5l1.4,-4.6l1.3,-4.6l1.2,-4.6l1.2,-4.7l1,-4.6l1,-4.7l0.9,-4.7l0.8,-4.7l0.7,-4.8l0.6,-4.7l0.5,-4.8l0.4,-4.8l0.4,-4.7l0.2,-4.8l0.2,-4.8l0,-4.8l0,-4.8l-0.1,-4.7l-0.2,-4.8l-0.3,-4.8l-0.4,-4.8l-0.5,-4.7l-0.5,-4.8l-0.7,-4.7L1865,1742l-0.8,-4.7l-1,-4.7l-1,-4.6l-1.1,-4.7l-1.2,-4.6l-1.2,-4.6l-1.4,-4.6l-1.4,-4.6l-1.6,-4.5l-1.6,-4.5l-1.7,-4.5l-1.8,-4.5l-1.8,-4.4l-2,-4.3l-2,-4.4l-2.1,-4.3l-2.2,-4.2l-2.3,-4.2l-2.3,-4.2l-2.5,-4.1l-2.5,-4.1l-2.6,-4l-2.6,-4l-2.8,-3.9l-2.8,-3.9l-2.9,-3.8l-2.9,-3.8l-3,-3.7l-3.1,-3.6l-3.2,-3.6l-3.2,-3.6l-3.3,-3.4l-3.4,-3.4l-3.4,-3.4l-3.5,-3.3l-3.5,-3.2l-3.6,-3.1l-3.7,-3.1l-3.7,-3l-3.8,-2.9l-3.8,-2.9l-3.9,-2.8l-4,-2.7l-4,-2.6l-4,-2.6l-4.1,-2.5l-4.1,-2.4l-4.2,-2.3l-4.2,-2.3l-4.3,-2.2l-4.3,-2.1l-4.3,-2l-4.4,-1.9l-4.4,-1.9l-4.5,-1.7l-4.4,-1.7l-4.6,-1.6l-4.5,-1.5l-4.6,-1.4l-4.6,-1.4l-4.6,-1.2l-4.6,-1.2l-4.7,-1l-4.7,-1l-4.7,-0.9l-4.7,-0.8l-4.7,-0.8l-4.8,-0.6l-4.7,-0.5l-4.8,-0.5l-4.8,-0.3l-4.7,-0.3l-4.8,-0.2l-4.8,-0.1l-4.8,0l-4.8,0.1l-4.8,0.2l-4.7,0.3l-4.8,0.3l-4.8,0.5l-4.7,0.5l-4.8,0.6l-4.7,0.8l-4.7,0.8l-4.7,0.9l-4.7,1l-4.7,1l-4.6,1.2l-4.6,1.2l-4.6,1.4l-4.6,1.4l-4.5,1.5l-4.5,1.6l-4.5,1.7l-4.5,1.7l-4.4,1.9l-4.4,1.9l-4.3,2l-4.3,2.1l-4.3,2.2l-4.2,2.3l-4.2,2.3l-4.1,2.4l-4.1,2.5l-4,2.6l-4,2.6l-4,2.7l-3.8,2.8l-3.9,2.9l-3.8,2.9l-3.7,3l-3.6,3.1l-3.7,3.1l-3.5,3.2l-3.5,3.3l-3.4,3.4l-3.4,3.4l-3.3,3.4l-3.2,3.6l-3.2,3.6l-3,3.6l-3.1,3.7l-2.9,3.8l-2.9,3.8l-2.8,3.9l-2.7,3.9l-2.7,4l-2.6,4l-2.5,4.1l-2.4,4.1l-2.4,4.2l-2.3,4.2l-2.2,4.2l-2.1,4.3l-2,4.4l-2,4.3l-1.8,4.4l-1.8,4.5l-1.7,4.5l-1.6,4.5l-1.6,4.5l-1.4,4.6l-1.4,4.6l-1.2,4.6l-1.2,4.6l-1.1,4.7l-1,4.6l-0.9,4.7l-0.9,4.7l-0.7,4.8l-0.7,4.7l-0.5,4.8l-0.5,4.7l-0.4,4.8l-0.3,4.8l-0.2,4.8l-0.1,4.7l0,4.8l0.1,4.8l0.1,4.8l0.3,4.8l0.3,4.7l0.4,4.8l0.5,4.8l0.7,4.7l0.7,4.8l0.7,4.7l0.9,4.7l1,4.7l1,4.6l1.2,4.7l1.2,4.6l1.3,4.6l1.4,4.6l1.5,4.5l1.6,4.5l1.6,4.5l1.8,4.5l1.8,4.4l1.9,4.4l2,4.4l2.1,4.3l2.1,4.2l2.3,4.3l2.3,4.2l2.4,4.1l2.4,4.1l2.6,4.1l2.6,4l2.7,3.9l2.8,3.9l2.8,3.9l2.9,3.8l3,3.7l3.1,3.7l3.1,3.6l3.2,3.6l3.3,3.5l3.3,3.4l3.4,3.4l3.5,3.3l3.5,3.2l3.5,3.2l3.7,3.1l3.7,3.1l3.7,2.9l3.8,2.9l3.9,2.9l3.9,2.7l4,2.7l4,2.6l4.1,2.5l4.1,2.5l4.1,2.3l4.2,2.3l4.3,2.3l4.2,2.1l4.4,2l4.3,2l4.4,1.9l4.5,1.8l4.4,1.7l4.5,1.7l4.5,1.5l4.6,1.5l4.6,1.4l4.6,1.3l4.6,1.2l4.7,1.1l4.6,1l4.7,1l4.7,0.8l4.8,0.8l4.7,0.6l4.8,0.6l4.7,0.5l4.8,0.4l4.8,0.3l4.7,0.3l4.8,0.1l4.8,0.1Z" fill="#ffffff" stroke="#ffffff" stroke-width="44"/>
<path d="M 1142,1168 L 2200,1162.3 l 0,-500.9 L 2013,677.3 c 0,0,-10.6,1.4,-31.2,4.1c-20.7,2.8,-31.3,4.2,-31.3,4.2l-142.2,31.2c0,0,-10.2,3.4,-29.9,9.9c-19.7,6.6,-29.8,9.9,-29.8,9.9L1499.4,849.5c0,0,-9,5.6,-26.6,16.6c-17.6,10.9,-26.6,16.5,-26.6,16.5l-182.9,150.8c0,0,-7.6,7.6,-22.4,22.2c-14.8,14.6,-22.4,22.1,-22.4,22.1Z" fill="#ff0000"/>
<path d="M 933.6,1457.5 L 2200,1469.1 L 2200,1333 l -1293.9,0 Z" fill="#ff0000"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="2200" width="2200" xmlns="http://www.w3.org/2000/svg">
<g android:pivotX="1100" android:pivotY="1100" transform="scale(0.93, 0.93)">
<path d="M0,2200L2200,2200L2200,0l-2200,0Z" fill="#a9a9a9"/>
<path d="M270,1203.2c0,0,-6.8,8.3,-20,24.5c-13.2,16.2,-20,24.5,-20,24.5l-47.6,60.3c0,0,-5.9,9,-17.3,26.4c-11.4,17.4,-17.3,26.3,-17.3,26.3l-58.3,108.2c0,0,-2.6,10.1,-7.6,29.8c-5,19.6,-7.6,29.7,-7.6,29.7l-0.7,87c0,0,2.4,10.2,6.9,30c4.5,19.8,6.8,30,6.8,30l7.5,15.2c0,0,6.5,8.2,19.1,24.3c12.6,16,19.1,24.3,19.1,24.3l31.3,26c0,0,8.5,5.9,24.9,17.3c16.4,11.3,24.9,17.2,24.9,17.2l1.1,0.6c0,0,9.4,3.9,27.8,11.6c18.4,7.6,27.9,11.6,27.9,11.6l49.4,13.6c0,0,10.6,1.9,31.1,5.4c20.4,3.5,31,5.3,31,5.3l36.8,2.6c0,0,10.8,0.4,31.6,1.3c20.9,0.8,31.7,1.3,31.7,1.3l1725.6,19.3l-2,-1640.9l-585.4,0.9c0,0,-10.7,0.5,-31.5,1.6c-20.9,1.1,-31.6,1.6,-31.6,1.6l-196.4,20c0,0,-10.4,2.3,-30.7,6.8c-20.3,4.4,-30.7,6.7,-30.7,6.7l-111.3,38.2c0,0,-9.8,4.4,-28.7,13c-18.9,8.6,-28.7,13,-28.7,13l-62.7,36c0,0,-8.8,6.2,-25.9,18c-17.1,11.9,-25.9,18,-25.9,18L936.1,528.9c0,0,-7.8,7.4,-23,21.6c-15.2,14.3,-23,21.6,-23,21.6L675.9,799c0,0,-7.2,8,-21.1,23.6c-13.9,15.6,-21,23.6,-21,23.6Z" fill="#ffffff"/>
<path d="M528.4,1342.5l-0.9,-1.3l-1.1,-1.2l-1,-1.2l-1.1,-1.1l-1.2,-1.2l-1.2,-1.1l-1.2,-1.2l-1.3,-1.1l-1.3,-1.1l-1.4,-1l-1.4,-1.1l-1.4,-1l-1.5,-1.1l-1.5,-1l-1.6,-0.9l-1.6,-1l-1.6,-0.9l-1.7,-0.9l-1.7,-0.9l-1.8,-0.9l-1.8,-0.9l-1.8,-0.8l-1.9,-0.8l-1.9,-0.8l-1.9,-0.8l-1.9,-0.7l-2,-0.7l-2.1,-0.7l-2,-0.7l-2.1,-0.6l-2.1,-0.6l-2.1,-0.6l-2.2,-0.6l-2.2,-0.5l-2.2,-0.6l-2.3,-0.5l-2.2,-0.4l-2.3,-0.5l-2.4,-0.4l-2.3,-0.4l-2.3,-0.3l-2.4,-0.4l-2.4,-0.3l-2.4,-0.3l-2.5,-0.2l-2.4,-0.2l-2.5,-0.2l-2.5,-0.2l-2.5,-0.2l-2.5,-0.1l-2.5,-0.1l-2.5,-0.1l-2.6,0l-2.5,0l-2.6,0l-2.6,0.1l-2.5,0l-2.6,0.1l-2.6,0.1l-2.6,0.2l-2.6,0.2L404,1307l-2.6,0.2l-2.6,0.3l-2.6,0.3l-2.6,0.3l-2.6,0.3l-2.6,0.4l-2.5,0.4l-2.6,0.4l-2.6,0.4l-2.6,0.5l-2.5,0.5l-2.6,0.5l-2.5,0.6l-2.6,0.5l-2.5,0.6l-2.5,0.6l-2.5,0.7l-2.5,0.7l-2.4,0.7l-2.5,0.7l-2.4,0.7l-2.4,0.8l-2.4,0.8l-2.4,0.8l-2.4,0.8l-2.3,0.9l-2.3,0.8l-2.3,0.9l-2.3,1l-2.2,0.9l-2.2,1l-2.2,0.9l-2.2,1l-2.1,1.1l-2.1,1l-2.1,1.1l-2.1,1l-2,1.1l-2,1.1l-1.9,1.2l-2,1.1l-1.9,1.2l-1.8,1.1l-1.8,1.2l-1.8,1.3l-1.8,1.2l-1.7,1.2l-1.7,1.3l-1.6,1.2l-1.6,1.3l-1.6,1.3l-1.5,1.3l-1.5,1.3l-1.4,1.3l-1.4,1.4l-1.4,1.3l-1.3,1.4l-1.3,1.3l-1.2,1.4l-1.2,1.4l-1.2,1.4l-1.1,1.4l-1,1.4l-1,1.4l-1,1.4l-0.9,1.4l-0.9,1.5l-0.8,1.4l-0.8,1.4l-0.7,1.5l-0.7,1.4l-0.7,1.4l-0.6,1.5l-0.5,1.4l-0.5,1.5l-0.5,1.4l-0.4,1.5l-0.3,1.4l-0.3,1.4l-0.3,1.5l-0.2,1.4l-0.1,1.5l-0.2,1.4l0,1.4l0,1.4l0,1.5l0.1,1.4l0.1,1.4l0.2,1.4l0.2,1.4l0.3,1.4l0.4,1.3l0.3,1.4l0.5,1.4l0.4,1.3l0.6,1.3l0.5,1.4l0.7,1.3l0.6,1.3l0.7,1.3l0.8,1.3l0.8,1.3l0.9,1.2l0.9,1.3l0.9,1.2l1,1.2l1.1,1.2l1,1.2l1.2,1.2l1.1,1.1l1.2,1.1l1.3,1.2l1.3,1.1l1.3,1l1.4,1.1l1.5,1.1l1.4,1l1.5,1l1.6,1l1.6,1l1.6,0.9l1.6,0.9l1.7,0.9l1.8,0.9l1.8,0.9l1.8,0.8l1.8,0.8l1.9,0.8l1.9,0.8l1.9,0.8l2,0.7l2,0.7l2.1,0.7l2,0.6l2.1,0.7l2.1,0.6l2.2,0.6l2.2,0.5l2.2,0.5l2.2,0.5l2.3,0.5l2.3,0.5l2.3,0.4l2.3,0.4l2.3,0.4l2.4,0.3l2.4,0.4l2.4,0.3l2.4,0.2l2.5,0.3l2.4,0.2l2.5,0.2l2.5,0.1l2.5,0.2l2.5,0.1l2.5,0.1l2.6,0l2.5,0l2.6,0l2.5,0l2.6,0l2.6,-0.1l2.6,-0.1l2.6,-0.2l2.6,-0.1l2.5,-0.2l2.6,-0.3l2.6,-0.2l2.6,-0.3l2.6,-0.3l2.6,-0.3l2.6,-0.3l2.6,-0.4l2.6,-0.4l2.6,-0.5l2.6,-0.4l2.5,-0.5l2.6,-0.5l2.5,-0.5l2.6,-0.6l2.5,-0.6l2.5,-0.6l2.5,-0.6l2.5,-0.7l2.5,-0.7l2.4,-0.7l2.5,-0.7l2.4,-0.7l2.4,-0.8l2.4,-0.8l2.3,-0.8l2.4,-0.9l2.3,-0.9l2.3,-0.8l2.3,-1l2.3,-0.9l2.2,-0.9l2.2,-1l2.2,-1l2.1,-1l2.1,-1l2.1,-1.1l2.1,-1l2,-1.1l2,-1.1l2,-1.2l2,-1.1l1.9,-1.1l1.8,-1.2l1.9,-1.2l1.8,-1.2l1.8,-1.2l1.7,-1.3l1.7,-1.2l1.7,-1.3l1.6,-1.2l1.6,-1.3l1.5,-1.3l1.5,-1.3l1.5,-1.3l1.4,-1.4l1.4,-1.3l1.3,-1.4l1.3,-1.3l1.3,-1.4l1.2,-1.4l1.2,-1.4l1.1,-1.3l1.1,-1.4l1,-1.5l1,-1.4l0.9,-1.4l0.9,-1.4l0.9,-1.4l0.8,-1.5l0.8,-1.4l0.7,-1.4l0.6,-1.5l0.6,-1.4l0.6,-1.5l0.5,-1.4l0.5,-1.5l0.4,-1.4l0.4,-1.4l0.3,-1.5l0.3,-1.4l0.3,-1.5l0.1,-1.4l0.2,-1.4l0.1,-1.5l0,-1.4l0,-1.4l-0.1,-1.4l-0.1,-1.4l-0.2,-1.4l-0.2,-1.4l-0.2,-1.4l-0.3,-1.4l-0.4,-1.4l-0.4,-1.3l-0.4,-1.4l-0.5,-1.3l-0.6,-1.4l-0.6,-1.3l-0.6,-1.3l-0.7,-1.3l-0.8,-1.3l-0.7,-1.3l-0.9,-1.2l-0.9,-1.3l-0.9,-1.2Z" fill="#a9a9a9"/>
<path d="M431.6,1187.9l39.7,4.4c0,0,9.7,1.8,28.6,5.3c18.8,3.6,28.5,5.4,28.5,5.4l1.2,0.3c0,0,9.7,1.9,28.5,5.6c18.8,3.8,28.5,5.7,28.5,5.7l28.4,3.8L926.6,856.7c0,0,7.3,-7.8,21.7,-23C962.6,818.6,970,810.8,970,810.8L1237.5,553.7L1042.7,530.9L797.6,779.6c0,0,-7.4,7.8,-21.6,23.1c-14.3,15.2,-21.7,23,-21.7,23Z" fill="#a9a9a9"/>
<path d="M1614.8,2037.4l4.8,-0.1l4.8,-0.1l4.8,-0.3l4.7,-0.3l4.8,-0.4l4.8,-0.5l4.7,-0.6l4.7,-0.6l4.8,-0.8l4.7,-0.8l4.7,-1l4.6,-1l4.7,-1.1l4.6,-1.2l4.6,-1.3l4.6,-1.4l4.6,-1.5l4.5,-1.5l4.5,-1.7l4.5,-1.7l4.4,-1.8l4.4,-1.9l4.4,-2l4.3,-2l4.3,-2.1l4.2,-2.3l4.2,-2.3l4.2,-2.3l4.1,-2.5l4,-2.5l4,-2.6l4,-2.7l3.9,-2.7l3.9,-2.9l3.8,-2.9l3.7,-2.9l3.7,-3.1l3.7,-3.1l3.5,-3.2l3.6,-3.2l3.4,-3.3l3.4,-3.4l3.3,-3.4l3.3,-3.5l3.2,-3.6l3.1,-3.6l3.1,-3.7l3,-3.7l2.9,-3.8l2.8,-3.9l2.8,-3.9l2.7,-3.9l2.6,-4l2.6,-4.1l2.4,-4.1l2.4,-4.1l2.4,-4.2l2.2,-4.3l2.1,-4.2l2.1,-4.3l2,-4.4l1.9,-4.4l1.8,-4.4l1.8,-4.5l1.6,-4.5l1.6,-4.5l1.5,-4.5l1.4,-4.6l1.3,-4.6l1.2,-4.6l1.2,-4.7l1,-4.6l1,-4.7l0.9,-4.7l0.8,-4.7l0.7,-4.8l0.6,-4.7l0.5,-4.8l0.4,-4.8l0.4,-4.7l0.2,-4.8l0.2,-4.8l0,-4.8l0,-4.8l-0.1,-4.7l-0.2,-4.8l-0.3,-4.8l-0.4,-4.8l-0.5,-4.7l-0.5,-4.8l-0.7,-4.7L1865,1742l-0.8,-4.7l-1,-4.7l-1,-4.6l-1.1,-4.7l-1.2,-4.6l-1.2,-4.6l-1.4,-4.6l-1.4,-4.6l-1.6,-4.5l-1.6,-4.5l-1.7,-4.5l-1.8,-4.5l-1.8,-4.4l-2,-4.3l-2,-4.4l-2.1,-4.3l-2.2,-4.2l-2.3,-4.2l-2.3,-4.2l-2.5,-4.1l-2.5,-4.1l-2.6,-4l-2.6,-4l-2.8,-3.9l-2.8,-3.9l-2.9,-3.8l-2.9,-3.8l-3,-3.7l-3.1,-3.6l-3.2,-3.6l-3.2,-3.6l-3.3,-3.4l-3.4,-3.4l-3.4,-3.4l-3.5,-3.3l-3.5,-3.2l-3.6,-3.1l-3.7,-3.1l-3.7,-3l-3.8,-2.9l-3.8,-2.9l-3.9,-2.8l-4,-2.7l-4,-2.6l-4,-2.6l-4.1,-2.5l-4.1,-2.4l-4.2,-2.3l-4.2,-2.3l-4.3,-2.2l-4.3,-2.1l-4.3,-2l-4.4,-1.9l-4.4,-1.9l-4.5,-1.7l-4.4,-1.7l-4.6,-1.6l-4.5,-1.5l-4.6,-1.4l-4.6,-1.4l-4.6,-1.2l-4.6,-1.2l-4.7,-1l-4.7,-1l-4.7,-0.9l-4.7,-0.8l-4.7,-0.8l-4.8,-0.6l-4.7,-0.5l-4.8,-0.5l-4.8,-0.3l-4.7,-0.3l-4.8,-0.2l-4.8,-0.1l-4.8,0l-4.8,0.1l-4.8,0.2l-4.7,0.3l-4.8,0.3l-4.8,0.5l-4.7,0.5l-4.8,0.6l-4.7,0.8l-4.7,0.8l-4.7,0.9l-4.7,1l-4.7,1l-4.6,1.2l-4.6,1.2l-4.6,1.4l-4.6,1.4l-4.5,1.5l-4.5,1.6l-4.5,1.7l-4.5,1.7l-4.4,1.9l-4.4,1.9l-4.3,2l-4.3,2.1l-4.3,2.2l-4.2,2.3l-4.2,2.3l-4.1,2.4l-4.1,2.5l-4,2.6l-4,2.6l-4,2.7l-3.8,2.8l-3.9,2.9l-3.8,2.9l-3.7,3l-3.6,3.1l-3.7,3.1l-3.5,3.2l-3.5,3.3l-3.4,3.4l-3.4,3.4l-3.3,3.4l-3.2,3.6l-3.2,3.6l-3,3.6l-3.1,3.7l-2.9,3.8l-2.9,3.8l-2.8,3.9l-2.7,3.9l-2.7,4l-2.6,4l-2.5,4.1l-2.4,4.1l-2.4,4.2l-2.3,4.2l-2.2,4.2l-2.1,4.3l-2,4.4l-2,4.3l-1.8,4.4l-1.8,4.5l-1.7,4.5l-1.6,4.5l-1.6,4.5l-1.4,4.6l-1.4,4.6l-1.2,4.6l-1.2,4.6l-1.1,4.7l-1,4.6l-0.9,4.7l-0.9,4.7l-0.7,4.8l-0.7,4.7l-0.5,4.8l-0.5,4.7l-0.4,4.8l-0.3,4.8l-0.2,4.8l-0.1,4.7l0,4.8l0.1,4.8l0.1,4.8l0.3,4.8l0.3,4.7l0.4,4.8l0.5,4.8l0.7,4.7l0.7,4.8l0.7,4.7l0.9,4.7l1,4.7l1,4.6l1.2,4.7l1.2,4.6l1.3,4.6l1.4,4.6l1.5,4.5l1.6,4.5l1.6,4.5l1.8,4.5l1.8,4.4l1.9,4.4l2,4.4l2.1,4.3l2.1,4.2l2.3,4.3l2.3,4.2l2.4,4.1l2.4,4.1l2.6,4.1l2.6,4l2.7,3.9l2.8,3.9l2.8,3.9l2.9,3.8l3,3.7l3.1,3.7l3.1,3.6l3.2,3.6l3.3,3.5l3.3,3.4l3.4,3.4l3.5,3.3l3.5,3.2l3.5,3.2l3.7,3.1l3.7,3.1l3.7,2.9l3.8,2.9l3.9,2.9l3.9,2.7l4,2.7l4,2.6l4.1,2.5l4.1,2.5l4.1,2.3l4.2,2.3l4.3,2.3l4.2,2.1l4.4,2l4.3,2l4.4,1.9l4.5,1.8l4.4,1.7l4.5,1.7l4.5,1.5l4.6,1.5l4.6,1.4l4.6,1.3l4.6,1.2l4.7,1.1l4.6,1l4.7,1l4.7,0.8l4.8,0.8l4.7,0.6l4.8,0.6l4.7,0.5l4.8,0.4l4.8,0.3l4.7,0.3l4.8,0.1l4.8,0.1Z" fill="#ffffff" stroke="#ffffff" stroke-width="44"/>
<path d="M 1142,1168 L 2200,1162.3 l 0,-500.9 L 2013,677.3 c 0,0,-10.6,1.4,-31.2,4.1c-20.7,2.8,-31.3,4.2,-31.3,4.2l-142.2,31.2c0,0,-10.2,3.4,-29.9,9.9c-19.7,6.6,-29.8,9.9,-29.8,9.9L1499.4,849.5c0,0,-9,5.6,-26.6,16.6c-17.6,10.9,-26.6,16.5,-26.6,16.5l-182.9,150.8c0,0,-7.6,7.6,-22.4,22.2c-14.8,14.6,-22.4,22.1,-22.4,22.1Z" fill="#a9a9a9"/>
<path d="M 933.6,1457.5 L 2200,1469.1 L 2200,1333 l -1293.9,0 Z" fill="#a9a9a9"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="353" width="353" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-12, -12) scale(1.07, 1.07)">
<path d="M175.4,341.586c-91.5,0-165.899-74.399-165.899-165.9c0-91.5,74.399-165.9,165.899-165.9 c91.501,0,165.901,74.4,165.901,165.9C341.303,267.187,266.901,341.586,175.4,341.586z" fill="#006f35"/>
<path d="M133.4,102.186c0-14.4,13.2-26.7,36.301-26.7c40.8,0,75.6,21.9,98.7,46.8v-43.5 c-26.7-20.7-60.301-33-97.801-33c-45,0-95.1,27.601-95.1,78.9c0,97.801,148.5,62.701,148.5,119.4c0,15-19.799,29.101-44.399,29.101 c-40.2,0-80.1-24.3-102-55.8v52.199c23.1,20.7,65.4,37.2,102,37.2c65.7,0,104.701-46.801,104.701-87.001 C284.303,120.186,133.4,162.784,133.4,102.186z" fill="#ffffff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 845 B

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="353" width="353" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-12, -12) scale(1.07, 1.07)">
<path d="M175.4,341.586c-91.5,0-165.899-74.399-165.899-165.9c0-91.5,74.399-165.9,165.899-165.9 c91.501,0,165.901,74.4,165.901,165.9C341.303,267.187,266.901,341.586,175.4,341.586z" fill="#a9a9a9"/>
<path d="M133.4,102.186c0-14.4,13.2-26.7,36.301-26.7c40.8,0,75.6,21.9,98.7,46.8v-43.5 c-26.7-20.7-60.301-33-97.801-33c-45,0-95.1,27.601-95.1,78.9c0,97.801,148.5,62.701,148.5,119.4c0,15-19.799,29.101-44.399,29.101 c-40.2,0-80.1-24.3-102-55.8v52.199c23.1,20.7,65.4,37.2,102,37.2c65.7,0,104.701-46.801,104.701-87.001 C284.303,120.186,133.4,162.784,133.4,102.186z" fill="#ffffff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 845 B

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="378.32739" width="377.93851" xmlns="http://www.w3.org/2000/svg">
<g android:pivotX="189" android:pivotY="189" transform="scale(0.93, 0.93)">
<g transform="translate(-161.03075, -343.19849)">
<path d="M 161.03075,721.52588 L 538.96925,721.52588 L 538.96925,343.19849 L 161.03075,343.19849 L 161.03075,721.52588 z" fill="#156ab8"/>
<path d="M 477.26972,373.06996 L 477.26972,577.95324 C 477.26972,663.70307 407.03895,695.1301 349.60504,695.1301 C 291.79439,695.1301 222.73028,663.70307 222.73028,577.95324 L 222.73028,373.06996 L 297.22667,373.06996 L 297.22667,570.57652 C 297.22667,606.6702 310.03567,632.27605 349.60504,632.27605 C 388.79767,632.27605 401.60667,606.6702 401.60667,570.57652 L 401.60667,373.06996 L 477.26972,373.06996" fill="#ffffff"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 946 B

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="378.32739" width="377.93851" xmlns="http://www.w3.org/2000/svg">
<g android:pivotX="189" android:pivotY="189" transform="scale(0.93, 0.93)">
<g transform="translate(-161.03075, -343.19849)">
<path d="M 161.03075,721.52588 L 538.96925,721.52588 L 538.96925,343.19849 L 161.03075,343.19849 L 161.03075,721.52588 z" fill="#a9a9a9"/>
<path d="M 477.26972,373.06996 L 477.26972,577.95324 C 477.26972,663.70307 407.03895,695.1301 349.60504,695.1301 C 291.79439,695.1301 222.73028,663.70307 222.73028,577.95324 L 222.73028,373.06996 L 297.22667,373.06996 L 297.22667,570.57652 C 297.22667,606.6702 310.03567,632.27605 349.60504,632.27605 C 388.79767,632.27605 401.60667,606.6702 401.60667,570.57652 L 401.60667,373.06996 L 477.26972,373.06996" fill="#ffffff"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 946 B

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="173.43799" width="173.45215" xmlns="http://www.w3.org/2000/svg">
<path d="M 0,86.71875 C 0,38.82764 38.83301,0 86.71924,0 C 134.61914,0 173.45215,38.82764 173.45215,86.71875 C 173.45215,134.61914 134.61914,173.43799 86.71924,173.43799 C 38.83301,173.43799 0,134.61914 0,86.71875 z" fill="#444444"/>
<path d="M 74.12256,41.30908 C 76.16358,40.76172 80.04053,40.38086 86.14356,40.38086 C 99.24952,40.38086 106.83252,46.66065 106.83252,58.68164 C 106.83252,69.94189 98.5127,77.52002 84.64941,77.52002 L 74.12256,77.52002 L 74.12256,41.30908 z M 48.44385,146.25977 L 74.12256,146.25977 L 74.12256,96.54785 L 82.62354,96.54785 C 94.0835,96.54785 99.24952,101.18164 102.58448,117.0708 C 105.91456,132.22217 108.87354,142.74902 110.70948,146.25976 L 137.31055,146.25976 C 134.92383,141.45996 131.4126,125.93798 127.71143,111.51904 C 124.75245,99.51172 119.7627,91.20166 111.09034,87.68066 L 111.09034,87.31982 C 122.35938,83.07177 132.70167,71.80175 132.70167,56.45996 C 132.70167,45.19092 129.01075,36.68017 121.81251,30.59082 C 113.11183,23.56982 100.55372,20.80078 83.17042,20.80078 C 69.69386,20.80078 57.12062,21.90967 48.44386,23.3789 L 48.44386,146.25977 L 48.44385,146.25977 z" fill="#ffffff"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="173.43799" width="173.45215" xmlns="http://www.w3.org/2000/svg">
<path d="M 0,86.71875 C 0,38.82764 38.83301,0 86.71924,0 C 134.61914,0 173.45215,38.82764 173.45215,86.71875 C 173.45215,134.61914 134.61914,173.43799 86.71924,173.43799 C 38.83301,173.43799 0,134.61914 0,86.71875 z" fill="#a9a9a9"/>
<path d="M 74.12256,41.30908 C 76.16358,40.76172 80.04053,40.38086 86.14356,40.38086 C 99.24952,40.38086 106.83252,46.66065 106.83252,58.68164 C 106.83252,69.94189 98.5127,77.52002 84.64941,77.52002 L 74.12256,77.52002 L 74.12256,41.30908 z M 48.44385,146.25977 L 74.12256,146.25977 L 74.12256,96.54785 L 82.62354,96.54785 C 94.0835,96.54785 99.24952,101.18164 102.58448,117.0708 C 105.91456,132.22217 108.87354,142.74902 110.70948,146.25976 L 137.31055,146.25976 C 134.92383,141.45996 131.4126,125.93798 127.71143,111.51904 C 124.75245,99.51172 119.7627,91.20166 111.09034,87.68066 L 111.09034,87.31982 C 122.35938,83.07177 132.70167,71.80175 132.70167,56.45996 C 132.70167,45.19092 129.01075,36.68017 121.81251,30.59082 C 113.11183,23.56982 100.55372,20.80078 83.17042,20.80078 C 69.69386,20.80078 57.12062,21.90967 48.44386,23.3789 L 48.44386,146.25977 L 48.44385,146.25977 z" fill="#ffffff"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="500" width="500" xmlns="http://www.w3.org/2000/svg">
<g android:pivotX="250" android:pivotY="250" transform="scale(0.93, 0.93)">
<path d="M 0 0 H 500 V 500 H 0 V 0 Z" fill="#cc0000"/>
<path d="M236.84211 309.54433C242.87491 307.23053 246.2628 304.71845 250.26316 299.59283L252.63158 296.55819L252.64317 299.59488C252.64954 301.26506 252.94836 304.40789 253.30721 306.57895L253.95966 310.52632L269.61141 310.52632L285.26316 310.52632L285.26316 269.13842C285.26316 223.28869 284.96553 220.73711 278.65722 212.50687C274.36993 206.91337 266.64305 201.57325 259.63885 199.36309C248.03721 195.70221 220.94597 196.55513 205 201.08328L201.05263 202.20422L201.05263 214.69104L201.05263 227.17787L206.57895 225.59944C209.67357 224.71556 218.58978 223.78563 226.84211 223.48608C241.06839 222.96968 241.70605 223.03788 245.24782 225.45454C249.67142 228.47291 251.54267 231.87779 251.56343 236.94633L251.57895 240.73476L238.15789 241.36913C218.14543 242.31505 206.23052 246.05151 198.21906 253.89371C191.52335 260.44798 189.12683 266.95753 189.18925 278.42105C189.25907 291.24387 191.88315 298.18559 199.12019 304.69232C202.04511 307.32206 204.74225 309.49459 205.11384 309.52014C205.48544 309.54569 208.15789 310.25471 211.05263 311.09573C217.94161 313.0972 229.37134 312.40963 236.84211 309.54433 zM227.74009 288.56112C223.69319 286.01706 221.66013 280.46752 222.393 273.96545C223.45626 264.5322 229.63667 260.15049 243.18928 259.22158L251.57895 258.64654L251.57895 267.52128C251.57895 281.84023 246.49055 289.31224 236.13104 290.20558C232.33376 290.53303 230.21698 290.11819 227.74009 288.56112 zM94.736842 247.36842L94.736842 184.21053L113.15789 184.21053L131.57895 184.21053L131.57895 168.94737L131.57895 153.68421L75.263158 153.68421L18.947368 153.68421L18.947368 168.94737L18.947368 184.21053L35.789474 184.21053L52.631579 184.21053L52.631579 247.36842L52.631579 310.52632L73.684211 310.52632L94.736842 310.52632L94.736842 247.36842 zM156.84211 284.40385C156.84211 256.11702 157.73126 248.16673 161.65084 241.4074C165.60996 234.57986 170.26548 232.29012 181.25655 231.76462L190.52632 231.32143L190.52632 213.93641L190.52632 196.55138L183.82933 197.23751C173.52437 198.29328 168.06611 200.58661 163.14078 205.92997C160.74684 208.52707 157.90967 212.61417 156.83596 215.01241C155.02281 219.0622 154.84484 219.18895 154.33781 216.79167C154.03756 215.37204 153.49313 211.01316 153.12796 207.10526L152.46401 200L135.70569 200L118.94737 200L118.94737 255.26316L118.94737 310.52632L137.89474 310.52632L156.84211 310.52632L156.84211 284.40385 zM344.21053 276.80829C344.21053 241.15109 344.51344 238.59935 349.24671 234.38447C351.70355 232.19671 358.52479 230.98046 362.60065 232.00344C364.10095 232.37999 366.25937 234.21484 367.39714 236.08088C369.34552 239.27638 369.46604 241.53967 369.46975 275L369.47368 310.52632L387.89474 310.52632L406.31579 310.52632L406.33891 277.10526C406.36004 246.55078 406.53352 243.30648 408.36145 239.28034C411.85313 231.58967 422.05512 228.92157 428.0992 234.11836L431.05263 236.65777L431.35465 273.59204L431.65666 310.52632L450.61805 310.52632L469.57943 310.52632L469.26006 266.05263C468.94942 222.7942 468.87746 221.44319 466.62669 216.61084C463.3302 209.53337 456.65885 202.74525 450.239 199.93633C443.09997 196.81274 429.50151 196.52125 421.34712 199.31703C415.5562 201.30247 406.78328 208.35064 404.27935 213.02929L402.81111 215.77274L399.41978 210.73689C389.35103 195.78567 366.63977 192.73674 350.57059 204.179C348.90903 205.36214 346.3246 208.78835 344.82742 211.79281L342.10526 217.25546L342.10526 208.62773L342.10526 200L324.21053 200L306.31579 200L306.31579 255.26316L306.31579 310.52632L325.26316 310.52632L344.21053 310.52632L344.21053 276.80829 z" fill="#ffffff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><svg xmlns:android="http://schemas.android.com/apk/res/android" height="500" width="500" xmlns="http://www.w3.org/2000/svg">
<g android:pivotX="250" android:pivotY="250" transform="scale(0.93, 0.93)">
<path d="M 0 0 H 500 V 500 H 0 V 0 Z" fill="#a9a9a9"/>
<path d="M236.84211 309.54433C242.87491 307.23053 246.2628 304.71845 250.26316 299.59283L252.63158 296.55819L252.64317 299.59488C252.64954 301.26506 252.94836 304.40789 253.30721 306.57895L253.95966 310.52632L269.61141 310.52632L285.26316 310.52632L285.26316 269.13842C285.26316 223.28869 284.96553 220.73711 278.65722 212.50687C274.36993 206.91337 266.64305 201.57325 259.63885 199.36309C248.03721 195.70221 220.94597 196.55513 205 201.08328L201.05263 202.20422L201.05263 214.69104L201.05263 227.17787L206.57895 225.59944C209.67357 224.71556 218.58978 223.78563 226.84211 223.48608C241.06839 222.96968 241.70605 223.03788 245.24782 225.45454C249.67142 228.47291 251.54267 231.87779 251.56343 236.94633L251.57895 240.73476L238.15789 241.36913C218.14543 242.31505 206.23052 246.05151 198.21906 253.89371C191.52335 260.44798 189.12683 266.95753 189.18925 278.42105C189.25907 291.24387 191.88315 298.18559 199.12019 304.69232C202.04511 307.32206 204.74225 309.49459 205.11384 309.52014C205.48544 309.54569 208.15789 310.25471 211.05263 311.09573C217.94161 313.0972 229.37134 312.40963 236.84211 309.54433 zM227.74009 288.56112C223.69319 286.01706 221.66013 280.46752 222.393 273.96545C223.45626 264.5322 229.63667 260.15049 243.18928 259.22158L251.57895 258.64654L251.57895 267.52128C251.57895 281.84023 246.49055 289.31224 236.13104 290.20558C232.33376 290.53303 230.21698 290.11819 227.74009 288.56112 zM94.736842 247.36842L94.736842 184.21053L113.15789 184.21053L131.57895 184.21053L131.57895 168.94737L131.57895 153.68421L75.263158 153.68421L18.947368 153.68421L18.947368 168.94737L18.947368 184.21053L35.789474 184.21053L52.631579 184.21053L52.631579 247.36842L52.631579 310.52632L73.684211 310.52632L94.736842 310.52632L94.736842 247.36842 zM156.84211 284.40385C156.84211 256.11702 157.73126 248.16673 161.65084 241.4074C165.60996 234.57986 170.26548 232.29012 181.25655 231.76462L190.52632 231.32143L190.52632 213.93641L190.52632 196.55138L183.82933 197.23751C173.52437 198.29328 168.06611 200.58661 163.14078 205.92997C160.74684 208.52707 157.90967 212.61417 156.83596 215.01241C155.02281 219.0622 154.84484 219.18895 154.33781 216.79167C154.03756 215.37204 153.49313 211.01316 153.12796 207.10526L152.46401 200L135.70569 200L118.94737 200L118.94737 255.26316L118.94737 310.52632L137.89474 310.52632L156.84211 310.52632L156.84211 284.40385 zM344.21053 276.80829C344.21053 241.15109 344.51344 238.59935 349.24671 234.38447C351.70355 232.19671 358.52479 230.98046 362.60065 232.00344C364.10095 232.37999 366.25937 234.21484 367.39714 236.08088C369.34552 239.27638 369.46604 241.53967 369.46975 275L369.47368 310.52632L387.89474 310.52632L406.31579 310.52632L406.33891 277.10526C406.36004 246.55078 406.53352 243.30648 408.36145 239.28034C411.85313 231.58967 422.05512 228.92157 428.0992 234.11836L431.05263 236.65777L431.35465 273.59204L431.65666 310.52632L450.61805 310.52632L469.57943 310.52632L469.26006 266.05263C468.94942 222.7942 468.87746 221.44319 466.62669 216.61084C463.3302 209.53337 456.65885 202.74525 450.239 199.93633C443.09997 196.81274 429.50151 196.52125 421.34712 199.31703C415.5562 201.30247 406.78328 208.35064 404.27935 213.02929L402.81111 215.77274L399.41978 210.73689C389.35103 195.78567 366.63977 192.73674 350.57059 204.179C348.90903 205.36214 346.3246 208.78835 344.82742 211.79281L342.10526 217.25546L342.10526 208.62773L342.10526 200L324.21053 200L306.31579 200L306.31579 255.26316L306.31579 310.52632L325.26316 310.52632L344.21053 310.52632L344.21053 276.80829 z" fill="#ffffff"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

70
client/img/s.svg Normal file
View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
sodipodi:docname="s_new_path.svg"
id="svg8"
version="1.1"
viewBox="0 0 46.347183 46.347183"
height="46.347183mm"
width="46.347183mm">
<sodipodi:namedview
inkscape:current-layer="text24"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="122.69156"
inkscape:cx="18.890932"
inkscape:zoom="2.3291599"
showgrid="false"
id="namedview197"
inkscape:window-height="959"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff"
inkscape:document-rotation="0" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-32.443024,-29.353207)">
<g
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text24"
aria-label="NV">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:0.75;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="S">
<path
id="path242"
style="font-style:italic;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy Italic';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 57.872945,57.409779 q 0.322117,-1.654507 -1.786281,-2.562289 l -2.40123,-0.995632 q -5.05137,-2.269456 -4.802462,-6.178777 0.102492,-1.786281 1.229899,-3.177238 1.127407,-1.405598 3.118671,-2.181605 1.991265,-0.776008 4.34857,-0.746725 3.162597,0.05857 5.080653,1.844848 1.932698,1.786282 1.903414,4.78782 h -4.978161 q 0.04392,-1.229899 -0.527099,-1.961981 -0.556383,-0.746724 -1.844848,-0.776008 -1.259182,-0.02928 -2.225531,0.585666 -0.966349,0.61495 -1.142048,1.654507 -0.278192,1.464165 2.166964,2.40123 2.459797,0.937066 3.572562,1.610582 3.499355,2.093756 3.27973,5.651677 -0.117133,1.844848 -1.185974,3.235804 -1.06884,1.390957 -2.972255,2.152323 -1.888772,0.761366 -4.246078,0.732083 -1.727715,-0.02928 -3.206521,-0.541742 -1.478807,-0.512457 -2.533006,-1.493448 -2.137681,-1.976623 -2.049831,-5.197786 l 5.022086,0.01464 q -0.08785,1.639865 0.629591,2.489081 0.717441,0.834574 2.415872,0.834574 1.259182,0 2.093756,-0.571025 0.849216,-0.585666 1.039557,-1.610581 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

74
client/img/tram.svg Normal file
View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
sodipodi:docname="tram_new_path.svg"
id="svg8"
version="1.1"
viewBox="0 0 46.347183 46.347183"
height="46.347183mm"
width="46.347183mm">
<sodipodi:namedview
inkscape:current-layer="text24"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="122.69156"
inkscape:cx="18.890932"
inkscape:zoom="2.3291599"
showgrid="false"
id="namedview197"
inkscape:window-height="959"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff"
inkscape:document-rotation="0" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-32.443024,-29.353207)">
<g
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text24"
aria-label="NV">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:0.75;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="TR">
<path
id="path302"
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="M 54.840609,45.835565 H 48.442208 V 63.185921 H 43.302989 V 45.835565 h -6.281268 v -3.967887 h 17.818888 z" />
<path
id="path304"
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 64.943347,55.660113 h -2.781914 v 7.525808 H 57.022214 V 41.867678 h 8.389665 q 3.792188,0 5.929869,1.68379 2.137681,1.68379 2.137681,4.758536 0,2.225531 -0.907783,3.689696 -0.89314,1.464165 -2.811196,2.371947 l 4.451061,8.594649 v 0.219625 h -5.50526 z m -2.781914,-3.967888 h 3.250446 q 1.464165,0 2.196248,-0.761365 0.746724,-0.776008 0.746724,-2.152323 0,-1.376315 -0.746724,-2.152322 -0.746724,-0.79065 -2.196248,-0.79065 h -3.250446 z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,79 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
viewBox="0 0 24 24"
version="1.1"
id="svg6"
sodipodi:docname="travelynx.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata12">
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="24" height="24" viewBox="0 0 24 24" version="1.1" id="svg6" sodipodi:docname="travelynx.svg" inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1918"
inkscape:window-height="2131"
id="namedview8"
showgrid="false"
inkscape:zoom="19.666667"
inkscape:cx="0.25717638"
inkscape:cy="10.252251"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="g4573" />
<g
id="g4573">
<rect
y="3.40678"
x="3.1271186"
height="9.5338984"
width="10.550848"
id="rect4564"
style="fill:#ffffff;fill-opacity:1;stroke-width:1.44797695" />
<g
id="g4562">
<path
d="m 8.4266298,1.3049637 c -3.0613961,0 -6.1227924,0.3826745 -6.1227924,3.0613962 v 7.2708161 c 0,1.477124 1.2015981,2.678722 2.6787217,2.678722 l -1.1480235,1.148023 v 0.382675 H 5.5412639 L 7.071962,14.315898 h 2.8853658 l 1.5306982,1.530698 h 1.530698 V 15.463921 L 11.8707,14.315898 c 1.477124,0 2.678722,-1.201598 2.678722,-2.678722 V 4.3663599 c 0,-2.6787217 -2.73995,-3.0613962 -6.1227922,-3.0613962 z M 4.9825591,12.7852 c -0.6352397,0 -1.1480235,-0.512784 -1.1480235,-1.148024 0,-0.63524 0.5127838,-1.148024 1.1480235,-1.148024 0.6352397,0 1.1480236,0.512784 1.1480236,1.148024 0,0.63524 -0.5127839,1.148024 -1.1480236,1.148024 z M 7.6612808,7.427756 H 3.8345356 V 4.3663599 h 3.8267452 z m 1.5306982,0 V 4.3663599 h 3.826745 V 7.427756 Z M 11.8707,12.7852 c -0.635239,0 -1.148023,-0.512784 -1.148023,-1.148024 0,-0.63524 0.512784,-1.148024 1.148023,-1.148024 0.63524,0 1.148024,0.512784 1.148024,1.148024 0,0.63524 -0.512784,1.148024 -1.148024,1.148024 z"
id="path14"
inkscape:connector-curvature="0"
style="stroke-width:0.76534903" />
<path
style="fill:none"
inkscape:connector-curvature="0"
d="M 0,0 H 24 V 24 H 0 Z"
id="path16" />
<path
inkscape:connector-curvature="0"
d="M 13.208696,20.997167 9.6183022,17.406774 8.3956743,18.620792 13.208696,23.433813 23.540763,13.101746 22.326745,11.887728 Z"
id="path16-3"
style="stroke-width:0.8610056" />
<defs id="defs10"/>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1918" inkscape:window-height="2131" id="namedview8" showgrid="false" inkscape:zoom="19.666667" inkscape:cx="0.25717638" inkscape:cy="10.252251" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="0" inkscape:current-layer="g4573"/>
<g id="g4573">
<rect y="3.40678" x="3.1271186" height="9.5338984" width="10.550848" id="rect4564" style="fill:#ffffff;fill-opacity:1;stroke-width:1.44797695"/>
<g id="g4562">
<path d="m 8.4266298,1.3049637 c -3.0613961,0 -6.1227924,0.3826745 -6.1227924,3.0613962 v 7.2708161 c 0,1.477124 1.2015981,2.678722 2.6787217,2.678722 l -1.1480235,1.148023 v 0.382675 H 5.5412639 L 7.071962,14.315898 h 2.8853658 l 1.5306982,1.530698 h 1.530698 V 15.463921 L 11.8707,14.315898 c 1.477124,0 2.678722,-1.201598 2.678722,-2.678722 V 4.3663599 c 0,-2.6787217 -2.73995,-3.0613962 -6.1227922,-3.0613962 z M 4.9825591,12.7852 c -0.6352397,0 -1.1480235,-0.512784 -1.1480235,-1.148024 0,-0.63524 0.5127838,-1.148024 1.1480235,-1.148024 0.6352397,0 1.1480236,0.512784 1.1480236,1.148024 0,0.63524 -0.5127839,1.148024 -1.1480236,1.148024 z M 7.6612808,7.427756 H 3.8345356 V 4.3663599 h 3.8267452 z m 1.5306982,0 V 4.3663599 h 3.826745 V 7.427756 Z M 11.8707,12.7852 c -0.635239,0 -1.148023,-0.512784 -1.148023,-1.148024 0,-0.63524 0.512784,-1.148024 1.148023,-1.148024 0.63524,0 1.148024,0.512784 1.148024,1.148024 0,0.63524 -0.512784,1.148024 -1.148024,1.148024 z" id="path14" inkscape:connector-curvature="0" style="stroke-width:0.76534903"/>
<path style="fill:none" inkscape:connector-curvature="0" d="M 0,0 H 24 V 24 H 0 Z" id="path16"/>
<path inkscape:connector-curvature="0" d="M 13.208696,20.997167 9.6183022,17.406774 8.3956743,18.620792 13.208696,23.433813 23.540763,13.101746 22.326745,11.887728 Z" id="path16-3" style="stroke-width:0.8610056"/>
</g>
</g>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

70
client/img/u.svg Normal file
View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
sodipodi:docname="u_new_path.svg"
id="svg8"
version="1.1"
viewBox="0 0 46.347183 46.347183"
height="46.347183mm"
width="46.347183mm">
<sodipodi:namedview
inkscape:current-layer="text24"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
inkscape:cy="122.69156"
inkscape:cx="18.890932"
inkscape:zoom="2.3291599"
showgrid="false"
id="namedview197"
inkscape:window-height="959"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff"
inkscape:document-rotation="0" />
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-32.443024,-29.353207)">
<g
style="font-style:normal;font-weight:normal;font-size:24.6944px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
id="text24"
aria-label="NV">
<g
style="font-style:normal;font-weight:normal;font-size:29.9861px;line-height:0.75;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0700042"
id="text21"
aria-label="U">
<path
id="path281"
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:29.9861px;font-family:Roboto;-inkscape-font-specification:'Roboto Heavy';text-align:center;text-anchor:middle;stroke-width:0.0700042"
d="m 64.0136,41.721263 v 13.953492 q 0,2.371947 -1.010274,4.114304 -1.010273,1.727714 -2.899046,2.635497 -1.888773,0.907782 -4.465703,0.907782 -3.894679,0 -6.134852,-2.020548 -2.240172,-2.020547 -2.284097,-5.534543 V 41.721263 h 5.168502 v 14.158475 q 0.08785,3.499354 3.250447,3.499354 1.595939,0 2.415872,-0.878499 0.819932,-0.878499 0.819932,-2.855121 V 41.721263 Z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>

Before

Width:  |  Height:  |  Size: 188 B

View File

@ -1,27 +1,16 @@
<!DOCTYPE html>
<html lang="de">
<head>
<title>oeffisear.ch BETA</title>
<title>Öffisearch</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="theme-color" content="#ffffff">
<meta name="description" content="Plan your public transport journeys">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="Öffisearch">
<meta name="format-detection" content="telephone=no">
<link rel="apple-touch-startup-image" sizes="512x512" href="img/favicon-512x512.png">
<link rel="apple-touch-icon" sizes="180x180" href="img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="64x64" href="img/favicon-64x64.png">
<link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="img/favicon-16x16.png">
<link rel="mask-icon" href="img/safari-pinned-tab.svg" color="#s">
<link rel="stylesheet" type="text/css" href="css/product_selector.css" defer>
<link rel="stylesheet" type="text/css" href="css/style.css" defer>
<link rel="icon" type="image/png" sizes="64x64" href="/favicon-64x64.png">
<link rel="manifest" href="/manifest.json">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="modulepreload" href="js/api.js">
<link rel="modulepreload" href="js/sprintf.min.js">
@ -38,12 +27,12 @@
<link rel="modulepreload" href="js/settingsView.js">
<link rel="modulepreload" href="js/languages.js">
<link rel="manifest" href="manifest.json">
<link rel="manifest" href="manifest.json">
<style>
body {
background-image: url("img/bg.webp");
background-size: cover;
background-attachment: fixed;
background-color: #17212e;
min-height: 100vh;
overflow-x: hidden;
overflow-y: visible;
@ -87,6 +76,6 @@ body {
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h2.23l2-2H14l2 2h2v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-7H6V6h5v4zm2 0V6h5v4h-5zm3.5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/><path fill="none" d="M0 0h24v24H0V0z"/></svg>
</div>
</div>
<script type="module" src="js/app.js"></script>
</body>
<script type="module" src="js/app.js"></script>
</html>
</html>

View File

@ -193,7 +193,7 @@ export const restoreDataStorage = () => {
}
const data = {
dbVer: 0.5,
dbVer: 0.6,
journeysHistory: [],
journeys: {},
ignored: [],
@ -201,7 +201,7 @@ export const restoreDataStorage = () => {
settings: {
provider: 'DB',
products: {
"nationalExp": true,
"nationalExp": true,
"national": true,
"regionalExp": true,
"regional": true,
@ -213,6 +213,7 @@ export const restoreDataStorage = () => {
"taxi": true
},
accessibility: 'none',
advancedSelection: false,
showRIL100Names: false,
writeDebugLog: false,
enableCanvas: false,

9
client/js/journey.js Executable file
View File

@ -0,0 +1,9 @@
'use strict';
import { registerLoaderOnLinks, showLoader, hideOverlay } from './helpers.js';
registerLoaderOnLinks();
window.onbeforeunload = function(e) {
hideOverlay();
}

View File

@ -21,6 +21,22 @@ const remarksModalTemplate = (type, remarks) => html`
</table>
`;
const travelynxTemplate = (element) => {
if (dataStorage.settings.travelynx && element.line.mode == 'Train') {
let trainName = '';
if (element.line.additionalName !== null) {
trainName = element.line.additionalName;
} else {
trainName = element.line.name;
}
return html`
<a class="travelynx" href="https://travelynx.de/s/${element.departure.point.stop.id}?train=${trainName}"></a>
`;
}
}
const showRemarksModal = (type, remarks) => {
showModal(t('remarks'), remarksModalTemplate(type, remarks));
};
@ -48,25 +64,25 @@ const legTemplate = (element) => {
<thead>
<tr>
<td colspan="4">
${element.line.name} ${element.line.additionalName ? '('+element.line.additionalName+')' : ''} ${element.direction} ${element.cancelled ? html`<b style="color:red;">${t('cancelled-ride')}</b>` : ''}
<span>${element.line.name} ${element.line.additionalName ? '('+element.line.additionalName+')' : ''} ${element.direction} ${element.cancelled ? html`<b class="cancelled-text">${t('cancelled-ride')}</b>` : ''}
${Object.entries(remarks).map(remarksTemplate)}
${dataStorage.settings.travelynx && element.line.mode == 'Train' ? html`<a class="travelynx" href="https://travelynx.de/s/${element.departure.point.stop.id}?train=${element.line.additionalName}"></a>` : ''}
${travelynxTemplate(element)}</span>
</td>
</tr>
<tr>
<th>${t('arrival')}</th>
<th>${t('departure')}</th>
<th>${t('station')}</th>
<th class="station-column">${t('station')}</th>
<th>${t('platform')}</th>
</tr>
</thead>
<tbody>
${element.stopovers.map(stop => html`
<tr class="stop ${stop.cancelled ? 'cancelled' : ''}" @click=${() => {location.href = "https://marudor.de/"+stop.stop.id+"?searchType=hafas"}}>
<td>${timeTemplate(stop.arrival)}</td>
<td>${timeTemplate(stop.departure)}</td>
<td>${stop.stop.name} ${ds100Names(stop.stop.id)}</td>
<td>${stopPlatformTemplate(stop)}</td>
<td><span>${timeTemplate(stop.arrival)}</span></td>
<td><span>${timeTemplate(stop.departure)}</span></td>
<td><span>${stop.stop.name} ${ds100Names(stop.stop.id)}</span></td>
<td><span>${stopPlatformTemplate(stop)}</span></td>
</tr>
`)}
</tbody>
@ -115,32 +131,15 @@ const journeyTemplate = (data, requestId, journeyId) => {
}
return html`
<div id="journeyView">
<div id="header">
<div class="journey">
<header>
<a class="back" href="#/${requestId}"></a>
<p>
<h2>
<span id="fromName2">${parseName(departure.point)}</span>
<span> - </span>
<span id="toName2">${parseName(arrival.point)}</span>
</h2>
</p>
<p>
<b>
<span>${t('duration')}: </span>
<span id="duration">${formatDuration(duration)}</span>
<span> | ${t('changes')}: </span>
<span id="changes">${changes-1}</span>
<span> | ${t('date')}: </span>
<span id="date2">${parseDateTime(departure.plannedTime, 'date')}</span>
</b>
</p>
<div class="reload" id="reload-journey" @click=${() => reloadJourney(requestId, journeyId)}></div>
</div>
<div id="connection">
${legs.map(legTemplate)}
</div>
<h2>${parseName(departure.point)} ${parseName(arrival.point)}</h2>
<p><b>${t('duration')}: ${formatDuration(duration)} | ${t('changes')}: ${changes-1} | ${t('date')}: ${parseDateTime(departure.plannedTime, 'date')}</b></p>
<a class="reload" title="{{LABEL_RELOAD}}" @click=${() => reloadJourney(requestId, journeyId)}>{{LABEL_RELOAD}}</a>
</header>
${legs.map(legTemplate)}
</div>
`;
};

View File

@ -12,33 +12,37 @@ import { showAlertModal } from './overlays.js';
let data;
const journeysTemplate = (data) => html`
<div id="journeysView">
<div id="header">
<a class="back" href="#/"></a>
<p><h3>${t('from')}: <span id="fromName">${parseName(data.params.fromPoint)}</span></h3></p>
<p><h3>${t('to')}: <span id="toName">${parseName(data.params.toPoint)}</span></h3></p>
<!-- <div class="reload" id="reload-journeys" @click=${() => reloadJourneys(data.reqId)}></div> -->
</div>
<div class="journeys">
<header id="header">
<a class="back" href="#/" title="${t('back')}">${t('back')}</a>
<h3>${t('from')}: ${parseName(data.params.fromPoint)}</h3>
<h3>${t('to')}: ${parseName(data.params.toPoint)}</h3>
</header>
${dataStorage.settings.enableCanvas ? html`
<div id="journeysCanvas">
<canvas id="canvas"></canvas>
</div>
` : html`
<div id="journeysTable">
<div class="loadMore flipped" @click=${() => moreJourneys(data.reqId, 'earlier')}></div>
<a class="loadMore flipped" title="{{LABEL_EARLIER}}" @click=${() => moreJourneys(data.reqId, 'earlier')}"></a>
<table>
<thead>
<tr><th>${t('departure')}</th><th>${t('arrival')}</th><th>${t('duration')}</th><th>${t('changes')}</th><th>${t('products')}</th></tr>
</thead>
<tbody id="connectionsTable">
<table>
<thead>
<tr>
<th>${t('departure')}</th>
<th>${t('arrival')}</th>
<th>${t('duration')}</th>
<th>${t('changes')}</th>
<th>${t('products')}</th>
<th></th>
</tr>
</thead>
<tbody>
${Object.keys(data.journeys).sort((a, b) => a - b).map(key => journeyOverviewTemplate(data, key))}
</tbody>
</table>
</tbody>
</table>
<div class="loadMore" @click=${() => moreJourneys(data.reqId, "later")}></div>
</div>
<a class="loadMore" title="{{LABEL_LATER}}" @click=${() => moreJourneys(data.reqId, "later")}></a>
`}
</div>
`;
@ -67,12 +71,13 @@ const journeyOverviewTemplate = (data, key) => {
products = [...new Set(products)];
return html`
<tr class="connection ${cancelled ? 'cancelled' : ''}" @click=${() => go('/'+data.reqId + '/' + key)}">
<td>${timeTemplate(departure, 'departure')}</td>
<td>${timeTemplate(arrival, 'arrival')}</td>
<td title="${changesDuration > 0 ? 'Davon '+formatDuration(changesDuration)+' Umstiegsdauer' : ''}">${formatDuration(duration)}</td>
<td>${changes-1}</td>
<td>${products.join(', ')}</td>
<tr @click=${() => go('/'+data.reqId + '/' + key)}">
<td><span>${timeTemplate(departure, 'departure')}</span></td>
<td><span>${timeTemplate(arrival, 'arrival')}</span></td>
<td title="${changesDuration > 0 ? 'Davon '+formatDuration(changesDuration)+' Umstiegsdauer' : ''}"><span>${formatDuration(duration)}</span></td>
<td><span>${changes-1}</span></td>
<td><span>${products.join(', ')}</span></td>
<td><a class="details-button"></a></td>
</tr>`;
}

View File

@ -36,7 +36,6 @@ export const languages = {
'access_none': 'keine Einschränkungen',
'access_partial': 'Bedingt barrierefrei',
'access_full': 'Barrierefrei',
'etc': 'Sonstiges',
'showds100': 'Zeige RIL100 Kürzel (wenn verfügbar)',
'showdebug': 'Schreibe Debug Nachrichten ins Log',
'graphical': 'Graphische Darstellung in der Verbindungsübersicht',
@ -47,7 +46,11 @@ export const languages = {
'en': 'Englisch',
'cancelled-ride': 'Fahrt entfällt!',
'remarks': 'Hinweise',
'travelynx-checkin': 'Travelynx checkin anzeigen?'
'travelynx-checkin': 'Travelynx checkin anzeigen?',
'lang_short': 'de',
'iconly': 'IC',
'iceonly': 'ICE',
'dzug': 'D-Zug'
},
'en': {
@ -72,7 +75,7 @@ export const languages = {
'setfromto': 'Set as from/to',
'journeyoverview': 'Go to journeysoverview',
'lastjourney': 'Go to last selected journey',
'longdistancetrain': 'Log distance trains',
'longdistancetrain': 'Long distance trains',
'regionaltrain': 'Regional trains',
'suburbantrain': 'Suburban Trains',
'subway': 'Subway',
@ -87,7 +90,6 @@ export const languages = {
'access_none': 'none',
'access_partial': 'partial',
'access_full': 'full',
'etc': 'Others',
'showds100': 'Show DS100 (if available)',
'showdebug': 'Write debug messages to log',
'graphical': 'Graphical overview for journeys',
@ -98,6 +100,10 @@ export const languages = {
'en': 'English',
'cancelled-ride': 'Cancelled!',
'remarks': 'Remarks',
'travelynx-checkin': 'show travelynx checkin?'
'travelynx-checkin': 'show travelynx checkin?',
'lang_short': 'en',
'iconly': 'IC',
'iceonly': 'ICE',
'dzug': 'D-Zug'
}
}

View File

@ -6,10 +6,22 @@ import { html, render } from './lit-html.js';
export const showAlertModal = (text) => {
showDiv('overlay');
render(html`
<div id="modal">
<div id="modal-box">
<div id="modal-text">${text}</div>
<div id="dismiss" @click=${() => hideDiv('overlay')}>OK</div>
<div class="modal">
<div class="alert">
${text}
<div class="dismiss" @click=${() => hideDiv('overlay')}>OK</div>
</div>
</div>
`, ElementById('overlay'));
};
export const showSelectModal = (content) => {
showDiv('overlay');
render(html`
<div class="modal">
<div class="select-box">
${content}
<a @click=${hideLoader}>Close</a>
</div>
</div>
`, ElementById('overlay'));
@ -33,8 +45,8 @@ export const showModal = (title, content) => {
export const showLoader = () => {
showDiv('overlay');
render(html`
<div id="loading">
<div id="spinner"></div>
<div class="loading">
<div class="spinner"></div>
</div>
`, document.getElementById('overlay'));
};

View File

@ -1,4 +1,4 @@
'use strict';
'use strict';
import { showDiv, ElementById, padZeros, isValidDate } from './helpers.js';
import { getCache, addCache, parseName, saveDataStorage, ConsoleLog, t, loadDS100 } from './app_functions.js';
@ -6,7 +6,7 @@ import { dataStorage } from './app.js';
import { get } from './api.js';
import { go } from './router.js';
import { html, render } from './lit-html.js';
import { showAlertModal, showLoader, hideLoader} from './overlays.js';
import { showAlertModal, showSelectModal, showLoader, hideLoader} from './overlays.js';
import { showSettings } from './settingsView.js';
@ -22,86 +22,141 @@ let suggestionsCache = {
};
const searchTemplate = (journeysHistory) => html`
<div id="searchView">
<div class="inputs">
<input type="text" id="from" value="${fromValue}" placeholder="${t('from')}" autocomplete="off" @keyup=${loadSuggestions} @focus=${startTyping} @blur=${stopTyping} @keypress=${onKeypress}>
<div class="suggestions" id="fromsuggestions"></div>
<input type="text" id="to" value="${toValue}" placeholder="${t('to')}" autocomplete="off" @keyup=${loadSuggestions} @focus=${startTyping} @blur=${stopTyping} @keypress=${onKeypress}>
<div class="suggestions" id="tosuggestions"></div>
<div id="datetime">
<div id="deparr">
<label class="switch">
<input type="checkbox" id="isarr" ?checked=${isArrValue}>
<span class="slider"></span>
</label>
<div class="center">
<form class="search" onsubmit="return false;">
<div class="title">
<div class="logo"></div>
<h1>Öffisearch</h1>
</div>
<label for="from">${t('from')}:</label>
<input type="text" name="from" id="from" placeholder="${t('from')}" value="${fromValue}" autocomplete="off" @keyup=${loadSuggestions} @focus=${startTyping} @blur=${stopTyping} @keypress=${onKeypress} required>
<div class="suggestions" id="fromSuggestions"></div>
<label for="to">${t('to')}:</label>
<input type="text" name="to" id="to" placeholder="${t('to')}" value="${toValue}" autocomplete="off" @keyup=${loadSuggestions} @focus=${startTyping} @blur=${stopTyping} @keypress=${onKeypress} required>
<div class="suggestions" id="toSuggestions"></div>
<div class="row">
<label class="switch">
<input type="checkbox" id="isarr" name="isarr" ?checked=${isArrValue}>
<span class="slider ${t('lang_short')}"></span>
<label for="isarr"> <br></label>
</label>
<label for="date">${t('date')}:</label>
<input type="date" name="date" id="date" value="${dateValue}" placeholder="${t('date')}" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" @keypress=${onKeypressSubmit} required>
<label for="time"><br>${t('time')}:</label>
<input type="time" name="time" id="time" value="${timeValue}" placeholder="${t('time')}" pattern="[0-9]{2}:[0-9]{2}" @keypress=${onKeypressSubmit} required>
</div>
<div class="row">
<span class="hidden">${t('products')}:</span>
<div class="selector">
${dataStorage.settings.advancedSelection ? html`
<input type="checkbox" id="nationalExp" name="nationalExp" checked>
<label for="nationalExp" title="${t('iceonly')}">${t('iceonly')}<br></label>
<input type="checkbox" id="national" name="national" checked>
<label class="ic" for="national" title="${t('iconly')}">${t('iconly')}<br></label>
` : html`
<input type="checkbox" id="national" name="national" checked>
<label class="ic-ice" for="national" title="${t('longdistancetrain')}">${t('longdistancetrain')}<br></label>
`}
${dataStorage.settings.advancedSelection ? html`
<input type="checkbox" id="regionalExp" name="regionalExp" checked>
<label for="regionalExp" title="${t('dzug')}">${t('dzug')}<br></label>
<input type="checkbox" id="regional" name="regional" checked>
<label for="regional" title="${t('regionaltrain')}">${t('regionaltrain')}<br></label>
` : html`
<input type="checkbox" id="regional" name="regional" checked>
<label for="regional" title="${t('regionaltrain')}">${t('regionaltrain')}<br></label>
`}
<input type="checkbox" id="suburban" name="suburban" checked>
<label for="suburban" title="${t('suburbantrain')}">${t('suburbantrain')}<br></label>
<input type="checkbox" id="subway" name="subway" checked>
<label for="subway" title="${t('subway')}">${t('subway')}<br></label>
<input type="checkbox" id="tram" name="tram" checked>
<label for="tram" title="${t('tram')}">${t('tram')}<br></label>
<input type="checkbox" id="bus" name="bus" checked>
<label for="bus" title="${t('bus')}">${t('bus')}<br></label>
<input type="checkbox" id="ferry" name="ferry" checked>
<label for="ferry" title="${t('ferry')}">${t('ferry')}<br></label>
<input type="checkbox" id="taxi" name="taxi" checked>
<label for="taxi" title="${t('taxi')}">${t('taxi')}<br></label>
</div>
<span class="hidden">{{LABEL_ACCESSIBILITY}}:</span>
<div class="selector">
<input type="radio" id="accessibilityNone" name="accessibility" value="none" ?checked=${dataStorage.settings.accessibility === "none"}>
<label for="accessibilityNone" title="{{LABEL_ACCESSIBILITY_NONE}}">{{LABEL_ACCESSIBILITY_NONE}}<br></label>
<input type="radio" id="accessibilityPartial" name="accessibility" value="partial" ?checked=${dataStorage.settings.accessibility === "partial"}>
<label for="accessibilityPartial" title="{{LABEL_ACCESSIBILITY_PARTIAL}}">{{LABEL_ACCESSIBILITY_PARTIAL}}<br></label>
<input type="radio" id="accessibilityComplete" name="accessibility" value="complete" ?checked=${dataStorage.settings.accessibility === "complete"}>
<label for="accessibilityComplete" title="{{LABEL_ACCESSIBILITY_FULL}}">{{LABEL_ACCESSIBILITY_FULL}}<br></label>
</div>
<div class="selector" >
<div class="btn swap" title="${t('swap')}" @click=${swapFromTo}></div>
<div class="btn settings" title="${t('settings')}" @click=${showSettings}></div>
</div>
<div class="button btn go" tabindex="0" id="go" @click=${search}>
${t('search')}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z"/></svg>
</div>
<input type="date" id="date" placeholder="${t('date')} (YYYY-MM-DD)" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" value="${dateValue}">
<input type="time" id="time" placeholder="${t('time')} (HH:MM" pattern="[0-9]{2}:[0-9]{2}" value="${timeValue}">
</div>
</div>
<div class="row">
<div class="product_selector">
<input type="checkbox" id="national">
<label for="national" title="${t('longdistancetrain')}">&nbsp;</label>
<input type="checkbox" id="regional">
<label for="regional" title="${t('regionaltrain')}">&nbsp;</label>
<input type="checkbox" id="suburban">
<label for="suburban" title="${t('suburbantrain')}">&nbsp;</label>
<input type="checkbox" id="subway">
<label for="subway" title="${t('subway')}">&nbsp;</label>
<input type="checkbox" id="tram">
<label for="tram" title="${t('tram')}">&nbsp;</label>
<input type="checkbox" id="bus">
<label for="bus" title="${t('bus')}">&nbsp;</label>
<input type="checkbox" id="ferry">
<label for="ferry" title="${t('ferry')}">&nbsp;</label>
<input type="checkbox" id="taxi">
<label for="taxi" title="${t('taxi')}">&nbsp;</label>
</div>
<div class="button swap" id="swap" title="${t('swap')}" @click=${swapFromTo}></div>
<a class="button settings" title="${t('settings')}" @click=${showSettings}></a>
<div class="button search" tabindex="0" id="search" title="${t('search')}" @click=${search}></div>
</div>
${journeysHistory.length ? html`
<input type="checkbox" id="btn-history" class="btn history hidden">
<label for="btn-history"></label>
${journeysHistoryTemplate(journeysHistory)}
` : ''}
</div>
</div>
`;
const journeysHistoryTemplate = (journeysHistory) => html`
<div id="journeysHistory">
<table>
<thead>
<tr><th>${t('from')}</th><th>${t('to')}</th><th>${t('options')}</th></tr>
</thead>
<tbody id="journeysHistoryTable">
${journeysHistory.map(element => html`
<tr class="fromHistory" @click=${() => setFromHistory(journeysHistory.length - 1 - journeysHistory.indexOf(element))}" title="${t('setfromto')}">
<td>${parseName(element.fromPoint)}</td>
<td>${parseName(element.toPoint)}</td>
<td>
<a class="departures" href="#/${element.reqId}" title="${t('journeyoverview')}"></a>
${element.journeyId === '' ? '' : html`
<a class="directions" href="#/${element.reqId}/${element.journeyId}" title="${t('lastjourney')}"></a>
`}
</td>
</tr>
`)}
</tbody>
</table>
<div class="history">
${journeysHistory.map(element => html`
<div class="row history" @click=${() => {journeysHistoryAction(journeysHistory, element)}}">
<div class="history from">
<small>${t('from')}:</small><br>
${parseName(element.fromPoint)}
</div>
<div class="history arrow"></div>
<div class="history to">
<small>${t('to')}:</small><br>
${parseName(element.toPoint)}
</div>
</div>
`)}
</div>
`;
const journeysHistoryAction = (journeysHistory, element) => {
ConsoleLog(element);
showSelectModal(html`
<a @click=${() => {setFromHistory(journeysHistory.length - 1 - journeysHistory.indexOf(element));hideLoader()}}>${t('setfromto')}</a>
<a @click=${() => {go("/"+element.reqId);hideLoader();}}>${t('journeyoverview')}</a>
${element.journeyId === '' ? '' : html`
<a @click=${() => {go("/"+element.reqId+"/"+element.journeyId);hideLoader();}}>${t('lastjourney')}</a>
`}
`);
};
export const searchView = () => {
const journeysHistory = getCache('journeysHistory').slice().reverse();
render(searchTemplate(journeysHistory), ElementById('content'));
@ -118,7 +173,7 @@ export const searchView = () => {
export const search = async (requestId) => {
const provider = dataStorage.settings.provider;
let products = readProductSelection();
const accessibility = dataStorage.settings.accessibility;
const accessibility = document.querySelector('input[name="accessibility"]:checked').value;
let isDep = !ElementById('isarr').checked;
let date = ElementById('date').value;
let time = ElementById('time').value;
@ -182,7 +237,8 @@ export const search = async (requestId) => {
to = suggestions[0]
}
dataStorage.settings.products = products;
dataStorage.settings.products = products;
dataStorage.settings.accessibility = accessibility;
saveDataStorage();
@ -209,6 +265,7 @@ export const search = async (requestId) => {
const data = await get("/journeys", {"params":params});
addCache('journeys', data);
go('/' + data.reqId);
return false;
};
const suggestionsTemplate = (suggestions, inputId) => html`
@ -223,7 +280,7 @@ const loadSuggestions = async (e, input) => {
const val = e.target.value;
suggestionsCache[e.target.id] = {};
const suggestions = val ? await get("/suggestions", {"query": val}, true) : [];
const suggestionsEl = ElementById(e.target.id+'suggestions');
const suggestionsEl = ElementById(e.target.id+'Suggestions');
render(suggestionsTemplate(suggestions, e.target.id), suggestionsEl);
};
@ -236,10 +293,10 @@ export const setSuggestion = (data, inputId) => {
ElementById(inputId).value = parseName(data);
if (inputId === 'from') {
ElementById('fromsuggestions').classList.remove('mouseover');
ElementById('fromSuggestions').classList.remove('mouseover');
ElementById('to').focus();
} else if (inputId === 'to') {
ElementById('tosuggestions').classList.remove('mouseover');
ElementById('toSuggestions').classList.remove('mouseover');
ElementById('to').blur();
}
};
@ -277,13 +334,29 @@ export const readProductSelection = () => {
}
if (ElementById('national').checked !== false) {
products.nationalExp = true;
products.national = true;
products.national = true;
if (dataStorage.settings.advancedSelection !== true) {
products.nationalExp = true;
}
}
if (ElementById('regional').checked !== false) {
products.regionalExp = true;
products.regional = true;
products.regional = true;
if (dataStorage.settings.advancedSelection !== true) {
products.regionalExp = true;
}
}
if (dataStorage.settings.advancedSelection !== false) {
if (ElementById('nationalExp').checked !== false) {
products.nationalExp = true;
}
if (ElementById('regionalExp').checked !== false) {
products.regionalExp = true;
}
}
if (ElementById('suburban').checked !== false) {
@ -314,33 +387,41 @@ export const readProductSelection = () => {
};
const startTyping = (e) => {
ElementById(e.target.id+'suggestions').classList.add('typing');
if (e.target.id == 'from') ElementById('tosuggestions').classList.remove('mouseover');
if (e.target.id == 'to') ElementById('fromsuggestions').classList.remove('mouseover');
ElementById(e.target.id+'Suggestions').classList.add('typing');
if (e.target.id == 'from') ElementById('toSuggestions').classList.remove('mouseover');
if (e.target.id == 'to') ElementById('fromSuggestions').classList.remove('mouseover');
};
const stopTyping = (e) => {
ElementById(e.target.id+'suggestions').classList.remove('typing');
ElementById(e.target.id+'Suggestions').classList.remove('typing');
};
const mouseOverSuggestions = (e) => {
let el = e.target;
let i = 0;
while (i++ < 10 && el.id !== 'fromsuggestions' && el.id !== 'tosuggestions') el = el.parentElement;
while (i++ < 10 && el.id !== 'fromSuggestions' && el.id !== 'toSuggestions') el = el.parentElement;
el.classList.add('mouseover');
};
const stopMouseOverSuggestions = (e) => {
let el = e.target;
let i = 0;
while (i++ < 10 && el.id !== 'fromsuggestions' && el.id !== 'tosuggestions') el = el.parentElement;
while (i++ < 10 && el.id !== 'fromSuggestions' && el.id !== 'toSuggestions') el = el.parentElement;
el.classList.remove('mouseover');
};
const onKeypress = (e) => {
if (e.which == 13 || e.keyCode == 13) { // enter
document.querySelector(`#${e.target.id}suggestions>.suggestionsbox>:first-child`).click();
if (e.target.id === 'to') ElementById('search').click();
document.querySelector(`#${e.target.id}Suggestions>.suggestionsbox>:first-child`).click();
if (e.target.id === 'to') ElementById('go').click();
return false;
}
return true;
};
const onKeypressSubmit = (e) => {
if (e.which == 13 || e.keyCode == 13) { // enter
ElementById('go').click();
return false;
}
return true;

View File

@ -11,32 +11,22 @@ export const showSettings = () => {
const settingsTemplate = () => html`
<div id="settingsView">
<b>${t('datasource')}:</b><br>
<label><input type="radio" name="provider" ?checked=${dataStorage.settings.provider === "DB"} value="DB"> DB</label><br>
<label><input type="radio" disabled="disabled" name="provider" ?checked=${dataStorage.settings.provider === "SH"} value="SH"> NAH.SH</label><br>
<label><input type="radio" disabled="disabled" name="provider" ?checked=${dataStorage.settings.provider === "BVG"} value="BVG"> BVG</label><br>
<br>
<b>${t('accessibility')}:</b><br>
<label><input type="radio" name="accessibility" ?checked=${dataStorage.settings.accessibility === "none"} value="none"> ${t('access_none')}</label><br>
<label><input type="radio" name="accessibility" ?checked=${dataStorage.settings.accessibility === "partial"} value="partial"> ${t('access_partial')}</label><br>
<label><input type="radio" name="accessibility" ?checked=${dataStorage.settings.accessibility === "complete"} value="complete"> ${t('access_full')}</label><br>
<br>
<b>${t('etc')}:</b><br>
<b>${t('options')}:</b><br>
<label><input type="checkbox" ?checked=${dataStorage.settings.showRIL100Names} id="ril100"> ${t('showds100')}</label><br>
<label><input type="checkbox" ?checked=${dataStorage.settings.writeDebugLog} id="debug-messages"> ${t('showdebug')}</label><br>
<label><input type="checkbox" ?checked=${dataStorage.settings.enableCanvas} id="enable-canvas"> ${t('graphical')} <b>BETA</b></label><br>
<label><input type="checkbox" ?checked=${dataStorage.settings.fancyCanvas} id="fancy-canvas"> ${t('fancy')}<label><br>
<label><input type="checkbox" ?checked=${dataStorage.settings.travelynx} id="travelynx"> ${t('travelynx-checkin')}<label><br>
<label><input type="checkbox" ?checked=${dataStorage.settings.advancedSelection} id="advancedSelection">ADVANCED® selection of trains<label><br>
<br>
<b>${t('language')}:</b><br>
<label><input type="radio" name="language" ?checked=${dataStorage.settings.language === "de"} value="de"> ${t('de')}</label><br>
<label><input type="radio" name="language" ?checked=${dataStorage.settings.language === "en"} value="en"> ${t('en')}</label><br>
<div class="buttons">
<button class="btn orange" id="rebuild-cache" @click=${rebuildCache}><span>${t('update')}</span></button>
<button class="btn red" id="clear" @click=${clearDataStorage}><span>${t('clearstorage')}</span></button>
<button class="btn" id="save" @click=${saveSettings}><span>${t('save')}</span></button>
</div>
<button id="clear" @click=${clearDataStorage}><span>${t('clearstorage')}</span></button>
<button id="save" @click=${saveSettings}><span>${t('save')}</span></button>
<button id="quit" style="float:right;" @click=${newAll}><span>Quit Sibelius</span></button>
</div>
`;
@ -46,28 +36,26 @@ const rebuildCache = () => {
location.reload();
};
const newAll = () => {
ElementById('clear').innerText = "New All";
};
const saveSettings = async () => {
const provider = document.querySelector('input[name="provider"]:checked').value;
const accessibility = document.querySelector('input[name="accessibility"]:checked').value;
const language = document.querySelector('input[name="language"]:checked').value;
const show_ril100 = ElementById('ril100').checked;
const write_debug = ElementById('debug-messages').checked;
const enable_canvas = ElementById('enable-canvas').checked;
const fancy_canvas = ElementById('fancy-canvas').checked;
const travelynx = ElementById('travelynx').checked;
const language = document.querySelector('input[name="language"]:checked').value;
const show_ril100 = ElementById('ril100').checked;
const write_debug = ElementById('debug-messages').checked;
const enable_canvas = ElementById('enable-canvas').checked;
const fancy_canvas = ElementById('fancy-canvas').checked;
const travelynx = ElementById('travelynx').checked;
const advancedSelection = ElementById('advancedSelection').checked;
if (provider !== dataStorage.settings.provider) {
dataStorage.journeysHistory = [];
}
dataStorage.settings.provider = provider;
dataStorage.settings.accessibility = accessibility;
dataStorage.settings.showRIL100Names = show_ril100;
dataStorage.settings.writeDebugLog = write_debug;
dataStorage.settings.enableCanvas = enable_canvas;
dataStorage.settings.fancyCanvas = fancy_canvas;
dataStorage.settings.language = language;
dataStorage.settings.travelynx = travelynx;
dataStorage.settings.showRIL100Names = show_ril100;
dataStorage.settings.writeDebugLog = write_debug;
dataStorage.settings.enableCanvas = enable_canvas;
dataStorage.settings.fancyCanvas = fancy_canvas;
dataStorage.settings.language = language;
dataStorage.settings.travelynx = travelynx;
dataStorage.settings.advancedSelection = advancedSelection;
saveDataStorage();
if (show_ril100) await loadDS100();

4
client/manifest.json Normal file → Executable file
View File

@ -4,12 +4,12 @@
"start_url": ".",
"icons": [
{
"src": "./img/favicon-64x64.png",
"src": "/favicon-64x64.png",
"sizes": "64x64",
"type": "image/png"
},
{
"src": "./img/favicon-512x512.png",
"src": "/favicon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}

954
client/style.css Executable file
View File

@ -0,0 +1,954 @@
font-face {
font-family: 'varelaregular';
src: url('./varela-regular-webfont.woff2') format('woff2'),
url('./varela-regular-webfont.woff') format('woff');
font-weight: normal;
font-style: normal;
}
a {
color: inherit;
}
html, body {
margin: 0;
font-family: Varela, sans-serif;
background-color: #17212e;
min-height: 100vh;
overflow-x: hidden;
overflow-y: visible;
}
* {
box-sizing: border-box;
border-collapse: collapse;
}
header {
position: relative;
box-shadow: 0 0 15px rgba(0, 0, 0, .6);
color: white;
padding: 0 0 0 9vw;
background-color: #43a007;
}
.row {
display: flex;
flex-direction: row;
}
.cancelled {
text-decoration-line: line-through;
}
.cancelled-text {
font-weight: bold;
color: red;
}
.pointer {
cursor: pointer;
}
.back {
cursor: pointer;
position: absolute;
left: 17px;
top: 17px;
width: 32px;
height: 32px;
content: url('data:image/svg+xml;utf8,<svg height="100%" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g color="white"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" fill="currentColor"></path></g></svg>');
user-select: none;
}
.reload {
cursor: pointer;
position: absolute;
right: 17px;
top: 17px;
width: 32px;
height: 32px;
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path style="fill: white;" d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
user-select: none;
}
.spinner {
margin: calc(50vh - 60px) auto;
border: 2px solid rgba(255, 255, 255, .7); /* Light grey */
border-top: 4px solid #3498db; /* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
label[for=btn-history] {
cursor: pointer;
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
border-radius: 100%;
height: 48px;
width: 48px;
background-color: #eee;
margin: .5em auto;
transition: box-shadow 150ms;
border: 1px solid rgba(0, 0, 0, .1);
user-select: none;
}
:checked ~ label[for=btn-history] {
transform: rotate(180deg);
}
.loadMore {
cursor: pointer;
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
border-radius: 100%;
height: 48px;
width: 48px;
background-color: #eee;
margin: 0 auto;
transition: box-shadow 150ms;
border: 1px solid rgba(0, 0, 0, .1);
user-select: none;
}
.loadMore:hover {
box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .3);
}
.loadMore.flipped {
transform: rotate(180deg);
margin-top: 15px;
}
table {
border-bottom: 1px solid rgba(0, 0, 0, 0.3);
width: 100%;
}
table, tr {
background-color: #fff;
margin: 0 0 15px 0;
}
td, th {
text-align: center;
overflow: hidden;
}
th {
padding: 5px 3px;
}
tr:nth-child(odd) {
background-color: #f2f2f2;
}
tbody tr:hover {
background-color: #ddd;
}
tbody tr:hover td {
background-color: transparent;
}
@supports (display: flex) {
.button,
input[type="date"],
input[type="time"],
input[type="text"],
.switch {
cursor: pointer;
box-sizing: border-box;
width: 100%;
padding: .3em .5em;
border-radius: 3px;
font-size: 1.5em;
padding: 7px;
border: none;
outline: none;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
background-color: white;
color: black;
margin-top: 8px;
}
input[type="text"]:focus {
border-radius: 3px 3px 0px 0px;
}
.btn,
.selector label {
cursor: pointer;
background-color: white;
width: 32px;
padding: 3px;
height: 32px;
display: inline-block;
border-right: 1px solid rgba(0, 0, 0, .2);
user-select: none;
}
.selector {
margin-top: 8px;
margin-bottom: 8px;
margin-right: auto;
display: flex;
border-radius: 3px;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
overflow: hidden;
}
.selector > label {
width: 32px;
height: 32px;
user-select: none;
}
.selector > input {
display: none;
}
input[id=national] + label[for=national] {
background: #d3d3d3;
}
input[id=national]:checked + label[for=national] {
background: #fff;
}
input[id=nationalExp] + label[for=nationalExp] {
content: url('./img/ice.svg');
background: #d3d3d3;
}
input[id=nationalExp]:checked + label[for=nationalExp] {
background: #fff;
}
.ic {
content: url('./img/ic.svg');
}
.ic-ice {
content: url('./img/ice_ic.svg');
}
input[id=regional] + label[for=regional] {
content: url('./img/nv.svg');
background: #d3d3d3;
}
input[id=regional]:checked + label[for=regional] {
background: #fff;
}
input[id=regionalExp] + label[for=regionalExp] {
content: url('./img/d.svg');
background: #d3d3d3;
}
input[id=regionalExp]:checked + label[for=regionalExp] {
background: #fff;
}
input[id=suburban] + label[for=suburban] {
content: url('./img/s.svg');
background: #d3d3d3;
}
input[id=suburban]:checked + label[for=suburban] {
background: #fff;
}
input[id=subway] + label[for=subway] {
content: url('./img/u.svg');
background: #d3d3d3;
}
input[id=subway]:checked + label[for=subway] {
background: #fff;
}
input[id=tram] + label[for=tram] {
content: url('./img/tram.svg');
background: #d3d3d3;
}
input[id=tram]:checked + label[for=tram] {
background: #fff;
}
input[id=bus] + label[for=bus] {
content: url('./img/bus.svg');
background: #d3d3d3;
}
input[id=bus]:checked + label[for=bus] {
background: #fff;
}
input[id=ferry] + label[for=ferry] {
content: url('./img/ferry.svg');
background: #d3d3d3;
}
input[id=ferry]:checked + label[for=ferry] {
background: #fff;
}
input[id=taxi] + label[for=taxi] {
content: url('./img/taxi.svg');
background: #d3d3d3;
}
input[id=taxi]:checked + label[for=taxi] {
background: #fff;
}
input[id=accessibilityNone] + label[for=accessibilityNone] {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="18px" height="18px"><path d="M0 0h24v24H0z" fill="none"/><path d="M13.49 5.48c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-3.6 13.9l1-4.4 2.1 2v6h2v-7.5l-2.1-2 .6-3c1.3 1.5 3.3 2.5 5.5 2.5v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1l-5.2 2.2v4.7h2v-3.4l1.8-.7-1.6 8.1-4.9-1-.4 2 7 1.4z"/></svg>');
background: #d3d3d3;
}
input[id=accessibilityNone]:checked + label[for=accessibilityNone] {
background: #fff;
}
input[id=accessibilityPartial] + label[for=accessibilityPartial] {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="18px" height="18px"><path d="M0 0h24v24H0z" fill="none"/><path d="M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7"/></svg>');
background: #d3d3d3;
}
input[id=accessibilityPartial]:checked + label[for=accessibilityPartial] {
background: #fff;
}
input[id=accessibilityComplete] + label[for=accessibilityComplete] {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="18px" height="18px"><path d="M0 0h24v24H0z" fill="none"/><circle cx="12" cy="4" r="2"/><path d="M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.45-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-6.17 5c-.41 1.16-1.52 2-2.83 2-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1c-2.28.46-4 2.48-4 4.9 0 2.76 2.24 5 5 5 2.42 0 4.44-1.72 4.9-4h-2.07z"/></svg>');
background: #d3d3d3;
}
input[id=accessibilityComplete]:checked + label[for=accessibilityComplete] {
background: #fff;
}
.switch {
position: relative;
display: inline-block;
width: 84px;
padding: 0 !important;
overflow: hidden;
flex-shrink: 0;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.switch input:active,
.switch input:focus {
box-shadow: 0 .1em .5em rgba(0, 0, 0, .6);
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #bbb;
height: 100%;
}
.slider:before {
position: absolute;
font-size: 13px;
padding-top: calc(25% - 7px);
line-height: 100%;
text-align: center;
height: 100%;
width: 42px;
background-color: white;
transition: .2s;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
}
.switch input:checked + .slider:before {
transform: translateX(42px);
}
.slider.de:before {
content: "AB";
}
.switch input:checked + .slider.de:before {
content: "AN";
}
.slider.en:before {
content: "DEP";
}
.switch input:checked + .slider.en:before {
content: "ARR";
}
}
.journey,
.journeys {
display: flex;
flex-direction: column;
}
.search {
color: white;
display: flex;
flex-direction: column;
}
.search table {
width: 100%;
color: black;
}
.search #date {
flex-grow: 1;
margin-left: 8px;
}
.search>.title {
display: flex;
justify-content: center;
align-items: center;
}
.search>.title>h1 {
font-weight: normal;
margin-left: .5em;
text-shadow: 0 .05em .1em rgba(0, 0, 0, .5);
margin: .7em .3em .5em .3em;
}
@supports (display: flex) {
.search>.title>.logo {
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
background-color: #7171e5;
border-radius: 15%;
width: 50px;
height: 50px;
margin: 0;
padding: 5px 5px 2px 6px;
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path style="fill: white;" d="M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h2.23l2-2H14l2 2h2v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-7H6V6h5v4zm2 0V6h5v4h-5zm3.5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/><path fill="none" d="M0 0h24v24H0V0z"/></svg>')
}
}
.search .btn.swap {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
}
.search .btn.settings {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" viewBox="0 0 24 24" fill="black" width="18px" height="18px"><g><path d="M0,0h24v24H0V0z" fill="none"/><path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"/></g></svg>');
}
.search .btn.go {
font-size: 1.5em;
margin-left: 5px;
display: flex;
justify-content: center;
width: 110px;
font-size: 20px;
}
.search .btn.go label {
cursor: pointer;
}
.search .btn.go svg {
margin-left: 5px;
fill: #5050ff;
}
.journeys {
min-height: 100vh;
}
.journeys table {
margin: 15px auto;
}
.journeys table a,
.journey table a,
.journey table span {
padding: 5px 3px;
display: flex;
justify-content: center;
width: 100%;
text-decoration: none;
color: black;
}
.journeys a.details-button {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="18px" height="18px"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/><path d="M0 0h24v24 H0z" fill="none"/></svg>');
height: 30px;
padding: 0;
}
.journey tbody td:nth-child(3) {
text-align: left;
}
.journey tbody:not(:last-child) {
border-bottom: 1px solid rgba(0, 0, 0, .2);
}
.journey p {
color: white;
width: 100%;
}
.journey p::before {
filter: drop-shadow( 0 0 5px rgba(0, 0, 0, .6) );
margin-right: 4px;
vertical-align: sub;
}
.journey p.change,
.journey p.walk,
.journey p.transfer {
text-shadow: 0 0 15px rgba(0, 0, 0, .6);
text-align: center;
}
.journey p.change::before {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path style="fill: white;" d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
}
.journey p.walk::before {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path style="fill: white;" d="M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7"/></svg>');
}
.journey p.transfer::before {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path style="fill: white;" d="M21.71 11.29l-9-9c-.39-.39-1.02-.39-1.41 0l-9 9c-.39.39-.39 1.02 0 1.41l9 9c.39.39 1.02.39 1.41 0l9-9c.39-.38.39-1.01 0-1.41zM14 14.5V12h-4v3H8v-4c0-.55.45-1 1-1h5V7.5l3.5 3.5-3.5 3.5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
}
.suggestionsbox {
border-radius: 3px;
width: 100%;
box-shadow: 0 .4em .8em rgba(0, 0, 0, .5);
}
.suggestionsbox p:first-child {
border-top: 0px;
}
.suggestionsbox p {
font-size: 1.2em;
background-color: white;
color: black;
margin: 0;
border-top: 1px solid rgba(0, 0, 0, .2);
padding: .3em .6em;
cursor: pointer;
}
.suggestions {
position: relative;
display: none;
overflow: visible;
z-index: 999;
height: 0;
}
.suggestions.typing,
.suggestions.mouseover {
display: block;
}
@media (max-width: 799px) {
.search {
padding: 10px;
}
header {
padding: 0 0 0 50px;
}
.back {
left: 10px;
}
.row {
flex-wrap: wrap;
}
.search #date {
width: initial;
}
.search #time {
width: 100%;
flex-shrink: 0;
}
}
@media (min-width: 800px) {
.center {
display: flex;
justify-content: center;
align-items: center;
}
.search {
width: 80vw;
max-width: 700px;
color: white;
}
.search #date {
margin-right: 8px;
}
.search #time {
width: 40%;
}
header {
padding: 0 10vw;
}
td p {
display: inline;
margin-right: 5px;
}
th {
padding: 10px 5px;
}
.journeys table a {
padding: 10px 5px;
}
table {
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4);
border-radius: 5px;
overflow: hidden;
border: none;
margin: 50px auto;
width: 80vw;
}
}
@supports (display: flex) {
.hidden {
display: none !important;
}
label[for=from], label[for=to], label[for=isarr], label[for="date"], label[for=time] {
display: none;
}
}
#overlay {
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.4);
}
.modal {
display: flex;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
overflow: hidden;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal-alert {
margin: auto;
border-radius: 4px;
background-color: white;
width: fit-content;
width: -moz-fit-content;
padding: 15px;
box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}
.dismiss {
content: 'OK';
border-radius: 4px;
background-color: rgba(20, 30, 255, .7);
color: white;
width: fit-content;
width: -moz-fit-content;
padding: 8px 20px;
margin-left: auto;
margin-top: 10px;
transition: background-color 300ms;
}
.dismiss:hover {
background-color: rgba(70, 100, 255, .8);
cursor: pointer;
}
.modal-header {
background-color: #43a047;
color: white;
border-radius: 6px 6px 0px 0px;
min-height: 16.4;
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
margin-top: -2px;
}
.modal-header .modal-close {
width:53px;
float:right;
margin:-15px;
margin-left:0px;
height:53px;
border-left: 1px solid #00000040;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAABO0lEQVR42u3bURKDIAwEUNiLoyfXC3Ss4mYTh81Xv4R90wqEad+2ra1caIuXAQxgAAMYwAAGMIABDGAAA0zVGOMYYxzqibPGxdtJ/PqsCM8aF4xJKBHY40IxwcrPngbY970rJ3r1zKu5hH4DVAhR4Sk/gWiEyPC0d0AUQnR46kuQjaAIT18FWAiq8CHL4FsEZfiws8Asgjp86GHoKUJG+PDT4F2ErPCttdYVd4OzS2F0eFk/YCaIIry0IfIkkCq8FOBuMGV4OUDFkgK83Qh9GoC1Ff4kAPsw9CmAf5scdWdJCnB3h5eJgOzw2QioED4TAVXCZyGgUvgMBFQLr0ZAxfBKBFQNr0JA5fAKBFQPH40gbYtXfDb1dljRzGCPS7sdVnZymON2/2Nk8TKAAQxgAAMYwAAGMIABDLBmnWRS+u5G6HkFAAAAAElFTkSuQmCC') center no-repeat;
background-size:30px;
cursor:pointer;
}
.modal-header .modal-close:hover {
border-radius: 0px 6px 0px 0px;
}
.modal-title {
margin: 0;
line-height: 1.4;
}
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
.modal-content {
position: relative;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, .2);
border-radius: 6px;
outline: 0;
box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
.modal-body {
position: relative;
}
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
}
}
.row.history:first-child {
border-top: 0px;
}
form>div.history {
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4);
border-radius: 5px;
overflow: hidden;
display: none;
margin-bottom: 1em;
user-select: none;
}
:checked ~ .history {
display: block;
}
.row.history {
font-size: 1.2em;
background-color: white;
color: black;
margin: 0;
border-top: 1px solid rgba(0, 0, 0, .2);
padding: .3em .6em .3em .3em;
cursor: pointer;
display: flex;
justify-content: space-between;
}
.history.from,
.history.to {
width: 40%;
}
.history.to {
text-align: right;
}
.history.arrow {
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="18px" height="18px"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/><path d="M0 0h24v24 H0z" fill="none"/></svg>');
width: 25px;
}
.station-column {
style="width: 60%;"
}
.modal {
display: flex;
}
.alert {
margin: auto;
border-radius: 4px;
background-color: white;
width: fit-content;
width: -moz-fit-content;
padding: 15px;
box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}
.alert.dismiss {
content: 'OK';
border-radius: 4px;
background-color: rgba(20, 30, 255, .7);
color: white;
width: fit-content;
width: -moz-fit-content;
padding: 8px 20px;
margin-left: auto;
margin-top: 10px;
transition: background-color 300ms;
}
.alert.dismiss:hover {
background-color: rgba(70, 100, 255, .8);
cursor: pointer;
}
.select-box {
margin: auto;
border-radius: 4px;
background-color: white;
width: fit-content;
width: -moz-fit-content;
padding: 15px;
box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}
.select-box a {
display: block;
text-decoration: none;
border-radius: 4px;
background-color: rgba(20, 30, 255, .7);
color: white;
width: 100%;
padding: 8px 20px;
margin-left: auto;
margin-top: 10px;
text-align: center;
transition: background-color 300ms;
}
.select-box a:first-child {
margin-top: 0px;
}
.select-box a:hover {
background-color: rgba(70, 100, 255, .8);
cursor: pointer;
}
.travelynx {
content: url('./img/travelynx.svg');
vertical-align: bottom;
max-inline-size: 22px;
cursor: pointer;
}
.showremarks {
vertical-align: bottom;
cursor: pointer;
max-inline-size: 22px;
}
.remark {
vertical-align: middle;
}
.showremarks.hint,
.remark.hint {
content: url("../img/info-24px.svg");
}
.showremarks.status,
.remark.status {
content: url("../img/warning-24px.svg");
}
.showremarks.other,
.remark.other {
content: url("../img/help-24px.svg");
}
.remarks td {
margin: 0 10px;
text-align: left;
display: block;
}
/*.remarks {
display: none;
position: absolute;
z-index: 1;
}*/
.remarks {
/*background: #000000d0;*/
border: 1px solid #ddd;
padding: 0;
width: 100%;
margin: 0;
box-shadow: none;
}
/*.showremarks:hover+.remarks {
display: inline-block;
}*/

Binary file not shown.

Binary file not shown.

View File

@ -1,13 +1,15 @@
const stations = require('db-stations')
const fs = require('fs');
var ds100list = {};
var ds100list = {};
var ds100reverseList = {};
stations.full()
.on('data',function(station){
var stuff = [];
station.ril100Identifiers.forEach(element => {
stuff.push(element.rilIdentifier)
ds100reverseList[element.rilIdentifier] = station.id;
})
if (stuff.length === 0) return;
@ -15,7 +17,6 @@ stations.full()
ds100list[station.id] = stuff.join(', ');
})
.on('end',function(){
fs.writeFile("ds100.json", JSON.stringify(ds100list), () => {})
fs.writeFile("ds100.json", JSON.stringify(ds100list), () => {});
fs.writeFile("ds100reverse.json", JSON.stringify(ds100reverseList), () => {});
});

1
ds100.json Normal file

File diff suppressed because one or more lines are too long

1
ds100reverse.json Normal file

File diff suppressed because one or more lines are too long

5
package.json Normal file
View File

@ -0,0 +1,5 @@
{
"dependencies": {
"db-stations": "^3.0.0"
}
}

View File

@ -4,7 +4,6 @@ import ../util
import json
import asyncdispatch
import options
import sequtils
proc refreshJourney*(params: RefreshJourneyParams): Future[Journey] {.async.} =
let req = %* {
@ -21,5 +20,4 @@ proc refreshJourney*(params: RefreshJourneyParams): Future[Journey] {.async.} =
}
let data = await request(req)
echo pretty data
return parseJourneysResponse(data, true).journeys[0]

View File

@ -20,5 +20,8 @@ proc parseJourneysResponse*(data: JsonNode, isRefresh: bool = false): JourneysRe
result.journeys = data["res"]["outConL"].getElems().map(mkParseJourney(common))
if not isRefresh:
result.earlierRef = data["res"]["outCtxScrB"].getStr()
result.laterRef = data["res"]["outCtxScrF"].getStr()
if data["res"].hasKey("outCtxScrB"):
result.earlierRef = data["res"]["outCtxScrB"].getStr()
if data["res"].hasKey("outCtxScrF"):
result.laterRef = data["res"]["outCtxScrF"].getStr()

View File

@ -1,5 +1,4 @@
import ../types
import ../util
import json
import options
import math

View File

@ -15,7 +15,7 @@ proc refreshJourneyEndpoint*(requestData: JsonNode): Future[JsonNode] {.async.}
let journey = await refreshJourney(RefreshJourneyParams(
refreshToken: cacheObj.journeys[journeyId].refreshToken,
stopovers: some(true),
polylines: some(true),
polylines: some(false),
tickets: some(true),
))

View File

@ -1,5 +1,12 @@
import json, options, asyncdispatch
import ../types, ../backend/hafas
const ds100Json = staticRead "../../ds100reverse.json"
proc suggestionsEndpoint* (data: JsonNode): Future[JsonNode] {.async.} =
return %* (await suggestions(data.to(SuggestionsParams)))
let ds100 = parseJson(ds100Json)
if ds100.hasKey(data["query"].getStr):
return %* (await suggestions(SuggestionsParams(query: ds100[data["query"].getStr].getStr)))
else:
return %* (await suggestions(data.to(SuggestionsParams)))

View File

@ -178,13 +178,13 @@ type
coordinates*: seq[float]
notFoundException* = object of Exception
errorException* = object of Exception
notFoundException* = object of ValueError
errorException* = object of ValueError
hafasExceptionKind* = enum
SERVER_ERROR, ACCESS_DENIED, INVALID_REQUEST, NOT_FOUND
hafasException* = ref object of Exception
hafasException* = ref object of ValueError
code*: hafasExceptionKind
message*: string
statusCode*: HttpCode

113
yarn.lock Normal file
View File

@ -0,0 +1,113 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
db-stations@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/db-stations/-/db-stations-3.0.0.tgz#567c1065dd65620b0d94c000b2792eaa668f8d30"
integrity sha512-HaAthWRXJPFQhRFZImNoG+gfmCTwk8IuRzxSVqsS8Farbo/A9Cm57Pm798jUkKCLQmJc0krdI/JrScP5npZH0g==
dependencies:
ndjson "^1.5.0"
tokenize-db-station-name "^2.2.1"
inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
json-stringify-safe@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
minimist@^1.2.0:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
ndjson@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-1.5.0.tgz#ae603b36b134bcec347b452422b0bf98d5832ec8"
integrity sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=
dependencies:
json-stringify-safe "^5.0.1"
minimist "^1.2.0"
split2 "^2.1.0"
through2 "^2.0.3"
normalize-for-search@^2.0.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/normalize-for-search/-/normalize-for-search-2.1.0.tgz#054ee765de1e36613b7f3dd4aa4cf6f9c32330fe"
integrity sha512-SL9xv8eEXXQfj7wo4aq/QjgCLzcKSLYAoVcRyaxJPZJkiIlGX579TiuoLWrFSkG6MZfesJ9fRpYcdpYKwckZUw==
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
readable-stream@~2.3.6:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
split2@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493"
integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==
dependencies:
through2 "^2.0.2"
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
through2@^2.0.2, through2@^2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
dependencies:
readable-stream "~2.3.6"
xtend "~4.0.1"
tokenize-db-station-name@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/tokenize-db-station-name/-/tokenize-db-station-name-2.2.2.tgz#3ebb79a317c1ca7ad55db96c54e2a4e9144590e7"
integrity sha512-Ns2FSWYAkakx7VSiZ3WB18obnj3t03mrcixfyTl8aZPxAANmB4+l1INHLF1Dd5ujufK2+izQZNLc4ooz2Kqppw==
dependencies:
normalize-for-search "^2.0.1"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==