diff --git a/.wordpress-org/screenshot-12.gif b/.wordpress-org/screenshot-12.gif new file mode 100644 index 0000000..40cf6da Binary files /dev/null and b/.wordpress-org/screenshot-12.gif differ diff --git a/README.md b/README.md index b9494fd..0ee1840 100644 --- a/README.md +++ b/README.md @@ -8,21 +8,31 @@ Instead of manually adding coordinates for each one of your markers, just click- 👉 [Read more about the overall UX challenges](https://www.gsarigiannidis.gr/wordpress-gutenberg-map-block-openstreetmap/) -![Demo GIF](.wordpress-org/screenshot-1.gif) - 👉 [The challenges of building a user-friendly place search for OpenStreetMap](https://www.gsarigiannidis.gr/openstreetmap-place-search/) +👉 [Lessons learned from integrating OpenAI to a WordPress plugin](https://www.gsarigiannidis.gr/openstreetmap-openai-integration/) + +## Demos + +### The main functionality, with drag and drop pins and WYSIWYG editing +![Demo GIF](.wordpress-org/screenshot-1.gif) + +### Using the location search ![Demo GIF](.wordpress-org/screenshot-2.gif) -Drawing a polygon: +### Drawing a polygon ![Demo GIF](.wordpress-org/screenshot-9.gif) -Drawing a polyline: +### Drawing a polyline ![Demo GIF](.wordpress-org/screenshot-10.gif) -### Features +### OpenAI integration in action: + +![Demo GIF](.wordpress-org/screenshot-12.gif) + +## Features * No need for API keys. Just install and use it. * Support for multiple markers. @@ -31,6 +41,7 @@ Drawing a polyline: * [Dead-simple interface](https://www.gsarigiannidis.gr/wordpress-gutenberg-map-block-openstreetmap/). Don't search for coordinates and don't get overwhelmed by too many fields when using multiple markers. Just point and click on the map to add your marker where you want it and edit it's popup content directly from there. * [Place search](https://www.gsarigiannidis.gr/openstreetmap-place-search/). Find locations by typing keywords. * Remembers the zoom that you set when adding the markers and stores it so that you don't set it by hand (which you can do anyway if you prefer). +* OpenAI integration which allows you to add markers by using commands in natural language. Just say "please" to activate (e.g. "Please, show me where GOT was filmed"). Requires an OpenAI API key. [Read more](https://www.gsarigiannidis.gr/openstreetmap-openai-integration/). * Adjust the map height. * Change the default marker icon with a custom one. * Enable or disable map dragging. @@ -53,7 +64,7 @@ Drawing a polyline: No. -That's the point actually. Just install the plugin and start adding maps. +That's the point, actually. Just install the plugin and start adding maps. Keep in mind, though, that as stated on the [OpenStreetMap Tile Usage Policy](https://operations.osmfoundation.org/policies/tiles/), OSM’s own servers are run entirely on donated resources and they have strictly limited capacity. Using them on a site with low traffic will probably be fine. Nevertheless, you are advised to create an account to [MapBox](https://www.mapbox.com/) and get a free API Key. ### How do I add a new location? @@ -67,6 +78,10 @@ Click on the marker to open up its popup. There, you will see the "Remove" butto Check under the "Map behavior" section, at the blocks' settings at the sidebar on the right. It's toggled off by default, that's probably why you missed it. +### How does the OpenAI integration work? + +First of all, you will need to create an account to [OpenAI](https://openai.com/) and get an API key. Then, go to the plugin's settings page and paste your key there. After that, you can start adding markers by using commands in natural language. Just say "please" to activate (e.g. "Please, show me where GOT was filmed"). Please keep in mind, though, that it's like asking ChatGPT: the answers you get might not always be 100% reliable, and you should always double-check to confirm their accuracy. [Read more](https://www.gsarigiannidis.gr/openstreetmap-openai-integration/). + ## Screenshots ![The map editing screen](.wordpress-org/screenshot-3.jpg) diff --git a/build/index.asset.php b/build/index.asset.php index 7295f01..228a4ad 100644 --- a/build/index.asset.php +++ b/build/index.asset.php @@ -1 +1 @@ - array('react', 'react-dom', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '993fe5ca1dd78d2bebf1'); + array('react', 'react-dom', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => 'd14ede070655749920c9'); diff --git a/build/index.css b/build/index.css index 209cb65..baf2ce7 100644 --- a/build/index.css +++ b/build/index.css @@ -1,3 +1,3 @@ .leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{left:0;position:absolute;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{height:1600px;-webkit-transform-origin:0 0;width:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-height:none!important;max-width:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-height:none!important;max-width:none!important;padding:0;width:auto}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;height:0;width:0;z-index:800}.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{height:1px;width:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{pointer-events:visiblePainted;pointer-events:auto;position:relative;z-index:800}.leaflet-bottom,.leaflet-top{pointer-events:none;position:absolute;z-index:1000}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{clear:both;float:left}.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}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:hsla(0,0%,100%,.5);border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.65)}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;color:#000;display:block;height:26px;line-height:26px;text-align:center;text-decoration:none;width:26px}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{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:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-bar a.leaflet-disabled{background-color:#f4f4f4;color:#bbb;cursor:default}.leaflet-touch .leaflet-bar a{height:30px;line-height:30px;width: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}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px rgba(0,0,0,.4)}.leaflet-control-layers-toggle{background-image:url(images/layers.416d9136.png);height:36px;width:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.8f2c4d11.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{height:44px;width: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{background:#fff;color:#333;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{overflow-x:hidden;overflow-y:scroll;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{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(images/marker-icon.2b3e1faf.png)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;line-height:1.4;padding:0 5px}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;height:.6669em;vertical-align:baseline!important;width:1em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{background:hsla(0,0%,100%,.8);border:2px solid #777;border-top:none;box-sizing:border-box;line-height:1.1;padding:2px 5px 1px;text-shadow:1px 1px #fff;white-space:nowrap}.leaflet-control-scale-line:not(:first-child){border-bottom:none;border-top:2px solid #777;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{background-clip:padding-box;border:2px solid rgba(0,0,0,.2)}.leaflet-popup{margin-bottom:20px;position:absolute;text-align:center}.leaflet-popup-content-wrapper{border-radius:12px;padding:1px;text-align:left}.leaflet-popup-content{font-size:13px;font-size:1.08333em;line-height:1.3;margin:13px 24px 13px 20px;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{height:20px;left:50%;margin-left:-20px;margin-top:-1px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.leaflet-popup-tip{height:17px;margin:-10px auto 0;padding:1px;pointer-events:auto;transform:rotate(45deg);width:17px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4);color:#333}.leaflet-container a.leaflet-popup-close-button{background:transparent;border:none;color:#757575;font:16px/24px Tahoma,Verdana,sans-serif;height:24px;position:absolute;right:0;text-align:center;text-decoration:none;top:0;width:24px}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-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);margin:0 auto;width:24px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{background-color:#fff;border:1px solid #fff;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.4);color:#222;padding:6px;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{background:transparent;border:6px solid transparent;content:"";pointer-events:none;position:absolute}.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{border-top-color:#fff;bottom:0;margin-bottom:-12px}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-left:-6px;margin-top:-12px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;left:0;margin-left:-12px}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}} -.block-editor-block-list__block[data-type="ootb/openstreetmap"]{z-index:1}.block-editor-block-list__block[data-type="ootb/openstreetmap"].is-selected .ootb-openstreetmap--search-results{opacity:1;top:48px}.block-editor-block-list__block[data-type="ootb/openstreetmap"].is-selected .ootb-openstreetmap--searchbox{opacity:1;top:.5rem}.wp-block-ootb-openstreetmap{position:relative}.wp-block-ootb-openstreetmap.pinning .leaflet-container,.wp-block-ootb-openstreetmap.pinning .leaflet-container .leaflet-marker-pane img{cursor:crosshair}.wp-block-ootb-openstreetmap .leaflet-popup-content{width:150px}.wp-block-ootb-openstreetmap .leaflet-marker-icon{animation:animate-marker .4s ease-in-out;top:0}.ootb-openstreetmap--icon{border:2px dashed #ddd;margin-bottom:.5rem;text-align:center}.ootb-openstreetmap--icon img{margin:.5rem auto}.gmp-openstreetmap--buttons{border-top:1px solid #ddd;display:flex;justify-content:space-around;margin:0 .5rem;padding:.7rem 0}.ootb-openstreetmap--alert{background:rgba(0,0,0,.6);border-radius:5px;bottom:1em;color:#fff;font-size:13px;left:1em;padding:.5em;position:absolute;text-align:center;width:calc(100% - 2em);z-index:9999}.ootb-openstreetmap--alert.alert-active{background:rgba(23,137,7,.84)}.ootb-openstreetmap--alert.alert-error{background:rgba(198,0,0,.84)}.ootb-openstreetmap--marker-icon-container{align-items:flex-end;border-top:1px solid #ccc;display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:1rem;padding-top:.2rem}.ootb-openstreetmap--marker-icon-container .gmp-openstreetmap--buttons .dashicon:before{font-size:16px}.leaflet-popup-content-wrapper .ootb-openstreetmap--icon{align-items:flex-end;border:none;display:flex;flex:1;justify-content:space-between;margin-bottom:0}.leaflet-popup-content-wrapper .gmp-openstreetmap--buttons{border-top:none;margin:0;padding:0}.leaflet-popup-content-wrapper .components-button{box-shadow:none}.ootb-openstreetmap--searchbox{background:#fff;border:1px solid #1e1e1e;color:#444;display:flex;max-width:calc(100% - 5rem);opacity:0;padding:0 0 0 .5rem;position:absolute;right:.5rem;top:0;transition:all .2s ease-in-out;width:280px;z-index:999}.ootb-openstreetmap--searchbox>div{flex:1}.ootb-openstreetmap--searchbox .components-base-control__field{margin-bottom:0}.ootb-openstreetmap--searchbox .components-text-control__input[type=text]{background:transparent;border:none;box-shadow:none;color:#000}.ootb-openstreetmap--searchbox svg.dashicon{fill:#000}.block-editor-block-list__block[data-type="ootb/openstreetmap"] .ootb-openstreetmap--search-results{background:#fff;border:1px solid #1e1e1e;max-height:calc(100% - 70px);max-width:calc(100% - 5rem);opacity:0;overflow-y:auto;position:absolute;right:.5rem;text-align:left;top:0;transition:all .2s ease-in-out;width:280px;z-index:999}.block-editor-block-list__block[data-type="ootb/openstreetmap"] .ootb-openstreetmap--search-results .components-button{height:auto;text-align:left;width:100%}@keyframes animate-marker{0%{top:-60px}50%{top:0}90%{top:-10px}to{top:0}}.wp-block-create-block-ootb-openstreetmap{border:1px dotted red} +.block-editor-block-list__block[data-type="ootb/openstreetmap"]{z-index:1}.block-editor-block-list__block[data-type="ootb/openstreetmap"].is-selected .ootb-openstreetmap--search-results{opacity:1;top:48px}.block-editor-block-list__block[data-type="ootb/openstreetmap"].is-selected .ootb-openstreetmap--searchbox{opacity:1;top:.5rem}.wp-block-ootb-openstreetmap{position:relative}.wp-block-ootb-openstreetmap.pinning .leaflet-container,.wp-block-ootb-openstreetmap.pinning .leaflet-container .leaflet-marker-pane img{cursor:crosshair}.wp-block-ootb-openstreetmap .leaflet-popup-content{width:150px}.wp-block-ootb-openstreetmap .leaflet-marker-icon{animation:animate-marker .4s ease-in-out;top:0}.ootb-openstreetmap--icon{border:2px dashed #ddd;margin-bottom:.5rem;text-align:center}.ootb-openstreetmap--icon img{margin:.5rem auto}.gmp-openstreetmap--buttons{border-top:1px solid #ddd;display:flex;justify-content:space-around;margin:0 .5rem;padding:.7rem 0}.ootb-openstreetmap--alert{background:rgba(0,0,0,.6);border-radius:5px;bottom:1em;color:#fff;font-size:13px;left:1em;padding:.5em;position:absolute;text-align:center;width:calc(100% - 3em);z-index:9999}.wp-block-ootb-openstreetmap div.ootb-openstreetmap--alert a{color:#fff}.ootb-openstreetmap--alert.alert-active{background:rgba(23,137,7,.84)}.ootb-openstreetmap--alert.alert-error{background:rgba(198,0,0,.84)}.ootb-openstreetmap--marker-icon-container{align-items:flex-end;border-top:1px solid #ccc;display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:1rem;padding-top:.2rem}.ootb-openstreetmap--marker-icon-container .gmp-openstreetmap--buttons .dashicon:before{font-size:16px}.leaflet-popup-content-wrapper .ootb-openstreetmap--icon{align-items:flex-end;border:none;display:flex;flex:1;justify-content:space-between;margin-bottom:0}.leaflet-popup-content-wrapper .gmp-openstreetmap--buttons{border-top:none;margin:0;padding:0}.leaflet-popup-content-wrapper .components-button{box-shadow:none}.ootb-openstreetmap--searchbox{background:#fff;border:1px solid #1e1e1e;color:#444;display:flex;max-width:calc(100% - 5rem);opacity:0;padding:0 0 0 .5rem;position:absolute;right:.5rem;top:0;transition:all .2s ease-in-out;width:280px;z-index:999}.ootb-openstreetmap--searchbox>div{flex:1}.ootb-openstreetmap--searchbox .components-base-control__field{margin-bottom:0}.ootb-openstreetmap--searchbox .components-text-control__input[type=text]{background:transparent;border:none;box-shadow:none;color:#000}.ootb-openstreetmap--searchbox.openai-active{border-color:#fff;border-radius:1em;box-shadow:1px 2px 3px #aaa}.ootb-openstreetmap--searchbox.openai-active .dashicon.dashicons{color:#2aa3c5}.ootb-openstreetmap--searchbox svg.dashicon{fill:#000}.block-editor-block-list__block[data-type="ootb/openstreetmap"] .ootb-openstreetmap--search-results{background:#fff;border:1px solid #1e1e1e;max-height:calc(100% - 70px);max-width:calc(100% - 5rem);opacity:0;overflow-y:auto;position:absolute;right:.5rem;text-align:left;top:0;transition:all .2s ease-in-out;width:280px;z-index:999}.block-editor-block-list__block[data-type="ootb/openstreetmap"] .ootb-openstreetmap--search-results .components-button{height:auto;text-align:left;width:100%}@keyframes animate-marker{0%{top:-60px}50%{top:0}90%{top:-10px}to{top:0}}.wp-block-create-block-ootb-openstreetmap{border:1px dotted red} .ootb-openstreetmap--map{width:100%}.ootb-openstreetmap--map .leaflet-popup-content{width:150px}.ootb-openstreetmap--map .leaflet-popup-content p{margin:.5em 0} diff --git a/build/index.js b/build/index.js index 4c3f66e..912e58f 100644 --- a/build/index.js +++ b/build/index.js @@ -1 +1 @@ -(()=>{var t={243:function(t,e){!function(t){"use strict";function e(t){var e,i,n,o;for(i=1,n=arguments.length;i0?Math.floor(t):Math.ceil(t)};function O(t,e,i){return t instanceof S?t:f(t)?new S(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new S(t.x,t.y):new S(t,e,i)}function A(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=N(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=N(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Mt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",h,e),window.removeEventListener("testPassiveEventSupport",h,e)}catch(t){}return t}(),Et=!!document.createElement("canvas").getContext,Ct=!(!document.createElementNS||!K("svg").createSVGRect),St=!!Ct&&((X=document.createElement("div")).innerHTML="","http://www.w3.org/2000/svg"===(X.firstChild&&X.firstChild.namespaceURI)),Zt=!Ct&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function Ot(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var At={ie:Q,ielt9:tt,edge:et,webkit:it,android:nt,android23:ot,androidStock:rt,opera:at,chrome:ht,gecko:lt,safari:ut,phantom:ct,opera12:dt,win:pt,ie3d:mt,webkit3d:_t,gecko3d:ft,any3d:gt,mobile:vt,mobileWebkit:yt,mobileWebkit3d:bt,msPointer:wt,pointer:xt,touch:Lt,touchNative:Pt,mobileOpera:Tt,mobileGecko:kt,retina:zt,passiveEvents:Mt,canvas:Et,svg:Ct,vml:Zt,inlineSvg:St,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},It=At.msPointer?"MSPointerDown":"pointerdown",Bt=At.msPointer?"MSPointerMove":"pointermove",Nt=At.msPointer?"MSPointerUp":"pointerup",Rt=At.msPointer?"MSPointerCancel":"pointercancel",Dt={touchstart:It,touchmove:Bt,touchend:Nt,touchcancel:Rt},jt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&Re(e),Gt(t,e)},touchmove:Gt,touchend:Gt,touchcancel:Gt},Ht={},Wt=!1;function Ft(t,e,i){return"touchstart"===e&&(Wt||(document.addEventListener(It,Ut,!0),document.addEventListener(Bt,qt,!0),document.addEventListener(Nt,Vt,!0),document.addEventListener(Rt,Vt,!0),Wt=!0)),jt[e]?(i=jt[e].bind(this,i),t.addEventListener(Dt[e],i,!1),i):(console.warn("wrong event specified:",e),h)}function Ut(t){Ht[t.pointerId]=t}function qt(t){Ht[t.pointerId]&&(Ht[t.pointerId]=t)}function Vt(t){delete Ht[t.pointerId]}function Gt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Ht)e.touches.push(Ht[i]);e.changedTouches=[e],t(e)}}var Jt=200;var Kt,Yt,Xt,$t,Qt,te=fe(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ee=fe(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ie="webkitTransition"===ee||"OTransition"===ee?ee+"End":"transitionend";function ne(t){return"string"==typeof t?document.getElementById(t):t}function oe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function se(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function re(t){var e=t.parentNode;e&&e.removeChild(t)}function ae(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function he(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function le(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ue(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=me(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function ce(t,e){if(void 0!==t.classList)for(var i=c(e),n=0,o=i.length;n0?2*window.devicePixelRatio:1;function Fe(t){return At.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/We:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function Ue(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var qe={__proto__:null,on:Me,off:Ce,stopPropagation:Ie,disableScrollPropagation:Be,disableClickPropagation:Ne,preventDefault:Re,stop:De,getPropagationPath:je,getMousePosition:He,getWheelDelta:Fe,isExternalTarget:Ue,addListener:Me,removeListener:Ce},Ve=C.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=ye(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=T(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,N(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=O((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=O(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=I([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var l=s.subtract(a.getCenter()),u=a.extend(s).getSize().subtract(h);o.x+=l.x<0?-u.x:u.x,o.y+=l.y<0?-u.y:u.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=i.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(n(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=n(this._handleGeolocationResponse,this),o=n(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,o,t):navigator.geolocation.getCurrentPosition(i,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new R(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),re(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(k(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)re(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=se("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new B(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=N(t),i=O(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),l=I(this.project(a,n),this.project(r,n)).getSize(),u=At.any3d?this.options.zoomSnap:1,c=h.x/l.x,d=h.y/l.y,p=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(p,n),u&&(n=Math.round(n/(u/100))*(u/100),n=e?Math.ceil(n/u)*u:Math.floor(n/u)*u),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new S(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new A(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(D(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(O(t),e)},layerPointToLatLng:function(t){var e=O(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(D(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(D(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(N(t))},distance:function(t,e){return this.options.crs.distance(D(t),D(e))},containerPointToLayerPoint:function(t){return O(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return O(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(O(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(D(t)))},mouseEventToContainerPoint:function(t){return He(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=ne(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Me(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&At.any3d,ce(t,"leaflet-container"+(At.touch?" leaflet-touch":"")+(At.retina?" leaflet-retina":"")+(At.ielt9?" leaflet-oldie":"")+(At.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=oe(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),ve(this._mapPane,new S(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(ce(t.markerPane,"leaflet-zoom-hide"),ce(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){ve(this._mapPane,new S(0,0));var n=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var o=this._zoom!==e;this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return k(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){ve(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Ce:Me;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),At.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){k(this._resizeRequest),this._resizeRequest=T((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if((i=this._targets[s(r)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(o&&!Ue(r,t))break;if(n.push(i),o)break}if(r===this._container)break;r=r.parentNode}return n.length||a||o||!this.listens(e,!0)||(n=[this]),n},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&Pe(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}var s=this._findEventTargets(t,i);if(n){for(var r=[],a=0;a0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=At.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){de(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i)||(this.panBy(i,e),0))},_createAnimProxy:function(){var t=this._proxy=se("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=te,i=this._proxy.style[e];ge(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){re(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();ge(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o)||(T((function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,i,o){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,ce(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:o}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(n(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&de(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});var Je=M.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return ce(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(re(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Ke=function(t){return new Je(t)};Ge.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=se("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=se("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)re(this._controlCorners[t]);re(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ye=Je.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+s(this),n),this._layerControlInputs.push(e),e.layerId=s(t.layer),Me(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var r=document.createElement("span");return i.appendChild(r),r.appendChild(e),r.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,Me(t,"click",Re),this.expand();var e=this;setTimeout((function(){Ce(t,"click",Re),e._preventClick=!1}))}}),Xe=Je.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=se("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=se("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Ne(s),Me(s,"click",De),Me(s,"click",o,this),Me(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";de(this._zoomInButton,e),de(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(ce(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(ce(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});Ge.mergeOptions({zoomControl:!0}),Ge.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new Xe,this.addControl(this.zoomControl))}));var $e=Je.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=se("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=se("div",e,i)),t.imperial&&(this._iScale=se("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),Qe=Je.extend({options:{position:"bottomright",prefix:''+(At.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=se("div","leaflet-control-attribution"),Ne(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});Ge.mergeOptions({attributionControl:!0}),Ge.addInitHook((function(){this.options.attributionControl&&(new Qe).addTo(this)}));Je.Layers=Ye,Je.Zoom=Xe,Je.Scale=$e,Je.Attribution=Qe,Ke.layers=function(t,e,i){return new Ye(t,e,i)},Ke.zoom=function(t){return new Xe(t)},Ke.scale=function(t){return new $e(t)},Ke.attribution=function(t){return new Qe(t)};var ti=M.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});ti.addTo=function(t,e){return t.addHandler(e,this),this};var ei={Events:E},ii=At.touch?"touchstart mousedown":"mousedown",ni=C.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){d(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Me(this._dragStartTarget,ii,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ni._dragging===this&&this.finishDrag(!0),Ce(this._dragStartTarget,ii,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!ue(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)ni._dragging===this&&this.finishDrag();else if(!(ni._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(ni._dragging=this,this._preventOutline&&Pe(this._element),we(),Kt(),this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=Te(this._element);this._startPoint=new S(e.clientX,e.clientY),this._startPos=ye(this._element),this._parentScale=ke(i);var n="mousedown"===t.type;Me(document,n?"mousemove":"touchmove",this._onMove,this),Me(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new S(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)e&&(i.push(t[n]),o=n);return oh&&(s=r,h=a);h>i&&(e[s]=1,ci(t,e,i,n,s),ci(t,e,i,s,o))}function di(t,e,i,n,o){var s,r,a,h=n?ai:mi(t,i),l=mi(e,i);for(ai=l;;){if(!(h|l))return[t,e];if(h&l)return!1;a=mi(r=pi(t,e,s=h||l,i,o),i),s===h?(t=r,h=a):(e=r,l=a)}}function pi(t,e,i,n,o){var s,r,a=e.x-t.x,h=e.y-t.y,l=n.min,u=n.max;return 8&i?(s=t.x+a*(u.y-t.y)/h,r=u.y):4&i?(s=t.x+a*(l.y-t.y)/h,r=l.y):2&i?(s=u.x,r=t.y+h*(u.x-t.x)/a):1&i&&(s=l.x,r=t.y+h*(l.x-t.x)/a),new S(s,r,o)}function mi(t,e){var i=0;return t.xe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function _i(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function fi(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,l=a*a+h*h;return l>0&&((o=((t.x-s)*a+(t.y-r)*h)/l)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new S(s,r)}function gi(t){return!f(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function vi(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),gi(t)}function yi(t,e){var i,n,o,s,r,a,h,l;if(!t||0===t.length)throw new Error("latlngs not passed");gi(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var u=D([0,0]),c=N(t);c.getNorthWest().distanceTo(c.getSouthWest())*c.getNorthEast().distanceTo(c.getNorthWest())<1700&&(u=ri(t));var d=t.length,p=[];for(i=0;in){h=(s-n)/o,l=[a.x-h*(a.x-r.x),a.y-h*(a.y-r.y)];break}var _=e.unproject(O(l));return D([_.lat+u.lat,_.lng+u.lng])}var bi={__proto__:null,simplify:li,pointToSegmentDistance:ui,closestPointOnSegment:function(t,e,i){return fi(t,e,i)},clipSegment:di,_getEdgeIntersection:pi,_getBitCode:mi,_sqClosestPointOnSegment:fi,isFlat:gi,_flat:vi,polylineCenter:yi},wi={project:function(t){return new S(t.lng,t.lat)},unproject:function(t){return new R(t.y,t.x)},bounds:new A([-180,-90],[180,90])},xi={R:6378137,R_MINOR:6356752.314245179,bounds:new A([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,o=this.R_MINOR/i,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-i*Math.log(Math.max(a,1e-10)),new S(t.lng*e*i,n)},unproject:function(t){for(var e,i=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,l=.1;h<15&&Math.abs(l)>1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=l=Math.PI/2-2*Math.atan(r*e)-a;return new R(a*i,t.x*i/n)}},Pi={__proto__:null,LonLat:wi,Mercator:xi,SphericalMercator:U},Li=e({},W,{code:"EPSG:3395",projection:xi,transformation:function(){var t=.5/(Math.PI*xi.R);return V(t,.5,-t,.5)}()}),Ti=e({},W,{code:"EPSG:4326",projection:wi,transformation:V(1/180,1,-1/180,.5)}),ki=e({},H,{projection:wi,transformation:V(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});H.Earth=W,H.EPSG3395=Li,H.EPSG3857=G,H.EPSG900913=J,H.EPSG4326=Ti,H.Simple=ki;var zi=C.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});Ge.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return s(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?f(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()=2&&e[0]instanceof R&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){Ni.prototype._setLatLngs.call(this,t),gi(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return gi(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new S(e,e);if(t=new A(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||Ni.prototype._containsPoint.call(this,t,!0)}});var Di=Ei.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=f(t)?t:t.features;if(o){for(e=0,i=o.length;e0&&o.push(o[0].slice()),o}function Vi(t,i){return t.feature?e({},t.feature,{geometry:i}):Gi(i)}function Gi(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}var Ji={toGeoJSON:function(t){return Vi(this,{type:"Point",coordinates:Ui(this.getLatLng(),t)})}};function Ki(t,e){return new Di(t,e)}Oi.include(Ji),Bi.include(Ji),Ii.include(Ji),Ni.include({toGeoJSON:function(t){var e=!gi(this._latlngs);return Vi(this,{type:(e?"Multi":"")+"LineString",coordinates:qi(this._latlngs,e?1:0,!1,t)})}}),Ri.include({toGeoJSON:function(t){var e=!gi(this._latlngs),i=e&&!gi(this._latlngs[0]),n=qi(this._latlngs,i?2:e?1:0,!0,t);return e||(n=[n]),Vi(this,{type:(i?"Multi":"")+"Polygon",coordinates:n})}}),Mi.include({toMultiPoint:function(t){var e=[];return this.eachLayer((function(i){e.push(i.toGeoJSON(t).geometry.coordinates)})),Vi(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(t){var e=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===e)return this.toMultiPoint(t);var i="GeometryCollection"===e,n=[];return this.eachLayer((function(e){if(e.toGeoJSON){var o=e.toGeoJSON(t);if(i)n.push(o.geometry);else{var s=Gi(o);"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}})),i?Vi(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var Yi=Ki,Xi=zi.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,i){this._url=t,this._bounds=N(e),d(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(ce(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){re(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&he(this._image),this},bringToBack:function(){return this._map&&le(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=N(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,e=this._image=t?this._url:se("img");ce(e,"leaflet-image-layer"),this._zoomAnimated&&ce(e,"leaflet-zoom-animated"),this.options.className&&ce(e,this.options.className),e.onselectstart=h,e.onmousemove=h,e.onload=n(this.fire,this,"load"),e.onerror=n(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=e.src:(e.src=this._url,e.alt=this.options.alt)},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;ge(this._image,i,e)},_reset:function(){var t=this._image,e=new A(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();ve(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){_e(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),$i=Xi.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,e=this._image=t?this._url:se("video");if(ce(e,"leaflet-image-layer"),this._zoomAnimated&&ce(e,"leaflet-zoom-animated"),this.options.className&&ce(e,this.options.className),e.onselectstart=h,e.onmousemove=h,e.onloadeddata=n(this.fire,this,"load"),t){for(var i=e.getElementsByTagName("source"),o=[],s=0;s0?o:[e.src]}else{f(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var r=0;ro?(e.height=o+"px",ce(t,s)):de(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();ve(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan)if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning)this._autopanning=!1;else{var t=this._map,e=parseInt(oe(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new S(this._containerLeft,-i-this._containerBottom);o._add(ye(this._container));var s=t.layerPointToContainerPoint(o),r=O(this.options.autoPanPadding),a=O(this.options.autoPanPaddingTopLeft||r),h=O(this.options.autoPanPaddingBottomRight||r),l=t.getSize(),u=0,c=0;s.x+n+h.x>l.x&&(u=s.x+n-l.x+h.x),s.x-u-a.x<0&&(u=s.x-a.x),s.y+i+h.y>l.y&&(c=s.y+i-l.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(u||c)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([u,c]))}},_getAnchor:function(){return O(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ge.mergeOptions({closePopupOnClick:!0}),Ge.include({openPopup:function(t,e,i){return this._initOverlay(en,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),zi.include({bindPopup:function(t,e){return this._popup=this._initOverlay(en,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof Ei||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){De(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof Ai?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var nn=tn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){tn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){tn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=tn.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=se("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+s(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,l=o.offsetHeight,u=O(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=l):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=l/2):"right"===a?(e=0,i=l/2):"left"===a?(e=h,i=l/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new S(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var p=new S(d,c);if(p.z=this._tileZoom,this._isValidTile(p)){var m=this._tiles[this._tileCoordsToKey(p)];m?m.current=!0:r.push(p)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var _=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return N(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new B(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new S(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(re(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){ce(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=h,t.onmousemove=h,At.ielt9&&this.options.opacity<1&&_e(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),n(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&T(n(this._tileReady,this,t,null,s)),ve(s,i),this._tiles[o]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var o=this._tileCoordsToKey(t);(i=this._tiles[o])&&(i.loaded=+new Date,this._map._fadeAnimated?(_e(i.el,0),k(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(ce(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),At.ielt9||!this._map._fadeAnimated?T(this._pruneTiles,this):setTimeout(n(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new S(this._wrapX?a(t.x,this._wrapX):t.x,this._wrapY?a(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new A(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var rn=sn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=d(this,e)).detectRetina&&At.retina&&e.maxZoom>0?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Me(i,"load",n(this._tileOnLoad,this,e,i)),Me(i,"error",n(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var i={r:At.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=n),i["-y"]=n}return _(this._url,e(i,this.options))},_tileOnLoad:function(t,e){At.ielt9?setTimeout(n(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=h,e.onerror=h,!e.complete)){e.src=v;var i=this._tiles[t].coords;re(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",v),sn.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==v))return sn.prototype._tileReady.call(this,t,e,i)}});function an(t,e){return new rn(t,e)}var hn=rn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var n=e({},this.defaultWmsParams);for(var o in i)o in this.options||(n[o]=i[o]);var s=(i=d(this,i)).detectRetina&&At.retina?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,rn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=I(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Ti?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=rn.prototype.getTileUrl.call(this,t);return a+p(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}});rn.WMS=hn,an.wms=function(t,e){return new hn(t,e)};var ln=zi.extend({options:{padding:.1},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),ce(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));At.any3d?ge(this._container,s,i):ve(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new A(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),un=ln.extend({options:{tolerance:0},getEvents:function(){var t=ln.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){ln.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Me(t,"mousemove",this._onMouseMove,this),Me(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Me(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){k(this._redrawRequest),delete this._ctx,re(this._container),Ce(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){ln.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=At.retina?2:1;ve(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",At.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){ln.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),pn={_initContainer:function(){this._container=se("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ln.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=dn("shape");ce(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=dn("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;re(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=dn("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=f(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=dn("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){he(t._container)},_bringToBack:function(t){le(t._container)}},mn=At.vml?dn:K,fn=ln.extend({_initContainer:function(){this._container=mn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=mn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){re(this._container),Ce(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){ln.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),ve(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=mn("path");t.options.className&&ce(e,t.options.className),t.options.interactive&&ce(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){re(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,Y(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){he(t._path)},_bringToBack:function(t){le(t._path)}});function gn(t){return At.svg||At.vml?new fn(t):null}At.vml&&fn.include(pn),Ge.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&cn(t)||gn(t)}});var vn=Ri.extend({initialize:function(t,e){Ri.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=N(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});fn.create=mn,fn.pointsToPath=Y,Di.geometryToLayer=ji,Di.coordsToLatLng=Wi,Di.coordsToLatLngs=Fi,Di.latLngToCoords=Ui,Di.latLngsToCoords=qi,Di.getFeature=Vi,Di.asFeature=Gi,Ge.mergeOptions({boxZoom:!0});var yn=ti.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Me(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Ce(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){re(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),Kt(),we(),this._startPoint=this._map.mouseEventToContainerPoint(t),Me(document,{contextmenu:De,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=se("div","leaflet-zoom-box",this._container),ce(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new A(this._point,this._startPoint),i=e.getSize();ve(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(re(this._box),de(this._container,"leaflet-crosshair")),Yt(),xe(),Ce(document,{contextmenu:De,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(n(this._resetState,this),0);var e=new B(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});Ge.addInitHook("addHandler","boxZoom",yn),Ge.mergeOptions({doubleClickZoom:!0});var bn=ti.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});Ge.addInitHook("addHandler","doubleClickZoom",bn),Ge.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var wn=ti.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ni(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}ce(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){de(this._map._container,"leaflet-grab"),de(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=N(this._map.options.maxBounds);this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});Ge.addInitHook("addHandler","scrollWheelZoom",Pn);Ge.mergeOptions({tapHold:At.touchNative&&At.safari&&At.mobile,tapTolerance:15});var Ln=ti.extend({addHooks:function(){Me(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Ce(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new S(e.clientX,e.clientY),this._holdTimeout=setTimeout(n((function(){this._cancel(),this._isTapValid()&&(Me(document,"touchend",Re),Me(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),600),Me(document,"touchend touchcancel contextmenu",this._cancel,this),Me(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){Ce(document,"touchend",Re),Ce(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),Ce(document,"touchend touchcancel contextmenu",this._cancel,this),Ce(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new S(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});Ge.addInitHook("addHandler","tapHold",Ln),Ge.mergeOptions({touchZoom:At.touch,bounceAtZoomLimits:!0});var Tn=ti.extend({addHooks:function(){ce(this._map._container,"leaflet-touch-zoom"),Me(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){de(this._map._container,"leaflet-touch-zoom"),Ce(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Me(document,"touchmove",this._onTouchMove,this),Me(document,"touchend touchcancel",this._onTouchEnd,this),Re(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(o)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),k(this._animRequest);var a=n(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=T(a,this,!0),Re(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,k(this._animRequest),Ce(document,"touchmove",this._onTouchMove,this),Ce(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Ge.addInitHook("addHandler","touchZoom",Tn),Ge.BoxZoom=yn,Ge.DoubleClickZoom=bn,Ge.Drag=wn,Ge.Keyboard=xn,Ge.ScrollWheelZoom=Pn,Ge.TapHold=Ln,Ge.TouchZoom=Tn,t.Bounds=A,t.Browser=At,t.CRS=H,t.Canvas=un,t.Circle=Bi,t.CircleMarker=Ii,t.Class=M,t.Control=Je,t.DivIcon=on,t.DivOverlay=tn,t.DomEvent=qe,t.DomUtil=ze,t.Draggable=ni,t.Evented=C,t.FeatureGroup=Ei,t.GeoJSON=Di,t.GridLayer=sn,t.Handler=ti,t.Icon=Ci,t.ImageOverlay=Xi,t.LatLng=R,t.LatLngBounds=B,t.Layer=zi,t.LayerGroup=Mi,t.LineUtil=bi,t.Map=Ge,t.Marker=Oi,t.Mixin=ei,t.Path=Ai,t.Point=S,t.PolyUtil=hi,t.Polygon=Ri,t.Polyline=Ni,t.Popup=en,t.PosAnimation=Ve,t.Projection=Pi,t.Rectangle=vn,t.Renderer=ln,t.SVG=fn,t.SVGOverlay=Qi,t.TileLayer=rn,t.Tooltip=nn,t.Transformation=q,t.Util=z,t.VideoOverlay=$i,t.bind=n,t.bounds=I,t.canvas=cn,t.circle=function(t,e,i){return new Bi(t,e,i)},t.circleMarker=function(t,e){return new Ii(t,e)},t.control=Ke,t.divIcon=function(t){return new on(t)},t.extend=e,t.featureGroup=function(t,e){return new Ei(t,e)},t.geoJSON=Ki,t.geoJson=Yi,t.gridLayer=function(t){return new sn(t)},t.icon=function(t){return new Ci(t)},t.imageOverlay=function(t,e,i){return new Xi(t,e,i)},t.latLng=D,t.latLngBounds=N,t.layerGroup=function(t,e){return new Mi(t,e)},t.map=function(t,e){return new Ge(t,e)},t.marker=function(t,e){return new Oi(t,e)},t.point=O,t.polygon=function(t,e){return new Ri(t,e)},t.polyline=function(t,e){return new Ni(t,e)},t.popup=function(t,e){return new en(t,e)},t.rectangle=function(t,e){return new vn(t,e)},t.setOptions=d,t.stamp=s,t.svg=gn,t.svgOverlay=function(t,e,i){return new Qi(t,e,i)},t.tileLayer=an,t.tooltip=function(t,e){return new nn(t,e)},t.transformation=V,t.version="1.9.4",t.videoOverlay=function(t,e,i){return new $i(t,e,i)};var kn=window.L;t.noConflict=function(){return window.L=kn,this},window.L=t}(e)},518:(t,e,i)=>{"use strict";(n=i(196))&&"object"==typeof n&&"default"in n&&n.default;var n,o=i(451),s=new o,r=s.getBrowser(),a=(s.getCPU(),s.getDevice()),h=s.getEngine(),l=s.getOS(),u=s.getUA();var c="mobile",d="tablet",p="Chrome",m="Firefox",_="Opera",f="Yandex",g="Safari",v="Internet Explorer",y="Edge",b="Chromium",w="IE",x="Mobile Safari",P="MIUI Browser",L="Samsung Browser",T="iOS",k="Android",z="Windows Phone",M="Windows",E="Mac OS",C=function(t){return t||(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"none")},S=function(){return!("undefined"==typeof window||!window.navigator&&!navigator)&&(window.navigator||navigator)},Z=function(t){var e=S();return e&&e.platform&&(-1!==e.platform.indexOf(t)||"MacIntel"===e.platform&&e.maxTouchPoints>1&&!window.MSStream)},O=function(t){return t.type===c},A=function(t){return t.type===d},I=function(t){var e=t.type;return e===c||e===d},B=function(t){return"smarttv"===t.type},N=function(t){return undefined===t.type},R=function(t){return"wearable"===t.type},D=function(t){return"console"===t.type},j=function(t){return"embedded"===t.type},H=function(t){var e=t.vendor;return C(e)},W=function(t){var e=t.model;return C(e)},F=function(t){var e=t.type;return C(e,"browser")},U=function(t){return t.name===k},q=function(t){return t.name===M},V=function(t){return t.name===E},G=function(t){return t.name===z},J=function(t){return t.name===T},K=function(t){var e=t.version;return C(e)},Y=function(t){var e=t.name;return C(e)},X=function(t){return t.name===p},$=function(t){return t.name===m},Q=function(t){return t.name===b},tt=function(t){return t.name===y},et=function(t){return t.name===f},it=function(t){var e=t.name;return e===g||e===x},nt=function(t){return t.name===x},ot=function(t){return t.name===_},st=function(t){var e=t.name;return e===v||e===w},rt=function(t){return t.name===P},at=function(t){return t.name===L},ht=function(t){var e=t.version;return C(e)},lt=function(t){var e=t.major;return C(e)},ut=function(t){var e=t.name;return C(e)},ct=function(t){var e=t.name;return C(e)},dt=function(t){var e=t.version;return C(e)},pt=function(){var t=S(),e=t&&t.userAgent&&t.userAgent.toLowerCase();return"string"==typeof e&&/electron/.test(e)},mt=function(t){return"string"==typeof t&&-1!==t.indexOf("Edg/")},_t=function(){var t=S();return t&&(/iPad|iPhone|iPod/.test(t.platform)||"MacIntel"===t.platform&&t.maxTouchPoints>1)&&!window.MSStream},ft=function(){return Z("iPad")},gt=function(){return Z("iPhone")},vt=function(){return Z("iPod")},yt=function(t){return C(t)};B(a),D(a),R(a),j(a),nt(r)||ft(),Q(r);var bt=I(a)||ft(),wt=(O(a),A(a)||ft(),N(a),N(a),U(l),G(l),J(l)||ft(),X(r),$(r),it(r));ot(r),st(r),K(l),Y(l),ht(r),lt(r),ut(r),H(a),W(a),ct(h),dt(h),yt(u),tt(r)||mt(u),et(r),F(a),_t(),ft(),gt(),vt(),pt(),mt(u),tt(r)&&mt(u),q(l),V(l),rt(r),at(r);e.tq=bt,e.G6=wt},451:function(t,e,i){var n;!function(o,s){"use strict";var r="function",a="undefined",h="object",l="string",u="major",c="model",d="name",p="type",m="vendor",_="version",f="architecture",g="console",v="mobile",y="tablet",b="smarttv",w="wearable",x="embedded",P="Amazon",L="Apple",T="ASUS",k="BlackBerry",z="Browser",M="Chrome",E="Firefox",C="Google",S="Huawei",Z="LG",O="Microsoft",A="Motorola",I="Opera",B="Samsung",N="Sharp",R="Sony",D="Xiaomi",j="Zebra",H="Facebook",W="Chromium OS",F="Mac OS",U=function(t){for(var e={},i=0;i0?2===a.length?typeof a[1]==r?this[a[0]]=a[1].call(this,u):this[a[0]]=a[1]:3===a.length?typeof a[1]!==r||a[1].exec&&a[1].test?this[a[0]]=u?u.replace(a[1],a[2]):s:this[a[0]]=u?a[1].call(this,u,a[2]):s:4===a.length&&(this[a[0]]=u?a[3].call(this,u.replace(a[1],a[2])):s):this[a]=u||s;c+=2}},K=function(t,e){for(var i in e)if(typeof e[i]===h&&e[i].length>0){for(var n=0;n2&&(t[c]="iPad",t[p]=y),t},this.getEngine=function(){var t={};return t[d]=s,t[_]=s,J.call(t,n,b.engine),t},this.getOS=function(){var t={};return t[d]=s,t[_]=s,J.call(t,n,b.os),w&&!t[d]&&g&&"Unknown"!=g.platform&&(t[d]=g.platform.replace(/chrome os/i,W).replace(/macos/i,F)),t},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return n},this.setUA=function(t){return n=typeof t===l&&t.length>500?G(t,500):t,this},this.setUA(n),this};$.VERSION="1.0.37",$.BROWSER=U([d,_,u]),$.CPU=U([f]),$.DEVICE=U([c,m,p,g,v,b,y,w,x]),$.ENGINE=$.OS=U([d,_]),typeof e!==a?(t.exports&&(e=t.exports=$),e.UAParser=$):i.amdO?(n=function(){return $}.call(e,i,e,t))===s||(t.exports=n):typeof o!==a&&(o.UAParser=$);var Q=typeof o!==a&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var tt=new $;Q.ua=tt.getResult(),Q.ua.get=function(){return tt.getUA()},Q.ua.set=function(t){tt.setUA(t);var e=tt.getResult();for(var i in e)Q.ua[i]=e[i]}}}("object"==typeof window?window:this)},196:t=>{"use strict";t.exports=window.React}},e={};function i(n){var o=e[n];if(void 0!==o)return o.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,i),s.exports}i.amdO={},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";const t=window.wp.blocks,e=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"ootb/openstreetmap","version":"2.4.1","title":"OpenStreetMap by Out of the Block","category":"common","icon":"location-alt","description":"A map block for the Gutenberg Editor using OpenStreetMaps and Leaflet that needs no API keys and works out of the box.","supports":{"html":false,"align":["wide","full"]},"keywords":["Map block","Open Street Maps","Contact","Locations"],"attributes":{"mapHeight":{"type":"integer","default":400},"markers":{"type":"array","default":[]},"zoom":{"type":"integer","default":8},"minZoom":{"type":"integer","default":2},"maxZoom":{"type":"integer","default":18},"dragging":{"type":"boolean","default":true},"touchZoom":{"type":"boolean","default":true},"doubleClickZoom":{"type":"boolean","default":true},"scrollWheelZoom":{"type":"boolean","default":true},"defaultIcon":{"type":"object","default":null},"addingMarker":{"type":"string","default":""},"keywords":{"type":"string","default":""},"showDefaultBounds":{"type":"boolean","default":true},"bounds":{"type":"array","default":[[37.97155174977503,23.72656345367432]]},"provider":{"type":"string","default":"openstreetmap"},"mapType":{"type":"string","default":"marker"},"showMarkers":{"type":"boolean","default":true},"shapeColor":{"type":"string","default":"#008EFF"},"shapeWeight":{"type":"integer","default":3},"shapeText":{"type":"string","default":""},"isDraggingMarker":{"type":"boolean","default":false},"searchCount":{"type":"number","default":0},"openAImode":{"type":"string","default":""}},"textdomain":"ootb-openstreetmap","editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css"}');var n=i(196);const o=window.wp.i18n,s=window.wp.components,r=window.wp.element;function a({props:t}){const{attributes:{provider:e},setAttributes:i}=t,{adminUrl:a,options:{api_mapbox:h}}=ootbGlobal,l=[{label:(0,o.__)("OpenStreetMap","ootb-openstreetmap"),value:"openstreetmap"},{label:(0,o.__)("Mapbox","ootb-openstreetmap"),value:"mapbox"},{label:(0,o.__)("Stamen","ootb-openstreetmap"),value:"stamen"}];let u="";return"mapbox"!==e||h?e&&"openstreetmap"!==e||(u=(0,n.createElement)("span",null,(0,r.createInterpolateElement)((0,o.__)("Heavy usage of OSM tiles is forbidden, and you might want to switch to a different tile provider. Read more on the plugin settings.","ootb-openstreetmap"),{a:(0,n.createElement)("a",{href:a})}))):u=(0,n.createElement)("span",null,(0,r.createInterpolateElement)((0,o.__)("Make sure that you provided a valid API key on the plugin settings.","ootb-openstreetmap"),{a:(0,n.createElement)("a",{href:a})})),(0,n.createElement)(s.SelectControl,{label:(0,o.__)("Tile Layer Provider","ootb-openstreetmap"),value:e,options:l,onChange:t=>{i({provider:t})},help:u})}function h({props:t}){const{attributes:{mapType:e,showMarkers:i,shapeColor:a,shapeWeight:h},setAttributes:l}=t,u=[{label:(0,o.__)("Markers","ootb-openstreetmap"),value:"marker"},{label:(0,o.__)("Polygon","ootb-openstreetmap"),value:"polygon"},{label:(0,o.__)("Polyline","ootb-openstreetmap"),value:"polyline"}];return(0,n.createElement)(r.Fragment,null,(0,n.createElement)(s.SelectControl,{label:(0,o.__)("Map type","ootb-openstreetmap"),value:e,options:u,onChange:t=>{l({mapType:t})},help:(0,o.__)("How the map should display its locations.","ootb-openstreetmap")}),"marker"!==e?(0,n.createElement)(r.Fragment,null,(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Show Markers","ootb-openstreetmap"),checked:!!i,onChange:()=>l({showMarkers:!i}),help:i?(0,o.__)("Show the markers on the frontend.","ootb-openstreetmap"):(0,o.__)("Hide the markers on the frontend (does not affect the Backend).","ootb-openstreetmap")}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Line weight","ootb-openstreetmap"),value:h,onChange:t=>{l({shapeWeight:t})},min:1,max:100}),(0,n.createElement)(s.BaseControl,{label:(0,o.__)("Shape color","ootb-openstreetmap")},(0,n.createElement)(s.ColorPicker,{color:a,onChange:t=>{l({shapeColor:t})},enableAlpha:!1,defaultValue:null}))):null)}function l(){const{pluginDirUrl:t}=ootbGlobal;return t+"assets/vendor/leaflet/images/marker-icon.png"}function u(t,e){const{attributes:{markers:i,defaultIcon:n}}=t,{pluginDirUrl:o}=ootbGlobal,s=()=>void 0!==e&&i[e]?.icon?i[e].icon:null!=n?n:null,r=s()?Math.round(s().width/2):12,a=s()?Math.round(s().height):41;return{iconUrl:s()?s().url:l(),iconAnchor:[r,a],popupAnchor:[0,-Math.abs(a)]}}const c=window.wp.blockEditor;function d({props:t,index:e}){const{attributes:{markers:i},setAttributes:r}=t,a=void 0!==e,h=t=>{if(a){let n=[...i];n[e].icon=t,r({markers:n})}else r({defaultIcon:t})},d=u(t,e);return(0,n.createElement)(c.MediaUploadCheck,null,(0,n.createElement)("div",{className:"ootb-openstreetmap--icon"},a?null:(0,n.createElement)("img",{src:d.iconUrl,alt:(0,o.__)("Map Marker","ootb-openstreetmap")}),(0,n.createElement)("div",{className:"gmp-openstreetmap--buttons"},(0,n.createElement)(c.MediaUpload,{onSelect:t=>{h(t)},allowedTypes:["image"],value:d,render:({open:t})=>(0,n.createElement)(s.Button,{onClick:t,icon:"format-gallery",label:(0,o.__)("Change the Marker icon","ootb-openstreetmap"),isSecondary:!a},a?null:(0,o.__)("Change","ootb-openstreetmap"))}),function(t,e,i){const{attributes:{defaultIcon:n}}=t;return!(void 0!==i||!n)||!(void 0===i||!e)&&![n?.icon,l()].includes(e)}(t,d?.iconUrl,e)?(0,n.createElement)(s.Button,{onClick:()=>{h(null)},icon:"image-rotate",label:(0,o.__)("Restore the Marker icon","ootb-openstreetmap"),isSecondary:!a},a?null:(0,o.__)("Restore","ootb-openstreetmap")):null)))}function p({props:t}){const{attributes:{mapHeight:e,zoom:i},setAttributes:l}=t;return(0,n.createElement)(r.Fragment,null,(0,n.createElement)(a,{props:t}),(0,n.createElement)(h,{props:t}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Height (pixels)","ootb-openstreetmap"),value:e,onChange:t=>{l({mapHeight:t})},min:50,max:1e3}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Zoom","ootb-openstreetmap"),value:i,onChange:t=>{l({zoom:t,shouldUpdateZoom:!0})},min:0,max:18}),(0,n.createElement)(d,{props:t}))}function m({props:t}){const{attributes:{minZoom:e,maxZoom:i,dragging:a,touchZoom:h,doubleClickZoom:l,scrollWheelZoom:u},setAttributes:c}=t;return(0,n.createElement)(r.Fragment,null,(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Map dragging","ootb-openstreetmap"),checked:!!a,onChange:()=>c({dragging:!a}),help:a?(0,o._x)("Enabled.","Map dragging setting","ootb-openstreetmap"):(0,o._x)("Disabled.","Map dragging setting","ootb-openstreetmap")}),(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Touch zoom","ootb-openstreetmap"),checked:!!h,onChange:()=>c({touchZoom:!h}),help:h?(0,o._x)("Enabled.","Touch zoom setting","ootb-openstreetmap"):(0,o._x)("Disabled.","Touch zoom setting","ootb-openstreetmap")}),(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Double-click zoom","ootb-openstreetmap"),checked:!!l,onChange:()=>c({doubleClickZoom:!l}),help:l?(0,o._x)("Enabled.","Double-click zoom setting","ootb-openstreetmap"):(0,o._x)("Disabled.","Double-click zoom setting","ootb-openstreetmap")}),(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Scroll Wheel zoom","ootb-openstreetmap"),checked:!!u,onChange:()=>c({scrollWheelZoom:!u}),help:u?(0,o._x)("Enabled.","Scroll Wheel zoom setting","ootb-openstreetmap"):(0,o._x)("Disabled.","Scroll Wheel zoom setting","ootb-openstreetmap")}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Minimum Zoom","ootb-openstreetmap"),value:e,onChange:t=>{c({minZoom:t,maxZoom:i<=e?e+1:i})},min:0,max:18}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Maximum Zoom","ootb-openstreetmap"),value:i,onChange:t=>{c({maxZoom:t,minZoom:e>=i?i-1:e})},min:0,max:18,help:(0,o.__)("Tip: setting the same minimum and maximum zoom practically locks zoom at that level.","ootb-openstreetmap")}))}function _({props:t}){const{attributes:{markers:e},clientId:i}=t,r=e&&0{(t=>{const n=t.currentTarget.files[0];if(!n||0===n.length)return;const s=new FileReader;s.readAsText(n,"UTF-8"),s.onload=function(t){const n=function(t){try{const i=JSON.parse(t.toString());if(i&&"object"==typeof i){let t=[];for(const n of i){var e;if(!n.lat||!n.lng)continue;if(!f(n.lat,n.lng))continue;n.id=null!==(e=n.id)&&void 0!==e?e:Date.now();const{lat:i,lng:o,text:s,id:r}=n;t.push({lat:i,lng:o,text:s,id:r})}return t}}catch(t){return!1}return!1}(t.target.result);n&&i({markers:e.concat(n),shouldUpdateBounds:!0})},s.onerror=function(t){console.log((0,o.__)("Error reading file","ootb-openstreetmap"))}})(t)}}))}function v({props:t}){return(0,n.createElement)(r.Fragment,null,(0,n.createElement)(_,{props:t}),(0,n.createElement)(g,{props:t}))}function y({props:t}){return(0,n.createElement)(c.InspectorControls,null,(0,n.createElement)(s.PanelBody,{title:(0,o.__)("Main settings","ootb-openstreetmap"),initialOpen:!0},(0,n.createElement)(p,{props:t})),(0,n.createElement)(s.PanelBody,{title:(0,o.__)("Map behavior","ootb-openstreetmap"),initialOpen:!1},(0,n.createElement)(m,{props:t})),(0,n.createElement)(s.PanelBody,{title:(0,o.__)("Map data","ootb-openstreetmap"),initialOpen:!1},(0,n.createElement)(v,{props:t})))}function b(t,e=null){e&&t&&e.fitBounds(t,{padding:[50,50]})}function w(t,e=[],i=null){const{attributes:{markers:n,zoom:o},setAttributes:s}=t;let r=[];if(e&&void 0!==e.lat&&r.push([e.lat,e.lng]),Object.entries(n).forEach((([t,e])=>{e&&r.push([e.lat,e.lng])})),r.length&&(s({bounds:r}),b(r,i)),i){const t=i.getZoom();o!==t&&s({zoom:t})}}function x(t,e){const{attributes:{searchResults:i,searchCount:n},setAttributes:o}=t;let s,r,a;if(void 0!==i&&0${u}

`:""}else{var h,l;s=null!==(h=e.latlng.lat)&&void 0!==h?h:"",r=null!==(l=e.latlng.lng)&&void 0!==l?l:"",a=""}if(s&&r)return{lat:s.toString(),lng:r.toString(),text:a,id:Date.now()}}function P({props:t}){const{attributes:{markers:e,searchResults:i,mapObj:o,inputRef:r},setAttributes:a}=t,h=i=>{const n=x(t,i);a({markers:[...e,n],keywords:"",searchResults:[]}),w(t,n,o),r&&r.target.focus()};return i&&i.length?(0,n.createElement)("div",{className:"ootb-openstreetmap--search-results"},i.map(((t,e)=>{const{display_name:i}=t;return(0,n.createElement)(s.Button,{key:e,autoFocus:0===e,onClick:h,"data-index":e},i)}))):null}function L(t,e=0){return"https://nominatim.openstreetmap.org/search?q="+t+(e>0?"&limit="+e:"")+"&format=json"}async function T(t){const{attributes:{markers:e,keywords:i,mapObj:n,openAImode:o},setAttributes:s}=t;if(!i)return;if(!o)return;let r=[...e];return s({openAImode:"connecting"}),wp.apiFetch({path:"/ootb-openstreetmap/v1/openai/",method:"POST",data:{prompt:i}}).then((t=>{let e=[];try{const i=t?.choices[0]?.message?.content;i&&"invalid_question"!==i?(e=JSON.parse(i),s({openAImode:"success"})):(s({openAImode:"invalid_question"}),setTimeout((()=>{s({openAImode:"",keywords:""})}),3e3))}catch(t){s({openAImode:"error"}),console.error("Error parsing OpenAI response")}let i=e?.map(((t,e)=>new Promise((i=>setTimeout((()=>{(t=>{t&&t.length>2&&fetch(L(t,1)).then((t=>{if(!t.ok)throw new Error(`Network response was not ok, status: ${t.status}`);return t.json()})).then((t=>{(t=>{var e,i;const o={lat:null!==(e=t?.lat.toString())&&void 0!==e?e:"",lng:null!==(i=t?.lon.toString())&&void 0!==i?i:"",text:t?.display_name?`

${t.display_name}

`:"",id:Date.now()};r.push(o);let a=[];r.length>0&&(r.forEach((t=>{t&&a.push([t.lat,t.lng])})),s({bounds:a,markers:r,openAImode:"working"}),b(a,n))})(t[0])})).catch((t=>{s({openAImode:"error"}),setTimeout((()=>{s({openAImode:"",keywords:""})}),3e3),console.error("There has been a problem with the fetch operation:",JSON.stringify(t))}))})(t),i()}),1e3*(e+1))))));Promise.all(i).then((()=>{setTimeout((()=>{s({openAImode:"",keywords:""})}),1e3)}))})).catch((t=>{s({openAImode:"error"}),setTimeout((()=>{s({openAImode:"",keywords:""})}),3e3),console.error("Error fetching OpenAI response: "+JSON.stringify(t))}))}function k({props:t}){const{attributes:{keywords:e,inputRef:i,searchResults:a,openAImode:h},setAttributes:l}=t,u=()=>{e&&e.length>2&&fetch(L(e)).then((t=>{if(200===t.status)return t.json()})).then((t=>{l({searchResults:t})}))};return(0,n.createElement)(r.Fragment,null,(0,n.createElement)("div",{className:"ootb-openstreetmap--searchbox"},(0,n.createElement)(s.TextControl,{value:e,onChange:t=>{l({keywords:t,openAImode:/\bplease\b/i.test(t)?"started":""})},onKeyDown:e=>{i||l({inputRef:e}),"Enter"===e.key&&(T(t).then((()=>null)),u())},placeholder:(0,o.__)("Enter your keywords...","ootb-openstreetmap")}),(0,n.createElement)(s.Button,{onClick:()=>{T(t).then((()=>null)),a&&a.length?i&&(i.target.focus(),l({searchResults:[],keywords:""})):u()},icon:a&&a.length>0?"no":h.length?"admin-comments":"search",showTooltip:!0,label:a&&a.length>0?(0,o.__)("Clear results","ootb-openstreetmap"):(0,o.__)("Find locations","ootb-openstreetmap"),disabled:!(e&&e.length>2)})),(0,n.createElement)(P,{props:t}))}function z(t){const e=t.map((t=>t[0])),i=t.map((t=>t[1])),n=(Math.min(...e)+Math.max(...e))/2,o=(Math.min(...i)+Math.max(...i))/2;return n&&!isNaN(n)&&o&&!isNaN(o)?[n,o]:null}function M(t){const{attributes:{bounds:e,showDefaultBounds:i,markers:n}}=t;return!0===i?z(ootbGlobal.defaultLocation):z(e)||[n[0]?.lat,n[0]?.lng]}const E=window.ReactDOM;function C(t,e){return Object.freeze({...t,...e})}const S=(0,n.createContext)(null),Z=S.Provider;function O(){const t=(0,n.useContext)(S);if(null==t)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of ");return t}function A(t){function e(e,i){const{instance:o,context:s}=t(e).current;return(0,n.useImperativeHandle)(i,(()=>o)),null==e.children?null:n.createElement(Z,{value:s},e.children)}return(0,n.forwardRef)(e)}function I(t,e,i){return Object.freeze({instance:t,context:e,container:i})}function B(t,e){return null==e?function(e,i){const o=(0,n.useRef)();return o.current||(o.current=t(e,i)),o}:function(i,o){const s=(0,n.useRef)();s.current||(s.current=t(i,o));const r=(0,n.useRef)(i),{instance:a}=s.current;return(0,n.useEffect)((function(){r.current!==i&&(e(a,i,r.current),r.current=i)}),[a,i,o]),s}}function N(t,e){const i=(0,n.useRef)(e);(0,n.useEffect)((function(){e!==i.current&&null!=t.attributionControl&&(null!=i.current&&t.attributionControl.removeAttribution(i.current),null!=e&&t.attributionControl.addAttribution(e)),i.current=e}),[t,e])}function R(t,e){const i=(0,n.useRef)();(0,n.useEffect)((function(){return null!=e&&t.instance.on(e),i.current=e,function(){null!=i.current&&t.instance.off(i.current),i.current=null}}),[t,e])}function D(t,e){const i=t.pane??e.pane;return i?{...t,pane:i}:t}function j(t,e){(0,n.useEffect)((function(){return(e.layerContainer??e.map).addLayer(t.instance),function(){e.layerContainer?.removeLayer(t.instance),e.map.removeLayer(t.instance)}}),[e,t])}function H(t){return function(e){const i=O(),n=t(D(e,i),i);return N(i.map,e.attribution),R(n.current,e.eventHandlers),j(n.current,i),n}}function W(t,e){return A((i=B(t,e),function(t){const e=O(),o=i(D(t,e),e);return R(o.current,t.eventHandlers),j(o.current,e),function(t,e){const i=(0,n.useRef)();(0,n.useEffect)((function(){if(e.pathOptions!==i.current){const n=e.pathOptions??{};t.instance.setStyle(n),i.current=n}}),[t,e])}(o.current,t),o}));var i}var F=i(243),U=i.n(F);const q=function(t){function e(e,i){const{instance:o}=t(e).current;return(0,n.useImperativeHandle)(i,(()=>o)),null}return(0,n.forwardRef)(e)}(H(B((function({url:t,...e},i){return I(new F.TileLayer(t,D(e,i)),i)}),(function(t,e,i){!function(t,e,i){const{opacity:n,zIndex:o}=e;null!=n&&n!==i.opacity&&t.setOpacity(n),null!=o&&o!==i.zIndex&&t.setZIndex(o)}(t,e,i);const{url:n}=e;null!=n&&n!==i.url&&t.setUrl(n)}))));function V({props:t}){const{attributes:{provider:e}}=t,{options:{api_mapbox:i},providers:{openstreetmap:o,mapbox:s,stamen:a}}=ootbGlobal;let h=o.url,l=o.attribution;"mapbox"===e&&i&&(h=s.url+i,l=s.attribution),"stamen"===e&&(h=a.url,l=a.attribution);const u=(0,r.useRef)(null);return(0,r.useEffect)((()=>{u.current.setUrl(h)}),[h]),(0,n.createElement)(q,{ref:u,url:h,attribution:l})}const G=A(H(B((function({position:t,...e},i){const n=new F.Marker(t,e);return I(n,C(i,{overlayContainer:n}))}),(function(t,e,i){e.position!==i.position&&t.setLatLng(e.position),null!=e.icon&&e.icon!==i.icon&&t.setIcon(e.icon),null!=e.zIndexOffset&&e.zIndexOffset!==i.zIndexOffset&&t.setZIndexOffset(e.zIndexOffset),null!=e.opacity&&e.opacity!==i.opacity&&t.setOpacity(e.opacity),null!=t.dragging&&e.draggable!==i.draggable&&(!0===e.draggable?t.dragging.enable():t.dragging.disable())})))),J=function(t,e){const i=function(t,e){return function(i,n){const o=O(),s=t(D(i,o),o);return N(o.map,i.attribution),R(s.current,i.eventHandlers),e(s.current,o,i,n),s}}(B((function(t,e){return I(new F.Popup(t,e.overlayContainer),e)})),(function(t,e,{position:i},o){(0,n.useEffect)((function(){const{instance:n}=t;function s(t){t.popup===n&&(n.update(),o(!0))}function r(t){t.popup===n&&o(!1)}return e.map.on({popupopen:s,popupclose:r}),null==e.overlayContainer?(null!=i&&n.setLatLng(i),n.openOn(e.map)):e.overlayContainer.bindPopup(n),function(){e.map.off({popupopen:s,popupclose:r}),e.overlayContainer?.unbindPopup(),e.map.removeLayer(n)}}),[t,e,o,i])}));return function(t){function e(e,i){const[o,s]=(0,n.useState)(!1),{instance:r}=t(e,s).current;(0,n.useImperativeHandle)(i,(()=>r)),(0,n.useEffect)((function(){o&&r.update()}),[r,o,e.children]);const a=r._contentNode;return a?(0,E.createPortal)(e.children,a):null}return(0,n.forwardRef)(e)}(i)}();function K({props:t}){const{attributes:{mapObj:e,markers:i,isDraggingMarker:r},setAttributes:a}=t,h=n=>{const o=n.target;let s;if(o.hasAttribute("dataIndex"))s=o.getAttribute("dataIndex");else{const t=o.parentElement;t&&"button"===t.tagName.toLowerCase()&&(s=t.getAttribute("dataIndex"))}let r=[...i];r.splice(s,1),a({isDraggingMarker:!1,markers:r,shouldUpdateBounds:!0}),w(t,[],e.leafletElement)};let l=null;const p=e=>U().icon(u(t,e));return void 0!==i&&i.length?i.map(((u,m)=>(0,n.createElement)(G,{key:m,markerId:u.id,position:[u.lat,u.lng],icon:p(m),draggable:!0,eventHandlers:{mousedown:t=>{l=new Date,a({addingMarker:""})},mouseup:t=>{(t=>{if(!0!==r){const e=new Date;l&&0!=!!(e-l)||t.target.openPopup()}})(t)},mouseover:t=>{i&&a({isDraggingMarker:!0})},dragstart:t=>{a({isDraggingMarker:!0})},dragend:n=>{(n=>{const o=n.target.getLatLng(),s=function(t,e){const i=t.target.options.markerId;let n=null;for(let t in e)i===e[t].id&&(n=t);return n}(n,i),r=[...i];r[s]&&(r[s].lat=o.lat.toString(),r[s].lng=o.lng.toString(),a({markers:r,shouldUpdateBounds:!0}),w(t,[],e.leafletElement)),a({isDraggingMarker:!1})})(n)}}},(0,n.createElement)(J,null,(0,n.createElement)(c.RichText,{value:u.text,onChange:t=>{let e=[...i];e[m].text=t,a({markers:e})},placeholder:(0,o.__)("Write something","ootb-openstreetmap")}),(0,n.createElement)("div",{className:"ootb-openstreetmap--marker-icon-container"},(0,n.createElement)(d,{props:t,index:m}),(0,n.createElement)(s.Button,{onClick:h,dataindex:m,icon:"trash",isDestructive:!0,variant:"secondary",showTooltip:!0,label:(0,o.__)("Remove this marker","ootb-openstreetmap")})))))):null}const Y=W((function({positions:t,...e},i){const n=new F.Polygon(t,e);return I(n,C(i,{overlayContainer:n}))}),(function(t,e,i){e.positions!==i.positions&&t.setLatLngs(e.positions)}));function X({props:t,styles:e}){const{attributes:{markers:i,shapeText:r},setAttributes:a}=t;return(0,n.createElement)(Y,{positions:i,pathOptions:e},(0,n.createElement)(J,null,(0,n.createElement)(c.RichText,{value:r,onChange:t=>{a({shapeText:t})},placeholder:(0,o.__)("Write something","ootb-openstreetmap")}),(0,n.createElement)("div",{className:"ootb-openstreetmap--marker-icon-container ootb-openstreetmap--marker-remove ootb-openstreetmap--shape-controls"},(0,n.createElement)(s.Button,{onClick:()=>{a({isDraggingMarker:!1,markers:[],shapeText:"",zoom:8,shouldUpdateZoom:!0})},icon:"trash",isDestructive:!0,variant:"secondary",showTooltip:!0,isSecondary:!0,label:(0,o.__)("Remove this shape","ootb-openstreetmap")}))))}const $=W((function({positions:t,...e},i){const n=new F.Polyline(t,e);return I(n,C(i,{overlayContainer:n}))}),(function(t,e,i){e.positions!==i.positions&&t.setLatLngs(e.positions)}));function Q({props:t,styles:e}){const{attributes:{markers:i,shapeText:r},setAttributes:a}=t;return(0,n.createElement)($,{positions:i,pathOptions:e},(0,n.createElement)(J,null,(0,n.createElement)(c.RichText,{value:r,onChange:t=>{a({shapeText:t})},placeholder:(0,o.__)("Write something","ootb-openstreetmap")}),(0,n.createElement)("div",{className:"ootb-openstreetmap--marker-icon-container ootb-openstreetmap--marker-remove ootb-openstreetmap--shape-controls"},(0,n.createElement)(s.Button,{onClick:()=>{a({isDraggingMarker:!1,markers:[],shapeText:"",zoom:8,shouldUpdateZoom:!0})},icon:"trash",isDestructive:!0,variant:"secondary",showTooltip:!0,isSecondary:!0,label:(0,o.__)("Remove this shape","ootb-openstreetmap")}))))}function tt({props:t}){const{attributes:{mapType:e,markers:i,shapeColor:o,shapeWeight:s,isDraggingMarker:r}}=t,a={fillColor:o,color:o,weight:s};return"polygon"===e&&!0!==r&&i.length?(0,n.createElement)(X,{props:t,styles:a}):"polyline"===e&&!0!==r&&i.length?(0,n.createElement)(Q,{props:t,styles:a}):null}function et(){return et=Object.assign||function(t){for(var e=1;em?.map??null),[m]);const f=(0,n.useCallback)((n=>{if(null!==n&&null===m){const o=new F.Map(n,c);null!=i&&null!=u?o.setView(i,u):null!=t&&o.fitBounds(t,e),null!=l&&o.whenReady(l),_(function(t){return Object.freeze({__version:1,map:t})}(o))}}),[]);(0,n.useEffect)((()=>()=>{m?.map.remove()}),[m]);const g=m?n.createElement(Z,{value:m},o):a??null;return n.createElement("div",et({},p,{ref:f}),g)}const nt=(0,n.forwardRef)(it);function ot(){return O().map}var st=i(518);function rt({props:t}){const{attributes:{mapObj:e,markers:i,zoom:o,showDefaultBounds:s,shouldUpdateZoom:a,shouldUpdateBounds:h,addingMarker:l,isDraggingMarker:u},setAttributes:c}=t;let d;const p=function(t){const e=ot();return(0,n.useEffect)((function(){return e.on(t),function(){e.off(t)}}),[e,t]),e}({mouseup:e=>{(e=>{if(clearTimeout(d),l){const n=x(t,e);c({markers:[...i,n],addingMarker:""}),w(t,n,e.target),setTimeout((function(){c({isDraggingMarker:!1})}),600)}})(e)},mousedown:t=>{(t=>{"div"===t.originalEvent.target.nodeName.toLowerCase()&&c({isDraggingMarker:!1}),!1===u&&(st.tq&&!st.G6?c({addingMarker:" pinning"}):d=setTimeout((function(){c({addingMarker:" pinning"}),setTimeout((function(){c({addingMarker:""})}),900)}),300))})(t)},drag:t=>{clearTimeout(d),c({addingMarker:"",isDraggingMarker:!1})},mouseout:t=>{c({isDraggingMarker:!1})},zoomanim:t=>{(t=>{c({zoom:t.zoom})})(t)},popupclose:()=>{c({isDraggingMarker:!1})}});return(0,r.useEffect)((()=>{!0===s&&c({bounds:ootbGlobal.defaultLocation,showDefaultBounds:!1}),!0===h&&(w(t,[],p),c({shouldUpdateBounds:!1})),void 0===p||void 0!==e&&e.length&&e===p||c({mapObj:p}),!0===a&&o!==p.getZoom()&&(p.setZoom(o),c({shouldUpdateZoom:!1}))})),null}function at({props:t}){const{attributes:{mapHeight:e}}=t,i=ot().getContainer();return parseInt(i.style.height)!==e&&(i.style.height=`${e}px`),null}function ht({props:t}){const{attributes:{zoom:e,bounds:i,mapHeight:o,mapType:s}}=t;return(0,n.createElement)(nt,{center:M(t),zoom:e,bounds:i,style:{height:o+"px"}},(0,n.createElement)(rt,{props:t}),(0,n.createElement)(at,{props:t}),(0,n.createElement)(V,{props:t}),(0,n.createElement)(K,{props:t}),"marker"!==s?(0,n.createElement)(tt,{props:t}):null)}function lt({props:t}){const{attributes:{addingMarker:e,openAImode:i}}=t;let s="",r="ootb-openstreetmap--alert";return" pinning"===e?s=(0,o.__)("Release to drop a marker here","ootb-openstreetmap"):i.length&&("started"===i?s=(0,o.__)("You have entered OpenAI mode. When you finish your prompt, please hit enter or click on the bubble icon.","ootb-openstreetmap"):"connecting"===i?s=(0,o.__)("Connecting to OpenAI...","ootb-openstreetmap"):"success"===i?s=(0,o.__)("Preparing the data. Please be patient...","ootb-openstreetmap"):"working"===i?(s=(0,o.__)("Creating the markers. It will take a while, because we don't want to hit the Nominatim rate limits.","ootb-openstreetmap"),r+=" alert-active"):"invalid_question"===i?(s=(0,o.__)("I don't understand your question. Please try again.","ootb-openstreetmap"),r+=" alert-error"):"error"===i&&(s=(0,o.__)("Something went wrong. Sorry...","ootb-openstreetmap"),r+=" alert-error")),s?(0,n.createElement)("div",{className:r},s):null}function ut(t){const{attributes:{bounds:e,markers:i}}=t;return z(e)||[i[0].lat,i[0].lng]}function ct(t){const{attributes:{defaultIcon:e}}=t,{pluginDirUrl:i}=ootbGlobal,n=i+"assets/vendor/leaflet/images/marker-icon.png",o=e?e.width/2:12;return{iconUrl:e?e.url:n,iconAnchor:[o,0]}}const dt=[{attributes:{mapHeight:{type:"integer",default:400},markers:{type:"array",default:[]},zoom:{type:"integer",default:8},minZoom:{type:"integer",default:2},maxZoom:{type:"integer",default:18},dragging:{type:"boolean",default:!0},touchZoom:{type:"boolean",default:!0},doubleClickZoom:{type:"boolean",default:!0},scrollWheelZoom:{type:"boolean",default:!0},defaultIcon:{type:"object",default:null},bounds:{type:"array",default:[[37.97155174977503,23.72656345367432]]},provider:{type:"string",default:"openstreetmap"}},supports:{className:!1,align:["wide","full"]},save(t,e){const{attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:c,scrollWheelZoom:d,provider:p}}=t;return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-provider":p,"data-markers":encodeURIComponent(JSON.stringify(o)),"data-bounds":JSON.stringify(M(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":c,"data-scrollwheelzoom":d,"data-marker":encodeURIComponent(JSON.stringify(u(t))),style:{height:i+"px"}})):null}},{attributes:{mapHeight:{type:"integer",default:400},markers:{type:"array",default:[]},zoom:{type:"integer",default:8},minZoom:{type:"integer",default:2},maxZoom:{type:"integer",default:18},dragging:{type:"boolean",default:!0},touchZoom:{type:"boolean",default:!0},doubleClickZoom:{type:"boolean",default:!0},scrollWheelZoom:{type:"boolean",default:!0},defaultIcon:{type:"object",default:null},bounds:{type:"array",default:[[37.97155174977503,23.72656345367432]]},provider:{type:"string",default:"openstreetmap"}},supports:{className:!1,align:["wide","full"]},save(t){const{className:e,attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:c,scrollWheelZoom:d,provider:p}}=t;return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-provider":p,"data-markers":escape(JSON.stringify(o)),"data-bounds":JSON.stringify(ut(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":c,"data-scrollwheelzoom":d,"data-marker":escape(JSON.stringify(u(t))),style:{height:i+"px"}})):null}},{attributes:{mapHeight:{type:"integer",default:400},markers:{type:"array",default:[]},zoom:{type:"integer",default:8},minZoom:{type:"integer",default:2},maxZoom:{type:"integer",default:18},dragging:{type:"boolean",default:!0},touchZoom:{type:"boolean",default:!0},doubleClickZoom:{type:"boolean",default:!0},scrollWheelZoom:{type:"boolean",default:!0},defaultIcon:{type:"object",default:null},bounds:{type:"array",default:[[37.97155174977503,23.72656345367432]]}},supports:{align:["wide","full"]},save(t){const{className:e,attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:c,scrollWheelZoom:d}}=t;return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-markers":escape(JSON.stringify(o)),"data-bounds":JSON.stringify(ut(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":c,"data-scrollwheelzoom":d,"data-marker":escape(JSON.stringify(u(t))),style:{height:i+"px"}})):null}},{attributes:{mapHeight:{type:"integer",default:400},markers:{type:"array",default:[]},zoom:{type:"integer",default:8},minZoom:{type:"integer",default:2},maxZoom:{type:"integer",default:18},dragging:{type:"boolean",default:!0},touchZoom:{type:"boolean",default:!0},doubleClickZoom:{type:"boolean",default:!0},scrollWheelZoom:{type:"boolean",default:!0},defaultIcon:{type:"object",default:null},bounds:{type:"array",default:[[37.97155174977503,23.72656345367432]]}},supports:{align:["wide","full"]},save(t){const{className:e,attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:u,scrollWheelZoom:c}}=t;return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-markers":escape(JSON.stringify(o)),"data-bounds":JSON.stringify(ut(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":u,"data-scrollwheelzoom":c,"data-marker":escape(JSON.stringify(ct(t))),style:{height:i+"px"}})):null}}];(0,t.registerBlockType)(e,{edit:function(t){const{attributes:e}=t,{addingMarker:i}=e,o=(0,c.useBlockProps)({className:i||""});return(0,n.createElement)("div",{...o},(0,n.createElement)(y,{props:t}),(0,n.createElement)(k,{props:t}),(0,n.createElement)(ht,{props:t}),(0,n.createElement)(lt,{props:t}))},save:function(t,e){const{attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:c,scrollWheelZoom:d,provider:p,mapType:m,showMarkers:_,shapeColor:f,shapeWeight:g,shapeText:v}}=t,y={fillColor:f,color:f,weight:g};return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-provider":p,"data-maptype":m,"data-showmarkers":_,"data-shapestyle":encodeURIComponent(JSON.stringify(y)),"data-shapetext":v,"data-markers":encodeURIComponent(JSON.stringify(o)),"data-bounds":JSON.stringify(M(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":c,"data-scrollwheelzoom":d,"data-marker":encodeURIComponent(JSON.stringify(u(t))),style:{height:i+"px"}})):null},deprecated:dt})})()})(); \ No newline at end of file +(()=>{var t={243:function(t,e){!function(t){"use strict";function e(t){var e,i,n,o;for(i=1,n=arguments.length;i0?Math.floor(t):Math.ceil(t)};function O(t,e,i){return t instanceof S?t:f(t)?new S(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new S(t.x,t.y):new S(t,e,i)}function A(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=N(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=N(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Mt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",h,e),window.removeEventListener("testPassiveEventSupport",h,e)}catch(t){}return t}(),Et=!!document.createElement("canvas").getContext,Ct=!(!document.createElementNS||!K("svg").createSVGRect),St=!!Ct&&((X=document.createElement("div")).innerHTML="","http://www.w3.org/2000/svg"===(X.firstChild&&X.firstChild.namespaceURI)),Zt=!Ct&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function Ot(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var At={ie:Q,ielt9:tt,edge:et,webkit:it,android:nt,android23:ot,androidStock:rt,opera:at,chrome:ht,gecko:lt,safari:ut,phantom:ct,opera12:dt,win:pt,ie3d:mt,webkit3d:_t,gecko3d:ft,any3d:gt,mobile:vt,mobileWebkit:yt,mobileWebkit3d:bt,msPointer:wt,pointer:xt,touch:Lt,touchNative:Pt,mobileOpera:Tt,mobileGecko:kt,retina:zt,passiveEvents:Mt,canvas:Et,svg:Ct,vml:Zt,inlineSvg:St,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},It=At.msPointer?"MSPointerDown":"pointerdown",Bt=At.msPointer?"MSPointerMove":"pointermove",Nt=At.msPointer?"MSPointerUp":"pointerup",Rt=At.msPointer?"MSPointerCancel":"pointercancel",Dt={touchstart:It,touchmove:Bt,touchend:Nt,touchcancel:Rt},jt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&Re(e),Gt(t,e)},touchmove:Gt,touchend:Gt,touchcancel:Gt},Ht={},Wt=!1;function Ft(t,e,i){return"touchstart"===e&&(Wt||(document.addEventListener(It,Ut,!0),document.addEventListener(Bt,qt,!0),document.addEventListener(Nt,Vt,!0),document.addEventListener(Rt,Vt,!0),Wt=!0)),jt[e]?(i=jt[e].bind(this,i),t.addEventListener(Dt[e],i,!1),i):(console.warn("wrong event specified:",e),h)}function Ut(t){Ht[t.pointerId]=t}function qt(t){Ht[t.pointerId]&&(Ht[t.pointerId]=t)}function Vt(t){delete Ht[t.pointerId]}function Gt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Ht)e.touches.push(Ht[i]);e.changedTouches=[e],t(e)}}var Jt=200;var Kt,Yt,Xt,$t,Qt,te=fe(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ee=fe(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ie="webkitTransition"===ee||"OTransition"===ee?ee+"End":"transitionend";function ne(t){return"string"==typeof t?document.getElementById(t):t}function oe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function se(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function re(t){var e=t.parentNode;e&&e.removeChild(t)}function ae(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function he(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function le(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ue(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=me(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function ce(t,e){if(void 0!==t.classList)for(var i=c(e),n=0,o=i.length;n0?2*window.devicePixelRatio:1;function Fe(t){return At.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/We:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function Ue(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var qe={__proto__:null,on:Me,off:Ce,stopPropagation:Ie,disableScrollPropagation:Be,disableClickPropagation:Ne,preventDefault:Re,stop:De,getPropagationPath:je,getMousePosition:He,getWheelDelta:Fe,isExternalTarget:Ue,addListener:Me,removeListener:Ce},Ve=C.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=ye(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=T(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,N(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=O((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=O(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),s=this.project(t),r=this.getPixelBounds(),a=I([r.min.add(i),r.max.subtract(n)]),h=a.getSize();if(!a.contains(s)){this._enforcingBounds=!0;var l=s.subtract(a.getCenter()),u=a.extend(s).getSize().subtract(h);o.x+=l.x<0?-u.x:u.x,o.y+=l.y<0?-u.y:u.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=i.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(n(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=n(this._handleGeolocationResponse,this),o=n(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,o,t):navigator.geolocation.getCurrentPosition(i,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=new R(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)}},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),re(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(k(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)re(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=se("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new B(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=N(t),i=O(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),l=I(this.project(a,n),this.project(r,n)).getSize(),u=At.any3d?this.options.zoomSnap:1,c=h.x/l.x,d=h.y/l.y,p=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(p,n),u&&(n=Math.round(n/(u/100))*(u/100),n=e?Math.ceil(n/u)*u:Math.floor(n/u)*u),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new S(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new A(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(D(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(O(t),e)},layerPointToLatLng:function(t){var e=O(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(D(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(D(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(N(t))},distance:function(t,e){return this.options.crs.distance(D(t),D(e))},containerPointToLayerPoint:function(t){return O(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return O(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(O(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(D(t)))},mouseEventToContainerPoint:function(t){return He(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=ne(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Me(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&At.any3d,ce(t,"leaflet-container"+(At.touch?" leaflet-touch":"")+(At.retina?" leaflet-retina":"")+(At.ielt9?" leaflet-oldie":"")+(At.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=oe(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),ve(this._mapPane,new S(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(ce(t.markerPane,"leaflet-zoom-hide"),ce(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){ve(this._mapPane,new S(0,0));var n=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var o=this._zoom!==e;this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return k(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){ve(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Ce:Me;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),At.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){k(this._resizeRequest),this._resizeRequest=T((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if((i=this._targets[s(r)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(o&&!Ue(r,t))break;if(n.push(i),o)break}if(r===this._container)break;r=r.parentNode}return n.length||a||o||!this.listens(e,!0)||(n=[this]),n},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(e))){var i=t.type;"mousedown"===i&&Pe(e),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}var s=this._findEventTargets(t,i);if(n){for(var r=[],a=0;a0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=At.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){de(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i)||(this.panBy(i,e),0))},_createAnimProxy:function(){var t=this._proxy=se("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=te,i=this._proxy.style[e];ge(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){re(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();ge(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o)||(T((function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,i,o){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,ce(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:o}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(n(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&de(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});var Je=M.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return ce(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(re(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Ke=function(t){return new Je(t)};Ge.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=se("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=se("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)re(this._controlCorners[t]);re(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ye=Je.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+s(this),n),this._layerControlInputs.push(e),e.layerId=s(t.layer),Me(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var r=document.createElement("span");return i.appendChild(r),r.appendChild(e),r.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,Me(t,"click",Re),this.expand();var e=this;setTimeout((function(){Ce(t,"click",Re),e._preventClick=!1}))}}),Xe=Je.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=se("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=se("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Ne(s),Me(s,"click",De),Me(s,"click",o,this),Me(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";de(this._zoomInButton,e),de(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(ce(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(ce(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});Ge.mergeOptions({zoomControl:!0}),Ge.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new Xe,this.addControl(this.zoomControl))}));var $e=Je.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=se("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=se("div",e,i)),t.imperial&&(this._iScale=se("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),Qe=Je.extend({options:{position:"bottomright",prefix:''+(At.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=se("div","leaflet-control-attribution"),Ne(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(' ')}}});Ge.mergeOptions({attributionControl:!0}),Ge.addInitHook((function(){this.options.attributionControl&&(new Qe).addTo(this)}));Je.Layers=Ye,Je.Zoom=Xe,Je.Scale=$e,Je.Attribution=Qe,Ke.layers=function(t,e,i){return new Ye(t,e,i)},Ke.zoom=function(t){return new Xe(t)},Ke.scale=function(t){return new $e(t)},Ke.attribution=function(t){return new Qe(t)};var ti=M.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});ti.addTo=function(t,e){return t.addHandler(e,this),this};var ei={Events:E},ii=At.touch?"touchstart mousedown":"mousedown",ni=C.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){d(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Me(this._dragStartTarget,ii,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ni._dragging===this&&this.finishDrag(!0),Ce(this._dragStartTarget,ii,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!ue(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)ni._dragging===this&&this.finishDrag();else if(!(ni._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(ni._dragging=this,this._preventOutline&&Pe(this._element),we(),Kt(),this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t,i=Te(this._element);this._startPoint=new S(e.clientX,e.clientY),this._startPos=ye(this._element),this._parentScale=ke(i);var n="mousedown"===t.type;Me(document,n?"mousemove":"touchmove",this._onMove,this),Me(document,n?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new S(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)e&&(i.push(t[n]),o=n);return oh&&(s=r,h=a);h>i&&(e[s]=1,ci(t,e,i,n,s),ci(t,e,i,s,o))}function di(t,e,i,n,o){var s,r,a,h=n?ai:mi(t,i),l=mi(e,i);for(ai=l;;){if(!(h|l))return[t,e];if(h&l)return!1;a=mi(r=pi(t,e,s=h||l,i,o),i),s===h?(t=r,h=a):(e=r,l=a)}}function pi(t,e,i,n,o){var s,r,a=e.x-t.x,h=e.y-t.y,l=n.min,u=n.max;return 8&i?(s=t.x+a*(u.y-t.y)/h,r=u.y):4&i?(s=t.x+a*(l.y-t.y)/h,r=l.y):2&i?(s=u.x,r=t.y+h*(u.x-t.x)/a):1&i&&(s=l.x,r=t.y+h*(l.x-t.x)/a),new S(s,r,o)}function mi(t,e){var i=0;return t.xe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function _i(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function fi(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,l=a*a+h*h;return l>0&&((o=((t.x-s)*a+(t.y-r)*h)/l)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new S(s,r)}function gi(t){return!f(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function vi(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),gi(t)}function yi(t,e){var i,n,o,s,r,a,h,l;if(!t||0===t.length)throw new Error("latlngs not passed");gi(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var u=D([0,0]),c=N(t);c.getNorthWest().distanceTo(c.getSouthWest())*c.getNorthEast().distanceTo(c.getNorthWest())<1700&&(u=ri(t));var d=t.length,p=[];for(i=0;in){h=(s-n)/o,l=[a.x-h*(a.x-r.x),a.y-h*(a.y-r.y)];break}var _=e.unproject(O(l));return D([_.lat+u.lat,_.lng+u.lng])}var bi={__proto__:null,simplify:li,pointToSegmentDistance:ui,closestPointOnSegment:function(t,e,i){return fi(t,e,i)},clipSegment:di,_getEdgeIntersection:pi,_getBitCode:mi,_sqClosestPointOnSegment:fi,isFlat:gi,_flat:vi,polylineCenter:yi},wi={project:function(t){return new S(t.lng,t.lat)},unproject:function(t){return new R(t.y,t.x)},bounds:new A([-180,-90],[180,90])},xi={R:6378137,R_MINOR:6356752.314245179,bounds:new A([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,o=this.R_MINOR/i,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-i*Math.log(Math.max(a,1e-10)),new S(t.lng*e*i,n)},unproject:function(t){for(var e,i=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,l=.1;h<15&&Math.abs(l)>1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=l=Math.PI/2-2*Math.atan(r*e)-a;return new R(a*i,t.x*i/n)}},Pi={__proto__:null,LonLat:wi,Mercator:xi,SphericalMercator:U},Li=e({},W,{code:"EPSG:3395",projection:xi,transformation:function(){var t=.5/(Math.PI*xi.R);return V(t,.5,-t,.5)}()}),Ti=e({},W,{code:"EPSG:4326",projection:wi,transformation:V(1/180,1,-1/180,.5)}),ki=e({},H,{projection:wi,transformation:V(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});H.Earth=W,H.EPSG3395=Li,H.EPSG3857=G,H.EPSG900913=J,H.EPSG4326=Ti,H.Simple=ki;var zi=C.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});Ge.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return s(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?f(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()=2&&e[0]instanceof R&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){Ni.prototype._setLatLngs.call(this,t),gi(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return gi(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new S(e,e);if(t=new A(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||Ni.prototype._containsPoint.call(this,t,!0)}});var Di=Ei.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=f(t)?t:t.features;if(o){for(e=0,i=o.length;e0&&o.push(o[0].slice()),o}function Vi(t,i){return t.feature?e({},t.feature,{geometry:i}):Gi(i)}function Gi(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}var Ji={toGeoJSON:function(t){return Vi(this,{type:"Point",coordinates:Ui(this.getLatLng(),t)})}};function Ki(t,e){return new Di(t,e)}Oi.include(Ji),Bi.include(Ji),Ii.include(Ji),Ni.include({toGeoJSON:function(t){var e=!gi(this._latlngs);return Vi(this,{type:(e?"Multi":"")+"LineString",coordinates:qi(this._latlngs,e?1:0,!1,t)})}}),Ri.include({toGeoJSON:function(t){var e=!gi(this._latlngs),i=e&&!gi(this._latlngs[0]),n=qi(this._latlngs,i?2:e?1:0,!0,t);return e||(n=[n]),Vi(this,{type:(i?"Multi":"")+"Polygon",coordinates:n})}}),Mi.include({toMultiPoint:function(t){var e=[];return this.eachLayer((function(i){e.push(i.toGeoJSON(t).geometry.coordinates)})),Vi(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(t){var e=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===e)return this.toMultiPoint(t);var i="GeometryCollection"===e,n=[];return this.eachLayer((function(e){if(e.toGeoJSON){var o=e.toGeoJSON(t);if(i)n.push(o.geometry);else{var s=Gi(o);"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}})),i?Vi(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var Yi=Ki,Xi=zi.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,i){this._url=t,this._bounds=N(e),d(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(ce(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){re(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&he(this._image),this},bringToBack:function(){return this._map&&le(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=N(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,e=this._image=t?this._url:se("img");ce(e,"leaflet-image-layer"),this._zoomAnimated&&ce(e,"leaflet-zoom-animated"),this.options.className&&ce(e,this.options.className),e.onselectstart=h,e.onmousemove=h,e.onload=n(this.fire,this,"load"),e.onerror=n(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=e.src:(e.src=this._url,e.alt=this.options.alt)},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;ge(this._image,i,e)},_reset:function(){var t=this._image,e=new A(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();ve(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){_e(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),$i=Xi.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,e=this._image=t?this._url:se("video");if(ce(e,"leaflet-image-layer"),this._zoomAnimated&&ce(e,"leaflet-zoom-animated"),this.options.className&&ce(e,this.options.className),e.onselectstart=h,e.onmousemove=h,e.onloadeddata=n(this.fire,this,"load"),t){for(var i=e.getElementsByTagName("source"),o=[],s=0;s0?o:[e.src]}else{f(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var r=0;ro?(e.height=o+"px",ce(t,s)):de(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();ve(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan)if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning)this._autopanning=!1;else{var t=this._map,e=parseInt(oe(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new S(this._containerLeft,-i-this._containerBottom);o._add(ye(this._container));var s=t.layerPointToContainerPoint(o),r=O(this.options.autoPanPadding),a=O(this.options.autoPanPaddingTopLeft||r),h=O(this.options.autoPanPaddingBottomRight||r),l=t.getSize(),u=0,c=0;s.x+n+h.x>l.x&&(u=s.x+n-l.x+h.x),s.x-u-a.x<0&&(u=s.x-a.x),s.y+i+h.y>l.y&&(c=s.y+i-l.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(u||c)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([u,c]))}},_getAnchor:function(){return O(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ge.mergeOptions({closePopupOnClick:!0}),Ge.include({openPopup:function(t,e,i){return this._initOverlay(en,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),zi.include({bindPopup:function(t,e){return this._popup=this._initOverlay(en,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof Ei||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){De(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof Ai?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var nn=tn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){tn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){tn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=tn.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=se("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+s(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,l=o.offsetHeight,u=O(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=l):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=l/2):"right"===a?(e=0,i=l/2):"left"===a?(e=h,i=l/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new S(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var p=new S(d,c);if(p.z=this._tileZoom,this._isValidTile(p)){var m=this._tiles[this._tileCoordsToKey(p)];m?m.current=!0:r.push(p)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var _=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return N(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new B(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new S(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(re(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){ce(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=h,t.onmousemove=h,At.ielt9&&this.options.opacity<1&&_e(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),n(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&T(n(this._tileReady,this,t,null,s)),ve(s,i),this._tiles[o]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var o=this._tileCoordsToKey(t);(i=this._tiles[o])&&(i.loaded=+new Date,this._map._fadeAnimated?(_e(i.el,0),k(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(ce(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),At.ielt9||!this._map._fadeAnimated?T(this._pruneTiles,this):setTimeout(n(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new S(this._wrapX?a(t.x,this._wrapX):t.x,this._wrapY?a(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new A(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var rn=sn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=d(this,e)).detectRetina&&At.retina&&e.maxZoom>0?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Me(i,"load",n(this._tileOnLoad,this,e,i)),Me(i,"error",n(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var i={r:At.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=n),i["-y"]=n}return _(this._url,e(i,this.options))},_tileOnLoad:function(t,e){At.ielt9?setTimeout(n(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=h,e.onerror=h,!e.complete)){e.src=v;var i=this._tiles[t].coords;re(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:i})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",v),sn.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==v))return sn.prototype._tileReady.call(this,t,e,i)}});function an(t,e){return new rn(t,e)}var hn=rn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var n=e({},this.defaultWmsParams);for(var o in i)o in this.options||(n[o]=i[o]);var s=(i=d(this,i)).detectRetina&&At.retina?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,rn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=I(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Ti?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=rn.prototype.getTileUrl.call(this,t);return a+p(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}});rn.WMS=hn,an.wms=function(t,e){return new hn(t,e)};var ln=zi.extend({options:{padding:.1},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),ce(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),s=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));At.any3d?ge(this._container,s,i):ve(this._container,s)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new A(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),un=ln.extend({options:{tolerance:0},getEvents:function(){var t=ln.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){ln.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Me(t,"mousemove",this._onMouseMove,this),Me(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Me(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){k(this._redrawRequest),delete this._ctx,re(this._container),Ce(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){ln.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=At.retina?2:1;ve(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",At.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){ln.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),pn={_initContainer:function(){this._container=se("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ln.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=dn("shape");ce(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=dn("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;re(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=dn("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=f(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=dn("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){he(t._container)},_bringToBack:function(t){le(t._container)}},mn=At.vml?dn:K,fn=ln.extend({_initContainer:function(){this._container=mn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=mn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){re(this._container),Ce(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){ln.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),ve(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=mn("path");t.options.className&&ce(e,t.options.className),t.options.interactive&&ce(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){re(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,Y(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){he(t._path)},_bringToBack:function(t){le(t._path)}});function gn(t){return At.svg||At.vml?new fn(t):null}At.vml&&fn.include(pn),Ge.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&cn(t)||gn(t)}});var vn=Ri.extend({initialize:function(t,e){Ri.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=N(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});fn.create=mn,fn.pointsToPath=Y,Di.geometryToLayer=ji,Di.coordsToLatLng=Wi,Di.coordsToLatLngs=Fi,Di.latLngToCoords=Ui,Di.latLngsToCoords=qi,Di.getFeature=Vi,Di.asFeature=Gi,Ge.mergeOptions({boxZoom:!0});var yn=ti.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Me(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Ce(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){re(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),Kt(),we(),this._startPoint=this._map.mouseEventToContainerPoint(t),Me(document,{contextmenu:De,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=se("div","leaflet-zoom-box",this._container),ce(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new A(this._point,this._startPoint),i=e.getSize();ve(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(re(this._box),de(this._container,"leaflet-crosshair")),Yt(),xe(),Ce(document,{contextmenu:De,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(n(this._resetState,this),0);var e=new B(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});Ge.addInitHook("addHandler","boxZoom",yn),Ge.mergeOptions({doubleClickZoom:!0});var bn=ti.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});Ge.addInitHook("addHandler","doubleClickZoom",bn),Ge.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var wn=ti.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ni(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}ce(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){de(this._map._container,"leaflet-grab"),de(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=N(this._map.options.maxBounds);this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});Ge.addInitHook("addHandler","scrollWheelZoom",Pn);Ge.mergeOptions({tapHold:At.touchNative&&At.safari&&At.mobile,tapTolerance:15});var Ln=ti.extend({addHooks:function(){Me(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Ce(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new S(e.clientX,e.clientY),this._holdTimeout=setTimeout(n((function(){this._cancel(),this._isTapValid()&&(Me(document,"touchend",Re),Me(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),600),Me(document,"touchend touchcancel contextmenu",this._cancel,this),Me(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){Ce(document,"touchend",Re),Ce(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),Ce(document,"touchend touchcancel contextmenu",this._cancel,this),Ce(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new S(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var i=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});i._simulated=!0,e.target.dispatchEvent(i)}});Ge.addInitHook("addHandler","tapHold",Ln),Ge.mergeOptions({touchZoom:At.touch,bounceAtZoomLimits:!0});var Tn=ti.extend({addHooks:function(){ce(this._map._container,"leaflet-touch-zoom"),Me(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){de(this._map._container,"leaflet-touch-zoom"),Ce(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Me(document,"touchmove",this._onTouchMove,this),Me(document,"touchend touchcancel",this._onTouchEnd,this),Re(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(o)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),k(this._animRequest);var a=n(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=T(a,this,!0),Re(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,k(this._animRequest),Ce(document,"touchmove",this._onTouchMove,this),Ce(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Ge.addInitHook("addHandler","touchZoom",Tn),Ge.BoxZoom=yn,Ge.DoubleClickZoom=bn,Ge.Drag=wn,Ge.Keyboard=xn,Ge.ScrollWheelZoom=Pn,Ge.TapHold=Ln,Ge.TouchZoom=Tn,t.Bounds=A,t.Browser=At,t.CRS=H,t.Canvas=un,t.Circle=Bi,t.CircleMarker=Ii,t.Class=M,t.Control=Je,t.DivIcon=on,t.DivOverlay=tn,t.DomEvent=qe,t.DomUtil=ze,t.Draggable=ni,t.Evented=C,t.FeatureGroup=Ei,t.GeoJSON=Di,t.GridLayer=sn,t.Handler=ti,t.Icon=Ci,t.ImageOverlay=Xi,t.LatLng=R,t.LatLngBounds=B,t.Layer=zi,t.LayerGroup=Mi,t.LineUtil=bi,t.Map=Ge,t.Marker=Oi,t.Mixin=ei,t.Path=Ai,t.Point=S,t.PolyUtil=hi,t.Polygon=Ri,t.Polyline=Ni,t.Popup=en,t.PosAnimation=Ve,t.Projection=Pi,t.Rectangle=vn,t.Renderer=ln,t.SVG=fn,t.SVGOverlay=Qi,t.TileLayer=rn,t.Tooltip=nn,t.Transformation=q,t.Util=z,t.VideoOverlay=$i,t.bind=n,t.bounds=I,t.canvas=cn,t.circle=function(t,e,i){return new Bi(t,e,i)},t.circleMarker=function(t,e){return new Ii(t,e)},t.control=Ke,t.divIcon=function(t){return new on(t)},t.extend=e,t.featureGroup=function(t,e){return new Ei(t,e)},t.geoJSON=Ki,t.geoJson=Yi,t.gridLayer=function(t){return new sn(t)},t.icon=function(t){return new Ci(t)},t.imageOverlay=function(t,e,i){return new Xi(t,e,i)},t.latLng=D,t.latLngBounds=N,t.layerGroup=function(t,e){return new Mi(t,e)},t.map=function(t,e){return new Ge(t,e)},t.marker=function(t,e){return new Oi(t,e)},t.point=O,t.polygon=function(t,e){return new Ri(t,e)},t.polyline=function(t,e){return new Ni(t,e)},t.popup=function(t,e){return new en(t,e)},t.rectangle=function(t,e){return new vn(t,e)},t.setOptions=d,t.stamp=s,t.svg=gn,t.svgOverlay=function(t,e,i){return new Qi(t,e,i)},t.tileLayer=an,t.tooltip=function(t,e){return new nn(t,e)},t.transformation=V,t.version="1.9.4",t.videoOverlay=function(t,e,i){return new $i(t,e,i)};var kn=window.L;t.noConflict=function(){return window.L=kn,this},window.L=t}(e)},518:(t,e,i)=>{"use strict";(n=i(196))&&"object"==typeof n&&"default"in n&&n.default;var n,o=i(451),s=new o,r=s.getBrowser(),a=(s.getCPU(),s.getDevice()),h=s.getEngine(),l=s.getOS(),u=s.getUA();var c="mobile",d="tablet",p="Chrome",m="Firefox",_="Opera",f="Yandex",g="Safari",v="Internet Explorer",y="Edge",b="Chromium",w="IE",x="Mobile Safari",P="MIUI Browser",L="Samsung Browser",T="iOS",k="Android",z="Windows Phone",M="Windows",E="Mac OS",C=function(t){return t||(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"none")},S=function(){return!("undefined"==typeof window||!window.navigator&&!navigator)&&(window.navigator||navigator)},Z=function(t){var e=S();return e&&e.platform&&(-1!==e.platform.indexOf(t)||"MacIntel"===e.platform&&e.maxTouchPoints>1&&!window.MSStream)},O=function(t){return t.type===c},A=function(t){return t.type===d},I=function(t){var e=t.type;return e===c||e===d},B=function(t){return"smarttv"===t.type},N=function(t){return undefined===t.type},R=function(t){return"wearable"===t.type},D=function(t){return"console"===t.type},j=function(t){return"embedded"===t.type},H=function(t){var e=t.vendor;return C(e)},W=function(t){var e=t.model;return C(e)},F=function(t){var e=t.type;return C(e,"browser")},U=function(t){return t.name===k},q=function(t){return t.name===M},V=function(t){return t.name===E},G=function(t){return t.name===z},J=function(t){return t.name===T},K=function(t){var e=t.version;return C(e)},Y=function(t){var e=t.name;return C(e)},X=function(t){return t.name===p},$=function(t){return t.name===m},Q=function(t){return t.name===b},tt=function(t){return t.name===y},et=function(t){return t.name===f},it=function(t){var e=t.name;return e===g||e===x},nt=function(t){return t.name===x},ot=function(t){return t.name===_},st=function(t){var e=t.name;return e===v||e===w},rt=function(t){return t.name===P},at=function(t){return t.name===L},ht=function(t){var e=t.version;return C(e)},lt=function(t){var e=t.major;return C(e)},ut=function(t){var e=t.name;return C(e)},ct=function(t){var e=t.name;return C(e)},dt=function(t){var e=t.version;return C(e)},pt=function(){var t=S(),e=t&&t.userAgent&&t.userAgent.toLowerCase();return"string"==typeof e&&/electron/.test(e)},mt=function(t){return"string"==typeof t&&-1!==t.indexOf("Edg/")},_t=function(){var t=S();return t&&(/iPad|iPhone|iPod/.test(t.platform)||"MacIntel"===t.platform&&t.maxTouchPoints>1)&&!window.MSStream},ft=function(){return Z("iPad")},gt=function(){return Z("iPhone")},vt=function(){return Z("iPod")},yt=function(t){return C(t)};B(a),D(a),R(a),j(a),nt(r)||ft(),Q(r);var bt=I(a)||ft(),wt=(O(a),A(a)||ft(),N(a),N(a),U(l),G(l),J(l)||ft(),X(r),$(r),it(r));ot(r),st(r),K(l),Y(l),ht(r),lt(r),ut(r),H(a),W(a),ct(h),dt(h),yt(u),tt(r)||mt(u),et(r),F(a),_t(),ft(),gt(),vt(),pt(),mt(u),tt(r)&&mt(u),q(l),V(l),rt(r),at(r);e.tq=bt,e.G6=wt},451:function(t,e,i){var n;!function(o,s){"use strict";var r="function",a="undefined",h="object",l="string",u="major",c="model",d="name",p="type",m="vendor",_="version",f="architecture",g="console",v="mobile",y="tablet",b="smarttv",w="wearable",x="embedded",P="Amazon",L="Apple",T="ASUS",k="BlackBerry",z="Browser",M="Chrome",E="Firefox",C="Google",S="Huawei",Z="LG",O="Microsoft",A="Motorola",I="Opera",B="Samsung",N="Sharp",R="Sony",D="Xiaomi",j="Zebra",H="Facebook",W="Chromium OS",F="Mac OS",U=function(t){for(var e={},i=0;i0?2===a.length?typeof a[1]==r?this[a[0]]=a[1].call(this,u):this[a[0]]=a[1]:3===a.length?typeof a[1]!==r||a[1].exec&&a[1].test?this[a[0]]=u?u.replace(a[1],a[2]):s:this[a[0]]=u?a[1].call(this,u,a[2]):s:4===a.length&&(this[a[0]]=u?a[3].call(this,u.replace(a[1],a[2])):s):this[a]=u||s;c+=2}},K=function(t,e){for(var i in e)if(typeof e[i]===h&&e[i].length>0){for(var n=0;n2&&(t[c]="iPad",t[p]=y),t},this.getEngine=function(){var t={};return t[d]=s,t[_]=s,J.call(t,n,b.engine),t},this.getOS=function(){var t={};return t[d]=s,t[_]=s,J.call(t,n,b.os),w&&!t[d]&&g&&"Unknown"!=g.platform&&(t[d]=g.platform.replace(/chrome os/i,W).replace(/macos/i,F)),t},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return n},this.setUA=function(t){return n=typeof t===l&&t.length>500?G(t,500):t,this},this.setUA(n),this};$.VERSION="1.0.37",$.BROWSER=U([d,_,u]),$.CPU=U([f]),$.DEVICE=U([c,m,p,g,v,b,y,w,x]),$.ENGINE=$.OS=U([d,_]),typeof e!==a?(t.exports&&(e=t.exports=$),e.UAParser=$):i.amdO?(n=function(){return $}.call(e,i,e,t))===s||(t.exports=n):typeof o!==a&&(o.UAParser=$);var Q=typeof o!==a&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var tt=new $;Q.ua=tt.getResult(),Q.ua.get=function(){return tt.getUA()},Q.ua.set=function(t){tt.setUA(t);var e=tt.getResult();for(var i in e)Q.ua[i]=e[i]}}}("object"==typeof window?window:this)},196:t=>{"use strict";t.exports=window.React}},e={};function i(n){var o=e[n];if(void 0!==o)return o.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,i),s.exports}i.amdO={},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";const t=window.wp.blocks,e=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"ootb/openstreetmap","version":"2.4.1","title":"OpenStreetMap by Out of the Block","category":"common","icon":"location-alt","description":"A map block for the Gutenberg Editor using OpenStreetMaps and Leaflet that needs no API keys and works out of the box.","supports":{"html":false,"align":["wide","full"]},"keywords":["Map block","Open Street Maps","Contact","Locations"],"attributes":{"mapHeight":{"type":"integer","default":400},"markers":{"type":"array","default":[]},"zoom":{"type":"integer","default":8},"minZoom":{"type":"integer","default":2},"maxZoom":{"type":"integer","default":18},"dragging":{"type":"boolean","default":true},"touchZoom":{"type":"boolean","default":true},"doubleClickZoom":{"type":"boolean","default":true},"scrollWheelZoom":{"type":"boolean","default":true},"defaultIcon":{"type":"object","default":null},"addingMarker":{"type":"string","default":""},"keywords":{"type":"string","default":""},"showDefaultBounds":{"type":"boolean","default":true},"bounds":{"type":"array","default":[[37.97155174977503,23.72656345367432]]},"provider":{"type":"string","default":"openstreetmap"},"mapType":{"type":"string","default":"marker"},"showMarkers":{"type":"boolean","default":true},"shapeColor":{"type":"string","default":"#008EFF"},"shapeWeight":{"type":"integer","default":3},"shapeText":{"type":"string","default":""},"isDraggingMarker":{"type":"boolean","default":false},"searchCount":{"type":"number","default":0},"openAImode":{"type":"string","default":""}},"textdomain":"ootb-openstreetmap","editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css"}');var n=i(196);const o=window.wp.i18n,s=window.wp.components,r=window.wp.element;function a({props:t}){const{attributes:{provider:e},setAttributes:i}=t,{adminUrl:a,options:{api_mapbox:h}}=ootbGlobal,l=[{label:(0,o.__)("OpenStreetMap","ootb-openstreetmap"),value:"openstreetmap"},{label:(0,o.__)("Mapbox","ootb-openstreetmap"),value:"mapbox"},{label:(0,o.__)("Stamen","ootb-openstreetmap"),value:"stamen"}];let u="";return"mapbox"!==e||h?e&&"openstreetmap"!==e||(u=(0,n.createElement)("span",null,(0,r.createInterpolateElement)((0,o.__)("Heavy usage of OSM tiles is forbidden, and you might want to switch to a different tile provider. Read more on the plugin settings.","ootb-openstreetmap"),{a:(0,n.createElement)("a",{href:a})}))):u=(0,n.createElement)("span",null,(0,r.createInterpolateElement)((0,o.__)("Make sure that you provided a valid API key on the plugin settings.","ootb-openstreetmap"),{a:(0,n.createElement)("a",{href:a})})),(0,n.createElement)(s.SelectControl,{label:(0,o.__)("Tile Layer Provider","ootb-openstreetmap"),value:e,options:l,onChange:t=>{i({provider:t})},help:u})}function h({props:t}){const{attributes:{mapType:e,showMarkers:i,shapeColor:a,shapeWeight:h},setAttributes:l}=t,u=[{label:(0,o.__)("Markers","ootb-openstreetmap"),value:"marker"},{label:(0,o.__)("Polygon","ootb-openstreetmap"),value:"polygon"},{label:(0,o.__)("Polyline","ootb-openstreetmap"),value:"polyline"}];return(0,n.createElement)(r.Fragment,null,(0,n.createElement)(s.SelectControl,{label:(0,o.__)("Map type","ootb-openstreetmap"),value:e,options:u,onChange:t=>{l({mapType:t})},help:(0,o.__)("How the map should display its locations.","ootb-openstreetmap")}),"marker"!==e?(0,n.createElement)(r.Fragment,null,(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Show Markers","ootb-openstreetmap"),checked:!!i,onChange:()=>l({showMarkers:!i}),help:i?(0,o.__)("Show the markers on the frontend.","ootb-openstreetmap"):(0,o.__)("Hide the markers on the frontend (does not affect the Backend).","ootb-openstreetmap")}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Line weight","ootb-openstreetmap"),value:h,onChange:t=>{l({shapeWeight:t})},min:1,max:100}),(0,n.createElement)(s.BaseControl,{label:(0,o.__)("Shape color","ootb-openstreetmap")},(0,n.createElement)(s.ColorPicker,{color:a,onChange:t=>{l({shapeColor:t})},enableAlpha:!1,defaultValue:null}))):null)}function l(){const{pluginDirUrl:t}=ootbGlobal;return t+"assets/vendor/leaflet/images/marker-icon.png"}function u(t,e){const{attributes:{markers:i,defaultIcon:n}}=t,{pluginDirUrl:o}=ootbGlobal,s=()=>void 0!==e&&i[e]?.icon?i[e].icon:null!=n?n:null,r=s()?Math.round(s().width/2):12,a=s()?Math.round(s().height):41;return{iconUrl:s()?s().url:l(),iconAnchor:[r,a],popupAnchor:[0,-Math.abs(a)]}}const c=window.wp.blockEditor;function d({props:t,index:e}){const{attributes:{markers:i},setAttributes:r}=t,a=void 0!==e,h=t=>{if(a){let n=[...i];n[e].icon=t,r({markers:n})}else r({defaultIcon:t})},d=u(t,e);return(0,n.createElement)(c.MediaUploadCheck,null,(0,n.createElement)("div",{className:"ootb-openstreetmap--icon"},a?null:(0,n.createElement)("img",{src:d.iconUrl,alt:(0,o.__)("Map Marker","ootb-openstreetmap")}),(0,n.createElement)("div",{className:"gmp-openstreetmap--buttons"},(0,n.createElement)(c.MediaUpload,{onSelect:t=>{h(t)},allowedTypes:["image"],value:d,render:({open:t})=>(0,n.createElement)(s.Button,{onClick:t,icon:"format-gallery",label:(0,o.__)("Change the Marker icon","ootb-openstreetmap"),isSecondary:!a},a?null:(0,o.__)("Change","ootb-openstreetmap"))}),function(t,e,i){const{attributes:{defaultIcon:n}}=t;return!(void 0!==i||!n)||!(void 0===i||!e)&&![n?.icon,l()].includes(e)}(t,d?.iconUrl,e)?(0,n.createElement)(s.Button,{onClick:()=>{h(null)},icon:"image-rotate",label:(0,o.__)("Restore the Marker icon","ootb-openstreetmap"),isSecondary:!a},a?null:(0,o.__)("Restore","ootb-openstreetmap")):null)))}function p({props:t}){const{attributes:{mapHeight:e,zoom:i},setAttributes:l}=t;return(0,n.createElement)(r.Fragment,null,(0,n.createElement)(a,{props:t}),(0,n.createElement)(h,{props:t}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Height (pixels)","ootb-openstreetmap"),value:e,onChange:t=>{l({mapHeight:t})},min:50,max:1e3}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Zoom","ootb-openstreetmap"),value:i,onChange:t=>{l({zoom:t,shouldUpdateZoom:!0})},min:0,max:18}),(0,n.createElement)(d,{props:t}))}function m({props:t}){const{attributes:{minZoom:e,maxZoom:i,dragging:a,touchZoom:h,doubleClickZoom:l,scrollWheelZoom:u},setAttributes:c}=t;return(0,n.createElement)(r.Fragment,null,(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Map dragging","ootb-openstreetmap"),checked:!!a,onChange:()=>c({dragging:!a}),help:a?(0,o._x)("Enabled.","Map dragging setting","ootb-openstreetmap"):(0,o._x)("Disabled.","Map dragging setting","ootb-openstreetmap")}),(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Touch zoom","ootb-openstreetmap"),checked:!!h,onChange:()=>c({touchZoom:!h}),help:h?(0,o._x)("Enabled.","Touch zoom setting","ootb-openstreetmap"):(0,o._x)("Disabled.","Touch zoom setting","ootb-openstreetmap")}),(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Double-click zoom","ootb-openstreetmap"),checked:!!l,onChange:()=>c({doubleClickZoom:!l}),help:l?(0,o._x)("Enabled.","Double-click zoom setting","ootb-openstreetmap"):(0,o._x)("Disabled.","Double-click zoom setting","ootb-openstreetmap")}),(0,n.createElement)(s.ToggleControl,{label:(0,o.__)("Scroll Wheel zoom","ootb-openstreetmap"),checked:!!u,onChange:()=>c({scrollWheelZoom:!u}),help:u?(0,o._x)("Enabled.","Scroll Wheel zoom setting","ootb-openstreetmap"):(0,o._x)("Disabled.","Scroll Wheel zoom setting","ootb-openstreetmap")}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Minimum Zoom","ootb-openstreetmap"),value:e,onChange:t=>{c({minZoom:t,maxZoom:i<=e?e+1:i})},min:0,max:18}),(0,n.createElement)(s.RangeControl,{label:(0,o.__)("Maximum Zoom","ootb-openstreetmap"),value:i,onChange:t=>{c({maxZoom:t,minZoom:e>=i?i-1:e})},min:0,max:18,help:(0,o.__)("Tip: setting the same minimum and maximum zoom practically locks zoom at that level.","ootb-openstreetmap")}))}function _({props:t}){const{attributes:{markers:e},clientId:i}=t,r=e&&0{(t=>{const n=t.currentTarget.files[0];if(!n||0===n.length)return;const s=new FileReader;s.readAsText(n,"UTF-8"),s.onload=function(t){const n=function(t){try{const i=JSON.parse(t.toString());if(i&&"object"==typeof i){let t=[];for(const n of i){var e;if(!n.lat||!n.lng)continue;if(!f(n.lat,n.lng))continue;n.id=null!==(e=n.id)&&void 0!==e?e:Date.now();const{lat:i,lng:o,text:s,id:r}=n;t.push({lat:i,lng:o,text:s,id:r})}return t}}catch(t){return!1}return!1}(t.target.result);n&&i({markers:e.concat(n),shouldUpdateBounds:!0})},s.onerror=function(t){console.log((0,o.__)("Error reading file","ootb-openstreetmap"))}})(t)}}))}function v({props:t}){return(0,n.createElement)(r.Fragment,null,(0,n.createElement)(_,{props:t}),(0,n.createElement)(g,{props:t}))}function y({props:t}){return(0,n.createElement)(c.InspectorControls,null,(0,n.createElement)(s.PanelBody,{title:(0,o.__)("Main settings","ootb-openstreetmap"),initialOpen:!0},(0,n.createElement)(p,{props:t})),(0,n.createElement)(s.PanelBody,{title:(0,o.__)("Map behavior","ootb-openstreetmap"),initialOpen:!1},(0,n.createElement)(m,{props:t})),(0,n.createElement)(s.PanelBody,{title:(0,o.__)("Map data","ootb-openstreetmap"),initialOpen:!1},(0,n.createElement)(v,{props:t})))}function b(t,e=null){e&&t&&e.fitBounds(t,{padding:[50,50]})}function w(t,e=[],i=null){const{attributes:{markers:n,zoom:o},setAttributes:s}=t;let r=[];if(e&&void 0!==e.lat&&r.push([e.lat,e.lng]),Object.entries(n).forEach((([t,e])=>{e&&r.push([e.lat,e.lng])})),r.length&&(s({bounds:r}),b(r,i)),i){const t=i.getZoom();o!==t&&s({zoom:t})}}function x(t,e){const{attributes:{searchResults:i,searchCount:n},setAttributes:o}=t;let s,r,a;if(void 0!==i&&0${u}

`:""}else{var h,l;s=null!==(h=e.latlng.lat)&&void 0!==h?h:"",r=null!==(l=e.latlng.lng)&&void 0!==l?l:"",a=""}if(s&&r)return{lat:s.toString(),lng:r.toString(),text:a,id:Date.now()}}function P({props:t}){const{attributes:{markers:e,searchResults:i,mapObj:o,inputRef:r},setAttributes:a}=t,h=i=>{const n=x(t,i);a({markers:[...e,n],keywords:"",searchResults:[]}),w(t,n,o),r&&r.target.focus()};return i&&i.length?(0,n.createElement)("div",{className:"ootb-openstreetmap--search-results"},i.map(((t,e)=>{const{display_name:i}=t;return(0,n.createElement)(s.Button,{key:e,autoFocus:0===e,onClick:h,"data-index":e},i)}))):null}function L(t,e=0){return"https://nominatim.openstreetmap.org/search?q="+t+(e>0?"&limit="+e:"")+"&format=json"}async function T(t){const{attributes:{markers:e,keywords:i,mapObj:n,openAImode:o},setAttributes:s}=t;if(!i)return;if(!o)return;let r=[...e];return s({openAImode:"connecting"}),wp.apiFetch({path:"/ootb-openstreetmap/v1/openai/",method:"POST",data:{prompt:i}}).then((t=>{let e=[];try{const i=t?.choices[0]?.message?.content;i&&"invalid_question"!==i?(e=JSON.parse(i),s({openAImode:"success"})):(s({openAImode:"invalid_question"}),setTimeout((()=>{s({openAImode:"",keywords:""})}),3e3))}catch(t){s({openAImode:"error"}),console.error("Error parsing OpenAI response")}let i=e?.map(((t,e)=>new Promise((i=>setTimeout((()=>{(t=>{t&&t.length>2&&fetch(L(t,1)).then((t=>{if(!t.ok)throw new Error(`Network response was not ok, status: ${t.status}`);return t.json()})).then((t=>{(t=>{var e,i;const o={lat:null!==(e=t?.lat.toString())&&void 0!==e?e:"",lng:null!==(i=t?.lon.toString())&&void 0!==i?i:"",text:t?.display_name?`

${t.display_name}

`:"",id:Date.now()};r.push(o);let a=[];r.length>0&&(r.forEach((t=>{t&&a.push([t.lat,t.lng])})),s({bounds:a,markers:r,openAImode:"working"}),b(a,n))})(t[0])})).catch((t=>{s({openAImode:"error"}),setTimeout((()=>{s({openAImode:"",keywords:""})}),3e3),console.error("There has been a problem with the fetch operation:",JSON.stringify(t))}))})(t),i()}),1e3*(e+1))))));Promise.all(i).then((()=>{setTimeout((()=>{s({openAImode:"",keywords:""})}),1e3)}))})).catch((t=>{s({openAImode:"error"}),setTimeout((()=>{s({openAImode:"",keywords:""})}),3e3),console.error("Error fetching OpenAI response: "+JSON.stringify(t))}))}function k({props:t}){const{attributes:{keywords:e,inputRef:i,searchResults:a,openAImode:h},setAttributes:l}=t,u=()=>{e&&e.length>2&&fetch(L(e)).then((t=>{if(200===t.status)return t.json()})).then((t=>{l({searchResults:t})}))};let c="ootb-openstreetmap--searchbox";return h.length&&(c+=" openai-active"),(0,n.createElement)(r.Fragment,null,(0,n.createElement)("div",{className:c},(0,n.createElement)(s.TextControl,{value:e,onChange:t=>{l({keywords:t,openAImode:/\bplease\b/i.test(t)?"started":""})},onKeyDown:e=>{i||l({inputRef:e}),"Enter"===e.key&&(T(t).then((()=>null)),u())},placeholder:(0,o.__)("Enter your keywords...","ootb-openstreetmap")}),(0,n.createElement)(s.Button,{onClick:()=>{T(t).then((()=>null)),a&&a.length?i&&(i.target.focus(),l({searchResults:[],keywords:""})):u()},icon:a&&a.length>0?"no":h.length?"format-status":"search",showTooltip:!0,label:a&&a.length>0?(0,o.__)("Clear results","ootb-openstreetmap"):(0,o.__)("Find locations","ootb-openstreetmap"),disabled:!(e&&e.length>2)})),(0,n.createElement)(P,{props:t}))}function z(t){const e=t.map((t=>t[0])),i=t.map((t=>t[1])),n=(Math.min(...e)+Math.max(...e))/2,o=(Math.min(...i)+Math.max(...i))/2;return n&&!isNaN(n)&&o&&!isNaN(o)?[n,o]:null}function M(t){const{attributes:{bounds:e,showDefaultBounds:i,markers:n}}=t;return!0===i?z(ootbGlobal.defaultLocation):z(e)||[n[0]?.lat,n[0]?.lng]}const E=window.ReactDOM;function C(t,e){return Object.freeze({...t,...e})}const S=(0,n.createContext)(null),Z=S.Provider;function O(){const t=(0,n.useContext)(S);if(null==t)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of ");return t}function A(t){function e(e,i){const{instance:o,context:s}=t(e).current;return(0,n.useImperativeHandle)(i,(()=>o)),null==e.children?null:n.createElement(Z,{value:s},e.children)}return(0,n.forwardRef)(e)}function I(t,e,i){return Object.freeze({instance:t,context:e,container:i})}function B(t,e){return null==e?function(e,i){const o=(0,n.useRef)();return o.current||(o.current=t(e,i)),o}:function(i,o){const s=(0,n.useRef)();s.current||(s.current=t(i,o));const r=(0,n.useRef)(i),{instance:a}=s.current;return(0,n.useEffect)((function(){r.current!==i&&(e(a,i,r.current),r.current=i)}),[a,i,o]),s}}function N(t,e){const i=(0,n.useRef)(e);(0,n.useEffect)((function(){e!==i.current&&null!=t.attributionControl&&(null!=i.current&&t.attributionControl.removeAttribution(i.current),null!=e&&t.attributionControl.addAttribution(e)),i.current=e}),[t,e])}function R(t,e){const i=(0,n.useRef)();(0,n.useEffect)((function(){return null!=e&&t.instance.on(e),i.current=e,function(){null!=i.current&&t.instance.off(i.current),i.current=null}}),[t,e])}function D(t,e){const i=t.pane??e.pane;return i?{...t,pane:i}:t}function j(t,e){(0,n.useEffect)((function(){return(e.layerContainer??e.map).addLayer(t.instance),function(){e.layerContainer?.removeLayer(t.instance),e.map.removeLayer(t.instance)}}),[e,t])}function H(t){return function(e){const i=O(),n=t(D(e,i),i);return N(i.map,e.attribution),R(n.current,e.eventHandlers),j(n.current,i),n}}function W(t,e){return A((i=B(t,e),function(t){const e=O(),o=i(D(t,e),e);return R(o.current,t.eventHandlers),j(o.current,e),function(t,e){const i=(0,n.useRef)();(0,n.useEffect)((function(){if(e.pathOptions!==i.current){const n=e.pathOptions??{};t.instance.setStyle(n),i.current=n}}),[t,e])}(o.current,t),o}));var i}var F=i(243),U=i.n(F);const q=function(t){function e(e,i){const{instance:o}=t(e).current;return(0,n.useImperativeHandle)(i,(()=>o)),null}return(0,n.forwardRef)(e)}(H(B((function({url:t,...e},i){return I(new F.TileLayer(t,D(e,i)),i)}),(function(t,e,i){!function(t,e,i){const{opacity:n,zIndex:o}=e;null!=n&&n!==i.opacity&&t.setOpacity(n),null!=o&&o!==i.zIndex&&t.setZIndex(o)}(t,e,i);const{url:n}=e;null!=n&&n!==i.url&&t.setUrl(n)}))));function V({props:t}){const{attributes:{provider:e}}=t,{options:{api_mapbox:i},providers:{openstreetmap:o,mapbox:s,stamen:a}}=ootbGlobal;let h=o.url,l=o.attribution;"mapbox"===e&&i&&(h=s.url+i,l=s.attribution),"stamen"===e&&(h=a.url,l=a.attribution);const u=(0,r.useRef)(null);return(0,r.useEffect)((()=>{u.current.setUrl(h)}),[h]),(0,n.createElement)(q,{ref:u,url:h,attribution:l})}const G=A(H(B((function({position:t,...e},i){const n=new F.Marker(t,e);return I(n,C(i,{overlayContainer:n}))}),(function(t,e,i){e.position!==i.position&&t.setLatLng(e.position),null!=e.icon&&e.icon!==i.icon&&t.setIcon(e.icon),null!=e.zIndexOffset&&e.zIndexOffset!==i.zIndexOffset&&t.setZIndexOffset(e.zIndexOffset),null!=e.opacity&&e.opacity!==i.opacity&&t.setOpacity(e.opacity),null!=t.dragging&&e.draggable!==i.draggable&&(!0===e.draggable?t.dragging.enable():t.dragging.disable())})))),J=function(t,e){const i=function(t,e){return function(i,n){const o=O(),s=t(D(i,o),o);return N(o.map,i.attribution),R(s.current,i.eventHandlers),e(s.current,o,i,n),s}}(B((function(t,e){return I(new F.Popup(t,e.overlayContainer),e)})),(function(t,e,{position:i},o){(0,n.useEffect)((function(){const{instance:n}=t;function s(t){t.popup===n&&(n.update(),o(!0))}function r(t){t.popup===n&&o(!1)}return e.map.on({popupopen:s,popupclose:r}),null==e.overlayContainer?(null!=i&&n.setLatLng(i),n.openOn(e.map)):e.overlayContainer.bindPopup(n),function(){e.map.off({popupopen:s,popupclose:r}),e.overlayContainer?.unbindPopup(),e.map.removeLayer(n)}}),[t,e,o,i])}));return function(t){function e(e,i){const[o,s]=(0,n.useState)(!1),{instance:r}=t(e,s).current;(0,n.useImperativeHandle)(i,(()=>r)),(0,n.useEffect)((function(){o&&r.update()}),[r,o,e.children]);const a=r._contentNode;return a?(0,E.createPortal)(e.children,a):null}return(0,n.forwardRef)(e)}(i)}();function K({props:t}){const{attributes:{mapObj:e,markers:i,isDraggingMarker:r},setAttributes:a}=t,h=n=>{const o=n.target;let s;if(o.hasAttribute("dataIndex"))s=o.getAttribute("dataIndex");else{const t=o.parentElement;t&&"button"===t.tagName.toLowerCase()&&(s=t.getAttribute("dataIndex"))}let r=[...i];r.splice(s,1),a({isDraggingMarker:!1,markers:r,shouldUpdateBounds:!0}),w(t,[],e.leafletElement)};let l=null;const p=e=>U().icon(u(t,e));return void 0!==i&&i.length?i.map(((u,m)=>(0,n.createElement)(G,{key:m,markerId:u.id,position:[u.lat,u.lng],icon:p(m),draggable:!0,eventHandlers:{mousedown:t=>{l=new Date,a({addingMarker:""})},mouseup:t=>{(t=>{if(!0!==r){const e=new Date;l&&0!=!!(e-l)||t.target.openPopup()}})(t)},mouseover:t=>{i&&a({isDraggingMarker:!0})},dragstart:t=>{a({isDraggingMarker:!0})},dragend:n=>{(n=>{const o=n.target.getLatLng(),s=function(t,e){const i=t.target.options.markerId;let n=null;for(let t in e)i===e[t].id&&(n=t);return n}(n,i),r=[...i];r[s]&&(r[s].lat=o.lat.toString(),r[s].lng=o.lng.toString(),a({markers:r,shouldUpdateBounds:!0}),w(t,[],e.leafletElement)),a({isDraggingMarker:!1})})(n)}}},(0,n.createElement)(J,null,(0,n.createElement)(c.RichText,{value:u.text,onChange:t=>{let e=[...i];e[m].text=t,a({markers:e})},placeholder:(0,o.__)("Write something","ootb-openstreetmap")}),(0,n.createElement)("div",{className:"ootb-openstreetmap--marker-icon-container"},(0,n.createElement)(d,{props:t,index:m}),(0,n.createElement)(s.Button,{onClick:h,dataindex:m,icon:"trash",isDestructive:!0,variant:"secondary",showTooltip:!0,label:(0,o.__)("Remove this marker","ootb-openstreetmap")})))))):null}const Y=W((function({positions:t,...e},i){const n=new F.Polygon(t,e);return I(n,C(i,{overlayContainer:n}))}),(function(t,e,i){e.positions!==i.positions&&t.setLatLngs(e.positions)}));function X({props:t,styles:e}){const{attributes:{markers:i,shapeText:r},setAttributes:a}=t;return(0,n.createElement)(Y,{positions:i,pathOptions:e},(0,n.createElement)(J,null,(0,n.createElement)(c.RichText,{value:r,onChange:t=>{a({shapeText:t})},placeholder:(0,o.__)("Write something","ootb-openstreetmap")}),(0,n.createElement)("div",{className:"ootb-openstreetmap--marker-icon-container ootb-openstreetmap--marker-remove ootb-openstreetmap--shape-controls"},(0,n.createElement)(s.Button,{onClick:()=>{a({isDraggingMarker:!1,markers:[],shapeText:"",zoom:8,shouldUpdateZoom:!0})},icon:"trash",isDestructive:!0,variant:"secondary",showTooltip:!0,isSecondary:!0,label:(0,o.__)("Remove this shape","ootb-openstreetmap")}))))}const $=W((function({positions:t,...e},i){const n=new F.Polyline(t,e);return I(n,C(i,{overlayContainer:n}))}),(function(t,e,i){e.positions!==i.positions&&t.setLatLngs(e.positions)}));function Q({props:t,styles:e}){const{attributes:{markers:i,shapeText:r},setAttributes:a}=t;return(0,n.createElement)($,{positions:i,pathOptions:e},(0,n.createElement)(J,null,(0,n.createElement)(c.RichText,{value:r,onChange:t=>{a({shapeText:t})},placeholder:(0,o.__)("Write something","ootb-openstreetmap")}),(0,n.createElement)("div",{className:"ootb-openstreetmap--marker-icon-container ootb-openstreetmap--marker-remove ootb-openstreetmap--shape-controls"},(0,n.createElement)(s.Button,{onClick:()=>{a({isDraggingMarker:!1,markers:[],shapeText:"",zoom:8,shouldUpdateZoom:!0})},icon:"trash",isDestructive:!0,variant:"secondary",showTooltip:!0,isSecondary:!0,label:(0,o.__)("Remove this shape","ootb-openstreetmap")}))))}function tt({props:t}){const{attributes:{mapType:e,markers:i,shapeColor:o,shapeWeight:s,isDraggingMarker:r}}=t,a={fillColor:o,color:o,weight:s};return"polygon"===e&&!0!==r&&i.length?(0,n.createElement)(X,{props:t,styles:a}):"polyline"===e&&!0!==r&&i.length?(0,n.createElement)(Q,{props:t,styles:a}):null}function et(){return et=Object.assign||function(t){for(var e=1;em?.map??null),[m]);const f=(0,n.useCallback)((n=>{if(null!==n&&null===m){const o=new F.Map(n,c);null!=i&&null!=u?o.setView(i,u):null!=t&&o.fitBounds(t,e),null!=l&&o.whenReady(l),_(function(t){return Object.freeze({__version:1,map:t})}(o))}}),[]);(0,n.useEffect)((()=>()=>{m?.map.remove()}),[m]);const g=m?n.createElement(Z,{value:m},o):a??null;return n.createElement("div",et({},p,{ref:f}),g)}const nt=(0,n.forwardRef)(it);function ot(){return O().map}var st=i(518);function rt({props:t}){const{attributes:{mapObj:e,markers:i,zoom:o,showDefaultBounds:s,shouldUpdateZoom:a,shouldUpdateBounds:h,addingMarker:l,isDraggingMarker:u},setAttributes:c}=t;let d;const p=function(t){const e=ot();return(0,n.useEffect)((function(){return e.on(t),function(){e.off(t)}}),[e,t]),e}({mouseup:e=>{(e=>{if(clearTimeout(d),l){const n=x(t,e);c({markers:[...i,n],addingMarker:""}),w(t,n,e.target),setTimeout((function(){c({isDraggingMarker:!1})}),600)}})(e)},mousedown:t=>{(t=>{"div"===t.originalEvent.target.nodeName.toLowerCase()&&c({isDraggingMarker:!1}),!1===u&&(st.tq&&!st.G6?c({addingMarker:" pinning"}):d=setTimeout((function(){c({addingMarker:" pinning"}),setTimeout((function(){c({addingMarker:""})}),900)}),300))})(t)},drag:t=>{clearTimeout(d),c({addingMarker:"",isDraggingMarker:!1})},mouseout:t=>{c({isDraggingMarker:!1})},zoomanim:t=>{(t=>{c({zoom:t.zoom})})(t)},popupclose:()=>{c({isDraggingMarker:!1})}});return(0,r.useEffect)((()=>{!0===s&&c({bounds:ootbGlobal.defaultLocation,showDefaultBounds:!1}),!0===h&&(w(t,[],p),c({shouldUpdateBounds:!1})),void 0===p||void 0!==e&&e.length&&e===p||c({mapObj:p}),!0===a&&o!==p.getZoom()&&(p.setZoom(o),c({shouldUpdateZoom:!1}))})),null}function at({props:t}){const{attributes:{mapHeight:e}}=t,i=ot().getContainer();return parseInt(i.style.height)!==e&&(i.style.height=`${e}px`),null}function ht({props:t}){const{attributes:{zoom:e,bounds:i,mapHeight:o,mapType:s}}=t;return(0,n.createElement)(nt,{center:M(t),zoom:e,bounds:i,style:{height:o+"px"}},(0,n.createElement)(rt,{props:t}),(0,n.createElement)(at,{props:t}),(0,n.createElement)(V,{props:t}),(0,n.createElement)(K,{props:t}),"marker"!==s?(0,n.createElement)(tt,{props:t}):null)}function lt({props:t}){const{attributes:{addingMarker:e,openAImode:i}}=t;let s="",r="ootb-openstreetmap--alert";return" pinning"===e?s=(0,o.__)("Release to drop a marker here","ootb-openstreetmap"):i.length&&("started"===i?s=(0,o.__)("You have entered OpenAI mode. When you finish your prompt, please hit enter or click on the bubble icon.","ootb-openstreetmap"):"connecting"===i?s=(0,o.__)("Connecting to OpenAI...","ootb-openstreetmap"):"success"===i?s=(0,o.__)("Preparing the data. Please be patient...","ootb-openstreetmap"):"working"===i?(s=(0,o.sprintf)((0,o.__)('Creating the markers. It will take a while, because we don\'t want to violate the Nominatim usage policy.',"ootb-openstreetmap"),"https://operations.osmfoundation.org/policies/nominatim/"),r+=" alert-active"):"invalid_question"===i?(s=(0,o.__)("I don't understand your question. Please try again.","ootb-openstreetmap"),r+=" alert-error"):"error"===i&&(s=(0,o.__)("Something went wrong. Sorry...","ootb-openstreetmap"),r+=" alert-error")),s?(0,n.createElement)("div",{className:r,dangerouslySetInnerHTML:{__html:s}}):null}function ut(t){const{attributes:{bounds:e,markers:i}}=t;return z(e)||[i[0].lat,i[0].lng]}function ct(t){const{attributes:{defaultIcon:e}}=t,{pluginDirUrl:i}=ootbGlobal,n=i+"assets/vendor/leaflet/images/marker-icon.png",o=e?e.width/2:12;return{iconUrl:e?e.url:n,iconAnchor:[o,0]}}const dt=[{attributes:{mapHeight:{type:"integer",default:400},markers:{type:"array",default:[]},zoom:{type:"integer",default:8},minZoom:{type:"integer",default:2},maxZoom:{type:"integer",default:18},dragging:{type:"boolean",default:!0},touchZoom:{type:"boolean",default:!0},doubleClickZoom:{type:"boolean",default:!0},scrollWheelZoom:{type:"boolean",default:!0},defaultIcon:{type:"object",default:null},bounds:{type:"array",default:[[37.97155174977503,23.72656345367432]]},provider:{type:"string",default:"openstreetmap"}},supports:{className:!1,align:["wide","full"]},save(t,e){const{attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:c,scrollWheelZoom:d,provider:p}}=t;return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-provider":p,"data-markers":encodeURIComponent(JSON.stringify(o)),"data-bounds":JSON.stringify(M(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":c,"data-scrollwheelzoom":d,"data-marker":encodeURIComponent(JSON.stringify(u(t))),style:{height:i+"px"}})):null}},{attributes:{mapHeight:{type:"integer",default:400},markers:{type:"array",default:[]},zoom:{type:"integer",default:8},minZoom:{type:"integer",default:2},maxZoom:{type:"integer",default:18},dragging:{type:"boolean",default:!0},touchZoom:{type:"boolean",default:!0},doubleClickZoom:{type:"boolean",default:!0},scrollWheelZoom:{type:"boolean",default:!0},defaultIcon:{type:"object",default:null},bounds:{type:"array",default:[[37.97155174977503,23.72656345367432]]},provider:{type:"string",default:"openstreetmap"}},supports:{className:!1,align:["wide","full"]},save(t){const{className:e,attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:c,scrollWheelZoom:d,provider:p}}=t;return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-provider":p,"data-markers":escape(JSON.stringify(o)),"data-bounds":JSON.stringify(ut(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":c,"data-scrollwheelzoom":d,"data-marker":escape(JSON.stringify(u(t))),style:{height:i+"px"}})):null}},{attributes:{mapHeight:{type:"integer",default:400},markers:{type:"array",default:[]},zoom:{type:"integer",default:8},minZoom:{type:"integer",default:2},maxZoom:{type:"integer",default:18},dragging:{type:"boolean",default:!0},touchZoom:{type:"boolean",default:!0},doubleClickZoom:{type:"boolean",default:!0},scrollWheelZoom:{type:"boolean",default:!0},defaultIcon:{type:"object",default:null},bounds:{type:"array",default:[[37.97155174977503,23.72656345367432]]}},supports:{align:["wide","full"]},save(t){const{className:e,attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:c,scrollWheelZoom:d}}=t;return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-markers":escape(JSON.stringify(o)),"data-bounds":JSON.stringify(ut(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":c,"data-scrollwheelzoom":d,"data-marker":escape(JSON.stringify(u(t))),style:{height:i+"px"}})):null}},{attributes:{mapHeight:{type:"integer",default:400},markers:{type:"array",default:[]},zoom:{type:"integer",default:8},minZoom:{type:"integer",default:2},maxZoom:{type:"integer",default:18},dragging:{type:"boolean",default:!0},touchZoom:{type:"boolean",default:!0},doubleClickZoom:{type:"boolean",default:!0},scrollWheelZoom:{type:"boolean",default:!0},defaultIcon:{type:"object",default:null},bounds:{type:"array",default:[[37.97155174977503,23.72656345367432]]}},supports:{align:["wide","full"]},save(t){const{className:e,attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:u,scrollWheelZoom:c}}=t;return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-markers":escape(JSON.stringify(o)),"data-bounds":JSON.stringify(ut(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":u,"data-scrollwheelzoom":c,"data-marker":escape(JSON.stringify(ct(t))),style:{height:i+"px"}})):null}}];(0,t.registerBlockType)(e,{edit:function(t){const{attributes:e}=t,{addingMarker:i}=e,o=(0,c.useBlockProps)({className:i||""});return(0,n.createElement)("div",{...o},(0,n.createElement)(y,{props:t}),(0,n.createElement)(k,{props:t}),(0,n.createElement)(ht,{props:t}),(0,n.createElement)(lt,{props:t}))},save:function(t,e){const{attributes:{mapHeight:i,markers:o,zoom:s,minZoom:r,maxZoom:a,dragging:h,touchZoom:l,doubleClickZoom:c,scrollWheelZoom:d,provider:p,mapType:m,showMarkers:_,shapeColor:f,shapeWeight:g,shapeText:v}}=t,y={fillColor:f,color:f,weight:g};return o?(0,n.createElement)("div",{className:e},(0,n.createElement)("div",{className:"ootb-openstreetmap--map","data-provider":p,"data-maptype":m,"data-showmarkers":_,"data-shapestyle":encodeURIComponent(JSON.stringify(y)),"data-shapetext":v,"data-markers":encodeURIComponent(JSON.stringify(o)),"data-bounds":JSON.stringify(M(t)),"data-zoom":s,"data-minzoom":r,"data-maxzoom":a,"data-dragging":h,"data-touchzoom":l,"data-doubleclickzoom":c,"data-scrollwheelzoom":d,"data-marker":encodeURIComponent(JSON.stringify(u(t))),style:{height:i+"px"}})):null},deprecated:dt})})()})(); \ No newline at end of file diff --git a/includes/classes/Assets.php b/includes/classes/Assets.php index eeb085a..7aacc77 100644 --- a/includes/classes/Assets.php +++ b/includes/classes/Assets.php @@ -1,4 +1,4 @@ - '1.9.4', 'leaflet-gesture-handling' => '1.4.4', diff --git a/readme.txt b/readme.txt index d2eeb2c..3e845be 100644 --- a/readme.txt +++ b/readme.txt @@ -32,6 +32,7 @@ Instead of manually adding coordinates for each one of your markers, just click- * [Dead-simple interface](https://www.gsarigiannidis.gr/wordpress-gutenberg-map-block-openstreetmap/). Don't search for coordinates and don't get overwhelmed by too many fields when using multiple markers. Just point and click on the map to add your marker where you want it and edit it's popup content directly from there. * [Place search](https://www.gsarigiannidis.gr/openstreetmap-place-search/). Find locations by typing keywords. * Remembers the zoom that you set when adding the markers and stores it so that you don't set it by hand (which you can do anyway if you prefer). +* OpenAI integration which allows you to add markers by using commands in natural language. Just say "please" to activate (e.g. "Please, show me where GOT was filmed"). Requires an OpenAI API key. [Read more](https://www.gsarigiannidis.gr/openstreetmap-openai-integration/). * Adjust the map height. * Change the default marker icon with a custom one. * Enable or disable map dragging. @@ -70,6 +71,10 @@ Click on the marker to open up its popup. There, you will see the "Remove" butto Check under the "Map behavior" section, at the blocks' settings at the sidebar on the right. It's toggled off by default, that's probably why you missed it. += How does the OpenAI integration work? = + +First of all, you will need to create an account to [OpenAI](https://openai.com/) and get an API key. Then, go to the plugin's settings page and paste your key there. After that, you can start adding markers by using commands in natural language. Just say "please" to activate (e.g. "Please, show me where GOT was filmed"). Please keep in mind, though, that it's like asking ChatGPT: the answers you get might not always be 100% reliable, and you should always double-check to confirm their accuracy. [Read more](https://www.gsarigiannidis.gr/openstreetmap-openai-integration/). + == Screenshots == 1. Adding markers and rich content @@ -83,8 +88,12 @@ Check under the "Map behavior" section, at the blocks' settings at the sidebar o 9. Adding a polygon 10. Adding a polyline 11. Export and import locations +12. Demonstrating the OpenAI integration == Upgrade Notice == += 2.5.0 = +Version 2.5.0 adds support for OpenAI integration which allows you to add markers by using commands in natural language. Just say "please" to activate (e.g. "Please, show me where GOT was filmed"). Requires an OpenAI API key. + = 2.4.0 = Version 2.4.0 adds an option to prevent the default map scroll/touch behaviours to make it easier for users to navigate in a page (pretty much like in Google Maps). @@ -103,6 +112,9 @@ Version 2.0.0 is a major, almost full, refactoring, both for the build scripts a = 1.0 = == Changelog == += 2.5.0 = +* [New] Adds OpenAI integration which allows you to add markers by using commands in natural language. Just say "please" to activate (e.g. "Please, show me where GOT was filmed"). Requires an OpenAI API key. [Read more](https://www.gsarigiannidis.gr/openstreetmap-openai-integration/). + = 2.4.1 = * Updates the build scripts. * Updates compatibility with WordPress 6.4. diff --git a/src/Elements/Alert.js b/src/Elements/Alert.js index ed2b242..328e8bd 100644 --- a/src/Elements/Alert.js +++ b/src/Elements/Alert.js @@ -1,5 +1,5 @@ // noinspection NpmUsedModulesInstalled -import {__} from '@wordpress/i18n'; +import {__, sprintf} from '@wordpress/i18n'; export default function Alert({props}) { const { @@ -20,7 +20,10 @@ export default function Alert({props}) { } else if ('success' === openAImode) { alert = __('Preparing the data. Please be patient...', 'ootb-openstreetmap'); } else if ('working' === openAImode) { - alert = __('Creating the markers. It will take a while, because we don\'t want to hit the Nominatim rate limits.', 'ootb-openstreetmap'); + alert = sprintf( + __('Creating the markers. It will take a while, because we don\'t want to violate the Nominatim usage policy.', 'ootb-openstreetmap'), + 'https://operations.osmfoundation.org/policies/nominatim/', + ); alertClass += ' alert-active'; } else if ('invalid_question' === openAImode) { alert = __('I don\'t understand your question. Please try again.', 'ootb-openstreetmap'); @@ -32,6 +35,9 @@ export default function Alert({props}) { } return alert ? -
{alert}
+
: null; } diff --git a/src/Elements/SearchBox.js b/src/Elements/SearchBox.js index 2c16c77..e30092e 100644 --- a/src/Elements/SearchBox.js +++ b/src/Elements/SearchBox.js @@ -71,14 +71,19 @@ export default function SearchBox({props}) { if (searchResults && searchResults.length > 0) { return 'no'; } else if (openAImode.length) { - return 'admin-comments'; + return 'format-status'; } else { return 'search'; } } + + let searchBoxClass = "ootb-openstreetmap--searchbox"; + if (openAImode.length) { + searchBoxClass += " openai-active"; + } return ( -
+