diff --git a/public/favicon.ico b/public/favicon.ico index df36fcf..c6c78b0 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/src/App.vue b/src/App.vue index 13abc9b..16f209f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,9 +1,199 @@ - diff --git a/src/assets/icon-1track-e.svg b/src/assets/icon-1track-e.svg new file mode 100644 index 0000000..a930080 --- /dev/null +++ b/src/assets/icon-1track-e.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icon-1track-ne.svg b/src/assets/icon-1track-ne.svg new file mode 100644 index 0000000..023d851 --- /dev/null +++ b/src/assets/icon-1track-ne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icon-2track-e.svg b/src/assets/icon-2track-e.svg new file mode 100644 index 0000000..e60975f --- /dev/null +++ b/src/assets/icon-2track-e.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icon-2track-ne.svg b/src/assets/icon-2track-ne.svg new file mode 100644 index 0000000..9135eca --- /dev/null +++ b/src/assets/icon-2track-ne.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/icon-SBL.svg b/src/assets/icon-SBL.svg new file mode 100644 index 0000000..133207a --- /dev/null +++ b/src/assets/icon-SBL.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icon-SCS-SPK.svg b/src/assets/icon-SCS-SPK.svg new file mode 100644 index 0000000..25624bf --- /dev/null +++ b/src/assets/icon-SCS-SPK.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icon-SCS.svg b/src/assets/icon-SCS.svg new file mode 100644 index 0000000..ef8f74b --- /dev/null +++ b/src/assets/icon-SCS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon-SPK.svg b/src/assets/icon-SPK.svg new file mode 100644 index 0000000..1f0b013 --- /dev/null +++ b/src/assets/icon-SPK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon-error.svg b/src/assets/icon-error.svg new file mode 100644 index 0000000..b657b3f --- /dev/null +++ b/src/assets/icon-error.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icon-historyczna.svg b/src/assets/icon-historyczna.svg new file mode 100644 index 0000000..1e9a9d1 --- /dev/null +++ b/src/assets/icon-historyczna.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icon-kształtowa.svg b/src/assets/icon-kształtowa.svg new file mode 100644 index 0000000..43801f0 --- /dev/null +++ b/src/assets/icon-kształtowa.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icon-like.svg b/src/assets/icon-like.svg new file mode 100644 index 0000000..8c4ba66 --- /dev/null +++ b/src/assets/icon-like.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icon-mechaniczne+SCS.svg b/src/assets/icon-mechaniczne+SCS.svg new file mode 100644 index 0000000..3c016c3 --- /dev/null +++ b/src/assets/icon-mechaniczne+SCS.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon-mechaniczne+SPK.svg b/src/assets/icon-mechaniczne+SPK.svg new file mode 100644 index 0000000..367440b --- /dev/null +++ b/src/assets/icon-mechaniczne+SPK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon-mechaniczne.svg b/src/assets/icon-mechaniczne.svg new file mode 100644 index 0000000..18b7bb2 --- /dev/null +++ b/src/assets/icon-mechaniczne.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon-mieszana.svg b/src/assets/icon-mieszana.svg new file mode 100644 index 0000000..b880e85 --- /dev/null +++ b/src/assets/icon-mieszana.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icon-ręczne+SPK.svg b/src/assets/icon-ręczne+SPK.svg new file mode 100644 index 0000000..4e57b64 --- /dev/null +++ b/src/assets/icon-ręczne+SPK.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon-ręczne.svg b/src/assets/icon-ręczne.svg new file mode 100644 index 0000000..342b533 --- /dev/null +++ b/src/assets/icon-ręczne.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icon-td2.svg b/src/assets/icon-td2.svg new file mode 100644 index 0000000..132c290 --- /dev/null +++ b/src/assets/icon-td2.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icon-współczesna.svg b/src/assets/icon-współczesna.svg new file mode 100644 index 0000000..1e9a9d1 --- /dev/null +++ b/src/assets/icon-współczesna.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/trainlogo.png b/src/assets/trainlogo.png new file mode 100644 index 0000000..71321fe Binary files /dev/null and b/src/assets/trainlogo.png differ diff --git a/src/components/states/Error.vue b/src/components/states/Error.vue new file mode 100644 index 0000000..bca9473 --- /dev/null +++ b/src/components/states/Error.vue @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/src/components/states/Loading.vue b/src/components/states/Loading.vue new file mode 100644 index 0000000..dae5552 --- /dev/null +++ b/src/components/states/Loading.vue @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/src/components/ui/Card.vue b/src/components/ui/Card.vue new file mode 100644 index 0000000..160596e --- /dev/null +++ b/src/components/ui/Card.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/components/ui/List.vue b/src/components/ui/List.vue new file mode 100644 index 0000000..9acd956 --- /dev/null +++ b/src/components/ui/List.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/data/stations.json b/src/data/stations.json new file mode 100644 index 0000000..024edee --- /dev/null +++ b/src/data/stations.json @@ -0,0 +1,1619 @@ +[ + { + "stationName": "Blaszki", + "stationURL": "https://td2.info.pl/scenerie/blaszki/", + "stationLines": "", + "stationProject": "", + "stationHash": "d712b295", + "reqLevel": "10", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "LCS Borowe", + "stationURL": "https://td2.info.pl/scenerie/lcs-borowe/", + "stationLines": "", + "stationProject": "", + "reqLevel": "12", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "TAK", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 3, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "LCS Gdańsk", + "stationURL": "https://td2.info.pl/scenerie/lcs-gdansk/", + "stationLines": "9, 202, 227, 249, 250", + "stationProject": "", + "stationHash": "5c3dac7f", + "reqLevel": "10", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "TAK", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 3, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 3, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Lębork", + "stationURL": "https://td2.info.pl/scenerie/lebork-5834/", + "stationLines": "202, 229, 237", + "stationProject": "", + "stationHash": "ea695f02", + "reqLevel": "8", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "mechaniczne+SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Grabów Miasto", + "stationURL": "https://td2.info.pl/scenerie/grabow-miasto-v2/", + "stationLines": "", + "stationProject": "", + "stationHash": "1626cc27", + "reqLevel": "6", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 1, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Parzęczewo", + "stationURL": "https://td2.info.pl/scenerie/parzeczewo/", + "stationLines": "", + "stationProject": "", + "stationHash": "a7d464d4", + "reqLevel": "6", + "supportersOnly": "NIE", + "signalType": "mieszana", + "controlType": "SCS", + "SBL": "TAK", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Aleksandrów Kujawski", + "stationURL": "https://td2.info.pl/scenerie/aleksandrow-kujawski/", + "stationLines": "18, 245", + "stationProject": "", + "stationHash": "6d72679c", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS-SPK", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Arkadia Zdrój 2012", + "stationURL": "https://td2.info.pl/scenerie/arkadia-zdroj/", + "stationLines": "", + "stationProject": "", + "stationHash": "147375b3", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "mieszana", + "controlType": "mechaniczne+SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Buk 2018", + "stationURL": "https://td2.info.pl/scenerie/buk2/", + "stationLines": "", + "stationProject": "", + "stationHash": "4983e8bf", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS-SPK", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 1, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Jordanowo", + "stationURL": "https://td2.info.pl/scenerie/jordanowo/", + "stationLines": "", + "stationProject": "", + "stationHash": "dcb27980", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "mieszana", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 3, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "LCS Głowno", + "stationURL": "https://td2.info.pl/scenerie/glowno-(linia-nr-15-lka)/", + "stationLines": "15", + "stationProject": "ŁKA", + "stationHash": "c876ed93", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "LCS Ozorków", + "stationURL": "https://td2.info.pl/scenerie/lcs-ozorkow/", + "stationLines": "16", + "stationProject": "ŁKA", + "stationHash": "c4de852a", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "LCS Skrzynki", + "stationURL": "https://td2.info.pl/scenerie/lcs-skrzynki/", + "stationLines": "25", + "stationProject": "ŁKA", + "stationHash": "46963c3a", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS-SPK", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Łask", + "stationURL": "https://td2.info.pl/scenerie/lask-w-ramach-lka/", + "stationLines": "14", + "stationProject": "ŁKA", + "stationHash": "1da6b1db", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "mechaniczne+SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Naterki", + "stationURL": "https://td2.info.pl/scenerie/naterki/", + "stationLines": "353", + "stationProject": "", + "stationHash": "672ad968", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne+SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Santok Zdrój", + "stationURL": "https://td2.info.pl/scenerie/santok-zdroj/", + "stationLines": "", + "stationProject": "", + "stationHash": "c876ed93", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Testowo", + "stationURL": "https://td2.info.pl/scenerie/testowo-3581", + "stationLines": "", + "stationProject": "", + "stationHash": "cfa1069a", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "TAK (szlak Sl)", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 1, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Tłoki", + "stationURL": "https://td2.info.pl/scenerie/podg-tloki", + "stationLines": "", + "stationProject": "", + "stationHash": "631aa683", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS-SPK", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Witaszyczki", + "stationURL": "https://td2.info.pl/scenerie/witaszyczki/", + "stationLines": "", + "stationProject": "", + "stationHash": "46963c3a", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Bydgowo", + "stationURL": "https://td2.info.pl/scenerie/bydgowo/", + "stationLines": "", + "stationProject": "", + "stationHash": "596cf99d", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "TAK (szlak SK)", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Głębce", + "stationURL": "https://td2.info.pl/scenerie/glebce", + "stationLines": "", + "stationProject": "", + "stationHash": "152274d7", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "ręczne+SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Hel", + "stationURL": "https://td2.info.pl/scenerie/hel/", + "stationLines": "213", + "stationProject": "", + "stationHash": "7baf7401", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Kcynia", + "stationURL": "https://td2.info.pl/scenerie/kcynia", + "stationLines": "281, 356", + "stationProject": "", + "stationHash": "a8b3c098", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 4 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Lewków", + "stationURL": "https://td2.info.pl/scenerie/lewkow/", + "stationLines": "", + "stationProject": "", + "stationHash": "ec92d52c", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "mieszana", + "controlType": "mechaniczne+SCS", + "SBL": "", + "twoWayBlock": "TAK (szlak Ks)", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Cis 2013", + "stationURL": "https://td2.info.pl/scenerie/cis2", + "stationLines": "", + "stationProject": "", + "stationHash": "0f8fe101", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Cis 2018", + "stationURL": "https://td2.info.pl/scenerie/cis2", + "stationLines": "", + "stationProject": "", + "stationHash": "9b0b6551", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS-SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Glinnik", + "stationURL": "https://td2.info.pl/scenerie/glinnik-(projekt-lka)/", + "stationLines": "15", + "stationProject": "ŁKA", + "stationHash": "3d3def6e", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Głogowo", + "stationURL": "https://td2.info.pl/scenerie/glogowo", + "stationLines": "", + "stationProject": "", + "stationHash": "6084e6e8", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Karszynek", + "stationURL": "https://td2.info.pl/scenerie/karszynek/", + "stationLines": "", + "stationProject": "", + "stationHash": "64b3977a", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "historyczna", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Imielin 2015", + "stationURL": "https://td2.info.pl/scenerie/imielin-2015", + "stationLines": "138", + "stationProject": "", + "stationHash": "13353c83", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "mechaniczne+SCS", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Kolsko", + "stationURL": "https://td2.info.pl/scenerie/kolsko/", + "stationLines": "", + "stationProject": "", + "stationHash": "fd9ba98c", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 3 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "LCS Bucz Wileński", + "stationURL": "https://td2.info.pl/scenerie/bucz-wilenski/", + "stationLines": "", + "stationProject": "", + "stationHash": "1e8e451a", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "TAK", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 1, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Lisiczki", + "stationURL": "https://td2.info.pl/scenerie/lisiczki", + "stationLines": "", + "stationProject": "", + "stationHash": "c3366fd2", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS-SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Łęczyca", + "stationURL": "https://td2.info.pl/scenerie/leczyca-projekt-lka/", + "stationLines": "16", + "stationProject": "ŁKA", + "stationHash": "da6ba7c6", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Poreńsk", + "stationURL": "https://td2.info.pl/scenerie/porensk/", + "stationLines": "", + "stationProject": "", + "stationHash": "4710695a", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Radowice", + "stationURL": "https://td2.info.pl/scenerie/radowice", + "stationLines": "", + "stationProject": "", + "stationHash": "53d8d684", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Witonia", + "stationURL": "https://td2.info.pl/scenerie/witonia-(projekt-lka)/", + "stationLines": "16", + "stationProject": "ŁKA", + "stationHash": "770a09de", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Wola", + "stationURL": "https://td2.info.pl/scenerie/wola/", + "stationLines": "", + "stationProject": "", + "stationHash": "864d8b89", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "mieszana", + "controlType": "mechaniczne+SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Zgierz Kontrewers", + "stationURL": "https://td2.info.pl/scenerie/zgierz-kontrewers-6172/", + "stationLines": "16", + "stationProject": "ŁKA", + "stationHash": "484f8aef", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": true + }, + { + "stationName": "Bargowice", + "stationURL": "https://td2.info.pl/scenerie/bargowice-4441/", + "stationLines": "", + "reqLevel": "10", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS-SPK", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Szklana Poręba", + "stationURL": "https://td2.info.pl/scenerie/szklana-poreba-gorna/", + "stationLines": "", + "reqLevel": "8", + "supportersOnly": "TAK", + "signalType": "współczesna", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Wschodna", + "stationURL": "https://td2.info.pl/scenerie/wschodna/", + "stationLines": "", + "reqLevel": "8", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Zabłocie", + "stationURL": "https://td2.info.pl/scenerie/zablocie-3896", + "stationLines": "", + "reqLevel": "8", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 1, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Zdroje", + "stationURL": "https://td2.info.pl/scenerie/zdroje", + "stationLines": "", + "reqLevel": "8", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Grzybowo", + "stationURL": "https://td2.info.pl/scenerie/grzybowo", + "stationLines": "", + "reqLevel": "6", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Zwardoń", + "stationURL": "https://td2.info.pl/scenerie/zwardon-4161", + "stationLines": "139", + "reqLevel": "6", + "supportersOnly": "TAK", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Piaskowo", + "stationURL": "https://td2.info.pl/scenerie/piaskowo/", + "stationLines": "", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "TAK", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Rajcza", + "stationURL": "https://td2.info.pl/scenerie/rajcza/", + "stationLines": "139", + "reqLevel": "4", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Brzezinka", + "stationURL": "https://td2.info.pl/scenerie/brzezinka/", + "stationLines": "", + "reqLevel": "3", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS-SPK", + "SBL": "", + "twoWayBlock": "TAK (szlak KSG)", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Torzyn", + "stationURL": "https://td2.info.pl/scenerie/torzyn/", + "stationLines": "", + "reqLevel": "3", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "TAK", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Wola Nowska", + "stationURL": "https://td2.info.pl/scenerie/wola-nowska//", + "stationLines": "", + "reqLevel": "3", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Chełmik Wołowski", + "stationURL": "https://td2.info.pl/scenerie/chelmik-wolowski//", + "stationLines": "", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Drzewko", + "stationURL": "https://td2.info.pl/w-trakcie-prac/drzewko/", + "stationLines": "", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Krzemienice", + "stationURL": "https://td2.info.pl/scenerie/krzemienice/", + "stationLines": "", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 3, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 1, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Milówka", + "stationURL": "https://td2.info.pl/scenerie/milowka/", + "stationLines": "139", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Orniki", + "stationURL": "https://td2.info.pl/scenerie/orniki/", + "stationLines": "", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 1, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Otwocko", + "stationURL": "https://td2.info.pl/scenerie/otwocko/", + "stationLines": "", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SCS", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Skostomłoty", + "stationURL": "https://td2.info.pl/w-trakcie-prac/skostomloty/", + "stationLines": "", + "reqLevel": "2", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Babimost", + "stationURL": "https://td2.info.pl/scenerie/babimost", + "stationLines": "358", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Czerepy", + "stationURL": "https://td2.info.pl/scenerie/czerepy/", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "TAK (szlak BO)", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Grabiny", + "stationURL": "https://td2.info.pl/scenerie/grabiny", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 2, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Kieły", + "stationURL": "https://td2.info.pl/scenerie/kiely-6224/", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Lutol Suchy", + "stationURL": "https://td2.info.pl/scenerie/lutol-suchy/", + "stationLines": "367", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Raki", + "stationURL": "https://td2.info.pl/scenerie/raki/", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Sieniawka", + "stationURL": "https://td2.info.pl/scenerie/sieniawka/", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 1 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 1 + } + }, + "default": false + }, + { + "stationName": "Stefanowo", + "stationURL": "https://td2.info.pl/scenerie/stefanowo/", + "stationLines": "359", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Szlichtyngowa", + "stationURL": "https://td2.info.pl/scenerie/szlichtyngowa//", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "TAK", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 0 + }, + "twoWay": { + "catenary": 2, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Tarnowo Górne", + "stationURL": "https://td2.info.pl/scenerie/tarnowo-gorne/", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "kształtowa", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Tartakowo 2013", + "stationURL": "https://td2.info.pl/w-trakcie-prac/tartakowo/", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "mieszana", + "controlType": "mechaniczne", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + }, + { + "stationName": "Wielgowo", + "stationURL": "https://td2.info.pl/scenerie/wielgowo/", + "stationLines": "", + "reqLevel": "0", + "supportersOnly": "NIE", + "signalType": "współczesna", + "controlType": "SPK", + "SBL": "", + "twoWayBlock": "", + "routes": { + "oneWay": { + "catenary": 0, + "noCatenary": 2 + }, + "twoWay": { + "catenary": 0, + "noCatenary": 0 + } + }, + "default": false + } +] \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index f253456..03c2bf0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,7 @@ import Vue from 'vue' import App from './App.vue' import router from './router' -import store from './store' +import store from './store/stations' Vue.config.productionTip = false diff --git a/src/store/index.ts b/src/store/index.ts index 332b916..ea4a9d6 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -5,11 +5,15 @@ Vue.use(Vuex) export default new Vuex.Store({ state: { + }, mutations: { + }, actions: { + }, modules: { + } }) diff --git a/src/store/stations.ts b/src/store/stations.ts new file mode 100644 index 0000000..a48bd38 --- /dev/null +++ b/src/store/stations.ts @@ -0,0 +1,97 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +import data from '@/data/stations.json'; + +Vue.use(Vuex) + +export default new Vuex.Store({ + state: { + stations: [], + trainCount: 0, + connectionState: 0, + errorMessage: "" + }, + actions: { + fetchStations: async ({ commit }) => { + let onlineStations, statusList: any, onlineTrains: any + + try { + onlineStations = (await (await fetch('https://api.td2.info.pl:9640/?method=getStationsOnline')).json()).message + statusList = (await (await fetch('https://api.td2.info.pl:9640/?method=readFromSWDR&value=getDispatcherStatusList%3B1')).json()).message + onlineTrains = (await (await fetch('https://api.td2.info.pl:9640/?method=getTrainsOnline')).json()).message + } catch (error) { + commit('setConnectionState', 1); + commit('setErrorMessage', error.message); + throw Error(error.message); + } + + commit('setTrainCount', onlineTrains.filter((train: any) => train.isOnline && train.region === 'eu').length); + + const mappedStations = onlineStations + .filter((station: any) => station.region === 'eu') + .filter((station: any) => station.isOnline) + .map(( + { stationName = '', stationHash = '', maxUsers = 0, currentUsers = 0, spawnString = '', + dispatcherRate = 0, dispatcherName = '', dispatcherExp = 0, dispatcherId = 0 }) => { + + const status = statusList.find((s: any) => s[0] === stationHash && s[1] === 'eu') + let occupiedTo: string = "---" + let occupiedTimestamp: number = 0 + + if (!status) + occupiedTo = "NIEZALOGOWANY"; + else { + let occupiedCode: number = status[2]; + + occupiedTimestamp = status[3]; + occupiedTo = "NIEDOSTĘPNY"; + + if (occupiedCode === 0) { + if (occupiedTimestamp - Date.now() > 21000000) + occupiedTo = "BEZ LIMITU"; + else + occupiedTo = new Date(status[3]) + .toLocaleTimeString('en-US', + { hour12: false, hour: '2-digit', minute: '2-digit' }); + } + + if (occupiedCode === 2 && occupiedTimestamp === 0) + occupiedTo = "KOŃCZY"; + } + + const trains: {} = onlineTrains.filter((train: any) => + train.region === 'eu' && train.isOnline === 1 && train.station.stationName === stationName) + + const stationData: {} = data.find((station: any) => station.stationName === stationName) || { stationName, stationURL: "" } + + return { + ...stationData, + stationHash, + maxUsers, + currentUsers, + spawnString: spawnString && spawnString.split(';').map(v => v.split(',')[6] ? v.split(',')[6] : v.split(',')[0]), + dispatcherName, + dispatcherRate, + dispatcherId, + dispatcherExp: dispatcherExp < 2 ? 'L' : dispatcherExp, + occupiedTo, + trains + } + }) + + commit('setStations', mappedStations); + commit('setConnectionState', 2); + } + }, + mutations: { + setStations: (state, stations) => state.stations = stations, + setTrainCount: (state, count) => state.trainCount = count, + setConnectionState: (state, connState) => state.connectionState = connState, + setErrorMessage: (state, message) => state.errorMessage = message + }, + getters: { + getStations: state => state.stations, + getTrainCount: state => state.trainCount + } +}) diff --git a/src/styles/responsive.scss b/src/styles/responsive.scss new file mode 100644 index 0000000..c2e67a0 --- /dev/null +++ b/src/styles/responsive.scss @@ -0,0 +1,11 @@ +@mixin midScreen() { + @media only screen and (min-width: 850px) { + @content; + } +} + +@mixin bigScreen() { + @media only screen and (min-width: 1600px) { + @content; + } +} diff --git a/src/styles/variables.scss b/src/styles/variables.scss new file mode 100644 index 0000000..f363152 --- /dev/null +++ b/src/styles/variables.scss @@ -0,0 +1,10 @@ +$primaryCol: #333; +$secondaryCol: #fdad17; + +$bgCol: #525252; + +$errorCol: #ff1919; +$warningCol: #ff975b; + +$accentCol: #ffbb00; +$accent2Col: #ff3d5d; diff --git a/src/views/Home.vue b/src/views/Home.vue index d515bae..6fc0978 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -2,8 +2,14 @@
Hello Vue!
- + + diff --git a/tsconfig.json b/tsconfig.json index b57578e..daa3f80 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,7 @@ "esModuleInterop": true, "allowSyntheticDefaultImports": true, "sourceMap": true, + "resolveJsonModule": true, "baseUrl": ".", "types": [ "webpack-env" @@ -36,4 +37,4 @@ "exclude": [ "node_modules" ] -} +} \ No newline at end of file