Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 3ae59f75

Přidáno uživatelem Jakub Vašta před asi 4 roky(ů)

+ popups
+ heatmap maximální intenzita

Zobrazit rozdíly:

website/public/css/style.css
1
@import url(https://fonts.googleapis.com/css2?family=Be+Vietnam:wght@400;600;700;800&display=swap);body,html{font-family:"Be Vietnam",sans-serif;color:#fff;position:relative;height:96.2%;background:#242c6b}@media (max-width:767.98px){body.intro,html.intro{height:auto}}header{height:70px;background:#0048a9}header .logo{width:450px;height:181px;position:absolute;top:70px;left:0;z-index:2;background:url(../img/header-bg.png)}@media (max-width:1400px){header .logo{display:none}}header .logo img{height:100px;position:relative;top:-50px;left:50px}header nav.navbar{height:70px;position:relative}header .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgb(255,255,255)' stroke-width='3' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E")}@media (min-width:1401px){header .navbar-brand.shifted{position:absolute;top:0;left:450px}}@media (max-width:1199.98px){header .navbar-brand.shifted{left:20px}}@media (max-width:991.98px){header #navigation{width:100%;padding:20px;position:absolute;top:70px;left:0;z-index:1001;opacity:.9;background:#004fb3}}header .nav-item{margin-right:40px}@media (max-width:1480px){header .nav-item{margin-right:30px}}@media (max-width:1440px){header .nav-item{margin-right:15px}}@media (max-width:1199.98px){header .nav-item{margin-right:30px}}@media (max-width:991.98px){header .nav-item{margin-right:0}}header .nav-item .active{font-weight:800}header .nav-item.button .nav-link{padding-left:22px;padding-right:22px;border:1px solid #fff;border-radius:20px}header .nav-item.button .nav-link:hover{background:#004fb3}header .navbar-button{padding:.5rem 22px;margin-right:40px;border:1px solid #fff;border-radius:20px;text-decoration:none}@media (max-width:991.98px){header .navbar-button{display:none}}header .navbar-button:hover{background:#004fb3}header .btn-secondary{height:100%;font-size:16px;text-transform:uppercase;font-weight:800;letter-spacing:.4px;border-radius:0;border:#0048a9;background:#004fb3}header .btn-secondary:hover{background:#0048a9!important}@media (max-width:991.98px){header.map .navbar-nav{width:100%}}header.map form{display:-webkit-box;display:-ms-flexbox;display:flex}header.map label{margin:0 0 0 15px;font-size:16px;font-weight:800;letter-spacing:.4px}header.map .custom-select,header.map input{letter-spacing:.4px;color:#fff;border-color:#0048a9;background:#0048a9}header.map .custom-select:hover,header.map input:hover{background:#004fb3}header.map .nav-item{margin:0;border-right:1px solid #1c6cc0}@media (max-width:991.98px){header.map .nav-item{margin-bottom:20px;border:0}}header.map .nav-item:nth-of-type(1){margin-left:100px}@media (max-width:1199.98px){header.map .nav-item:nth-of-type(1){margin-left:0}}header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){width:300px}@media (max-width:1500px){header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){width:280px}}@media (max-width:1400px){header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){width:230px}}@media (max-width:1400px){header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){max-width:230px;width:auto}}@media (max-width:991.98px){header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){max-width:none}}header.map .nav-item:last-of-type{display:none;border:0}@media (max-width:991.98px){header.map .nav-item:last-of-type{display:block;width:100%;margin:30px 10px 0 0}header.map .nav-item:last-of-type h2{width:100%}}@media (max-width:991.98px){header.map .nav-item .btn{width:100%}}h1{text-transform:uppercase;font-size:21px;font-weight:700;letter-spacing:.53px}@media (min-width:992px){h1{line-height:55px}}h2{font-size:16px;font-weight:400;letter-spacing:.4px}@media (min-width:992px){h2{margin:0}}h3{font-size:38px;font-weight:800;letter-spacing:.95px}@media (max-width:575.98px){h3{font-size:28px}}a{color:#fff;outline:0}a:hover{color:#fff}hr{width:300px;text-align:left;margin:30px 0;border-top:2px solid #fff}@media (max-width:1199.98px){hr{width:90%}}@media (max-width:575.98px){hr{margin:15px 0}}.swiper-container{height:100%;position:relative}.swiper-slide{z-index:-1000;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swiper-slide.slide-bg-1{background:url(../img/bg-1.jpg) no-repeat bottom center;background-size:cover}.swiper-slide.slide-bg-2{background:url(../img/bg-2.jpg) no-repeat bottom center;background-size:cover}.swiper-slide.slide-bg-3{background:url(../img/bg-3.jpg) no-repeat bottom center;background-size:cover}.swiper-slide.slide-bg-3 .slide-text{width:100%}.slide-text{width:600px;padding-bottom:160px;position:relative}@media (max-width:1199.98px){.slide-text{width:100%}}@media (max-width:1199.98px){.slide-text{padding-bottom:80px}}.slide-text .slide-index{display:inline-block;padding-bottom:20px;font-size:72px;font-weight:800}@media (max-width:575.98px){.slide-text .slide-index{padding-bottom:10px;font-size:48px}}.slide-text .btn-primary:after{content:"";display:inline-block;width:10px;height:16px;position:absolute;top:16px;right:20px;background:url(../img/btn-play.svg) no-repeat top right}.slide-text p{font-size:18px;font-weight:600}@media (max-width:575.98px){.slide-text p{font-size:16px}}.slide-text p a{text-decoration:underline}.slide-text p a:hover{text-decoration:none}.swiper-pagination-buttons{width:200px;height:56px;padding:6px;position:absolute;right:150px;bottom:20px;z-index:1;border-radius:100px;background:#0b155a}@media (max-width:1199.98px){.swiper-pagination-buttons{right:20px}}@media (max-width:767.98px){.swiper-pagination-buttons{width:120px}}.swiper-pagination-buttons .btn-next,.swiper-pagination-buttons .btn-prev{display:inline-block;width:45px;height:45px;position:relative;border-radius:50%;border:2px solid #fff}.swiper-pagination-buttons .btn-next:after,.swiper-pagination-buttons .btn-prev:after{content:"";display:inline-block;width:7px;height:12px;position:absolute;top:calc(50% - 6px);left:calc(50% - 4px)}.swiper-pagination-buttons .btn-prev:after{background:url(../img/btn-prev.svg) no-repeat top right}.swiper-pagination-buttons .btn-next{float:right}.swiper-pagination-buttons .btn-next:after{background:url(../img/btn-next.svg) no-repeat top right}.swiper-pagination-bullets{display:inline-block;width:auto!important;height:30px;position:absolute;left:20px!important;bottom:30px!important;border-radius:100px;opacity:.8;background:#0b155a}@media (min-width:992px){.swiper-pagination-bullets{left:50%!important;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}}@media (max-width:575.98px){.swiper-pagination-bullets{display:none}}.swiper-pagination-bullets:before{content:"";width:100px;position:absolute;top:13px;left:15px;z-index:1;border-top:2px solid #fff}.swiper-pagination-bullets .swiper-pagination-bullet{width:20px;height:20px;position:relative;margin:4px 15px!important;opacity:1;border:2px solid #0b155a;background:#0b155a}.swiper-pagination-bullets .swiper-pagination-bullet:before{content:"";display:inline-block;width:6px;height:6px;position:absolute;top:5px;left:5px;border-radius:50%;background:#fff}.swiper-pagination-bullets .swiper-pagination-bullet:first-of-type{margin-left:5px!important}.swiper-pagination-bullets .swiper-pagination-bullet:last-of-type{margin-right:5px!important}.swiper-pagination-bullets .swiper-pagination-bullet-active{border:2px solid #fff}.btn-primary{width:300px;height:50px;line-height:32px;position:relative;padding-left:30px;margin-top:40px;text-align:left;font-size:16px;text-transform:uppercase;letter-spacing:.4px;border-radius:30px;border:1px solid #0b155a;background:#0b155a}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{border:1px solid #0048a9;background:#0048a9!important}@media (max-width:575.98px){.btn-primary{width:100%;max-width:270px;height:auto;margin-top:20px}}.btn-secondary{background:#0b155a}.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover{background:#7378a0!important}.map-point{width:50px;height:50px;z-index:1;position:absolute;border-radius:50%;cursor:pointer;border:2px solid #fff}@media (max-width:767.98px){.map-point{display:none}}.map-point:before{content:"";display:inline-block;width:16px;height:16px;position:absolute;top:calc(50% - 8px);left:calc(50% - 8px);background:url(../img/map-point-plus.svg) no-repeat}.map-point:hover:before{z-index:1;top:calc(50% - 1px);background:url(../img/map-point-minus.svg) no-repeat}.map-point:hover .desc{display:block;width:210px;padding:10px 20px;z-index:0;opacity:.75;border-radius:25px 0 25px 0;background:#0b155a}.map-point .desc{display:none}.map-point p{font-size:14px;font-weight:400}.map-point p:last-of-type{margin-bottom:10px}.map-point strong{display:inline-block;width:100%;padding:0 0 20px 40px;font-size:16px}.map-point .circle{width:50px;height:50px;position:absolute;top:-2px;left:-2px;border-radius:50%;border:2px solid #fff}.map-point.point-1{bottom:12%;right:-75%}.map-point.point-2{top:21%;right:-92%}.map-point.point-3{top:22%;right:-92%}#heatmap{height:100%}.map-locations{position:absolute;top:105px;right:50px;z-index:1000;border-radius:22px;background-color:rgba(11,21,90,.7)}@media (max-width:991.98px){.map-locations{top:90px;right:20px}}.map-locations .menu{display:inline-block;position:relative;padding:10px 60px 13px 16px;text-decoration:none;border-radius:50px;opacity:1;background:#0b155a}@media (max-width:575.98px){.map-locations .menu{min-width:280px;width:100%;padding-bottom:16px;font-size:14px}}.map-locations .menu .circle{display:inline-block;width:40px;height:40px;position:absolute;top:3px;right:3px;border-radius:50%;border:2px solid #fff}.map-locations .menu .circle:after{content:"";display:inline-block;width:16px;height:16px;position:absolute;top:calc(50% - 8px);left:calc(50% - 8px);background:url(../img/map-point-plus.svg) no-repeat}.map-locations .locations{z-index:1000}.map-locations .locations ul{margin-top:10px;padding-left:36px;padding-right:20px;font-size:15px;list-style-image:url(../img/li-bullet.svg)}@media (max-width:575.98px){.map-locations .locations ul{font-size:13.5px}}.map-locations .locations li{margin-bottom:10px;cursor:pointer}.player{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);bottom:-40px;z-index:1000}@media (max-width:575.98px){.player{bottom:-30px}}.player .next,.player .pause,.player .play,.player .prev{display:inline-block;width:42px;height:42px;margin-right:20px;position:relative;border-radius:50%;opacity:.7;border:2px solid #fff;-webkit-box-shadow:0 0 0 4px #0b155a;box-shadow:0 0 0 4px #0b155a;background:#0b155a;cursor:pointer}.player .next:hover,.player .pause:hover,.player .play:hover,.player .prev:hover{opacity:1}.player .next:after,.player .pause:after,.player .play:after,.player .prev:after{content:"";display:inline-block;width:7px;height:12px;position:absolute;top:calc(50% - 6px);left:calc(50% - 4px)}.player .pause,.player .play{width:57px;height:57px;opacity:1}.player .pause:hover,.player .play:hover{opacity:.7}.player .pause:after,.player .play:after{width:10px;height:16px;top:calc(50% - 8px)}.player .play:after{left:calc(50% - 2px);background:url(../img/btn-play.svg) no-repeat}.player .pause:after{left:calc(50% - 4px);background:url(../img/btn-pause.png) no-repeat}.player .next:after{background:url(../img/btn-next.svg) no-repeat}.player .prev:after{background:url(../img/btn-prev.svg) no-repeat}.player .timeline{display:-webkit-box;display:-ms-flexbox;display:flex;height:30px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;position:relative;padding:0 10px;border-radius:100px;background-color:rgba(11,21,90,.7)}@media (max-width:991.98px){.player .timeline{padding:0}}@media (max-width:991.98px){.player .timeline .hour{display:none}}.player .timeline .hour:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#fff}.player .timeline .hour:after{content:"";display:inline-block;position:relative;top:-2px;width:20px;height:2px;background:#fff}.player .timeline .end-dot:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#fff}@media (max-width:991.98px){.player .timeline .end-dot:before{display:none}}.player .time{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:64px;font-size:15px;padding:3px 0 4px 0;z-index:1000;border-radius:15px;background:#0b155a}@media (min-width:992px){.player .time{position:absolute}.player .time.hour-0{left:0}.player .time.hour-1{left:25px}.player .time.hour-2{left:50px}.player .time.hour-3{left:75px}.player .time.hour-4{left:100px}.player .time.hour-5{left:125px}.player .time.hour-6{left:150px}.player .time.hour-7{left:175px}.player .time.hour-8{left:200px}.player .time.hour-9{left:225px}.player .time.hour-10{left:250px}.player .time.hour-11{left:275px}.player .time.hour-12{left:300px}.player .time.hour-13{left:325px}.player .time.hour-14{left:350px}.player .time.hour-15{left:375px}.player .time.hour-16{left:400px}.player .time.hour-17{left:425px}.player .time.hour-18{left:450px}.player .time.hour-19{left:475px}.player .time.hour-20{left:500px}.player .time.hour-21{left:525px}.player .time.hour-22{left:550px}.player .time.hour-23{left:585px}}.slide-background{width:650px;height:290px;z-index:1;position:absolute;bottom:0;left:0;background:url(../img/footer-bg.svg) no-repeat}@media (max-width:575.98px){.slide-background{width:320px;height:143px;background-size:100%}}div.copyright p{font-weight:400}div.copyright span{font-size:17px}p.logos-partners{margin-top:40px;text-align:right}p.logos-partners a{text-decoration:none}p.logos-partners a img{margin-left:50px;height:80px}@media only screen and (max-width:430px){p.logos-partners a img{height:70px;margin-left:0}}@media only screen and (max-width:340px){p.logos-partners a img{height:60px}}p.logos-partners a:first-of-type img{margin-left:0}
1
@import url(https://fonts.googleapis.com/css2?family=Be+Vietnam:wght@400;600;700;800&display=swap);body,html{font-family:"Be Vietnam",sans-serif;color:#fff;position:relative;height:96.2%;background:#242c6b}@media (max-width:767.98px){body.intro,html.intro{height:auto}}header{height:70px;background:#0048a9}header .logo{width:450px;height:181px;position:absolute;top:70px;left:0;z-index:2;background:url(../img/header-bg.png)}@media (max-width:1400px){header .logo{display:none}}header .logo img{height:100px;position:relative;top:-50px;left:50px}header nav.navbar{height:70px;position:relative}header .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgb(255,255,255)' stroke-width='3' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E")}@media (min-width:1401px){header .navbar-brand.shifted{position:absolute;top:0;left:450px}}@media (max-width:1199.98px){header .navbar-brand.shifted{left:20px}}@media (max-width:991.98px){header #navigation{width:100%;padding:20px;position:absolute;top:70px;left:0;z-index:1001;opacity:.9;background:#004fb3}}header .nav-item{margin-right:40px}@media (max-width:1480px){header .nav-item{margin-right:30px}}@media (max-width:1440px){header .nav-item{margin-right:15px}}@media (max-width:1199.98px){header .nav-item{margin-right:30px}}@media (max-width:991.98px){header .nav-item{margin-right:0}}header .nav-item .active{font-weight:800}header .nav-item.button .nav-link{padding-left:22px;padding-right:22px;border:1px solid #fff;border-radius:20px}header .nav-item.button .nav-link:hover{background:#004fb3}header .navbar-button{padding:.5rem 22px;margin-right:40px;border:1px solid #fff;border-radius:20px;text-decoration:none}@media (max-width:991.98px){header .navbar-button{display:none}}header .navbar-button:hover{background:#004fb3}header .btn-secondary{height:100%;font-size:16px;text-transform:uppercase;font-weight:800;letter-spacing:.4px;border-radius:0;border:#0048a9;background:#004fb3}header .btn-secondary:hover{background:#0048a9!important}@media (max-width:991.98px){header.map .navbar-nav{width:100%}}header.map form{display:-webkit-box;display:-ms-flexbox;display:flex}header.map label{margin:0 0 0 15px;font-size:16px;font-weight:800;letter-spacing:.4px}header.map .custom-select,header.map input{letter-spacing:.4px;color:#fff;border-color:#0048a9;background:#0048a9}header.map .custom-select:hover,header.map input:hover{background:#004fb3}header.map .nav-item{margin:0;border-right:1px solid #1c6cc0}@media (max-width:991.98px){header.map .nav-item{margin-bottom:20px;border:0}}header.map .nav-item:nth-of-type(1){margin-left:100px}@media (max-width:1199.98px){header.map .nav-item:nth-of-type(1){margin-left:0}}header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){width:300px}@media (max-width:1500px){header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){width:280px}}@media (max-width:1400px){header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){width:230px}}@media (max-width:1400px){header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){max-width:230px;width:auto}}@media (max-width:991.98px){header.map .nav-item:nth-of-type(1),header.map .nav-item:nth-of-type(2),header.map .nav-item:nth-of-type(3){max-width:none}}header.map .nav-item:last-of-type{display:none;border:0}@media (max-width:991.98px){header.map .nav-item:last-of-type{display:block;width:100%;margin:30px 10px 0 0}header.map .nav-item:last-of-type h2{width:100%}}@media (max-width:991.98px){header.map .nav-item .btn{width:100%}}h1{text-transform:uppercase;font-size:21px;font-weight:700;letter-spacing:.53px}@media (min-width:992px){h1{line-height:55px}}h2{font-size:16px;font-weight:400;letter-spacing:.4px}@media (min-width:992px){h2{margin:0}}h3{font-size:38px;font-weight:800;letter-spacing:.95px}@media (max-width:575.98px){h3{font-size:28px}}a{color:#fff;outline:0}a:hover{color:#fff}hr{width:300px;text-align:left;margin:30px 0;border-top:2px solid #fff}@media (max-width:1199.98px){hr{width:90%}}@media (max-width:575.98px){hr{margin:15px 0}}.swiper-container{height:100%;position:relative}.swiper-slide{z-index:-1000;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swiper-slide.slide-bg-1{background:url(../img/bg-1.jpg) no-repeat bottom center;background-size:cover}.swiper-slide.slide-bg-2{background:url(../img/bg-2.jpg) no-repeat bottom center;background-size:cover}.swiper-slide.slide-bg-3{background:url(../img/bg-3.jpg) no-repeat bottom center;background-size:cover}.swiper-slide.slide-bg-3 .slide-text{width:100%}.slide-text{width:600px;padding-bottom:160px;position:relative}@media (max-width:1199.98px){.slide-text{width:100%}}@media (max-width:1199.98px){.slide-text{padding-bottom:80px}}.slide-text .slide-index{display:inline-block;padding-bottom:20px;font-size:72px;font-weight:800}@media (max-width:575.98px){.slide-text .slide-index{padding-bottom:10px;font-size:48px}}.slide-text .btn-primary:after{content:"";display:inline-block;width:10px;height:16px;position:absolute;top:16px;right:20px;background:url(../img/btn-play.svg) no-repeat top right}.slide-text p{font-size:18px;font-weight:600}@media (max-width:575.98px){.slide-text p{font-size:16px}}.slide-text p a{text-decoration:underline}.slide-text p a:hover{text-decoration:none}.swiper-pagination-buttons{width:200px;height:56px;padding:6px;position:absolute;right:150px;bottom:20px;z-index:1;border-radius:100px;background:#0b155a}@media (max-width:1199.98px){.swiper-pagination-buttons{right:20px}}@media (max-width:767.98px){.swiper-pagination-buttons{width:120px}}.swiper-pagination-buttons .btn-next,.swiper-pagination-buttons .btn-prev{display:inline-block;width:45px;height:45px;position:relative;border-radius:50%;border:2px solid #fff}.swiper-pagination-buttons .btn-next:after,.swiper-pagination-buttons .btn-prev:after{content:"";display:inline-block;width:7px;height:12px;position:absolute;top:calc(50% - 6px);left:calc(50% - 4px)}.swiper-pagination-buttons .btn-prev:after{background:url(../img/btn-prev.svg) no-repeat top right}.swiper-pagination-buttons .btn-next{float:right}.swiper-pagination-buttons .btn-next:after{background:url(../img/btn-next.svg) no-repeat top right}.swiper-pagination-bullets{display:inline-block;width:auto!important;height:30px;position:absolute;left:20px!important;bottom:30px!important;border-radius:100px;opacity:.8;background:#0b155a}@media (min-width:992px){.swiper-pagination-bullets{left:50%!important;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}}@media (max-width:575.98px){.swiper-pagination-bullets{display:none}}.swiper-pagination-bullets:before{content:"";width:100px;position:absolute;top:13px;left:15px;z-index:1;border-top:2px solid #fff}.swiper-pagination-bullets .swiper-pagination-bullet{width:20px;height:20px;position:relative;margin:4px 15px!important;opacity:1;border:2px solid #0b155a;background:#0b155a}.swiper-pagination-bullets .swiper-pagination-bullet:before{content:"";display:inline-block;width:6px;height:6px;position:absolute;top:5px;left:5px;border-radius:50%;background:#fff}.swiper-pagination-bullets .swiper-pagination-bullet:first-of-type{margin-left:5px!important}.swiper-pagination-bullets .swiper-pagination-bullet:last-of-type{margin-right:5px!important}.swiper-pagination-bullets .swiper-pagination-bullet-active{border:2px solid #fff}.btn-primary{width:300px;height:50px;line-height:32px;position:relative;padding-left:30px;margin-top:40px;text-align:left;font-size:16px;text-transform:uppercase;letter-spacing:.4px;border-radius:30px;border:1px solid #0b155a;background:#0b155a}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{border:1px solid #0048a9;background:#0048a9!important}@media (max-width:575.98px){.btn-primary{width:100%;max-width:270px;height:auto;margin-top:20px}}.btn-secondary{background:#0b155a}.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover{background:#7378a0!important}.map-point{width:50px;height:50px;z-index:1;position:absolute;border-radius:50%;cursor:pointer;border:2px solid #fff}@media (max-width:767.98px){.map-point{display:none}}.map-point:before{content:"";display:inline-block;width:16px;height:16px;position:absolute;top:calc(50% - 8px);left:calc(50% - 8px);background:url(../img/map-point-plus.svg) no-repeat}.map-point:hover:before{z-index:1;top:calc(50% - 1px);background:url(../img/map-point-minus.svg) no-repeat}.map-point:hover .desc{display:block;width:210px;padding:10px 20px;z-index:0;opacity:.75;border-radius:25px 0 25px 0;background:#0b155a}.map-point .desc{display:none}.map-point p{font-size:14px;font-weight:400}.map-point p:last-of-type{margin-bottom:10px}.map-point strong{display:inline-block;width:100%;padding:0 0 20px 40px;font-size:16px}.map-point .circle{width:50px;height:50px;position:absolute;top:-2px;left:-2px;border-radius:50%;border:2px solid #fff}.map-point.point-1{bottom:12%;right:-75%}.map-point.point-2{top:21%;right:-92%}.map-point.point-3{top:22%;right:-92%}#heatmap{height:100%}.map-locations{position:absolute;top:105px;right:50px;z-index:1000;border-radius:22px;background-color:rgba(11,21,90,.7)}@media (max-width:991.98px){.map-locations{top:90px;right:20px}}.map-locations .menu{display:inline-block;position:relative;padding:10px 60px 13px 16px;text-decoration:none;border-radius:50px;opacity:1;background:#0b155a}@media (max-width:575.98px){.map-locations .menu{min-width:280px;width:100%;padding-bottom:16px;font-size:14px}}.map-locations .menu .circle{display:inline-block;width:40px;height:40px;position:absolute;top:3px;right:3px;border-radius:50%;border:2px solid #fff}.map-locations .menu .circle:after{content:"";display:inline-block;width:16px;height:16px;position:absolute;top:calc(50% - 8px);left:calc(50% - 8px);background:url(../img/map-point-plus.svg) no-repeat}.map-locations .locations{z-index:1000}.map-locations .locations ul{margin-top:10px;padding-left:36px;padding-right:20px;font-size:15px;list-style-image:url(../img/li-bullet.svg)}@media (max-width:575.98px){.map-locations .locations ul{font-size:13.5px}}.map-locations .locations li{margin-bottom:10px;cursor:pointer}.player{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);bottom:-40px;z-index:1000}@media (max-width:575.98px){.player{bottom:-30px}}.player .next,.player .pause,.player .play,.player .prev{display:inline-block;width:42px;height:42px;margin-right:20px;position:relative;border-radius:50%;opacity:.7;border:2px solid #fff;-webkit-box-shadow:0 0 0 4px #0b155a;box-shadow:0 0 0 4px #0b155a;background:#0b155a;cursor:pointer}.player .next:hover,.player .pause:hover,.player .play:hover,.player .prev:hover{opacity:1}.player .next:after,.player .pause:after,.player .play:after,.player .prev:after{content:"";display:inline-block;width:7px;height:12px;position:absolute;top:calc(50% - 6px);left:calc(50% - 4px)}.player .pause,.player .play{width:57px;height:57px;opacity:1}.player .pause:hover,.player .play:hover{opacity:.7}.player .pause:after,.player .play:after{width:10px;height:16px;top:calc(50% - 8px)}.player .play:after{left:calc(50% - 2px);background:url(../img/btn-play.svg) no-repeat}.player .pause:after{left:calc(50% - 4px);background:url(../img/btn-pause.png) no-repeat}.player .next:after{background:url(../img/btn-next.svg) no-repeat}.player .prev:after{background:url(../img/btn-prev.svg) no-repeat}.player .timeline{display:-webkit-box;display:-ms-flexbox;display:flex;height:30px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;position:relative;padding:0 10px;border-radius:100px;background-color:rgba(11,21,90,.7)}@media (max-width:991.98px){.player .timeline{padding:0}}@media (max-width:991.98px){.player .timeline .hour{display:none}}.player .timeline .hour:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#fff}.player .timeline .hour:after{content:"";display:inline-block;position:relative;top:-2px;width:20px;height:2px;background:#fff}.player .timeline .end-dot:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#fff}@media (max-width:991.98px){.player .timeline .end-dot:before{display:none}}.player .time{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:64px;font-size:15px;padding:3px 0 4px 0;z-index:1000;border-radius:15px;background:#0b155a}@media (min-width:992px){.player .time{position:absolute}.player .time.hour-0{left:0}.player .time.hour-1{left:25px}.player .time.hour-2{left:50px}.player .time.hour-3{left:75px}.player .time.hour-4{left:100px}.player .time.hour-5{left:125px}.player .time.hour-6{left:150px}.player .time.hour-7{left:175px}.player .time.hour-8{left:200px}.player .time.hour-9{left:225px}.player .time.hour-10{left:250px}.player .time.hour-11{left:275px}.player .time.hour-12{left:300px}.player .time.hour-13{left:325px}.player .time.hour-14{left:350px}.player .time.hour-15{left:375px}.player .time.hour-16{left:400px}.player .time.hour-17{left:425px}.player .time.hour-18{left:450px}.player .time.hour-19{left:475px}.player .time.hour-20{left:500px}.player .time.hour-21{left:525px}.player .time.hour-22{left:550px}.player .time.hour-23{left:585px}}.slide-background{width:650px;height:290px;z-index:1;position:absolute;bottom:0;left:0;background:url(../img/footer-bg.svg) no-repeat}@media (max-width:575.98px){.slide-background{width:320px;height:143px;background-size:100%}}div.copyright p{font-weight:400}div.copyright span{font-size:17px}p.logos-partners{margin-top:40px;text-align:right}p.logos-partners a{text-decoration:none}p.logos-partners a img{margin-left:50px;height:80px}@media only screen and (max-width:430px){p.logos-partners a img{height:70px;margin-left:0}}@media only screen and (max-width:340px){p.logos-partners a img{height:60px}}p.logos-partners a:first-of-type img{margin-left:0}.leaflet-popup-content-wrapper, .leaflet-popup-tip{background-color: #0b155a !important; color:white} .popup-controls {display: flex; margin: 1em 0 1em 0 } #previous-info-btn, #next-info-btn {background-color: #0b155a; color: white; border-radius: 50%} #count-info {background-color: #0b155a; color: white; margin: auto}
website/public/js/zcu-heatmap.js
23 23
    attribution: '',
24 24
    maxZoom: 19
25 25
  }).addTo(mymap);
26

  
27
  mymap.on('click', showInfo);
28

  
26 29
}
27 30

  
31
var info = [];
32
var currenInfo = 0;
33
var infoLength = 0;
34

  
35
function showInfo(e) {
36

  
37
  info = []
38
  currenInfo = 0;
39

  
40
  // https://wiki.openstreetmap.org/wiki/Zoom_levels
41
  // Todo change to variable - it is used in heatmap init
42
  var stile =  40075016.686 * Math.cos(startX) / Math.pow(2, mymap.getZoom()) ;
43
  var radius = 25 * stile / 256;
44

  
45
  var i = 0;
46
  var lat = 0;
47
  var lng = 0;
48

  
49
  data[currentTime]['items'].forEach(element => {
50
    if (e.latlng.distanceTo(new L.LatLng(element.x, element.y)) < radius) {
51
      lat += element.x
52
      lng += element.y;
53
      info[i] = {'place' : element.place, 'number' : element.number};
54
      i++;
55
    }
56
  });
57

  
58
  
59
  if (info.length > 0) {
60
    var popup = L.popup()
61
                  .setLatLng([lat / i, lng / i])
62
                  .setContent('<div id=\'place-info\'>Umístění: ' + info[currenInfo].place + '</div>' +
63
                              '<div id=\'number-info\'>Počet: ' + info[currenInfo].number + '</div>' +
64
                              '<div class=\'popup-controls\'>' +
65
                                '<button id=\'previous-info-btn\' onclick=\'previousInfo()\'>&lt</button>' +
66
                                '<div id=\'count-info\'>' + (currenInfo + 1) + '/' + info.length + '</div>' +
67
                                '<button id=\'next-info-btn\' onclick=\'nextInfo()\'>&gt</button>' +
68
                              '</div>'
69
                              )
70
                  .openOn(mymap);
71
    
72
    if (info.length == 1) {
73
      $('#previous-info-btn').prop('disabled', true);
74
      $('#next-info-btn').prop('disabled', true);
75
      $('.popup-controls').hide();
76
    }
77
  }
78

  
79
}
80

  
81
function previousInfo() {
82
  currenInfo = (currenInfo + info.length - 1) % info.length;
83
  displayInfoText();
84
}
85

  
86
function nextInfo() {
87
  currenInfo = (currenInfo + 1) % info.length
88
  displayInfoText();
89
}
90

  
91
function displayInfoText() {
92
  $('#place-info').html('Umístění: ' + info[currenInfo].place)
93
  $('#number-info').html('Počet: ' + info[currenInfo].number)
94
  $('#count-info').html(currenInfo + 1 + '/' + info.length);
95
}
28 96

  
29 97
function setMapView(latitude = startX, longitude = startY, zoom = startZoom) {
30 98
  mymap.setView([latitude, longitude], zoom);
......
37 105
    $('#play-pause').attr('class', 'pause');
38 106
    timer = setInterval(
39 107
      function() {
108
        mymap.closePopup();
40 109
        next();
41 110
      },
42 111
      800
......
109 178
}
110 179

  
111 180

  
112
function drawHeatmap(points) {
181
function drawHeatmap(data) {
113 182

  
114 183
  // Todo still switched
115
  if (points != null) {
116
    points = points.map(function (p) { return [p['x'], p['y'], p['number']]; });
184
  if (data['items'] != null) {
185
    points = data['items'].map(function (p) { return [p['x'], p['y'], p['number']]; });
117 186
    if (heatmapLayer != null) {
118 187
      mymap.removeLayer(heatmapLayer);
119 188
    }
120
    heatmapLayer = L.heatLayer(points).addTo(mymap);
189
    heatmapLayer = L.heatLayer(points, {'max' : data['max'], 'minOpacity' : 0.5}).addTo(mymap);
121 190
  }
122 191
  else {
123 192
    if (heatmapLayer != null) {
website/src/Controller/HeatmapController.php
40 40
     * @Route("heatmap/opendata/{name}/{date}/{time}", name="opendata")
41 41
     */
42 42
    public function opendata(IOpenDataManager $manager, $name = 'NONE', $date = '01012020', $time = '1') {
43
        return $this->json($manager->getCollectionDataByName($name, $date, $time));
43
        return $this->json([
44
            'items' => $manager->getCollectionDataByName($name, $date, $time),
45
            'max' => $manager->getMaxCollectionNumberAtDay($name, $date),
46
        ]);
44 47
    }
45 48

  
46 49
    /**
website/src/OpenDataManager.php
58 58

  
59 59
        return $availableInDate;
60 60
    }
61

  
62
    public function getMaxCollectionNumberAtDay($name, $date) {
63
        $max = $this->manager->executeQuery('open-data-db.'.$name.$date, new Query([], ['sort' => ['number' => -1], 'limit' => 1]));
64

  
65
        $max->setTypeMap([
66
            'array' => 'array',
67
            'document' => 'array',
68
            'root' => 'array',
69
        ]);
70

  
71
        return $max->toArray()[0]['number'];
72
    }
61 73
}
website/src/Utils/Utils.php
4 4

  
5 5
class Utils {
6 6
    public static function prepareDatasetsNames($datasets) {
7
        $names;
7
        $names = [];
8 8

  
9 9
        $index = 0;
10 10
        foreach ($datasets as $key => $value) {

Také k dispozici: Unified diff