23 changed files with 20925 additions and 0 deletions
-
69src/main/resources/static/assets/css/MarkerCluster.Default.css
-
14src/main/resources/static/assets/css/MarkerCluster.css
-
730src/main/resources/static/assets/css/component.css
-
4src/main/resources/static/assets/css/font-awesome.min.css
-
1281src/main/resources/static/assets/css/jquery.mCustomScrollbar.css
-
772src/main/resources/static/assets/css/leaflet.css
-
536src/main/resources/static/assets/css/linearicons.css
-
612src/main/resources/static/assets/css/pcoded-horizontal.min.css
-
1src/main/resources/static/assets/css/style.css
-
735src/main/resources/static/assets/css/swiper-bundle.min.css
-
435src/main/resources/static/assets/css/viewer.min.css
-
68src/main/resources/static/assets/files/assets/css/MarkerCluster.Default.css
-
14src/main/resources/static/assets/files/assets/css/MarkerCluster.css
-
772src/main/resources/static/assets/files/assets/css/leaflet.css
-
735src/main/resources/static/assets/files/assets/css/swiper-bundle.min.css
-
435src/main/resources/static/assets/files/assets/css/viewer.min.css
-
3618src/main/resources/static/assets/files/assets/js/leaflet.js
-
589src/main/resources/static/assets/files/assets/js/leaflet.markercluster.js
-
911src/main/resources/static/assets/files/assets/js/viewer.min.js
-
3618src/main/resources/static/assets/js/leaflet.js
-
589src/main/resources/static/assets/js/leaflet.markercluster.js
-
911src/main/resources/static/assets/js/viewer.min.js
-
3476src/main/resources/templates/counter/counter-booking_copy24032025.html
@ -0,0 +1,69 @@ |
|||||
|
|
||||
|
.marker-cluster-small { |
||||
|
background-color: rgba(181, 226, 140, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-small div { |
||||
|
background-color: rgba(110, 204, 57, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-medium { |
||||
|
background-color: rgba(241, 211, 87, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-medium div { |
||||
|
background-color: rgba(240, 194, 12, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-large { |
||||
|
background-color: rgba(253, 156, 115, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-large div { |
||||
|
background-color: rgba(241, 128, 23, 0.6); |
||||
|
} |
||||
|
|
||||
|
/* IE 6-8 fallback colors */ |
||||
|
.leaflet-oldie .marker-cluster-small { |
||||
|
background-color: rgb(181, 226, 140); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-small div { |
||||
|
background-color: rgb(110, 204, 57); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-medium { |
||||
|
background-color: rgb(241, 211, 87); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-medium div { |
||||
|
background-color: rgb(240, 194, 12); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-large { |
||||
|
background-color: rgb(253, 156, 115); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-large div { |
||||
|
background-color: rgb(241, 128, 23); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster { |
||||
|
background-clip: padding-box; |
||||
|
border-radius: 20px; |
||||
|
} |
||||
|
|
||||
|
.marker-cluster div { |
||||
|
width: 30px; |
||||
|
height: 30px; |
||||
|
margin-left: 5px; |
||||
|
margin-top: 5px; |
||||
|
|
||||
|
text-align: center; |
||||
|
border-radius: 15px; |
||||
|
font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif; |
||||
|
} |
||||
|
|
||||
|
.marker-cluster span { |
||||
|
line-height: 30px; |
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
.leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow { |
||||
|
-webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in; |
||||
|
-moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in; |
||||
|
-o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in; |
||||
|
transition: transform 0.3s ease-out, opacity 0.3s ease-in; |
||||
|
} |
||||
|
|
||||
|
.leaflet-cluster-spider-leg { |
||||
|
/* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */ |
||||
|
-webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in; |
||||
|
-moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in; |
||||
|
-o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in; |
||||
|
transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in; |
||||
|
} |
||||
@ -0,0 +1,730 @@ |
|||||
|
/* General styles for the modal */ |
||||
|
|
||||
|
/* |
||||
|
Styles for the html/body for special modal where we want 3d effects |
||||
|
Note that we need a container wrapping all content on the page for the |
||||
|
perspective effects (not including the modals and the overlay). |
||||
|
*/ |
||||
|
.md-perspective, |
||||
|
.md-perspective body { |
||||
|
height: 100%; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
|
||||
|
.md-perspective body { |
||||
|
background: #222; |
||||
|
-webkit-perspective: 600px; |
||||
|
-moz-perspective: 600px; |
||||
|
perspective: 600px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
.md-modal { |
||||
|
position: fixed; |
||||
|
top: 50%; |
||||
|
left: 50%; |
||||
|
width: 50%; |
||||
|
max-width: 630px; |
||||
|
min-width: 300px; |
||||
|
height: auto; |
||||
|
z-index: 2000; |
||||
|
visibility: hidden; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
-moz-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
-webkit-transform: translateX(-50%) translateY(-50%); |
||||
|
-moz-transform: translateX(-50%) translateY(-50%); |
||||
|
-ms-transform: translateX(-50%) translateY(-50%); |
||||
|
transform: translateX(-50%) translateY(-50%); |
||||
|
} |
||||
|
|
||||
|
.md-show { |
||||
|
visibility: visible; |
||||
|
} |
||||
|
|
||||
|
.md-overlay { |
||||
|
position: fixed; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
visibility: hidden; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
z-index: 1000; |
||||
|
opacity: 0; |
||||
|
background: rgba(55, 58, 60, 0.65); |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show ~ .md-overlay { |
||||
|
opacity: 1; |
||||
|
visibility: visible; |
||||
|
} |
||||
|
|
||||
|
/* Content styles */ |
||||
|
.md-content { |
||||
|
color: #666666; |
||||
|
background: #fff; |
||||
|
position: relative; |
||||
|
border-radius: 3px; |
||||
|
margin: 0 auto; |
||||
|
} |
||||
|
|
||||
|
.md-content h3 { |
||||
|
color: #fff; |
||||
|
margin: 0; |
||||
|
padding: 0.4em; |
||||
|
text-align: center; |
||||
|
font-weight: 400; |
||||
|
opacity: 0.8; |
||||
|
background: #4680ff; |
||||
|
border-radius: 3px 3px 0 0; |
||||
|
} |
||||
|
|
||||
|
.md-content > div { |
||||
|
padding: 15px 15px 30px 15px; |
||||
|
margin: 0; |
||||
|
font-weight: 300; |
||||
|
font-size: 1.15em; |
||||
|
} |
||||
|
|
||||
|
.md-content > div p { |
||||
|
margin: 0; |
||||
|
padding: 10px 0; |
||||
|
} |
||||
|
|
||||
|
.md-content > div ul { |
||||
|
margin: 0; |
||||
|
padding: 0 0 30px 20px; |
||||
|
} |
||||
|
|
||||
|
.md-content > div ul li { |
||||
|
padding: 5px 0; |
||||
|
} |
||||
|
|
||||
|
.md-content button { |
||||
|
display: block; |
||||
|
margin: 0 auto; |
||||
|
font-size: 0.8em; |
||||
|
} |
||||
|
|
||||
|
/* Individual modal styles with animations/transitions */ |
||||
|
|
||||
|
/* Effect 1: Fade in and scale up */ |
||||
|
.md-effect-1 .md-content { |
||||
|
-webkit-transform: scale(0.7); |
||||
|
-moz-transform: scale(0.7); |
||||
|
-ms-transform: scale(0.7); |
||||
|
transform: scale(0.7); |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-1 .md-content { |
||||
|
-webkit-transform: scale(1); |
||||
|
-moz-transform: scale(1); |
||||
|
-ms-transform: scale(1); |
||||
|
transform: scale(1); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 2: Slide from the right */ |
||||
|
.md-effect-2 .md-content { |
||||
|
-webkit-transform: translateX(20%); |
||||
|
-moz-transform: translateX(20%); |
||||
|
-ms-transform: translateX(20%); |
||||
|
transform: translateX(20%); |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); |
||||
|
-moz-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); |
||||
|
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-2 .md-content { |
||||
|
-webkit-transform: translateX(0); |
||||
|
-moz-transform: translateX(0); |
||||
|
-ms-transform: translateX(0); |
||||
|
transform: translateX(0); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 3: Slide from the bottom */ |
||||
|
.md-effect-3 .md-content { |
||||
|
-webkit-transform: translateY(20%); |
||||
|
-moz-transform: translateY(20%); |
||||
|
-ms-transform: translateY(20%); |
||||
|
transform: translateY(20%); |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-3 .md-content { |
||||
|
-webkit-transform: translateY(0); |
||||
|
-moz-transform: translateY(0); |
||||
|
-ms-transform: translateY(0); |
||||
|
transform: translateY(0); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 4: Newspaper */ |
||||
|
.md-effect-4 .md-content { |
||||
|
-webkit-transform: scale(0) rotate(720deg); |
||||
|
-moz-transform: scale(0) rotate(720deg); |
||||
|
-ms-transform: scale(0) rotate(720deg); |
||||
|
transform: scale(0) rotate(720deg); |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-4 ~ .md-overlay, |
||||
|
.md-effect-4 .md-content { |
||||
|
-webkit-transition: all 0.5s; |
||||
|
-moz-transition: all 0.5s; |
||||
|
transition: all 0.5s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-4 .md-content { |
||||
|
-webkit-transform: scale(1) rotate(0deg); |
||||
|
-moz-transform: scale(1) rotate(0deg); |
||||
|
-ms-transform: scale(1) rotate(0deg); |
||||
|
transform: scale(1) rotate(0deg); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 5: fall */ |
||||
|
.md-effect-5.md-modal { |
||||
|
-webkit-perspective: 1300px; |
||||
|
-moz-perspective: 1300px; |
||||
|
perspective: 1300px; |
||||
|
} |
||||
|
|
||||
|
.md-effect-5 .md-content { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform: translateZ(600px) rotateX(20deg); |
||||
|
-moz-transform: translateZ(600px) rotateX(20deg); |
||||
|
-ms-transform: translateZ(600px) rotateX(20deg); |
||||
|
transform: translateZ(600px) rotateX(20deg); |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-5 .md-content { |
||||
|
-webkit-transition: all 0.3s ease-in; |
||||
|
-moz-transition: all 0.3s ease-in; |
||||
|
transition: all 0.3s ease-in; |
||||
|
-webkit-transform: translateZ(0px) rotateX(0deg); |
||||
|
-moz-transform: translateZ(0px) rotateX(0deg); |
||||
|
-ms-transform: translateZ(0px) rotateX(0deg); |
||||
|
transform: translateZ(0px) rotateX(0deg); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 6: side fall */ |
||||
|
.md-effect-6.md-modal { |
||||
|
-webkit-perspective: 1300px; |
||||
|
-moz-perspective: 1300px; |
||||
|
perspective: 1300px; |
||||
|
} |
||||
|
|
||||
|
.md-effect-6 .md-content { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform: translate(30%) translateZ(600px) rotate(10deg); |
||||
|
-moz-transform: translate(30%) translateZ(600px) rotate(10deg); |
||||
|
-ms-transform: translate(30%) translateZ(600px) rotate(10deg); |
||||
|
transform: translate(30%) translateZ(600px) rotate(10deg); |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-6 .md-content { |
||||
|
-webkit-transition: all 0.3s ease-in; |
||||
|
-moz-transition: all 0.3s ease-in; |
||||
|
transition: all 0.3s ease-in; |
||||
|
-webkit-transform: translate(0%) translateZ(0) rotate(0deg); |
||||
|
-moz-transform: translate(0%) translateZ(0) rotate(0deg); |
||||
|
-ms-transform: translate(0%) translateZ(0) rotate(0deg); |
||||
|
transform: translate(0%) translateZ(0) rotate(0deg); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 7: slide and stick to top */ |
||||
|
.md-effect-7{ |
||||
|
top: 0; |
||||
|
-webkit-transform: translateX(-50%); |
||||
|
-moz-transform: translateX(-50%); |
||||
|
-ms-transform: translateX(-50%); |
||||
|
transform: translateX(-50%); |
||||
|
} |
||||
|
|
||||
|
.md-effect-7 .md-content { |
||||
|
-webkit-transform: translateY(-200%); |
||||
|
-moz-transform: translateY(-200%); |
||||
|
-ms-transform: translateY(-200%); |
||||
|
transform: translateY(-200%); |
||||
|
-webkit-transition: all .3s; |
||||
|
-moz-transition: all .3s; |
||||
|
transition: all .3s; |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-7 .md-content { |
||||
|
-webkit-transform: translateY(0%); |
||||
|
-moz-transform: translateY(0%); |
||||
|
-ms-transform: translateY(0%); |
||||
|
transform: translateY(0%); |
||||
|
border-radius: 0 0 3px 3px; |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 8: 3D flip horizontal */ |
||||
|
.md-effect-8.md-modal { |
||||
|
-webkit-perspective: 1300px; |
||||
|
-moz-perspective: 1300px; |
||||
|
perspective: 1300px; |
||||
|
} |
||||
|
|
||||
|
.md-effect-8 .md-content { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform: rotateY(-70deg); |
||||
|
-moz-transform: rotateY(-70deg); |
||||
|
-ms-transform: rotateY(-70deg); |
||||
|
transform: rotateY(-70deg); |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-8 .md-content { |
||||
|
-webkit-transform: rotateY(0deg); |
||||
|
-moz-transform: rotateY(0deg); |
||||
|
-ms-transform: rotateY(0deg); |
||||
|
transform: rotateY(0deg); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 9: 3D flip vertical */ |
||||
|
.md-effect-9.md-modal { |
||||
|
-webkit-perspective: 1300px; |
||||
|
-moz-perspective: 1300px; |
||||
|
perspective: 1300px; |
||||
|
} |
||||
|
|
||||
|
.md-effect-9 .md-content { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform: rotateX(-70deg); |
||||
|
-moz-transform: rotateX(-70deg); |
||||
|
-ms-transform: rotateX(-70deg); |
||||
|
transform: rotateX(-70deg); |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-9 .md-content { |
||||
|
-webkit-transform: rotateX(0deg); |
||||
|
-moz-transform: rotateX(0deg); |
||||
|
-ms-transform: rotateX(0deg); |
||||
|
transform: rotateX(0deg); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 10: 3D sign */ |
||||
|
.md-effect-10.md-modal { |
||||
|
-webkit-perspective: 1300px; |
||||
|
-moz-perspective: 1300px; |
||||
|
perspective: 1300px; |
||||
|
} |
||||
|
|
||||
|
.md-effect-10 .md-content { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform: rotateX(-60deg); |
||||
|
-moz-transform: rotateX(-60deg); |
||||
|
-ms-transform: rotateX(-60deg); |
||||
|
transform: rotateX(-60deg); |
||||
|
-webkit-transform-origin: 50% 0; |
||||
|
-moz-transform-origin: 50% 0; |
||||
|
transform-origin: 50% 0; |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-10 .md-content { |
||||
|
-webkit-transform: rotateX(0deg); |
||||
|
-moz-transform: rotateX(0deg); |
||||
|
-ms-transform: rotateX(0deg); |
||||
|
transform: rotateX(0deg); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 11: Super scaled */ |
||||
|
.md-effect-11 .md-content { |
||||
|
-webkit-transform: scale(2); |
||||
|
-moz-transform: scale(2); |
||||
|
-ms-transform: scale(2); |
||||
|
transform: scale(2); |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-11 .md-content { |
||||
|
-webkit-transform: scale(1); |
||||
|
-moz-transform: scale(1); |
||||
|
-ms-transform: scale(1); |
||||
|
transform: scale(1); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 12: Just me */ |
||||
|
.md-effect-12 .md-content { |
||||
|
-webkit-transform: scale(0.8); |
||||
|
-moz-transform: scale(0.8); |
||||
|
-ms-transform: scale(0.8); |
||||
|
transform: scale(0.8); |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-12 ~ .md-overlay { |
||||
|
background: #fff; |
||||
|
} |
||||
|
|
||||
|
.md-effect-12 .md-content h3, |
||||
|
.md-effect-12 .md-content { |
||||
|
background: transparent; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-12 .md-content { |
||||
|
-webkit-transform: scale(1); |
||||
|
-moz-transform: scale(1); |
||||
|
-ms-transform: scale(1); |
||||
|
transform: scale(1); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 13: 3D slit */ |
||||
|
.md-effect-13.md-modal { |
||||
|
-webkit-perspective: 1300px; |
||||
|
-moz-perspective: 1300px; |
||||
|
perspective: 1300px; |
||||
|
} |
||||
|
|
||||
|
.md-effect-13 .md-content { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform: translateZ(-3000px) rotateY(90deg); |
||||
|
-moz-transform: translateZ(-3000px) rotateY(90deg); |
||||
|
-ms-transform: translateZ(-3000px) rotateY(90deg); |
||||
|
transform: translateZ(-3000px) rotateY(90deg); |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-13 .md-content { |
||||
|
-webkit-animation: slit .7s forwards ease-out; |
||||
|
-moz-animation: slit .7s forwards ease-out; |
||||
|
animation: slit .7s forwards ease-out; |
||||
|
} |
||||
|
|
||||
|
@-webkit-keyframes slit { |
||||
|
50% { -webkit-transform: translateZ(-250px) rotateY(89deg); opacity: .5; -webkit-animation-timing-function: ease-out;} |
||||
|
100% { -webkit-transform: translateZ(0) rotateY(0deg); opacity: 1; } |
||||
|
} |
||||
|
|
||||
|
@-moz-keyframes slit { |
||||
|
50% { -moz-transform: translateZ(-250px) rotateY(89deg); opacity: .5; -moz-animation-timing-function: ease-out;} |
||||
|
100% { -moz-transform: translateZ(0) rotateY(0deg); opacity: 1; } |
||||
|
} |
||||
|
|
||||
|
@keyframes slit { |
||||
|
50% { transform: translateZ(-250px) rotateY(89deg); opacity: 1; animation-timing-function: ease-in;} |
||||
|
100% { transform: translateZ(0) rotateY(0deg); opacity: 1; } |
||||
|
} |
||||
|
|
||||
|
/* Effect 14: 3D Rotate from bottom */ |
||||
|
.md-effect-14.md-modal { |
||||
|
-webkit-perspective: 1300px; |
||||
|
-moz-perspective: 1300px; |
||||
|
perspective: 1300px; |
||||
|
} |
||||
|
|
||||
|
.md-effect-14 .md-content { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform: translateY(100%) rotateX(90deg); |
||||
|
-moz-transform: translateY(100%) rotateX(90deg); |
||||
|
-ms-transform: translateY(100%) rotateX(90deg); |
||||
|
transform: translateY(100%) rotateX(90deg); |
||||
|
-webkit-transform-origin: 0 100%; |
||||
|
-moz-transform-origin: 0 100%; |
||||
|
transform-origin: 0 100%; |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s ease-out; |
||||
|
-moz-transition: all 0.3s ease-out; |
||||
|
transition: all 0.3s ease-out; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-14 .md-content { |
||||
|
-webkit-transform: translateY(0%) rotateX(0deg); |
||||
|
-moz-transform: translateY(0%) rotateX(0deg); |
||||
|
-ms-transform: translateY(0%) rotateX(0deg); |
||||
|
transform: translateY(0%) rotateX(0deg); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 15: 3D Rotate in from left */ |
||||
|
.md-effect-15.md-modal { |
||||
|
-webkit-perspective: 1300px; |
||||
|
-moz-perspective: 1300px; |
||||
|
perspective: 1300px; |
||||
|
} |
||||
|
|
||||
|
.md-effect-15 .md-content { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform: translateZ(100px) translateX(-30%) rotateY(90deg); |
||||
|
-moz-transform: translateZ(100px) translateX(-30%) rotateY(90deg); |
||||
|
-ms-transform: translateZ(100px) translateX(-30%) rotateY(90deg); |
||||
|
transform: translateZ(100px) translateX(-30%) rotateY(90deg); |
||||
|
-webkit-transform-origin: 0 100%; |
||||
|
-moz-transform-origin: 0 100%; |
||||
|
transform-origin: 0 100%; |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-15 .md-content { |
||||
|
-webkit-transform: translateZ(0px) translateX(0%) rotateY(0deg); |
||||
|
-moz-transform: translateZ(0px) translateX(0%) rotateY(0deg); |
||||
|
-ms-transform: translateZ(0px) translateX(0%) rotateY(0deg); |
||||
|
transform: translateZ(0px) translateX(0%) rotateY(0deg); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 16: Blur */ |
||||
|
.md-show.md-effect-16 ~ .md-overlay { |
||||
|
background: rgba(180,46,32,0.5); |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-16 ~ .container { |
||||
|
-webkit-filter: blur(3px); |
||||
|
-moz-filter: blur(3px); |
||||
|
filter: blur(3px); |
||||
|
} |
||||
|
|
||||
|
.md-effect-16 .md-content { |
||||
|
-webkit-transform: translateY(-5%); |
||||
|
-moz-transform: translateY(-5%); |
||||
|
-ms-transform: translateY(-5%); |
||||
|
transform: translateY(-5%); |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-16 ~ .container, |
||||
|
.md-effect-16 .md-content { |
||||
|
-webkit-transition: all 0.3s; |
||||
|
-moz-transition: all 0.3s; |
||||
|
transition: all 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-16 .md-content { |
||||
|
-webkit-transform: translateY(0); |
||||
|
-moz-transform: translateY(0); |
||||
|
-ms-transform: translateY(0); |
||||
|
transform: translateY(0); |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
/* Effect 17: Slide in from bottom with perspective on container */ |
||||
|
.md-show.md-effect-17 ~ .container { |
||||
|
height: 100%; |
||||
|
overflow: hidden; |
||||
|
-webkit-transition: -webkit-transform 0.3s; |
||||
|
-moz-transition: -moz-transform 0.3s; |
||||
|
transition: transform 0.3s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-17 ~ .container, |
||||
|
.md-show.md-effect-17 ~ .md-overlay { |
||||
|
-webkit-transform: rotateX(-2deg); |
||||
|
-moz-transform: rotateX(-2deg); |
||||
|
-ms-transform: rotateX(-2deg); |
||||
|
transform: rotateX(-2deg); |
||||
|
-webkit-transform-origin: 50% 0%; |
||||
|
-moz-transform-origin: 50% 0%; |
||||
|
transform-origin: 50% 0%; |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
transform-style: preserve-3d; |
||||
|
} |
||||
|
|
||||
|
.md-effect-17 .md-content { |
||||
|
opacity: 0; |
||||
|
-webkit-transform: translateY(200%); |
||||
|
-moz-transform: translateY(200%); |
||||
|
-ms-transform: translateY(200%); |
||||
|
transform: translateY(200%); |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-17 .md-content { |
||||
|
-webkit-transform: translateY(0); |
||||
|
-moz-transform: translateY(0); |
||||
|
-ms-transform: translateY(0); |
||||
|
transform: translateY(0); |
||||
|
opacity: 1; |
||||
|
-webkit-transition: all 0.3s 0.2s; |
||||
|
-moz-transition: all 0.3s 0.2s; |
||||
|
transition: all 0.3s 0.2s; |
||||
|
} |
||||
|
|
||||
|
/* Effect 18: Slide from right with perspective on container */ |
||||
|
.md-show.md-effect-18 ~ .container { |
||||
|
height: 100%; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-18 ~ .md-overlay { |
||||
|
background: rgba(55, 58, 60, 0.5); |
||||
|
-webkit-transition: all 0.5s; |
||||
|
-moz-transition: all 0.5s; |
||||
|
transition: all 0.5s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-18 ~ .container, |
||||
|
.md-show.md-effect-18 ~ .md-overlay { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-webkit-transform-origin: 0% 50%; |
||||
|
-webkit-animation: rotateRightSideFirst 0.5s forwards ease-in; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
-moz-transform-origin: 0% 50%; |
||||
|
-moz-animation: rotateRightSideFirst 0.5s forwards ease-in; |
||||
|
transform-style: preserve-3d; |
||||
|
transform-origin: 0% 50%; |
||||
|
animation: rotateRightSideFirst 0.5s forwards ease-in; |
||||
|
} |
||||
|
|
||||
|
@-webkit-keyframes rotateRightSideFirst { |
||||
|
50% { -webkit-transform: translateZ(-50px) rotateY(5deg); -webkit-animation-timing-function: ease-out; } |
||||
|
100% { -webkit-transform: translateZ(-200px); } |
||||
|
} |
||||
|
|
||||
|
@-moz-keyframes rotateRightSideFirst { |
||||
|
50% { -moz-transform: translateZ(-50px) rotateY(5deg); -moz-animation-timing-function: ease-out; } |
||||
|
100% { -moz-transform: translateZ(-200px); } |
||||
|
} |
||||
|
|
||||
|
@keyframes rotateRightSideFirst { |
||||
|
50% { transform: translateZ(-50px) rotateY(5deg); animation-timing-function: ease-out; } |
||||
|
100% { transform: translateZ(-200px); } |
||||
|
} |
||||
|
|
||||
|
.md-effect-18 .md-content { |
||||
|
-webkit-transform: translateX(200%); |
||||
|
-moz-transform: translateX(200%); |
||||
|
-ms-transform: translateX(200%); |
||||
|
transform: translateX(200%); |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-18 .md-content { |
||||
|
-webkit-transform: translateX(0); |
||||
|
-moz-transform: translateX(0); |
||||
|
-ms-transform: translateX(0); |
||||
|
transform: translateX(0); |
||||
|
opacity: 1; |
||||
|
-webkit-transition: all 0.5s 0.1s; |
||||
|
-moz-transition: all 0.5s 0.1s; |
||||
|
transition: all 0.5s 0.1s; |
||||
|
} |
||||
|
|
||||
|
/* Effect 19: Slip in from the top with perspective on container */ |
||||
|
.md-show.md-effect-19 ~ .container { |
||||
|
height: 100%; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-19 ~ .md-overlay { |
||||
|
-webkit-transition: all 0.5s; |
||||
|
-moz-transition: all 0.5s; |
||||
|
transition: all 0.5s; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-19 ~ .container, |
||||
|
.md-show.md-effect-19 ~ .md-overlay { |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
-webkit-transform-origin: 50% 100%; |
||||
|
-webkit-animation: OpenTop 0.5s forwards ease-in; |
||||
|
-moz-transform-style: preserve-3d; |
||||
|
-moz-transform-origin: 50% 100%; |
||||
|
-moz-animation: OpenTop 0.5s forwards ease-in; |
||||
|
transform-style: preserve-3d; |
||||
|
transform-origin: 50% 100%; |
||||
|
animation: OpenTop 0.5s forwards ease-in; |
||||
|
} |
||||
|
|
||||
|
@-webkit-keyframes OpenTop { |
||||
|
50% { |
||||
|
-webkit-transform: rotateX(10deg); |
||||
|
-webkit-animation-timing-function: ease-out; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@-moz-keyframes OpenTop { |
||||
|
50% { |
||||
|
-moz-transform: rotateX(10deg); |
||||
|
-moz-animation-timing-function: ease-out; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@keyframes OpenTop { |
||||
|
50% { |
||||
|
transform: rotateX(10deg); |
||||
|
animation-timing-function: ease-out; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.md-effect-19 .md-content { |
||||
|
-webkit-transform: translateY(-200%); |
||||
|
-moz-transform: translateY(-200%); |
||||
|
-ms-transform: translateY(-200%); |
||||
|
transform: translateY(-200%); |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.md-show.md-effect-19 .md-content { |
||||
|
-webkit-transform: translateY(0); |
||||
|
-moz-transform: translateY(0); |
||||
|
-ms-transform: translateY(0); |
||||
|
transform: translateY(0); |
||||
|
opacity: 1; |
||||
|
-webkit-transition: all 0.5s 0.1s; |
||||
|
-moz-transition: all 0.5s 0.1s; |
||||
|
transition: all 0.5s 0.1s; |
||||
|
} |
||||
|
|
||||
|
@media screen and (max-width: 32em) { |
||||
|
body { font-size: 75%; } |
||||
|
} |
||||
4
src/main/resources/static/assets/css/font-awesome.min.css
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
1281
src/main/resources/static/assets/css/jquery.mCustomScrollbar.css
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,772 @@ |
|||||
|
/* required styles */ |
||||
|
|
||||
|
.leaflet-pane, |
||||
|
.leaflet-tile, |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow, |
||||
|
.leaflet-tile-container, |
||||
|
.leaflet-pane > svg, |
||||
|
.leaflet-pane > canvas, |
||||
|
.leaflet-zoom-box, |
||||
|
.leaflet-image-layer, |
||||
|
.leaflet-layer { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container { |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tile, |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow { |
||||
|
-webkit-user-select: none; |
||||
|
-moz-user-select: none; |
||||
|
user-select: none; |
||||
|
-webkit-user-drag: none; |
||||
|
} |
||||
|
|
||||
|
/* Prevents IE11 from highlighting tiles in blue */ |
||||
|
.leaflet-tile::selection { |
||||
|
background: transparent; |
||||
|
} |
||||
|
|
||||
|
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ |
||||
|
.leaflet-safari .leaflet-tile { |
||||
|
image-rendering: -webkit-optimize-contrast; |
||||
|
} |
||||
|
|
||||
|
/* hack that prevents hw layers "stretching" when loading new tiles */ |
||||
|
.leaflet-safari .leaflet-tile-container { |
||||
|
width: 1600px; |
||||
|
height: 1600px; |
||||
|
-webkit-transform-origin: 0 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow { |
||||
|
display: block; |
||||
|
} |
||||
|
|
||||
|
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ |
||||
|
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ |
||||
|
.leaflet-container .leaflet-overlay-pane svg { |
||||
|
max-width: none !important; |
||||
|
max-height: none !important; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container .leaflet-marker-pane img, |
||||
|
.leaflet-container .leaflet-shadow-pane img, |
||||
|
.leaflet-container .leaflet-tile-pane img, |
||||
|
.leaflet-container img.leaflet-image-layer, |
||||
|
.leaflet-container .leaflet-tile { |
||||
|
max-width: none !important; |
||||
|
max-height: none !important; |
||||
|
width: auto; |
||||
|
padding: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container img.leaflet-tile { |
||||
|
/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ |
||||
|
mix-blend-mode: plus-lighter; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container.leaflet-touch-zoom { |
||||
|
-ms-touch-action: pan-x pan-y; |
||||
|
touch-action: pan-x pan-y; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container.leaflet-touch-drag { |
||||
|
-ms-touch-action: pinch-zoom; |
||||
|
/* Fallback for FF which doesn't support pinch-zoom */ |
||||
|
touch-action: none; |
||||
|
touch-action: pinch-zoom; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { |
||||
|
-ms-touch-action: none; |
||||
|
touch-action: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container { |
||||
|
-webkit-tap-highlight-color: transparent; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container a { |
||||
|
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); |
||||
|
} |
||||
|
|
||||
|
.leaflet-tile { |
||||
|
filter: inherit; |
||||
|
visibility: hidden; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tile-loaded { |
||||
|
visibility: inherit; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-box { |
||||
|
width: 0; |
||||
|
height: 0; |
||||
|
-moz-box-sizing: border-box; |
||||
|
box-sizing: border-box; |
||||
|
z-index: 800; |
||||
|
} |
||||
|
|
||||
|
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ |
||||
|
.leaflet-overlay-pane svg { |
||||
|
-moz-user-select: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-pane { |
||||
|
z-index: 400; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tile-pane { |
||||
|
z-index: 200; |
||||
|
} |
||||
|
|
||||
|
.leaflet-overlay-pane { |
||||
|
z-index: 400; |
||||
|
} |
||||
|
|
||||
|
.leaflet-shadow-pane { |
||||
|
z-index: 500; |
||||
|
} |
||||
|
|
||||
|
.leaflet-marker-pane { |
||||
|
z-index: 600; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-pane { |
||||
|
z-index: 650; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-pane { |
||||
|
z-index: 700; |
||||
|
} |
||||
|
|
||||
|
.leaflet-map-pane canvas { |
||||
|
z-index: 100; |
||||
|
} |
||||
|
|
||||
|
.leaflet-map-pane svg { |
||||
|
z-index: 200; |
||||
|
} |
||||
|
|
||||
|
.leaflet-vml-shape { |
||||
|
width: 1px; |
||||
|
height: 1px; |
||||
|
} |
||||
|
|
||||
|
.lvml { |
||||
|
behavior: url(#default#VML); |
||||
|
display: inline-block; |
||||
|
position: absolute; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* control positioning */ |
||||
|
|
||||
|
.leaflet-control { |
||||
|
position: relative; |
||||
|
z-index: 800; |
||||
|
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
|
||||
|
.leaflet-top, |
||||
|
.leaflet-bottom { |
||||
|
position: absolute; |
||||
|
z-index: 1000; |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-top { |
||||
|
top: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-right { |
||||
|
right: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bottom { |
||||
|
bottom: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-left { |
||||
|
left: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control { |
||||
|
float: left; |
||||
|
clear: both; |
||||
|
} |
||||
|
|
||||
|
.leaflet-right .leaflet-control { |
||||
|
float: right; |
||||
|
} |
||||
|
|
||||
|
.leaflet-top .leaflet-control { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bottom .leaflet-control { |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-left .leaflet-control { |
||||
|
margin-left: 10px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-right .leaflet-control { |
||||
|
margin-right: 10px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* zoom and fade animations */ |
||||
|
|
||||
|
.leaflet-fade-anim .leaflet-popup { |
||||
|
opacity: 0; |
||||
|
-webkit-transition: opacity 0.2s linear; |
||||
|
-moz-transition: opacity 0.2s linear; |
||||
|
transition: opacity 0.2s linear; |
||||
|
} |
||||
|
|
||||
|
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-animated { |
||||
|
-webkit-transform-origin: 0 0; |
||||
|
-ms-transform-origin: 0 0; |
||||
|
transform-origin: 0 0; |
||||
|
} |
||||
|
|
||||
|
svg.leaflet-zoom-animated { |
||||
|
will-change: transform; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-anim .leaflet-zoom-animated { |
||||
|
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1); |
||||
|
-moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1); |
||||
|
transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-anim .leaflet-tile, |
||||
|
.leaflet-pan-anim .leaflet-tile { |
||||
|
-webkit-transition: none; |
||||
|
-moz-transition: none; |
||||
|
transition: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-anim .leaflet-zoom-hide { |
||||
|
visibility: hidden; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* cursors */ |
||||
|
|
||||
|
.leaflet-interactive { |
||||
|
cursor: pointer; |
||||
|
} |
||||
|
|
||||
|
.leaflet-grab { |
||||
|
cursor: -webkit-grab; |
||||
|
cursor: -moz-grab; |
||||
|
cursor: grab; |
||||
|
} |
||||
|
|
||||
|
.leaflet-crosshair, |
||||
|
.leaflet-crosshair .leaflet-interactive { |
||||
|
cursor: crosshair; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-pane, |
||||
|
.leaflet-control { |
||||
|
cursor: auto; |
||||
|
} |
||||
|
|
||||
|
.leaflet-dragging .leaflet-grab, |
||||
|
.leaflet-dragging .leaflet-grab .leaflet-interactive, |
||||
|
.leaflet-dragging .leaflet-marker-draggable { |
||||
|
cursor: move; |
||||
|
cursor: -webkit-grabbing; |
||||
|
cursor: -moz-grabbing; |
||||
|
cursor: grabbing; |
||||
|
} |
||||
|
|
||||
|
/* marker & overlays interactivity */ |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow, |
||||
|
.leaflet-image-layer, |
||||
|
.leaflet-pane > svg path, |
||||
|
.leaflet-tile-container { |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-marker-icon.leaflet-interactive, |
||||
|
.leaflet-image-layer.leaflet-interactive, |
||||
|
.leaflet-pane > svg path.leaflet-interactive, |
||||
|
svg.leaflet-image-layer.leaflet-interactive path { |
||||
|
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
|
||||
|
/* visual tweaks */ |
||||
|
|
||||
|
.leaflet-container { |
||||
|
background: #ddd; |
||||
|
outline-offset: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container a { |
||||
|
color: #0078A8; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-box { |
||||
|
border: 2px dotted #38f; |
||||
|
background: rgba(255, 255, 255, 0.5); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* general typography */ |
||||
|
.leaflet-container { |
||||
|
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; |
||||
|
font-size: 12px; |
||||
|
font-size: 0.75rem; |
||||
|
line-height: 1.5; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* general toolbar styles */ |
||||
|
|
||||
|
.leaflet-bar { |
||||
|
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); |
||||
|
border-radius: 4px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a { |
||||
|
background-color: #fff; |
||||
|
border-bottom: 1px solid #ccc; |
||||
|
width: 26px; |
||||
|
height: 26px; |
||||
|
line-height: 26px; |
||||
|
display: block; |
||||
|
text-align: center; |
||||
|
text-decoration: none; |
||||
|
color: black; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a, |
||||
|
.leaflet-control-layers-toggle { |
||||
|
background-position: 50% 50%; |
||||
|
background-repeat: no-repeat; |
||||
|
display: block; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a:hover, |
||||
|
.leaflet-bar a:focus { |
||||
|
background-color: #f4f4f4; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a:first-child { |
||||
|
border-top-left-radius: 4px; |
||||
|
border-top-right-radius: 4px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a:last-child { |
||||
|
border-bottom-left-radius: 4px; |
||||
|
border-bottom-right-radius: 4px; |
||||
|
border-bottom: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a.leaflet-disabled { |
||||
|
cursor: default; |
||||
|
background-color: #f4f4f4; |
||||
|
color: #bbb; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-bar a { |
||||
|
width: 30px; |
||||
|
height: 30px; |
||||
|
line-height: 30px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-bar a:first-child { |
||||
|
border-top-left-radius: 2px; |
||||
|
border-top-right-radius: 2px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-bar a:last-child { |
||||
|
border-bottom-left-radius: 2px; |
||||
|
border-bottom-right-radius: 2px; |
||||
|
} |
||||
|
|
||||
|
/* zoom control */ |
||||
|
|
||||
|
.leaflet-control-zoom-in, |
||||
|
.leaflet-control-zoom-out { |
||||
|
font: bold 18px 'Lucida Console', Monaco, monospace; |
||||
|
text-indent: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { |
||||
|
font-size: 22px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* layers control */ |
||||
|
|
||||
|
.leaflet-control-layers { |
||||
|
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); |
||||
|
background: #fff; |
||||
|
border-radius: 5px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-toggle { |
||||
|
background-image: url(images/layers.png); |
||||
|
width: 36px; |
||||
|
height: 36px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-retina .leaflet-control-layers-toggle { |
||||
|
background-image: url(images/layers-2x.png); |
||||
|
background-size: 26px 26px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-layers-toggle { |
||||
|
width: 44px; |
||||
|
height: 44px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers .leaflet-control-layers-list, |
||||
|
.leaflet-control-layers-expanded .leaflet-control-layers-toggle { |
||||
|
display: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-expanded .leaflet-control-layers-list { |
||||
|
display: block; |
||||
|
position: relative; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-expanded { |
||||
|
padding: 6px 10px 6px 6px; |
||||
|
color: #333; |
||||
|
background: #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-scrollbar { |
||||
|
overflow-y: scroll; |
||||
|
overflow-x: hidden; |
||||
|
padding-right: 5px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-selector { |
||||
|
margin-top: 2px; |
||||
|
position: relative; |
||||
|
top: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers label { |
||||
|
display: block; |
||||
|
font-size: 13px; |
||||
|
font-size: 1.08333em; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-separator { |
||||
|
height: 0; |
||||
|
border-top: 1px solid #ddd; |
||||
|
margin: 5px -10px 5px -6px; |
||||
|
} |
||||
|
|
||||
|
/* Default icon URLs */ |
||||
|
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ |
||||
|
background-image: url(images/marker-icon.png); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* attribution and scale controls */ |
||||
|
|
||||
|
.leaflet-container .leaflet-control-attribution { |
||||
|
background: #fff; |
||||
|
background: rgba(255, 255, 255, 0.8); |
||||
|
margin: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-attribution, |
||||
|
.leaflet-control-scale-line { |
||||
|
padding: 0 5px; |
||||
|
color: #333; |
||||
|
line-height: 1.4; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-attribution a { |
||||
|
text-decoration: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-attribution a:hover, |
||||
|
.leaflet-control-attribution a:focus { |
||||
|
text-decoration: underline; |
||||
|
} |
||||
|
|
||||
|
.leaflet-attribution-flag { |
||||
|
display: inline !important; |
||||
|
vertical-align: baseline !important; |
||||
|
width: 1em; |
||||
|
height: 0.6669em; |
||||
|
} |
||||
|
|
||||
|
.leaflet-left .leaflet-control-scale { |
||||
|
margin-left: 5px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bottom .leaflet-control-scale { |
||||
|
margin-bottom: 5px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-scale-line { |
||||
|
border: 2px solid #777; |
||||
|
border-top: none; |
||||
|
line-height: 1.1; |
||||
|
padding: 2px 5px 1px; |
||||
|
white-space: nowrap; |
||||
|
-moz-box-sizing: border-box; |
||||
|
box-sizing: border-box; |
||||
|
background: rgba(255, 255, 255, 0.8); |
||||
|
text-shadow: 1px 1px #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-scale-line:not(:first-child) { |
||||
|
border-top: 2px solid #777; |
||||
|
border-bottom: none; |
||||
|
margin-top: -2px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-scale-line:not(:first-child):not(:last-child) { |
||||
|
border-bottom: 2px solid #777; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-attribution, |
||||
|
.leaflet-touch .leaflet-control-layers, |
||||
|
.leaflet-touch .leaflet-bar { |
||||
|
box-shadow: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-layers, |
||||
|
.leaflet-touch .leaflet-bar { |
||||
|
border: 2px solid rgba(0, 0, 0, 0.2); |
||||
|
background-clip: padding-box; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* popup */ |
||||
|
|
||||
|
.leaflet-popup { |
||||
|
position: absolute; |
||||
|
text-align: center; |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-content-wrapper { |
||||
|
padding: 1px; |
||||
|
text-align: left; |
||||
|
border-radius: 12px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-content { |
||||
|
margin: 13px 24px 13px 20px; |
||||
|
line-height: 1.3; |
||||
|
font-size: 13px; |
||||
|
font-size: 1.08333em; |
||||
|
min-height: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-content p { |
||||
|
margin: 17px 0; |
||||
|
margin: 1.3em 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-tip-container { |
||||
|
width: 40px; |
||||
|
height: 20px; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
margin-top: -1px; |
||||
|
margin-left: -20px; |
||||
|
overflow: hidden; |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-tip { |
||||
|
width: 17px; |
||||
|
height: 17px; |
||||
|
padding: 1px; |
||||
|
|
||||
|
margin: -10px auto 0; |
||||
|
pointer-events: auto; |
||||
|
|
||||
|
-webkit-transform: rotate(45deg); |
||||
|
-moz-transform: rotate(45deg); |
||||
|
-ms-transform: rotate(45deg); |
||||
|
transform: rotate(45deg); |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-content-wrapper, |
||||
|
.leaflet-popup-tip { |
||||
|
background: white; |
||||
|
color: #333; |
||||
|
box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); |
||||
|
} |
||||
|
|
||||
|
.leaflet-container a.leaflet-popup-close-button { |
||||
|
position: absolute; |
||||
|
top: 0; |
||||
|
right: 0; |
||||
|
border: none; |
||||
|
text-align: center; |
||||
|
width: 24px; |
||||
|
height: 24px; |
||||
|
font: 16px/24px Tahoma, Verdana, sans-serif; |
||||
|
color: #757575; |
||||
|
text-decoration: none; |
||||
|
background: transparent; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container a.leaflet-popup-close-button:hover, |
||||
|
.leaflet-container a.leaflet-popup-close-button:focus { |
||||
|
color: #585858; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-scrolled { |
||||
|
overflow: auto; |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .leaflet-popup-content-wrapper { |
||||
|
-ms-zoom: 1; |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .leaflet-popup-tip { |
||||
|
width: 24px; |
||||
|
margin: 0 auto; |
||||
|
|
||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; |
||||
|
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .leaflet-control-zoom, |
||||
|
.leaflet-oldie .leaflet-control-layers, |
||||
|
.leaflet-oldie .leaflet-popup-content-wrapper, |
||||
|
.leaflet-oldie .leaflet-popup-tip { |
||||
|
border: 1px solid #999; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* div icon */ |
||||
|
|
||||
|
.leaflet-div-icon { |
||||
|
background: #fff; |
||||
|
border: 1px solid #666; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* Tooltip */ |
||||
|
/* Base styles for the element that has a tooltip */ |
||||
|
.leaflet-tooltip { |
||||
|
position: absolute; |
||||
|
padding: 6px; |
||||
|
background-color: #fff; |
||||
|
border: 1px solid #fff; |
||||
|
border-radius: 3px; |
||||
|
color: #222; |
||||
|
white-space: nowrap; |
||||
|
-webkit-user-select: none; |
||||
|
-moz-user-select: none; |
||||
|
-ms-user-select: none; |
||||
|
user-select: none; |
||||
|
pointer-events: none; |
||||
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip.leaflet-interactive { |
||||
|
cursor: pointer; |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-top:before, |
||||
|
.leaflet-tooltip-bottom:before, |
||||
|
.leaflet-tooltip-left:before, |
||||
|
.leaflet-tooltip-right:before { |
||||
|
position: absolute; |
||||
|
pointer-events: none; |
||||
|
border: 6px solid transparent; |
||||
|
background: transparent; |
||||
|
content: ""; |
||||
|
} |
||||
|
|
||||
|
/* Directions */ |
||||
|
|
||||
|
.leaflet-tooltip-bottom { |
||||
|
margin-top: 6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-top { |
||||
|
margin-top: -6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-bottom:before, |
||||
|
.leaflet-tooltip-top:before { |
||||
|
left: 50%; |
||||
|
margin-left: -6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-top:before { |
||||
|
bottom: 0; |
||||
|
margin-bottom: -12px; |
||||
|
border-top-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-bottom:before { |
||||
|
top: 0; |
||||
|
margin-top: -12px; |
||||
|
margin-left: -6px; |
||||
|
border-bottom-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-left { |
||||
|
margin-left: -6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-right { |
||||
|
margin-left: 6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-left:before, |
||||
|
.leaflet-tooltip-right:before { |
||||
|
top: 50%; |
||||
|
margin-top: -6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-left:before { |
||||
|
right: 0; |
||||
|
margin-right: -12px; |
||||
|
border-left-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-right:before { |
||||
|
left: 0; |
||||
|
margin-left: -12px; |
||||
|
border-right-color: #fff; |
||||
|
} |
||||
|
|
||||
|
/* Printing */ |
||||
|
|
||||
|
@media print { |
||||
|
/* Prevent printers from removing background-images of controls. */ |
||||
|
.leaflet-control { |
||||
|
-webkit-print-color-adjust: exact; |
||||
|
print-color-adjust: exact; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,536 @@ |
|||||
|
@font-face { |
||||
|
font-family: 'Linearicons-Free'; |
||||
|
src:url('../fonts/Linearicons-Free.hxd'); |
||||
|
src:url('../fonts/Linearicons-Free-1.hxd') format('embedded-opentype'), |
||||
|
url('../fonts/Linearicons-Free.woff2') format('woff2'), |
||||
|
url('../fonts/Linearicons-Free.woff') format('woff'), |
||||
|
url('../fonts/Linearicons-Free.ttf') format('truetype'), |
||||
|
url('../fonts/Linearicons-Free.svg') format('svg'); |
||||
|
font-weight: normal; |
||||
|
font-style: normal; |
||||
|
} |
||||
|
|
||||
|
.lnr { |
||||
|
font-family: 'Linearicons-Free'; |
||||
|
speak: none; |
||||
|
font-style: normal; |
||||
|
font-weight: normal; |
||||
|
font-variant: normal; |
||||
|
text-transform: none; |
||||
|
line-height: 1; |
||||
|
|
||||
|
/* Better Font Rendering =========== */ |
||||
|
-webkit-font-smoothing: antialiased; |
||||
|
-moz-osx-font-smoothing: grayscale; |
||||
|
} |
||||
|
|
||||
|
.lnr-home:before { |
||||
|
content: "\e800"; |
||||
|
} |
||||
|
.lnr-apartment:before { |
||||
|
content: "\e801"; |
||||
|
} |
||||
|
.lnr-pencil:before { |
||||
|
content: "\e802"; |
||||
|
} |
||||
|
.lnr-magic-wand:before { |
||||
|
content: "\e803"; |
||||
|
} |
||||
|
.lnr-drop:before { |
||||
|
content: "\e804"; |
||||
|
} |
||||
|
.lnr-lighter:before { |
||||
|
content: "\e805"; |
||||
|
} |
||||
|
.lnr-poop:before { |
||||
|
content: "\e806"; |
||||
|
} |
||||
|
.lnr-sun:before { |
||||
|
content: "\e807"; |
||||
|
} |
||||
|
.lnr-moon:before { |
||||
|
content: "\e808"; |
||||
|
} |
||||
|
.lnr-cloud:before { |
||||
|
content: "\e809"; |
||||
|
} |
||||
|
.lnr-cloud-upload:before { |
||||
|
content: "\e80a"; |
||||
|
} |
||||
|
.lnr-cloud-download:before { |
||||
|
content: "\e80b"; |
||||
|
} |
||||
|
.lnr-cloud-sync:before { |
||||
|
content: "\e80c"; |
||||
|
} |
||||
|
.lnr-cloud-check:before { |
||||
|
content: "\e80d"; |
||||
|
} |
||||
|
.lnr-database:before { |
||||
|
content: "\e80e"; |
||||
|
} |
||||
|
.lnr-lock:before { |
||||
|
content: "\e80f"; |
||||
|
} |
||||
|
.lnr-cog:before { |
||||
|
content: "\e810"; |
||||
|
} |
||||
|
.lnr-trash:before { |
||||
|
content: "\e811"; |
||||
|
} |
||||
|
.lnr-dice:before { |
||||
|
content: "\e812"; |
||||
|
} |
||||
|
.lnr-heart:before { |
||||
|
content: "\e813"; |
||||
|
} |
||||
|
.lnr-star:before { |
||||
|
content: "\e814"; |
||||
|
} |
||||
|
.lnr-star-half:before { |
||||
|
content: "\e815"; |
||||
|
} |
||||
|
.lnr-star-empty:before { |
||||
|
content: "\e816"; |
||||
|
} |
||||
|
.lnr-flag:before { |
||||
|
content: "\e817"; |
||||
|
} |
||||
|
.lnr-envelope:before { |
||||
|
content: "\e818"; |
||||
|
} |
||||
|
.lnr-paperclip:before { |
||||
|
content: "\e819"; |
||||
|
} |
||||
|
.lnr-inbox:before { |
||||
|
content: "\e81a"; |
||||
|
} |
||||
|
.lnr-eye:before { |
||||
|
content: "\e81b"; |
||||
|
} |
||||
|
.lnr-printer:before { |
||||
|
content: "\e81c"; |
||||
|
} |
||||
|
.lnr-file-empty:before { |
||||
|
content: "\e81d"; |
||||
|
} |
||||
|
.lnr-file-add:before { |
||||
|
content: "\e81e"; |
||||
|
} |
||||
|
.lnr-enter:before { |
||||
|
content: "\e81f"; |
||||
|
} |
||||
|
.lnr-exit:before { |
||||
|
content: "\e820"; |
||||
|
} |
||||
|
.lnr-graduation-hat:before { |
||||
|
content: "\e821"; |
||||
|
} |
||||
|
.lnr-license:before { |
||||
|
content: "\e822"; |
||||
|
} |
||||
|
.lnr-music-note:before { |
||||
|
content: "\e823"; |
||||
|
} |
||||
|
.lnr-film-play:before { |
||||
|
content: "\e824"; |
||||
|
} |
||||
|
.lnr-camera-video:before { |
||||
|
content: "\e825"; |
||||
|
} |
||||
|
.lnr-camera:before { |
||||
|
content: "\e826"; |
||||
|
} |
||||
|
.lnr-picture:before { |
||||
|
content: "\e827"; |
||||
|
} |
||||
|
.lnr-book:before { |
||||
|
content: "\e828"; |
||||
|
} |
||||
|
.lnr-bookmark:before { |
||||
|
content: "\e829"; |
||||
|
} |
||||
|
.lnr-user:before { |
||||
|
content: "\e82a"; |
||||
|
} |
||||
|
.lnr-users:before { |
||||
|
content: "\e82b"; |
||||
|
} |
||||
|
.lnr-shirt:before { |
||||
|
content: "\e82c"; |
||||
|
} |
||||
|
.lnr-store:before { |
||||
|
content: "\e82d"; |
||||
|
} |
||||
|
.lnr-cart:before { |
||||
|
content: "\e82e"; |
||||
|
} |
||||
|
.lnr-tag:before { |
||||
|
content: "\e82f"; |
||||
|
} |
||||
|
.lnr-phone-handset:before { |
||||
|
content: "\e830"; |
||||
|
} |
||||
|
.lnr-phone:before { |
||||
|
content: "\e831"; |
||||
|
} |
||||
|
.lnr-pushpin:before { |
||||
|
content: "\e832"; |
||||
|
} |
||||
|
.lnr-map-marker:before { |
||||
|
content: "\e833"; |
||||
|
} |
||||
|
.lnr-map:before { |
||||
|
content: "\e834"; |
||||
|
} |
||||
|
.lnr-location:before { |
||||
|
content: "\e835"; |
||||
|
} |
||||
|
.lnr-calendar-full:before { |
||||
|
content: "\e836"; |
||||
|
} |
||||
|
.lnr-keyboard:before { |
||||
|
content: "\e837"; |
||||
|
} |
||||
|
.lnr-spell-check:before { |
||||
|
content: "\e838"; |
||||
|
} |
||||
|
.lnr-screen:before { |
||||
|
content: "\e839"; |
||||
|
} |
||||
|
.lnr-smartphone:before { |
||||
|
content: "\e83a"; |
||||
|
} |
||||
|
.lnr-tablet:before { |
||||
|
content: "\e83b"; |
||||
|
} |
||||
|
.lnr-laptop:before { |
||||
|
content: "\e83c"; |
||||
|
} |
||||
|
.lnr-laptop-phone:before { |
||||
|
content: "\e83d"; |
||||
|
} |
||||
|
.lnr-power-switch:before { |
||||
|
content: "\e83e"; |
||||
|
} |
||||
|
.lnr-bubble:before { |
||||
|
content: "\e83f"; |
||||
|
} |
||||
|
.lnr-heart-pulse:before { |
||||
|
content: "\e840"; |
||||
|
} |
||||
|
.lnr-construction:before { |
||||
|
content: "\e841"; |
||||
|
} |
||||
|
.lnr-pie-chart:before { |
||||
|
content: "\e842"; |
||||
|
} |
||||
|
.lnr-chart-bars:before { |
||||
|
content: "\e843"; |
||||
|
} |
||||
|
.lnr-gift:before { |
||||
|
content: "\e844"; |
||||
|
} |
||||
|
.lnr-diamond:before { |
||||
|
content: "\e845"; |
||||
|
} |
||||
|
.lnr-linearicons:before { |
||||
|
content: "\e846"; |
||||
|
} |
||||
|
.lnr-dinner:before { |
||||
|
content: "\e847"; |
||||
|
} |
||||
|
.lnr-coffee-cup:before { |
||||
|
content: "\e848"; |
||||
|
} |
||||
|
.lnr-leaf:before { |
||||
|
content: "\e849"; |
||||
|
} |
||||
|
.lnr-paw:before { |
||||
|
content: "\e84a"; |
||||
|
} |
||||
|
.lnr-rocket:before { |
||||
|
content: "\e84b"; |
||||
|
} |
||||
|
.lnr-briefcase:before { |
||||
|
content: "\e84c"; |
||||
|
} |
||||
|
.lnr-bus:before { |
||||
|
content: "\e84d"; |
||||
|
} |
||||
|
.lnr-car:before { |
||||
|
content: "\e84e"; |
||||
|
} |
||||
|
.lnr-train:before { |
||||
|
content: "\e84f"; |
||||
|
} |
||||
|
.lnr-bicycle:before { |
||||
|
content: "\e850"; |
||||
|
} |
||||
|
.lnr-wheelchair:before { |
||||
|
content: "\e851"; |
||||
|
} |
||||
|
.lnr-select:before { |
||||
|
content: "\e852"; |
||||
|
} |
||||
|
.lnr-earth:before { |
||||
|
content: "\e853"; |
||||
|
} |
||||
|
.lnr-smile:before { |
||||
|
content: "\e854"; |
||||
|
} |
||||
|
.lnr-sad:before { |
||||
|
content: "\e855"; |
||||
|
} |
||||
|
.lnr-neutral:before { |
||||
|
content: "\e856"; |
||||
|
} |
||||
|
.lnr-mustache:before { |
||||
|
content: "\e857"; |
||||
|
} |
||||
|
.lnr-alarm:before { |
||||
|
content: "\e858"; |
||||
|
} |
||||
|
.lnr-bullhorn:before { |
||||
|
content: "\e859"; |
||||
|
} |
||||
|
.lnr-volume-high:before { |
||||
|
content: "\e85a"; |
||||
|
} |
||||
|
.lnr-volume-medium:before { |
||||
|
content: "\e85b"; |
||||
|
} |
||||
|
.lnr-volume-low:before { |
||||
|
content: "\e85c"; |
||||
|
} |
||||
|
.lnr-volume:before { |
||||
|
content: "\e85d"; |
||||
|
} |
||||
|
.lnr-mic:before { |
||||
|
content: "\e85e"; |
||||
|
} |
||||
|
.lnr-hourglass:before { |
||||
|
content: "\e85f"; |
||||
|
} |
||||
|
.lnr-undo:before { |
||||
|
content: "\e860"; |
||||
|
} |
||||
|
.lnr-redo:before { |
||||
|
content: "\e861"; |
||||
|
} |
||||
|
.lnr-sync:before { |
||||
|
content: "\e862"; |
||||
|
} |
||||
|
.lnr-history:before { |
||||
|
content: "\e863"; |
||||
|
} |
||||
|
.lnr-clock:before { |
||||
|
content: "\e864"; |
||||
|
} |
||||
|
.lnr-download:before { |
||||
|
content: "\e865"; |
||||
|
} |
||||
|
.lnr-upload:before { |
||||
|
content: "\e866"; |
||||
|
} |
||||
|
.lnr-enter-down:before { |
||||
|
content: "\e867"; |
||||
|
} |
||||
|
.lnr-exit-up:before { |
||||
|
content: "\e868"; |
||||
|
} |
||||
|
.lnr-bug:before { |
||||
|
content: "\e869"; |
||||
|
} |
||||
|
.lnr-code:before { |
||||
|
content: "\e86a"; |
||||
|
} |
||||
|
.lnr-link:before { |
||||
|
content: "\e86b"; |
||||
|
} |
||||
|
.lnr-unlink:before { |
||||
|
content: "\e86c"; |
||||
|
} |
||||
|
.lnr-thumbs-up:before { |
||||
|
content: "\e86d"; |
||||
|
} |
||||
|
.lnr-thumbs-down:before { |
||||
|
content: "\e86e"; |
||||
|
} |
||||
|
.lnr-magnifier:before { |
||||
|
content: "\e86f"; |
||||
|
} |
||||
|
.lnr-cross:before { |
||||
|
content: "\e870"; |
||||
|
} |
||||
|
.lnr-menu:before { |
||||
|
content: "\e871"; |
||||
|
} |
||||
|
.lnr-list:before { |
||||
|
content: "\e872"; |
||||
|
} |
||||
|
.lnr-chevron-up:before { |
||||
|
content: "\e873"; |
||||
|
} |
||||
|
.lnr-chevron-down:before { |
||||
|
content: "\e874"; |
||||
|
} |
||||
|
.lnr-chevron-left:before { |
||||
|
content: "\e875"; |
||||
|
} |
||||
|
.lnr-chevron-right:before { |
||||
|
content: "\e876"; |
||||
|
} |
||||
|
.lnr-arrow-up:before { |
||||
|
content: "\e877"; |
||||
|
} |
||||
|
.lnr-arrow-down:before { |
||||
|
content: "\e878"; |
||||
|
} |
||||
|
.lnr-arrow-left:before { |
||||
|
content: "\e879"; |
||||
|
} |
||||
|
.lnr-arrow-right:before { |
||||
|
content: "\e87a"; |
||||
|
} |
||||
|
.lnr-move:before { |
||||
|
content: "\e87b"; |
||||
|
} |
||||
|
.lnr-warning:before { |
||||
|
content: "\e87c"; |
||||
|
} |
||||
|
.lnr-question-circle:before { |
||||
|
content: "\e87d"; |
||||
|
} |
||||
|
.lnr-menu-circle:before { |
||||
|
content: "\e87e"; |
||||
|
} |
||||
|
.lnr-checkmark-circle:before { |
||||
|
content: "\e87f"; |
||||
|
} |
||||
|
.lnr-cross-circle:before { |
||||
|
content: "\e880"; |
||||
|
} |
||||
|
.lnr-plus-circle:before { |
||||
|
content: "\e881"; |
||||
|
} |
||||
|
.lnr-circle-minus:before { |
||||
|
content: "\e882"; |
||||
|
} |
||||
|
.lnr-arrow-up-circle:before { |
||||
|
content: "\e883"; |
||||
|
} |
||||
|
.lnr-arrow-down-circle:before { |
||||
|
content: "\e884"; |
||||
|
} |
||||
|
.lnr-arrow-left-circle:before { |
||||
|
content: "\e885"; |
||||
|
} |
||||
|
.lnr-arrow-right-circle:before { |
||||
|
content: "\e886"; |
||||
|
} |
||||
|
.lnr-chevron-up-circle:before { |
||||
|
content: "\e887"; |
||||
|
} |
||||
|
.lnr-chevron-down-circle:before { |
||||
|
content: "\e888"; |
||||
|
} |
||||
|
.lnr-chevron-left-circle:before { |
||||
|
content: "\e889"; |
||||
|
} |
||||
|
.lnr-chevron-right-circle:before { |
||||
|
content: "\e88a"; |
||||
|
} |
||||
|
.lnr-crop:before { |
||||
|
content: "\e88b"; |
||||
|
} |
||||
|
.lnr-frame-expand:before { |
||||
|
content: "\e88c"; |
||||
|
} |
||||
|
.lnr-frame-contract:before { |
||||
|
content: "\e88d"; |
||||
|
} |
||||
|
.lnr-layers:before { |
||||
|
content: "\e88e"; |
||||
|
} |
||||
|
.lnr-funnel:before { |
||||
|
content: "\e88f"; |
||||
|
} |
||||
|
.lnr-text-format:before { |
||||
|
content: "\e890"; |
||||
|
} |
||||
|
.lnr-text-format-remove:before { |
||||
|
content: "\e891"; |
||||
|
} |
||||
|
.lnr-text-size:before { |
||||
|
content: "\e892"; |
||||
|
} |
||||
|
.lnr-bold:before { |
||||
|
content: "\e893"; |
||||
|
} |
||||
|
.lnr-italic:before { |
||||
|
content: "\e894"; |
||||
|
} |
||||
|
.lnr-underline:before { |
||||
|
content: "\e895"; |
||||
|
} |
||||
|
.lnr-strikethrough:before { |
||||
|
content: "\e896"; |
||||
|
} |
||||
|
.lnr-highlight:before { |
||||
|
content: "\e897"; |
||||
|
} |
||||
|
.lnr-text-align-left:before { |
||||
|
content: "\e898"; |
||||
|
} |
||||
|
.lnr-text-align-center:before { |
||||
|
content: "\e899"; |
||||
|
} |
||||
|
.lnr-text-align-right:before { |
||||
|
content: "\e89a"; |
||||
|
} |
||||
|
.lnr-text-align-justify:before { |
||||
|
content: "\e89b"; |
||||
|
} |
||||
|
.lnr-line-spacing:before { |
||||
|
content: "\e89c"; |
||||
|
} |
||||
|
.lnr-indent-increase:before { |
||||
|
content: "\e89d"; |
||||
|
} |
||||
|
.lnr-indent-decrease:before { |
||||
|
content: "\e89e"; |
||||
|
} |
||||
|
.lnr-pilcrow:before { |
||||
|
content: "\e89f"; |
||||
|
} |
||||
|
.lnr-direction-ltr:before { |
||||
|
content: "\e8a0"; |
||||
|
} |
||||
|
.lnr-direction-rtl:before { |
||||
|
content: "\e8a1"; |
||||
|
} |
||||
|
.lnr-page-break:before { |
||||
|
content: "\e8a2"; |
||||
|
} |
||||
|
.lnr-sort-alpha-asc:before { |
||||
|
content: "\e8a3"; |
||||
|
} |
||||
|
.lnr-sort-amount-asc:before { |
||||
|
content: "\e8a4"; |
||||
|
} |
||||
|
.lnr-hand:before { |
||||
|
content: "\e8a5"; |
||||
|
} |
||||
|
.lnr-pointer-up:before { |
||||
|
content: "\e8a6"; |
||||
|
} |
||||
|
.lnr-pointer-right:before { |
||||
|
content: "\e8a7"; |
||||
|
} |
||||
|
.lnr-pointer-down:before { |
||||
|
content: "\e8a8"; |
||||
|
} |
||||
|
.lnr-pointer-left:before { |
||||
|
content: "\e8a9"; |
||||
|
} |
||||
@ -0,0 +1,612 @@ |
|||||
|
.pcoded-logo { |
||||
|
font-size: 13px; |
||||
|
font-weight: 600; |
||||
|
line-height: 35px; } |
||||
|
|
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item.pcoded-search-item > li.pcoded-hasmenu > a:after { |
||||
|
display: none; } |
||||
|
|
||||
|
a:focus { |
||||
|
outline: none; |
||||
|
outline: 0 auto -webkit-focus-ring-color; |
||||
|
outline-offset: 0; } |
||||
|
|
||||
|
.pcoded .pcoded-container { |
||||
|
position: relative; |
||||
|
background: #d5dae6; } |
||||
|
.pcoded .pcoded-header { |
||||
|
display: block; |
||||
|
height: 35px; |
||||
|
background: #e9ecf3; |
||||
|
color: #414141; |
||||
|
width: 100%; |
||||
|
z-index: 1024; } |
||||
|
.pcoded .pcoded-navbar { |
||||
|
display: block; |
||||
|
height: 50px; |
||||
|
width: 100%; |
||||
|
z-index: 1023; |
||||
|
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1); } |
||||
|
|
||||
|
.pcoded-main-container { |
||||
|
display: block; |
||||
|
background: #f3f3f3; } |
||||
|
|
||||
|
.pcoded .pcoded-content { |
||||
|
position: relative; |
||||
|
display: block; } |
||||
|
.pcoded .pcoded-inner-content { |
||||
|
padding: 10px; } |
||||
|
.pcoded .pcoded-header .pcoded-left-header { |
||||
|
float: left; |
||||
|
min-width: 230px; |
||||
|
padding: 0 10px; } |
||||
|
.pcoded .pcoded-header .pcoded-right-header { |
||||
|
padding: 0 10px; } |
||||
|
.pcoded .pcoded-header .pcoded-right-header .pcoded-rl-header { |
||||
|
float: left; } |
||||
|
.pcoded .pcoded-header .pcoded-right-header .pcoded-rr-header { |
||||
|
text-align: right; } |
||||
|
.pcoded .pcoded-brand { |
||||
|
float: left; } |
||||
|
.pcoded[pcoded-device-type="desktop"] .navbar-logo .mobile-menu, |
||||
|
.pcoded[pcoded-device-type="desktop"] .pcoded-brand .menu-toggle, .pcoded[pcoded-device-type="tablet"] .navbar-logo .mobile-menu, |
||||
|
.pcoded[pcoded-device-type="tablet"] .pcoded-brand .menu-toggle { |
||||
|
display: none; } |
||||
|
.pcoded[pcoded-device-type="desktop"] .p-chat-user, |
||||
|
.pcoded[pcoded-device-type="desktop"] .showChat_inner, .pcoded[pcoded-device-type="tablet"] .p-chat-user, |
||||
|
.pcoded[pcoded-device-type="tablet"] .showChat_inner { |
||||
|
top: 105px; } |
||||
|
.pcoded .pcoded-brand .menu-toggle a { |
||||
|
text-decoration: none; } |
||||
|
.pcoded .pcoded-brand .menu-toggle a i { |
||||
|
font-size: 18px; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item { |
||||
|
display: block; |
||||
|
list-style: none; |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
position: relative; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li { |
||||
|
display: block; |
||||
|
list-style: outside none none; |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
position: relative; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li > a { |
||||
|
display: block; |
||||
|
font-size: 13px; |
||||
|
padding: 9px 20px; |
||||
|
text-decoration: none; |
||||
|
position: relative; |
||||
|
line-height: 40px; |
||||
|
color: #000; } |
||||
|
@media only screen and (max-width: 1200px) { |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li > a { |
||||
|
padding: 9px 5px; } } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li.pcoded-hasmenu > a { |
||||
|
line-height: 2.3; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu { |
||||
|
list-style: outside none none; |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
box-shadow: 0 1px 7px -1px rgba(0, 0, 0, 0.4); } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li { |
||||
|
display: block; |
||||
|
list-style: outside none none; |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
position: relative; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li > a { |
||||
|
display: block; |
||||
|
font-size: 14px; |
||||
|
padding: 5px 10px; |
||||
|
text-decoration: none; |
||||
|
position: relative; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li > a .pcoded-mtext { |
||||
|
transition: all 0s ease-in; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li > a:before { |
||||
|
font-family: 'themify'; |
||||
|
font-size: 12px; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li:hover a:before { |
||||
|
font-family: 'themify'; |
||||
|
font-size: 12px; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li > a > .pcoded-micon { |
||||
|
font-size: 14px; |
||||
|
padding: 0; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item.pcoded-search-item > li > a > .pcoded-micon { |
||||
|
padding: 0 5px 0 7px; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li > a .pcoded-micon { |
||||
|
font-size: 13px; |
||||
|
padding-right: 5px; } |
||||
|
.pcoded[horizontal-layout="wide"] .pcoded-container { |
||||
|
width: 100%; |
||||
|
display: block; } |
||||
|
.pcoded[horizontal-layout="box"] .pcoded-container { |
||||
|
display: block; |
||||
|
margin: 0 auto; |
||||
|
max-width: 1200px; |
||||
|
width: 100%; } |
||||
|
.pcoded[theme-layout="horizontal"][horizontal-layout="box"] .pcoded-header[pcoded-header-position="fixed"] { |
||||
|
max-width: 1200px; } |
||||
|
.pcoded[theme-layout="horizontal"][horizontal-layout="box"] .pcoded-navbar.stickybar, .pcoded[theme-layout="horizontal"][horizontal-layout="box"] .pcoded-navbar[pcoded-navbar-position="fixed"] { |
||||
|
max-width: 1200px; } |
||||
|
.pcoded[horizontal-layout="widebox"] .pcoded-container { |
||||
|
width: 100%; } |
||||
|
.pcoded[horizontal-layout="widebox"] .pcoded-content .pcoded-wrapper, |
||||
|
.pcoded[horizontal-layout="widebox"] .pcoded-header .pcoded-wrapper, |
||||
|
.pcoded[horizontal-layout="widebox"] .pcoded-navbar .pcoded-wrapper { |
||||
|
display: block; |
||||
|
margin: 0 auto; |
||||
|
max-width: 1200px; |
||||
|
width: 100%; } |
||||
|
.pcoded[horizontal-layout="wide"][horizontal-placement="bottom"] .pcoded-navbar { |
||||
|
width: 100%; } |
||||
|
.pcoded[horizontal-layout="box"][horizontal-placement="bottom"] .pcoded-navbar { |
||||
|
margin: 0 auto; |
||||
|
max-width: 1200px; |
||||
|
width: 100%; } |
||||
|
.pcoded[horizontal-layout="widebox"][horizontal-placement="bottom"] .pcoded-navbar { |
||||
|
width: 100%; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li { |
||||
|
float: left; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu { |
||||
|
position: absolute; |
||||
|
min-width: 200px; |
||||
|
z-index: 1; |
||||
|
border-top-style: solid; |
||||
|
border-top-width: 1px; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu li > a { |
||||
|
font-size: 14px; |
||||
|
font-weight: 500; |
||||
|
line-height: 34px; |
||||
|
text-align: left; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-submenu .pcoded-submenu { |
||||
|
position: absolute; |
||||
|
min-width: 250px; |
||||
|
z-index: 1; |
||||
|
left: 100%; |
||||
|
top: -1px; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu { |
||||
|
opacity: 0; |
||||
|
visibility: hidden; |
||||
|
-webkit-transform-origin: 50% 50%; |
||||
|
transform-origin: 50% 50%; |
||||
|
-webkit-transition: -webkit-transform 0.3s, opacity 0.3s; |
||||
|
transition: transform 0.3s, opacity 0.3s; |
||||
|
transform-style: preserve-3d; |
||||
|
-webkit-transform-style: preserve-3d; |
||||
|
transform: rotateX(-90deg); |
||||
|
-webkit-transform: rotateX(-90deg); } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item .pcoded-hasmenu.pcoded-trigger > .pcoded-submenu { |
||||
|
opacity: 1; |
||||
|
visibility: visible; |
||||
|
transform: rotateX(0deg); |
||||
|
-webkit-transform: rotateX(0deg); } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar[pcoded-navbar-position="relative"] { |
||||
|
position: relative; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar[pcoded-navbar-position="fixed"] { |
||||
|
position: fixed; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar[pcoded-navbar-position="absolute"] { |
||||
|
position: absolute; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar li.pcoded-hasmenu > a:after { |
||||
|
font-family: "themify"; |
||||
|
font-size: 12px; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar li.pcoded-hasmenu{ |
||||
|
content: "\e649"; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar li.pcoded-hasmenu{ |
||||
|
content: "\e64b"; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar li.pcoded-hasmenu{ |
||||
|
content: "\e661"; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar li.pcoded-hasmenu{ |
||||
|
content: "\e663"; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar li.pcoded-hasmenu{ |
||||
|
content: '\e61a'; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar li.pcoded-hasmenu{ |
||||
|
content: '\e622'; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-header[pcoded-header-position="relative"] { |
||||
|
position: relative; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-header[pcoded-header-position="fixed"] { |
||||
|
position: fixed; |
||||
|
top: 0; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-header[pcoded-header-position="absolute"] { |
||||
|
position: absolute; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-brand.pcoded-left-align, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-left-item.pcoded-left-align, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-right-item.pcoded-left-align, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-search-item.pcoded-left-align { |
||||
|
float: left; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-brand.pcoded-right-align, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-left-item.pcoded-right-align, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-right-item.pcoded-right-align, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-search-item.pcoded-right-align { |
||||
|
float: right; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[item-border="true"][item-border-style="dashed"] > li > a { |
||||
|
border-right-style: dashed; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[item-border="true"][item-border-style="dotted"] > li > a { |
||||
|
border-right-style: dotted; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[item-border="true"][item-border-style="solid"] > li > a { |
||||
|
border-right-style: solid; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[item-border="true"][item-border-style="dashed"] .pcoded-hasmenu .pcoded-submenu li > a { |
||||
|
border-bottom-style: dashed; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[item-border="true"][item-border-style="dotted"] .pcoded-hasmenu .pcoded-submenu li > a { |
||||
|
border-bottom-style: dotted; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[item-border="true"][item-border-style="solid"] .pcoded-hasmenu .pcoded-submenu li > a { |
||||
|
border-bottom-style: solid; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[item-border="false"] > li > a { |
||||
|
border-right-width: 0; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[item-border="true"] > li > a { |
||||
|
border-right-width: 1px; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[subitem-border="false"] .pcoded-hasmenu .pcoded-submenu li > a { |
||||
|
border-bottom-width: 0; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[subitem-border="true"] .pcoded-hasmenu .pcoded-submenu li > a { |
||||
|
border-bottom-width: 1px; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-submenu li.pcoded-hasmenu > a:after { |
||||
|
margin-left: 3px; |
||||
|
position: relative; |
||||
|
float: right; |
||||
|
top: 1px; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.active > a:after, .pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.pcoded-trigger > a:after, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu > a:after { |
||||
|
font-style: normal; |
||||
|
margin-left: 3px; |
||||
|
padding-left: 5px; |
||||
|
position: relative; } |
||||
|
|
||||
|
@-moz-document url-prefix() { |
||||
|
.theme-option select { |
||||
|
-webkit-appearance: none !important; |
||||
|
/*Removes default chrome and safari style*/ |
||||
|
-moz-appearance: none !important; |
||||
|
/* Removes Default Firefox style*/ |
||||
|
background: #FFF url("../images/select-arrow.png") no-repeat 95% center !important; |
||||
|
width: 100% !important; |
||||
|
/*Width of select dropdown to give space for arrow image*/ |
||||
|
text-indent: 0.01px; |
||||
|
/* Removes default arrow from firefox*/ |
||||
|
text-overflow: ""; |
||||
|
/*Removes default arrow from firefox*/ |
||||
|
/*My custom style for fonts*/ |
||||
|
color: #555; |
||||
|
border-radius: 4px; |
||||
|
font: inherit; |
||||
|
line-height: 1.5em; |
||||
|
border: 1px solid #ddd !important; } } |
||||
|
li.edge > ul { |
||||
|
left: auto !important; |
||||
|
right: 100%; } |
||||
|
|
||||
|
.stickybar { |
||||
|
height: 40px; |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
width: 100% !important; } |
||||
|
|
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu.edge.pcoded-trigger > .pcoded-submenu { |
||||
|
right: 0; } |
||||
|
.pcoded[horizontal-layout="box"][horizontal-placement="bottom"] .pcoded-navbar, .pcoded[horizontal-layout="wide"][horizontal-placement="bottom"] .pcoded-navbar, .pcoded[horizontal-layout="widebox"][horizontal-placement="bottom"] .pcoded-navbar { |
||||
|
bottom: 0; |
||||
|
position: fixed; } |
||||
|
.pcoded[horizontal-placement="bottom"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu > .pcoded-submenu { |
||||
|
bottom: 40px; } |
||||
|
.pcoded[horizontal-placement="bottom"] .pcoded-navbar .pcoded-item .pcoded-submenu .pcoded-submenu { |
||||
|
bottom: 0; |
||||
|
top: auto; } |
||||
|
.pcoded[horizontal-placement="bottom"] .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu { |
||||
|
border-bottom-style: solid; |
||||
|
border-bottom-width: 1px; |
||||
|
border-top-width: 0; } |
||||
|
.pcoded[horizontal-placement="top"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.pcoded-trigger > a > .pcoded-mcaret { |
||||
|
background: transparent none repeat scroll 0 0; |
||||
|
border-bottom-style: solid; |
||||
|
border-bottom-width: 7px; |
||||
|
border-left: 8px solid transparent; |
||||
|
border-right: 8px solid transparent; |
||||
|
bottom: 0; |
||||
|
display: block; |
||||
|
float: right; |
||||
|
height: 0; |
||||
|
margin: 0 auto; |
||||
|
position: absolute; |
||||
|
right: 50%; |
||||
|
width: 0; } |
||||
|
.pcoded[theme-layout="horizontal"][horizontal-placement="top"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.pcoded-trigger.active .pcoded-submenu { |
||||
|
border-top-style: solid; |
||||
|
border-top-width: 1px; } |
||||
|
.pcoded[theme-layout="horizontal"][horizontal-placement="top"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.pcoded-trigger.active > a > .pcoded-mcaret { |
||||
|
border-bottom-width: 7px; |
||||
|
border-bottom-style: solid; } |
||||
|
.pcoded[horizontal-placement="bottom"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.pcoded-trigger > a > .pcoded-mcaret { |
||||
|
background: transparent none repeat scroll 0 0; |
||||
|
border-top-style: solid; |
||||
|
border-top-width: 7px; |
||||
|
border-left: 8px solid transparent; |
||||
|
border-right: 8px solid transparent; |
||||
|
top: 0; |
||||
|
display: block; |
||||
|
float: right; |
||||
|
height: 0; |
||||
|
margin: 0 auto; |
||||
|
position: absolute; |
||||
|
right: 50%; |
||||
|
width: 0; } |
||||
|
.pcoded[theme-layout="horizontal"][horizontal-placement="bottom"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.pcoded-trigger.active > a > .pcoded-mcaret { |
||||
|
border-top-width: 7px; |
||||
|
border-top-style: solid; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item[subitem-border="true"] .pcoded-hasmenu .pcoded-submenu > li:last-child > a { |
||||
|
border-bottom-color: transparent !important; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item > li > a { |
||||
|
padding: 9px; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item > li > a > .pcoded-micon { |
||||
|
display: none; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item.pcoded-search-item > li > a > .pcoded-micon { |
||||
|
display: block; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-brand.pcoded-left-align { |
||||
|
/* display: none; */ } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar.isCentered, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar.isCentered { |
||||
|
text-align: center; } |
||||
|
.pcoded[pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu, .pcoded[pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu { |
||||
|
text-align: left; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar.isCentered .pcoded-brand { |
||||
|
display: inline-block; |
||||
|
float: none; |
||||
|
float: unset; |
||||
|
margin-top: 0; |
||||
|
position: relative; |
||||
|
top: -13px; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar.isCentered .pcoded-left-item, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar.isCentered .pcoded-right-item, |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar.isCentered .pcoded-search-item { |
||||
|
display: inline-block; } |
||||
|
.pcoded .pcoded-navbar.isCentered .pcoded-item > li { |
||||
|
display: inline-block; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar .pcoded-inner-navbar, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-inner-navbar { |
||||
|
position: relative; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item, .pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item > li.fullwidth-drop, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item > li.fullwidth-drop { |
||||
|
position: static; |
||||
|
position: static; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu { |
||||
|
min-width: 200px; |
||||
|
width: 100%; |
||||
|
left: 0; |
||||
|
right: 0; |
||||
|
top: auto; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu li, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu li { |
||||
|
display: inline-block; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu li, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu li { |
||||
|
position: static; |
||||
|
position: static; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"].pcoded-navbar .pcoded-item > li.fullwidth-drop .pcoded-submenu .pcoded-submenu, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"].pcoded-navbar .pcoded-item > li.fullwidth-drop .pcoded-submenu .pcoded-submenu { |
||||
|
top: 100%; |
||||
|
left: 0; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item[subitem-border="true"] .pcoded-hasmenu.fullwidth-drop .pcoded-submenu li > a { |
||||
|
border-bottom-width: 0; } |
||||
|
.pcoded[horizontal-placement="bottom"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu.fullwidth-drop > .pcoded-submenu { |
||||
|
bottom: 100%; } |
||||
|
.pcoded[horizontal-placement="bottom"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu.fullwidth-drop > .pcoded-submenu > .pcoded-hasmenu > .pcoded-submenu { |
||||
|
bottom: 100%; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu.fullwidth-drop .pcoded-submenu li > a { |
||||
|
display: inline-block; } |
||||
|
|
||||
|
.pcoded-inner-navbar { |
||||
|
position: relative; } |
||||
|
|
||||
|
.pcoded .pcoded-navbar .pcoded-item { |
||||
|
position: static; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li.megamenu-half { |
||||
|
position: static; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li.megamenu-half.pcoded-hasmenu .pcoded-submenu { |
||||
|
left: auto; |
||||
|
min-width: 200px; |
||||
|
right: auto; |
||||
|
width: 50%; } |
||||
|
.pcoded .megamenu-half .pcoded-submenu { |
||||
|
padding: 10px !important; |
||||
|
color: #b4bcc8; } |
||||
|
.pcoded[horizontal-placement="bottom"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu.megamenu-half > .pcoded-submenu { |
||||
|
bottom: 100%; } |
||||
|
|
||||
|
.pcoded-inner-navbar { |
||||
|
position: relative; } |
||||
|
|
||||
|
.pcoded .pcoded-navbar .pcoded-item { |
||||
|
position: static; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li.megamenu-full { |
||||
|
position: static; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item > li.megamenu-full.pcoded-hasmenu .pcoded-submenu { |
||||
|
left: 0; |
||||
|
min-width: 200px; |
||||
|
right: 0; |
||||
|
width: 100%; } |
||||
|
.pcoded .megamenu-full .pcoded-submenu { |
||||
|
padding: 10px !important; |
||||
|
color: #b4bcc8; } |
||||
|
.pcoded[horizontal-placement="bottom"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu.megamenu-full > .pcoded-submenu { |
||||
|
bottom: 100%; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu.pcoded-megamenu ul { |
||||
|
margin: 0; |
||||
|
padding: 0; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu.pcoded-megamenu ul li { |
||||
|
display: block; |
||||
|
list-style: outside none none; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu.pcoded-megamenu ul li a { |
||||
|
border-bottom-width: 0 !important; |
||||
|
font-size: 13px; |
||||
|
font-weight: 500; |
||||
|
line-height: 23px; |
||||
|
padding: 0; |
||||
|
text-decoration: none; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu.pcoded-megamenu ul li a:hover { |
||||
|
text-decoration: none; |
||||
|
background: transparent !important; |
||||
|
color: #FFF; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu.pcoded-megamenu ul li.title { |
||||
|
display: block; |
||||
|
font-size: 13px; |
||||
|
font-weight: 600; |
||||
|
padding: 10px 0; |
||||
|
margin-bottom: 10px; |
||||
|
border-bottom-width: 1px; |
||||
|
border-bottom-style: solid; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu .pcoded-submenu.pcoded-megamenu .pcoded-gridbox { |
||||
|
border-radius: 2px; |
||||
|
font-size: 10px; |
||||
|
margin-bottom: 11px; |
||||
|
min-height: 23px; |
||||
|
padding-top: 5px; |
||||
|
text-align: center; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-header .pcoded-rl-header { |
||||
|
display: none; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-header .pcoded-right-header .pcoded-rr-header { |
||||
|
text-align: center; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcodedbrand-xs, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcodedbrand-xs { |
||||
|
height: 40px; |
||||
|
width: 100%; |
||||
|
padding: 0; |
||||
|
margin: 0; |
||||
|
position: relative; |
||||
|
display: none; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcodedbrand-xs { |
||||
|
height: 40px; |
||||
|
width: 100%; |
||||
|
padding: 0; |
||||
|
margin: 0; |
||||
|
position: relative; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcodedbrand-xs .pcoded-brand a { |
||||
|
font-family: lato; |
||||
|
font-size: 20px !important; |
||||
|
font-weight: 700; |
||||
|
line-height: 40px; |
||||
|
padding: 0 10px; |
||||
|
text-decoration: none; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcodedbrand-xs .menu-toggle { |
||||
|
float: right; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar { |
||||
|
height: auto; |
||||
|
padding: 10px 10px 0; |
||||
|
position: absolute; |
||||
|
opacity: 0; |
||||
|
visibility: hidden; |
||||
|
transform-origin: 50% 50%; |
||||
|
transition: transform 0.3s, opacity 0.3s; |
||||
|
transform-style: preserve-3d; |
||||
|
transform: rotateX(-90deg); } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-inner-navbar { |
||||
|
height: auto; |
||||
|
position: relative; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-brand a { |
||||
|
display: none; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar.show-menu { |
||||
|
opacity: 1; |
||||
|
visibility: visible; |
||||
|
transform: rotateX(0deg); } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-brand a { |
||||
|
font-family: lato; |
||||
|
font-size: 20px !important; |
||||
|
font-weight: 700; |
||||
|
line-height: 40px; |
||||
|
padding: 0 10px; |
||||
|
text-decoration: none; } |
||||
|
.pcoded[pcoded-device-type="desktop"] .pcoded-navbar .pcoded-brand .menu-toggle, .pcoded[pcoded-device-type="phone"] .pcoded-navbar .pcoded-brand .menu-toggle, .pcoded[pcoded-device-type="tablet"] .pcoded-navbar .pcoded-brand .menu-toggle { |
||||
|
display: none; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-brand { |
||||
|
float: unset !important; |
||||
|
float: none !important; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-brand .menu-toggle { |
||||
|
float: right; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item { |
||||
|
display: block; |
||||
|
float: none !important; |
||||
|
position: relative; |
||||
|
width: 100%; |
||||
|
z-index: 1; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > li { |
||||
|
float: none; |
||||
|
display: block; |
||||
|
position: relative; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item[item-border="true"] > li > a { |
||||
|
border-right-width: 0; |
||||
|
border-bottom-width: 1px; |
||||
|
border-bottom-style: solid; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item[item-border="true"] > li.pcoded-trigger > a { |
||||
|
border-bottom-width: 0; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu > .pcoded-submenu { |
||||
|
min-width: 100%; |
||||
|
z-index: 2; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu.pcoded-trigger > .pcoded-submenu { |
||||
|
position: relative; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu > .pcoded-submenu > .pcoded-hasmenu > .pcoded-submenu { |
||||
|
left: 0; |
||||
|
min-width: 100%; |
||||
|
right: 0; |
||||
|
top: 0; |
||||
|
z-index: 1; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu > .pcoded-submenu > .pcoded-hasmenu.pcoded-trigger > .pcoded-submenu > .pcoded-hasmenu.pcoded-trigger > .pcoded-submenu, |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu > .pcoded-submenu > .pcoded-hasmenu.pcoded-trigger > .pcoded-submenu { |
||||
|
position: relative; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > .pcoded-hasmenu > .pcoded-submenu > .pcoded-hasmenu > .pcoded-submenu > .pcoded-hasmenu > .pcoded-submenu { |
||||
|
left: 0; |
||||
|
min-width: 100%; |
||||
|
right: 0; |
||||
|
top: 0; |
||||
|
z-index: 1; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"][horizontal-placement="bottom"] .pcoded-navbar { |
||||
|
bottom: auto; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.active > a:after, .pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu.pcoded-trigger > a:after, |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu > a:after { |
||||
|
position: absolute; |
||||
|
right: 13px; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="phone"] .pcoded-header, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-header { |
||||
|
height: auto; } |
||||
|
|
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-submenu > li a .pcoded-badge { |
||||
|
top: 13px; |
||||
|
right: 20px; } |
||||
|
|
||||
|
.pcoded-rr-header .btn { |
||||
|
font-size: 12px; |
||||
|
font-weight: 600; |
||||
|
margin-left: 5px; } |
||||
|
|
||||
|
.pcoded-main-container { |
||||
|
clear: both; } |
||||
|
|
||||
|
.pcoded-address span { |
||||
|
float: left; } |
||||
|
|
||||
|
.pcoded .pcoded-navbar .pcoded-item .pcoded-hasmenu.fullwidth-drop .pcoded-submenu li > a { |
||||
|
display: list-item; } |
||||
|
.pcoded[theme-layout="horizontal"] .pcoded-navbar .pcoded-item[subitem-border="true"] .pcoded-hasmenu.fullwidth-drop .pcoded-submenu li > a { |
||||
|
border-bottom-width: 0; } |
||||
|
.pcoded[theme-layout="horizontal"][pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu li, .pcoded[theme-layout="horizontal"][pcoded-device-type="tablet"] .pcoded-navbar .pcoded-item > li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu li { |
||||
|
display: block; |
||||
|
float: left; } |
||||
|
.pcoded .pcoded-navbar .pcoded-item li.fullwidth-drop.pcoded-hasmenu .pcoded-submenu li.pcoded-hasmenu > a:after { |
||||
|
float: none; } |
||||
|
.pcoded .pcoded-header[header-theme="theme1"] { |
||||
|
background: #fff; } |
||||
|
.pcoded .pcoded-header[header-theme="theme2"] { |
||||
|
background: #FF7588; } |
||||
|
.pcoded .pcoded-header[header-theme="theme3"] { |
||||
|
background: #00bcd4; } |
||||
|
.pcoded .pcoded-header[header-theme="theme4"] { |
||||
|
background: #16D39A; } |
||||
|
.pcoded .pcoded-header[header-theme="theme5"] { |
||||
|
background: #2196F3; } |
||||
|
.pcoded .pcoded-header[header-theme="theme6"] { |
||||
|
background: rgb(21,69,93) } |
||||
|
|
||||
|
body.horizontal-icon .pcoded .main-body, body.horizontal-icon-fixed .pcoded .main-body { |
||||
|
margin-top: 60px; } |
||||
|
body.horizontal-icon .pcoded .pcoded-navbar, body.horizontal-icon-fixed .pcoded .pcoded-navbar { |
||||
|
height: 70px; } |
||||
|
body.horizontal-icon .pcoded .pcoded-navbar .pcoded-item > li > a > .pcoded-micon, body.horizontal-icon-fixed .pcoded .pcoded-navbar .pcoded-item > li > a > .pcoded-micon { |
||||
|
display: block; |
||||
|
text-align: center; |
||||
|
margin: 0 auto; } |
||||
|
body.horizontal-icon .pcoded .pcoded-navbar .pcoded-item > li.pcoded-hasmenu > a, body.horizontal-icon-fixed .pcoded .pcoded-navbar .pcoded-item > li.pcoded-hasmenu > a { |
||||
|
line-height: 30px; } |
||||
|
body.horizontal-icon .pcoded[pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu > a, body.horizontal-icon-fixed .pcoded[pcoded-device-type="desktop"] .pcoded-navbar .pcoded-item > li.pcoded-hasmenu > a { |
||||
|
height: 70px; } |
||||
|
|
||||
|
/*# sourceMappingURL=pcoded-horizontal.min.css.map */ |
||||
1
src/main/resources/static/assets/css/style.css
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,735 @@ |
|||||
|
/** |
||||
|
* Swiper 11.2.5 |
||||
|
* Most modern mobile touch slider and framework with hardware accelerated transitions |
||||
|
* https://swiperjs.com |
||||
|
* |
||||
|
* Copyright 2014-2025 Vladimir Kharlampidi |
||||
|
* |
||||
|
* Released under the MIT License |
||||
|
* |
||||
|
* Released on: March 3, 2025 |
||||
|
*/ |
||||
|
|
||||
|
@font-face { |
||||
|
font-family: swiper-icons; |
||||
|
src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA'); |
||||
|
font-weight: 400; |
||||
|
font-style: normal |
||||
|
} |
||||
|
|
||||
|
:root { |
||||
|
--swiper-theme-color: #007aff |
||||
|
} |
||||
|
|
||||
|
:host { |
||||
|
position: relative; |
||||
|
display: block; |
||||
|
margin-left: auto; |
||||
|
margin-right: auto; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
.swiper { |
||||
|
margin-left: auto; |
||||
|
margin-right: auto; |
||||
|
position: relative; |
||||
|
overflow: hidden; |
||||
|
list-style: none; |
||||
|
padding: 0; |
||||
|
z-index: 1; |
||||
|
display: block |
||||
|
} |
||||
|
|
||||
|
.swiper-vertical > .swiper-wrapper { |
||||
|
flex-direction: column |
||||
|
} |
||||
|
|
||||
|
.swiper-wrapper { |
||||
|
position: relative; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
z-index: 1; |
||||
|
display: flex; |
||||
|
transition-property: transform; |
||||
|
transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial); |
||||
|
box-sizing: content-box |
||||
|
} |
||||
|
|
||||
|
.swiper-android .swiper-slide, .swiper-ios .swiper-slide, .swiper-wrapper { |
||||
|
transform: translate3d(0px, 0, 0) |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal { |
||||
|
touch-action: pan-y |
||||
|
} |
||||
|
|
||||
|
.swiper-vertical { |
||||
|
touch-action: pan-x |
||||
|
} |
||||
|
|
||||
|
.swiper-slide { |
||||
|
flex-shrink: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
position: relative; |
||||
|
transition-property: transform; |
||||
|
display: block |
||||
|
} |
||||
|
|
||||
|
.swiper-slide-invisible-blank { |
||||
|
visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.swiper-autoheight, .swiper-autoheight .swiper-slide { |
||||
|
height: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-autoheight .swiper-wrapper { |
||||
|
align-items: flex-start; |
||||
|
transition-property: transform, height |
||||
|
} |
||||
|
|
||||
|
.swiper-backface-hidden .swiper-slide { |
||||
|
transform: translateZ(0); |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.swiper-3d.swiper-css-mode .swiper-wrapper { |
||||
|
perspective: 1200px |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-wrapper { |
||||
|
transform-style: preserve-3d |
||||
|
} |
||||
|
|
||||
|
.swiper-3d { |
||||
|
perspective: 1200px |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-cube-shadow, .swiper-3d .swiper-slide { |
||||
|
transform-style: preserve-3d |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode > .swiper-wrapper { |
||||
|
overflow: auto; |
||||
|
scrollbar-width: none; |
||||
|
-ms-overflow-style: none |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode > .swiper-wrapper > .swiper-slide { |
||||
|
scroll-snap-align: start start |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-horizontal > .swiper-wrapper { |
||||
|
scroll-snap-type: x mandatory |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-vertical > .swiper-wrapper { |
||||
|
scroll-snap-type: y mandatory |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-free-mode > .swiper-wrapper { |
||||
|
scroll-snap-type: none |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide { |
||||
|
scroll-snap-align: none |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered > .swiper-wrapper::before { |
||||
|
content: ''; |
||||
|
flex-shrink: 0; |
||||
|
order: 9999 |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide { |
||||
|
scroll-snap-align: center center; |
||||
|
scroll-snap-stop: always |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child { |
||||
|
margin-inline-start: var(--swiper-centered-offset-before) |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before { |
||||
|
height: 100%; |
||||
|
min-height: 1px; |
||||
|
width: var(--swiper-centered-offset-after) |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child { |
||||
|
margin-block-start: var(--swiper-centered-offset-before) |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before { |
||||
|
width: 100%; |
||||
|
min-width: 1px; |
||||
|
height: var(--swiper-centered-offset-after) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow, .swiper-3d .swiper-slide-shadow-bottom, .swiper-3d .swiper-slide-shadow-left, .swiper-3d .swiper-slide-shadow-right, .swiper-3d .swiper-slide-shadow-top { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
pointer-events: none; |
||||
|
z-index: 10 |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow { |
||||
|
background: rgba(0, 0, 0, .15) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow-left { |
||||
|
background-image: linear-gradient(to left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0)) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow-right { |
||||
|
background-image: linear-gradient(to right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0)) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow-top { |
||||
|
background-image: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0)) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow-bottom { |
||||
|
background-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0)) |
||||
|
} |
||||
|
|
||||
|
.swiper-lazy-preloader { |
||||
|
width: 42px; |
||||
|
height: 42px; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
margin-left: -21px; |
||||
|
margin-top: -21px; |
||||
|
z-index: 10; |
||||
|
transform-origin: 50%; |
||||
|
box-sizing: border-box; |
||||
|
border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); |
||||
|
border-radius: 50%; |
||||
|
border-top-color: transparent |
||||
|
} |
||||
|
|
||||
|
.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader, .swiper:not(.swiper-watch-progress) .swiper-lazy-preloader { |
||||
|
animation: swiper-preloader-spin 1s infinite linear |
||||
|
} |
||||
|
|
||||
|
.swiper-lazy-preloader-white { |
||||
|
--swiper-preloader-color: #fff |
||||
|
} |
||||
|
|
||||
|
.swiper-lazy-preloader-black { |
||||
|
--swiper-preloader-color: #000 |
||||
|
} |
||||
|
|
||||
|
@keyframes swiper-preloader-spin { |
||||
|
0% { |
||||
|
transform: rotate(0deg) |
||||
|
} |
||||
|
100% { |
||||
|
transform: rotate(360deg) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.swiper-virtual .swiper-slide { |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
transform: translateZ(0) |
||||
|
} |
||||
|
|
||||
|
.swiper-virtual.swiper-css-mode .swiper-wrapper::after { |
||||
|
content: ''; |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after { |
||||
|
height: 1px; |
||||
|
width: var(--swiper-virtual-size) |
||||
|
} |
||||
|
|
||||
|
.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after { |
||||
|
width: 1px; |
||||
|
height: var(--swiper-virtual-size) |
||||
|
} |
||||
|
|
||||
|
:root { |
||||
|
--swiper-navigation-size: 44px |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next, .swiper-button-prev { |
||||
|
position: absolute; |
||||
|
top: var(--swiper-navigation-top-offset, 50%); |
||||
|
width: calc(var(--swiper-navigation-size) / 44 * 27); |
||||
|
height: var(--swiper-navigation-size); |
||||
|
margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); |
||||
|
z-index: 10; |
||||
|
cursor: pointer; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
color: var(--swiper-navigation-color, var(--swiper-theme-color)) |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled { |
||||
|
opacity: .35; |
||||
|
cursor: auto; |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next.swiper-button-hidden, .swiper-button-prev.swiper-button-hidden { |
||||
|
opacity: 0; |
||||
|
cursor: auto; |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-navigation-disabled .swiper-button-next, .swiper-navigation-disabled .swiper-button-prev { |
||||
|
display: none !important |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next svg, .swiper-button-prev svg { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
object-fit: contain; |
||||
|
transform-origin: center |
||||
|
} |
||||
|
|
||||
|
.swiper-rtl .swiper-button-next svg, .swiper-rtl .swiper-button-prev svg { |
||||
|
transform: rotate(180deg) |
||||
|
} |
||||
|
|
||||
|
.swiper-button-prev, .swiper-rtl .swiper-button-next { |
||||
|
left: var(--swiper-navigation-sides-offset, 10px); |
||||
|
right: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next, .swiper-rtl .swiper-button-prev { |
||||
|
right: var(--swiper-navigation-sides-offset, 10px); |
||||
|
left: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-button-lock { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next:after, .swiper-button-prev:after { |
||||
|
font-family: swiper-icons; |
||||
|
font-size: var(--swiper-navigation-size); |
||||
|
text-transform: none !important; |
||||
|
letter-spacing: 0; |
||||
|
font-variant: initial; |
||||
|
line-height: 1 |
||||
|
} |
||||
|
|
||||
|
.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after { |
||||
|
content: 'prev' |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next, .swiper-rtl .swiper-button-prev { |
||||
|
right: var(--swiper-navigation-sides-offset, 10px); |
||||
|
left: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after { |
||||
|
content: 'next' |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination { |
||||
|
position: absolute; |
||||
|
text-align: center; |
||||
|
transition: .3s opacity; |
||||
|
transform: translate3d(0, 0, 0); |
||||
|
z-index: 10 |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination.swiper-pagination-hidden { |
||||
|
opacity: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-disabled > .swiper-pagination, .swiper-pagination.swiper-pagination-disabled { |
||||
|
display: none !important |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction { |
||||
|
bottom: var(--swiper-pagination-bottom, 8px); |
||||
|
top: var(--swiper-pagination-top, auto); |
||||
|
left: 0; |
||||
|
width: 100% |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic { |
||||
|
overflow: hidden; |
||||
|
font-size: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { |
||||
|
transform: scale(.33); |
||||
|
position: relative |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { |
||||
|
transform: scale(1) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { |
||||
|
transform: scale(1) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { |
||||
|
transform: scale(.66) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { |
||||
|
transform: scale(.33) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { |
||||
|
transform: scale(.66) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { |
||||
|
transform: scale(.33) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullet { |
||||
|
width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px)); |
||||
|
height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px)); |
||||
|
display: inline-block; |
||||
|
border-radius: var(--swiper-pagination-bullet-border-radius, 50%); |
||||
|
background: var(--swiper-pagination-bullet-inactive-color, #000); |
||||
|
opacity: var(--swiper-pagination-bullet-inactive-opacity, .2) |
||||
|
} |
||||
|
|
||||
|
button.swiper-pagination-bullet { |
||||
|
border: none; |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
box-shadow: none; |
||||
|
-webkit-appearance: none; |
||||
|
appearance: none |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-clickable .swiper-pagination-bullet { |
||||
|
cursor: pointer |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullet:only-child { |
||||
|
display: none !important |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullet-active { |
||||
|
opacity: var(--swiper-pagination-bullet-opacity, 1); |
||||
|
background: var(--swiper-pagination-color, var(--swiper-theme-color)) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-vertical.swiper-pagination-bullets, .swiper-vertical > .swiper-pagination-bullets { |
||||
|
right: var(--swiper-pagination-right, 8px); |
||||
|
left: var(--swiper-pagination-left, auto); |
||||
|
top: 50%; |
||||
|
transform: translate3d(0px, -50%, 0) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet { |
||||
|
margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0; |
||||
|
display: block |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { |
||||
|
top: 50%; |
||||
|
transform: translateY(-50%); |
||||
|
width: 8px |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, .swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { |
||||
|
display: inline-block; |
||||
|
transition: .2s transform, .2s top |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet { |
||||
|
margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px) |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { |
||||
|
left: 50%; |
||||
|
transform: translateX(-50%); |
||||
|
white-space: nowrap |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { |
||||
|
transition: .2s transform, .2s left |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { |
||||
|
transition: .2s transform, .2s right |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-fraction { |
||||
|
color: var(--swiper-pagination-fraction-color, inherit) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-progressbar { |
||||
|
background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25)); |
||||
|
position: absolute |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { |
||||
|
background: var(--swiper-pagination-color, var(--swiper-theme-color)); |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
transform: scale(0); |
||||
|
transform-origin: left top |
||||
|
} |
||||
|
|
||||
|
.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { |
||||
|
transform-origin: right top |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-progressbar, .swiper-pagination-progressbar.swiper-pagination-horizontal, .swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite, .swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite { |
||||
|
width: 100%; |
||||
|
height: var(--swiper-pagination-progressbar-size, 4px); |
||||
|
left: 0; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-vertical, .swiper-vertical > .swiper-pagination-progressbar { |
||||
|
width: var(--swiper-pagination-progressbar-size, 4px); |
||||
|
height: 100%; |
||||
|
left: 0; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-lock { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar { |
||||
|
border-radius: var(--swiper-scrollbar-border-radius, 10px); |
||||
|
position: relative; |
||||
|
touch-action: none; |
||||
|
background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1)) |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar-disabled > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-disabled { |
||||
|
display: none !important |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-horizontal { |
||||
|
position: absolute; |
||||
|
left: var(--swiper-scrollbar-sides-offset, 1%); |
||||
|
bottom: var(--swiper-scrollbar-bottom, 4px); |
||||
|
top: var(--swiper-scrollbar-top, auto); |
||||
|
z-index: 50; |
||||
|
height: var(--swiper-scrollbar-size, 4px); |
||||
|
width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)) |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar.swiper-scrollbar-vertical, .swiper-vertical > .swiper-scrollbar { |
||||
|
position: absolute; |
||||
|
left: var(--swiper-scrollbar-left, auto); |
||||
|
right: var(--swiper-scrollbar-right, 4px); |
||||
|
top: var(--swiper-scrollbar-sides-offset, 1%); |
||||
|
z-index: 50; |
||||
|
width: var(--swiper-scrollbar-size, 4px); |
||||
|
height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)) |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar-drag { |
||||
|
height: 100%; |
||||
|
width: 100%; |
||||
|
position: relative; |
||||
|
background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5)); |
||||
|
border-radius: var(--swiper-scrollbar-border-radius, 10px); |
||||
|
left: 0; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar-cursor-drag { |
||||
|
cursor: move |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar-lock { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.swiper-zoom-container { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
text-align: center |
||||
|
} |
||||
|
|
||||
|
.swiper-zoom-container > canvas, .swiper-zoom-container > img, .swiper-zoom-container > svg { |
||||
|
max-width: 100%; |
||||
|
max-height: 100%; |
||||
|
object-fit: contain |
||||
|
} |
||||
|
|
||||
|
.swiper-slide-zoomed { |
||||
|
cursor: move; |
||||
|
touch-action: none |
||||
|
} |
||||
|
|
||||
|
.swiper .swiper-notification { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
pointer-events: none; |
||||
|
opacity: 0; |
||||
|
z-index: -1000 |
||||
|
} |
||||
|
|
||||
|
.swiper-free-mode > .swiper-wrapper { |
||||
|
transition-timing-function: ease-out; |
||||
|
margin: 0 auto |
||||
|
} |
||||
|
|
||||
|
.swiper-grid > .swiper-wrapper { |
||||
|
flex-wrap: wrap |
||||
|
} |
||||
|
|
||||
|
.swiper-grid-column > .swiper-wrapper { |
||||
|
flex-wrap: wrap; |
||||
|
flex-direction: column |
||||
|
} |
||||
|
|
||||
|
.swiper-fade.swiper-free-mode .swiper-slide { |
||||
|
transition-timing-function: ease-out |
||||
|
} |
||||
|
|
||||
|
.swiper-fade .swiper-slide { |
||||
|
pointer-events: none; |
||||
|
transition-property: opacity |
||||
|
} |
||||
|
|
||||
|
.swiper-fade .swiper-slide .swiper-slide { |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-fade .swiper-slide-active { |
||||
|
pointer-events: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-fade .swiper-slide-active .swiper-slide-active { |
||||
|
pointer-events: auto |
||||
|
} |
||||
|
|
||||
|
.swiper.swiper-cube { |
||||
|
overflow: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide { |
||||
|
pointer-events: none; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
z-index: 1; |
||||
|
visibility: hidden; |
||||
|
transform-origin: 0 0; |
||||
|
width: 100%; |
||||
|
height: 100% |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide .swiper-slide { |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-cube.swiper-rtl .swiper-slide { |
||||
|
transform-origin: 100% 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide-active, .swiper-cube .swiper-slide-active .swiper-slide-active { |
||||
|
pointer-events: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide-active, .swiper-cube .swiper-slide-next, .swiper-cube .swiper-slide-prev { |
||||
|
pointer-events: auto; |
||||
|
visibility: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-cube-shadow { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
bottom: 0px; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
opacity: .6; |
||||
|
z-index: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-cube-shadow:before { |
||||
|
content: ''; |
||||
|
background: #000; |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
bottom: 0; |
||||
|
right: 0; |
||||
|
filter: blur(50px) |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide-next + .swiper-slide { |
||||
|
pointer-events: auto; |
||||
|
visibility: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top { |
||||
|
z-index: 0; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.swiper.swiper-flip { |
||||
|
overflow: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-flip .swiper-slide { |
||||
|
pointer-events: none; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
.swiper-flip .swiper-slide .swiper-slide { |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-flip .swiper-slide-active, .swiper-flip .swiper-slide-active .swiper-slide-active { |
||||
|
pointer-events: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top { |
||||
|
z-index: 0; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.swiper-creative .swiper-slide { |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
overflow: hidden; |
||||
|
transition-property: transform, opacity, height |
||||
|
} |
||||
|
|
||||
|
.swiper.swiper-cards { |
||||
|
overflow: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-cards .swiper-slide { |
||||
|
transform-origin: center bottom; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
overflow: hidden |
||||
|
} |
||||
@ -0,0 +1,435 @@ |
|||||
|
/*! |
||||
|
* Viewer.js v1.11.7 |
||||
|
* https://fengyuanchen.github.io/viewerjs |
||||
|
* |
||||
|
* Copyright 2015-present Chen Fengyuan |
||||
|
* Released under the MIT license |
||||
|
* |
||||
|
* Date: 2024-11-24T04:32:14.526Z |
||||
|
*/ |
||||
|
.viewer-close:before, .viewer-flip-horizontal:before, .viewer-flip-vertical:before, .viewer-fullscreen-exit:before, .viewer-fullscreen:before, .viewer-next:before, .viewer-one-to-one:before, .viewer-play:before, .viewer-prev:before, .viewer-reset:before, .viewer-rotate-left:before, .viewer-rotate-right:before, .viewer-zoom-in:before, .viewer-zoom-out:before { |
||||
|
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 40'%3E%3Cpath fill='%23fff' d='M49.6 17.9h20.2v3.9H49.6zm123.1 2 10.9-11 2.7 2.8-8.2 8.2 8.2 8.2-2.7 2.7-10.9-10.9zm94 0-10.8-11-2.7 2.8 8.1 8.2-8.1 8.2 2.7 2.7 10.8-10.9zM212 9.3l20.1 10.6L212 30.5V9.3zm161.5 4.6-7.2 6 7.2 5.9v-4h12.4v4l7.3-5.9-7.3-6v4h-12.4v-4zm40.2 12.3 5.9 7.2 5.9-7.2h-4V13.6h4l-5.9-7.3-5.9 7.3h4v12.6h-4zm35.9-16.5h6.3v2h-4.3V16h-2V9.7Zm14 0h6.2V16h-2v-4.3h-4.2v-2Zm6.2 14V30h-6.2v-2h4.2v-4.3h2Zm-14 6.3h-6.2v-6.3h2v4.4h4.3v2Zm-438 .1v-8.3H9.6v-3.9h8.2V9.7h3.9v8.2h8.1v3.9h-8.1v8.3h-3.9zM93.6 9.7h-5.8v3.9h2V30h3.8V9.7zm16.1 0h-5.8v3.9h1.9V30h3.9V9.7zm-11.9 4.1h3.9v3.9h-3.9zm0 8.2h3.9v3.9h-3.9zm244.6-11.7 7.2 5.9-7.2 6v-3.6c-5.4-.4-7.8.8-8.7 2.8-.8 1.7-1.8 4.9 2.8 8.2-6.3-2-7.5-6.9-6-11.3 1.6-4.4 8-5 11.9-4.9v-3.1Zm147.2 13.4h6.3V30h-2v-4.3h-4.3v-2zm14 6.3v-6.3h6.2v2h-4.3V30h-1.9zm6.2-14h-6.2V9.7h1.9V14h4.3v2zm-13.9 0h-6.3v-2h4.3V9.7h2V16zm33.3 12.5 8.6-8.6-8.6-8.7 1.9-1.9 8.6 8.7 8.6-8.7 1.9 1.9-8.6 8.7 8.6 8.6-1.9 2-8.6-8.7-8.6 8.7-1.9-2zM297 10.3l-7.1 5.9 7.2 6v-3.6c5.3-.4 7.7.8 8.7 2.8.8 1.7 1.7 4.9-2.9 8.2 6.3-2 7.5-6.9 6-11.3-1.6-4.4-7.9-5-11.8-4.9v-3.1Zm-157.3-.6c2.3 0 4.4.7 6 2l2.5-3 1.9 9.2h-9.3l2.6-3.1a6.2 6.2 0 0 0-9.9 5.1c0 3.4 2.8 6.3 6.2 6.3 2.8 0 5.1-1.9 6-4.4h4c-1 4.7-5 8.3-10 8.3a10 10 0 0 1-10-10.2 10 10 0 0 1 10-10.2Z'/%3E%3C/svg%3E"); |
||||
|
background-repeat: no-repeat; |
||||
|
background-size: 280px; |
||||
|
color: transparent; |
||||
|
display: block; |
||||
|
font-size: 0; |
||||
|
height: 20px; |
||||
|
line-height: 0; |
||||
|
width: 20px |
||||
|
} |
||||
|
|
||||
|
.viewer-zoom-in:before { |
||||
|
background-position: 0 0; |
||||
|
content: "Zoom In" |
||||
|
} |
||||
|
|
||||
|
.viewer-zoom-out:before { |
||||
|
background-position: -20px 0; |
||||
|
content: "Zoom Out" |
||||
|
} |
||||
|
|
||||
|
.viewer-one-to-one:before { |
||||
|
background-position: -40px 0; |
||||
|
content: "One to One" |
||||
|
} |
||||
|
|
||||
|
.viewer-reset:before { |
||||
|
background-position: -60px 0; |
||||
|
content: "Reset" |
||||
|
} |
||||
|
|
||||
|
.viewer-prev:before { |
||||
|
background-position: -80px 0; |
||||
|
content: "Previous" |
||||
|
} |
||||
|
|
||||
|
.viewer-play:before { |
||||
|
background-position: -100px 0; |
||||
|
content: "Play" |
||||
|
} |
||||
|
|
||||
|
.viewer-next:before { |
||||
|
background-position: -120px 0; |
||||
|
content: "Next" |
||||
|
} |
||||
|
|
||||
|
.viewer-rotate-left:before { |
||||
|
background-position: -140px 0; |
||||
|
content: "Rotate Left" |
||||
|
} |
||||
|
|
||||
|
.viewer-rotate-right:before { |
||||
|
background-position: -160px 0; |
||||
|
content: "Rotate Right" |
||||
|
} |
||||
|
|
||||
|
.viewer-flip-horizontal:before { |
||||
|
background-position: -180px 0; |
||||
|
content: "Flip Horizontal" |
||||
|
} |
||||
|
|
||||
|
.viewer-flip-vertical:before { |
||||
|
background-position: -200px 0; |
||||
|
content: "Flip Vertical" |
||||
|
} |
||||
|
|
||||
|
.viewer-fullscreen:before { |
||||
|
background-position: -220px 0; |
||||
|
content: "Enter Full Screen" |
||||
|
} |
||||
|
|
||||
|
.viewer-fullscreen-exit:before { |
||||
|
background-position: -240px 0; |
||||
|
content: "Exit Full Screen" |
||||
|
} |
||||
|
|
||||
|
.viewer-close:before { |
||||
|
background-position: -260px 0; |
||||
|
content: "Close" |
||||
|
} |
||||
|
|
||||
|
.viewer-container { |
||||
|
-webkit-tap-highlight-color: transparent; |
||||
|
-webkit-touch-callout: none; |
||||
|
bottom: 0; |
||||
|
direction: ltr; |
||||
|
font-size: 0; |
||||
|
left: 0; |
||||
|
line-height: 0; |
||||
|
overflow: hidden; |
||||
|
position: absolute; |
||||
|
right: 0; |
||||
|
top: 0; |
||||
|
-ms-touch-action: none; |
||||
|
touch-action: none; |
||||
|
-webkit-user-select: none; |
||||
|
-moz-user-select: none; |
||||
|
-ms-user-select: none; |
||||
|
user-select: none |
||||
|
} |
||||
|
|
||||
|
.viewer-container ::-moz-selection, .viewer-container::-moz-selection { |
||||
|
background-color: transparent |
||||
|
} |
||||
|
|
||||
|
.viewer-container ::selection, .viewer-container::selection { |
||||
|
background-color: transparent |
||||
|
} |
||||
|
|
||||
|
.viewer-container:focus { |
||||
|
outline: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-container img { |
||||
|
display: block; |
||||
|
height: auto; |
||||
|
max-height: none !important; |
||||
|
max-width: none !important; |
||||
|
min-height: 0 !important; |
||||
|
min-width: 0 !important; |
||||
|
width: 100% |
||||
|
} |
||||
|
|
||||
|
.viewer-canvas { |
||||
|
bottom: 0; |
||||
|
left: 0; |
||||
|
overflow: hidden; |
||||
|
position: absolute; |
||||
|
right: 0; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-canvas > img { |
||||
|
height: auto; |
||||
|
margin: 15px auto; |
||||
|
max-width: 90% !important; |
||||
|
width: auto |
||||
|
} |
||||
|
|
||||
|
.viewer-footer { |
||||
|
bottom: 0; |
||||
|
left: 0; |
||||
|
overflow: hidden; |
||||
|
position: absolute; |
||||
|
right: 0; |
||||
|
text-align: center |
||||
|
} |
||||
|
|
||||
|
.viewer-navbar { |
||||
|
background-color: rgba(0, 0, 0, .5); |
||||
|
overflow: hidden |
||||
|
} |
||||
|
|
||||
|
.viewer-list { |
||||
|
box-sizing: content-box; |
||||
|
height: 50px; |
||||
|
margin: 0; |
||||
|
overflow: hidden; |
||||
|
padding: 1px 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-list > li { |
||||
|
color: transparent; |
||||
|
cursor: pointer; |
||||
|
float: left; |
||||
|
font-size: 0; |
||||
|
height: 50px; |
||||
|
line-height: 0; |
||||
|
opacity: .5; |
||||
|
overflow: hidden; |
||||
|
transition: opacity .15s; |
||||
|
width: 30px |
||||
|
} |
||||
|
|
||||
|
.viewer-list > li:focus, .viewer-list > li:hover { |
||||
|
opacity: .75 |
||||
|
} |
||||
|
|
||||
|
.viewer-list > li:focus { |
||||
|
outline: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-list > li + li { |
||||
|
margin-left: 1px |
||||
|
} |
||||
|
|
||||
|
.viewer-list > .viewer-loading { |
||||
|
position: relative |
||||
|
} |
||||
|
|
||||
|
.viewer-list > .viewer-loading:after { |
||||
|
border-width: 2px; |
||||
|
height: 20px; |
||||
|
margin-left: -10px; |
||||
|
margin-top: -10px; |
||||
|
width: 20px |
||||
|
} |
||||
|
|
||||
|
.viewer-list > .viewer-active, .viewer-list > .viewer-active:focus, .viewer-list > .viewer-active:hover { |
||||
|
opacity: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-player { |
||||
|
background-color: #000; |
||||
|
bottom: 0; |
||||
|
cursor: none; |
||||
|
display: none; |
||||
|
right: 0; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-player, .viewer-player > img { |
||||
|
left: 0; |
||||
|
position: absolute; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul { |
||||
|
display: inline-block; |
||||
|
margin: 0 auto 5px; |
||||
|
overflow: hidden; |
||||
|
padding: 6px 3px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li { |
||||
|
background-color: rgba(0, 0, 0, .5); |
||||
|
border-radius: 50%; |
||||
|
cursor: pointer; |
||||
|
float: left; |
||||
|
height: 24px; |
||||
|
overflow: hidden; |
||||
|
transition: background-color .15s; |
||||
|
width: 24px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li:focus, .viewer-toolbar > ul > li:hover { |
||||
|
background-color: rgba(0, 0, 0, .8) |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li:focus { |
||||
|
box-shadow: 0 0 3px #fff; |
||||
|
outline: 0; |
||||
|
position: relative; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li:before { |
||||
|
margin: 2px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li + li { |
||||
|
margin-left: 1px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > .viewer-small { |
||||
|
height: 18px; |
||||
|
margin-bottom: 3px; |
||||
|
margin-top: 3px; |
||||
|
width: 18px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > .viewer-small:before { |
||||
|
margin: -1px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > .viewer-large { |
||||
|
height: 30px; |
||||
|
margin-bottom: -3px; |
||||
|
margin-top: -3px; |
||||
|
width: 30px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > .viewer-large:before { |
||||
|
margin: 5px |
||||
|
} |
||||
|
|
||||
|
.viewer-tooltip { |
||||
|
background-color: rgba(0, 0, 0, .8); |
||||
|
border-radius: 10px; |
||||
|
color: #fff; |
||||
|
display: none; |
||||
|
font-size: 12px; |
||||
|
height: 20px; |
||||
|
left: 50%; |
||||
|
line-height: 20px; |
||||
|
margin-left: -25px; |
||||
|
margin-top: -10px; |
||||
|
position: absolute; |
||||
|
text-align: center; |
||||
|
top: 50%; |
||||
|
width: 50px |
||||
|
} |
||||
|
|
||||
|
.viewer-title { |
||||
|
color: #ccc; |
||||
|
display: inline-block; |
||||
|
font-size: 12px; |
||||
|
line-height: 1.2; |
||||
|
margin: 5px 5%; |
||||
|
max-width: 90%; |
||||
|
min-height: 14px; |
||||
|
opacity: .8; |
||||
|
overflow: hidden; |
||||
|
text-overflow: ellipsis; |
||||
|
transition: opacity .15s; |
||||
|
white-space: nowrap |
||||
|
} |
||||
|
|
||||
|
.viewer-title:hover { |
||||
|
opacity: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-button { |
||||
|
-webkit-app-region: no-drag; |
||||
|
background-color: rgba(0, 0, 0, .5); |
||||
|
border-radius: 50%; |
||||
|
cursor: pointer; |
||||
|
height: 80px; |
||||
|
overflow: hidden; |
||||
|
position: absolute; |
||||
|
right: -40px; |
||||
|
top: -40px; |
||||
|
transition: background-color .15s; |
||||
|
width: 80px |
||||
|
} |
||||
|
|
||||
|
.viewer-button:focus, .viewer-button:hover { |
||||
|
background-color: rgba(0, 0, 0, .8) |
||||
|
} |
||||
|
|
||||
|
.viewer-button:focus { |
||||
|
box-shadow: 0 0 3px #fff; |
||||
|
outline: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-button:before { |
||||
|
bottom: 15px; |
||||
|
left: 15px; |
||||
|
position: absolute |
||||
|
} |
||||
|
|
||||
|
.viewer-fixed { |
||||
|
position: fixed |
||||
|
} |
||||
|
|
||||
|
.viewer-open { |
||||
|
overflow: hidden |
||||
|
} |
||||
|
|
||||
|
.viewer-show { |
||||
|
display: block |
||||
|
} |
||||
|
|
||||
|
.viewer-hide { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.viewer-backdrop { |
||||
|
background-color: rgba(0, 0, 0, .5) |
||||
|
} |
||||
|
|
||||
|
.viewer-invisible { |
||||
|
visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.viewer-move { |
||||
|
cursor: move; |
||||
|
cursor: grab |
||||
|
} |
||||
|
|
||||
|
.viewer-fade { |
||||
|
opacity: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-in { |
||||
|
opacity: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-transition { |
||||
|
transition: all .3s |
||||
|
} |
||||
|
|
||||
|
@keyframes viewer-spinner { |
||||
|
0% { |
||||
|
transform: rotate(0deg) |
||||
|
} |
||||
|
to { |
||||
|
transform: rotate(1turn) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.viewer-loading:after { |
||||
|
animation: viewer-spinner 1s linear infinite; |
||||
|
border: 4px solid hsla(0, 0%, 100%, .1); |
||||
|
border-left-color: hsla(0, 0%, 100%, .5); |
||||
|
border-radius: 50%; |
||||
|
content: ""; |
||||
|
display: inline-block; |
||||
|
height: 40px; |
||||
|
left: 50%; |
||||
|
margin-left: -20px; |
||||
|
margin-top: -20px; |
||||
|
position: absolute; |
||||
|
top: 50%; |
||||
|
width: 40px; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
@media (max-width: 767px) { |
||||
|
.viewer-hide-xs-down { |
||||
|
display: none |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@media (max-width: 991px) { |
||||
|
.viewer-hide-sm-down { |
||||
|
display: none |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@media (max-width: 1199px) { |
||||
|
.viewer-hide-md-down { |
||||
|
display: none |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,68 @@ |
|||||
|
.marker-cluster-small { |
||||
|
background-color: rgba(181, 226, 140, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-small div { |
||||
|
background-color: rgba(110, 204, 57, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-medium { |
||||
|
background-color: rgba(241, 211, 87, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-medium div { |
||||
|
background-color: rgba(240, 194, 12, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-large { |
||||
|
background-color: rgba(253, 156, 115, 0.6); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster-large div { |
||||
|
background-color: rgba(241, 128, 23, 0.6); |
||||
|
} |
||||
|
|
||||
|
/* IE 6-8 fallback colors */ |
||||
|
.leaflet-oldie .marker-cluster-small { |
||||
|
background-color: rgb(181, 226, 140); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-small div { |
||||
|
background-color: rgb(110, 204, 57); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-medium { |
||||
|
background-color: rgb(241, 211, 87); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-medium div { |
||||
|
background-color: rgb(240, 194, 12); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-large { |
||||
|
background-color: rgb(253, 156, 115); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .marker-cluster-large div { |
||||
|
background-color: rgb(241, 128, 23); |
||||
|
} |
||||
|
|
||||
|
.marker-cluster { |
||||
|
background-clip: padding-box; |
||||
|
border-radius: 20px; |
||||
|
} |
||||
|
|
||||
|
.marker-cluster div { |
||||
|
width: 30px; |
||||
|
height: 30px; |
||||
|
margin-left: 5px; |
||||
|
margin-top: 5px; |
||||
|
|
||||
|
text-align: center; |
||||
|
border-radius: 15px; |
||||
|
font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif; |
||||
|
} |
||||
|
|
||||
|
.marker-cluster span { |
||||
|
line-height: 30px; |
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
.leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow { |
||||
|
-webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in; |
||||
|
-moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in; |
||||
|
-o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in; |
||||
|
transition: transform 0.3s ease-out, opacity 0.3s ease-in; |
||||
|
} |
||||
|
|
||||
|
.leaflet-cluster-spider-leg { |
||||
|
/* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */ |
||||
|
-webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in; |
||||
|
-moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in; |
||||
|
-o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in; |
||||
|
transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in; |
||||
|
} |
||||
@ -0,0 +1,772 @@ |
|||||
|
/* required styles */ |
||||
|
|
||||
|
.leaflet-pane, |
||||
|
.leaflet-tile, |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow, |
||||
|
.leaflet-tile-container, |
||||
|
.leaflet-pane > svg, |
||||
|
.leaflet-pane > canvas, |
||||
|
.leaflet-zoom-box, |
||||
|
.leaflet-image-layer, |
||||
|
.leaflet-layer { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container { |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tile, |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow { |
||||
|
-webkit-user-select: none; |
||||
|
-moz-user-select: none; |
||||
|
user-select: none; |
||||
|
-webkit-user-drag: none; |
||||
|
} |
||||
|
|
||||
|
/* Prevents IE11 from highlighting tiles in blue */ |
||||
|
.leaflet-tile::selection { |
||||
|
background: transparent; |
||||
|
} |
||||
|
|
||||
|
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ |
||||
|
.leaflet-safari .leaflet-tile { |
||||
|
image-rendering: -webkit-optimize-contrast; |
||||
|
} |
||||
|
|
||||
|
/* hack that prevents hw layers "stretching" when loading new tiles */ |
||||
|
.leaflet-safari .leaflet-tile-container { |
||||
|
width: 1600px; |
||||
|
height: 1600px; |
||||
|
-webkit-transform-origin: 0 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow { |
||||
|
display: block; |
||||
|
} |
||||
|
|
||||
|
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ |
||||
|
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ |
||||
|
.leaflet-container .leaflet-overlay-pane svg { |
||||
|
max-width: none !important; |
||||
|
max-height: none !important; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container .leaflet-marker-pane img, |
||||
|
.leaflet-container .leaflet-shadow-pane img, |
||||
|
.leaflet-container .leaflet-tile-pane img, |
||||
|
.leaflet-container img.leaflet-image-layer, |
||||
|
.leaflet-container .leaflet-tile { |
||||
|
max-width: none !important; |
||||
|
max-height: none !important; |
||||
|
width: auto; |
||||
|
padding: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container img.leaflet-tile { |
||||
|
/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ |
||||
|
mix-blend-mode: plus-lighter; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container.leaflet-touch-zoom { |
||||
|
-ms-touch-action: pan-x pan-y; |
||||
|
touch-action: pan-x pan-y; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container.leaflet-touch-drag { |
||||
|
-ms-touch-action: pinch-zoom; |
||||
|
/* Fallback for FF which doesn't support pinch-zoom */ |
||||
|
touch-action: none; |
||||
|
touch-action: pinch-zoom; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { |
||||
|
-ms-touch-action: none; |
||||
|
touch-action: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container { |
||||
|
-webkit-tap-highlight-color: transparent; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container a { |
||||
|
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); |
||||
|
} |
||||
|
|
||||
|
.leaflet-tile { |
||||
|
filter: inherit; |
||||
|
visibility: hidden; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tile-loaded { |
||||
|
visibility: inherit; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-box { |
||||
|
width: 0; |
||||
|
height: 0; |
||||
|
-moz-box-sizing: border-box; |
||||
|
box-sizing: border-box; |
||||
|
z-index: 800; |
||||
|
} |
||||
|
|
||||
|
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ |
||||
|
.leaflet-overlay-pane svg { |
||||
|
-moz-user-select: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-pane { |
||||
|
z-index: 400; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tile-pane { |
||||
|
z-index: 200; |
||||
|
} |
||||
|
|
||||
|
.leaflet-overlay-pane { |
||||
|
z-index: 400; |
||||
|
} |
||||
|
|
||||
|
.leaflet-shadow-pane { |
||||
|
z-index: 500; |
||||
|
} |
||||
|
|
||||
|
.leaflet-marker-pane { |
||||
|
z-index: 600; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-pane { |
||||
|
z-index: 650; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-pane { |
||||
|
z-index: 700; |
||||
|
} |
||||
|
|
||||
|
.leaflet-map-pane canvas { |
||||
|
z-index: 100; |
||||
|
} |
||||
|
|
||||
|
.leaflet-map-pane svg { |
||||
|
z-index: 200; |
||||
|
} |
||||
|
|
||||
|
.leaflet-vml-shape { |
||||
|
width: 1px; |
||||
|
height: 1px; |
||||
|
} |
||||
|
|
||||
|
.lvml { |
||||
|
behavior: url(#default#VML); |
||||
|
display: inline-block; |
||||
|
position: absolute; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* control positioning */ |
||||
|
|
||||
|
.leaflet-control { |
||||
|
position: relative; |
||||
|
z-index: 800; |
||||
|
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
|
||||
|
.leaflet-top, |
||||
|
.leaflet-bottom { |
||||
|
position: absolute; |
||||
|
z-index: 1000; |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-top { |
||||
|
top: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-right { |
||||
|
right: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bottom { |
||||
|
bottom: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-left { |
||||
|
left: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control { |
||||
|
float: left; |
||||
|
clear: both; |
||||
|
} |
||||
|
|
||||
|
.leaflet-right .leaflet-control { |
||||
|
float: right; |
||||
|
} |
||||
|
|
||||
|
.leaflet-top .leaflet-control { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bottom .leaflet-control { |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-left .leaflet-control { |
||||
|
margin-left: 10px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-right .leaflet-control { |
||||
|
margin-right: 10px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* zoom and fade animations */ |
||||
|
|
||||
|
.leaflet-fade-anim .leaflet-popup { |
||||
|
opacity: 0; |
||||
|
-webkit-transition: opacity 0.2s linear; |
||||
|
-moz-transition: opacity 0.2s linear; |
||||
|
transition: opacity 0.2s linear; |
||||
|
} |
||||
|
|
||||
|
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { |
||||
|
opacity: 1; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-animated { |
||||
|
-webkit-transform-origin: 0 0; |
||||
|
-ms-transform-origin: 0 0; |
||||
|
transform-origin: 0 0; |
||||
|
} |
||||
|
|
||||
|
svg.leaflet-zoom-animated { |
||||
|
will-change: transform; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-anim .leaflet-zoom-animated { |
||||
|
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1); |
||||
|
-moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1); |
||||
|
transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-anim .leaflet-tile, |
||||
|
.leaflet-pan-anim .leaflet-tile { |
||||
|
-webkit-transition: none; |
||||
|
-moz-transition: none; |
||||
|
transition: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-anim .leaflet-zoom-hide { |
||||
|
visibility: hidden; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* cursors */ |
||||
|
|
||||
|
.leaflet-interactive { |
||||
|
cursor: pointer; |
||||
|
} |
||||
|
|
||||
|
.leaflet-grab { |
||||
|
cursor: -webkit-grab; |
||||
|
cursor: -moz-grab; |
||||
|
cursor: grab; |
||||
|
} |
||||
|
|
||||
|
.leaflet-crosshair, |
||||
|
.leaflet-crosshair .leaflet-interactive { |
||||
|
cursor: crosshair; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-pane, |
||||
|
.leaflet-control { |
||||
|
cursor: auto; |
||||
|
} |
||||
|
|
||||
|
.leaflet-dragging .leaflet-grab, |
||||
|
.leaflet-dragging .leaflet-grab .leaflet-interactive, |
||||
|
.leaflet-dragging .leaflet-marker-draggable { |
||||
|
cursor: move; |
||||
|
cursor: -webkit-grabbing; |
||||
|
cursor: -moz-grabbing; |
||||
|
cursor: grabbing; |
||||
|
} |
||||
|
|
||||
|
/* marker & overlays interactivity */ |
||||
|
.leaflet-marker-icon, |
||||
|
.leaflet-marker-shadow, |
||||
|
.leaflet-image-layer, |
||||
|
.leaflet-pane > svg path, |
||||
|
.leaflet-tile-container { |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-marker-icon.leaflet-interactive, |
||||
|
.leaflet-image-layer.leaflet-interactive, |
||||
|
.leaflet-pane > svg path.leaflet-interactive, |
||||
|
svg.leaflet-image-layer.leaflet-interactive path { |
||||
|
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
|
||||
|
/* visual tweaks */ |
||||
|
|
||||
|
.leaflet-container { |
||||
|
background: #ddd; |
||||
|
outline-offset: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container a { |
||||
|
color: #0078A8; |
||||
|
} |
||||
|
|
||||
|
.leaflet-zoom-box { |
||||
|
border: 2px dotted #38f; |
||||
|
background: rgba(255, 255, 255, 0.5); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* general typography */ |
||||
|
.leaflet-container { |
||||
|
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; |
||||
|
font-size: 12px; |
||||
|
font-size: 0.75rem; |
||||
|
line-height: 1.5; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* general toolbar styles */ |
||||
|
|
||||
|
.leaflet-bar { |
||||
|
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); |
||||
|
border-radius: 4px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a { |
||||
|
background-color: #fff; |
||||
|
border-bottom: 1px solid #ccc; |
||||
|
width: 26px; |
||||
|
height: 26px; |
||||
|
line-height: 26px; |
||||
|
display: block; |
||||
|
text-align: center; |
||||
|
text-decoration: none; |
||||
|
color: black; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a, |
||||
|
.leaflet-control-layers-toggle { |
||||
|
background-position: 50% 50%; |
||||
|
background-repeat: no-repeat; |
||||
|
display: block; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a:hover, |
||||
|
.leaflet-bar a:focus { |
||||
|
background-color: #f4f4f4; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a:first-child { |
||||
|
border-top-left-radius: 4px; |
||||
|
border-top-right-radius: 4px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a:last-child { |
||||
|
border-bottom-left-radius: 4px; |
||||
|
border-bottom-right-radius: 4px; |
||||
|
border-bottom: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bar a.leaflet-disabled { |
||||
|
cursor: default; |
||||
|
background-color: #f4f4f4; |
||||
|
color: #bbb; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-bar a { |
||||
|
width: 30px; |
||||
|
height: 30px; |
||||
|
line-height: 30px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-bar a:first-child { |
||||
|
border-top-left-radius: 2px; |
||||
|
border-top-right-radius: 2px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-bar a:last-child { |
||||
|
border-bottom-left-radius: 2px; |
||||
|
border-bottom-right-radius: 2px; |
||||
|
} |
||||
|
|
||||
|
/* zoom control */ |
||||
|
|
||||
|
.leaflet-control-zoom-in, |
||||
|
.leaflet-control-zoom-out { |
||||
|
font: bold 18px 'Lucida Console', Monaco, monospace; |
||||
|
text-indent: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { |
||||
|
font-size: 22px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* layers control */ |
||||
|
|
||||
|
.leaflet-control-layers { |
||||
|
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); |
||||
|
background: #fff; |
||||
|
border-radius: 5px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-toggle { |
||||
|
background-image: url(images/layers.png); |
||||
|
width: 36px; |
||||
|
height: 36px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-retina .leaflet-control-layers-toggle { |
||||
|
background-image: url(images/layers-2x.png); |
||||
|
background-size: 26px 26px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-layers-toggle { |
||||
|
width: 44px; |
||||
|
height: 44px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers .leaflet-control-layers-list, |
||||
|
.leaflet-control-layers-expanded .leaflet-control-layers-toggle { |
||||
|
display: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-expanded .leaflet-control-layers-list { |
||||
|
display: block; |
||||
|
position: relative; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-expanded { |
||||
|
padding: 6px 10px 6px 6px; |
||||
|
color: #333; |
||||
|
background: #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-scrollbar { |
||||
|
overflow-y: scroll; |
||||
|
overflow-x: hidden; |
||||
|
padding-right: 5px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-selector { |
||||
|
margin-top: 2px; |
||||
|
position: relative; |
||||
|
top: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers label { |
||||
|
display: block; |
||||
|
font-size: 13px; |
||||
|
font-size: 1.08333em; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-layers-separator { |
||||
|
height: 0; |
||||
|
border-top: 1px solid #ddd; |
||||
|
margin: 5px -10px 5px -6px; |
||||
|
} |
||||
|
|
||||
|
/* Default icon URLs */ |
||||
|
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ |
||||
|
background-image: url(images/marker-icon.png); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* attribution and scale controls */ |
||||
|
|
||||
|
.leaflet-container .leaflet-control-attribution { |
||||
|
background: #fff; |
||||
|
background: rgba(255, 255, 255, 0.8); |
||||
|
margin: 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-attribution, |
||||
|
.leaflet-control-scale-line { |
||||
|
padding: 0 5px; |
||||
|
color: #333; |
||||
|
line-height: 1.4; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-attribution a { |
||||
|
text-decoration: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-attribution a:hover, |
||||
|
.leaflet-control-attribution a:focus { |
||||
|
text-decoration: underline; |
||||
|
} |
||||
|
|
||||
|
.leaflet-attribution-flag { |
||||
|
display: inline !important; |
||||
|
vertical-align: baseline !important; |
||||
|
width: 1em; |
||||
|
height: 0.6669em; |
||||
|
} |
||||
|
|
||||
|
.leaflet-left .leaflet-control-scale { |
||||
|
margin-left: 5px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-bottom .leaflet-control-scale { |
||||
|
margin-bottom: 5px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-scale-line { |
||||
|
border: 2px solid #777; |
||||
|
border-top: none; |
||||
|
line-height: 1.1; |
||||
|
padding: 2px 5px 1px; |
||||
|
white-space: nowrap; |
||||
|
-moz-box-sizing: border-box; |
||||
|
box-sizing: border-box; |
||||
|
background: rgba(255, 255, 255, 0.8); |
||||
|
text-shadow: 1px 1px #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-scale-line:not(:first-child) { |
||||
|
border-top: 2px solid #777; |
||||
|
border-bottom: none; |
||||
|
margin-top: -2px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-control-scale-line:not(:first-child):not(:last-child) { |
||||
|
border-bottom: 2px solid #777; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-attribution, |
||||
|
.leaflet-touch .leaflet-control-layers, |
||||
|
.leaflet-touch .leaflet-bar { |
||||
|
box-shadow: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-touch .leaflet-control-layers, |
||||
|
.leaflet-touch .leaflet-bar { |
||||
|
border: 2px solid rgba(0, 0, 0, 0.2); |
||||
|
background-clip: padding-box; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* popup */ |
||||
|
|
||||
|
.leaflet-popup { |
||||
|
position: absolute; |
||||
|
text-align: center; |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-content-wrapper { |
||||
|
padding: 1px; |
||||
|
text-align: left; |
||||
|
border-radius: 12px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-content { |
||||
|
margin: 13px 24px 13px 20px; |
||||
|
line-height: 1.3; |
||||
|
font-size: 13px; |
||||
|
font-size: 1.08333em; |
||||
|
min-height: 1px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-content p { |
||||
|
margin: 17px 0; |
||||
|
margin: 1.3em 0; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-tip-container { |
||||
|
width: 40px; |
||||
|
height: 20px; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
margin-top: -1px; |
||||
|
margin-left: -20px; |
||||
|
overflow: hidden; |
||||
|
pointer-events: none; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-tip { |
||||
|
width: 17px; |
||||
|
height: 17px; |
||||
|
padding: 1px; |
||||
|
|
||||
|
margin: -10px auto 0; |
||||
|
pointer-events: auto; |
||||
|
|
||||
|
-webkit-transform: rotate(45deg); |
||||
|
-moz-transform: rotate(45deg); |
||||
|
-ms-transform: rotate(45deg); |
||||
|
transform: rotate(45deg); |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-content-wrapper, |
||||
|
.leaflet-popup-tip { |
||||
|
background: white; |
||||
|
color: #333; |
||||
|
box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); |
||||
|
} |
||||
|
|
||||
|
.leaflet-container a.leaflet-popup-close-button { |
||||
|
position: absolute; |
||||
|
top: 0; |
||||
|
right: 0; |
||||
|
border: none; |
||||
|
text-align: center; |
||||
|
width: 24px; |
||||
|
height: 24px; |
||||
|
font: 16px/24px Tahoma, Verdana, sans-serif; |
||||
|
color: #757575; |
||||
|
text-decoration: none; |
||||
|
background: transparent; |
||||
|
} |
||||
|
|
||||
|
.leaflet-container a.leaflet-popup-close-button:hover, |
||||
|
.leaflet-container a.leaflet-popup-close-button:focus { |
||||
|
color: #585858; |
||||
|
} |
||||
|
|
||||
|
.leaflet-popup-scrolled { |
||||
|
overflow: auto; |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .leaflet-popup-content-wrapper { |
||||
|
-ms-zoom: 1; |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .leaflet-popup-tip { |
||||
|
width: 24px; |
||||
|
margin: 0 auto; |
||||
|
|
||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; |
||||
|
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); |
||||
|
} |
||||
|
|
||||
|
.leaflet-oldie .leaflet-control-zoom, |
||||
|
.leaflet-oldie .leaflet-control-layers, |
||||
|
.leaflet-oldie .leaflet-popup-content-wrapper, |
||||
|
.leaflet-oldie .leaflet-popup-tip { |
||||
|
border: 1px solid #999; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* div icon */ |
||||
|
|
||||
|
.leaflet-div-icon { |
||||
|
background: #fff; |
||||
|
border: 1px solid #666; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/* Tooltip */ |
||||
|
/* Base styles for the element that has a tooltip */ |
||||
|
.leaflet-tooltip { |
||||
|
position: absolute; |
||||
|
padding: 6px; |
||||
|
background-color: #fff; |
||||
|
border: 1px solid #fff; |
||||
|
border-radius: 3px; |
||||
|
color: #222; |
||||
|
white-space: nowrap; |
||||
|
-webkit-user-select: none; |
||||
|
-moz-user-select: none; |
||||
|
-ms-user-select: none; |
||||
|
user-select: none; |
||||
|
pointer-events: none; |
||||
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip.leaflet-interactive { |
||||
|
cursor: pointer; |
||||
|
pointer-events: auto; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-top:before, |
||||
|
.leaflet-tooltip-bottom:before, |
||||
|
.leaflet-tooltip-left:before, |
||||
|
.leaflet-tooltip-right:before { |
||||
|
position: absolute; |
||||
|
pointer-events: none; |
||||
|
border: 6px solid transparent; |
||||
|
background: transparent; |
||||
|
content: ""; |
||||
|
} |
||||
|
|
||||
|
/* Directions */ |
||||
|
|
||||
|
.leaflet-tooltip-bottom { |
||||
|
margin-top: 6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-top { |
||||
|
margin-top: -6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-bottom:before, |
||||
|
.leaflet-tooltip-top:before { |
||||
|
left: 50%; |
||||
|
margin-left: -6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-top:before { |
||||
|
bottom: 0; |
||||
|
margin-bottom: -12px; |
||||
|
border-top-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-bottom:before { |
||||
|
top: 0; |
||||
|
margin-top: -12px; |
||||
|
margin-left: -6px; |
||||
|
border-bottom-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-left { |
||||
|
margin-left: -6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-right { |
||||
|
margin-left: 6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-left:before, |
||||
|
.leaflet-tooltip-right:before { |
||||
|
top: 50%; |
||||
|
margin-top: -6px; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-left:before { |
||||
|
right: 0; |
||||
|
margin-right: -12px; |
||||
|
border-left-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.leaflet-tooltip-right:before { |
||||
|
left: 0; |
||||
|
margin-left: -12px; |
||||
|
border-right-color: #fff; |
||||
|
} |
||||
|
|
||||
|
/* Printing */ |
||||
|
|
||||
|
@media print { |
||||
|
/* Prevent printers from removing background-images of controls. */ |
||||
|
.leaflet-control { |
||||
|
-webkit-print-color-adjust: exact; |
||||
|
print-color-adjust: exact; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,735 @@ |
|||||
|
/** |
||||
|
* Swiper 11.2.5 |
||||
|
* Most modern mobile touch slider and framework with hardware accelerated transitions |
||||
|
* https://swiperjs.com |
||||
|
* |
||||
|
* Copyright 2014-2025 Vladimir Kharlampidi |
||||
|
* |
||||
|
* Released under the MIT License |
||||
|
* |
||||
|
* Released on: March 3, 2025 |
||||
|
*/ |
||||
|
|
||||
|
@font-face { |
||||
|
font-family: swiper-icons; |
||||
|
src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA'); |
||||
|
font-weight: 400; |
||||
|
font-style: normal |
||||
|
} |
||||
|
|
||||
|
:root { |
||||
|
--swiper-theme-color: #007aff |
||||
|
} |
||||
|
|
||||
|
:host { |
||||
|
position: relative; |
||||
|
display: block; |
||||
|
margin-left: auto; |
||||
|
margin-right: auto; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
.swiper { |
||||
|
margin-left: auto; |
||||
|
margin-right: auto; |
||||
|
position: relative; |
||||
|
overflow: hidden; |
||||
|
list-style: none; |
||||
|
padding: 0; |
||||
|
z-index: 1; |
||||
|
display: block |
||||
|
} |
||||
|
|
||||
|
.swiper-vertical > .swiper-wrapper { |
||||
|
flex-direction: column |
||||
|
} |
||||
|
|
||||
|
.swiper-wrapper { |
||||
|
position: relative; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
z-index: 1; |
||||
|
display: flex; |
||||
|
transition-property: transform; |
||||
|
transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial); |
||||
|
box-sizing: content-box |
||||
|
} |
||||
|
|
||||
|
.swiper-android .swiper-slide, .swiper-ios .swiper-slide, .swiper-wrapper { |
||||
|
transform: translate3d(0px, 0, 0) |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal { |
||||
|
touch-action: pan-y |
||||
|
} |
||||
|
|
||||
|
.swiper-vertical { |
||||
|
touch-action: pan-x |
||||
|
} |
||||
|
|
||||
|
.swiper-slide { |
||||
|
flex-shrink: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
position: relative; |
||||
|
transition-property: transform; |
||||
|
display: block |
||||
|
} |
||||
|
|
||||
|
.swiper-slide-invisible-blank { |
||||
|
visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.swiper-autoheight, .swiper-autoheight .swiper-slide { |
||||
|
height: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-autoheight .swiper-wrapper { |
||||
|
align-items: flex-start; |
||||
|
transition-property: transform, height |
||||
|
} |
||||
|
|
||||
|
.swiper-backface-hidden .swiper-slide { |
||||
|
transform: translateZ(0); |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.swiper-3d.swiper-css-mode .swiper-wrapper { |
||||
|
perspective: 1200px |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-wrapper { |
||||
|
transform-style: preserve-3d |
||||
|
} |
||||
|
|
||||
|
.swiper-3d { |
||||
|
perspective: 1200px |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-cube-shadow, .swiper-3d .swiper-slide { |
||||
|
transform-style: preserve-3d |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode > .swiper-wrapper { |
||||
|
overflow: auto; |
||||
|
scrollbar-width: none; |
||||
|
-ms-overflow-style: none |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode > .swiper-wrapper > .swiper-slide { |
||||
|
scroll-snap-align: start start |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-horizontal > .swiper-wrapper { |
||||
|
scroll-snap-type: x mandatory |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-vertical > .swiper-wrapper { |
||||
|
scroll-snap-type: y mandatory |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-free-mode > .swiper-wrapper { |
||||
|
scroll-snap-type: none |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide { |
||||
|
scroll-snap-align: none |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered > .swiper-wrapper::before { |
||||
|
content: ''; |
||||
|
flex-shrink: 0; |
||||
|
order: 9999 |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide { |
||||
|
scroll-snap-align: center center; |
||||
|
scroll-snap-stop: always |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child { |
||||
|
margin-inline-start: var(--swiper-centered-offset-before) |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before { |
||||
|
height: 100%; |
||||
|
min-height: 1px; |
||||
|
width: var(--swiper-centered-offset-after) |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child { |
||||
|
margin-block-start: var(--swiper-centered-offset-before) |
||||
|
} |
||||
|
|
||||
|
.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before { |
||||
|
width: 100%; |
||||
|
min-width: 1px; |
||||
|
height: var(--swiper-centered-offset-after) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow, .swiper-3d .swiper-slide-shadow-bottom, .swiper-3d .swiper-slide-shadow-left, .swiper-3d .swiper-slide-shadow-right, .swiper-3d .swiper-slide-shadow-top { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
pointer-events: none; |
||||
|
z-index: 10 |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow { |
||||
|
background: rgba(0, 0, 0, .15) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow-left { |
||||
|
background-image: linear-gradient(to left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0)) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow-right { |
||||
|
background-image: linear-gradient(to right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0)) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow-top { |
||||
|
background-image: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0)) |
||||
|
} |
||||
|
|
||||
|
.swiper-3d .swiper-slide-shadow-bottom { |
||||
|
background-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0)) |
||||
|
} |
||||
|
|
||||
|
.swiper-lazy-preloader { |
||||
|
width: 42px; |
||||
|
height: 42px; |
||||
|
position: absolute; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
margin-left: -21px; |
||||
|
margin-top: -21px; |
||||
|
z-index: 10; |
||||
|
transform-origin: 50%; |
||||
|
box-sizing: border-box; |
||||
|
border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); |
||||
|
border-radius: 50%; |
||||
|
border-top-color: transparent |
||||
|
} |
||||
|
|
||||
|
.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader, .swiper:not(.swiper-watch-progress) .swiper-lazy-preloader { |
||||
|
animation: swiper-preloader-spin 1s infinite linear |
||||
|
} |
||||
|
|
||||
|
.swiper-lazy-preloader-white { |
||||
|
--swiper-preloader-color: #fff |
||||
|
} |
||||
|
|
||||
|
.swiper-lazy-preloader-black { |
||||
|
--swiper-preloader-color: #000 |
||||
|
} |
||||
|
|
||||
|
@keyframes swiper-preloader-spin { |
||||
|
0% { |
||||
|
transform: rotate(0deg) |
||||
|
} |
||||
|
100% { |
||||
|
transform: rotate(360deg) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.swiper-virtual .swiper-slide { |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
transform: translateZ(0) |
||||
|
} |
||||
|
|
||||
|
.swiper-virtual.swiper-css-mode .swiper-wrapper::after { |
||||
|
content: ''; |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after { |
||||
|
height: 1px; |
||||
|
width: var(--swiper-virtual-size) |
||||
|
} |
||||
|
|
||||
|
.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after { |
||||
|
width: 1px; |
||||
|
height: var(--swiper-virtual-size) |
||||
|
} |
||||
|
|
||||
|
:root { |
||||
|
--swiper-navigation-size: 44px |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next, .swiper-button-prev { |
||||
|
position: absolute; |
||||
|
top: var(--swiper-navigation-top-offset, 50%); |
||||
|
width: calc(var(--swiper-navigation-size) / 44 * 27); |
||||
|
height: var(--swiper-navigation-size); |
||||
|
margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); |
||||
|
z-index: 10; |
||||
|
cursor: pointer; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
color: var(--swiper-navigation-color, var(--swiper-theme-color)) |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled { |
||||
|
opacity: .35; |
||||
|
cursor: auto; |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next.swiper-button-hidden, .swiper-button-prev.swiper-button-hidden { |
||||
|
opacity: 0; |
||||
|
cursor: auto; |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-navigation-disabled .swiper-button-next, .swiper-navigation-disabled .swiper-button-prev { |
||||
|
display: none !important |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next svg, .swiper-button-prev svg { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
object-fit: contain; |
||||
|
transform-origin: center |
||||
|
} |
||||
|
|
||||
|
.swiper-rtl .swiper-button-next svg, .swiper-rtl .swiper-button-prev svg { |
||||
|
transform: rotate(180deg) |
||||
|
} |
||||
|
|
||||
|
.swiper-button-prev, .swiper-rtl .swiper-button-next { |
||||
|
left: var(--swiper-navigation-sides-offset, 10px); |
||||
|
right: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next, .swiper-rtl .swiper-button-prev { |
||||
|
right: var(--swiper-navigation-sides-offset, 10px); |
||||
|
left: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-button-lock { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next:after, .swiper-button-prev:after { |
||||
|
font-family: swiper-icons; |
||||
|
font-size: var(--swiper-navigation-size); |
||||
|
text-transform: none !important; |
||||
|
letter-spacing: 0; |
||||
|
font-variant: initial; |
||||
|
line-height: 1 |
||||
|
} |
||||
|
|
||||
|
.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after { |
||||
|
content: 'prev' |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next, .swiper-rtl .swiper-button-prev { |
||||
|
right: var(--swiper-navigation-sides-offset, 10px); |
||||
|
left: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after { |
||||
|
content: 'next' |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination { |
||||
|
position: absolute; |
||||
|
text-align: center; |
||||
|
transition: .3s opacity; |
||||
|
transform: translate3d(0, 0, 0); |
||||
|
z-index: 10 |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination.swiper-pagination-hidden { |
||||
|
opacity: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-disabled > .swiper-pagination, .swiper-pagination.swiper-pagination-disabled { |
||||
|
display: none !important |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction { |
||||
|
bottom: var(--swiper-pagination-bottom, 8px); |
||||
|
top: var(--swiper-pagination-top, auto); |
||||
|
left: 0; |
||||
|
width: 100% |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic { |
||||
|
overflow: hidden; |
||||
|
font-size: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { |
||||
|
transform: scale(.33); |
||||
|
position: relative |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { |
||||
|
transform: scale(1) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { |
||||
|
transform: scale(1) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { |
||||
|
transform: scale(.66) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { |
||||
|
transform: scale(.33) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { |
||||
|
transform: scale(.66) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { |
||||
|
transform: scale(.33) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullet { |
||||
|
width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px)); |
||||
|
height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px)); |
||||
|
display: inline-block; |
||||
|
border-radius: var(--swiper-pagination-bullet-border-radius, 50%); |
||||
|
background: var(--swiper-pagination-bullet-inactive-color, #000); |
||||
|
opacity: var(--swiper-pagination-bullet-inactive-opacity, .2) |
||||
|
} |
||||
|
|
||||
|
button.swiper-pagination-bullet { |
||||
|
border: none; |
||||
|
margin: 0; |
||||
|
padding: 0; |
||||
|
box-shadow: none; |
||||
|
-webkit-appearance: none; |
||||
|
appearance: none |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-clickable .swiper-pagination-bullet { |
||||
|
cursor: pointer |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullet:only-child { |
||||
|
display: none !important |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-bullet-active { |
||||
|
opacity: var(--swiper-pagination-bullet-opacity, 1); |
||||
|
background: var(--swiper-pagination-color, var(--swiper-theme-color)) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-vertical.swiper-pagination-bullets, .swiper-vertical > .swiper-pagination-bullets { |
||||
|
right: var(--swiper-pagination-right, 8px); |
||||
|
left: var(--swiper-pagination-left, auto); |
||||
|
top: 50%; |
||||
|
transform: translate3d(0px, -50%, 0) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet { |
||||
|
margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0; |
||||
|
display: block |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { |
||||
|
top: 50%; |
||||
|
transform: translateY(-50%); |
||||
|
width: 8px |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, .swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { |
||||
|
display: inline-block; |
||||
|
transition: .2s transform, .2s top |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet { |
||||
|
margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px) |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { |
||||
|
left: 50%; |
||||
|
transform: translateX(-50%); |
||||
|
white-space: nowrap |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { |
||||
|
transition: .2s transform, .2s left |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { |
||||
|
transition: .2s transform, .2s right |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-fraction { |
||||
|
color: var(--swiper-pagination-fraction-color, inherit) |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-progressbar { |
||||
|
background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25)); |
||||
|
position: absolute |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { |
||||
|
background: var(--swiper-pagination-color, var(--swiper-theme-color)); |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
transform: scale(0); |
||||
|
transform-origin: left top |
||||
|
} |
||||
|
|
||||
|
.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { |
||||
|
transform-origin: right top |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-progressbar, .swiper-pagination-progressbar.swiper-pagination-horizontal, .swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite, .swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite { |
||||
|
width: 100%; |
||||
|
height: var(--swiper-pagination-progressbar-size, 4px); |
||||
|
left: 0; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-vertical, .swiper-vertical > .swiper-pagination-progressbar { |
||||
|
width: var(--swiper-pagination-progressbar-size, 4px); |
||||
|
height: 100%; |
||||
|
left: 0; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-pagination-lock { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar { |
||||
|
border-radius: var(--swiper-scrollbar-border-radius, 10px); |
||||
|
position: relative; |
||||
|
touch-action: none; |
||||
|
background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1)) |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar-disabled > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-disabled { |
||||
|
display: none !important |
||||
|
} |
||||
|
|
||||
|
.swiper-horizontal > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-horizontal { |
||||
|
position: absolute; |
||||
|
left: var(--swiper-scrollbar-sides-offset, 1%); |
||||
|
bottom: var(--swiper-scrollbar-bottom, 4px); |
||||
|
top: var(--swiper-scrollbar-top, auto); |
||||
|
z-index: 50; |
||||
|
height: var(--swiper-scrollbar-size, 4px); |
||||
|
width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)) |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar.swiper-scrollbar-vertical, .swiper-vertical > .swiper-scrollbar { |
||||
|
position: absolute; |
||||
|
left: var(--swiper-scrollbar-left, auto); |
||||
|
right: var(--swiper-scrollbar-right, 4px); |
||||
|
top: var(--swiper-scrollbar-sides-offset, 1%); |
||||
|
z-index: 50; |
||||
|
width: var(--swiper-scrollbar-size, 4px); |
||||
|
height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)) |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar-drag { |
||||
|
height: 100%; |
||||
|
width: 100%; |
||||
|
position: relative; |
||||
|
background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5)); |
||||
|
border-radius: var(--swiper-scrollbar-border-radius, 10px); |
||||
|
left: 0; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar-cursor-drag { |
||||
|
cursor: move |
||||
|
} |
||||
|
|
||||
|
.swiper-scrollbar-lock { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.swiper-zoom-container { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
text-align: center |
||||
|
} |
||||
|
|
||||
|
.swiper-zoom-container > canvas, .swiper-zoom-container > img, .swiper-zoom-container > svg { |
||||
|
max-width: 100%; |
||||
|
max-height: 100%; |
||||
|
object-fit: contain |
||||
|
} |
||||
|
|
||||
|
.swiper-slide-zoomed { |
||||
|
cursor: move; |
||||
|
touch-action: none |
||||
|
} |
||||
|
|
||||
|
.swiper .swiper-notification { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
pointer-events: none; |
||||
|
opacity: 0; |
||||
|
z-index: -1000 |
||||
|
} |
||||
|
|
||||
|
.swiper-free-mode > .swiper-wrapper { |
||||
|
transition-timing-function: ease-out; |
||||
|
margin: 0 auto |
||||
|
} |
||||
|
|
||||
|
.swiper-grid > .swiper-wrapper { |
||||
|
flex-wrap: wrap |
||||
|
} |
||||
|
|
||||
|
.swiper-grid-column > .swiper-wrapper { |
||||
|
flex-wrap: wrap; |
||||
|
flex-direction: column |
||||
|
} |
||||
|
|
||||
|
.swiper-fade.swiper-free-mode .swiper-slide { |
||||
|
transition-timing-function: ease-out |
||||
|
} |
||||
|
|
||||
|
.swiper-fade .swiper-slide { |
||||
|
pointer-events: none; |
||||
|
transition-property: opacity |
||||
|
} |
||||
|
|
||||
|
.swiper-fade .swiper-slide .swiper-slide { |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-fade .swiper-slide-active { |
||||
|
pointer-events: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-fade .swiper-slide-active .swiper-slide-active { |
||||
|
pointer-events: auto |
||||
|
} |
||||
|
|
||||
|
.swiper.swiper-cube { |
||||
|
overflow: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide { |
||||
|
pointer-events: none; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
z-index: 1; |
||||
|
visibility: hidden; |
||||
|
transform-origin: 0 0; |
||||
|
width: 100%; |
||||
|
height: 100% |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide .swiper-slide { |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-cube.swiper-rtl .swiper-slide { |
||||
|
transform-origin: 100% 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide-active, .swiper-cube .swiper-slide-active .swiper-slide-active { |
||||
|
pointer-events: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide-active, .swiper-cube .swiper-slide-next, .swiper-cube .swiper-slide-prev { |
||||
|
pointer-events: auto; |
||||
|
visibility: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-cube-shadow { |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
bottom: 0px; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
opacity: .6; |
||||
|
z-index: 0 |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-cube-shadow:before { |
||||
|
content: ''; |
||||
|
background: #000; |
||||
|
position: absolute; |
||||
|
left: 0; |
||||
|
top: 0; |
||||
|
bottom: 0; |
||||
|
right: 0; |
||||
|
filter: blur(50px) |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide-next + .swiper-slide { |
||||
|
pointer-events: auto; |
||||
|
visibility: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top { |
||||
|
z-index: 0; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.swiper.swiper-flip { |
||||
|
overflow: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-flip .swiper-slide { |
||||
|
pointer-events: none; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
.swiper-flip .swiper-slide .swiper-slide { |
||||
|
pointer-events: none |
||||
|
} |
||||
|
|
||||
|
.swiper-flip .swiper-slide-active, .swiper-flip .swiper-slide-active .swiper-slide-active { |
||||
|
pointer-events: auto |
||||
|
} |
||||
|
|
||||
|
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top { |
||||
|
z-index: 0; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.swiper-creative .swiper-slide { |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
overflow: hidden; |
||||
|
transition-property: transform, opacity, height |
||||
|
} |
||||
|
|
||||
|
.swiper.swiper-cards { |
||||
|
overflow: visible |
||||
|
} |
||||
|
|
||||
|
.swiper-cards .swiper-slide { |
||||
|
transform-origin: center bottom; |
||||
|
-webkit-backface-visibility: hidden; |
||||
|
backface-visibility: hidden; |
||||
|
overflow: hidden |
||||
|
} |
||||
@ -0,0 +1,435 @@ |
|||||
|
/*! |
||||
|
* Viewer.js v1.11.7 |
||||
|
* https://fengyuanchen.github.io/viewerjs |
||||
|
* |
||||
|
* Copyright 2015-present Chen Fengyuan |
||||
|
* Released under the MIT license |
||||
|
* |
||||
|
* Date: 2024-11-24T04:32:14.526Z |
||||
|
*/ |
||||
|
.viewer-close:before, .viewer-flip-horizontal:before, .viewer-flip-vertical:before, .viewer-fullscreen-exit:before, .viewer-fullscreen:before, .viewer-next:before, .viewer-one-to-one:before, .viewer-play:before, .viewer-prev:before, .viewer-reset:before, .viewer-rotate-left:before, .viewer-rotate-right:before, .viewer-zoom-in:before, .viewer-zoom-out:before { |
||||
|
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 40'%3E%3Cpath fill='%23fff' d='M49.6 17.9h20.2v3.9H49.6zm123.1 2 10.9-11 2.7 2.8-8.2 8.2 8.2 8.2-2.7 2.7-10.9-10.9zm94 0-10.8-11-2.7 2.8 8.1 8.2-8.1 8.2 2.7 2.7 10.8-10.9zM212 9.3l20.1 10.6L212 30.5V9.3zm161.5 4.6-7.2 6 7.2 5.9v-4h12.4v4l7.3-5.9-7.3-6v4h-12.4v-4zm40.2 12.3 5.9 7.2 5.9-7.2h-4V13.6h4l-5.9-7.3-5.9 7.3h4v12.6h-4zm35.9-16.5h6.3v2h-4.3V16h-2V9.7Zm14 0h6.2V16h-2v-4.3h-4.2v-2Zm6.2 14V30h-6.2v-2h4.2v-4.3h2Zm-14 6.3h-6.2v-6.3h2v4.4h4.3v2Zm-438 .1v-8.3H9.6v-3.9h8.2V9.7h3.9v8.2h8.1v3.9h-8.1v8.3h-3.9zM93.6 9.7h-5.8v3.9h2V30h3.8V9.7zm16.1 0h-5.8v3.9h1.9V30h3.9V9.7zm-11.9 4.1h3.9v3.9h-3.9zm0 8.2h3.9v3.9h-3.9zm244.6-11.7 7.2 5.9-7.2 6v-3.6c-5.4-.4-7.8.8-8.7 2.8-.8 1.7-1.8 4.9 2.8 8.2-6.3-2-7.5-6.9-6-11.3 1.6-4.4 8-5 11.9-4.9v-3.1Zm147.2 13.4h6.3V30h-2v-4.3h-4.3v-2zm14 6.3v-6.3h6.2v2h-4.3V30h-1.9zm6.2-14h-6.2V9.7h1.9V14h4.3v2zm-13.9 0h-6.3v-2h4.3V9.7h2V16zm33.3 12.5 8.6-8.6-8.6-8.7 1.9-1.9 8.6 8.7 8.6-8.7 1.9 1.9-8.6 8.7 8.6 8.6-1.9 2-8.6-8.7-8.6 8.7-1.9-2zM297 10.3l-7.1 5.9 7.2 6v-3.6c5.3-.4 7.7.8 8.7 2.8.8 1.7 1.7 4.9-2.9 8.2 6.3-2 7.5-6.9 6-11.3-1.6-4.4-7.9-5-11.8-4.9v-3.1Zm-157.3-.6c2.3 0 4.4.7 6 2l2.5-3 1.9 9.2h-9.3l2.6-3.1a6.2 6.2 0 0 0-9.9 5.1c0 3.4 2.8 6.3 6.2 6.3 2.8 0 5.1-1.9 6-4.4h4c-1 4.7-5 8.3-10 8.3a10 10 0 0 1-10-10.2 10 10 0 0 1 10-10.2Z'/%3E%3C/svg%3E"); |
||||
|
background-repeat: no-repeat; |
||||
|
background-size: 280px; |
||||
|
color: transparent; |
||||
|
display: block; |
||||
|
font-size: 0; |
||||
|
height: 20px; |
||||
|
line-height: 0; |
||||
|
width: 20px |
||||
|
} |
||||
|
|
||||
|
.viewer-zoom-in:before { |
||||
|
background-position: 0 0; |
||||
|
content: "Zoom In" |
||||
|
} |
||||
|
|
||||
|
.viewer-zoom-out:before { |
||||
|
background-position: -20px 0; |
||||
|
content: "Zoom Out" |
||||
|
} |
||||
|
|
||||
|
.viewer-one-to-one:before { |
||||
|
background-position: -40px 0; |
||||
|
content: "One to One" |
||||
|
} |
||||
|
|
||||
|
.viewer-reset:before { |
||||
|
background-position: -60px 0; |
||||
|
content: "Reset" |
||||
|
} |
||||
|
|
||||
|
.viewer-prev:before { |
||||
|
background-position: -80px 0; |
||||
|
content: "Previous" |
||||
|
} |
||||
|
|
||||
|
.viewer-play:before { |
||||
|
background-position: -100px 0; |
||||
|
content: "Play" |
||||
|
} |
||||
|
|
||||
|
.viewer-next:before { |
||||
|
background-position: -120px 0; |
||||
|
content: "Next" |
||||
|
} |
||||
|
|
||||
|
.viewer-rotate-left:before { |
||||
|
background-position: -140px 0; |
||||
|
content: "Rotate Left" |
||||
|
} |
||||
|
|
||||
|
.viewer-rotate-right:before { |
||||
|
background-position: -160px 0; |
||||
|
content: "Rotate Right" |
||||
|
} |
||||
|
|
||||
|
.viewer-flip-horizontal:before { |
||||
|
background-position: -180px 0; |
||||
|
content: "Flip Horizontal" |
||||
|
} |
||||
|
|
||||
|
.viewer-flip-vertical:before { |
||||
|
background-position: -200px 0; |
||||
|
content: "Flip Vertical" |
||||
|
} |
||||
|
|
||||
|
.viewer-fullscreen:before { |
||||
|
background-position: -220px 0; |
||||
|
content: "Enter Full Screen" |
||||
|
} |
||||
|
|
||||
|
.viewer-fullscreen-exit:before { |
||||
|
background-position: -240px 0; |
||||
|
content: "Exit Full Screen" |
||||
|
} |
||||
|
|
||||
|
.viewer-close:before { |
||||
|
background-position: -260px 0; |
||||
|
content: "Close" |
||||
|
} |
||||
|
|
||||
|
.viewer-container { |
||||
|
-webkit-tap-highlight-color: transparent; |
||||
|
-webkit-touch-callout: none; |
||||
|
bottom: 0; |
||||
|
direction: ltr; |
||||
|
font-size: 0; |
||||
|
left: 0; |
||||
|
line-height: 0; |
||||
|
overflow: hidden; |
||||
|
position: absolute; |
||||
|
right: 0; |
||||
|
top: 0; |
||||
|
-ms-touch-action: none; |
||||
|
touch-action: none; |
||||
|
-webkit-user-select: none; |
||||
|
-moz-user-select: none; |
||||
|
-ms-user-select: none; |
||||
|
user-select: none |
||||
|
} |
||||
|
|
||||
|
.viewer-container ::-moz-selection, .viewer-container::-moz-selection { |
||||
|
background-color: transparent |
||||
|
} |
||||
|
|
||||
|
.viewer-container ::selection, .viewer-container::selection { |
||||
|
background-color: transparent |
||||
|
} |
||||
|
|
||||
|
.viewer-container:focus { |
||||
|
outline: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-container img { |
||||
|
display: block; |
||||
|
height: auto; |
||||
|
max-height: none !important; |
||||
|
max-width: none !important; |
||||
|
min-height: 0 !important; |
||||
|
min-width: 0 !important; |
||||
|
width: 100% |
||||
|
} |
||||
|
|
||||
|
.viewer-canvas { |
||||
|
bottom: 0; |
||||
|
left: 0; |
||||
|
overflow: hidden; |
||||
|
position: absolute; |
||||
|
right: 0; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-canvas > img { |
||||
|
height: auto; |
||||
|
margin: 15px auto; |
||||
|
max-width: 90% !important; |
||||
|
width: auto |
||||
|
} |
||||
|
|
||||
|
.viewer-footer { |
||||
|
bottom: 0; |
||||
|
left: 0; |
||||
|
overflow: hidden; |
||||
|
position: absolute; |
||||
|
right: 0; |
||||
|
text-align: center |
||||
|
} |
||||
|
|
||||
|
.viewer-navbar { |
||||
|
background-color: rgba(0, 0, 0, .5); |
||||
|
overflow: hidden |
||||
|
} |
||||
|
|
||||
|
.viewer-list { |
||||
|
box-sizing: content-box; |
||||
|
height: 50px; |
||||
|
margin: 0; |
||||
|
overflow: hidden; |
||||
|
padding: 1px 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-list > li { |
||||
|
color: transparent; |
||||
|
cursor: pointer; |
||||
|
float: left; |
||||
|
font-size: 0; |
||||
|
height: 50px; |
||||
|
line-height: 0; |
||||
|
opacity: .5; |
||||
|
overflow: hidden; |
||||
|
transition: opacity .15s; |
||||
|
width: 30px |
||||
|
} |
||||
|
|
||||
|
.viewer-list > li:focus, .viewer-list > li:hover { |
||||
|
opacity: .75 |
||||
|
} |
||||
|
|
||||
|
.viewer-list > li:focus { |
||||
|
outline: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-list > li + li { |
||||
|
margin-left: 1px |
||||
|
} |
||||
|
|
||||
|
.viewer-list > .viewer-loading { |
||||
|
position: relative |
||||
|
} |
||||
|
|
||||
|
.viewer-list > .viewer-loading:after { |
||||
|
border-width: 2px; |
||||
|
height: 20px; |
||||
|
margin-left: -10px; |
||||
|
margin-top: -10px; |
||||
|
width: 20px |
||||
|
} |
||||
|
|
||||
|
.viewer-list > .viewer-active, .viewer-list > .viewer-active:focus, .viewer-list > .viewer-active:hover { |
||||
|
opacity: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-player { |
||||
|
background-color: #000; |
||||
|
bottom: 0; |
||||
|
cursor: none; |
||||
|
display: none; |
||||
|
right: 0; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-player, .viewer-player > img { |
||||
|
left: 0; |
||||
|
position: absolute; |
||||
|
top: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul { |
||||
|
display: inline-block; |
||||
|
margin: 0 auto 5px; |
||||
|
overflow: hidden; |
||||
|
padding: 6px 3px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li { |
||||
|
background-color: rgba(0, 0, 0, .5); |
||||
|
border-radius: 50%; |
||||
|
cursor: pointer; |
||||
|
float: left; |
||||
|
height: 24px; |
||||
|
overflow: hidden; |
||||
|
transition: background-color .15s; |
||||
|
width: 24px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li:focus, .viewer-toolbar > ul > li:hover { |
||||
|
background-color: rgba(0, 0, 0, .8) |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li:focus { |
||||
|
box-shadow: 0 0 3px #fff; |
||||
|
outline: 0; |
||||
|
position: relative; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li:before { |
||||
|
margin: 2px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > li + li { |
||||
|
margin-left: 1px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > .viewer-small { |
||||
|
height: 18px; |
||||
|
margin-bottom: 3px; |
||||
|
margin-top: 3px; |
||||
|
width: 18px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > .viewer-small:before { |
||||
|
margin: -1px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > .viewer-large { |
||||
|
height: 30px; |
||||
|
margin-bottom: -3px; |
||||
|
margin-top: -3px; |
||||
|
width: 30px |
||||
|
} |
||||
|
|
||||
|
.viewer-toolbar > ul > .viewer-large:before { |
||||
|
margin: 5px |
||||
|
} |
||||
|
|
||||
|
.viewer-tooltip { |
||||
|
background-color: rgba(0, 0, 0, .8); |
||||
|
border-radius: 10px; |
||||
|
color: #fff; |
||||
|
display: none; |
||||
|
font-size: 12px; |
||||
|
height: 20px; |
||||
|
left: 50%; |
||||
|
line-height: 20px; |
||||
|
margin-left: -25px; |
||||
|
margin-top: -10px; |
||||
|
position: absolute; |
||||
|
text-align: center; |
||||
|
top: 50%; |
||||
|
width: 50px |
||||
|
} |
||||
|
|
||||
|
.viewer-title { |
||||
|
color: #ccc; |
||||
|
display: inline-block; |
||||
|
font-size: 12px; |
||||
|
line-height: 1.2; |
||||
|
margin: 5px 5%; |
||||
|
max-width: 90%; |
||||
|
min-height: 14px; |
||||
|
opacity: .8; |
||||
|
overflow: hidden; |
||||
|
text-overflow: ellipsis; |
||||
|
transition: opacity .15s; |
||||
|
white-space: nowrap |
||||
|
} |
||||
|
|
||||
|
.viewer-title:hover { |
||||
|
opacity: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-button { |
||||
|
-webkit-app-region: no-drag; |
||||
|
background-color: rgba(0, 0, 0, .5); |
||||
|
border-radius: 50%; |
||||
|
cursor: pointer; |
||||
|
height: 80px; |
||||
|
overflow: hidden; |
||||
|
position: absolute; |
||||
|
right: -40px; |
||||
|
top: -40px; |
||||
|
transition: background-color .15s; |
||||
|
width: 80px |
||||
|
} |
||||
|
|
||||
|
.viewer-button:focus, .viewer-button:hover { |
||||
|
background-color: rgba(0, 0, 0, .8) |
||||
|
} |
||||
|
|
||||
|
.viewer-button:focus { |
||||
|
box-shadow: 0 0 3px #fff; |
||||
|
outline: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-button:before { |
||||
|
bottom: 15px; |
||||
|
left: 15px; |
||||
|
position: absolute |
||||
|
} |
||||
|
|
||||
|
.viewer-fixed { |
||||
|
position: fixed |
||||
|
} |
||||
|
|
||||
|
.viewer-open { |
||||
|
overflow: hidden |
||||
|
} |
||||
|
|
||||
|
.viewer-show { |
||||
|
display: block |
||||
|
} |
||||
|
|
||||
|
.viewer-hide { |
||||
|
display: none |
||||
|
} |
||||
|
|
||||
|
.viewer-backdrop { |
||||
|
background-color: rgba(0, 0, 0, .5) |
||||
|
} |
||||
|
|
||||
|
.viewer-invisible { |
||||
|
visibility: hidden |
||||
|
} |
||||
|
|
||||
|
.viewer-move { |
||||
|
cursor: move; |
||||
|
cursor: grab |
||||
|
} |
||||
|
|
||||
|
.viewer-fade { |
||||
|
opacity: 0 |
||||
|
} |
||||
|
|
||||
|
.viewer-in { |
||||
|
opacity: 1 |
||||
|
} |
||||
|
|
||||
|
.viewer-transition { |
||||
|
transition: all .3s |
||||
|
} |
||||
|
|
||||
|
@keyframes viewer-spinner { |
||||
|
0% { |
||||
|
transform: rotate(0deg) |
||||
|
} |
||||
|
to { |
||||
|
transform: rotate(1turn) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.viewer-loading:after { |
||||
|
animation: viewer-spinner 1s linear infinite; |
||||
|
border: 4px solid hsla(0, 0%, 100%, .1); |
||||
|
border-left-color: hsla(0, 0%, 100%, .5); |
||||
|
border-radius: 50%; |
||||
|
content: ""; |
||||
|
display: inline-block; |
||||
|
height: 40px; |
||||
|
left: 50%; |
||||
|
margin-left: -20px; |
||||
|
margin-top: -20px; |
||||
|
position: absolute; |
||||
|
top: 50%; |
||||
|
width: 40px; |
||||
|
z-index: 1 |
||||
|
} |
||||
|
|
||||
|
@media (max-width: 767px) { |
||||
|
.viewer-hide-xs-down { |
||||
|
display: none |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@media (max-width: 991px) { |
||||
|
.viewer-hide-sm-down { |
||||
|
display: none |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@media (max-width: 1199px) { |
||||
|
.viewer-hide-md-down { |
||||
|
display: none |
||||
|
} |
||||
|
} |
||||
3618
src/main/resources/static/assets/files/assets/js/leaflet.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,589 @@ |
|||||
|
!function (e, t) { |
||||
|
"object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t(((e = e || self).Leaflet = e.Leaflet || {}, e.Leaflet.markercluster = {})) |
||||
|
}(this, function (e) { |
||||
|
"use strict"; |
||||
|
var t = L.MarkerClusterGroup = L.FeatureGroup.extend({ |
||||
|
options: { |
||||
|
maxClusterRadius: 80, |
||||
|
iconCreateFunction: null, |
||||
|
clusterPane: L.Marker.prototype.options.pane, |
||||
|
spiderfyOnEveryZoom: !1, |
||||
|
spiderfyOnMaxZoom: !0, |
||||
|
showCoverageOnHover: !0, |
||||
|
zoomToBoundsOnClick: !0, |
||||
|
singleMarkerMode: !1, |
||||
|
disableClusteringAtZoom: null, |
||||
|
removeOutsideVisibleBounds: !0, |
||||
|
animate: !0, |
||||
|
animateAddingMarkers: !1, |
||||
|
spiderfyShapePositions: null, |
||||
|
spiderfyDistanceMultiplier: 1, |
||||
|
spiderLegPolylineOptions: {weight: 1.5, color: "#222", opacity: .5}, |
||||
|
chunkedLoading: !1, |
||||
|
chunkInterval: 200, |
||||
|
chunkDelay: 50, |
||||
|
chunkProgress: null, |
||||
|
polygonOptions: {} |
||||
|
}, initialize: function (e) { |
||||
|
L.Util.setOptions(this, e), this.options.iconCreateFunction || (this.options.iconCreateFunction = this._defaultIconCreateFunction), this._featureGroup = L.featureGroup(), this._featureGroup.addEventParent(this), this._nonPointGroup = L.featureGroup(), this._nonPointGroup.addEventParent(this), this._inZoomAnimation = 0, this._needsClustering = [], this._needsRemoving = [], this._currentShownBounds = null, this._queue = [], this._childMarkerEventHandlers = { |
||||
|
dragstart: this._childMarkerDragStart, |
||||
|
move: this._childMarkerMoved, |
||||
|
dragend: this._childMarkerDragEnd |
||||
|
}; |
||||
|
var t = L.DomUtil.TRANSITION && this.options.animate; |
||||
|
L.extend(this, t ? this._withAnimation : this._noAnimation), this._markerCluster = t ? L.MarkerCluster : L.MarkerClusterNonAnimated |
||||
|
}, addLayer: function (e) { |
||||
|
if (e instanceof L.LayerGroup) return this.addLayers([e]); |
||||
|
if (!e.getLatLng) return this._nonPointGroup.addLayer(e), this.fire("layeradd", {layer: e}), this; |
||||
|
if (!this._map) return this._needsClustering.push(e), this.fire("layeradd", {layer: e}), this; |
||||
|
if (this.hasLayer(e)) return this; |
||||
|
this._unspiderfy && this._unspiderfy(), this._addLayer(e, this._maxZoom), this.fire("layeradd", {layer: e}), this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(); |
||||
|
var t = e, i = this._zoom; |
||||
|
if (e.__parent) for (; t.__parent._zoom >= i;) t = t.__parent; |
||||
|
return this._currentShownBounds.contains(t.getLatLng()) && (this.options.animateAddingMarkers ? this._animationAddLayer(e, t) : this._animationAddLayerNonAnimated(e, t)), this |
||||
|
}, removeLayer: function (e) { |
||||
|
return e instanceof L.LayerGroup ? this.removeLayers([e]) : (e.getLatLng ? this._map ? e.__parent && (this._unspiderfy && (this._unspiderfy(), this._unspiderfyLayer(e)), this._removeLayer(e, !0), this.fire("layerremove", {layer: e}), this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(), e.off(this._childMarkerEventHandlers, this), this._featureGroup.hasLayer(e) && (this._featureGroup.removeLayer(e), e.clusterShow && e.clusterShow())) : (!this._arraySplice(this._needsClustering, e) && this.hasLayer(e) && this._needsRemoving.push({ |
||||
|
layer: e, |
||||
|
latlng: e._latlng |
||||
|
}), this.fire("layerremove", {layer: e})) : (this._nonPointGroup.removeLayer(e), this.fire("layerremove", {layer: e})), this) |
||||
|
}, addLayers: function (n, s) { |
||||
|
if (!L.Util.isArray(n)) return this.addLayer(n); |
||||
|
var o, a = this._featureGroup, h = this._nonPointGroup, l = this.options.chunkedLoading, |
||||
|
u = this.options.chunkInterval, _ = this.options.chunkProgress, d = n.length, p = 0, c = !0; |
||||
|
if (this._map) { |
||||
|
var f = (new Date).getTime(), m = L.bind(function () { |
||||
|
var e = (new Date).getTime(); |
||||
|
for (this._map && this._unspiderfy && this._unspiderfy(); p < d; p++) { |
||||
|
if (l && p % 200 == 0) { |
||||
|
var t = (new Date).getTime() - e; |
||||
|
if (u < t) break |
||||
|
} |
||||
|
if ((o = n[p]) instanceof L.LayerGroup) c && (n = n.slice(), c = !1), this._extractNonGroupLayers(o, n), d = n.length; else if (o.getLatLng) { |
||||
|
if (!this.hasLayer(o) && (this._addLayer(o, this._maxZoom), s || this.fire("layeradd", {layer: o}), o.__parent && 2 === o.__parent.getChildCount())) { |
||||
|
var i = o.__parent.getAllChildMarkers(), r = i[0] === o ? i[1] : i[0]; |
||||
|
a.removeLayer(r) |
||||
|
} |
||||
|
} else h.addLayer(o), s || this.fire("layeradd", {layer: o}) |
||||
|
} |
||||
|
_ && _(p, d, (new Date).getTime() - f), p === d ? (this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(), this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds)) : setTimeout(m, this.options.chunkDelay) |
||||
|
}, this); |
||||
|
m() |
||||
|
} else for (var e = this._needsClustering; p < d; p++) (o = n[p]) instanceof L.LayerGroup ? (c && (n = n.slice(), c = !1), this._extractNonGroupLayers(o, n), d = n.length) : o.getLatLng ? this.hasLayer(o) || e.push(o) : h.addLayer(o); |
||||
|
return this |
||||
|
}, removeLayers: function (e) { |
||||
|
var t, i, r = e.length, n = this._featureGroup, s = this._nonPointGroup, o = !0; |
||||
|
if (!this._map) { |
||||
|
for (t = 0; t < r; t++) (i = e[t]) instanceof L.LayerGroup ? (o && (e = e.slice(), o = !1), this._extractNonGroupLayers(i, e), r = e.length) : (this._arraySplice(this._needsClustering, i), s.removeLayer(i), this.hasLayer(i) && this._needsRemoving.push({ |
||||
|
layer: i, |
||||
|
latlng: i._latlng |
||||
|
}), this.fire("layerremove", {layer: i})); |
||||
|
return this |
||||
|
} |
||||
|
if (this._unspiderfy) { |
||||
|
this._unspiderfy(); |
||||
|
var a = e.slice(), h = r; |
||||
|
for (t = 0; t < h; t++) (i = a[t]) instanceof L.LayerGroup ? (this._extractNonGroupLayers(i, a), h = a.length) : this._unspiderfyLayer(i) |
||||
|
} |
||||
|
for (t = 0; t < r; t++) (i = e[t]) instanceof L.LayerGroup ? (o && (e = e.slice(), o = !1), this._extractNonGroupLayers(i, e), r = e.length) : i.__parent ? (this._removeLayer(i, !0, !0), this.fire("layerremove", {layer: i}), n.hasLayer(i) && (n.removeLayer(i), i.clusterShow && i.clusterShow())) : (s.removeLayer(i), this.fire("layerremove", {layer: i})); |
||||
|
return this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(), this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds), this |
||||
|
}, clearLayers: function () { |
||||
|
return this._map || (this._needsClustering = [], this._needsRemoving = [], delete this._gridClusters, delete this._gridUnclustered), this._noanimationUnspiderfy && this._noanimationUnspiderfy(), this._featureGroup.clearLayers(), this._nonPointGroup.clearLayers(), this.eachLayer(function (e) { |
||||
|
e.off(this._childMarkerEventHandlers, this), delete e.__parent |
||||
|
}, this), this._map && this._generateInitialClusters(), this |
||||
|
}, getBounds: function () { |
||||
|
var e = new L.LatLngBounds; |
||||
|
this._topClusterLevel && e.extend(this._topClusterLevel._bounds); |
||||
|
for (var t = this._needsClustering.length - 1; 0 <= t; t--) e.extend(this._needsClustering[t].getLatLng()); |
||||
|
return e.extend(this._nonPointGroup.getBounds()), e |
||||
|
}, eachLayer: function (e, t) { |
||||
|
var i, r, n, s = this._needsClustering.slice(), o = this._needsRemoving; |
||||
|
for (this._topClusterLevel && this._topClusterLevel.getAllChildMarkers(s), r = s.length - 1; 0 <= r; r--) { |
||||
|
for (i = !0, n = o.length - 1; 0 <= n; n--) if (o[n].layer === s[r]) { |
||||
|
i = !1; |
||||
|
break |
||||
|
} |
||||
|
i && e.call(t, s[r]) |
||||
|
} |
||||
|
this._nonPointGroup.eachLayer(e, t) |
||||
|
}, getLayers: function () { |
||||
|
var t = []; |
||||
|
return this.eachLayer(function (e) { |
||||
|
t.push(e) |
||||
|
}), t |
||||
|
}, getLayer: function (t) { |
||||
|
var i = null; |
||||
|
return t = parseInt(t, 10), this.eachLayer(function (e) { |
||||
|
L.stamp(e) === t && (i = e) |
||||
|
}), i |
||||
|
}, hasLayer: function (e) { |
||||
|
if (!e) return !1; |
||||
|
var t, i = this._needsClustering; |
||||
|
for (t = i.length - 1; 0 <= t; t--) if (i[t] === e) return !0; |
||||
|
for (t = (i = this._needsRemoving).length - 1; 0 <= t; t--) if (i[t].layer === e) return !1; |
||||
|
return !(!e.__parent || e.__parent._group !== this) || this._nonPointGroup.hasLayer(e) |
||||
|
}, zoomToShowLayer: function (e, t) { |
||||
|
var i = this._map; |
||||
|
"function" != typeof t && (t = function () { |
||||
|
}); |
||||
|
var r = function () { |
||||
|
!i.hasLayer(e) && !i.hasLayer(e.__parent) || this._inZoomAnimation || (this._map.off("moveend", r, this), this.off("animationend", r, this), i.hasLayer(e) ? t() : e.__parent._icon && (this.once("spiderfied", t, this), e.__parent.spiderfy())) |
||||
|
}; |
||||
|
e._icon && this._map.getBounds().contains(e.getLatLng()) ? t() : e.__parent._zoom < Math.round(this._map._zoom) ? (this._map.on("moveend", r, this), this._map.panTo(e.getLatLng())) : (this._map.on("moveend", r, this), this.on("animationend", r, this), e.__parent.zoomToBounds()) |
||||
|
}, onAdd: function (e) { |
||||
|
var t, i, r; |
||||
|
if (this._map = e, !isFinite(this._map.getMaxZoom())) throw "Map has no maxZoom specified"; |
||||
|
for (this._featureGroup.addTo(e), this._nonPointGroup.addTo(e), this._gridClusters || this._generateInitialClusters(), this._maxLat = e.options.crs.projection.MAX_LATITUDE, t = 0, i = this._needsRemoving.length; t < i; t++) (r = this._needsRemoving[t]).newlatlng = r.layer._latlng, r.layer._latlng = r.latlng; |
||||
|
for (t = 0, i = this._needsRemoving.length; t < i; t++) r = this._needsRemoving[t], this._removeLayer(r.layer, !0), r.layer._latlng = r.newlatlng; |
||||
|
this._needsRemoving = [], this._zoom = Math.round(this._map._zoom), this._currentShownBounds = this._getExpandedVisibleBounds(), this._map.on("zoomend", this._zoomEnd, this), this._map.on("moveend", this._moveEnd, this), this._spiderfierOnAdd && this._spiderfierOnAdd(), this._bindEvents(), i = this._needsClustering, this._needsClustering = [], this.addLayers(i, !0) |
||||
|
}, onRemove: function (e) { |
||||
|
e.off("zoomend", this._zoomEnd, this), e.off("moveend", this._moveEnd, this), this._unbindEvents(), this._map._mapPane.className = this._map._mapPane.className.replace(" leaflet-cluster-anim", ""), this._spiderfierOnRemove && this._spiderfierOnRemove(), delete this._maxLat, this._hideCoverage(), this._featureGroup.remove(), this._nonPointGroup.remove(), this._featureGroup.clearLayers(), this._map = null |
||||
|
}, getVisibleParent: function (e) { |
||||
|
for (var t = e; t && !t._icon;) t = t.__parent; |
||||
|
return t || null |
||||
|
}, _arraySplice: function (e, t) { |
||||
|
for (var i = e.length - 1; 0 <= i; i--) if (e[i] === t) return e.splice(i, 1), !0 |
||||
|
}, _removeFromGridUnclustered: function (e, t) { |
||||
|
for (var i = this._map, r = this._gridUnclustered, n = Math.floor(this._map.getMinZoom()); n <= t && r[t].removeObject(e, i.project(e.getLatLng(), t)); t--) ; |
||||
|
}, _childMarkerDragStart: function (e) { |
||||
|
e.target.__dragStart = e.target._latlng |
||||
|
}, _childMarkerMoved: function (e) { |
||||
|
if (!this._ignoreMove && !e.target.__dragStart) { |
||||
|
var t = e.target._popup && e.target._popup.isOpen(); |
||||
|
this._moveChild(e.target, e.oldLatLng, e.latlng), t && e.target.openPopup() |
||||
|
} |
||||
|
}, _moveChild: function (e, t, i) { |
||||
|
e._latlng = t, this.removeLayer(e), e._latlng = i, this.addLayer(e) |
||||
|
}, _childMarkerDragEnd: function (e) { |
||||
|
var t = e.target.__dragStart; |
||||
|
delete e.target.__dragStart, t && this._moveChild(e.target, t, e.target._latlng) |
||||
|
}, _removeLayer: function (e, t, i) { |
||||
|
var r = this._gridClusters, n = this._gridUnclustered, s = this._featureGroup, o = this._map, |
||||
|
a = Math.floor(this._map.getMinZoom()); |
||||
|
t && this._removeFromGridUnclustered(e, this._maxZoom); |
||||
|
var h, l = e.__parent, u = l._markers; |
||||
|
for (this._arraySplice(u, e); l && (l._childCount--, l._boundsNeedUpdate = !0, !(l._zoom < a));) t && l._childCount <= 1 ? (h = l._markers[0] === e ? l._markers[1] : l._markers[0], r[l._zoom].removeObject(l, o.project(l._cLatLng, l._zoom)), n[l._zoom].addObject(h, o.project(h.getLatLng(), l._zoom)), this._arraySplice(l.__parent._childClusters, l), l.__parent._markers.push(h), h.__parent = l.__parent, l._icon && (s.removeLayer(l), i || s.addLayer(h))) : l._iconNeedsUpdate = !0, l = l.__parent; |
||||
|
delete e.__parent |
||||
|
}, _isOrIsParent: function (e, t) { |
||||
|
for (; t;) { |
||||
|
if (e === t) return !0; |
||||
|
t = t.parentNode |
||||
|
} |
||||
|
return !1 |
||||
|
}, fire: function (e, t, i) { |
||||
|
if (t && t.layer instanceof L.MarkerCluster) { |
||||
|
if (t.originalEvent && this._isOrIsParent(t.layer._icon, t.originalEvent.relatedTarget)) return; |
||||
|
e = "cluster" + e |
||||
|
} |
||||
|
L.FeatureGroup.prototype.fire.call(this, e, t, i) |
||||
|
}, listens: function (e, t) { |
||||
|
return L.FeatureGroup.prototype.listens.call(this, e, t) || L.FeatureGroup.prototype.listens.call(this, "cluster" + e, t) |
||||
|
}, _defaultIconCreateFunction: function (e) { |
||||
|
var t = e.getChildCount(), i = " marker-cluster-"; |
||||
|
return i += t < 10 ? "small" : t < 100 ? "medium" : "large", new L.DivIcon({ |
||||
|
html: "<div><span>" + t + "</span></div>", |
||||
|
className: "marker-cluster" + i, |
||||
|
iconSize: new L.Point(40, 40) |
||||
|
}) |
||||
|
}, _bindEvents: function () { |
||||
|
var e = this._map, t = this.options.spiderfyOnMaxZoom, i = this.options.showCoverageOnHover, |
||||
|
r = this.options.zoomToBoundsOnClick, n = this.options.spiderfyOnEveryZoom; |
||||
|
(t || r || n) && this.on("clusterclick clusterkeypress", this._zoomOrSpiderfy, this), i && (this.on("clustermouseover", this._showCoverage, this), this.on("clustermouseout", this._hideCoverage, this), e.on("zoomend", this._hideCoverage, this)) |
||||
|
}, _zoomOrSpiderfy: function (e) { |
||||
|
var t = e.layer, i = t; |
||||
|
if ("clusterkeypress" !== e.type || !e.originalEvent || 13 === e.originalEvent.keyCode) { |
||||
|
for (; 1 === i._childClusters.length;) i = i._childClusters[0]; |
||||
|
i._zoom === this._maxZoom && i._childCount === t._childCount && this.options.spiderfyOnMaxZoom ? t.spiderfy() : this.options.zoomToBoundsOnClick && t.zoomToBounds(), this.options.spiderfyOnEveryZoom && t.spiderfy(), e.originalEvent && 13 === e.originalEvent.keyCode && this._map._container.focus() |
||||
|
} |
||||
|
}, _showCoverage: function (e) { |
||||
|
var t = this._map; |
||||
|
this._inZoomAnimation || (this._shownPolygon && t.removeLayer(this._shownPolygon), 2 < e.layer.getChildCount() && e.layer !== this._spiderfied && (this._shownPolygon = new L.Polygon(e.layer.getConvexHull(), this.options.polygonOptions), t.addLayer(this._shownPolygon))) |
||||
|
}, _hideCoverage: function () { |
||||
|
this._shownPolygon && (this._map.removeLayer(this._shownPolygon), this._shownPolygon = null) |
||||
|
}, _unbindEvents: function () { |
||||
|
var e = this.options.spiderfyOnMaxZoom, t = this.options.showCoverageOnHover, |
||||
|
i = this.options.zoomToBoundsOnClick, r = this.options.spiderfyOnEveryZoom, n = this._map; |
||||
|
(e || i || r) && this.off("clusterclick clusterkeypress", this._zoomOrSpiderfy, this), t && (this.off("clustermouseover", this._showCoverage, this), this.off("clustermouseout", this._hideCoverage, this), n.off("zoomend", this._hideCoverage, this)) |
||||
|
}, _zoomEnd: function () { |
||||
|
this._map && (this._mergeSplitClusters(), this._zoom = Math.round(this._map._zoom), this._currentShownBounds = this._getExpandedVisibleBounds()) |
||||
|
}, _moveEnd: function () { |
||||
|
if (!this._inZoomAnimation) { |
||||
|
var e = this._getExpandedVisibleBounds(); |
||||
|
this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, e), this._topClusterLevel._recursivelyAddChildrenToMap(null, Math.round(this._map._zoom), e), this._currentShownBounds = e |
||||
|
} |
||||
|
}, _generateInitialClusters: function () { |
||||
|
var e = Math.ceil(this._map.getMaxZoom()), t = Math.floor(this._map.getMinZoom()), |
||||
|
i = this.options.maxClusterRadius, r = i; |
||||
|
"function" != typeof i && (r = function () { |
||||
|
return i |
||||
|
}), null !== this.options.disableClusteringAtZoom && (e = this.options.disableClusteringAtZoom - 1), this._maxZoom = e, this._gridClusters = {}, this._gridUnclustered = {}; |
||||
|
for (var n = e; t <= n; n--) this._gridClusters[n] = new L.DistanceGrid(r(n)), this._gridUnclustered[n] = new L.DistanceGrid(r(n)); |
||||
|
this._topClusterLevel = new this._markerCluster(this, t - 1) |
||||
|
}, _addLayer: function (e, t) { |
||||
|
var i, r, n = this._gridClusters, s = this._gridUnclustered, o = Math.floor(this._map.getMinZoom()); |
||||
|
for (this.options.singleMarkerMode && this._overrideMarkerIcon(e), e.on(this._childMarkerEventHandlers, this); o <= t; t--) { |
||||
|
i = this._map.project(e.getLatLng(), t); |
||||
|
var a = n[t].getNearObject(i); |
||||
|
if (a) return a._addChild(e), void (e.__parent = a); |
||||
|
if (a = s[t].getNearObject(i)) { |
||||
|
var h = a.__parent; |
||||
|
h && this._removeLayer(a, !1); |
||||
|
var l = new this._markerCluster(this, t, a, e); |
||||
|
n[t].addObject(l, this._map.project(l._cLatLng, t)), a.__parent = l; |
||||
|
var u = e.__parent = l; |
||||
|
for (r = t - 1; r > h._zoom; r--) u = new this._markerCluster(this, r, u), n[r].addObject(u, this._map.project(a.getLatLng(), r)); |
||||
|
return h._addChild(u), void this._removeFromGridUnclustered(a, t) |
||||
|
} |
||||
|
s[t].addObject(e, i) |
||||
|
} |
||||
|
this._topClusterLevel._addChild(e), e.__parent = this._topClusterLevel |
||||
|
}, _refreshClustersIcons: function () { |
||||
|
this._featureGroup.eachLayer(function (e) { |
||||
|
e instanceof L.MarkerCluster && e._iconNeedsUpdate && e._updateIcon() |
||||
|
}) |
||||
|
}, _enqueue: function (e) { |
||||
|
this._queue.push(e), this._queueTimeout || (this._queueTimeout = setTimeout(L.bind(this._processQueue, this), 300)) |
||||
|
}, _processQueue: function () { |
||||
|
for (var e = 0; e < this._queue.length; e++) this._queue[e].call(this); |
||||
|
this._queue.length = 0, clearTimeout(this._queueTimeout), this._queueTimeout = null |
||||
|
}, _mergeSplitClusters: function () { |
||||
|
var e = Math.round(this._map._zoom); |
||||
|
this._processQueue(), this._zoom < e && this._currentShownBounds.intersects(this._getExpandedVisibleBounds()) ? (this._animationStart(), this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, this._getExpandedVisibleBounds()), this._animationZoomIn(this._zoom, e)) : this._zoom > e ? (this._animationStart(), this._animationZoomOut(this._zoom, e)) : this._moveEnd() |
||||
|
}, _getExpandedVisibleBounds: function () { |
||||
|
return this.options.removeOutsideVisibleBounds ? L.Browser.mobile ? this._checkBoundsMaxLat(this._map.getBounds()) : this._checkBoundsMaxLat(this._map.getBounds().pad(1)) : this._mapBoundsInfinite |
||||
|
}, _checkBoundsMaxLat: function (e) { |
||||
|
var t = this._maxLat; |
||||
|
return void 0 !== t && (e.getNorth() >= t && (e._northEast.lat = 1 / 0), e.getSouth() <= -t && (e._southWest.lat = -1 / 0)), e |
||||
|
}, _animationAddLayerNonAnimated: function (e, t) { |
||||
|
if (t === e) this._featureGroup.addLayer(e); else if (2 === t._childCount) { |
||||
|
t._addToMap(); |
||||
|
var i = t.getAllChildMarkers(); |
||||
|
this._featureGroup.removeLayer(i[0]), this._featureGroup.removeLayer(i[1]) |
||||
|
} else t._updateIcon() |
||||
|
}, _extractNonGroupLayers: function (e, t) { |
||||
|
var i, r = e.getLayers(), n = 0; |
||||
|
for (t = t || []; n < r.length; n++) (i = r[n]) instanceof L.LayerGroup ? this._extractNonGroupLayers(i, t) : t.push(i); |
||||
|
return t |
||||
|
}, _overrideMarkerIcon: function (e) { |
||||
|
return e.options.icon = this.options.iconCreateFunction({ |
||||
|
getChildCount: function () { |
||||
|
return 1 |
||||
|
}, getAllChildMarkers: function () { |
||||
|
return [e] |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}); |
||||
|
L.MarkerClusterGroup.include({_mapBoundsInfinite: new L.LatLngBounds(new L.LatLng(-1 / 0, -1 / 0), new L.LatLng(1 / 0, 1 / 0))}), L.MarkerClusterGroup.include({ |
||||
|
_noAnimation: { |
||||
|
_animationStart: function () { |
||||
|
}, _animationZoomIn: function (e, t) { |
||||
|
this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e), this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()), this.fire("animationend") |
||||
|
}, _animationZoomOut: function (e, t) { |
||||
|
this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e), this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()), this.fire("animationend") |
||||
|
}, _animationAddLayer: function (e, t) { |
||||
|
this._animationAddLayerNonAnimated(e, t) |
||||
|
} |
||||
|
}, _withAnimation: { |
||||
|
_animationStart: function () { |
||||
|
this._map._mapPane.className += " leaflet-cluster-anim", this._inZoomAnimation++ |
||||
|
}, _animationZoomIn: function (n, s) { |
||||
|
var o, a = this._getExpandedVisibleBounds(), h = this._featureGroup, |
||||
|
e = Math.floor(this._map.getMinZoom()); |
||||
|
this._ignoreMove = !0, this._topClusterLevel._recursively(a, n, e, function (e) { |
||||
|
var t, i = e._latlng, r = e._markers; |
||||
|
for (a.contains(i) || (i = null), e._isSingleParent() && n + 1 === s ? (h.removeLayer(e), e._recursivelyAddChildrenToMap(null, s, a)) : (e.clusterHide(), e._recursivelyAddChildrenToMap(i, s, a)), o = r.length - 1; 0 <= o; o--) t = r[o], a.contains(t._latlng) || h.removeLayer(t) |
||||
|
}), this._forceLayout(), this._topClusterLevel._recursivelyBecomeVisible(a, s), h.eachLayer(function (e) { |
||||
|
e instanceof L.MarkerCluster || !e._icon || e.clusterShow() |
||||
|
}), this._topClusterLevel._recursively(a, n, s, function (e) { |
||||
|
e._recursivelyRestoreChildPositions(s) |
||||
|
}), this._ignoreMove = !1, this._enqueue(function () { |
||||
|
this._topClusterLevel._recursively(a, n, e, function (e) { |
||||
|
h.removeLayer(e), e.clusterShow() |
||||
|
}), this._animationEnd() |
||||
|
}) |
||||
|
}, _animationZoomOut: function (e, t) { |
||||
|
this._animationZoomOutSingle(this._topClusterLevel, e - 1, t), this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()), this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e, this._getExpandedVisibleBounds()) |
||||
|
}, _animationAddLayer: function (e, t) { |
||||
|
var i = this, r = this._featureGroup; |
||||
|
r.addLayer(e), t !== e && (2 < t._childCount ? (t._updateIcon(), this._forceLayout(), this._animationStart(), e._setPos(this._map.latLngToLayerPoint(t.getLatLng())), e.clusterHide(), this._enqueue(function () { |
||||
|
r.removeLayer(e), e.clusterShow(), i._animationEnd() |
||||
|
})) : (this._forceLayout(), i._animationStart(), i._animationZoomOutSingle(t, this._map.getMaxZoom(), this._zoom))) |
||||
|
} |
||||
|
}, _animationZoomOutSingle: function (t, i, r) { |
||||
|
var n = this._getExpandedVisibleBounds(), s = Math.floor(this._map.getMinZoom()); |
||||
|
t._recursivelyAnimateChildrenInAndAddSelfToMap(n, s, i + 1, r); |
||||
|
var o = this; |
||||
|
this._forceLayout(), t._recursivelyBecomeVisible(n, r), this._enqueue(function () { |
||||
|
if (1 === t._childCount) { |
||||
|
var e = t._markers[0]; |
||||
|
this._ignoreMove = !0, e.setLatLng(e.getLatLng()), this._ignoreMove = !1, e.clusterShow && e.clusterShow() |
||||
|
} else t._recursively(n, r, s, function (e) { |
||||
|
e._recursivelyRemoveChildrenFromMap(n, s, i + 1) |
||||
|
}); |
||||
|
o._animationEnd() |
||||
|
}) |
||||
|
}, _animationEnd: function () { |
||||
|
this._map && (this._map._mapPane.className = this._map._mapPane.className.replace(" leaflet-cluster-anim", "")), this._inZoomAnimation--, this.fire("animationend") |
||||
|
}, _forceLayout: function () { |
||||
|
L.Util.falseFn(document.body.offsetWidth) |
||||
|
} |
||||
|
}), L.markerClusterGroup = function (e) { |
||||
|
return new L.MarkerClusterGroup(e) |
||||
|
}; |
||||
|
var i = L.MarkerCluster = L.Marker.extend({ |
||||
|
options: L.Icon.prototype.options, initialize: function (e, t, i, r) { |
||||
|
L.Marker.prototype.initialize.call(this, i ? i._cLatLng || i.getLatLng() : new L.LatLng(0, 0), { |
||||
|
icon: this, |
||||
|
pane: e.options.clusterPane |
||||
|
}), this._group = e, this._zoom = t, this._markers = [], this._childClusters = [], this._childCount = 0, this._iconNeedsUpdate = !0, this._boundsNeedUpdate = !0, this._bounds = new L.LatLngBounds, i && this._addChild(i), r && this._addChild(r) |
||||
|
}, getAllChildMarkers: function (e, t) { |
||||
|
e = e || []; |
||||
|
for (var i = this._childClusters.length - 1; 0 <= i; i--) this._childClusters[i].getAllChildMarkers(e, t); |
||||
|
for (var r = this._markers.length - 1; 0 <= r; r--) t && this._markers[r].__dragStart || e.push(this._markers[r]); |
||||
|
return e |
||||
|
}, getChildCount: function () { |
||||
|
return this._childCount |
||||
|
}, zoomToBounds: function (e) { |
||||
|
for (var t, i = this._childClusters.slice(), r = this._group._map, n = r.getBoundsZoom(this._bounds), s = this._zoom + 1, o = r.getZoom(); 0 < i.length && s < n;) { |
||||
|
s++; |
||||
|
var a = []; |
||||
|
for (t = 0; t < i.length; t++) a = a.concat(i[t]._childClusters); |
||||
|
i = a |
||||
|
} |
||||
|
s < n ? this._group._map.setView(this._latlng, s) : n <= o ? this._group._map.setView(this._latlng, o + 1) : this._group._map.fitBounds(this._bounds, e) |
||||
|
}, getBounds: function () { |
||||
|
var e = new L.LatLngBounds; |
||||
|
return e.extend(this._bounds), e |
||||
|
}, _updateIcon: function () { |
||||
|
this._iconNeedsUpdate = !0, this._icon && this.setIcon(this) |
||||
|
}, createIcon: function () { |
||||
|
return this._iconNeedsUpdate && (this._iconObj = this._group.options.iconCreateFunction(this), this._iconNeedsUpdate = !1), this._iconObj.createIcon() |
||||
|
}, createShadow: function () { |
||||
|
return this._iconObj.createShadow() |
||||
|
}, _addChild: function (e, t) { |
||||
|
this._iconNeedsUpdate = !0, this._boundsNeedUpdate = !0, this._setClusterCenter(e), e instanceof L.MarkerCluster ? (t || (this._childClusters.push(e), e.__parent = this), this._childCount += e._childCount) : (t || this._markers.push(e), this._childCount++), this.__parent && this.__parent._addChild(e, !0) |
||||
|
}, _setClusterCenter: function (e) { |
||||
|
this._cLatLng || (this._cLatLng = e._cLatLng || e._latlng) |
||||
|
}, _resetBounds: function () { |
||||
|
var e = this._bounds; |
||||
|
e._southWest && (e._southWest.lat = 1 / 0, e._southWest.lng = 1 / 0), e._northEast && (e._northEast.lat = -1 / 0, e._northEast.lng = -1 / 0) |
||||
|
}, _recalculateBounds: function () { |
||||
|
var e, t, i, r, n = this._markers, s = this._childClusters, o = 0, a = 0, h = this._childCount; |
||||
|
if (0 !== h) { |
||||
|
for (this._resetBounds(), e = 0; e < n.length; e++) i = n[e]._latlng, this._bounds.extend(i), o += i.lat, a += i.lng; |
||||
|
for (e = 0; e < s.length; e++) (t = s[e])._boundsNeedUpdate && t._recalculateBounds(), this._bounds.extend(t._bounds), i = t._wLatLng, r = t._childCount, o += i.lat * r, a += i.lng * r; |
||||
|
this._latlng = this._wLatLng = new L.LatLng(o / h, a / h), this._boundsNeedUpdate = !1 |
||||
|
} |
||||
|
}, _addToMap: function (e) { |
||||
|
e && (this._backupLatlng = this._latlng, this.setLatLng(e)), this._group._featureGroup.addLayer(this) |
||||
|
}, _recursivelyAnimateChildrenIn: function (e, n, t) { |
||||
|
this._recursively(e, this._group._map.getMinZoom(), t - 1, function (e) { |
||||
|
var t, i, r = e._markers; |
||||
|
for (t = r.length - 1; 0 <= t; t--) (i = r[t])._icon && (i._setPos(n), i.clusterHide()) |
||||
|
}, function (e) { |
||||
|
var t, i, r = e._childClusters; |
||||
|
for (t = r.length - 1; 0 <= t; t--) (i = r[t])._icon && (i._setPos(n), i.clusterHide()) |
||||
|
}) |
||||
|
}, _recursivelyAnimateChildrenInAndAddSelfToMap: function (t, i, r, n) { |
||||
|
this._recursively(t, n, i, function (e) { |
||||
|
e._recursivelyAnimateChildrenIn(t, e._group._map.latLngToLayerPoint(e.getLatLng()).round(), r), e._isSingleParent() && r - 1 === n ? (e.clusterShow(), e._recursivelyRemoveChildrenFromMap(t, i, r)) : e.clusterHide(), e._addToMap() |
||||
|
}) |
||||
|
}, _recursivelyBecomeVisible: function (e, t) { |
||||
|
this._recursively(e, this._group._map.getMinZoom(), t, null, function (e) { |
||||
|
e.clusterShow() |
||||
|
}) |
||||
|
}, _recursivelyAddChildrenToMap: function (r, n, s) { |
||||
|
this._recursively(s, this._group._map.getMinZoom() - 1, n, function (e) { |
||||
|
if (n !== e._zoom) for (var t = e._markers.length - 1; 0 <= t; t--) { |
||||
|
var i = e._markers[t]; |
||||
|
s.contains(i._latlng) && (r && (i._backupLatlng = i.getLatLng(), i.setLatLng(r), i.clusterHide && i.clusterHide()), e._group._featureGroup.addLayer(i)) |
||||
|
} |
||||
|
}, function (e) { |
||||
|
e._addToMap(r) |
||||
|
}) |
||||
|
}, _recursivelyRestoreChildPositions: function (e) { |
||||
|
for (var t = this._markers.length - 1; 0 <= t; t--) { |
||||
|
var i = this._markers[t]; |
||||
|
i._backupLatlng && (i.setLatLng(i._backupLatlng), delete i._backupLatlng) |
||||
|
} |
||||
|
if (e - 1 === this._zoom) for (var r = this._childClusters.length - 1; 0 <= r; r--) this._childClusters[r]._restorePosition(); else for (var n = this._childClusters.length - 1; 0 <= n; n--) this._childClusters[n]._recursivelyRestoreChildPositions(e) |
||||
|
}, _restorePosition: function () { |
||||
|
this._backupLatlng && (this.setLatLng(this._backupLatlng), delete this._backupLatlng) |
||||
|
}, _recursivelyRemoveChildrenFromMap: function (e, t, i, r) { |
||||
|
var n, s; |
||||
|
this._recursively(e, t - 1, i - 1, function (e) { |
||||
|
for (s = e._markers.length - 1; 0 <= s; s--) n = e._markers[s], r && r.contains(n._latlng) || (e._group._featureGroup.removeLayer(n), n.clusterShow && n.clusterShow()) |
||||
|
}, function (e) { |
||||
|
for (s = e._childClusters.length - 1; 0 <= s; s--) n = e._childClusters[s], r && r.contains(n._latlng) || (e._group._featureGroup.removeLayer(n), n.clusterShow && n.clusterShow()) |
||||
|
}) |
||||
|
}, _recursively: function (e, t, i, r, n) { |
||||
|
var s, o, a = this._childClusters, h = this._zoom; |
||||
|
if (t <= h && (r && r(this), n && h === i && n(this)), h < t || h < i) for (s = a.length - 1; 0 <= s; s--) (o = a[s])._boundsNeedUpdate && o._recalculateBounds(), e.intersects(o._bounds) && o._recursively(e, t, i, r, n) |
||||
|
}, _isSingleParent: function () { |
||||
|
return 0 < this._childClusters.length && this._childClusters[0]._childCount === this._childCount |
||||
|
} |
||||
|
}); |
||||
|
L.Marker.include({ |
||||
|
clusterHide: function () { |
||||
|
var e = this.options.opacity; |
||||
|
return this.setOpacity(0), this.options.opacity = e, this |
||||
|
}, clusterShow: function () { |
||||
|
return this.setOpacity(this.options.opacity) |
||||
|
} |
||||
|
}), L.DistanceGrid = function (e) { |
||||
|
this._cellSize = e, this._sqCellSize = e * e, this._grid = {}, this._objectPoint = {} |
||||
|
}, L.DistanceGrid.prototype = { |
||||
|
addObject: function (e, t) { |
||||
|
var i = this._getCoord(t.x), r = this._getCoord(t.y), n = this._grid, s = n[r] = n[r] || {}, |
||||
|
o = s[i] = s[i] || [], a = L.Util.stamp(e); |
||||
|
this._objectPoint[a] = t, o.push(e) |
||||
|
}, updateObject: function (e, t) { |
||||
|
this.removeObject(e), this.addObject(e, t) |
||||
|
}, removeObject: function (e, t) { |
||||
|
var i, r, n = this._getCoord(t.x), s = this._getCoord(t.y), o = this._grid, a = o[s] = o[s] || {}, |
||||
|
h = a[n] = a[n] || []; |
||||
|
for (delete this._objectPoint[L.Util.stamp(e)], i = 0, r = h.length; i < r; i++) if (h[i] === e) return h.splice(i, 1), 1 === r && delete a[n], !0 |
||||
|
}, eachObject: function (e, t) { |
||||
|
var i, r, n, s, o, a, h = this._grid; |
||||
|
for (i in h) for (r in o = h[i]) for (n = 0, s = (a = o[r]).length; n < s; n++) e.call(t, a[n]) && (n--, s--) |
||||
|
}, getNearObject: function (e) { |
||||
|
var t, i, r, n, s, o, a, h, l = this._getCoord(e.x), u = this._getCoord(e.y), _ = this._objectPoint, |
||||
|
d = this._sqCellSize, p = null; |
||||
|
for (t = u - 1; t <= u + 1; t++) if (n = this._grid[t]) for (i = l - 1; i <= l + 1; i++) if (s = n[i]) for (r = 0, o = s.length; r < o; r++) a = s[r], ((h = this._sqDist(_[L.Util.stamp(a)], e)) < d || h <= d && null === p) && (d = h, p = a); |
||||
|
return p |
||||
|
}, _getCoord: function (e) { |
||||
|
var t = Math.floor(e / this._cellSize); |
||||
|
return isFinite(t) ? t : e |
||||
|
}, _sqDist: function (e, t) { |
||||
|
var i = t.x - e.x, r = t.y - e.y; |
||||
|
return i * i + r * r |
||||
|
} |
||||
|
}, L.QuickHull = { |
||||
|
getDistant: function (e, t) { |
||||
|
var i = t[1].lat - t[0].lat; |
||||
|
return (t[0].lng - t[1].lng) * (e.lat - t[0].lat) + i * (e.lng - t[0].lng) |
||||
|
}, findMostDistantPointFromBaseLine: function (e, t) { |
||||
|
var i, r, n, s = 0, o = null, a = []; |
||||
|
for (i = t.length - 1; 0 <= i; i--) r = t[i], 0 < (n = this.getDistant(r, e)) && (a.push(r), s < n && (s = n, o = r)); |
||||
|
return {maxPoint: o, newPoints: a} |
||||
|
}, buildConvexHull: function (e, t) { |
||||
|
var i = [], r = this.findMostDistantPointFromBaseLine(e, t); |
||||
|
return r.maxPoint ? i = (i = i.concat(this.buildConvexHull([e[0], r.maxPoint], r.newPoints))).concat(this.buildConvexHull([r.maxPoint, e[1]], r.newPoints)) : [e[0]] |
||||
|
}, getConvexHull: function (e) { |
||||
|
var t, i = !1, r = !1, n = !1, s = !1, o = null, a = null, h = null, l = null, u = null, _ = null; |
||||
|
for (t = e.length - 1; 0 <= t; t--) { |
||||
|
var d = e[t]; |
||||
|
(!1 === i || d.lat > i) && (i = (o = d).lat), (!1 === r || d.lat < r) && (r = (a = d).lat), (!1 === n || d.lng > n) && (n = (h = d).lng), (!1 === s || d.lng < s) && (s = (l = d).lng) |
||||
|
} |
||||
|
return u = r !== i ? (_ = a, o) : (_ = l, h), [].concat(this.buildConvexHull([_, u], e), this.buildConvexHull([u, _], e)) |
||||
|
} |
||||
|
}, L.MarkerCluster.include({ |
||||
|
getConvexHull: function () { |
||||
|
var e, t, i = this.getAllChildMarkers(), r = []; |
||||
|
for (t = i.length - 1; 0 <= t; t--) e = i[t].getLatLng(), r.push(e); |
||||
|
return L.QuickHull.getConvexHull(r) |
||||
|
} |
||||
|
}), L.MarkerCluster.include({ |
||||
|
_2PI: 2 * Math.PI, |
||||
|
_circleFootSeparation: 25, |
||||
|
_circleStartAngle: 0, |
||||
|
_spiralFootSeparation: 28, |
||||
|
_spiralLengthStart: 11, |
||||
|
_spiralLengthFactor: 5, |
||||
|
_circleSpiralSwitchover: 9, |
||||
|
spiderfy: function () { |
||||
|
if (this._group._spiderfied !== this && !this._group._inZoomAnimation) { |
||||
|
var e, t = this.getAllChildMarkers(null, !0), i = this._group._map.latLngToLayerPoint(this._latlng); |
||||
|
this._group._unspiderfy(), e = (this._group._spiderfied = this)._group.options.spiderfyShapePositions ? this._group.options.spiderfyShapePositions(t.length, i) : t.length >= this._circleSpiralSwitchover ? this._generatePointsSpiral(t.length, i) : (i.y += 10, this._generatePointsCircle(t.length, i)), this._animationSpiderfy(t, e) |
||||
|
} |
||||
|
}, |
||||
|
unspiderfy: function (e) { |
||||
|
this._group._inZoomAnimation || (this._animationUnspiderfy(e), this._group._spiderfied = null) |
||||
|
}, |
||||
|
_generatePointsCircle: function (e, t) { |
||||
|
var i, r, |
||||
|
n = this._group.options.spiderfyDistanceMultiplier * this._circleFootSeparation * (2 + e) / this._2PI, |
||||
|
s = this._2PI / e, o = []; |
||||
|
for (n = Math.max(n, 35), o.length = e, i = 0; i < e; i++) r = this._circleStartAngle + i * s, o[i] = new L.Point(t.x + n * Math.cos(r), t.y + n * Math.sin(r))._round(); |
||||
|
return o |
||||
|
}, |
||||
|
_generatePointsSpiral: function (e, t) { |
||||
|
var i, r = this._group.options.spiderfyDistanceMultiplier, n = r * this._spiralLengthStart, |
||||
|
s = r * this._spiralFootSeparation, o = r * this._spiralLengthFactor * this._2PI, a = 0, h = []; |
||||
|
for (i = h.length = e; 0 <= i; i--) i < e && (h[i] = new L.Point(t.x + n * Math.cos(a), t.y + n * Math.sin(a))._round()), n += o / (a += s / n + 5e-4 * i); |
||||
|
return h |
||||
|
}, |
||||
|
_noanimationUnspiderfy: function () { |
||||
|
var e, t, i = this._group, r = i._map, n = i._featureGroup, s = this.getAllChildMarkers(null, !0); |
||||
|
for (i._ignoreMove = !0, this.setOpacity(1), t = s.length - 1; 0 <= t; t--) e = s[t], n.removeLayer(e), e._preSpiderfyLatlng && (e.setLatLng(e._preSpiderfyLatlng), delete e._preSpiderfyLatlng), e.setZIndexOffset && e.setZIndexOffset(0), e._spiderLeg && (r.removeLayer(e._spiderLeg), delete e._spiderLeg); |
||||
|
i.fire("unspiderfied", {cluster: this, markers: s}), i._ignoreMove = !1, i._spiderfied = null |
||||
|
} |
||||
|
}), L.MarkerClusterNonAnimated = L.MarkerCluster.extend({ |
||||
|
_animationSpiderfy: function (e, t) { |
||||
|
var i, r, n, s, o = this._group, a = o._map, h = o._featureGroup, |
||||
|
l = this._group.options.spiderLegPolylineOptions; |
||||
|
for (o._ignoreMove = !0, i = 0; i < e.length; i++) s = a.layerPointToLatLng(t[i]), r = e[i], n = new L.Polyline([this._latlng, s], l), a.addLayer(n), r._spiderLeg = n, r._preSpiderfyLatlng = r._latlng, r.setLatLng(s), r.setZIndexOffset && r.setZIndexOffset(1e6), h.addLayer(r); |
||||
|
this.setOpacity(.3), o._ignoreMove = !1, o.fire("spiderfied", {cluster: this, markers: e}) |
||||
|
}, _animationUnspiderfy: function () { |
||||
|
this._noanimationUnspiderfy() |
||||
|
} |
||||
|
}), L.MarkerCluster.include({ |
||||
|
_animationSpiderfy: function (e, t) { |
||||
|
var i, r, n, s, o, a, h = this, l = this._group, u = l._map, _ = l._featureGroup, d = this._latlng, |
||||
|
p = u.latLngToLayerPoint(d), c = L.Path.SVG, |
||||
|
f = L.extend({}, this._group.options.spiderLegPolylineOptions), m = f.opacity; |
||||
|
for (void 0 === m && (m = L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity), c ? (f.opacity = 0, f.className = (f.className || "") + " leaflet-cluster-spider-leg") : f.opacity = m, l._ignoreMove = !0, i = 0; i < e.length; i++) r = e[i], a = u.layerPointToLatLng(t[i]), n = new L.Polyline([d, a], f), u.addLayer(n), r._spiderLeg = n, c && (o = (s = n._path).getTotalLength() + .1, s.style.strokeDasharray = o, s.style.strokeDashoffset = o), r.setZIndexOffset && r.setZIndexOffset(1e6), r.clusterHide && r.clusterHide(), _.addLayer(r), r._setPos && r._setPos(p); |
||||
|
for (l._forceLayout(), l._animationStart(), i = e.length - 1; 0 <= i; i--) a = u.layerPointToLatLng(t[i]), (r = e[i])._preSpiderfyLatlng = r._latlng, r.setLatLng(a), r.clusterShow && r.clusterShow(), c && ((s = (n = r._spiderLeg)._path).style.strokeDashoffset = 0, n.setStyle({opacity: m})); |
||||
|
this.setOpacity(.3), l._ignoreMove = !1, setTimeout(function () { |
||||
|
l._animationEnd(), l.fire("spiderfied", {cluster: h, markers: e}) |
||||
|
}, 200) |
||||
|
}, _animationUnspiderfy: function (e) { |
||||
|
var t, i, r, n, s, o, a = this, h = this._group, l = h._map, u = h._featureGroup, |
||||
|
_ = e ? l._latLngToNewLayerPoint(this._latlng, e.zoom, e.center) : l.latLngToLayerPoint(this._latlng), |
||||
|
d = this.getAllChildMarkers(null, !0), p = L.Path.SVG; |
||||
|
for (h._ignoreMove = !0, h._animationStart(), this.setOpacity(1), i = d.length - 1; 0 <= i; i--) (t = d[i])._preSpiderfyLatlng && (t.closePopup(), t.setLatLng(t._preSpiderfyLatlng), delete t._preSpiderfyLatlng, o = !0, t._setPos && (t._setPos(_), o = !1), t.clusterHide && (t.clusterHide(), o = !1), o && u.removeLayer(t), p && (s = (n = (r = t._spiderLeg)._path).getTotalLength() + .1, n.style.strokeDashoffset = s, r.setStyle({opacity: 0}))); |
||||
|
h._ignoreMove = !1, setTimeout(function () { |
||||
|
var e = 0; |
||||
|
for (i = d.length - 1; 0 <= i; i--) (t = d[i])._spiderLeg && e++; |
||||
|
for (i = d.length - 1; 0 <= i; i--) (t = d[i])._spiderLeg && (t.clusterShow && t.clusterShow(), t.setZIndexOffset && t.setZIndexOffset(0), 1 < e && u.removeLayer(t), l.removeLayer(t._spiderLeg), delete t._spiderLeg); |
||||
|
h._animationEnd(), h.fire("unspiderfied", {cluster: a, markers: d}) |
||||
|
}, 200) |
||||
|
} |
||||
|
}), L.MarkerClusterGroup.include({ |
||||
|
_spiderfied: null, unspiderfy: function () { |
||||
|
this._unspiderfy.apply(this, arguments) |
||||
|
}, _spiderfierOnAdd: function () { |
||||
|
this._map.on("click", this._unspiderfyWrapper, this), this._map.options.zoomAnimation && this._map.on("zoomstart", this._unspiderfyZoomStart, this), this._map.on("zoomend", this._noanimationUnspiderfy, this), L.Browser.touch || this._map.getRenderer(this) |
||||
|
}, _spiderfierOnRemove: function () { |
||||
|
this._map.off("click", this._unspiderfyWrapper, this), this._map.off("zoomstart", this._unspiderfyZoomStart, this), this._map.off("zoomanim", this._unspiderfyZoomAnim, this), this._map.off("zoomend", this._noanimationUnspiderfy, this), this._noanimationUnspiderfy() |
||||
|
}, _unspiderfyZoomStart: function () { |
||||
|
this._map && this._map.on("zoomanim", this._unspiderfyZoomAnim, this) |
||||
|
}, _unspiderfyZoomAnim: function (e) { |
||||
|
L.DomUtil.hasClass(this._map._mapPane, "leaflet-touching") || (this._map.off("zoomanim", this._unspiderfyZoomAnim, this), this._unspiderfy(e)) |
||||
|
}, _unspiderfyWrapper: function () { |
||||
|
this._unspiderfy() |
||||
|
}, _unspiderfy: function (e) { |
||||
|
this._spiderfied && this._spiderfied.unspiderfy(e) |
||||
|
}, _noanimationUnspiderfy: function () { |
||||
|
this._spiderfied && this._spiderfied._noanimationUnspiderfy() |
||||
|
}, _unspiderfyLayer: function (e) { |
||||
|
e._spiderLeg && (this._featureGroup.removeLayer(e), e.clusterShow && e.clusterShow(), e.setZIndexOffset && e.setZIndexOffset(0), this._map.removeLayer(e._spiderLeg), delete e._spiderLeg) |
||||
|
} |
||||
|
}), L.MarkerClusterGroup.include({ |
||||
|
refreshClusters: function (e) { |
||||
|
return e ? e instanceof L.MarkerClusterGroup ? e = e._topClusterLevel.getAllChildMarkers() : e instanceof L.LayerGroup ? e = e._layers : e instanceof L.MarkerCluster ? e = e.getAllChildMarkers() : e instanceof L.Marker && (e = [e]) : e = this._topClusterLevel.getAllChildMarkers(), this._flagParentsIconsNeedUpdate(e), this._refreshClustersIcons(), this.options.singleMarkerMode && this._refreshSingleMarkerModeMarkers(e), this |
||||
|
}, _flagParentsIconsNeedUpdate: function (e) { |
||||
|
var t, i; |
||||
|
for (t in e) for (i = e[t].__parent; i;) i._iconNeedsUpdate = !0, i = i.__parent |
||||
|
}, _refreshSingleMarkerModeMarkers: function (e) { |
||||
|
var t, i; |
||||
|
for (t in e) i = e[t], this.hasLayer(i) && i.setIcon(this._overrideMarkerIcon(i)) |
||||
|
} |
||||
|
}), L.Marker.include({ |
||||
|
refreshIconOptions: function (e, t) { |
||||
|
var i = this.options.icon; |
||||
|
return L.setOptions(i, e), this.setIcon(i), t && this.__parent && this.__parent._group.refreshClusters(this), this |
||||
|
} |
||||
|
}), e.MarkerClusterGroup = t, e.MarkerCluster = i, Object.defineProperty(e, "__esModule", {value: !0}) |
||||
|
}); |
||||
|
//# sourceMappingURL=leaflet.markercluster.js.map
|
||||
@ -0,0 +1,911 @@ |
|||||
|
/*! |
||||
|
* Viewer.js v1.11.7 |
||||
|
* https://fengyuanchen.github.io/viewerjs
|
||||
|
* |
||||
|
* Copyright 2015-present Chen Fengyuan |
||||
|
* Released under the MIT license |
||||
|
* |
||||
|
* Date: 2024-11-24T04:32:19.116Z |
||||
|
*/ |
||||
|
((t, e) => { |
||||
|
"object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).Viewer = e() |
||||
|
})(this, function () { |
||||
|
function n(t, e) { |
||||
|
for (var i = 0; i < e.length; i++) { |
||||
|
var n = e[i]; |
||||
|
n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, r(n.key), n) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function s(e, t) { |
||||
|
var i, n = Object.keys(e); |
||||
|
return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter(function (t) { |
||||
|
return Object.getOwnPropertyDescriptor(e, t).enumerable |
||||
|
})), n.push.apply(n, i)), n |
||||
|
} |
||||
|
|
||||
|
function P(n) { |
||||
|
for (var t = 1; t < arguments.length; t++) { |
||||
|
var o = null != arguments[t] ? arguments[t] : {}; |
||||
|
t % 2 ? s(Object(o), !0).forEach(function (t) { |
||||
|
var e, i; |
||||
|
e = n, i = o[t = t], (t = r(t)) in e ? Object.defineProperty(e, t, { |
||||
|
value: i, |
||||
|
enumerable: !0, |
||||
|
configurable: !0, |
||||
|
writable: !0 |
||||
|
}) : e[t] = i |
||||
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(o)) : s(Object(o)).forEach(function (t) { |
||||
|
Object.defineProperty(n, t, Object.getOwnPropertyDescriptor(o, t)) |
||||
|
}) |
||||
|
} |
||||
|
return n |
||||
|
} |
||||
|
|
||||
|
function r(t) { |
||||
|
t = ((t, e) => { |
||||
|
if ("object" != typeof t || !t) return t; |
||||
|
var i = t[Symbol.toPrimitive]; |
||||
|
if (void 0 === i) return ("string" === e ? String : Number)(t); |
||||
|
if ("object" != typeof (i = i.call(t, e || "default"))) return i; |
||||
|
throw new TypeError("@@toPrimitive must return a primitive value.") |
||||
|
})(t, "string"); |
||||
|
return "symbol" == typeof t ? t : t + "" |
||||
|
} |
||||
|
|
||||
|
function l(t) { |
||||
|
return (l = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { |
||||
|
return typeof t |
||||
|
} : function (t) { |
||||
|
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t |
||||
|
})(t) |
||||
|
} |
||||
|
|
||||
|
var W = { |
||||
|
backdrop: !0, |
||||
|
button: !0, |
||||
|
navbar: !0, |
||||
|
title: !0, |
||||
|
toolbar: !0, |
||||
|
className: "", |
||||
|
container: "body", |
||||
|
filter: null, |
||||
|
fullscreen: !0, |
||||
|
inheritedAttributes: ["crossOrigin", "decoding", "isMap", "loading", "referrerPolicy", "sizes", "srcset", "useMap"], |
||||
|
initialCoverage: .9, |
||||
|
initialViewIndex: 0, |
||||
|
inline: !1, |
||||
|
interval: 5e3, |
||||
|
keyboard: !0, |
||||
|
focus: !0, |
||||
|
loading: !0, |
||||
|
loop: !0, |
||||
|
minWidth: 200, |
||||
|
minHeight: 100, |
||||
|
movable: !0, |
||||
|
rotatable: !0, |
||||
|
scalable: !0, |
||||
|
zoomable: !0, |
||||
|
zoomOnTouch: !0, |
||||
|
zoomOnWheel: !0, |
||||
|
slideOnTouch: !0, |
||||
|
toggleOnDblclick: !0, |
||||
|
tooltip: !0, |
||||
|
transition: !0, |
||||
|
zIndex: 2015, |
||||
|
zIndexInline: 0, |
||||
|
zoomRatio: .1, |
||||
|
minZoomRatio: .01, |
||||
|
maxZoomRatio: 100, |
||||
|
url: "src", |
||||
|
ready: null, |
||||
|
show: null, |
||||
|
shown: null, |
||||
|
hide: null, |
||||
|
hidden: null, |
||||
|
view: null, |
||||
|
viewed: null, |
||||
|
move: null, |
||||
|
moved: null, |
||||
|
rotate: null, |
||||
|
rotated: null, |
||||
|
scale: null, |
||||
|
scaled: null, |
||||
|
zoom: null, |
||||
|
zoomed: null, |
||||
|
play: null, |
||||
|
stop: null |
||||
|
}, t = "undefined" != typeof window && void 0 !== window.document, e = t ? window : {}, |
||||
|
a = !(!t || !e.document.documentElement) && "ontouchstart" in e.document.documentElement, |
||||
|
i = t && "PointerEvent" in e, g = "viewer", h = "move", j = "switch", c = "zoom", f = "".concat(g, "-active"), |
||||
|
H = "".concat(g, "-close"), B = "".concat(g, "-fade"), V = "".concat(g, "-fixed"), |
||||
|
U = "".concat(g, "-fullscreen"), K = "".concat(g, "-fullscreen-exit"), v = "".concat(g, "-hide"), |
||||
|
Z = "".concat(g, "-hide-md-down"), $ = "".concat(g, "-hide-sm-down"), _ = "".concat(g, "-hide-xs-down"), |
||||
|
u = "".concat(g, "-in"), p = "".concat(g, "-invisible"), b = "".concat(g, "-loading"), |
||||
|
G = "".concat(g, "-move"), J = "".concat(g, "-open"), d = "".concat(g, "-show"), |
||||
|
m = "".concat(g, "-transition"), w = "click", Q = "dblclick", tt = "dragstart", et = "focusin", it = "keydown", |
||||
|
y = "load", x = "error", nt = i ? "pointerdown" : a ? "touchstart" : "mousedown", |
||||
|
ot = i ? "pointermove" : a ? "touchmove" : "mousemove", |
||||
|
st = i ? "pointerup pointercancel" : a ? "touchend touchcancel" : "mouseup", at = "resize", k = "transitionend", |
||||
|
rt = "wheel", z = "viewed", lt = "rotated", ht = "".concat(g, "Action"), ct = /\s\s*/, |
||||
|
ut = ["zoom-in", "zoom-out", "one-to-one", "reset", "prev", "play", "next", "rotate-left", "rotate-right", "flip-horizontal", "flip-vertical"]; |
||||
|
|
||||
|
function T(t) { |
||||
|
return "string" == typeof t |
||||
|
} |
||||
|
|
||||
|
var dt = Number.isNaN || e.isNaN; |
||||
|
|
||||
|
function E(t) { |
||||
|
return "number" == typeof t && !dt(t) |
||||
|
} |
||||
|
|
||||
|
function D(t) { |
||||
|
return void 0 === t |
||||
|
} |
||||
|
|
||||
|
function o(t) { |
||||
|
return "object" === l(t) && null !== t |
||||
|
} |
||||
|
|
||||
|
var mt = Object.prototype.hasOwnProperty; |
||||
|
|
||||
|
function S(t) { |
||||
|
if (!o(t)) return !1; |
||||
|
try { |
||||
|
var e = t.constructor, i = e.prototype; |
||||
|
return e && i && mt.call(i, "isPrototypeOf") |
||||
|
} catch (t) { |
||||
|
return !1 |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function I(t) { |
||||
|
return "function" == typeof t |
||||
|
} |
||||
|
|
||||
|
function A(e, i) { |
||||
|
if (e && I(i)) if (Array.isArray(e) || E(e.length)) for (var t = e.length, n = 0; n < t && !1 !== i.call(e, e[n], n, e); n += 1) ; else o(e) && Object.keys(e).forEach(function (t) { |
||||
|
i.call(e, e[t], t, e) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
var O = Object.assign || function (i) { |
||||
|
for (var t = arguments.length, e = new Array(1 < t ? t - 1 : 0), n = 1; n < t; n++) e[n - 1] = arguments[n]; |
||||
|
return o(i) && 0 < e.length && e.forEach(function (e) { |
||||
|
o(e) && Object.keys(e).forEach(function (t) { |
||||
|
i[t] = e[t] |
||||
|
}) |
||||
|
}), i |
||||
|
}, gt = /^(?:width|height|left|top|marginLeft|marginTop)$/; |
||||
|
|
||||
|
function C(t, e) { |
||||
|
var i = t.style; |
||||
|
A(e, function (t, e) { |
||||
|
gt.test(e) && E(t) && (t += "px"), i[e] = t |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
function L(t, e) { |
||||
|
return t && e && (t.classList ? t.classList.contains(e) : -1 < t.className.indexOf(e)) |
||||
|
} |
||||
|
|
||||
|
function R(t, e) { |
||||
|
var i; |
||||
|
t && e && (E(t.length) ? A(t, function (t) { |
||||
|
R(t, e) |
||||
|
}) : t.classList ? t.classList.add(e) : (i = t.className.trim()) ? i.indexOf(e) < 0 && (t.className = "".concat(i, " ").concat(e)) : t.className = e) |
||||
|
} |
||||
|
|
||||
|
function M(t, e) { |
||||
|
t && e && (E(t.length) ? A(t, function (t) { |
||||
|
M(t, e) |
||||
|
}) : t.classList ? t.classList.remove(e) : 0 <= t.className.indexOf(e) && (t.className = t.className.replace(e, ""))) |
||||
|
} |
||||
|
|
||||
|
function F(t, e, i) { |
||||
|
e && (E(t.length) ? A(t, function (t) { |
||||
|
F(t, e, i) |
||||
|
}) : (i ? R : M)(t, e)) |
||||
|
} |
||||
|
|
||||
|
var ft = /([a-z\d])([A-Z])/g; |
||||
|
|
||||
|
function vt(t) { |
||||
|
return t.replace(ft, "$1-$2").toLowerCase() |
||||
|
} |
||||
|
|
||||
|
function N(t, e) { |
||||
|
return o(t[e]) ? t[e] : t.dataset ? t.dataset[e] : t.getAttribute("data-".concat(vt(e))) |
||||
|
} |
||||
|
|
||||
|
function pt(t, e, i) { |
||||
|
o(i) ? t[e] = i : t.dataset ? t.dataset[e] = i : t.setAttribute("data-".concat(vt(e)), i) |
||||
|
} |
||||
|
|
||||
|
wt = !1, t && (bt = !1, i = function () { |
||||
|
}, t = Object.defineProperty({}, "once", { |
||||
|
get: function () { |
||||
|
return wt = !0, bt |
||||
|
}, set: function (t) { |
||||
|
bt = t |
||||
|
} |
||||
|
}), e.addEventListener("test", i, t), e.removeEventListener("test", i, t)); |
||||
|
var bt, wt, yt = wt; |
||||
|
|
||||
|
function Y(i, t, n, e) { |
||||
|
var o = 3 < arguments.length && void 0 !== e ? e : {}, s = n; |
||||
|
t.trim().split(ct).forEach(function (t) { |
||||
|
var e; |
||||
|
yt || (e = i.listeners) && e[t] && e[t][n] && (s = e[t][n], delete e[t][n], 0 === Object.keys(e[t]).length && delete e[t], 0 === Object.keys(e).length) && delete i.listeners, i.removeEventListener(t, s, o) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
function X(s, t, a, e) { |
||||
|
var r = 3 < arguments.length && void 0 !== e ? e : {}, l = a; |
||||
|
t.trim().split(ct).forEach(function (n) { |
||||
|
var t, o; |
||||
|
r.once && !yt && (t = s.listeners, l = function () { |
||||
|
delete o[n][a], s.removeEventListener(n, l, r); |
||||
|
for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i]; |
||||
|
a.apply(s, e) |
||||
|
}, (o = void 0 === t ? {} : t)[n] || (o[n] = {}), o[n][a] && s.removeEventListener(n, o[n][a], r), o[n][a] = l, s.listeners = o), s.addEventListener(n, l, r) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
function q(t, e, i, n) { |
||||
|
var o; |
||||
|
return I(Event) && I(CustomEvent) ? o = new CustomEvent(e, P({ |
||||
|
bubbles: !0, |
||||
|
cancelable: !0, |
||||
|
detail: i |
||||
|
}, n)) : (o = document.createEvent("CustomEvent")).initCustomEvent(e, !0, !0, i), t.dispatchEvent(o) |
||||
|
} |
||||
|
|
||||
|
function xt(t) { |
||||
|
var e = t.rotate, i = t.scaleX, n = t.scaleY, o = t.translateX, t = t.translateY, s = [], |
||||
|
o = (E(o) && 0 !== o && s.push("translateX(".concat(o, "px)")), E(t) && 0 !== t && s.push("translateY(".concat(t, "px)")), E(e) && 0 !== e && s.push("rotate(".concat(e, "deg)")), E(i) && 1 !== i && s.push("scaleX(".concat(i, ")")), E(n) && 1 !== n && s.push("scaleY(".concat(n, ")")), s.length ? s.join(" ") : "none"); |
||||
|
return {WebkitTransform: o, msTransform: o, transform: o} |
||||
|
} |
||||
|
|
||||
|
var kt = e.navigator && /Version\/\d+(\.\d+)+?\s+Safari/i.test(e.navigator.userAgent); |
||||
|
|
||||
|
function zt(i, t, e) { |
||||
|
var n, o = document.createElement("img"); |
||||
|
return i.naturalWidth && !kt ? e(i.naturalWidth, i.naturalHeight) : (n = document.body || document.documentElement, o.onload = function () { |
||||
|
e(o.width, o.height), kt || n.removeChild(o) |
||||
|
}, A(t.inheritedAttributes, function (t) { |
||||
|
var e = i.getAttribute(t); |
||||
|
null !== e && o.setAttribute(t, e) |
||||
|
}), o.src = i.src, kt || (o.style.cssText = "left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;", n.appendChild(o))), o |
||||
|
} |
||||
|
|
||||
|
function Tt(t) { |
||||
|
switch (t) { |
||||
|
case 2: |
||||
|
return _; |
||||
|
case 3: |
||||
|
return $; |
||||
|
case 4: |
||||
|
return Z; |
||||
|
default: |
||||
|
return "" |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function Et(t, e) { |
||||
|
var i = t.pageX, t = t.pageY, n = {endX: i, endY: t}; |
||||
|
return e ? n : P({timeStamp: Date.now(), startX: i, startY: t}, n) |
||||
|
} |
||||
|
|
||||
|
var Dt, i = { |
||||
|
render: function () { |
||||
|
this.initContainer(), this.initViewer(), this.initList(), this.renderViewer() |
||||
|
}, initBody: function () { |
||||
|
var t = this.element.ownerDocument, e = t.body || t.documentElement; |
||||
|
this.body = e, this.scrollbarWidth = window.innerWidth - t.documentElement.clientWidth, this.initialBodyPaddingRight = e.style.paddingRight, this.initialBodyComputedPaddingRight = window.getComputedStyle(e).paddingRight |
||||
|
}, initContainer: function () { |
||||
|
this.containerData = {width: window.innerWidth, height: window.innerHeight} |
||||
|
}, initViewer: function () { |
||||
|
var t, e = this.options, i = this.parent; |
||||
|
e.inline && (t = { |
||||
|
width: Math.max(i.offsetWidth, e.minWidth), |
||||
|
height: Math.max(i.offsetHeight, e.minHeight) |
||||
|
}, this.parentData = t), !this.fulled && t || (t = this.containerData), this.viewerData = O({}, t) |
||||
|
}, renderViewer: function () { |
||||
|
this.options.inline && !this.fulled && C(this.viewer, this.viewerData) |
||||
|
}, initList: function () { |
||||
|
var r = this, t = this.element, l = this.options, h = this.list, c = []; |
||||
|
h.innerHTML = "", A(this.images, function (i, t) { |
||||
|
var e, n, o = i.src, |
||||
|
s = i.alt || (T(s = o) ? decodeURIComponent(s.replace(/^.*\//, "").replace(/[?&#].*$/, "")) : ""), |
||||
|
a = r.getImageURL(i); |
||||
|
(o || a) && (e = document.createElement("li"), n = document.createElement("img"), A(l.inheritedAttributes, function (t) { |
||||
|
var e = i.getAttribute(t); |
||||
|
null !== e && n.setAttribute(t, e) |
||||
|
}), l.navbar && (n.src = o || a), n.alt = s, n.setAttribute("data-original-url", a || o), e.setAttribute("data-index", t), e.setAttribute("data-viewer-action", "view"), e.setAttribute("role", "button"), l.keyboard && e.setAttribute("tabindex", 0), e.appendChild(n), h.appendChild(e), c.push(e)) |
||||
|
}), A(this.items = c, function (e) { |
||||
|
var t, i, n = e.firstElementChild; |
||||
|
pt(n, "filled", !0), l.loading && R(e, b), X(n, y, t = function (t) { |
||||
|
Y(n, x, i), l.loading && M(e, b), r.loadImage(t) |
||||
|
}, {once: !0}), X(n, x, i = function () { |
||||
|
Y(n, y, t), l.loading && M(e, b) |
||||
|
}, {once: !0}) |
||||
|
}), l.transition && X(t, z, function () { |
||||
|
R(h, m) |
||||
|
}, {once: !0}) |
||||
|
}, renderList: function () { |
||||
|
var t, e, i = this.index, n = this.items[i]; |
||||
|
n && (t = n.nextElementSibling, t = parseInt(window.getComputedStyle(t || n).marginLeft, 10), n = n.offsetWidth, C(this.list, O({width: (e = n + t) * this.length - t}, xt({translateX: (this.viewerData.width - n) / 2 - e * i})))) |
||||
|
}, resetList: function () { |
||||
|
var t = this.list; |
||||
|
t.innerHTML = "", M(t, m), C(t, xt({translateX: 0})) |
||||
|
}, initImage: function (r) { |
||||
|
var t, l = this, h = this.options, e = this.image, i = this.viewerData, n = this.footer.offsetHeight, |
||||
|
c = i.width, u = Math.max(i.height - n, n), d = this.imageData || {}; |
||||
|
this.imageInitializing = { |
||||
|
abort: function () { |
||||
|
t.onload = null |
||||
|
} |
||||
|
}, t = zt(e, h, function (t, e) { |
||||
|
var i = t / e, n = Math.max(0, Math.min(1, h.initialCoverage)), o = c, s = u, |
||||
|
n = (l.imageInitializing = !1, c < u * i ? s = c / i : o = u * i, n = E(n) ? n : .9, o = Math.min(o * n, t), s = Math.min(s * n, e), (c - o) / 2), |
||||
|
a = (u - s) / 2, n = { |
||||
|
left: n, |
||||
|
top: a, |
||||
|
x: n, |
||||
|
y: a, |
||||
|
width: o, |
||||
|
height: s, |
||||
|
oldRatio: 1, |
||||
|
ratio: o / t, |
||||
|
aspectRatio: i, |
||||
|
naturalWidth: t, |
||||
|
naturalHeight: e |
||||
|
}, a = O({}, n); |
||||
|
h.rotatable && (n.rotate = d.rotate || 0, a.rotate = 0), h.scalable && (n.scaleX = d.scaleX || 1, n.scaleY = d.scaleY || 1, a.scaleX = 1, a.scaleY = 1), l.imageData = n, l.initialImageData = a, r && r() |
||||
|
}) |
||||
|
}, renderImage: function (t) { |
||||
|
var e, i = this, n = this.image, o = this.imageData; |
||||
|
C(n, O({ |
||||
|
width: o.width, |
||||
|
height: o.height, |
||||
|
marginLeft: o.x, |
||||
|
marginTop: o.y |
||||
|
}, xt(o))), t && ((this.viewing || this.moving || this.rotating || this.scaling || this.zooming) && this.options.transition && L(n, m) ? (e = function () { |
||||
|
i.imageRendering = !1, t() |
||||
|
}, this.imageRendering = { |
||||
|
abort: function () { |
||||
|
Y(n, k, e) |
||||
|
} |
||||
|
}, X(n, k, e, {once: !0})) : t()) |
||||
|
}, resetImage: function () { |
||||
|
var t = this.image; |
||||
|
t && (this.viewing && this.viewing.abort(), t.parentNode.removeChild(t), this.image = null, this.title.innerHTML = "") |
||||
|
} |
||||
|
}, t = { |
||||
|
bind: function () { |
||||
|
var t = this.options, e = this.viewer, i = this.canvas, n = this.element.ownerDocument; |
||||
|
X(e, w, this.onClick = this.click.bind(this)), X(e, tt, this.onDragStart = this.dragstart.bind(this)), X(i, nt, this.onPointerDown = this.pointerdown.bind(this)), X(n, ot, this.onPointerMove = this.pointermove.bind(this)), X(n, st, this.onPointerUp = this.pointerup.bind(this)), X(n, it, this.onKeyDown = this.keydown.bind(this)), X(window, at, this.onResize = this.resize.bind(this)), t.zoomable && t.zoomOnWheel && X(e, rt, this.onWheel = this.wheel.bind(this), { |
||||
|
passive: !1, |
||||
|
capture: !0 |
||||
|
}), t.toggleOnDblclick && X(i, Q, this.onDblclick = this.dblclick.bind(this)) |
||||
|
}, unbind: function () { |
||||
|
var t = this.options, e = this.viewer, i = this.canvas, n = this.element.ownerDocument; |
||||
|
Y(e, w, this.onClick), Y(e, tt, this.onDragStart), Y(i, nt, this.onPointerDown), Y(n, ot, this.onPointerMove), Y(n, st, this.onPointerUp), Y(n, it, this.onKeyDown), Y(window, at, this.onResize), t.zoomable && t.zoomOnWheel && Y(e, rt, this.onWheel, { |
||||
|
passive: !1, |
||||
|
capture: !0 |
||||
|
}), t.toggleOnDblclick && Y(i, Q, this.onDblclick) |
||||
|
} |
||||
|
}, St = { |
||||
|
click: function (t) { |
||||
|
var e = this.options, i = this.imageData, n = t.target, o = N(n, ht); |
||||
|
switch (o || "img" !== n.localName || "li" !== n.parentElement.localName || (o = N(n = n.parentElement, ht)), a && t.isTrusted && n === this.canvas && clearTimeout(this.clickCanvasTimeout), o) { |
||||
|
case"mix": |
||||
|
this.played ? this.stop() : e.inline ? this.fulled ? this.exit() : this.full() : this.hide(); |
||||
|
break; |
||||
|
case"hide": |
||||
|
this.pointerMoved || this.hide(); |
||||
|
break; |
||||
|
case"view": |
||||
|
this.view(N(n, "index")); |
||||
|
break; |
||||
|
case"zoom-in": |
||||
|
this.zoom(.1, !0); |
||||
|
break; |
||||
|
case"zoom-out": |
||||
|
this.zoom(-.1, !0); |
||||
|
break; |
||||
|
case"one-to-one": |
||||
|
this.toggle(); |
||||
|
break; |
||||
|
case"reset": |
||||
|
this.reset(); |
||||
|
break; |
||||
|
case"prev": |
||||
|
this.prev(e.loop); |
||||
|
break; |
||||
|
case"play": |
||||
|
this.play(e.fullscreen); |
||||
|
break; |
||||
|
case"next": |
||||
|
this.next(e.loop); |
||||
|
break; |
||||
|
case"rotate-left": |
||||
|
this.rotate(-90); |
||||
|
break; |
||||
|
case"rotate-right": |
||||
|
this.rotate(90); |
||||
|
break; |
||||
|
case"flip-horizontal": |
||||
|
this.scaleX(-i.scaleX || -1); |
||||
|
break; |
||||
|
case"flip-vertical": |
||||
|
this.scaleY(-i.scaleY || -1); |
||||
|
break; |
||||
|
default: |
||||
|
this.played && this.stop() |
||||
|
} |
||||
|
}, dblclick: function (t) { |
||||
|
t.preventDefault(), this.viewed && t.target === this.image && (a && t.isTrusted && clearTimeout(this.doubleClickImageTimeout), this.toggle(t.isTrusted ? t : t.detail && t.detail.originalEvent)) |
||||
|
}, load: function () { |
||||
|
var t = this, e = (this.timeout && (clearTimeout(this.timeout), this.timeout = !1), this.element), |
||||
|
i = this.options, n = this.image, o = this.index, s = this.viewerData; |
||||
|
M(n, p), i.loading && M(this.canvas, b), n.style.cssText = "height:0;" + "margin-left:".concat(s.width / 2, "px;") + "margin-top:".concat(s.height / 2, "px;") + "max-width:none!important;position:relative;width:0;", this.initImage(function () { |
||||
|
F(n, G, i.movable), F(n, m, i.transition), t.renderImage(function () { |
||||
|
t.viewed = !0, t.viewing = !1, I(i.viewed) && X(e, z, i.viewed, {once: !0}), q(e, z, { |
||||
|
originalImage: t.images[o], |
||||
|
index: o, |
||||
|
image: n |
||||
|
}, {cancelable: !1}) |
||||
|
}) |
||||
|
}) |
||||
|
}, loadImage: function (t) { |
||||
|
var n = t.target, t = n.parentNode, o = t.offsetWidth || 30, s = t.offsetHeight || 50, a = !!N(n, "filled"); |
||||
|
zt(n, this.options, function (t, e) { |
||||
|
var t = t / e, e = o, i = s; |
||||
|
o < s * t ? a ? e = s * t : i = o / t : a ? i = o / t : e = s * t, C(n, O({ |
||||
|
width: e, |
||||
|
height: i |
||||
|
}, xt({translateX: (o - e) / 2, translateY: (s - i) / 2}))) |
||||
|
}) |
||||
|
}, keydown: function (t) { |
||||
|
var e = this.options; |
||||
|
if (e.keyboard) { |
||||
|
var i = t.keyCode || t.which || t.charCode; |
||||
|
if (13 === i && this.viewer.contains(t.target) && this.click(t), this.fulled) switch (i) { |
||||
|
case 27: |
||||
|
this.played ? this.stop() : e.inline ? this.fulled && this.exit() : this.hide(); |
||||
|
break; |
||||
|
case 32: |
||||
|
this.played && this.stop(); |
||||
|
break; |
||||
|
case 37: |
||||
|
this.played && this.playing ? this.playing.prev() : this.prev(e.loop); |
||||
|
break; |
||||
|
case 38: |
||||
|
t.preventDefault(), this.zoom(e.zoomRatio, !0); |
||||
|
break; |
||||
|
case 39: |
||||
|
this.played && this.playing ? this.playing.next() : this.next(e.loop); |
||||
|
break; |
||||
|
case 40: |
||||
|
t.preventDefault(), this.zoom(-e.zoomRatio, !0); |
||||
|
break; |
||||
|
case 48: |
||||
|
case 49: |
||||
|
t.ctrlKey && (t.preventDefault(), this.toggle()) |
||||
|
} |
||||
|
} |
||||
|
}, dragstart: function (t) { |
||||
|
"img" === t.target.localName && t.preventDefault() |
||||
|
}, pointerdown: function (t) { |
||||
|
var e = this.options, i = this.pointers, n = t.buttons, o = t.button; |
||||
|
this.pointerMoved = !1, !this.viewed || this.showing || this.viewing || this.hiding || ("mousedown" === t.type || "pointerdown" === t.type && "mouse" === t.pointerType) && (E(n) && 1 !== n || E(o) && 0 !== o || t.ctrlKey) || (t.preventDefault(), t.changedTouches ? A(t.changedTouches, function (t) { |
||||
|
i[t.identifier] = Et(t) |
||||
|
}) : i[t.pointerId || 0] = Et(t), n = !!e.movable && h, e.zoomOnTouch && e.zoomable && 1 < Object.keys(i).length ? n = c : e.slideOnTouch && ("touch" === t.pointerType || "touchstart" === t.type) && this.isSwitchable() && (n = j), !e.transition || n !== h && n !== c || M(this.image, m), this.action = n) |
||||
|
}, pointermove: function (t) { |
||||
|
var e = this.pointers, i = this.action; |
||||
|
this.viewed && i && (t.preventDefault(), t.changedTouches ? A(t.changedTouches, function (t) { |
||||
|
O(e[t.identifier] || {}, Et(t, !0)) |
||||
|
}) : O(e[t.pointerId || 0] || {}, Et(t, !0)), this.change(t)) |
||||
|
}, pointerup: function (t) { |
||||
|
var e, i = this, n = this.options, o = this.action, s = this.pointers; |
||||
|
t.changedTouches ? A(t.changedTouches, function (t) { |
||||
|
e = s[t.identifier], delete s[t.identifier] |
||||
|
}) : (e = s[t.pointerId || 0], delete s[t.pointerId || 0]), o && (t.preventDefault(), !n.transition || o !== h && o !== c || R(this.image, m), this.action = !1, a) && o !== c && e && Date.now() - e.timeStamp < 500 && (clearTimeout(this.clickCanvasTimeout), clearTimeout(this.doubleClickImageTimeout), n.toggleOnDblclick && this.viewed && t.target === this.image ? this.imageClicked ? (this.imageClicked = !1, this.doubleClickImageTimeout = setTimeout(function () { |
||||
|
q(i.image, Q, {originalEvent: t}) |
||||
|
}, 50)) : (this.imageClicked = !0, this.doubleClickImageTimeout = setTimeout(function () { |
||||
|
i.imageClicked = !1 |
||||
|
}, 500)) : (this.imageClicked = !1, n.backdrop && "static" !== n.backdrop && t.target === this.canvas && (this.clickCanvasTimeout = setTimeout(function () { |
||||
|
q(i.canvas, w, {originalEvent: t}) |
||||
|
}, 50)))) |
||||
|
}, resize: function () { |
||||
|
var e = this; |
||||
|
this.isShown && !this.hiding && (this.fulled && (this.close(), this.initBody(), this.open()), this.initContainer(), this.initViewer(), this.renderViewer(), this.renderList(), this.viewed && this.initImage(function () { |
||||
|
e.renderImage() |
||||
|
}), this.played) && (this.options.fullscreen && this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement) ? this.stop() : A(this.player.getElementsByTagName("img"), function (t) { |
||||
|
X(t, y, e.loadImage.bind(e), {once: !0}), q(t, y) |
||||
|
})) |
||||
|
}, wheel: function (t) { |
||||
|
var e, i, n = this; |
||||
|
this.viewed && (t.preventDefault(), this.wheeling || (this.wheeling = !0, setTimeout(function () { |
||||
|
n.wheeling = !1 |
||||
|
}, 50), e = Number(this.options.zoomRatio) || .1, i = 1, t.deltaY ? i = 0 < t.deltaY ? 1 : -1 : t.wheelDelta ? i = -t.wheelDelta / 120 : t.detail && (i = 0 < t.detail ? 1 : -1), this.zoom(-i * e, !0, null, t))) |
||||
|
} |
||||
|
}, It = { |
||||
|
show: function () { |
||||
|
var t, e, i = 0 < arguments.length && void 0 !== arguments[0] && arguments[0], n = this.element, |
||||
|
o = this.options; |
||||
|
return o.inline || this.showing || this.isShown || this.showing || (this.ready ? (I(o.show) && X(n, "show", o.show, {once: !0}), !1 !== q(n, "show") && this.ready && (this.hiding && this.transitioning.abort(), this.showing = !0, this.open(), M(t = this.viewer, v), t.setAttribute("role", "dialog"), t.setAttribute("aria-labelledby", this.title.id), t.setAttribute("aria-modal", !0), t.removeAttribute("aria-hidden"), o.transition && !i ? (e = this.shown.bind(this), this.transitioning = { |
||||
|
abort: function () { |
||||
|
Y(t, k, e), M(t, u) |
||||
|
} |
||||
|
}, R(t, m), t.initialOffsetWidth = t.offsetWidth, X(t, k, e, {once: !0}), R(t, u)) : (R(t, u), this.shown()))) : (this.build(), this.ready && this.show(i))), this |
||||
|
}, hide: function () { |
||||
|
var e, t, i, n, o, s = this, a = 0 < arguments.length && void 0 !== arguments[0] && arguments[0], |
||||
|
r = this.element, l = this.options; |
||||
|
return l.inline || this.hiding || !this.isShown && !this.showing || (I(l.hide) && X(r, "hide", l.hide, {once: !0}), !1 !== q(r, "hide") && (this.showing && this.transitioning.abort(), this.hiding = !0, this.played ? this.stop() : this.viewing && this.viewing.abort(), e = this.viewer, t = this.image, i = function () { |
||||
|
M(e, u), s.hidden() |
||||
|
}, l.transition && !a ? (n = function (t) { |
||||
|
t && t.target === e && (Y(e, k, n), s.hidden()) |
||||
|
}, o = function () { |
||||
|
L(e, m) ? (X(e, k, n), M(e, u)) : i() |
||||
|
}, this.transitioning = { |
||||
|
abort: function () { |
||||
|
s.viewed && L(t, m) ? Y(t, k, o) : L(e, m) && Y(e, k, n) |
||||
|
} |
||||
|
}, this.viewed && L(t, m) ? (X(t, k, o, {once: !0}), this.zoomTo(0, !1, null, null, !0)) : o()) : i())), this |
||||
|
}, view: function () { |
||||
|
var i = this, |
||||
|
t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : this.options.initialViewIndex, |
||||
|
t = Number(t) || 0; |
||||
|
if (!(this.hiding || this.played || t < 0 || t >= this.length || this.viewed && t === this.index)) { |
||||
|
if (!this.isShown) return this.index = t, this.show(); |
||||
|
this.viewing && this.viewing.abort(); |
||||
|
var e, n, o, s = this.element, a = this.options, r = this.title, l = this.canvas, h = this.items[t], |
||||
|
c = h.querySelector("img"), u = N(c, "originalUrl"), d = c.getAttribute("alt"), |
||||
|
m = document.createElement("img"); |
||||
|
A(a.inheritedAttributes, function (t) { |
||||
|
var e = c.getAttribute(t); |
||||
|
null !== e && m.setAttribute(t, e) |
||||
|
}), m.src = u, m.alt = d, I(a.view) && X(s, "view", a.view, {once: !0}), !1 === q(s, "view", { |
||||
|
originalImage: this.images[t], |
||||
|
index: t, |
||||
|
image: m |
||||
|
}) || !this.isShown || this.hiding || this.played || ((u = this.items[this.index]) && (M(u, f), u.removeAttribute("aria-selected")), R(h, f), h.setAttribute("aria-selected", !0), a.focus && h.focus(), this.image = m, this.viewed = !1, this.index = t, this.imageData = {}, R(m, p), a.loading && R(l, b), l.innerHTML = "", l.appendChild(m), this.renderList(), r.innerHTML = "", X(s, z, e = function () { |
||||
|
var t = i.imageData, e = Array.isArray(a.title) ? a.title[1] : a.title; |
||||
|
r.innerHTML = T(e = I(e) ? e.call(i, m, t) : "".concat(d, " (").concat(t.naturalWidth, " × ").concat(t.naturalHeight, ")")) ? e.replace(/&(?!amp;|quot;|#39;|lt;|gt;)/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">") : e |
||||
|
}, {once: !0}), this.viewing = { |
||||
|
abort: function () { |
||||
|
Y(s, z, e), m.complete ? i.imageRendering ? i.imageRendering.abort() : i.imageInitializing && i.imageInitializing.abort() : (m.src = "", Y(m, y, n), i.timeout && clearTimeout(i.timeout)) |
||||
|
} |
||||
|
}, m.complete ? this.load() : (X(m, y, n = function () { |
||||
|
Y(m, x, o), i.load() |
||||
|
}, {once: !0}), X(m, x, o = function () { |
||||
|
Y(m, y, n), i.timeout && (clearTimeout(i.timeout), i.timeout = !1), M(m, p), a.loading && M(i.canvas, b) |
||||
|
}, {once: !0}), this.timeout && clearTimeout(this.timeout), this.timeout = setTimeout(function () { |
||||
|
M(m, p), i.timeout = !1 |
||||
|
}, 1e3))) |
||||
|
} |
||||
|
return this |
||||
|
}, prev: function () { |
||||
|
var t = this.index - 1; |
||||
|
return t < 0 && (t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0] ? this.length - 1 : 0), this.view(t), this |
||||
|
}, next: function () { |
||||
|
var t = this.length - 1, e = this.index + 1; |
||||
|
return this.view(e = t < e ? 0 < arguments.length && void 0 !== arguments[0] && arguments[0] ? 0 : t : e), this |
||||
|
}, move: function (t) { |
||||
|
var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : t, i = this.imageData; |
||||
|
return this.moveTo(D(t) ? t : i.x + Number(t), D(e) ? e : i.y + Number(e)), this |
||||
|
}, moveTo: function (t) { |
||||
|
var e = this, i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : t, |
||||
|
n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null, o = this.element, |
||||
|
s = this.options, a = this.imageData; |
||||
|
if (t = Number(t), i = Number(i), this.viewed && !this.played && s.movable) { |
||||
|
var r = a.x, l = a.y, h = !1; |
||||
|
if (E(t) ? h = !0 : t = r, E(i) ? h = !0 : i = l, h) { |
||||
|
if (I(s.move) && X(o, "move", s.move, {once: !0}), !1 === q(o, "move", { |
||||
|
x: t, |
||||
|
y: i, |
||||
|
oldX: r, |
||||
|
oldY: l, |
||||
|
originalEvent: n |
||||
|
})) return this; |
||||
|
a.x = t, a.y = i, a.left = t, a.top = i, this.moving = !0, this.renderImage(function () { |
||||
|
e.moving = !1, I(s.moved) && X(o, "moved", s.moved, {once: !0}), q(o, "moved", { |
||||
|
x: t, |
||||
|
y: i, |
||||
|
oldX: r, |
||||
|
oldY: l, |
||||
|
originalEvent: n |
||||
|
}, {cancelable: !1}) |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
return this |
||||
|
}, rotate: function (t) { |
||||
|
return this.rotateTo((this.imageData.rotate || 0) + Number(t)), this |
||||
|
}, rotateTo: function (t) { |
||||
|
var e = this, i = this.element, n = this.options, o = this.imageData; |
||||
|
if (E(t = Number(t)) && this.viewed && !this.played && n.rotatable) { |
||||
|
var s = o.rotate; |
||||
|
if (I(n.rotate) && X(i, "rotate", n.rotate, {once: !0}), !1 === q(i, "rotate", { |
||||
|
degree: t, |
||||
|
oldDegree: s |
||||
|
})) return this; |
||||
|
o.rotate = t, this.rotating = !0, this.renderImage(function () { |
||||
|
e.rotating = !1, I(n.rotated) && X(i, lt, n.rotated, {once: !0}), q(i, lt, { |
||||
|
degree: t, |
||||
|
oldDegree: s |
||||
|
}, {cancelable: !1}) |
||||
|
}) |
||||
|
} |
||||
|
return this |
||||
|
}, scaleX: function (t) { |
||||
|
return this.scale(t, this.imageData.scaleY), this |
||||
|
}, scaleY: function (t) { |
||||
|
return this.scale(this.imageData.scaleX, t), this |
||||
|
}, scale: function (t) { |
||||
|
var e = this, i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : t, n = this.element, |
||||
|
o = this.options, s = this.imageData; |
||||
|
if (t = Number(t), i = Number(i), this.viewed && !this.played && o.scalable) { |
||||
|
var a = s.scaleX, r = s.scaleY, l = !1; |
||||
|
if (E(t) ? l = !0 : t = a, E(i) ? l = !0 : i = r, l) { |
||||
|
if (I(o.scale) && X(n, "scale", o.scale, {once: !0}), !1 === q(n, "scale", { |
||||
|
scaleX: t, |
||||
|
scaleY: i, |
||||
|
oldScaleX: a, |
||||
|
oldScaleY: r |
||||
|
})) return this; |
||||
|
s.scaleX = t, s.scaleY = i, this.scaling = !0, this.renderImage(function () { |
||||
|
e.scaling = !1, I(o.scaled) && X(n, "scaled", o.scaled, {once: !0}), q(n, "scaled", { |
||||
|
scaleX: t, |
||||
|
scaleY: i, |
||||
|
oldScaleX: a, |
||||
|
oldScaleY: r |
||||
|
}, {cancelable: !1}) |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
return this |
||||
|
}, zoom: function (t) { |
||||
|
var e = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], |
||||
|
i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null, |
||||
|
n = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null, o = this.imageData; |
||||
|
return t = Number(t), this.zoomTo(o.width * (t = t < 0 ? 1 / (1 - t) : 1 + t) / o.naturalWidth, e, i, n), this |
||||
|
}, zoomTo: function (t) { |
||||
|
var i, n, o, e = this, s = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], |
||||
|
a = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null, |
||||
|
r = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null, |
||||
|
l = 4 < arguments.length && void 0 !== arguments[4] && arguments[4], h = this.element, c = this.options, |
||||
|
u = this.pointers, d = this.imageData, m = d.x, g = d.y, f = d.width, v = d.height, p = d.naturalWidth, |
||||
|
b = d.naturalHeight; |
||||
|
if (E(t = Math.max(0, t)) && this.viewed && !this.played && (l || c.zoomable)) { |
||||
|
if (l || (l = Math.max(.01, c.minZoomRatio), y = Math.min(100, c.maxZoomRatio), t = Math.min(Math.max(t, l), y)), r) switch (r.type) { |
||||
|
case"wheel": |
||||
|
.055 <= c.zoomRatio && .95 < t && t < 1.05 && (t = 1); |
||||
|
break; |
||||
|
case"pointermove": |
||||
|
case"touchmove": |
||||
|
case"mousemove": |
||||
|
.99 < t && t < 1.01 && (t = 1) |
||||
|
} |
||||
|
var w, l = p * t, y = b * t, p = l - f, b = y - v, x = d.ratio; |
||||
|
if (I(c.zoom) && X(h, "zoom", c.zoom, {once: !0}), !1 === q(h, "zoom", { |
||||
|
ratio: t, |
||||
|
oldRatio: x, |
||||
|
originalEvent: r |
||||
|
})) return this; |
||||
|
this.zooming = !0, r ? (w = { |
||||
|
left: (w = (w = this.viewer).getBoundingClientRect()).left + (window.pageXOffset - document.documentElement.clientLeft), |
||||
|
top: w.top + (window.pageYOffset - document.documentElement.clientTop) |
||||
|
}, u = u && 0 < Object.keys(u).length ? (o = n = i = 0, A(u, function (t) { |
||||
|
var e = t.startX; |
||||
|
i += e, n += t.startY, o += 1 |
||||
|
}), {pageX: i /= o, pageY: n /= o}) : { |
||||
|
pageX: r.pageX, |
||||
|
pageY: r.pageY |
||||
|
}, d.x -= (u.pageX - w.left - m) / f * p, d.y -= (u.pageY - w.top - g) / v * b) : S(a) && E(a.x) && E(a.y) ? (d.x -= p * ((a.x - m) / f), d.y -= b * ((a.y - g) / v)) : (d.x -= p / 2, d.y -= b / 2), d.left = d.x, d.top = d.y, d.width = l, d.height = y, d.oldRatio = x, d.ratio = t, this.renderImage(function () { |
||||
|
e.zooming = !1, I(c.zoomed) && X(h, "zoomed", c.zoomed, {once: !0}), q(h, "zoomed", { |
||||
|
ratio: t, |
||||
|
oldRatio: x, |
||||
|
originalEvent: r |
||||
|
}, {cancelable: !1}) |
||||
|
}), s && this.tooltip() |
||||
|
} |
||||
|
return this |
||||
|
}, play: function () { |
||||
|
var t, o, s, a, r, l, h, e, i, n = this, |
||||
|
c = 0 < arguments.length && void 0 !== arguments[0] && arguments[0]; |
||||
|
return this.isShown && !this.played && (t = this.element, I((o = this.options).play) && X(t, "play", o.play, {once: !0}), !1 !== q(t, "play") && (s = this.player, a = this.loadImage.bind(this), r = [], h = l = 0, this.played = !0, this.onLoadWhenPlay = a, c && this.requestFullscreen(c), R(s, d), A(this.items, function (t, e) { |
||||
|
var i = t.querySelector("img"), n = document.createElement("img"); |
||||
|
n.src = N(i, "originalUrl"), n.alt = i.getAttribute("alt"), n.referrerPolicy = i.referrerPolicy, l += 1, R(n, B), F(n, m, o.transition), L(t, f) && (R(n, u), h = e), r.push(n), X(n, y, a, {once: !0}), s.appendChild(n) |
||||
|
}), E(o.interval)) && 0 < o.interval && (e = function () { |
||||
|
clearTimeout(n.playing.timeout), M(r[h], u), R(r[h = 0 <= --h ? h : l - 1], u), n.playing.timeout = setTimeout(e, o.interval) |
||||
|
}, i = function () { |
||||
|
clearTimeout(n.playing.timeout), M(r[h], u), R(r[h = (h += 1) < l ? h : 0], u), n.playing.timeout = setTimeout(i, o.interval) |
||||
|
}, 1 < l)) && (this.playing = {prev: e, next: i, timeout: setTimeout(i, o.interval)}), this |
||||
|
}, stop: function () { |
||||
|
var t, e, i = this; |
||||
|
return this.played && (t = this.element, I((e = this.options).stop) && X(t, "stop", e.stop, {once: !0}), !1 !== q(t, "stop")) && (e = this.player, clearTimeout(this.playing.timeout), this.playing = !1, this.played = !1, A(e.getElementsByTagName("img"), function (t) { |
||||
|
Y(t, y, i.onLoadWhenPlay) |
||||
|
}), M(e, d), e.innerHTML = "", this.exitFullscreen()), this |
||||
|
}, full: function () { |
||||
|
var t = this, e = this.options, i = this.viewer, n = this.image, o = this.list; |
||||
|
return this.isShown && !this.played && !this.fulled && e.inline && (this.fulled = !0, this.open(), R(this.button, K), e.transition && (M(o, m), this.viewed) && M(n, m), R(i, V), i.setAttribute("role", "dialog"), i.setAttribute("aria-labelledby", this.title.id), i.setAttribute("aria-modal", !0), i.removeAttribute("style"), C(i, {zIndex: e.zIndex}), e.focus && this.enforceFocus(), this.initContainer(), this.viewerData = O({}, this.containerData), this.renderList(), this.viewed) && this.initImage(function () { |
||||
|
t.renderImage(function () { |
||||
|
e.transition && setTimeout(function () { |
||||
|
R(n, m), R(o, m) |
||||
|
}, 0) |
||||
|
}) |
||||
|
}), this |
||||
|
}, exit: function () { |
||||
|
var t = this, e = this.options, i = this.viewer, n = this.image, o = this.list; |
||||
|
return this.isShown && !this.played && this.fulled && e.inline && (this.fulled = !1, this.close(), M(this.button, K), e.transition && (M(o, m), this.viewed) && M(n, m), e.focus && this.clearEnforceFocus(), i.removeAttribute("role"), i.removeAttribute("aria-labelledby"), i.removeAttribute("aria-modal"), M(i, V), C(i, {zIndex: e.zIndexInline}), this.viewerData = O({}, this.parentData), this.renderViewer(), this.renderList(), this.viewed) && this.initImage(function () { |
||||
|
t.renderImage(function () { |
||||
|
e.transition && setTimeout(function () { |
||||
|
R(n, m), R(o, m) |
||||
|
}, 0) |
||||
|
}) |
||||
|
}), this |
||||
|
}, tooltip: function () { |
||||
|
var t = this, e = this.options, i = this.tooltipBox, n = this.imageData; |
||||
|
return this.viewed && !this.played && e.tooltip && (i.textContent = "".concat(Math.round(100 * n.ratio), "%"), this.tooltipping ? clearTimeout(this.tooltipping) : e.transition ? (this.fading && q(i, k), R(i, d), R(i, B), R(i, m), i.removeAttribute("aria-hidden"), i.initialOffsetWidth = i.offsetWidth, R(i, u)) : (R(i, d), i.removeAttribute("aria-hidden")), this.tooltipping = setTimeout(function () { |
||||
|
e.transition ? (X(i, k, function () { |
||||
|
M(i, d), M(i, B), M(i, m), i.setAttribute("aria-hidden", !0), t.fading = !1 |
||||
|
}, {once: !0}), M(i, u), t.fading = !0) : (M(i, d), i.setAttribute("aria-hidden", !0)), t.tooltipping = !1 |
||||
|
}, 1e3)), this |
||||
|
}, toggle: function () { |
||||
|
var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null; |
||||
|
return 1 === this.imageData.ratio ? this.zoomTo(this.imageData.oldRatio, !0, null, t) : this.zoomTo(1, !0, null, t), this |
||||
|
}, reset: function () { |
||||
|
return this.viewed && !this.played && (this.imageData = O({}, this.initialImageData), this.renderImage()), this |
||||
|
}, update: function () { |
||||
|
var n, o, e = this, t = this.element, i = this.options, s = this.isImg; |
||||
|
return s && !t.parentNode ? this.destroy() : (n = [], A(s ? [t] : t.querySelectorAll("img"), function (t) { |
||||
|
I(i.filter) ? i.filter.call(e, t) && n.push(t) : e.getImageURL(t) && n.push(t) |
||||
|
}), n.length && (this.images = n, this.length = n.length, this.ready ? (o = [], A(this.items, function (t, e) { |
||||
|
var t = t.querySelector("img"), i = n[e]; |
||||
|
i && t && i.src === t.src && i.alt === t.alt || o.push(e) |
||||
|
}), C(this.list, {width: "auto"}), this.initList(), this.isShown && (this.length ? this.viewed && (0 <= (s = o.indexOf(this.index)) ? (this.viewed = !1, this.view(Math.max(Math.min(this.index - s, this.length - 1), 0))) : (R(t = this.items[this.index], f), t.setAttribute("aria-selected", !0))) : (this.image = null, this.viewed = !1, this.index = 0, this.imageData = {}, this.canvas.innerHTML = "", this.title.innerHTML = ""))) : this.build()), this) |
||||
|
}, destroy: function () { |
||||
|
var t = this.element, e = this.options; |
||||
|
return t[g] && (this.destroyed = !0, this.ready ? (this.played && this.stop(), e.inline ? (this.fulled && this.exit(), this.unbind()) : this.isShown ? (this.viewing && (this.imageRendering ? this.imageRendering.abort() : this.imageInitializing && this.imageInitializing.abort()), this.hiding && this.transitioning.abort(), this.hidden()) : this.showing && (this.transitioning.abort(), this.hidden()), this.ready = !1, this.viewer.parentNode.removeChild(this.viewer)) : e.inline && (this.delaying ? this.delaying.abort() : this.initializing && this.initializing.abort()), e.inline || Y(t, w, this.onStart), t[g] = void 0), this |
||||
|
} |
||||
|
}, At = { |
||||
|
getImageURL: function (t) { |
||||
|
var e = this.options.url; |
||||
|
return e = T(e) ? t.getAttribute(e) : I(e) ? e.call(this, t) : "" |
||||
|
}, enforceFocus: function () { |
||||
|
var n = this; |
||||
|
this.clearEnforceFocus(), X(document, et, this.onFocusin = function (t) { |
||||
|
var e = n.viewer, i = t.target; |
||||
|
if (i !== document && i !== e && !e.contains(i)) { |
||||
|
for (; i;) { |
||||
|
if (null !== i.getAttribute("tabindex") || "true" === i.getAttribute("aria-modal")) return; |
||||
|
i = i.parentElement |
||||
|
} |
||||
|
e.focus() |
||||
|
} |
||||
|
}) |
||||
|
}, clearEnforceFocus: function () { |
||||
|
this.onFocusin && (Y(document, et, this.onFocusin), this.onFocusin = null) |
||||
|
}, open: function () { |
||||
|
var t = this.body; |
||||
|
R(t, J), 0 < this.scrollbarWidth && (t.style.paddingRight = "".concat(this.scrollbarWidth + (parseFloat(this.initialBodyComputedPaddingRight) || 0), "px")) |
||||
|
}, close: function () { |
||||
|
var t = this.body; |
||||
|
M(t, J), 0 < this.scrollbarWidth && (t.style.paddingRight = this.initialBodyPaddingRight) |
||||
|
}, shown: function () { |
||||
|
var t = this.element, e = this.options, i = this.viewer; |
||||
|
this.fulled = !0, this.isShown = !0, this.render(), this.bind(), this.showing = !1, e.focus && (i.focus(), this.enforceFocus()), I(e.shown) && X(t, "shown", e.shown, {once: !0}), !1 !== q(t, "shown") && this.ready && this.isShown && !this.hiding && this.view(this.index) |
||||
|
}, hidden: function () { |
||||
|
var t = this.element, e = this.options, i = this.viewer; |
||||
|
e.fucus && this.clearEnforceFocus(), this.close(), this.unbind(), R(i, v), i.removeAttribute("role"), i.removeAttribute("aria-labelledby"), i.removeAttribute("aria-modal"), i.setAttribute("aria-hidden", !0), this.resetList(), this.resetImage(), this.fulled = !1, this.viewed = !1, this.isShown = !1, this.hiding = !1, this.destroyed || (I(e.hidden) && X(t, "hidden", e.hidden, {once: !0}), q(t, "hidden", null, {cancelable: !1})) |
||||
|
}, requestFullscreen: function (t) { |
||||
|
var e = this.element.ownerDocument; |
||||
|
this.fulled && !(e.fullscreenElement || e.webkitFullscreenElement || e.mozFullScreenElement || e.msFullscreenElement) && ((e = e.documentElement).requestFullscreen ? S(t) ? e.requestFullscreen(t) : e.requestFullscreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT) : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.msRequestFullscreen && e.msRequestFullscreen()) |
||||
|
}, exitFullscreen: function () { |
||||
|
var t = this.element.ownerDocument; |
||||
|
this.fulled && (t.fullscreenElement || t.webkitFullscreenElement || t.mozFullScreenElement || t.msFullscreenElement) && (t.exitFullscreen ? t.exitFullscreen() : t.webkitExitFullscreen ? t.webkitExitFullscreen() : t.mozCancelFullScreen ? t.mozCancelFullScreen() : t.msExitFullscreen && t.msExitFullscreen()) |
||||
|
}, change: function (t) { |
||||
|
var e = this.options, i = this.pointers, n = i[Object.keys(i)[0]]; |
||||
|
if (n) { |
||||
|
var s, a, o = n.endX - n.startX, r = n.endY - n.startY; |
||||
|
switch (this.action) { |
||||
|
case h: |
||||
|
0 == o && 0 == r || (this.pointerMoved = !0, this.move(o, r, t)); |
||||
|
break; |
||||
|
case c: |
||||
|
this.zoom((s = P({}, l = i), a = [], A(l, function (o, t) { |
||||
|
delete s[t], A(s, function (t) { |
||||
|
var e = Math.abs(o.startX - t.startX), i = Math.abs(o.startY - t.startY), |
||||
|
n = Math.abs(o.endX - t.endX), t = Math.abs(o.endY - t.endY), |
||||
|
e = Math.sqrt(e * e + i * i), i = Math.sqrt(n * n + t * t); |
||||
|
a.push((i - e) / e) |
||||
|
}) |
||||
|
}), a.sort(function (t, e) { |
||||
|
return Math.abs(t) < Math.abs(e) |
||||
|
}), a[0]), !1, null, t); |
||||
|
break; |
||||
|
case j: |
||||
|
this.action = "switched"; |
||||
|
var l = Math.abs(o); |
||||
|
1 < l && l > Math.abs(r) && (this.pointers = {}, 1 < o ? this.prev(e.loop) : o < -1 && this.next(e.loop)) |
||||
|
} |
||||
|
A(i, function (t) { |
||||
|
t.startX = t.endX, t.startY = t.endY |
||||
|
}) |
||||
|
} |
||||
|
}, isSwitchable: function () { |
||||
|
var t = this.imageData, e = this.viewerData; |
||||
|
return 1 < this.length && 0 <= t.x && 0 <= t.y && t.width <= e.width && t.height <= e.height |
||||
|
} |
||||
|
}, Ot = e.Viewer, Ct = (Dt = -1, function () { |
||||
|
return Dt += 1 |
||||
|
}), e = (() => { |
||||
|
function o(t) { |
||||
|
var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, i = this, n = o; |
||||
|
if (!(i instanceof n)) throw new TypeError("Cannot call a class as a function"); |
||||
|
if (!t || 1 !== t.nodeType) throw new Error("The first argument is required and must be an element."); |
||||
|
this.element = t, this.options = O({}, W, S(e) && e), this.action = !1, this.fading = !1, this.fulled = !1, this.hiding = !1, this.imageClicked = !1, this.imageData = {}, this.index = this.options.initialViewIndex, this.isImg = !1, this.isShown = !1, this.length = 0, this.moving = !1, this.played = !1, this.playing = !1, this.pointers = {}, this.ready = !1, this.rotating = !1, this.scaling = !1, this.showing = !1, this.timeout = !1, this.tooltipping = !1, this.viewed = !1, this.viewing = !1, this.wheeling = !1, this.zooming = !1, this.pointerMoved = !1, this.id = Ct(), this.init() |
||||
|
} |
||||
|
|
||||
|
return t = o, i = [{ |
||||
|
key: "noConflict", value: function () { |
||||
|
return window.Viewer = Ot, o |
||||
|
} |
||||
|
}, { |
||||
|
key: "setDefaults", value: function (t) { |
||||
|
O(W, S(t) && t) |
||||
|
} |
||||
|
}], (e = [{ |
||||
|
key: "init", value: function () { |
||||
|
var t, e, i, n, o = this, s = this.element, a = this.options; |
||||
|
s[g] || (s[g] = this, a.focus && !a.keyboard && (a.focus = !1), e = [], A((t = "img" === s.localName) ? [s] : s.querySelectorAll("img"), function (t) { |
||||
|
I(a.filter) ? a.filter.call(o, t) && e.push(t) : o.getImageURL(t) && e.push(t) |
||||
|
}), this.isImg = t, this.length = e.length, this.images = e, this.initBody(), D(document.createElement(g).style.transition) && (a.transition = !1), a.inline ? (i = 0, n = function () { |
||||
|
var t; |
||||
|
(i += 1) === o.length && (o.initializing = !1, o.delaying = { |
||||
|
abort: function () { |
||||
|
clearTimeout(t) |
||||
|
} |
||||
|
}, t = setTimeout(function () { |
||||
|
o.delaying = !1, o.build() |
||||
|
}, 0)) |
||||
|
}, this.initializing = { |
||||
|
abort: function () { |
||||
|
A(e, function (t) { |
||||
|
t.complete || (Y(t, y, n), Y(t, x, n)) |
||||
|
}) |
||||
|
} |
||||
|
}, A(e, function (t) { |
||||
|
var e, i; |
||||
|
t.complete ? n() : (X(t, y, e = function () { |
||||
|
Y(t, x, i), n() |
||||
|
}, {once: !0}), X(t, x, i = function () { |
||||
|
Y(t, y, e), n() |
||||
|
}, {once: !0})) |
||||
|
})) : X(s, w, this.onStart = function (t) { |
||||
|
t = t.target; |
||||
|
"img" !== t.localName || I(a.filter) && !a.filter.call(o, t) || o.view(o.images.indexOf(t)) |
||||
|
})) |
||||
|
} |
||||
|
}, { |
||||
|
key: "build", value: function () { |
||||
|
var t, s, e, i, n, o, a, r, l, h, c, u, d, m; |
||||
|
this.ready || (t = this.element, s = this.options, e = t.parentNode, (d = document.createElement("div")).innerHTML = '<div class="viewer-container" tabindex="-1" touch-action="none"><div class="viewer-canvas"></div><div class="viewer-footer"><div class="viewer-title"></div><div class="viewer-toolbar"></div><div class="viewer-navbar"><ul class="viewer-list" role="navigation"></ul></div></div><div class="viewer-tooltip" role="alert" aria-hidden="true"></div><div class="viewer-button" data-viewer-action="mix" role="button"></div><div class="viewer-player"></div></div>', d = (i = d.querySelector(".".concat(g, "-container"))).querySelector(".".concat(g, "-title")), n = i.querySelector(".".concat(g, "-toolbar")), m = i.querySelector(".".concat(g, "-navbar")), o = i.querySelector(".".concat(g, "-button")), a = i.querySelector(".".concat(g, "-canvas")), this.parent = e, this.viewer = i, this.title = d, this.toolbar = n, this.navbar = m, this.button = o, this.canvas = a, this.footer = i.querySelector(".".concat(g, "-footer")), this.tooltipBox = i.querySelector(".".concat(g, "-tooltip")), this.player = i.querySelector(".".concat(g, "-player")), this.list = i.querySelector(".".concat(g, "-list")), i.id = "".concat(g).concat(this.id), d.id = "".concat(g, "Title").concat(this.id), R(d, s.title ? Tt(Array.isArray(s.title) ? s.title[0] : s.title) : v), R(m, s.navbar ? Tt(s.navbar) : v), F(o, v, !s.button), s.keyboard && o.setAttribute("tabindex", 0), s.backdrop && (R(i, "".concat(g, "-backdrop")), s.inline || "static" === s.backdrop || pt(a, ht, "hide")), T(s.className) && s.className && s.className.split(ct).forEach(function (t) { |
||||
|
R(i, t) |
||||
|
}), s.toolbar ? (r = document.createElement("ul"), l = S(s.toolbar), h = ut.slice(0, 3), c = ut.slice(7, 9), u = ut.slice(9), l || R(n, Tt(s.toolbar)), A(l ? s.toolbar : ut, function (t, e) { |
||||
|
var i, n = l && S(t), e = l ? vt(e) : t, o = n && !D(t.show) ? t.show : t; |
||||
|
!o || !s.zoomable && -1 !== h.indexOf(e) || !s.rotatable && -1 !== c.indexOf(e) || !s.scalable && -1 !== u.indexOf(e) || (i = n && !D(t.size) ? t.size : t, n = n && !D(t.click) ? t.click : t, t = document.createElement("li"), s.keyboard && t.setAttribute("tabindex", 0), t.setAttribute("role", "button"), R(t, "".concat(g, "-").concat(e)), I(n) || pt(t, ht, e), E(o) && R(t, Tt(o)), -1 !== ["small", "large"].indexOf(i) ? R(t, "".concat(g, "-").concat(i)) : "play" === e && R(t, "".concat(g, "-large")), I(n) && X(t, w, n), r.appendChild(t)) |
||||
|
}), n.appendChild(r)) : R(n, v), s.rotatable || (R(d = n.querySelectorAll('li[class*="rotate"]'), p), A(d, function (t) { |
||||
|
n.appendChild(t) |
||||
|
})), s.inline ? (R(o, U), C(i, {zIndex: s.zIndexInline}), "static" === window.getComputedStyle(e).position && C(e, {position: "relative"}), e.insertBefore(i, t.nextSibling)) : (R(o, H), R(i, V), R(i, B), R(i, v), C(i, {zIndex: s.zIndex}), (m = (m = T(m = s.container) ? t.ownerDocument.querySelector(m) : m) || this.body).appendChild(i)), s.inline && (this.render(), this.bind(), this.isShown = !0), this.ready = !0, I(s.ready) && X(t, "ready", s.ready, {once: !0}), !1 === q(t, "ready") ? this.ready = !1 : this.ready && s.inline && this.view(this.index)) |
||||
|
} |
||||
|
}]) && n(t.prototype, e), i && n(t, i), Object.defineProperty(t, "prototype", {writable: !1}), t; |
||||
|
var t, e, i |
||||
|
})(); |
||||
|
return O(e.prototype, i, t, St, It, At), e |
||||
|
}); |
||||
3618
src/main/resources/static/assets/js/leaflet.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,589 @@ |
|||||
|
!function (e, t) { |
||||
|
"object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t(((e = e || self).Leaflet = e.Leaflet || {}, e.Leaflet.markercluster = {})) |
||||
|
}(this, function (e) { |
||||
|
"use strict"; |
||||
|
var t = L.MarkerClusterGroup = L.FeatureGroup.extend({ |
||||
|
options: { |
||||
|
maxClusterRadius: 80, |
||||
|
iconCreateFunction: null, |
||||
|
clusterPane: L.Marker.prototype.options.pane, |
||||
|
spiderfyOnEveryZoom: !1, |
||||
|
spiderfyOnMaxZoom: !0, |
||||
|
showCoverageOnHover: !0, |
||||
|
zoomToBoundsOnClick: !0, |
||||
|
singleMarkerMode: !1, |
||||
|
disableClusteringAtZoom: null, |
||||
|
removeOutsideVisibleBounds: !0, |
||||
|
animate: !0, |
||||
|
animateAddingMarkers: !1, |
||||
|
spiderfyShapePositions: null, |
||||
|
spiderfyDistanceMultiplier: 1, |
||||
|
spiderLegPolylineOptions: {weight: 1.5, color: "#222", opacity: .5}, |
||||
|
chunkedLoading: !1, |
||||
|
chunkInterval: 200, |
||||
|
chunkDelay: 50, |
||||
|
chunkProgress: null, |
||||
|
polygonOptions: {} |
||||
|
}, initialize: function (e) { |
||||
|
L.Util.setOptions(this, e), this.options.iconCreateFunction || (this.options.iconCreateFunction = this._defaultIconCreateFunction), this._featureGroup = L.featureGroup(), this._featureGroup.addEventParent(this), this._nonPointGroup = L.featureGroup(), this._nonPointGroup.addEventParent(this), this._inZoomAnimation = 0, this._needsClustering = [], this._needsRemoving = [], this._currentShownBounds = null, this._queue = [], this._childMarkerEventHandlers = { |
||||
|
dragstart: this._childMarkerDragStart, |
||||
|
move: this._childMarkerMoved, |
||||
|
dragend: this._childMarkerDragEnd |
||||
|
}; |
||||
|
var t = L.DomUtil.TRANSITION && this.options.animate; |
||||
|
L.extend(this, t ? this._withAnimation : this._noAnimation), this._markerCluster = t ? L.MarkerCluster : L.MarkerClusterNonAnimated |
||||
|
}, addLayer: function (e) { |
||||
|
if (e instanceof L.LayerGroup) return this.addLayers([e]); |
||||
|
if (!e.getLatLng) return this._nonPointGroup.addLayer(e), this.fire("layeradd", {layer: e}), this; |
||||
|
if (!this._map) return this._needsClustering.push(e), this.fire("layeradd", {layer: e}), this; |
||||
|
if (this.hasLayer(e)) return this; |
||||
|
this._unspiderfy && this._unspiderfy(), this._addLayer(e, this._maxZoom), this.fire("layeradd", {layer: e}), this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(); |
||||
|
var t = e, i = this._zoom; |
||||
|
if (e.__parent) for (; t.__parent._zoom >= i;) t = t.__parent; |
||||
|
return this._currentShownBounds.contains(t.getLatLng()) && (this.options.animateAddingMarkers ? this._animationAddLayer(e, t) : this._animationAddLayerNonAnimated(e, t)), this |
||||
|
}, removeLayer: function (e) { |
||||
|
return e instanceof L.LayerGroup ? this.removeLayers([e]) : (e.getLatLng ? this._map ? e.__parent && (this._unspiderfy && (this._unspiderfy(), this._unspiderfyLayer(e)), this._removeLayer(e, !0), this.fire("layerremove", {layer: e}), this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(), e.off(this._childMarkerEventHandlers, this), this._featureGroup.hasLayer(e) && (this._featureGroup.removeLayer(e), e.clusterShow && e.clusterShow())) : (!this._arraySplice(this._needsClustering, e) && this.hasLayer(e) && this._needsRemoving.push({ |
||||
|
layer: e, |
||||
|
latlng: e._latlng |
||||
|
}), this.fire("layerremove", {layer: e})) : (this._nonPointGroup.removeLayer(e), this.fire("layerremove", {layer: e})), this) |
||||
|
}, addLayers: function (n, s) { |
||||
|
if (!L.Util.isArray(n)) return this.addLayer(n); |
||||
|
var o, a = this._featureGroup, h = this._nonPointGroup, l = this.options.chunkedLoading, |
||||
|
u = this.options.chunkInterval, _ = this.options.chunkProgress, d = n.length, p = 0, c = !0; |
||||
|
if (this._map) { |
||||
|
var f = (new Date).getTime(), m = L.bind(function () { |
||||
|
var e = (new Date).getTime(); |
||||
|
for (this._map && this._unspiderfy && this._unspiderfy(); p < d; p++) { |
||||
|
if (l && p % 200 == 0) { |
||||
|
var t = (new Date).getTime() - e; |
||||
|
if (u < t) break |
||||
|
} |
||||
|
if ((o = n[p]) instanceof L.LayerGroup) c && (n = n.slice(), c = !1), this._extractNonGroupLayers(o, n), d = n.length; else if (o.getLatLng) { |
||||
|
if (!this.hasLayer(o) && (this._addLayer(o, this._maxZoom), s || this.fire("layeradd", {layer: o}), o.__parent && 2 === o.__parent.getChildCount())) { |
||||
|
var i = o.__parent.getAllChildMarkers(), r = i[0] === o ? i[1] : i[0]; |
||||
|
a.removeLayer(r) |
||||
|
} |
||||
|
} else h.addLayer(o), s || this.fire("layeradd", {layer: o}) |
||||
|
} |
||||
|
_ && _(p, d, (new Date).getTime() - f), p === d ? (this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(), this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds)) : setTimeout(m, this.options.chunkDelay) |
||||
|
}, this); |
||||
|
m() |
||||
|
} else for (var e = this._needsClustering; p < d; p++) (o = n[p]) instanceof L.LayerGroup ? (c && (n = n.slice(), c = !1), this._extractNonGroupLayers(o, n), d = n.length) : o.getLatLng ? this.hasLayer(o) || e.push(o) : h.addLayer(o); |
||||
|
return this |
||||
|
}, removeLayers: function (e) { |
||||
|
var t, i, r = e.length, n = this._featureGroup, s = this._nonPointGroup, o = !0; |
||||
|
if (!this._map) { |
||||
|
for (t = 0; t < r; t++) (i = e[t]) instanceof L.LayerGroup ? (o && (e = e.slice(), o = !1), this._extractNonGroupLayers(i, e), r = e.length) : (this._arraySplice(this._needsClustering, i), s.removeLayer(i), this.hasLayer(i) && this._needsRemoving.push({ |
||||
|
layer: i, |
||||
|
latlng: i._latlng |
||||
|
}), this.fire("layerremove", {layer: i})); |
||||
|
return this |
||||
|
} |
||||
|
if (this._unspiderfy) { |
||||
|
this._unspiderfy(); |
||||
|
var a = e.slice(), h = r; |
||||
|
for (t = 0; t < h; t++) (i = a[t]) instanceof L.LayerGroup ? (this._extractNonGroupLayers(i, a), h = a.length) : this._unspiderfyLayer(i) |
||||
|
} |
||||
|
for (t = 0; t < r; t++) (i = e[t]) instanceof L.LayerGroup ? (o && (e = e.slice(), o = !1), this._extractNonGroupLayers(i, e), r = e.length) : i.__parent ? (this._removeLayer(i, !0, !0), this.fire("layerremove", {layer: i}), n.hasLayer(i) && (n.removeLayer(i), i.clusterShow && i.clusterShow())) : (s.removeLayer(i), this.fire("layerremove", {layer: i})); |
||||
|
return this._topClusterLevel._recalculateBounds(), this._refreshClustersIcons(), this._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds), this |
||||
|
}, clearLayers: function () { |
||||
|
return this._map || (this._needsClustering = [], this._needsRemoving = [], delete this._gridClusters, delete this._gridUnclustered), this._noanimationUnspiderfy && this._noanimationUnspiderfy(), this._featureGroup.clearLayers(), this._nonPointGroup.clearLayers(), this.eachLayer(function (e) { |
||||
|
e.off(this._childMarkerEventHandlers, this), delete e.__parent |
||||
|
}, this), this._map && this._generateInitialClusters(), this |
||||
|
}, getBounds: function () { |
||||
|
var e = new L.LatLngBounds; |
||||
|
this._topClusterLevel && e.extend(this._topClusterLevel._bounds); |
||||
|
for (var t = this._needsClustering.length - 1; 0 <= t; t--) e.extend(this._needsClustering[t].getLatLng()); |
||||
|
return e.extend(this._nonPointGroup.getBounds()), e |
||||
|
}, eachLayer: function (e, t) { |
||||
|
var i, r, n, s = this._needsClustering.slice(), o = this._needsRemoving; |
||||
|
for (this._topClusterLevel && this._topClusterLevel.getAllChildMarkers(s), r = s.length - 1; 0 <= r; r--) { |
||||
|
for (i = !0, n = o.length - 1; 0 <= n; n--) if (o[n].layer === s[r]) { |
||||
|
i = !1; |
||||
|
break |
||||
|
} |
||||
|
i && e.call(t, s[r]) |
||||
|
} |
||||
|
this._nonPointGroup.eachLayer(e, t) |
||||
|
}, getLayers: function () { |
||||
|
var t = []; |
||||
|
return this.eachLayer(function (e) { |
||||
|
t.push(e) |
||||
|
}), t |
||||
|
}, getLayer: function (t) { |
||||
|
var i = null; |
||||
|
return t = parseInt(t, 10), this.eachLayer(function (e) { |
||||
|
L.stamp(e) === t && (i = e) |
||||
|
}), i |
||||
|
}, hasLayer: function (e) { |
||||
|
if (!e) return !1; |
||||
|
var t, i = this._needsClustering; |
||||
|
for (t = i.length - 1; 0 <= t; t--) if (i[t] === e) return !0; |
||||
|
for (t = (i = this._needsRemoving).length - 1; 0 <= t; t--) if (i[t].layer === e) return !1; |
||||
|
return !(!e.__parent || e.__parent._group !== this) || this._nonPointGroup.hasLayer(e) |
||||
|
}, zoomToShowLayer: function (e, t) { |
||||
|
var i = this._map; |
||||
|
"function" != typeof t && (t = function () { |
||||
|
}); |
||||
|
var r = function () { |
||||
|
!i.hasLayer(e) && !i.hasLayer(e.__parent) || this._inZoomAnimation || (this._map.off("moveend", r, this), this.off("animationend", r, this), i.hasLayer(e) ? t() : e.__parent._icon && (this.once("spiderfied", t, this), e.__parent.spiderfy())) |
||||
|
}; |
||||
|
e._icon && this._map.getBounds().contains(e.getLatLng()) ? t() : e.__parent._zoom < Math.round(this._map._zoom) ? (this._map.on("moveend", r, this), this._map.panTo(e.getLatLng())) : (this._map.on("moveend", r, this), this.on("animationend", r, this), e.__parent.zoomToBounds()) |
||||
|
}, onAdd: function (e) { |
||||
|
var t, i, r; |
||||
|
if (this._map = e, !isFinite(this._map.getMaxZoom())) throw "Map has no maxZoom specified"; |
||||
|
for (this._featureGroup.addTo(e), this._nonPointGroup.addTo(e), this._gridClusters || this._generateInitialClusters(), this._maxLat = e.options.crs.projection.MAX_LATITUDE, t = 0, i = this._needsRemoving.length; t < i; t++) (r = this._needsRemoving[t]).newlatlng = r.layer._latlng, r.layer._latlng = r.latlng; |
||||
|
for (t = 0, i = this._needsRemoving.length; t < i; t++) r = this._needsRemoving[t], this._removeLayer(r.layer, !0), r.layer._latlng = r.newlatlng; |
||||
|
this._needsRemoving = [], this._zoom = Math.round(this._map._zoom), this._currentShownBounds = this._getExpandedVisibleBounds(), this._map.on("zoomend", this._zoomEnd, this), this._map.on("moveend", this._moveEnd, this), this._spiderfierOnAdd && this._spiderfierOnAdd(), this._bindEvents(), i = this._needsClustering, this._needsClustering = [], this.addLayers(i, !0) |
||||
|
}, onRemove: function (e) { |
||||
|
e.off("zoomend", this._zoomEnd, this), e.off("moveend", this._moveEnd, this), this._unbindEvents(), this._map._mapPane.className = this._map._mapPane.className.replace(" leaflet-cluster-anim", ""), this._spiderfierOnRemove && this._spiderfierOnRemove(), delete this._maxLat, this._hideCoverage(), this._featureGroup.remove(), this._nonPointGroup.remove(), this._featureGroup.clearLayers(), this._map = null |
||||
|
}, getVisibleParent: function (e) { |
||||
|
for (var t = e; t && !t._icon;) t = t.__parent; |
||||
|
return t || null |
||||
|
}, _arraySplice: function (e, t) { |
||||
|
for (var i = e.length - 1; 0 <= i; i--) if (e[i] === t) return e.splice(i, 1), !0 |
||||
|
}, _removeFromGridUnclustered: function (e, t) { |
||||
|
for (var i = this._map, r = this._gridUnclustered, n = Math.floor(this._map.getMinZoom()); n <= t && r[t].removeObject(e, i.project(e.getLatLng(), t)); t--) ; |
||||
|
}, _childMarkerDragStart: function (e) { |
||||
|
e.target.__dragStart = e.target._latlng |
||||
|
}, _childMarkerMoved: function (e) { |
||||
|
if (!this._ignoreMove && !e.target.__dragStart) { |
||||
|
var t = e.target._popup && e.target._popup.isOpen(); |
||||
|
this._moveChild(e.target, e.oldLatLng, e.latlng), t && e.target.openPopup() |
||||
|
} |
||||
|
}, _moveChild: function (e, t, i) { |
||||
|
e._latlng = t, this.removeLayer(e), e._latlng = i, this.addLayer(e) |
||||
|
}, _childMarkerDragEnd: function (e) { |
||||
|
var t = e.target.__dragStart; |
||||
|
delete e.target.__dragStart, t && this._moveChild(e.target, t, e.target._latlng) |
||||
|
}, _removeLayer: function (e, t, i) { |
||||
|
var r = this._gridClusters, n = this._gridUnclustered, s = this._featureGroup, o = this._map, |
||||
|
a = Math.floor(this._map.getMinZoom()); |
||||
|
t && this._removeFromGridUnclustered(e, this._maxZoom); |
||||
|
var h, l = e.__parent, u = l._markers; |
||||
|
for (this._arraySplice(u, e); l && (l._childCount--, l._boundsNeedUpdate = !0, !(l._zoom < a));) t && l._childCount <= 1 ? (h = l._markers[0] === e ? l._markers[1] : l._markers[0], r[l._zoom].removeObject(l, o.project(l._cLatLng, l._zoom)), n[l._zoom].addObject(h, o.project(h.getLatLng(), l._zoom)), this._arraySplice(l.__parent._childClusters, l), l.__parent._markers.push(h), h.__parent = l.__parent, l._icon && (s.removeLayer(l), i || s.addLayer(h))) : l._iconNeedsUpdate = !0, l = l.__parent; |
||||
|
delete e.__parent |
||||
|
}, _isOrIsParent: function (e, t) { |
||||
|
for (; t;) { |
||||
|
if (e === t) return !0; |
||||
|
t = t.parentNode |
||||
|
} |
||||
|
return !1 |
||||
|
}, fire: function (e, t, i) { |
||||
|
if (t && t.layer instanceof L.MarkerCluster) { |
||||
|
if (t.originalEvent && this._isOrIsParent(t.layer._icon, t.originalEvent.relatedTarget)) return; |
||||
|
e = "cluster" + e |
||||
|
} |
||||
|
L.FeatureGroup.prototype.fire.call(this, e, t, i) |
||||
|
}, listens: function (e, t) { |
||||
|
return L.FeatureGroup.prototype.listens.call(this, e, t) || L.FeatureGroup.prototype.listens.call(this, "cluster" + e, t) |
||||
|
}, _defaultIconCreateFunction: function (e) { |
||||
|
var t = e.getChildCount(), i = " marker-cluster-"; |
||||
|
return i += t < 10 ? "small" : t < 100 ? "medium" : "large", new L.DivIcon({ |
||||
|
html: "<div><span>" + t + "</span></div>", |
||||
|
className: "marker-cluster" + i, |
||||
|
iconSize: new L.Point(40, 40) |
||||
|
}) |
||||
|
}, _bindEvents: function () { |
||||
|
var e = this._map, t = this.options.spiderfyOnMaxZoom, i = this.options.showCoverageOnHover, |
||||
|
r = this.options.zoomToBoundsOnClick, n = this.options.spiderfyOnEveryZoom; |
||||
|
(t || r || n) && this.on("clusterclick clusterkeypress", this._zoomOrSpiderfy, this), i && (this.on("clustermouseover", this._showCoverage, this), this.on("clustermouseout", this._hideCoverage, this), e.on("zoomend", this._hideCoverage, this)) |
||||
|
}, _zoomOrSpiderfy: function (e) { |
||||
|
var t = e.layer, i = t; |
||||
|
if ("clusterkeypress" !== e.type || !e.originalEvent || 13 === e.originalEvent.keyCode) { |
||||
|
for (; 1 === i._childClusters.length;) i = i._childClusters[0]; |
||||
|
i._zoom === this._maxZoom && i._childCount === t._childCount && this.options.spiderfyOnMaxZoom ? t.spiderfy() : this.options.zoomToBoundsOnClick && t.zoomToBounds(), this.options.spiderfyOnEveryZoom && t.spiderfy(), e.originalEvent && 13 === e.originalEvent.keyCode && this._map._container.focus() |
||||
|
} |
||||
|
}, _showCoverage: function (e) { |
||||
|
var t = this._map; |
||||
|
this._inZoomAnimation || (this._shownPolygon && t.removeLayer(this._shownPolygon), 2 < e.layer.getChildCount() && e.layer !== this._spiderfied && (this._shownPolygon = new L.Polygon(e.layer.getConvexHull(), this.options.polygonOptions), t.addLayer(this._shownPolygon))) |
||||
|
}, _hideCoverage: function () { |
||||
|
this._shownPolygon && (this._map.removeLayer(this._shownPolygon), this._shownPolygon = null) |
||||
|
}, _unbindEvents: function () { |
||||
|
var e = this.options.spiderfyOnMaxZoom, t = this.options.showCoverageOnHover, |
||||
|
i = this.options.zoomToBoundsOnClick, r = this.options.spiderfyOnEveryZoom, n = this._map; |
||||
|
(e || i || r) && this.off("clusterclick clusterkeypress", this._zoomOrSpiderfy, this), t && (this.off("clustermouseover", this._showCoverage, this), this.off("clustermouseout", this._hideCoverage, this), n.off("zoomend", this._hideCoverage, this)) |
||||
|
}, _zoomEnd: function () { |
||||
|
this._map && (this._mergeSplitClusters(), this._zoom = Math.round(this._map._zoom), this._currentShownBounds = this._getExpandedVisibleBounds()) |
||||
|
}, _moveEnd: function () { |
||||
|
if (!this._inZoomAnimation) { |
||||
|
var e = this._getExpandedVisibleBounds(); |
||||
|
this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, e), this._topClusterLevel._recursivelyAddChildrenToMap(null, Math.round(this._map._zoom), e), this._currentShownBounds = e |
||||
|
} |
||||
|
}, _generateInitialClusters: function () { |
||||
|
var e = Math.ceil(this._map.getMaxZoom()), t = Math.floor(this._map.getMinZoom()), |
||||
|
i = this.options.maxClusterRadius, r = i; |
||||
|
"function" != typeof i && (r = function () { |
||||
|
return i |
||||
|
}), null !== this.options.disableClusteringAtZoom && (e = this.options.disableClusteringAtZoom - 1), this._maxZoom = e, this._gridClusters = {}, this._gridUnclustered = {}; |
||||
|
for (var n = e; t <= n; n--) this._gridClusters[n] = new L.DistanceGrid(r(n)), this._gridUnclustered[n] = new L.DistanceGrid(r(n)); |
||||
|
this._topClusterLevel = new this._markerCluster(this, t - 1) |
||||
|
}, _addLayer: function (e, t) { |
||||
|
var i, r, n = this._gridClusters, s = this._gridUnclustered, o = Math.floor(this._map.getMinZoom()); |
||||
|
for (this.options.singleMarkerMode && this._overrideMarkerIcon(e), e.on(this._childMarkerEventHandlers, this); o <= t; t--) { |
||||
|
i = this._map.project(e.getLatLng(), t); |
||||
|
var a = n[t].getNearObject(i); |
||||
|
if (a) return a._addChild(e), void (e.__parent = a); |
||||
|
if (a = s[t].getNearObject(i)) { |
||||
|
var h = a.__parent; |
||||
|
h && this._removeLayer(a, !1); |
||||
|
var l = new this._markerCluster(this, t, a, e); |
||||
|
n[t].addObject(l, this._map.project(l._cLatLng, t)), a.__parent = l; |
||||
|
var u = e.__parent = l; |
||||
|
for (r = t - 1; r > h._zoom; r--) u = new this._markerCluster(this, r, u), n[r].addObject(u, this._map.project(a.getLatLng(), r)); |
||||
|
return h._addChild(u), void this._removeFromGridUnclustered(a, t) |
||||
|
} |
||||
|
s[t].addObject(e, i) |
||||
|
} |
||||
|
this._topClusterLevel._addChild(e), e.__parent = this._topClusterLevel |
||||
|
}, _refreshClustersIcons: function () { |
||||
|
this._featureGroup.eachLayer(function (e) { |
||||
|
e instanceof L.MarkerCluster && e._iconNeedsUpdate && e._updateIcon() |
||||
|
}) |
||||
|
}, _enqueue: function (e) { |
||||
|
this._queue.push(e), this._queueTimeout || (this._queueTimeout = setTimeout(L.bind(this._processQueue, this), 300)) |
||||
|
}, _processQueue: function () { |
||||
|
for (var e = 0; e < this._queue.length; e++) this._queue[e].call(this); |
||||
|
this._queue.length = 0, clearTimeout(this._queueTimeout), this._queueTimeout = null |
||||
|
}, _mergeSplitClusters: function () { |
||||
|
var e = Math.round(this._map._zoom); |
||||
|
this._processQueue(), this._zoom < e && this._currentShownBounds.intersects(this._getExpandedVisibleBounds()) ? (this._animationStart(), this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, this._getExpandedVisibleBounds()), this._animationZoomIn(this._zoom, e)) : this._zoom > e ? (this._animationStart(), this._animationZoomOut(this._zoom, e)) : this._moveEnd() |
||||
|
}, _getExpandedVisibleBounds: function () { |
||||
|
return this.options.removeOutsideVisibleBounds ? L.Browser.mobile ? this._checkBoundsMaxLat(this._map.getBounds()) : this._checkBoundsMaxLat(this._map.getBounds().pad(1)) : this._mapBoundsInfinite |
||||
|
}, _checkBoundsMaxLat: function (e) { |
||||
|
var t = this._maxLat; |
||||
|
return void 0 !== t && (e.getNorth() >= t && (e._northEast.lat = 1 / 0), e.getSouth() <= -t && (e._southWest.lat = -1 / 0)), e |
||||
|
}, _animationAddLayerNonAnimated: function (e, t) { |
||||
|
if (t === e) this._featureGroup.addLayer(e); else if (2 === t._childCount) { |
||||
|
t._addToMap(); |
||||
|
var i = t.getAllChildMarkers(); |
||||
|
this._featureGroup.removeLayer(i[0]), this._featureGroup.removeLayer(i[1]) |
||||
|
} else t._updateIcon() |
||||
|
}, _extractNonGroupLayers: function (e, t) { |
||||
|
var i, r = e.getLayers(), n = 0; |
||||
|
for (t = t || []; n < r.length; n++) (i = r[n]) instanceof L.LayerGroup ? this._extractNonGroupLayers(i, t) : t.push(i); |
||||
|
return t |
||||
|
}, _overrideMarkerIcon: function (e) { |
||||
|
return e.options.icon = this.options.iconCreateFunction({ |
||||
|
getChildCount: function () { |
||||
|
return 1 |
||||
|
}, getAllChildMarkers: function () { |
||||
|
return [e] |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}); |
||||
|
L.MarkerClusterGroup.include({_mapBoundsInfinite: new L.LatLngBounds(new L.LatLng(-1 / 0, -1 / 0), new L.LatLng(1 / 0, 1 / 0))}), L.MarkerClusterGroup.include({ |
||||
|
_noAnimation: { |
||||
|
_animationStart: function () { |
||||
|
}, _animationZoomIn: function (e, t) { |
||||
|
this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e), this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()), this.fire("animationend") |
||||
|
}, _animationZoomOut: function (e, t) { |
||||
|
this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e), this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()), this.fire("animationend") |
||||
|
}, _animationAddLayer: function (e, t) { |
||||
|
this._animationAddLayerNonAnimated(e, t) |
||||
|
} |
||||
|
}, _withAnimation: { |
||||
|
_animationStart: function () { |
||||
|
this._map._mapPane.className += " leaflet-cluster-anim", this._inZoomAnimation++ |
||||
|
}, _animationZoomIn: function (n, s) { |
||||
|
var o, a = this._getExpandedVisibleBounds(), h = this._featureGroup, |
||||
|
e = Math.floor(this._map.getMinZoom()); |
||||
|
this._ignoreMove = !0, this._topClusterLevel._recursively(a, n, e, function (e) { |
||||
|
var t, i = e._latlng, r = e._markers; |
||||
|
for (a.contains(i) || (i = null), e._isSingleParent() && n + 1 === s ? (h.removeLayer(e), e._recursivelyAddChildrenToMap(null, s, a)) : (e.clusterHide(), e._recursivelyAddChildrenToMap(i, s, a)), o = r.length - 1; 0 <= o; o--) t = r[o], a.contains(t._latlng) || h.removeLayer(t) |
||||
|
}), this._forceLayout(), this._topClusterLevel._recursivelyBecomeVisible(a, s), h.eachLayer(function (e) { |
||||
|
e instanceof L.MarkerCluster || !e._icon || e.clusterShow() |
||||
|
}), this._topClusterLevel._recursively(a, n, s, function (e) { |
||||
|
e._recursivelyRestoreChildPositions(s) |
||||
|
}), this._ignoreMove = !1, this._enqueue(function () { |
||||
|
this._topClusterLevel._recursively(a, n, e, function (e) { |
||||
|
h.removeLayer(e), e.clusterShow() |
||||
|
}), this._animationEnd() |
||||
|
}) |
||||
|
}, _animationZoomOut: function (e, t) { |
||||
|
this._animationZoomOutSingle(this._topClusterLevel, e - 1, t), this._topClusterLevel._recursivelyAddChildrenToMap(null, t, this._getExpandedVisibleBounds()), this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), e, this._getExpandedVisibleBounds()) |
||||
|
}, _animationAddLayer: function (e, t) { |
||||
|
var i = this, r = this._featureGroup; |
||||
|
r.addLayer(e), t !== e && (2 < t._childCount ? (t._updateIcon(), this._forceLayout(), this._animationStart(), e._setPos(this._map.latLngToLayerPoint(t.getLatLng())), e.clusterHide(), this._enqueue(function () { |
||||
|
r.removeLayer(e), e.clusterShow(), i._animationEnd() |
||||
|
})) : (this._forceLayout(), i._animationStart(), i._animationZoomOutSingle(t, this._map.getMaxZoom(), this._zoom))) |
||||
|
} |
||||
|
}, _animationZoomOutSingle: function (t, i, r) { |
||||
|
var n = this._getExpandedVisibleBounds(), s = Math.floor(this._map.getMinZoom()); |
||||
|
t._recursivelyAnimateChildrenInAndAddSelfToMap(n, s, i + 1, r); |
||||
|
var o = this; |
||||
|
this._forceLayout(), t._recursivelyBecomeVisible(n, r), this._enqueue(function () { |
||||
|
if (1 === t._childCount) { |
||||
|
var e = t._markers[0]; |
||||
|
this._ignoreMove = !0, e.setLatLng(e.getLatLng()), this._ignoreMove = !1, e.clusterShow && e.clusterShow() |
||||
|
} else t._recursively(n, r, s, function (e) { |
||||
|
e._recursivelyRemoveChildrenFromMap(n, s, i + 1) |
||||
|
}); |
||||
|
o._animationEnd() |
||||
|
}) |
||||
|
}, _animationEnd: function () { |
||||
|
this._map && (this._map._mapPane.className = this._map._mapPane.className.replace(" leaflet-cluster-anim", "")), this._inZoomAnimation--, this.fire("animationend") |
||||
|
}, _forceLayout: function () { |
||||
|
L.Util.falseFn(document.body.offsetWidth) |
||||
|
} |
||||
|
}), L.markerClusterGroup = function (e) { |
||||
|
return new L.MarkerClusterGroup(e) |
||||
|
}; |
||||
|
var i = L.MarkerCluster = L.Marker.extend({ |
||||
|
options: L.Icon.prototype.options, initialize: function (e, t, i, r) { |
||||
|
L.Marker.prototype.initialize.call(this, i ? i._cLatLng || i.getLatLng() : new L.LatLng(0, 0), { |
||||
|
icon: this, |
||||
|
pane: e.options.clusterPane |
||||
|
}), this._group = e, this._zoom = t, this._markers = [], this._childClusters = [], this._childCount = 0, this._iconNeedsUpdate = !0, this._boundsNeedUpdate = !0, this._bounds = new L.LatLngBounds, i && this._addChild(i), r && this._addChild(r) |
||||
|
}, getAllChildMarkers: function (e, t) { |
||||
|
e = e || []; |
||||
|
for (var i = this._childClusters.length - 1; 0 <= i; i--) this._childClusters[i].getAllChildMarkers(e, t); |
||||
|
for (var r = this._markers.length - 1; 0 <= r; r--) t && this._markers[r].__dragStart || e.push(this._markers[r]); |
||||
|
return e |
||||
|
}, getChildCount: function () { |
||||
|
return this._childCount |
||||
|
}, zoomToBounds: function (e) { |
||||
|
for (var t, i = this._childClusters.slice(), r = this._group._map, n = r.getBoundsZoom(this._bounds), s = this._zoom + 1, o = r.getZoom(); 0 < i.length && s < n;) { |
||||
|
s++; |
||||
|
var a = []; |
||||
|
for (t = 0; t < i.length; t++) a = a.concat(i[t]._childClusters); |
||||
|
i = a |
||||
|
} |
||||
|
s < n ? this._group._map.setView(this._latlng, s) : n <= o ? this._group._map.setView(this._latlng, o + 1) : this._group._map.fitBounds(this._bounds, e) |
||||
|
}, getBounds: function () { |
||||
|
var e = new L.LatLngBounds; |
||||
|
return e.extend(this._bounds), e |
||||
|
}, _updateIcon: function () { |
||||
|
this._iconNeedsUpdate = !0, this._icon && this.setIcon(this) |
||||
|
}, createIcon: function () { |
||||
|
return this._iconNeedsUpdate && (this._iconObj = this._group.options.iconCreateFunction(this), this._iconNeedsUpdate = !1), this._iconObj.createIcon() |
||||
|
}, createShadow: function () { |
||||
|
return this._iconObj.createShadow() |
||||
|
}, _addChild: function (e, t) { |
||||
|
this._iconNeedsUpdate = !0, this._boundsNeedUpdate = !0, this._setClusterCenter(e), e instanceof L.MarkerCluster ? (t || (this._childClusters.push(e), e.__parent = this), this._childCount += e._childCount) : (t || this._markers.push(e), this._childCount++), this.__parent && this.__parent._addChild(e, !0) |
||||
|
}, _setClusterCenter: function (e) { |
||||
|
this._cLatLng || (this._cLatLng = e._cLatLng || e._latlng) |
||||
|
}, _resetBounds: function () { |
||||
|
var e = this._bounds; |
||||
|
e._southWest && (e._southWest.lat = 1 / 0, e._southWest.lng = 1 / 0), e._northEast && (e._northEast.lat = -1 / 0, e._northEast.lng = -1 / 0) |
||||
|
}, _recalculateBounds: function () { |
||||
|
var e, t, i, r, n = this._markers, s = this._childClusters, o = 0, a = 0, h = this._childCount; |
||||
|
if (0 !== h) { |
||||
|
for (this._resetBounds(), e = 0; e < n.length; e++) i = n[e]._latlng, this._bounds.extend(i), o += i.lat, a += i.lng; |
||||
|
for (e = 0; e < s.length; e++) (t = s[e])._boundsNeedUpdate && t._recalculateBounds(), this._bounds.extend(t._bounds), i = t._wLatLng, r = t._childCount, o += i.lat * r, a += i.lng * r; |
||||
|
this._latlng = this._wLatLng = new L.LatLng(o / h, a / h), this._boundsNeedUpdate = !1 |
||||
|
} |
||||
|
}, _addToMap: function (e) { |
||||
|
e && (this._backupLatlng = this._latlng, this.setLatLng(e)), this._group._featureGroup.addLayer(this) |
||||
|
}, _recursivelyAnimateChildrenIn: function (e, n, t) { |
||||
|
this._recursively(e, this._group._map.getMinZoom(), t - 1, function (e) { |
||||
|
var t, i, r = e._markers; |
||||
|
for (t = r.length - 1; 0 <= t; t--) (i = r[t])._icon && (i._setPos(n), i.clusterHide()) |
||||
|
}, function (e) { |
||||
|
var t, i, r = e._childClusters; |
||||
|
for (t = r.length - 1; 0 <= t; t--) (i = r[t])._icon && (i._setPos(n), i.clusterHide()) |
||||
|
}) |
||||
|
}, _recursivelyAnimateChildrenInAndAddSelfToMap: function (t, i, r, n) { |
||||
|
this._recursively(t, n, i, function (e) { |
||||
|
e._recursivelyAnimateChildrenIn(t, e._group._map.latLngToLayerPoint(e.getLatLng()).round(), r), e._isSingleParent() && r - 1 === n ? (e.clusterShow(), e._recursivelyRemoveChildrenFromMap(t, i, r)) : e.clusterHide(), e._addToMap() |
||||
|
}) |
||||
|
}, _recursivelyBecomeVisible: function (e, t) { |
||||
|
this._recursively(e, this._group._map.getMinZoom(), t, null, function (e) { |
||||
|
e.clusterShow() |
||||
|
}) |
||||
|
}, _recursivelyAddChildrenToMap: function (r, n, s) { |
||||
|
this._recursively(s, this._group._map.getMinZoom() - 1, n, function (e) { |
||||
|
if (n !== e._zoom) for (var t = e._markers.length - 1; 0 <= t; t--) { |
||||
|
var i = e._markers[t]; |
||||
|
s.contains(i._latlng) && (r && (i._backupLatlng = i.getLatLng(), i.setLatLng(r), i.clusterHide && i.clusterHide()), e._group._featureGroup.addLayer(i)) |
||||
|
} |
||||
|
}, function (e) { |
||||
|
e._addToMap(r) |
||||
|
}) |
||||
|
}, _recursivelyRestoreChildPositions: function (e) { |
||||
|
for (var t = this._markers.length - 1; 0 <= t; t--) { |
||||
|
var i = this._markers[t]; |
||||
|
i._backupLatlng && (i.setLatLng(i._backupLatlng), delete i._backupLatlng) |
||||
|
} |
||||
|
if (e - 1 === this._zoom) for (var r = this._childClusters.length - 1; 0 <= r; r--) this._childClusters[r]._restorePosition(); else for (var n = this._childClusters.length - 1; 0 <= n; n--) this._childClusters[n]._recursivelyRestoreChildPositions(e) |
||||
|
}, _restorePosition: function () { |
||||
|
this._backupLatlng && (this.setLatLng(this._backupLatlng), delete this._backupLatlng) |
||||
|
}, _recursivelyRemoveChildrenFromMap: function (e, t, i, r) { |
||||
|
var n, s; |
||||
|
this._recursively(e, t - 1, i - 1, function (e) { |
||||
|
for (s = e._markers.length - 1; 0 <= s; s--) n = e._markers[s], r && r.contains(n._latlng) || (e._group._featureGroup.removeLayer(n), n.clusterShow && n.clusterShow()) |
||||
|
}, function (e) { |
||||
|
for (s = e._childClusters.length - 1; 0 <= s; s--) n = e._childClusters[s], r && r.contains(n._latlng) || (e._group._featureGroup.removeLayer(n), n.clusterShow && n.clusterShow()) |
||||
|
}) |
||||
|
}, _recursively: function (e, t, i, r, n) { |
||||
|
var s, o, a = this._childClusters, h = this._zoom; |
||||
|
if (t <= h && (r && r(this), n && h === i && n(this)), h < t || h < i) for (s = a.length - 1; 0 <= s; s--) (o = a[s])._boundsNeedUpdate && o._recalculateBounds(), e.intersects(o._bounds) && o._recursively(e, t, i, r, n) |
||||
|
}, _isSingleParent: function () { |
||||
|
return 0 < this._childClusters.length && this._childClusters[0]._childCount === this._childCount |
||||
|
} |
||||
|
}); |
||||
|
L.Marker.include({ |
||||
|
clusterHide: function () { |
||||
|
var e = this.options.opacity; |
||||
|
return this.setOpacity(0), this.options.opacity = e, this |
||||
|
}, clusterShow: function () { |
||||
|
return this.setOpacity(this.options.opacity) |
||||
|
} |
||||
|
}), L.DistanceGrid = function (e) { |
||||
|
this._cellSize = e, this._sqCellSize = e * e, this._grid = {}, this._objectPoint = {} |
||||
|
}, L.DistanceGrid.prototype = { |
||||
|
addObject: function (e, t) { |
||||
|
var i = this._getCoord(t.x), r = this._getCoord(t.y), n = this._grid, s = n[r] = n[r] || {}, |
||||
|
o = s[i] = s[i] || [], a = L.Util.stamp(e); |
||||
|
this._objectPoint[a] = t, o.push(e) |
||||
|
}, updateObject: function (e, t) { |
||||
|
this.removeObject(e), this.addObject(e, t) |
||||
|
}, removeObject: function (e, t) { |
||||
|
var i, r, n = this._getCoord(t.x), s = this._getCoord(t.y), o = this._grid, a = o[s] = o[s] || {}, |
||||
|
h = a[n] = a[n] || []; |
||||
|
for (delete this._objectPoint[L.Util.stamp(e)], i = 0, r = h.length; i < r; i++) if (h[i] === e) return h.splice(i, 1), 1 === r && delete a[n], !0 |
||||
|
}, eachObject: function (e, t) { |
||||
|
var i, r, n, s, o, a, h = this._grid; |
||||
|
for (i in h) for (r in o = h[i]) for (n = 0, s = (a = o[r]).length; n < s; n++) e.call(t, a[n]) && (n--, s--) |
||||
|
}, getNearObject: function (e) { |
||||
|
var t, i, r, n, s, o, a, h, l = this._getCoord(e.x), u = this._getCoord(e.y), _ = this._objectPoint, |
||||
|
d = this._sqCellSize, p = null; |
||||
|
for (t = u - 1; t <= u + 1; t++) if (n = this._grid[t]) for (i = l - 1; i <= l + 1; i++) if (s = n[i]) for (r = 0, o = s.length; r < o; r++) a = s[r], ((h = this._sqDist(_[L.Util.stamp(a)], e)) < d || h <= d && null === p) && (d = h, p = a); |
||||
|
return p |
||||
|
}, _getCoord: function (e) { |
||||
|
var t = Math.floor(e / this._cellSize); |
||||
|
return isFinite(t) ? t : e |
||||
|
}, _sqDist: function (e, t) { |
||||
|
var i = t.x - e.x, r = t.y - e.y; |
||||
|
return i * i + r * r |
||||
|
} |
||||
|
}, L.QuickHull = { |
||||
|
getDistant: function (e, t) { |
||||
|
var i = t[1].lat - t[0].lat; |
||||
|
return (t[0].lng - t[1].lng) * (e.lat - t[0].lat) + i * (e.lng - t[0].lng) |
||||
|
}, findMostDistantPointFromBaseLine: function (e, t) { |
||||
|
var i, r, n, s = 0, o = null, a = []; |
||||
|
for (i = t.length - 1; 0 <= i; i--) r = t[i], 0 < (n = this.getDistant(r, e)) && (a.push(r), s < n && (s = n, o = r)); |
||||
|
return {maxPoint: o, newPoints: a} |
||||
|
}, buildConvexHull: function (e, t) { |
||||
|
var i = [], r = this.findMostDistantPointFromBaseLine(e, t); |
||||
|
return r.maxPoint ? i = (i = i.concat(this.buildConvexHull([e[0], r.maxPoint], r.newPoints))).concat(this.buildConvexHull([r.maxPoint, e[1]], r.newPoints)) : [e[0]] |
||||
|
}, getConvexHull: function (e) { |
||||
|
var t, i = !1, r = !1, n = !1, s = !1, o = null, a = null, h = null, l = null, u = null, _ = null; |
||||
|
for (t = e.length - 1; 0 <= t; t--) { |
||||
|
var d = e[t]; |
||||
|
(!1 === i || d.lat > i) && (i = (o = d).lat), (!1 === r || d.lat < r) && (r = (a = d).lat), (!1 === n || d.lng > n) && (n = (h = d).lng), (!1 === s || d.lng < s) && (s = (l = d).lng) |
||||
|
} |
||||
|
return u = r !== i ? (_ = a, o) : (_ = l, h), [].concat(this.buildConvexHull([_, u], e), this.buildConvexHull([u, _], e)) |
||||
|
} |
||||
|
}, L.MarkerCluster.include({ |
||||
|
getConvexHull: function () { |
||||
|
var e, t, i = this.getAllChildMarkers(), r = []; |
||||
|
for (t = i.length - 1; 0 <= t; t--) e = i[t].getLatLng(), r.push(e); |
||||
|
return L.QuickHull.getConvexHull(r) |
||||
|
} |
||||
|
}), L.MarkerCluster.include({ |
||||
|
_2PI: 2 * Math.PI, |
||||
|
_circleFootSeparation: 25, |
||||
|
_circleStartAngle: 0, |
||||
|
_spiralFootSeparation: 28, |
||||
|
_spiralLengthStart: 11, |
||||
|
_spiralLengthFactor: 5, |
||||
|
_circleSpiralSwitchover: 9, |
||||
|
spiderfy: function () { |
||||
|
if (this._group._spiderfied !== this && !this._group._inZoomAnimation) { |
||||
|
var e, t = this.getAllChildMarkers(null, !0), i = this._group._map.latLngToLayerPoint(this._latlng); |
||||
|
this._group._unspiderfy(), e = (this._group._spiderfied = this)._group.options.spiderfyShapePositions ? this._group.options.spiderfyShapePositions(t.length, i) : t.length >= this._circleSpiralSwitchover ? this._generatePointsSpiral(t.length, i) : (i.y += 10, this._generatePointsCircle(t.length, i)), this._animationSpiderfy(t, e) |
||||
|
} |
||||
|
}, |
||||
|
unspiderfy: function (e) { |
||||
|
this._group._inZoomAnimation || (this._animationUnspiderfy(e), this._group._spiderfied = null) |
||||
|
}, |
||||
|
_generatePointsCircle: function (e, t) { |
||||
|
var i, r, |
||||
|
n = this._group.options.spiderfyDistanceMultiplier * this._circleFootSeparation * (2 + e) / this._2PI, |
||||
|
s = this._2PI / e, o = []; |
||||
|
for (n = Math.max(n, 35), o.length = e, i = 0; i < e; i++) r = this._circleStartAngle + i * s, o[i] = new L.Point(t.x + n * Math.cos(r), t.y + n * Math.sin(r))._round(); |
||||
|
return o |
||||
|
}, |
||||
|
_generatePointsSpiral: function (e, t) { |
||||
|
var i, r = this._group.options.spiderfyDistanceMultiplier, n = r * this._spiralLengthStart, |
||||
|
s = r * this._spiralFootSeparation, o = r * this._spiralLengthFactor * this._2PI, a = 0, h = []; |
||||
|
for (i = h.length = e; 0 <= i; i--) i < e && (h[i] = new L.Point(t.x + n * Math.cos(a), t.y + n * Math.sin(a))._round()), n += o / (a += s / n + 5e-4 * i); |
||||
|
return h |
||||
|
}, |
||||
|
_noanimationUnspiderfy: function () { |
||||
|
var e, t, i = this._group, r = i._map, n = i._featureGroup, s = this.getAllChildMarkers(null, !0); |
||||
|
for (i._ignoreMove = !0, this.setOpacity(1), t = s.length - 1; 0 <= t; t--) e = s[t], n.removeLayer(e), e._preSpiderfyLatlng && (e.setLatLng(e._preSpiderfyLatlng), delete e._preSpiderfyLatlng), e.setZIndexOffset && e.setZIndexOffset(0), e._spiderLeg && (r.removeLayer(e._spiderLeg), delete e._spiderLeg); |
||||
|
i.fire("unspiderfied", {cluster: this, markers: s}), i._ignoreMove = !1, i._spiderfied = null |
||||
|
} |
||||
|
}), L.MarkerClusterNonAnimated = L.MarkerCluster.extend({ |
||||
|
_animationSpiderfy: function (e, t) { |
||||
|
var i, r, n, s, o = this._group, a = o._map, h = o._featureGroup, |
||||
|
l = this._group.options.spiderLegPolylineOptions; |
||||
|
for (o._ignoreMove = !0, i = 0; i < e.length; i++) s = a.layerPointToLatLng(t[i]), r = e[i], n = new L.Polyline([this._latlng, s], l), a.addLayer(n), r._spiderLeg = n, r._preSpiderfyLatlng = r._latlng, r.setLatLng(s), r.setZIndexOffset && r.setZIndexOffset(1e6), h.addLayer(r); |
||||
|
this.setOpacity(.3), o._ignoreMove = !1, o.fire("spiderfied", {cluster: this, markers: e}) |
||||
|
}, _animationUnspiderfy: function () { |
||||
|
this._noanimationUnspiderfy() |
||||
|
} |
||||
|
}), L.MarkerCluster.include({ |
||||
|
_animationSpiderfy: function (e, t) { |
||||
|
var i, r, n, s, o, a, h = this, l = this._group, u = l._map, _ = l._featureGroup, d = this._latlng, |
||||
|
p = u.latLngToLayerPoint(d), c = L.Path.SVG, |
||||
|
f = L.extend({}, this._group.options.spiderLegPolylineOptions), m = f.opacity; |
||||
|
for (void 0 === m && (m = L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity), c ? (f.opacity = 0, f.className = (f.className || "") + " leaflet-cluster-spider-leg") : f.opacity = m, l._ignoreMove = !0, i = 0; i < e.length; i++) r = e[i], a = u.layerPointToLatLng(t[i]), n = new L.Polyline([d, a], f), u.addLayer(n), r._spiderLeg = n, c && (o = (s = n._path).getTotalLength() + .1, s.style.strokeDasharray = o, s.style.strokeDashoffset = o), r.setZIndexOffset && r.setZIndexOffset(1e6), r.clusterHide && r.clusterHide(), _.addLayer(r), r._setPos && r._setPos(p); |
||||
|
for (l._forceLayout(), l._animationStart(), i = e.length - 1; 0 <= i; i--) a = u.layerPointToLatLng(t[i]), (r = e[i])._preSpiderfyLatlng = r._latlng, r.setLatLng(a), r.clusterShow && r.clusterShow(), c && ((s = (n = r._spiderLeg)._path).style.strokeDashoffset = 0, n.setStyle({opacity: m})); |
||||
|
this.setOpacity(.3), l._ignoreMove = !1, setTimeout(function () { |
||||
|
l._animationEnd(), l.fire("spiderfied", {cluster: h, markers: e}) |
||||
|
}, 200) |
||||
|
}, _animationUnspiderfy: function (e) { |
||||
|
var t, i, r, n, s, o, a = this, h = this._group, l = h._map, u = h._featureGroup, |
||||
|
_ = e ? l._latLngToNewLayerPoint(this._latlng, e.zoom, e.center) : l.latLngToLayerPoint(this._latlng), |
||||
|
d = this.getAllChildMarkers(null, !0), p = L.Path.SVG; |
||||
|
for (h._ignoreMove = !0, h._animationStart(), this.setOpacity(1), i = d.length - 1; 0 <= i; i--) (t = d[i])._preSpiderfyLatlng && (t.closePopup(), t.setLatLng(t._preSpiderfyLatlng), delete t._preSpiderfyLatlng, o = !0, t._setPos && (t._setPos(_), o = !1), t.clusterHide && (t.clusterHide(), o = !1), o && u.removeLayer(t), p && (s = (n = (r = t._spiderLeg)._path).getTotalLength() + .1, n.style.strokeDashoffset = s, r.setStyle({opacity: 0}))); |
||||
|
h._ignoreMove = !1, setTimeout(function () { |
||||
|
var e = 0; |
||||
|
for (i = d.length - 1; 0 <= i; i--) (t = d[i])._spiderLeg && e++; |
||||
|
for (i = d.length - 1; 0 <= i; i--) (t = d[i])._spiderLeg && (t.clusterShow && t.clusterShow(), t.setZIndexOffset && t.setZIndexOffset(0), 1 < e && u.removeLayer(t), l.removeLayer(t._spiderLeg), delete t._spiderLeg); |
||||
|
h._animationEnd(), h.fire("unspiderfied", {cluster: a, markers: d}) |
||||
|
}, 200) |
||||
|
} |
||||
|
}), L.MarkerClusterGroup.include({ |
||||
|
_spiderfied: null, unspiderfy: function () { |
||||
|
this._unspiderfy.apply(this, arguments) |
||||
|
}, _spiderfierOnAdd: function () { |
||||
|
this._map.on("click", this._unspiderfyWrapper, this), this._map.options.zoomAnimation && this._map.on("zoomstart", this._unspiderfyZoomStart, this), this._map.on("zoomend", this._noanimationUnspiderfy, this), L.Browser.touch || this._map.getRenderer(this) |
||||
|
}, _spiderfierOnRemove: function () { |
||||
|
this._map.off("click", this._unspiderfyWrapper, this), this._map.off("zoomstart", this._unspiderfyZoomStart, this), this._map.off("zoomanim", this._unspiderfyZoomAnim, this), this._map.off("zoomend", this._noanimationUnspiderfy, this), this._noanimationUnspiderfy() |
||||
|
}, _unspiderfyZoomStart: function () { |
||||
|
this._map && this._map.on("zoomanim", this._unspiderfyZoomAnim, this) |
||||
|
}, _unspiderfyZoomAnim: function (e) { |
||||
|
L.DomUtil.hasClass(this._map._mapPane, "leaflet-touching") || (this._map.off("zoomanim", this._unspiderfyZoomAnim, this), this._unspiderfy(e)) |
||||
|
}, _unspiderfyWrapper: function () { |
||||
|
this._unspiderfy() |
||||
|
}, _unspiderfy: function (e) { |
||||
|
this._spiderfied && this._spiderfied.unspiderfy(e) |
||||
|
}, _noanimationUnspiderfy: function () { |
||||
|
this._spiderfied && this._spiderfied._noanimationUnspiderfy() |
||||
|
}, _unspiderfyLayer: function (e) { |
||||
|
e._spiderLeg && (this._featureGroup.removeLayer(e), e.clusterShow && e.clusterShow(), e.setZIndexOffset && e.setZIndexOffset(0), this._map.removeLayer(e._spiderLeg), delete e._spiderLeg) |
||||
|
} |
||||
|
}), L.MarkerClusterGroup.include({ |
||||
|
refreshClusters: function (e) { |
||||
|
return e ? e instanceof L.MarkerClusterGroup ? e = e._topClusterLevel.getAllChildMarkers() : e instanceof L.LayerGroup ? e = e._layers : e instanceof L.MarkerCluster ? e = e.getAllChildMarkers() : e instanceof L.Marker && (e = [e]) : e = this._topClusterLevel.getAllChildMarkers(), this._flagParentsIconsNeedUpdate(e), this._refreshClustersIcons(), this.options.singleMarkerMode && this._refreshSingleMarkerModeMarkers(e), this |
||||
|
}, _flagParentsIconsNeedUpdate: function (e) { |
||||
|
var t, i; |
||||
|
for (t in e) for (i = e[t].__parent; i;) i._iconNeedsUpdate = !0, i = i.__parent |
||||
|
}, _refreshSingleMarkerModeMarkers: function (e) { |
||||
|
var t, i; |
||||
|
for (t in e) i = e[t], this.hasLayer(i) && i.setIcon(this._overrideMarkerIcon(i)) |
||||
|
} |
||||
|
}), L.Marker.include({ |
||||
|
refreshIconOptions: function (e, t) { |
||||
|
var i = this.options.icon; |
||||
|
return L.setOptions(i, e), this.setIcon(i), t && this.__parent && this.__parent._group.refreshClusters(this), this |
||||
|
} |
||||
|
}), e.MarkerClusterGroup = t, e.MarkerCluster = i, Object.defineProperty(e, "__esModule", {value: !0}) |
||||
|
}); |
||||
|
//# sourceMappingURL=leaflet.markercluster.js.map
|
||||
@ -0,0 +1,911 @@ |
|||||
|
/*! |
||||
|
* Viewer.js v1.11.7 |
||||
|
* https://fengyuanchen.github.io/viewerjs
|
||||
|
* |
||||
|
* Copyright 2015-present Chen Fengyuan |
||||
|
* Released under the MIT license |
||||
|
* |
||||
|
* Date: 2024-11-24T04:32:19.116Z |
||||
|
*/ |
||||
|
((t, e) => { |
||||
|
"object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).Viewer = e() |
||||
|
})(this, function () { |
||||
|
function n(t, e) { |
||||
|
for (var i = 0; i < e.length; i++) { |
||||
|
var n = e[i]; |
||||
|
n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, r(n.key), n) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function s(e, t) { |
||||
|
var i, n = Object.keys(e); |
||||
|
return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter(function (t) { |
||||
|
return Object.getOwnPropertyDescriptor(e, t).enumerable |
||||
|
})), n.push.apply(n, i)), n |
||||
|
} |
||||
|
|
||||
|
function P(n) { |
||||
|
for (var t = 1; t < arguments.length; t++) { |
||||
|
var o = null != arguments[t] ? arguments[t] : {}; |
||||
|
t % 2 ? s(Object(o), !0).forEach(function (t) { |
||||
|
var e, i; |
||||
|
e = n, i = o[t = t], (t = r(t)) in e ? Object.defineProperty(e, t, { |
||||
|
value: i, |
||||
|
enumerable: !0, |
||||
|
configurable: !0, |
||||
|
writable: !0 |
||||
|
}) : e[t] = i |
||||
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(o)) : s(Object(o)).forEach(function (t) { |
||||
|
Object.defineProperty(n, t, Object.getOwnPropertyDescriptor(o, t)) |
||||
|
}) |
||||
|
} |
||||
|
return n |
||||
|
} |
||||
|
|
||||
|
function r(t) { |
||||
|
t = ((t, e) => { |
||||
|
if ("object" != typeof t || !t) return t; |
||||
|
var i = t[Symbol.toPrimitive]; |
||||
|
if (void 0 === i) return ("string" === e ? String : Number)(t); |
||||
|
if ("object" != typeof (i = i.call(t, e || "default"))) return i; |
||||
|
throw new TypeError("@@toPrimitive must return a primitive value.") |
||||
|
})(t, "string"); |
||||
|
return "symbol" == typeof t ? t : t + "" |
||||
|
} |
||||
|
|
||||
|
function l(t) { |
||||
|
return (l = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { |
||||
|
return typeof t |
||||
|
} : function (t) { |
||||
|
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t |
||||
|
})(t) |
||||
|
} |
||||
|
|
||||
|
var W = { |
||||
|
backdrop: !0, |
||||
|
button: !0, |
||||
|
navbar: !0, |
||||
|
title: !0, |
||||
|
toolbar: !0, |
||||
|
className: "", |
||||
|
container: "body", |
||||
|
filter: null, |
||||
|
fullscreen: !0, |
||||
|
inheritedAttributes: ["crossOrigin", "decoding", "isMap", "loading", "referrerPolicy", "sizes", "srcset", "useMap"], |
||||
|
initialCoverage: .9, |
||||
|
initialViewIndex: 0, |
||||
|
inline: !1, |
||||
|
interval: 5e3, |
||||
|
keyboard: !0, |
||||
|
focus: !0, |
||||
|
loading: !0, |
||||
|
loop: !0, |
||||
|
minWidth: 200, |
||||
|
minHeight: 100, |
||||
|
movable: !0, |
||||
|
rotatable: !0, |
||||
|
scalable: !0, |
||||
|
zoomable: !0, |
||||
|
zoomOnTouch: !0, |
||||
|
zoomOnWheel: !0, |
||||
|
slideOnTouch: !0, |
||||
|
toggleOnDblclick: !0, |
||||
|
tooltip: !0, |
||||
|
transition: !0, |
||||
|
zIndex: 2015, |
||||
|
zIndexInline: 0, |
||||
|
zoomRatio: .1, |
||||
|
minZoomRatio: .01, |
||||
|
maxZoomRatio: 100, |
||||
|
url: "src", |
||||
|
ready: null, |
||||
|
show: null, |
||||
|
shown: null, |
||||
|
hide: null, |
||||
|
hidden: null, |
||||
|
view: null, |
||||
|
viewed: null, |
||||
|
move: null, |
||||
|
moved: null, |
||||
|
rotate: null, |
||||
|
rotated: null, |
||||
|
scale: null, |
||||
|
scaled: null, |
||||
|
zoom: null, |
||||
|
zoomed: null, |
||||
|
play: null, |
||||
|
stop: null |
||||
|
}, t = "undefined" != typeof window && void 0 !== window.document, e = t ? window : {}, |
||||
|
a = !(!t || !e.document.documentElement) && "ontouchstart" in e.document.documentElement, |
||||
|
i = t && "PointerEvent" in e, g = "viewer", h = "move", j = "switch", c = "zoom", f = "".concat(g, "-active"), |
||||
|
H = "".concat(g, "-close"), B = "".concat(g, "-fade"), V = "".concat(g, "-fixed"), |
||||
|
U = "".concat(g, "-fullscreen"), K = "".concat(g, "-fullscreen-exit"), v = "".concat(g, "-hide"), |
||||
|
Z = "".concat(g, "-hide-md-down"), $ = "".concat(g, "-hide-sm-down"), _ = "".concat(g, "-hide-xs-down"), |
||||
|
u = "".concat(g, "-in"), p = "".concat(g, "-invisible"), b = "".concat(g, "-loading"), |
||||
|
G = "".concat(g, "-move"), J = "".concat(g, "-open"), d = "".concat(g, "-show"), |
||||
|
m = "".concat(g, "-transition"), w = "click", Q = "dblclick", tt = "dragstart", et = "focusin", it = "keydown", |
||||
|
y = "load", x = "error", nt = i ? "pointerdown" : a ? "touchstart" : "mousedown", |
||||
|
ot = i ? "pointermove" : a ? "touchmove" : "mousemove", |
||||
|
st = i ? "pointerup pointercancel" : a ? "touchend touchcancel" : "mouseup", at = "resize", k = "transitionend", |
||||
|
rt = "wheel", z = "viewed", lt = "rotated", ht = "".concat(g, "Action"), ct = /\s\s*/, |
||||
|
ut = ["zoom-in", "zoom-out", "one-to-one", "reset", "prev", "play", "next", "rotate-left", "rotate-right", "flip-horizontal", "flip-vertical"]; |
||||
|
|
||||
|
function T(t) { |
||||
|
return "string" == typeof t |
||||
|
} |
||||
|
|
||||
|
var dt = Number.isNaN || e.isNaN; |
||||
|
|
||||
|
function E(t) { |
||||
|
return "number" == typeof t && !dt(t) |
||||
|
} |
||||
|
|
||||
|
function D(t) { |
||||
|
return void 0 === t |
||||
|
} |
||||
|
|
||||
|
function o(t) { |
||||
|
return "object" === l(t) && null !== t |
||||
|
} |
||||
|
|
||||
|
var mt = Object.prototype.hasOwnProperty; |
||||
|
|
||||
|
function S(t) { |
||||
|
if (!o(t)) return !1; |
||||
|
try { |
||||
|
var e = t.constructor, i = e.prototype; |
||||
|
return e && i && mt.call(i, "isPrototypeOf") |
||||
|
} catch (t) { |
||||
|
return !1 |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function I(t) { |
||||
|
return "function" == typeof t |
||||
|
} |
||||
|
|
||||
|
function A(e, i) { |
||||
|
if (e && I(i)) if (Array.isArray(e) || E(e.length)) for (var t = e.length, n = 0; n < t && !1 !== i.call(e, e[n], n, e); n += 1) ; else o(e) && Object.keys(e).forEach(function (t) { |
||||
|
i.call(e, e[t], t, e) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
var O = Object.assign || function (i) { |
||||
|
for (var t = arguments.length, e = new Array(1 < t ? t - 1 : 0), n = 1; n < t; n++) e[n - 1] = arguments[n]; |
||||
|
return o(i) && 0 < e.length && e.forEach(function (e) { |
||||
|
o(e) && Object.keys(e).forEach(function (t) { |
||||
|
i[t] = e[t] |
||||
|
}) |
||||
|
}), i |
||||
|
}, gt = /^(?:width|height|left|top|marginLeft|marginTop)$/; |
||||
|
|
||||
|
function C(t, e) { |
||||
|
var i = t.style; |
||||
|
A(e, function (t, e) { |
||||
|
gt.test(e) && E(t) && (t += "px"), i[e] = t |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
function L(t, e) { |
||||
|
return t && e && (t.classList ? t.classList.contains(e) : -1 < t.className.indexOf(e)) |
||||
|
} |
||||
|
|
||||
|
function R(t, e) { |
||||
|
var i; |
||||
|
t && e && (E(t.length) ? A(t, function (t) { |
||||
|
R(t, e) |
||||
|
}) : t.classList ? t.classList.add(e) : (i = t.className.trim()) ? i.indexOf(e) < 0 && (t.className = "".concat(i, " ").concat(e)) : t.className = e) |
||||
|
} |
||||
|
|
||||
|
function M(t, e) { |
||||
|
t && e && (E(t.length) ? A(t, function (t) { |
||||
|
M(t, e) |
||||
|
}) : t.classList ? t.classList.remove(e) : 0 <= t.className.indexOf(e) && (t.className = t.className.replace(e, ""))) |
||||
|
} |
||||
|
|
||||
|
function F(t, e, i) { |
||||
|
e && (E(t.length) ? A(t, function (t) { |
||||
|
F(t, e, i) |
||||
|
}) : (i ? R : M)(t, e)) |
||||
|
} |
||||
|
|
||||
|
var ft = /([a-z\d])([A-Z])/g; |
||||
|
|
||||
|
function vt(t) { |
||||
|
return t.replace(ft, "$1-$2").toLowerCase() |
||||
|
} |
||||
|
|
||||
|
function N(t, e) { |
||||
|
return o(t[e]) ? t[e] : t.dataset ? t.dataset[e] : t.getAttribute("data-".concat(vt(e))) |
||||
|
} |
||||
|
|
||||
|
function pt(t, e, i) { |
||||
|
o(i) ? t[e] = i : t.dataset ? t.dataset[e] = i : t.setAttribute("data-".concat(vt(e)), i) |
||||
|
} |
||||
|
|
||||
|
wt = !1, t && (bt = !1, i = function () { |
||||
|
}, t = Object.defineProperty({}, "once", { |
||||
|
get: function () { |
||||
|
return wt = !0, bt |
||||
|
}, set: function (t) { |
||||
|
bt = t |
||||
|
} |
||||
|
}), e.addEventListener("test", i, t), e.removeEventListener("test", i, t)); |
||||
|
var bt, wt, yt = wt; |
||||
|
|
||||
|
function Y(i, t, n, e) { |
||||
|
var o = 3 < arguments.length && void 0 !== e ? e : {}, s = n; |
||||
|
t.trim().split(ct).forEach(function (t) { |
||||
|
var e; |
||||
|
yt || (e = i.listeners) && e[t] && e[t][n] && (s = e[t][n], delete e[t][n], 0 === Object.keys(e[t]).length && delete e[t], 0 === Object.keys(e).length) && delete i.listeners, i.removeEventListener(t, s, o) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
function X(s, t, a, e) { |
||||
|
var r = 3 < arguments.length && void 0 !== e ? e : {}, l = a; |
||||
|
t.trim().split(ct).forEach(function (n) { |
||||
|
var t, o; |
||||
|
r.once && !yt && (t = s.listeners, l = function () { |
||||
|
delete o[n][a], s.removeEventListener(n, l, r); |
||||
|
for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i]; |
||||
|
a.apply(s, e) |
||||
|
}, (o = void 0 === t ? {} : t)[n] || (o[n] = {}), o[n][a] && s.removeEventListener(n, o[n][a], r), o[n][a] = l, s.listeners = o), s.addEventListener(n, l, r) |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
function q(t, e, i, n) { |
||||
|
var o; |
||||
|
return I(Event) && I(CustomEvent) ? o = new CustomEvent(e, P({ |
||||
|
bubbles: !0, |
||||
|
cancelable: !0, |
||||
|
detail: i |
||||
|
}, n)) : (o = document.createEvent("CustomEvent")).initCustomEvent(e, !0, !0, i), t.dispatchEvent(o) |
||||
|
} |
||||
|
|
||||
|
function xt(t) { |
||||
|
var e = t.rotate, i = t.scaleX, n = t.scaleY, o = t.translateX, t = t.translateY, s = [], |
||||
|
o = (E(o) && 0 !== o && s.push("translateX(".concat(o, "px)")), E(t) && 0 !== t && s.push("translateY(".concat(t, "px)")), E(e) && 0 !== e && s.push("rotate(".concat(e, "deg)")), E(i) && 1 !== i && s.push("scaleX(".concat(i, ")")), E(n) && 1 !== n && s.push("scaleY(".concat(n, ")")), s.length ? s.join(" ") : "none"); |
||||
|
return {WebkitTransform: o, msTransform: o, transform: o} |
||||
|
} |
||||
|
|
||||
|
var kt = e.navigator && /Version\/\d+(\.\d+)+?\s+Safari/i.test(e.navigator.userAgent); |
||||
|
|
||||
|
function zt(i, t, e) { |
||||
|
var n, o = document.createElement("img"); |
||||
|
return i.naturalWidth && !kt ? e(i.naturalWidth, i.naturalHeight) : (n = document.body || document.documentElement, o.onload = function () { |
||||
|
e(o.width, o.height), kt || n.removeChild(o) |
||||
|
}, A(t.inheritedAttributes, function (t) { |
||||
|
var e = i.getAttribute(t); |
||||
|
null !== e && o.setAttribute(t, e) |
||||
|
}), o.src = i.src, kt || (o.style.cssText = "left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;", n.appendChild(o))), o |
||||
|
} |
||||
|
|
||||
|
function Tt(t) { |
||||
|
switch (t) { |
||||
|
case 2: |
||||
|
return _; |
||||
|
case 3: |
||||
|
return $; |
||||
|
case 4: |
||||
|
return Z; |
||||
|
default: |
||||
|
return "" |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function Et(t, e) { |
||||
|
var i = t.pageX, t = t.pageY, n = {endX: i, endY: t}; |
||||
|
return e ? n : P({timeStamp: Date.now(), startX: i, startY: t}, n) |
||||
|
} |
||||
|
|
||||
|
var Dt, i = { |
||||
|
render: function () { |
||||
|
this.initContainer(), this.initViewer(), this.initList(), this.renderViewer() |
||||
|
}, initBody: function () { |
||||
|
var t = this.element.ownerDocument, e = t.body || t.documentElement; |
||||
|
this.body = e, this.scrollbarWidth = window.innerWidth - t.documentElement.clientWidth, this.initialBodyPaddingRight = e.style.paddingRight, this.initialBodyComputedPaddingRight = window.getComputedStyle(e).paddingRight |
||||
|
}, initContainer: function () { |
||||
|
this.containerData = {width: window.innerWidth, height: window.innerHeight} |
||||
|
}, initViewer: function () { |
||||
|
var t, e = this.options, i = this.parent; |
||||
|
e.inline && (t = { |
||||
|
width: Math.max(i.offsetWidth, e.minWidth), |
||||
|
height: Math.max(i.offsetHeight, e.minHeight) |
||||
|
}, this.parentData = t), !this.fulled && t || (t = this.containerData), this.viewerData = O({}, t) |
||||
|
}, renderViewer: function () { |
||||
|
this.options.inline && !this.fulled && C(this.viewer, this.viewerData) |
||||
|
}, initList: function () { |
||||
|
var r = this, t = this.element, l = this.options, h = this.list, c = []; |
||||
|
h.innerHTML = "", A(this.images, function (i, t) { |
||||
|
var e, n, o = i.src, |
||||
|
s = i.alt || (T(s = o) ? decodeURIComponent(s.replace(/^.*\//, "").replace(/[?&#].*$/, "")) : ""), |
||||
|
a = r.getImageURL(i); |
||||
|
(o || a) && (e = document.createElement("li"), n = document.createElement("img"), A(l.inheritedAttributes, function (t) { |
||||
|
var e = i.getAttribute(t); |
||||
|
null !== e && n.setAttribute(t, e) |
||||
|
}), l.navbar && (n.src = o || a), n.alt = s, n.setAttribute("data-original-url", a || o), e.setAttribute("data-index", t), e.setAttribute("data-viewer-action", "view"), e.setAttribute("role", "button"), l.keyboard && e.setAttribute("tabindex", 0), e.appendChild(n), h.appendChild(e), c.push(e)) |
||||
|
}), A(this.items = c, function (e) { |
||||
|
var t, i, n = e.firstElementChild; |
||||
|
pt(n, "filled", !0), l.loading && R(e, b), X(n, y, t = function (t) { |
||||
|
Y(n, x, i), l.loading && M(e, b), r.loadImage(t) |
||||
|
}, {once: !0}), X(n, x, i = function () { |
||||
|
Y(n, y, t), l.loading && M(e, b) |
||||
|
}, {once: !0}) |
||||
|
}), l.transition && X(t, z, function () { |
||||
|
R(h, m) |
||||
|
}, {once: !0}) |
||||
|
}, renderList: function () { |
||||
|
var t, e, i = this.index, n = this.items[i]; |
||||
|
n && (t = n.nextElementSibling, t = parseInt(window.getComputedStyle(t || n).marginLeft, 10), n = n.offsetWidth, C(this.list, O({width: (e = n + t) * this.length - t}, xt({translateX: (this.viewerData.width - n) / 2 - e * i})))) |
||||
|
}, resetList: function () { |
||||
|
var t = this.list; |
||||
|
t.innerHTML = "", M(t, m), C(t, xt({translateX: 0})) |
||||
|
}, initImage: function (r) { |
||||
|
var t, l = this, h = this.options, e = this.image, i = this.viewerData, n = this.footer.offsetHeight, |
||||
|
c = i.width, u = Math.max(i.height - n, n), d = this.imageData || {}; |
||||
|
this.imageInitializing = { |
||||
|
abort: function () { |
||||
|
t.onload = null |
||||
|
} |
||||
|
}, t = zt(e, h, function (t, e) { |
||||
|
var i = t / e, n = Math.max(0, Math.min(1, h.initialCoverage)), o = c, s = u, |
||||
|
n = (l.imageInitializing = !1, c < u * i ? s = c / i : o = u * i, n = E(n) ? n : .9, o = Math.min(o * n, t), s = Math.min(s * n, e), (c - o) / 2), |
||||
|
a = (u - s) / 2, n = { |
||||
|
left: n, |
||||
|
top: a, |
||||
|
x: n, |
||||
|
y: a, |
||||
|
width: o, |
||||
|
height: s, |
||||
|
oldRatio: 1, |
||||
|
ratio: o / t, |
||||
|
aspectRatio: i, |
||||
|
naturalWidth: t, |
||||
|
naturalHeight: e |
||||
|
}, a = O({}, n); |
||||
|
h.rotatable && (n.rotate = d.rotate || 0, a.rotate = 0), h.scalable && (n.scaleX = d.scaleX || 1, n.scaleY = d.scaleY || 1, a.scaleX = 1, a.scaleY = 1), l.imageData = n, l.initialImageData = a, r && r() |
||||
|
}) |
||||
|
}, renderImage: function (t) { |
||||
|
var e, i = this, n = this.image, o = this.imageData; |
||||
|
C(n, O({ |
||||
|
width: o.width, |
||||
|
height: o.height, |
||||
|
marginLeft: o.x, |
||||
|
marginTop: o.y |
||||
|
}, xt(o))), t && ((this.viewing || this.moving || this.rotating || this.scaling || this.zooming) && this.options.transition && L(n, m) ? (e = function () { |
||||
|
i.imageRendering = !1, t() |
||||
|
}, this.imageRendering = { |
||||
|
abort: function () { |
||||
|
Y(n, k, e) |
||||
|
} |
||||
|
}, X(n, k, e, {once: !0})) : t()) |
||||
|
}, resetImage: function () { |
||||
|
var t = this.image; |
||||
|
t && (this.viewing && this.viewing.abort(), t.parentNode.removeChild(t), this.image = null, this.title.innerHTML = "") |
||||
|
} |
||||
|
}, t = { |
||||
|
bind: function () { |
||||
|
var t = this.options, e = this.viewer, i = this.canvas, n = this.element.ownerDocument; |
||||
|
X(e, w, this.onClick = this.click.bind(this)), X(e, tt, this.onDragStart = this.dragstart.bind(this)), X(i, nt, this.onPointerDown = this.pointerdown.bind(this)), X(n, ot, this.onPointerMove = this.pointermove.bind(this)), X(n, st, this.onPointerUp = this.pointerup.bind(this)), X(n, it, this.onKeyDown = this.keydown.bind(this)), X(window, at, this.onResize = this.resize.bind(this)), t.zoomable && t.zoomOnWheel && X(e, rt, this.onWheel = this.wheel.bind(this), { |
||||
|
passive: !1, |
||||
|
capture: !0 |
||||
|
}), t.toggleOnDblclick && X(i, Q, this.onDblclick = this.dblclick.bind(this)) |
||||
|
}, unbind: function () { |
||||
|
var t = this.options, e = this.viewer, i = this.canvas, n = this.element.ownerDocument; |
||||
|
Y(e, w, this.onClick), Y(e, tt, this.onDragStart), Y(i, nt, this.onPointerDown), Y(n, ot, this.onPointerMove), Y(n, st, this.onPointerUp), Y(n, it, this.onKeyDown), Y(window, at, this.onResize), t.zoomable && t.zoomOnWheel && Y(e, rt, this.onWheel, { |
||||
|
passive: !1, |
||||
|
capture: !0 |
||||
|
}), t.toggleOnDblclick && Y(i, Q, this.onDblclick) |
||||
|
} |
||||
|
}, St = { |
||||
|
click: function (t) { |
||||
|
var e = this.options, i = this.imageData, n = t.target, o = N(n, ht); |
||||
|
switch (o || "img" !== n.localName || "li" !== n.parentElement.localName || (o = N(n = n.parentElement, ht)), a && t.isTrusted && n === this.canvas && clearTimeout(this.clickCanvasTimeout), o) { |
||||
|
case"mix": |
||||
|
this.played ? this.stop() : e.inline ? this.fulled ? this.exit() : this.full() : this.hide(); |
||||
|
break; |
||||
|
case"hide": |
||||
|
this.pointerMoved || this.hide(); |
||||
|
break; |
||||
|
case"view": |
||||
|
this.view(N(n, "index")); |
||||
|
break; |
||||
|
case"zoom-in": |
||||
|
this.zoom(.1, !0); |
||||
|
break; |
||||
|
case"zoom-out": |
||||
|
this.zoom(-.1, !0); |
||||
|
break; |
||||
|
case"one-to-one": |
||||
|
this.toggle(); |
||||
|
break; |
||||
|
case"reset": |
||||
|
this.reset(); |
||||
|
break; |
||||
|
case"prev": |
||||
|
this.prev(e.loop); |
||||
|
break; |
||||
|
case"play": |
||||
|
this.play(e.fullscreen); |
||||
|
break; |
||||
|
case"next": |
||||
|
this.next(e.loop); |
||||
|
break; |
||||
|
case"rotate-left": |
||||
|
this.rotate(-90); |
||||
|
break; |
||||
|
case"rotate-right": |
||||
|
this.rotate(90); |
||||
|
break; |
||||
|
case"flip-horizontal": |
||||
|
this.scaleX(-i.scaleX || -1); |
||||
|
break; |
||||
|
case"flip-vertical": |
||||
|
this.scaleY(-i.scaleY || -1); |
||||
|
break; |
||||
|
default: |
||||
|
this.played && this.stop() |
||||
|
} |
||||
|
}, dblclick: function (t) { |
||||
|
t.preventDefault(), this.viewed && t.target === this.image && (a && t.isTrusted && clearTimeout(this.doubleClickImageTimeout), this.toggle(t.isTrusted ? t : t.detail && t.detail.originalEvent)) |
||||
|
}, load: function () { |
||||
|
var t = this, e = (this.timeout && (clearTimeout(this.timeout), this.timeout = !1), this.element), |
||||
|
i = this.options, n = this.image, o = this.index, s = this.viewerData; |
||||
|
M(n, p), i.loading && M(this.canvas, b), n.style.cssText = "height:0;" + "margin-left:".concat(s.width / 2, "px;") + "margin-top:".concat(s.height / 2, "px;") + "max-width:none!important;position:relative;width:0;", this.initImage(function () { |
||||
|
F(n, G, i.movable), F(n, m, i.transition), t.renderImage(function () { |
||||
|
t.viewed = !0, t.viewing = !1, I(i.viewed) && X(e, z, i.viewed, {once: !0}), q(e, z, { |
||||
|
originalImage: t.images[o], |
||||
|
index: o, |
||||
|
image: n |
||||
|
}, {cancelable: !1}) |
||||
|
}) |
||||
|
}) |
||||
|
}, loadImage: function (t) { |
||||
|
var n = t.target, t = n.parentNode, o = t.offsetWidth || 30, s = t.offsetHeight || 50, a = !!N(n, "filled"); |
||||
|
zt(n, this.options, function (t, e) { |
||||
|
var t = t / e, e = o, i = s; |
||||
|
o < s * t ? a ? e = s * t : i = o / t : a ? i = o / t : e = s * t, C(n, O({ |
||||
|
width: e, |
||||
|
height: i |
||||
|
}, xt({translateX: (o - e) / 2, translateY: (s - i) / 2}))) |
||||
|
}) |
||||
|
}, keydown: function (t) { |
||||
|
var e = this.options; |
||||
|
if (e.keyboard) { |
||||
|
var i = t.keyCode || t.which || t.charCode; |
||||
|
if (13 === i && this.viewer.contains(t.target) && this.click(t), this.fulled) switch (i) { |
||||
|
case 27: |
||||
|
this.played ? this.stop() : e.inline ? this.fulled && this.exit() : this.hide(); |
||||
|
break; |
||||
|
case 32: |
||||
|
this.played && this.stop(); |
||||
|
break; |
||||
|
case 37: |
||||
|
this.played && this.playing ? this.playing.prev() : this.prev(e.loop); |
||||
|
break; |
||||
|
case 38: |
||||
|
t.preventDefault(), this.zoom(e.zoomRatio, !0); |
||||
|
break; |
||||
|
case 39: |
||||
|
this.played && this.playing ? this.playing.next() : this.next(e.loop); |
||||
|
break; |
||||
|
case 40: |
||||
|
t.preventDefault(), this.zoom(-e.zoomRatio, !0); |
||||
|
break; |
||||
|
case 48: |
||||
|
case 49: |
||||
|
t.ctrlKey && (t.preventDefault(), this.toggle()) |
||||
|
} |
||||
|
} |
||||
|
}, dragstart: function (t) { |
||||
|
"img" === t.target.localName && t.preventDefault() |
||||
|
}, pointerdown: function (t) { |
||||
|
var e = this.options, i = this.pointers, n = t.buttons, o = t.button; |
||||
|
this.pointerMoved = !1, !this.viewed || this.showing || this.viewing || this.hiding || ("mousedown" === t.type || "pointerdown" === t.type && "mouse" === t.pointerType) && (E(n) && 1 !== n || E(o) && 0 !== o || t.ctrlKey) || (t.preventDefault(), t.changedTouches ? A(t.changedTouches, function (t) { |
||||
|
i[t.identifier] = Et(t) |
||||
|
}) : i[t.pointerId || 0] = Et(t), n = !!e.movable && h, e.zoomOnTouch && e.zoomable && 1 < Object.keys(i).length ? n = c : e.slideOnTouch && ("touch" === t.pointerType || "touchstart" === t.type) && this.isSwitchable() && (n = j), !e.transition || n !== h && n !== c || M(this.image, m), this.action = n) |
||||
|
}, pointermove: function (t) { |
||||
|
var e = this.pointers, i = this.action; |
||||
|
this.viewed && i && (t.preventDefault(), t.changedTouches ? A(t.changedTouches, function (t) { |
||||
|
O(e[t.identifier] || {}, Et(t, !0)) |
||||
|
}) : O(e[t.pointerId || 0] || {}, Et(t, !0)), this.change(t)) |
||||
|
}, pointerup: function (t) { |
||||
|
var e, i = this, n = this.options, o = this.action, s = this.pointers; |
||||
|
t.changedTouches ? A(t.changedTouches, function (t) { |
||||
|
e = s[t.identifier], delete s[t.identifier] |
||||
|
}) : (e = s[t.pointerId || 0], delete s[t.pointerId || 0]), o && (t.preventDefault(), !n.transition || o !== h && o !== c || R(this.image, m), this.action = !1, a) && o !== c && e && Date.now() - e.timeStamp < 500 && (clearTimeout(this.clickCanvasTimeout), clearTimeout(this.doubleClickImageTimeout), n.toggleOnDblclick && this.viewed && t.target === this.image ? this.imageClicked ? (this.imageClicked = !1, this.doubleClickImageTimeout = setTimeout(function () { |
||||
|
q(i.image, Q, {originalEvent: t}) |
||||
|
}, 50)) : (this.imageClicked = !0, this.doubleClickImageTimeout = setTimeout(function () { |
||||
|
i.imageClicked = !1 |
||||
|
}, 500)) : (this.imageClicked = !1, n.backdrop && "static" !== n.backdrop && t.target === this.canvas && (this.clickCanvasTimeout = setTimeout(function () { |
||||
|
q(i.canvas, w, {originalEvent: t}) |
||||
|
}, 50)))) |
||||
|
}, resize: function () { |
||||
|
var e = this; |
||||
|
this.isShown && !this.hiding && (this.fulled && (this.close(), this.initBody(), this.open()), this.initContainer(), this.initViewer(), this.renderViewer(), this.renderList(), this.viewed && this.initImage(function () { |
||||
|
e.renderImage() |
||||
|
}), this.played) && (this.options.fullscreen && this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement) ? this.stop() : A(this.player.getElementsByTagName("img"), function (t) { |
||||
|
X(t, y, e.loadImage.bind(e), {once: !0}), q(t, y) |
||||
|
})) |
||||
|
}, wheel: function (t) { |
||||
|
var e, i, n = this; |
||||
|
this.viewed && (t.preventDefault(), this.wheeling || (this.wheeling = !0, setTimeout(function () { |
||||
|
n.wheeling = !1 |
||||
|
}, 50), e = Number(this.options.zoomRatio) || .1, i = 1, t.deltaY ? i = 0 < t.deltaY ? 1 : -1 : t.wheelDelta ? i = -t.wheelDelta / 120 : t.detail && (i = 0 < t.detail ? 1 : -1), this.zoom(-i * e, !0, null, t))) |
||||
|
} |
||||
|
}, It = { |
||||
|
show: function () { |
||||
|
var t, e, i = 0 < arguments.length && void 0 !== arguments[0] && arguments[0], n = this.element, |
||||
|
o = this.options; |
||||
|
return o.inline || this.showing || this.isShown || this.showing || (this.ready ? (I(o.show) && X(n, "show", o.show, {once: !0}), !1 !== q(n, "show") && this.ready && (this.hiding && this.transitioning.abort(), this.showing = !0, this.open(), M(t = this.viewer, v), t.setAttribute("role", "dialog"), t.setAttribute("aria-labelledby", this.title.id), t.setAttribute("aria-modal", !0), t.removeAttribute("aria-hidden"), o.transition && !i ? (e = this.shown.bind(this), this.transitioning = { |
||||
|
abort: function () { |
||||
|
Y(t, k, e), M(t, u) |
||||
|
} |
||||
|
}, R(t, m), t.initialOffsetWidth = t.offsetWidth, X(t, k, e, {once: !0}), R(t, u)) : (R(t, u), this.shown()))) : (this.build(), this.ready && this.show(i))), this |
||||
|
}, hide: function () { |
||||
|
var e, t, i, n, o, s = this, a = 0 < arguments.length && void 0 !== arguments[0] && arguments[0], |
||||
|
r = this.element, l = this.options; |
||||
|
return l.inline || this.hiding || !this.isShown && !this.showing || (I(l.hide) && X(r, "hide", l.hide, {once: !0}), !1 !== q(r, "hide") && (this.showing && this.transitioning.abort(), this.hiding = !0, this.played ? this.stop() : this.viewing && this.viewing.abort(), e = this.viewer, t = this.image, i = function () { |
||||
|
M(e, u), s.hidden() |
||||
|
}, l.transition && !a ? (n = function (t) { |
||||
|
t && t.target === e && (Y(e, k, n), s.hidden()) |
||||
|
}, o = function () { |
||||
|
L(e, m) ? (X(e, k, n), M(e, u)) : i() |
||||
|
}, this.transitioning = { |
||||
|
abort: function () { |
||||
|
s.viewed && L(t, m) ? Y(t, k, o) : L(e, m) && Y(e, k, n) |
||||
|
} |
||||
|
}, this.viewed && L(t, m) ? (X(t, k, o, {once: !0}), this.zoomTo(0, !1, null, null, !0)) : o()) : i())), this |
||||
|
}, view: function () { |
||||
|
var i = this, |
||||
|
t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : this.options.initialViewIndex, |
||||
|
t = Number(t) || 0; |
||||
|
if (!(this.hiding || this.played || t < 0 || t >= this.length || this.viewed && t === this.index)) { |
||||
|
if (!this.isShown) return this.index = t, this.show(); |
||||
|
this.viewing && this.viewing.abort(); |
||||
|
var e, n, o, s = this.element, a = this.options, r = this.title, l = this.canvas, h = this.items[t], |
||||
|
c = h.querySelector("img"), u = N(c, "originalUrl"), d = c.getAttribute("alt"), |
||||
|
m = document.createElement("img"); |
||||
|
A(a.inheritedAttributes, function (t) { |
||||
|
var e = c.getAttribute(t); |
||||
|
null !== e && m.setAttribute(t, e) |
||||
|
}), m.src = u, m.alt = d, I(a.view) && X(s, "view", a.view, {once: !0}), !1 === q(s, "view", { |
||||
|
originalImage: this.images[t], |
||||
|
index: t, |
||||
|
image: m |
||||
|
}) || !this.isShown || this.hiding || this.played || ((u = this.items[this.index]) && (M(u, f), u.removeAttribute("aria-selected")), R(h, f), h.setAttribute("aria-selected", !0), a.focus && h.focus(), this.image = m, this.viewed = !1, this.index = t, this.imageData = {}, R(m, p), a.loading && R(l, b), l.innerHTML = "", l.appendChild(m), this.renderList(), r.innerHTML = "", X(s, z, e = function () { |
||||
|
var t = i.imageData, e = Array.isArray(a.title) ? a.title[1] : a.title; |
||||
|
r.innerHTML = T(e = I(e) ? e.call(i, m, t) : "".concat(d, " (").concat(t.naturalWidth, " × ").concat(t.naturalHeight, ")")) ? e.replace(/&(?!amp;|quot;|#39;|lt;|gt;)/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">") : e |
||||
|
}, {once: !0}), this.viewing = { |
||||
|
abort: function () { |
||||
|
Y(s, z, e), m.complete ? i.imageRendering ? i.imageRendering.abort() : i.imageInitializing && i.imageInitializing.abort() : (m.src = "", Y(m, y, n), i.timeout && clearTimeout(i.timeout)) |
||||
|
} |
||||
|
}, m.complete ? this.load() : (X(m, y, n = function () { |
||||
|
Y(m, x, o), i.load() |
||||
|
}, {once: !0}), X(m, x, o = function () { |
||||
|
Y(m, y, n), i.timeout && (clearTimeout(i.timeout), i.timeout = !1), M(m, p), a.loading && M(i.canvas, b) |
||||
|
}, {once: !0}), this.timeout && clearTimeout(this.timeout), this.timeout = setTimeout(function () { |
||||
|
M(m, p), i.timeout = !1 |
||||
|
}, 1e3))) |
||||
|
} |
||||
|
return this |
||||
|
}, prev: function () { |
||||
|
var t = this.index - 1; |
||||
|
return t < 0 && (t = 0 < arguments.length && void 0 !== arguments[0] && arguments[0] ? this.length - 1 : 0), this.view(t), this |
||||
|
}, next: function () { |
||||
|
var t = this.length - 1, e = this.index + 1; |
||||
|
return this.view(e = t < e ? 0 < arguments.length && void 0 !== arguments[0] && arguments[0] ? 0 : t : e), this |
||||
|
}, move: function (t) { |
||||
|
var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : t, i = this.imageData; |
||||
|
return this.moveTo(D(t) ? t : i.x + Number(t), D(e) ? e : i.y + Number(e)), this |
||||
|
}, moveTo: function (t) { |
||||
|
var e = this, i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : t, |
||||
|
n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null, o = this.element, |
||||
|
s = this.options, a = this.imageData; |
||||
|
if (t = Number(t), i = Number(i), this.viewed && !this.played && s.movable) { |
||||
|
var r = a.x, l = a.y, h = !1; |
||||
|
if (E(t) ? h = !0 : t = r, E(i) ? h = !0 : i = l, h) { |
||||
|
if (I(s.move) && X(o, "move", s.move, {once: !0}), !1 === q(o, "move", { |
||||
|
x: t, |
||||
|
y: i, |
||||
|
oldX: r, |
||||
|
oldY: l, |
||||
|
originalEvent: n |
||||
|
})) return this; |
||||
|
a.x = t, a.y = i, a.left = t, a.top = i, this.moving = !0, this.renderImage(function () { |
||||
|
e.moving = !1, I(s.moved) && X(o, "moved", s.moved, {once: !0}), q(o, "moved", { |
||||
|
x: t, |
||||
|
y: i, |
||||
|
oldX: r, |
||||
|
oldY: l, |
||||
|
originalEvent: n |
||||
|
}, {cancelable: !1}) |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
return this |
||||
|
}, rotate: function (t) { |
||||
|
return this.rotateTo((this.imageData.rotate || 0) + Number(t)), this |
||||
|
}, rotateTo: function (t) { |
||||
|
var e = this, i = this.element, n = this.options, o = this.imageData; |
||||
|
if (E(t = Number(t)) && this.viewed && !this.played && n.rotatable) { |
||||
|
var s = o.rotate; |
||||
|
if (I(n.rotate) && X(i, "rotate", n.rotate, {once: !0}), !1 === q(i, "rotate", { |
||||
|
degree: t, |
||||
|
oldDegree: s |
||||
|
})) return this; |
||||
|
o.rotate = t, this.rotating = !0, this.renderImage(function () { |
||||
|
e.rotating = !1, I(n.rotated) && X(i, lt, n.rotated, {once: !0}), q(i, lt, { |
||||
|
degree: t, |
||||
|
oldDegree: s |
||||
|
}, {cancelable: !1}) |
||||
|
}) |
||||
|
} |
||||
|
return this |
||||
|
}, scaleX: function (t) { |
||||
|
return this.scale(t, this.imageData.scaleY), this |
||||
|
}, scaleY: function (t) { |
||||
|
return this.scale(this.imageData.scaleX, t), this |
||||
|
}, scale: function (t) { |
||||
|
var e = this, i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : t, n = this.element, |
||||
|
o = this.options, s = this.imageData; |
||||
|
if (t = Number(t), i = Number(i), this.viewed && !this.played && o.scalable) { |
||||
|
var a = s.scaleX, r = s.scaleY, l = !1; |
||||
|
if (E(t) ? l = !0 : t = a, E(i) ? l = !0 : i = r, l) { |
||||
|
if (I(o.scale) && X(n, "scale", o.scale, {once: !0}), !1 === q(n, "scale", { |
||||
|
scaleX: t, |
||||
|
scaleY: i, |
||||
|
oldScaleX: a, |
||||
|
oldScaleY: r |
||||
|
})) return this; |
||||
|
s.scaleX = t, s.scaleY = i, this.scaling = !0, this.renderImage(function () { |
||||
|
e.scaling = !1, I(o.scaled) && X(n, "scaled", o.scaled, {once: !0}), q(n, "scaled", { |
||||
|
scaleX: t, |
||||
|
scaleY: i, |
||||
|
oldScaleX: a, |
||||
|
oldScaleY: r |
||||
|
}, {cancelable: !1}) |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
return this |
||||
|
}, zoom: function (t) { |
||||
|
var e = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], |
||||
|
i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null, |
||||
|
n = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null, o = this.imageData; |
||||
|
return t = Number(t), this.zoomTo(o.width * (t = t < 0 ? 1 / (1 - t) : 1 + t) / o.naturalWidth, e, i, n), this |
||||
|
}, zoomTo: function (t) { |
||||
|
var i, n, o, e = this, s = 1 < arguments.length && void 0 !== arguments[1] && arguments[1], |
||||
|
a = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null, |
||||
|
r = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null, |
||||
|
l = 4 < arguments.length && void 0 !== arguments[4] && arguments[4], h = this.element, c = this.options, |
||||
|
u = this.pointers, d = this.imageData, m = d.x, g = d.y, f = d.width, v = d.height, p = d.naturalWidth, |
||||
|
b = d.naturalHeight; |
||||
|
if (E(t = Math.max(0, t)) && this.viewed && !this.played && (l || c.zoomable)) { |
||||
|
if (l || (l = Math.max(.01, c.minZoomRatio), y = Math.min(100, c.maxZoomRatio), t = Math.min(Math.max(t, l), y)), r) switch (r.type) { |
||||
|
case"wheel": |
||||
|
.055 <= c.zoomRatio && .95 < t && t < 1.05 && (t = 1); |
||||
|
break; |
||||
|
case"pointermove": |
||||
|
case"touchmove": |
||||
|
case"mousemove": |
||||
|
.99 < t && t < 1.01 && (t = 1) |
||||
|
} |
||||
|
var w, l = p * t, y = b * t, p = l - f, b = y - v, x = d.ratio; |
||||
|
if (I(c.zoom) && X(h, "zoom", c.zoom, {once: !0}), !1 === q(h, "zoom", { |
||||
|
ratio: t, |
||||
|
oldRatio: x, |
||||
|
originalEvent: r |
||||
|
})) return this; |
||||
|
this.zooming = !0, r ? (w = { |
||||
|
left: (w = (w = this.viewer).getBoundingClientRect()).left + (window.pageXOffset - document.documentElement.clientLeft), |
||||
|
top: w.top + (window.pageYOffset - document.documentElement.clientTop) |
||||
|
}, u = u && 0 < Object.keys(u).length ? (o = n = i = 0, A(u, function (t) { |
||||
|
var e = t.startX; |
||||
|
i += e, n += t.startY, o += 1 |
||||
|
}), {pageX: i /= o, pageY: n /= o}) : { |
||||
|
pageX: r.pageX, |
||||
|
pageY: r.pageY |
||||
|
}, d.x -= (u.pageX - w.left - m) / f * p, d.y -= (u.pageY - w.top - g) / v * b) : S(a) && E(a.x) && E(a.y) ? (d.x -= p * ((a.x - m) / f), d.y -= b * ((a.y - g) / v)) : (d.x -= p / 2, d.y -= b / 2), d.left = d.x, d.top = d.y, d.width = l, d.height = y, d.oldRatio = x, d.ratio = t, this.renderImage(function () { |
||||
|
e.zooming = !1, I(c.zoomed) && X(h, "zoomed", c.zoomed, {once: !0}), q(h, "zoomed", { |
||||
|
ratio: t, |
||||
|
oldRatio: x, |
||||
|
originalEvent: r |
||||
|
}, {cancelable: !1}) |
||||
|
}), s && this.tooltip() |
||||
|
} |
||||
|
return this |
||||
|
}, play: function () { |
||||
|
var t, o, s, a, r, l, h, e, i, n = this, |
||||
|
c = 0 < arguments.length && void 0 !== arguments[0] && arguments[0]; |
||||
|
return this.isShown && !this.played && (t = this.element, I((o = this.options).play) && X(t, "play", o.play, {once: !0}), !1 !== q(t, "play") && (s = this.player, a = this.loadImage.bind(this), r = [], h = l = 0, this.played = !0, this.onLoadWhenPlay = a, c && this.requestFullscreen(c), R(s, d), A(this.items, function (t, e) { |
||||
|
var i = t.querySelector("img"), n = document.createElement("img"); |
||||
|
n.src = N(i, "originalUrl"), n.alt = i.getAttribute("alt"), n.referrerPolicy = i.referrerPolicy, l += 1, R(n, B), F(n, m, o.transition), L(t, f) && (R(n, u), h = e), r.push(n), X(n, y, a, {once: !0}), s.appendChild(n) |
||||
|
}), E(o.interval)) && 0 < o.interval && (e = function () { |
||||
|
clearTimeout(n.playing.timeout), M(r[h], u), R(r[h = 0 <= --h ? h : l - 1], u), n.playing.timeout = setTimeout(e, o.interval) |
||||
|
}, i = function () { |
||||
|
clearTimeout(n.playing.timeout), M(r[h], u), R(r[h = (h += 1) < l ? h : 0], u), n.playing.timeout = setTimeout(i, o.interval) |
||||
|
}, 1 < l)) && (this.playing = {prev: e, next: i, timeout: setTimeout(i, o.interval)}), this |
||||
|
}, stop: function () { |
||||
|
var t, e, i = this; |
||||
|
return this.played && (t = this.element, I((e = this.options).stop) && X(t, "stop", e.stop, {once: !0}), !1 !== q(t, "stop")) && (e = this.player, clearTimeout(this.playing.timeout), this.playing = !1, this.played = !1, A(e.getElementsByTagName("img"), function (t) { |
||||
|
Y(t, y, i.onLoadWhenPlay) |
||||
|
}), M(e, d), e.innerHTML = "", this.exitFullscreen()), this |
||||
|
}, full: function () { |
||||
|
var t = this, e = this.options, i = this.viewer, n = this.image, o = this.list; |
||||
|
return this.isShown && !this.played && !this.fulled && e.inline && (this.fulled = !0, this.open(), R(this.button, K), e.transition && (M(o, m), this.viewed) && M(n, m), R(i, V), i.setAttribute("role", "dialog"), i.setAttribute("aria-labelledby", this.title.id), i.setAttribute("aria-modal", !0), i.removeAttribute("style"), C(i, {zIndex: e.zIndex}), e.focus && this.enforceFocus(), this.initContainer(), this.viewerData = O({}, this.containerData), this.renderList(), this.viewed) && this.initImage(function () { |
||||
|
t.renderImage(function () { |
||||
|
e.transition && setTimeout(function () { |
||||
|
R(n, m), R(o, m) |
||||
|
}, 0) |
||||
|
}) |
||||
|
}), this |
||||
|
}, exit: function () { |
||||
|
var t = this, e = this.options, i = this.viewer, n = this.image, o = this.list; |
||||
|
return this.isShown && !this.played && this.fulled && e.inline && (this.fulled = !1, this.close(), M(this.button, K), e.transition && (M(o, m), this.viewed) && M(n, m), e.focus && this.clearEnforceFocus(), i.removeAttribute("role"), i.removeAttribute("aria-labelledby"), i.removeAttribute("aria-modal"), M(i, V), C(i, {zIndex: e.zIndexInline}), this.viewerData = O({}, this.parentData), this.renderViewer(), this.renderList(), this.viewed) && this.initImage(function () { |
||||
|
t.renderImage(function () { |
||||
|
e.transition && setTimeout(function () { |
||||
|
R(n, m), R(o, m) |
||||
|
}, 0) |
||||
|
}) |
||||
|
}), this |
||||
|
}, tooltip: function () { |
||||
|
var t = this, e = this.options, i = this.tooltipBox, n = this.imageData; |
||||
|
return this.viewed && !this.played && e.tooltip && (i.textContent = "".concat(Math.round(100 * n.ratio), "%"), this.tooltipping ? clearTimeout(this.tooltipping) : e.transition ? (this.fading && q(i, k), R(i, d), R(i, B), R(i, m), i.removeAttribute("aria-hidden"), i.initialOffsetWidth = i.offsetWidth, R(i, u)) : (R(i, d), i.removeAttribute("aria-hidden")), this.tooltipping = setTimeout(function () { |
||||
|
e.transition ? (X(i, k, function () { |
||||
|
M(i, d), M(i, B), M(i, m), i.setAttribute("aria-hidden", !0), t.fading = !1 |
||||
|
}, {once: !0}), M(i, u), t.fading = !0) : (M(i, d), i.setAttribute("aria-hidden", !0)), t.tooltipping = !1 |
||||
|
}, 1e3)), this |
||||
|
}, toggle: function () { |
||||
|
var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : null; |
||||
|
return 1 === this.imageData.ratio ? this.zoomTo(this.imageData.oldRatio, !0, null, t) : this.zoomTo(1, !0, null, t), this |
||||
|
}, reset: function () { |
||||
|
return this.viewed && !this.played && (this.imageData = O({}, this.initialImageData), this.renderImage()), this |
||||
|
}, update: function () { |
||||
|
var n, o, e = this, t = this.element, i = this.options, s = this.isImg; |
||||
|
return s && !t.parentNode ? this.destroy() : (n = [], A(s ? [t] : t.querySelectorAll("img"), function (t) { |
||||
|
I(i.filter) ? i.filter.call(e, t) && n.push(t) : e.getImageURL(t) && n.push(t) |
||||
|
}), n.length && (this.images = n, this.length = n.length, this.ready ? (o = [], A(this.items, function (t, e) { |
||||
|
var t = t.querySelector("img"), i = n[e]; |
||||
|
i && t && i.src === t.src && i.alt === t.alt || o.push(e) |
||||
|
}), C(this.list, {width: "auto"}), this.initList(), this.isShown && (this.length ? this.viewed && (0 <= (s = o.indexOf(this.index)) ? (this.viewed = !1, this.view(Math.max(Math.min(this.index - s, this.length - 1), 0))) : (R(t = this.items[this.index], f), t.setAttribute("aria-selected", !0))) : (this.image = null, this.viewed = !1, this.index = 0, this.imageData = {}, this.canvas.innerHTML = "", this.title.innerHTML = ""))) : this.build()), this) |
||||
|
}, destroy: function () { |
||||
|
var t = this.element, e = this.options; |
||||
|
return t[g] && (this.destroyed = !0, this.ready ? (this.played && this.stop(), e.inline ? (this.fulled && this.exit(), this.unbind()) : this.isShown ? (this.viewing && (this.imageRendering ? this.imageRendering.abort() : this.imageInitializing && this.imageInitializing.abort()), this.hiding && this.transitioning.abort(), this.hidden()) : this.showing && (this.transitioning.abort(), this.hidden()), this.ready = !1, this.viewer.parentNode.removeChild(this.viewer)) : e.inline && (this.delaying ? this.delaying.abort() : this.initializing && this.initializing.abort()), e.inline || Y(t, w, this.onStart), t[g] = void 0), this |
||||
|
} |
||||
|
}, At = { |
||||
|
getImageURL: function (t) { |
||||
|
var e = this.options.url; |
||||
|
return e = T(e) ? t.getAttribute(e) : I(e) ? e.call(this, t) : "" |
||||
|
}, enforceFocus: function () { |
||||
|
var n = this; |
||||
|
this.clearEnforceFocus(), X(document, et, this.onFocusin = function (t) { |
||||
|
var e = n.viewer, i = t.target; |
||||
|
if (i !== document && i !== e && !e.contains(i)) { |
||||
|
for (; i;) { |
||||
|
if (null !== i.getAttribute("tabindex") || "true" === i.getAttribute("aria-modal")) return; |
||||
|
i = i.parentElement |
||||
|
} |
||||
|
e.focus() |
||||
|
} |
||||
|
}) |
||||
|
}, clearEnforceFocus: function () { |
||||
|
this.onFocusin && (Y(document, et, this.onFocusin), this.onFocusin = null) |
||||
|
}, open: function () { |
||||
|
var t = this.body; |
||||
|
R(t, J), 0 < this.scrollbarWidth && (t.style.paddingRight = "".concat(this.scrollbarWidth + (parseFloat(this.initialBodyComputedPaddingRight) || 0), "px")) |
||||
|
}, close: function () { |
||||
|
var t = this.body; |
||||
|
M(t, J), 0 < this.scrollbarWidth && (t.style.paddingRight = this.initialBodyPaddingRight) |
||||
|
}, shown: function () { |
||||
|
var t = this.element, e = this.options, i = this.viewer; |
||||
|
this.fulled = !0, this.isShown = !0, this.render(), this.bind(), this.showing = !1, e.focus && (i.focus(), this.enforceFocus()), I(e.shown) && X(t, "shown", e.shown, {once: !0}), !1 !== q(t, "shown") && this.ready && this.isShown && !this.hiding && this.view(this.index) |
||||
|
}, hidden: function () { |
||||
|
var t = this.element, e = this.options, i = this.viewer; |
||||
|
e.fucus && this.clearEnforceFocus(), this.close(), this.unbind(), R(i, v), i.removeAttribute("role"), i.removeAttribute("aria-labelledby"), i.removeAttribute("aria-modal"), i.setAttribute("aria-hidden", !0), this.resetList(), this.resetImage(), this.fulled = !1, this.viewed = !1, this.isShown = !1, this.hiding = !1, this.destroyed || (I(e.hidden) && X(t, "hidden", e.hidden, {once: !0}), q(t, "hidden", null, {cancelable: !1})) |
||||
|
}, requestFullscreen: function (t) { |
||||
|
var e = this.element.ownerDocument; |
||||
|
this.fulled && !(e.fullscreenElement || e.webkitFullscreenElement || e.mozFullScreenElement || e.msFullscreenElement) && ((e = e.documentElement).requestFullscreen ? S(t) ? e.requestFullscreen(t) : e.requestFullscreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT) : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.msRequestFullscreen && e.msRequestFullscreen()) |
||||
|
}, exitFullscreen: function () { |
||||
|
var t = this.element.ownerDocument; |
||||
|
this.fulled && (t.fullscreenElement || t.webkitFullscreenElement || t.mozFullScreenElement || t.msFullscreenElement) && (t.exitFullscreen ? t.exitFullscreen() : t.webkitExitFullscreen ? t.webkitExitFullscreen() : t.mozCancelFullScreen ? t.mozCancelFullScreen() : t.msExitFullscreen && t.msExitFullscreen()) |
||||
|
}, change: function (t) { |
||||
|
var e = this.options, i = this.pointers, n = i[Object.keys(i)[0]]; |
||||
|
if (n) { |
||||
|
var s, a, o = n.endX - n.startX, r = n.endY - n.startY; |
||||
|
switch (this.action) { |
||||
|
case h: |
||||
|
0 == o && 0 == r || (this.pointerMoved = !0, this.move(o, r, t)); |
||||
|
break; |
||||
|
case c: |
||||
|
this.zoom((s = P({}, l = i), a = [], A(l, function (o, t) { |
||||
|
delete s[t], A(s, function (t) { |
||||
|
var e = Math.abs(o.startX - t.startX), i = Math.abs(o.startY - t.startY), |
||||
|
n = Math.abs(o.endX - t.endX), t = Math.abs(o.endY - t.endY), |
||||
|
e = Math.sqrt(e * e + i * i), i = Math.sqrt(n * n + t * t); |
||||
|
a.push((i - e) / e) |
||||
|
}) |
||||
|
}), a.sort(function (t, e) { |
||||
|
return Math.abs(t) < Math.abs(e) |
||||
|
}), a[0]), !1, null, t); |
||||
|
break; |
||||
|
case j: |
||||
|
this.action = "switched"; |
||||
|
var l = Math.abs(o); |
||||
|
1 < l && l > Math.abs(r) && (this.pointers = {}, 1 < o ? this.prev(e.loop) : o < -1 && this.next(e.loop)) |
||||
|
} |
||||
|
A(i, function (t) { |
||||
|
t.startX = t.endX, t.startY = t.endY |
||||
|
}) |
||||
|
} |
||||
|
}, isSwitchable: function () { |
||||
|
var t = this.imageData, e = this.viewerData; |
||||
|
return 1 < this.length && 0 <= t.x && 0 <= t.y && t.width <= e.width && t.height <= e.height |
||||
|
} |
||||
|
}, Ot = e.Viewer, Ct = (Dt = -1, function () { |
||||
|
return Dt += 1 |
||||
|
}), e = (() => { |
||||
|
function o(t) { |
||||
|
var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, i = this, n = o; |
||||
|
if (!(i instanceof n)) throw new TypeError("Cannot call a class as a function"); |
||||
|
if (!t || 1 !== t.nodeType) throw new Error("The first argument is required and must be an element."); |
||||
|
this.element = t, this.options = O({}, W, S(e) && e), this.action = !1, this.fading = !1, this.fulled = !1, this.hiding = !1, this.imageClicked = !1, this.imageData = {}, this.index = this.options.initialViewIndex, this.isImg = !1, this.isShown = !1, this.length = 0, this.moving = !1, this.played = !1, this.playing = !1, this.pointers = {}, this.ready = !1, this.rotating = !1, this.scaling = !1, this.showing = !1, this.timeout = !1, this.tooltipping = !1, this.viewed = !1, this.viewing = !1, this.wheeling = !1, this.zooming = !1, this.pointerMoved = !1, this.id = Ct(), this.init() |
||||
|
} |
||||
|
|
||||
|
return t = o, i = [{ |
||||
|
key: "noConflict", value: function () { |
||||
|
return window.Viewer = Ot, o |
||||
|
} |
||||
|
}, { |
||||
|
key: "setDefaults", value: function (t) { |
||||
|
O(W, S(t) && t) |
||||
|
} |
||||
|
}], (e = [{ |
||||
|
key: "init", value: function () { |
||||
|
var t, e, i, n, o = this, s = this.element, a = this.options; |
||||
|
s[g] || (s[g] = this, a.focus && !a.keyboard && (a.focus = !1), e = [], A((t = "img" === s.localName) ? [s] : s.querySelectorAll("img"), function (t) { |
||||
|
I(a.filter) ? a.filter.call(o, t) && e.push(t) : o.getImageURL(t) && e.push(t) |
||||
|
}), this.isImg = t, this.length = e.length, this.images = e, this.initBody(), D(document.createElement(g).style.transition) && (a.transition = !1), a.inline ? (i = 0, n = function () { |
||||
|
var t; |
||||
|
(i += 1) === o.length && (o.initializing = !1, o.delaying = { |
||||
|
abort: function () { |
||||
|
clearTimeout(t) |
||||
|
} |
||||
|
}, t = setTimeout(function () { |
||||
|
o.delaying = !1, o.build() |
||||
|
}, 0)) |
||||
|
}, this.initializing = { |
||||
|
abort: function () { |
||||
|
A(e, function (t) { |
||||
|
t.complete || (Y(t, y, n), Y(t, x, n)) |
||||
|
}) |
||||
|
} |
||||
|
}, A(e, function (t) { |
||||
|
var e, i; |
||||
|
t.complete ? n() : (X(t, y, e = function () { |
||||
|
Y(t, x, i), n() |
||||
|
}, {once: !0}), X(t, x, i = function () { |
||||
|
Y(t, y, e), n() |
||||
|
}, {once: !0})) |
||||
|
})) : X(s, w, this.onStart = function (t) { |
||||
|
t = t.target; |
||||
|
"img" !== t.localName || I(a.filter) && !a.filter.call(o, t) || o.view(o.images.indexOf(t)) |
||||
|
})) |
||||
|
} |
||||
|
}, { |
||||
|
key: "build", value: function () { |
||||
|
var t, s, e, i, n, o, a, r, l, h, c, u, d, m; |
||||
|
this.ready || (t = this.element, s = this.options, e = t.parentNode, (d = document.createElement("div")).innerHTML = '<div class="viewer-container" tabindex="-1" touch-action="none"><div class="viewer-canvas"></div><div class="viewer-footer"><div class="viewer-title"></div><div class="viewer-toolbar"></div><div class="viewer-navbar"><ul class="viewer-list" role="navigation"></ul></div></div><div class="viewer-tooltip" role="alert" aria-hidden="true"></div><div class="viewer-button" data-viewer-action="mix" role="button"></div><div class="viewer-player"></div></div>', d = (i = d.querySelector(".".concat(g, "-container"))).querySelector(".".concat(g, "-title")), n = i.querySelector(".".concat(g, "-toolbar")), m = i.querySelector(".".concat(g, "-navbar")), o = i.querySelector(".".concat(g, "-button")), a = i.querySelector(".".concat(g, "-canvas")), this.parent = e, this.viewer = i, this.title = d, this.toolbar = n, this.navbar = m, this.button = o, this.canvas = a, this.footer = i.querySelector(".".concat(g, "-footer")), this.tooltipBox = i.querySelector(".".concat(g, "-tooltip")), this.player = i.querySelector(".".concat(g, "-player")), this.list = i.querySelector(".".concat(g, "-list")), i.id = "".concat(g).concat(this.id), d.id = "".concat(g, "Title").concat(this.id), R(d, s.title ? Tt(Array.isArray(s.title) ? s.title[0] : s.title) : v), R(m, s.navbar ? Tt(s.navbar) : v), F(o, v, !s.button), s.keyboard && o.setAttribute("tabindex", 0), s.backdrop && (R(i, "".concat(g, "-backdrop")), s.inline || "static" === s.backdrop || pt(a, ht, "hide")), T(s.className) && s.className && s.className.split(ct).forEach(function (t) { |
||||
|
R(i, t) |
||||
|
}), s.toolbar ? (r = document.createElement("ul"), l = S(s.toolbar), h = ut.slice(0, 3), c = ut.slice(7, 9), u = ut.slice(9), l || R(n, Tt(s.toolbar)), A(l ? s.toolbar : ut, function (t, e) { |
||||
|
var i, n = l && S(t), e = l ? vt(e) : t, o = n && !D(t.show) ? t.show : t; |
||||
|
!o || !s.zoomable && -1 !== h.indexOf(e) || !s.rotatable && -1 !== c.indexOf(e) || !s.scalable && -1 !== u.indexOf(e) || (i = n && !D(t.size) ? t.size : t, n = n && !D(t.click) ? t.click : t, t = document.createElement("li"), s.keyboard && t.setAttribute("tabindex", 0), t.setAttribute("role", "button"), R(t, "".concat(g, "-").concat(e)), I(n) || pt(t, ht, e), E(o) && R(t, Tt(o)), -1 !== ["small", "large"].indexOf(i) ? R(t, "".concat(g, "-").concat(i)) : "play" === e && R(t, "".concat(g, "-large")), I(n) && X(t, w, n), r.appendChild(t)) |
||||
|
}), n.appendChild(r)) : R(n, v), s.rotatable || (R(d = n.querySelectorAll('li[class*="rotate"]'), p), A(d, function (t) { |
||||
|
n.appendChild(t) |
||||
|
})), s.inline ? (R(o, U), C(i, {zIndex: s.zIndexInline}), "static" === window.getComputedStyle(e).position && C(e, {position: "relative"}), e.insertBefore(i, t.nextSibling)) : (R(o, H), R(i, V), R(i, B), R(i, v), C(i, {zIndex: s.zIndex}), (m = (m = T(m = s.container) ? t.ownerDocument.querySelector(m) : m) || this.body).appendChild(i)), s.inline && (this.render(), this.bind(), this.isShown = !0), this.ready = !0, I(s.ready) && X(t, "ready", s.ready, {once: !0}), !1 === q(t, "ready") ? this.ready = !1 : this.ready && s.inline && this.view(this.index)) |
||||
|
} |
||||
|
}]) && n(t.prototype, e), i && n(t, i), Object.defineProperty(t, "prototype", {writable: !1}), t; |
||||
|
var t, e, i |
||||
|
})(); |
||||
|
return O(e.prototype, i, t, St, It, At), e |
||||
|
}); |
||||
3476
src/main/resources/templates/counter/counter-booking_copy24032025.html
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue