-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathslpy.js
2 lines (2 loc) · 56.2 KB
/
slpy.js
1
2
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("maplibre-gl"),require("ol/Map"),require("ol/View"),require("ol/control"),require("ol/interaction"),require("ol/proj"),require("ol/layer"),require("ol/source"),require("ol/format"),require("ol/extent"),require("ol-mapbox-style")):"function"==typeof define&&define.amd?define(["maplibre-gl","ol/Map","ol/View","ol/control","ol/interaction","ol/proj","ol/layer","ol/source","ol/format","ol/extent","ol-mapbox-style"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).slpy=t(e.maplibregl,e.Map,e.View,e.control,e.interaction,e.proj,e.layer,e.source,e.format,e.extent,e.olms)}(this,(function(e,t,o,a,n,r,i,l,s,c,d){"use strict";let p={maplibreLoaded:!1,openlayersLoaded:!1,openlayersLoading:!1,openlayersReady:void 0,mapStyleUrl:"https://api.slpy.com/style/slpy-mgl-style.json",oldIE:!1,aerialImageryOn:!1,streetLevelOn:!1},m={openlayersFallback:!1,rasterFallback:!1,mapFilter:[],apiKey:"",language:"en"},y={view:{},controls:{},interactions:{}},u={ol:void 0,olms:void 0,maplibregl:void 0};function g(e,t,o){if("string"==typeof e)var a=document.getElementById(e);else if(!e||"input"!==e.nodeName.toLowerCase()&&"textarea"!==e.nodeName.toLowerCase())console.log("Target input for autocomplete is not a valid element or id");else a=e;o=void 0===o?"":o;var n="US";void 0!==t.country&&(n=t.country.toLowerCase());var r="";void 0!==t.apiKey&&(r=t.apiKey.toLowerCase());var i=a.offsetWidth-6+"px";void 0!==t.width&&(i=t.width);var l=3;void 0!==t.offsetLeft&&(l=t.offsetLeft);var s=3;void 0!==t.offsetTop&&(s=t.offsetTop);var c="all";void 0!==t.autocompleteType&&(c=t.autocompleteType.toLowerCase());var d="";void 0!==t.filter&&(d="&filter="+t.filter.toLowerCase()),void 0!==t.language&&(m.language=t.language.toLowerCase());var p=10;void 0!==t.limit&&(t.limit=parseInt(t.limit),t.limit<10&&t.limit>0?p=t.limit:console.log("Autocomplete limit is outside of 1-10 range."));var y=175;void 0!==t.debounceTime&&(t.debounceTime=parseInt(t.debounceTime),t.debounceTime<1e3&&t.debounceTime>0?y=t.debounceTime:console.log("Autocomplete debounceTime is outside of 1-1000 range."));var u=document.createElement("div");u.className="apiautodropdown-content",u.id="apiautodropdownContent "+a.id;void 0!==t.insertId?document.getElementById(t.insertId).appendChild(u):document.body.appendChild(u);function g(e){var o=a.parentNode.getBoundingClientRect(),n=a.getBoundingClientRect();if(void 0!==t.insertId)var r={left:n.left-o.left,top:n.top-o.top,height:n.height};else r=a.getBoundingClientRect();var c=window.visualViewport?window.visualViewport.height:window.innerHeight;if(e&&"resize"!==e.type||(u.style.position="absolute",u.style.left=r.left+l+window.pageXOffset+"px",u.style.top=r.top+r.height+window.pageYOffset+s+"px",u.style.width=i),!e||"scroll"===e.type){var d=Math.max(165,c-n.top-r.height-s-5);u.style.maxHeight=d+"px"}}var h=0,v="";function f(e,t,o,a){e.addEventListener?e.addEventListener(t,o,a):e.attachEvent&&e.attachEvent("on"+t,o)}function w(e,t,o,a){e.removeEventListener?e.removeEventListener(t,o,a):e.detachEvent&&e.detachEvent("on"+t,o)}f(a,"keydown",(function(e){h=0,40===e.keyCode||9==e.keyCode?(e.preventDefault(),u.getElementsByClassName("apiautodropdown-item")[0].focus()):13==e.keyCode&&(u.classList.remove("apiautodropdown-content-show"),w(window,"resize",g,!1),w(window,"scroll",g,!1))}),!1),f(u,"keydown",(function(e){40!==e.keyCode&&9!=e.keyCode||(e.preventDefault(),void 0!==u.getElementsByClassName("apiautodropdown-item")[h+1]&&(h++,u.getElementsByClassName("apiautodropdown-item")[h].focus())),38===e.keyCode&&(e.preventDefault(),h>0?h--:setTimeout((function(){a.focus()}),10),u.getElementsByClassName("apiautodropdown-item")[h].focus())}),!1);var b=null;function L(e,t){b&&b.abort();var o=function(e,t){var o=new XMLHttpRequest;return"withCredentials"in o?o.open(e,t,!0):"undefined"!=typeof XDomainRequest?(o=new XDomainRequest).open(e,t):o=null,o}("POST",e);o.onreadystatechange=function(){if(4===o.readyState){if(200===o.status){var e=JSON.parse(o.responseText);t(e)}else{console.log("Slpy Api: There was a problem with the request. Make sure the API Key is set correctly and the origin/referer request header matches your whitelisted domains.");e=JSON.parse(o.responseText);t(e)}b=null}},b=o,o.send()}var x={};function k(e){x=e}var C,I,z,M=(C=function(e){if(13!==e.keyCode){if(9!==e.keyCode){var t=a.value.toLowerCase();if(t.length>1){if((t=encodeURIComponent(t))!==v+" "&&t!==v){var o=function(e){if(Object.keys(e).length>0){var t=!1;if(void 0!==e[0]&&void 0!==e[0].focus&&(t=!0,u.innerHTML=""),Object.keys(e).forEach((function(t){if(void 0!==e[t]&&void 0!==e[t].focus&&t<p){var o=document.createElement("button");o.className="apiautodropdown-item",o.type="button";var a='<svg xmlns="http://www.w3.org/2000/svg" class="apiautodropdown-icon" width="17px" height="13px" viewBox="0 0 448 512">\x3c!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --\x3e';switch(e[t].quality){case 6:a+='<path d="M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"/></svg>';break;case 5:a+='<path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"/></svg>';break;case 4:a+='<path d="M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"/></svg>';break;case 3:a+='<path d="M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"/></svg>';break;case 2:a+='<path d="M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"/></svg>';break;case 1:a+='<path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"/></svg>';break;default:a+='<path d="M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"/></svg>'}e[t].focus.indexOf(",")>-1?o.innerHTML=a+'<div class="apiautodropdown-text">'+e[t].focus.replace(",",'<span class="apiautodropdown-muted">,')+"</span></div>":o.innerHTML=a+'<div class="apiautodropdown-text">'+e[t].focus+"</div>",o.setAttribute("autocompleteID",t),u.appendChild(o)}})),t){var o=document.createElement("div");u.appendChild(o),o.innerHTML='<a href="https://www.slpy.com" style="color:#888f94; text-decoration:none;">powered by <span style="color:#5e849f;font-size:13px">Slpy</a>',o.setAttribute("style","line-height:13px; font-size: 12px; padding:2px 10px 0px 0px; margin: 0px; text-align:right"),u.classList.contains("apiautodropdown-content-show")||(u.classList.add("apiautodropdown-content-show"),g(),f(window,"resize",g,!1),f(window,"scroll",g,!1),function(e){var t,o=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight;if(o.bottom>a){var n=o.height,r=a-o.top,i=n<165?n:165;r<i&&(t=i-r,window.scrollBy(0,t))}}(u))}}else u.classList.contains("apiautodropdown-content-show")&&(u.classList.remove("apiautodropdown-content-show"),w(window,"resize",g,!1),w(window,"scroll",g,!1))};v=t,h=0,"all"==c?L("https://api.slpy.com/v1/search?autocomplete=admin"+d+"&country="+n+"&key="+r+"&language="+m.language+"&search="+t,(function(e){Object.keys(e).length<p?L("https://api.slpy.com/v1/search?autocomplete=address&country="+n+"&key="+r+"&language="+m.language+"&search="+t,(function(t){if(void 0===e[0]||void 0===e[0].focus||""===e[0].focus)e=t;else if(void 0!==t[0].focus&&""!==t[0].focus){var a=Object.keys(e).filter((function(e){return!isNaN(parseInt(e,p))&&e===String(parseInt(e,p))})).length;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var r=parseInt(n,p)+a;if(!(r<p))break;e[r]=t[n]}}o(e),k(e)})):(o(e),k(e))})):L("admin"==c?"https://api.slpy.com/v1/search?autocomplete=admin"+d+"&country="+n+"&key="+r+"&language="+m.language+"&search="+t:"https://api.slpy.com/v1/search?autocomplete=address&country="+n+"&key="+r+"&language="+m.language+"&search="+t,(function(e){o(e),k(e)}))}}else u.classList.contains("apiautodropdown-content-show")&&(u.classList.remove("apiautodropdown-content-show"),w(window,"resize",g,!1),w(window,"scroll",g,!1))}}else u.classList.contains("apiautodropdown-content-show")&&u.classList.remove("apiautodropdown-content-show")},void 0===(I=y)&&(I=175),function(){clearTimeout(z);var e=Array.prototype.slice.call(arguments);z=setTimeout(function(){C.apply(this,e)}.bind(this),I)});f(a,"input",M,!1);var P=!1;function S(e){u.contains(e.target)||e.target===a||(u.classList.remove("apiautodropdown-content-show"),w(window,"resize",g,!1),w(window,"scroll",g,!1))}f(u,"touchstart",(function(e){e.currentTarget.getAttribute("id")=="apiautodropdownContent "+a.id&&(P=!1)}),!1),f(u,"touchmove",(function(e){e.currentTarget.getAttribute("id")=="apiautodropdownContent "+a.id&&(P=!0)}),!1),f(document,"click",S,!0),f(document,"touchend",S,!0);var E=function(e,t){return function(n){var r=function(e,t){for(;e&&e!==document;e=e.parentNode)if(e.matches?e.matches(t):e.msMatchesSelector(t))return e;return null}(n.target,".apiautodropdown-item");if(r){if(n.preventDefault(),P)return;document.activeElement!==r&&r.focus();var i=r.textContent.trim();v=i.toLowerCase(),e.value=i,t.classList.remove("apiautodropdown-content-show"),w(window,"resize",g,!1),w(window,"scroll",g,!1);var l=r.getAttribute("autocompleteID");"function"==typeof o&&o(a,x[l])}else n.target.getAttribute("id")!=e.id&&(t.classList.remove("apiautodropdown-content-show"),w(window,"resize",g,!1),w(window,"scroll",g,!1))}}(a,u);return f(u,"click",E,!0),f(u,"touchend",E,!0),{updateAutocomplete:function(e){void 0!==e.country&&(n=e.country.toLowerCase()),void 0!==e.autocomplete&&(c=e.autocomplete.toLowerCase()),void 0!==e.filter&&(d="&filter="+e.filter.toLowerCase()),w(a,"input",M,!1),f(a,"input",M,!1)}}}function h(){try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2")&&!e.getContext("experimental-webgl2"))}catch(e){return!1}}function v(){var e,t=navigator.userAgent.toLowerCase();if(parseInt(t.split("msie")[1])<=10)return!1;return!(!(e=document.createElement("canvas")).getContext||!e.getContext("2d"))&&function(){for(var e=0;e<16;e++){if(!document.createElement("canvas").getContext("2d"))return console.log("Browser has limited Canvas contexts."),!1}return!0}()&&"fetch"in window&&"Promise"in window&&"withCredentials"in new XMLHttpRequest}function f(e){var t=document.createElement("script");t.type="text/javascript",t.src=e,document.head.appendChild(t)}function w(e){return e*Math.PI/180}function b(e,t,o,a){var n=w(a-t);e=w(e),o=w(o);return 6371*Math.acos(Math.sin(e)*Math.sin(o)+Math.cos(e)*Math.cos(o)*Math.cos(n))}let L,x,k,C=!1;function I(e,t,o,a){var n=new u.ol.Feature({geometry:new u.ol.geom.Point(u.ol.proj.fromLonLat(e)),name:t}),r=window.btoa('<svg xmlns="http://www.w3.org/2000/svg" style="fill: #fff;display:box;stroke:#fff;stroke-width:15px;filter: drop-shadow(1px 2px 1px rgba(0,0,0,0.4));" width="27px" height="36px" viewBox="0 0 384 512">\x3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --\x3e<path d="M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"/></svg>'),i=window.btoa('<svg xmlns="http://www.w3.org/2000/svg" style="fill: #fff; display:box;stroke:#fff;stroke-width:15px;filter: drop-shadow(1px 2px 1px rgba(0,0,0,0.4));" width="27px" height="36px" viewBox="0 0 384 512">\x3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --\x3e<path d="M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z"/></svg>');if(n.setId("marker:"+o),"default"==a){var l=new u.ol.style.Style({image:new u.ol.style.Icon({opacity:1,color:"#a11c25",anchor:[.5,36],anchorXUnits:"fraction",anchorYUnits:"pixels",src:"data:image/svg+xml;base64,"+r,imgSize:window.document.documentMode?[27,36]:null})});return n.setStyle(l),n}l=new u.ol.style.Style({image:new u.ol.style.Icon({opacity:1,color:"#a11c25",anchor:[.5,36],anchorXUnits:"fraction",anchorYUnits:"pixels",src:"data:image/svg+xml;base64,"+i,imgSize:window.document.documentMode?[27,36]:null})});var s=new u.ol.style.Style({text:new u.ol.style.Text({text:(o+1).toString(),fill:new u.ol.style.Fill({color:"#fff"}),stroke:new u.ol.style.Stroke({color:"rgba(0,0,0,0.1)",width:1.5}),offsetY:-10,textBaseline:"bottom",textAlign:"center",font:'Normal 700 12px "Open Sans", "Arial", "Verdana", "sans-serif"'})}),c=new u.ol.Feature({geometry:new u.ol.geom.Point(u.ol.proj.fromLonLat(e)),name:t});return c.setStyle(s),n.setStyle(l),[n,c]}function z(e,t){"undefined"==typeof mapillary?setTimeout((function(){z(e,t)}),100):P(e,t)}function M(e){var t=document.createEvent("Event");t.state=e,t.initEvent("StreetLevel",!0,!1),window.dispatchEvent(t)}function P(e,t){var o=window.navigator.userAgent;if(o.indexOf("MSIE ")>0)M("failed load");else if(o.indexOf("Trident/")>0&&void 0===u.ol)M("failed load");else{if("undefined"==typeof mapillary){var a=document.createElement("link");a.href="https://unpkg.com/mapillary-js@4.1.1/dist/mapillary.css",a.rel="stylesheet",document.head.appendChild(a),f("https://unpkg.com/mapillary-js@4.1.1/dist/mapillary.js"),z(e,t)}var n=document.getElementById("mly"),r=void 0;if(r=void 0!==u.ol?t.getTargetElement():t.getContainer(),!n){var i=document.createElement("div");i.id="map-mapillary",r.parentNode.insertBefore(i,r),i.appendChild(r);var l=document.createElement("div");l.id="mly",i.appendChild(l)}if("undefined"!=typeof mapillary)if(void 0!==u.ol){M("loaded");var s=new u.ol.style.Style({text:new u.ol.style.Text({text:"",scale:1,font:'Normal 900 18px "Font Awesome 5 Free"',fill:new u.ol.style.Fill({color:"#a11d26"}),stroke:new u.ol.style.Stroke({color:"white",width:3})})}),c=function(e){return[new u.ol.style.Style({text:new u.ol.style.Text({text:"",scale:1,font:'Normal 900 18px "Font Awesome 5 Free"',textBaseline:"middle",textAlign:"center",rotation:e*Math.PI/180-45,fill:new u.ol.style.Fill({color:"#a11d26"}),stroke:new u.ol.style.Stroke({color:"white",width:3})})})]},d=new u.ol.style.Style({image:new u.ol.style.Circle({fill:new u.ol.style.Fill({color:"rgba(53, 175, 109,0.2)"}),radius:4})}),m=new u.ol.style.Style({image:new u.ol.style.Circle({fill:new u.ol.style.Fill({color:"rgba(53, 175, 109,0.5)"}),radius:4})}),y=new u.ol.layer.VectorTile({source:new u.ol.source.VectorTile({format:new u.ol.format.MVT,tileGrid:u.ol.tilegrid.createXYZ({maxZoom:14}),tilePixelRatio:16,maxZoom:14,url:"https://tiles.mapillary.com/maps/vtp/mly1_public/2/{z}/{x}/{y}?access_token="+e}),style:d,minZoom:14});class o extends u.ol.control.Control{constructor(e){var t=e||{},o=document.createElement("button");o.style.cssText='font: 900 1.14em "Font Awesome 5 Free"',o.innerHTML="";var a=document.createElement("div");a.className="ol-control",a.style.cssText="bottom: 55px; right: 8px; margin-bottom: 50px",a.appendChild(o),super({element:a,target:t.target}),o.addEventListener("click",this.handleStreetLevel.bind(this),!1)}handleStreetLevel(){if(t.getView().getZoom()<12&&!p.streetLevelOn)alert("Zoom in to get Street Level Imagery");else{var o=document.getElementsByClassName("mapillary-js-canvas")[0],a=document.getElementsByClassName("mapillary-js-dom")[0];if(p.streetLevelOn)y.setStyle(d),this.getMap().removeLayer(y),this.getMap().removeLayer(v),n.style.display="none",r.style.height="100%",r.style.width="100%",t.updateSize(),v.setVisible(!1),void 0!==o&&(o.style.display="none"),void 0!==a&&(a.style.display="none"),M("closed"),p.streetLevelOn=!1;else{var i=u.ol.proj.toLonLat(t.getView().getCenter()),l=u.ol.proj.transformExtent(t.getView().calculateExtent(t.getSize()),"EPSG:900913","EPSG:4326");b(l[0],l[1],l[2],l[3]);var s=r.parentNode,g=new XMLHttpRequest;g.onreadystatechange=function(){if(4==this.readyState&&200==this.status){var e=JSON.parse(this.responseText);void 0!==e.data[0]?(M("active"),t.addLayer(y),t.addLayer(v),void 0!==p.aerialImageryOn&&p.aerialImageryOn&&y.setStyle(m),p.streetLevelOn=!0,L.moveTo(e.data[0].id).catch((function(e){console.log("Mapillary missing image")})),w.setStyle(c(e.data[0].compass_angle)),v.getVisible()||v.setVisible(!0),t.getView().getZoom()<18.5&&t.getView().animate({zoom:18.5,duration:250}),o=document.getElementsByClassName("mapillary-js-canvas")[0],a=document.getElementsByClassName("mapillary-js-dom")[0],void 0!==o&&(o.style.display="initial"),void 0!==a&&(a.style.display="initial")):(M("closed"),n.style.display="none",r.style.width="100%",r.style.height="100%",t.updateSize(),void 0!==o&&(o.style.display="none"),void 0!==a&&(a.style.display="none"),t.getView().getZoom()<=15?alert("No street level images available here. Try zooming in."):alert("No street level images available here."))}else 4==this.readyState&&(M("closed"),n.style.display="none",r.style.width="100%",r.style.height="100%",t.updateSize(),void 0!==o&&(o.style.display="none"),void 0!==a&&(a.style.display="none"),console.log("Could not connect to Mapillary"))},M("opened"),n.style.display="block",s.offsetHeight>s.offsetWidth?(r.style.height="35%",r.style.width="100%",n.style.width="100%",n.style.height="65%"):(r.style.width="35%",r.style.height="100%",n.style.height="100%",n.style.width="65%"),L.resize(),t.updateSize(),g.open("GET","https://graph.mapillary.com/images?access_token="+e+"&fields=image_key,compass_angle&limit=1&closeto="+i.toString()+"&bbox="+l.toString(),!0),g.send()}}}}t.addControl(new o);var g=new u.ol.Feature({geometry:new u.ol.geom.Point(ol.proj.fromLonLat(center))});g.setStyle([s]);var h,v=new u.ol.layer.Vector({source:new u.ol.source.Vector({features:[g]}),visible:!1}),w=new u.ol.layer.Vector({source:new u.ol.source.Vector,map:t,style:[s]}),L=new mapillary.Viewer({accessToken:e,component:{cover:!1},container:"mly"});L.on("image",(function(e){w.getVisible()&&w.setVisible(!1);var o=u.ol.proj.fromLonLat([e.image.originalLngLat.lng,e.image.originalLngLat.lat]);t.getView().setCenter(o),g.getGeometry().setCoordinates(o),g.setStyle(c(e.image.compassAngle))})),t.on("click",(function(e){!function(e,o){var a=t.forEachFeatureAtPixel(e,(function(e,t){return e}),{layerFilter:function(e){return e===y},hitTolerance:5});if(a){if(o){var i=a.get("compassAngle");if(L.moveTo(a.get("id")).catch((function(e){console.log("Mapillary missing image")})),w.setStyle(c(i)),!v.getVisible()){n.style.display="block";var l=r.parentNode;l.offsetHeight>l.offsetWidth?(r.style.height="35%",r.style.width="100%",n.style.width="100%",n.style.height="65%"):(r.style.width="35%",r.style.height="100%",n.style.height="100%",n.style.width="65%"),L.resize(),t.updateSize(),v.setVisible(!0)}}if(a!==h){if(h&&void 0!==h)try{w.getSource().removeFeature(h)}catch(e){}if(a&&void 0!==a)try{w.getSource().addFeature(a)}catch(e){}h=a}}}(e.pixel,!0)})),window.addEventListener("resize",(function(){if(p.streetLevelOn){var e=r.parentNode;e.offsetHeight>e.offsetWidth?(r.style.height="35%",r.style.width="100%",n.style.width="100%",n.style.height="65%"):(r.style.width="35%",r.style.height="100%",n.style.height="100%",n.style.width="65%"),L.resize(),t.updateSize()}}))}else{var x=function(){},k=function(){if(t.getZoom()<12&&!p.streetLevelOn)alert("Zoom in to get Street Level Imagery");else{var o=document.getElementsByClassName("mapillary-js-canvas")[0],a=document.getElementsByClassName("mapillary-js-dom")[0];if(p.streetLevelOn)t.removeLayer("mimgLayer"),t.removeLayer("streetLevelIcon"),n.style.display="none",r.style.height="100%",r.style.width="100%",t.resize(),void 0!==o&&(o.style.display="none"),void 0!==a&&(a.style.display="none"),M("closed"),p.streetLevelOn=!1;else{var i=t.getCenter().toArray(),l=t.getBounds().toArray();b(l[0][0],l[0][1],l[1][0],l[1][1]);var s=new XMLHttpRequest;I&&(t.addSource("mimgLayer",y),t.addSource("streetLevelIcon",C),I=!1),s.onreadystatechange=function(){if(4==this.readyState&&200==this.status){var e=JSON.parse(this.responseText);if(void 0!==e.data[0]){var i="0.2";void 0!==p.aerialImageryOn&&p.aerialImageryOn&&(i="0.5"),t.addLayer({id:"mimgLayer",type:"circle",source:"mimgLayer","source-layer":"image",minzoom:14,maxzoom:22,paint:{"circle-color":"rgba(53, 175, 109,"+i+")"}}),t.addLayer({id:"streetLevelIcon",type:"symbol",source:"streetLevelIcon",paint:{"text-color":"#a11d26","text-halo-color":"#fff","text-halo-width":2.25,"text-translate":[0,0]},layout:{"text-field":"","text-size":20,"text-font":["fasolid-900"],"text-rotate":["get","bearing"],"text-anchor":"center","text-offset":[0,0]}}),p.streetLevelOn=!0,M("active"),L.moveTo(e.data[0].id).catch((function(e){console.log("Mapillary missing image")})),t.getZoom()<17.5&&t.zoomTo(17.5),o=document.getElementsByClassName("mapillary-js-canvas")[0],a=document.getElementsByClassName("mapillary-js-dom")[0],void 0!==o&&(o.style.display="initial"),void 0!==a&&(a.style.display="initial")}else n.style.display="none",r.style.height="100%",r.style.width="100%",t.resize(),void 0!==o&&(o.style.display="none"),void 0!==a&&(a.style.display="none"),M("closed"),t.getZoom()<=15?alert("No street level images available here. Try zooming in."):alert("No street level images available here.")}else 4==this.readyState&&(n.style.display="none",r.style.height="100%",r.style.width="100%",t.resize(),void 0!==o&&(o.style.display="none"),void 0!==a&&(a.style.display="none"),M("closed"))},n.style.display="block";var c=r.parentNode;c.offsetHeight>c.offsetWidth?(r.style.height="35%",r.style.width="100%",n.style.width="100%",n.style.height="65%"):(r.style.width="35%",r.style.height="100%",n.style.height="100%",n.style.width="65%"),L.resize(),t.resize(),M("opened"),s.open("GET","https://graph.mapillary.com/images?access_token="+e+"&fields=image_key&limit=1&closeto="+i[0]+","+i[1]+"&bbox="+l[0][0]+","+l[0][1]+","+l[1][0]+","+l[1][1],!0),s.send()}}};M("loaded");var C={type:"geojson",data:{type:"Feature",geometry:{type:"Point",coordinates:[0,0]},properties:{bearing:90}}};y={type:"vector",tiles:["https://tiles.mapillary.com/maps/vtp/mly1_public/2/{z}/{x}/{y}?access_token="+e],minzoom:14,maxzoom:14};x.prototype.onAdd=function(e){this._map=e,this._container=document.createElement("div"),this._container.className="maplibregl-ctrl maplibregl-ctrl-group",this._container.style.cssText="pointer-events: auto;";var t=document.createElement("button");t.setAttribute("id","streetLevButton"),t.addEventListener("click",k),this._container.appendChild(t);var o=document.createElement("span");return o.style.cssText='background-image: url("https://api.slpy.com/symbols/walking-solid.svg");background-size: 1em;',o.className="maplibregl-ctrl-icon",t.appendChild(o),this._container},x.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},x=new x,t.addControl(x,"bottom-right"),p.streetLevelOn=!1;var I=!0;(L=new mapillary.Viewer({accessToken:e,component:{cover:!1},container:"mly"})).on("image",(function(e){var o=[e.image.originalLngLat.lng,e.image.originalLngLat.lat],a={type:"Feature",geometry:{type:"Point",coordinates:o},properties:{bearing:e.image.compassAngle-45}};t.getSource("streetLevelIcon").setData(a),t.flyTo({center:o})})),t.on("click",(function(e){if(void 0!==p.streetLevelOn&&p.streetLevelOn){var o=t.queryRenderedFeatures(e.point,{layers:["mimgLayer"]});if(void 0!==o[0]){var a=o[0].properties.id;L.moveTo(a).catch((function(e){console.log("Mapillary missing image")}))}}})),window.addEventListener("resize",(function(){if(p.streetLevelOn){var e=r.parentNode;e.offsetHeight>e.offsetWidth?(r.style.height="35%",r.style.width="100%",n.style.width="100%",n.style.height="65%"):(r.style.width="35%",r.style.height="100%",n.style.height="100%",n.style.width="65%"),L.resize(),t.resize()}}))}}}var S={addressAutocomplete:function(e,t){if("string"==typeof e)var o=document.getElementById(e);else if(!e||"form"!==target.nodeName.toLowerCase()&&"textarea"!==e.nodeName.toLowerCase())console.log("Target form for address autocomplete is not a valid Form element or id.");else o=e;if(t.autocompleteType="address","form"===o.tagName.toLowerCase()){for(var a=o.querySelectorAll("input[autocomplete], textarea[autocomplete]"),n={},r=0;r<a.length;r++){var i=a[r].getAttribute("autocomplete");if(i){var l="0";if(void 0!==i.split(" ")[1]){var s=i.lastIndexOf(" ");l=i.slice(0,s),i=i.slice(s+1),void 0===n[l]&&(n[l]={})}switch(i){case"street-address":case"address-line1":n[l]["street-line"]=a[r];break;case"address-level1":n[l]["address-level1"]=a[r];break;case"address-level2":n[l]["address-level2"]=a[r];break;case"address-level3":n[l]["address-level3"]=a[r];break;case"address-level4":n[l]["address-level4"]=a[r];break;case"postal-code":n[l]["postal-code"]=a[r];break;case"country":n[l].country=a[r];break;case"country-name":n[l]["country-name"]=a[r]}}}var c=[];for(var d in n)n.hasOwnProperty(d)&&(void 0!==n[d]["street-line"]?(void 0!==n[d]["street-line"].id&&""!=n[d]["street-line"].id||(n[d]["street-line"].id="StAuto-"+d),function(e,o){var a=g(o[e]["street-line"].id,t,(function(t,a){for(var n in t.value=a.street,o[e])switch(n){case"address-level1":o[e]["address-level1"].value=a.region;break;case"address-level2":o[e]["address-level2"].value=a.city;break;case"postal-code":o[e]["postal-code"].value=a.postcode;break;case"country":o[e].country.value=a.country;break;case"country-code":a["country-code"]?o[e]["country-code"].value=a["country-code"]:o[e]["country-code"].value=a.country_code}}));void 0!==a.updateAutocomplete&&c.push(a)}(d,n)):console.log("API: An input with autocomplete attribute 'street-address' or 'address-line1' was not found."));return c}},addAerialImagery:function(e){var t=!0,o=[[[-104.853516,29.774649],[-80.90332,41.808621]],[[-114.697266,31.733423],[-106.54541,49.09563]],[[-125.727539,32.407206],[-114.609375,49.125338]],[[-108.149414,31.735093],[-104.633789,49.152471]],[[-81.101074,31.864267],[-69.675293,42.359457]],[[-83.693848,24.493357],[-79.848633,30.395503]],[[-101.645508,28.849233],[-84.528809,29.749476]],[[-100.623779,25.743899],[-95.339355,28.827531]],[[-106.479492,30.340827],[-104.699707,32.162079]],[[-112.543945,31.25324],[-108.105469,31.964051]],[[-104.897461,41.758319],[-82.375488,46.029057]],[[-104.919434,45.943561],[-83.210449,47.548488]],[[-104.941406,47.48012],[-88.088379,48.298688]],[[-104.952393,48.277197],[-92.362061,49.418971]],[[-79.969482,42.295311],[-69.829102,43.573655]],[[-76.640625,43.53305],[-66.52771,45.077231]],[[-71.5979,45.03054],[-66.994629,47.493728]],[[-67.985919,17.265936],[-64.52648,18.884333]]];if(void 0!==u.ol){var a=function(){var t=e.getView().getZoom();if(t>20)return!1;var a=!1,n=0,r=e.getView().getCenter();do{var i=new u.ol.extent.boundingExtent([u.ol.proj.fromLonLat(o[n][0]),u.ol.proj.fromLonLat(o[n][1])]);a=u.ol.extent.containsCoordinate(i,r),n++}while(!a&&n<18);return!(!a&&t>15.5)},n=new u.ol.layer.Tile({source:new u.ol.source.XYZ({format:new u.ol.format.MVT,maxZoom:17,url:"https://api.slpy.com/v1/app/aerial-imagery/{z}/{x}/{y}.png?key="+m.apiKey}),minZoom:0,maxZoom:20,zindex:0}),r=new u.ol.layer.Tile({source:new u.ol.source.XYZ({format:new u.ol.format.MVT,maxZoom:16,url:"https://api.slpy.com/v1/app/aerial-topo/{z}/{x}/{y}.png?key="+m.apiKey}),minZoom:0,maxZoom:19,zindex:0});class t extends u.ol.control.Control{constructor(e){var t=e||{},o=document.createElement("button");o.style.cssText='background-image: url("https://www.slpy.com/img/AerialImagery.png");background-size: contain;border-radius: 4px; width: 45px; height: 45px',o.setAttribute("id","AerialImageryIcon");var a=document.createElement("div");a.className="ol-control",a.setAttribute("id","AerialImageryButton"),a.style.cssText="bottom: 0; right: 8px; margin-bottom: 50px; width: 45px; height: 45px",a.appendChild(o),super({element:a,target:t.target}),o.addEventListener("click",this.AerialImageryControl.bind(this),!1)}AerialImageryControl(){p.aerialImageryOn?(p.oldIE?this.getMap().removeLayer(r):(this.getMap().removeLayer(n),void 0!==p.streetLevelOn&&p.streetLevelOn&&mapillarySource.setStyle(photoDot)),document.getElementById("AerialImageryIcon").style.backgroundImage="url('https://www.slpy.com/img/AerialImagery.png')",p.aerialImageryOn=!1,e.getLayers().forEach((function(e){e.getSource().refresh()}))):a()?(p.aerialImageryOn=!0,p.oldIE=!0,p.oldIE?e.addLayer(r):(e.getLayers().forEach((function(e){e.getSource().refresh()})),e.getLayers().insertAt(0,n),void 0!==p.streetLevelOn&&p.streetLevelOn&&mapillarySource.setStyle(photoDotAerial)),document.getElementById("AerialImageryIcon").style.backgroundImage="url('https://www.slpy.com/img/VectorImagery.png')"):e.getView().getZoom()>19?alert("No Aerial Imagery at this level. Try zooming out."):alert("No Aerial Imagery available in this region.")}}e.addControl(new t);var i=!0,l=document.getElementById("AerialImageryButton");a()||(l.style.display="none",i=!1),e.on("moveend",(function(){a()&&!i?(l.style.display="block",i=!0):!a()&&i&&(l.style.display="none",i=!1,p.aerialImageryOn&&document.getElementById("AerialImageryIcon").click())}))}else if(p.maplibreLoaded){var s=function(){var t=e.getZoom();if(t>19)return!1;var a=!1,n=0,r=e.getCenter();do{a=new u.maplibregl.LngLatBounds(o[n]).contains(r),n++}while(!a&&n<18);return!(!a&&t>14.5)},c="",d=function(){},y=function(){if(p.aerialImageryOn){if(void 0!==p.streetLevelOn)if(p.streetLevelOn){var o=e.getSource("streetLevelIcon"),a=e.getSource("mimgLayer"),n=e.getLayer("mimgLayer"),r=e.getLayer("streetLevelIcon");e.setStyle(c),a||e.addSource("mimgLayer",{type:"vector",tiles:a.tiles,minzoom:a.minzoom,maxzoom:a.maxzoom}),o||e.addSource("streetLevelIcon",{type:"geojson",data:o._data}),n||e.addLayer({id:"mimgLayer",type:"circle",source:"mimgLayer","source-layer":"mapillary-images",minzoom:n.minzoom,maxzoom:n.maxzoom,paint:n.paint_}),r||e.addLayer({id:"streetLevelIcon",type:"symbol",source:"streetLevelIcon",paint:r.paint_,layout:r.layout_})}else e.setStyle(c),e.getLayer("mimgLayer")&&e.removeLayer("mimgLayer"),e.getLayer("streetLevelIcon")&&e.removeLayer("streetLevelIcon");else e.setStyle(c);document.getElementById("AerialImageryIcon").style.backgroundImage="url('https://www.slpy.com/img/AerialImagery.png')",p.aerialImageryOn=!1}else s()?(t&&(e.addSource("satellite",g),t=!1),c=e.getStyle(),void 0!==p.streetLevelOn&&p.streetLevelOn&&e.setPaintProperty("mimgLayer","circle-color","rgba(53, 175, 109,0.5)"),e.addLayer({id:"satellite",type:"raster",source:"satellite",minzoom:0,maxzoom:19},"necountries-4"),document.getElementById("AerialImageryIcon").style.backgroundImage="url('https://www.slpy.com/img/VectorImagery.png')",e.setLayoutProperty("roads-casing","visibility","none"),e.setLayoutProperty("roads-motorway-casing-low-zoom","visibility","none"),e.setLayoutProperty("highway-area-fill","visibility","none"),e.setLayoutProperty("highway-motorway-shadow","visibility","none"),e.setLayoutProperty("highway-trunk-shadow","visibility","none"),e.setLayoutProperty("roads-low-zoom-primary-shadow","visibility","none"),e.setLayoutProperty("roads-low-zoom-secondary-shadow","visibility","none"),e.setLayoutProperty("roads-low-zoom-motorway-shadow","visibility","none"),e.setLayoutProperty("roads-low-zoom-trunk-shadow","visibility","none"),e.setPaintProperty("highway-motorway","line-color","#edaa82"),e.setPaintProperty("roads","line-opacity",.5),e.setPaintProperty("roads-low-zoom-secondary","line-opacity",.5),e.setPaintProperty("roads-low-zoom-trunk","line-opacity",.3),e.setPaintProperty("highway-motorway","line-opacity",.5),e.setPaintProperty("highway-trunk","line-color","#bbb"),e.setPaintProperty("highway-trunk","line-width",1),e.setPaintProperty("highway-trunk","line-opacity",.5),e.setPaintProperty("ferry-routes","line-opacity",.5),e.setPaintProperty("roads-text-name","text-color","#000"),e.setPaintProperty("roads-text-name","text-halo-width",1.25),e.setPaintProperty("placenames","text-color","#fff"),e.setPaintProperty("placenames","text-halo-color","#000"),e.setPaintProperty("placenames","text-halo-width",1),e.setPaintProperty("placenames-small","text-color","#fff"),e.setPaintProperty("placenames-small","text-halo-color","#555"),e.setPaintProperty("placenames-small","text-halo-width",1.5),e.setPaintProperty("ocean-points","text-halo-color","#4f6f80"),e.setPaintProperty("ocean-points","text-color","#fff"),e.setPaintProperty("state-names","text-halo-color","rgba(114, 83, 128, 0.6)"),e.setPaintProperty("state-names","text-color","rgba(255, 255, 255, 0.6)"),e.setPaintProperty("state-names-low-zoom","text-halo-color","rgba(114, 83, 128, 0.6)"),e.setPaintProperty("state-names-low-zoom","text-color","rgba(255, 255, 255, 0.6)"),e.setPaintProperty("amenity-points-landuse","text-halo-color","#fff"),e.setPaintProperty("amenity-points-landuse","text-halo-width",1),e.setPaintProperty("text-poly-low-zoom","text-halo-color","#fff"),e.setPaintProperty("text-poly-low-zoom","text-halo-width",.5),e.setPaintProperty("amenity-points-low","icon-halo-width",.5),e.setPaintProperty("amenity-points","icon-halo-width",.5),e.setPaintProperty("amenity-points-mid","icon-halo-width",.5),e.setPaintProperty("amenity-points-high","icon-halo-width",.5),e.setPaintProperty("amenity-points-low","text-halo-width",.6),e.setPaintProperty("amenity-points","text-halo-width",.6),e.setPaintProperty("amenity-points-mid","text-halo-width",.6),e.setPaintProperty("amenity-points-high","text-halo-width",.6),e.setPaintProperty("necountries-4","line-color","#222"),e.setPaintProperty("necountries-2","line-color","#222"),e.setPaintProperty("admin-mid-zoom-2","line-color","#222"),e.setPaintProperty("admin-mid-zoom-3","line-color","#222"),e.setPaintProperty("admin-mid-zoom-4","line-color","#222"),e.setPaintProperty("admin-high-zoom-2","line-color","#222"),e.setPaintProperty("admin-high-zoom-3","line-color","#222"),e.setPaintProperty("admin-high-zoom-4","line-color","#222"),p.aerialImageryOn=!0):e.getZoom()>19?alert("No Aerial Imagery at this level. Try zooming out."):alert("No Aerial Imagery available in this region.")},g={type:"raster",scheme:"xyz",tiles:["https://api.slpy.com/v1/app/aerial-imagery/{z}/{x}/{y}.png?key="+m.apiKey],minzoom:0,maxzoom:17,tileSize:256};d.prototype.onAdd=function(e){this._map=e,this._container=document.createElement("div"),this._container.className="maplibregl-ctrl maplibregl-ctrl-group",this._container.style.cssText="pointer-events: auto;",this._container.setAttribute("id","AerialImageryButton");var t=document.createElement("button");t.style.width="45px",t.style.height="45px",t.addEventListener("click",y),this._container.appendChild(t);var o=document.createElement("span");return o.style.cssText='background-image: url("https://www.slpy.com/img/AerialImagery.png");background-size: contain;border-radius: 4px;',o.setAttribute("id","AerialImageryIcon"),o.className="maplibregl-ctrl-icon",t.appendChild(o),this._container},d.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},d=new d,e.addControl(d,"bottom-right");i=!0,l=document.getElementById("AerialImageryButton");s()||(l.style.display="none",i=!1),e.on("idle",(function(){s()&&!i?(l.style.display="block",i=!0):!s()&&i&&(l.style.display="none",i=!1,p.aerialImageryOn&&y())}))}},addAutocomplete:g,addMarkers:function(e,t,o){o=void 0===o?"default":o;var a=[];if(void 0!==u.ol){for(var n=0;n<e.length;n++){if("default"==o)a.push(I([e[n].data[1],e[n].data[0]],e[n].name,n,o));else{var r=I([e[n].data[1],e[n].data[0]],e[n].name,n,o);a.push(r[0],r[1])}void 0!==e[n].data[2]&&""!==e[n].data[2]&&(C=!0)}if(L=new u.ol.source.Vector({features:a}),x=new u.ol.layer.Vector({source:L,className:"ol-markers"}),t.once("rendercomplete",(function(e){t.addLayer(x)})),C){if(null==document.getElementById("popup")){var i=document.createElement("div");i.innerHTML='<a href="#" id="popup-closer" class="ol-popup-closer"></a><div id="popup-content"></div>',i.id="popup",i.classList.add("ol-popup"),t.getTargetElement().appendChild(i)}var l=document.getElementById("popup"),s=document.getElementById("popup-content"),c=document.getElementById("popup-closer");k=new u.ol.Overlay({element:l,autoPan:!0,position:void 0,autoPanAnimation:{duration:250}}),t.addOverlay(k),c.onclick=function(){return k.setPosition(void 0),c.blur(),!1},t.on("singleclick",(function(o){var a=t.forEachFeatureAtPixel(o.pixel,(function(e){return e.getId()}));"string"==typeof a&&(markerIndex=a.replace("marker:",""),markerIndex>=0&&""!=e[markerIndex].data[2]&&void 0!==e[markerIndex].data[2]?(l.style.display="block",s.innerHTML=e[markerIndex].data[2],k.setPosition(u.ol.proj.fromLonLat([e[markerIndex].data[1],e[markerIndex].data[0]]))):l.style.display="none")}))}}else{var d='\x3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --\x3e<path d="M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"/></svg>',p='\x3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --\x3e<path d="M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z"/></svg>';for(n=0;n<e.length;n++){var m='<svg xmlns="http://www.w3.org/2000/svg" id="marker-'+parseInt([n]).toString()+'" style="fill: #a11c25;width:27px; height:36px;stroke:#fff;stroke-width:15px;filter: drop-shadow(1px 2px 1px rgba(0,0,0,0.4));" viewBox="0 0 384 512">';if(C=!1,void 0!==e[n].data[2]&&""!==e[n].data[2]&&(C=!0),"default"==o){if(C)(y=document.createElement("span")).innerHTML=m+d,new u.maplibregl.Marker({element:y,anchor:"bottom",offset:[0,5]}).setLngLat([e[n].data[1],e[n].data[0]]).setPopup(new u.maplibregl.Popup({offset:[0,-36],className:"popup-"+[n]}).setHTML(e[n].data[2])).addTo(t);else(y=document.createElement("span")).innerHTML=m+d,new u.maplibregl.Marker({element:y,anchor:"bottom",offset:[0,5]}).setLngLat([e[n].data[1],e[n].data[0]]).addTo(t)}else{var y,g,h='position: absolute;font-weight: bold;top:5px;display: block; width:27px;left:0px;font-size:14px;color:white;text-align:center;text-shadow:-1px -1px 0 rgba(0,0,0,0.25), 1px -1px 0 rgba(0,0,0,0.25), -1px 1px 0 rgba(0,0,0,0.25), 1px 1px 0 rgba(0,0,0,0.25);font-family:"Open Sans", "Arial", "Verdana", "sans-serif"';if(C)(y=document.createElement("span")).innerHTML=m+p,(g=document.createElement("span")).innerHTML=(parseInt([n])+1).toString(),g.setAttribute("style",h),y.appendChild(g),new u.maplibregl.Marker({element:y,anchor:"bottom",offset:[0,5]}).setLngLat([e[n].data[1],e[n].data[0]]).setPopup(new u.maplibregl.Popup({offset:[0,-36],className:"popup-"+[n]}).setHTML(e[n].data[2])).addTo(t);else(y=document.createElement("span")).innerHTML=m+p,(g=document.createElement("span")).innerHTML=(parseInt([n])+1).toString(),g.setAttribute("style",h),y.appendChild(g),new u.maplibregl.Marker({element:y,anchor:"bottom",offset:[0,5]}).setLngLat([e[n].data[1],e[n].data[0]]).addTo(t)}}}},highlightMarker:function(e){if(void 0!==x){var t=x.getSource().getFeatureById("marker:"+e);if(null!==t){var o=t.getStyle().getImage();void 0!==o.iconImage_&&void 0!==o.iconImage_.color_&&(o.iconImage_.color_=[0,130,200,1]),t.getStyle().setZIndex(1)}}else{var a=document.getElementById("marker-"+e);a&&(a.style.fill="#0082c8",a.parentElement.style.zIndex=1)}},dehighlightMarker:function(e){if(void 0!==x){var t=x.getSource().getFeatureById("marker:"+e);if(null!==t){var o=t.getStyle().getImage();void 0!==o.iconImage_&&void 0!==o.iconImage_.color_&&(o.iconImage_.color_=[161,28,37,1]),t.getStyle().setZIndex(0)}}else{var a=document.getElementById("marker-"+e);a&&(a.style.fill="#a11c25",a.parentElement.style.zIndex=0)}},removeMarker:function(e,t){if((t=void 0===t?-1:t)<0&&(t=0),void 0!==u.ol){if(void 0!==x){var o=x.getSource().getFeatureById("marker:"+t);null!==o&&L.removeFeature(o)}if(void 0!==e[t])if(void 0!==e[t].data[2])if(""!==e[t].data[2])document.getElementById("popup").style.display="none"}else{var a=document.getElementById("marker-"+t);if(a){var n=document.querySelector(".maplibre-popup.popup-"+t);n&&n.remove(),a.parentElement.remove()}}},createMarker:I,setMarkerOpen:function(e,t){if(t=void 0===t?-1:t,void 0!==u.ol){var o=document.getElementById("popup"),a=document.getElementById("popup-content");t<0&&(t=0),o.style.display="block",a.innerHTML=e[t].data[2];try{k.setPosition(u.ol.proj.fromLonLat([e[t].data[1],e[t].data[0]]))}catch(e){}}else{var n=document.getElementById("marker-"+t);n&&n.parentElement.click()}},quickMarkersCenter:function(e){for(var t=0,o=0,a=[],n=[],r=e.length,i=0;i<r;++i)t+=Number(e[i].data[0]),o+=Number(e[i].data[1]),a.push(e[i].data[0]),n.push(e[i].data[1]);var l=b(Math.max.apply(Math,a),Math.max.apply(Math,n),Math.min.apply(Math,a),Math.min.apply(Math,n)),s=13;switch(!0){case l<1:s=14;break;case l<4:s=13;break;case l<10:s=12;break;case l<20:s=11;break;case l<40:s=10;break;case l<100:s=9;break;case l<250:s=8;break;case l<400:s=7;break;case l<750:s=6;break;case l<2e3:s=5;break;case l<4e3:s=4;break;case l>=4e3:s=3}return[t/=r,o/=r,s]},addMapillary:P,isWebGL2Supported:h,loadScript:f,setInteractionOnFocus:function(e,t){var o=document.getElementById(e);o.style.position="relative",o.tabIndex=1,o.insertAdjacentHTML("afterbegin",'<p id="mapOverlayNotice" style="position:absolute;z-index:10;margin-top:20px;width:100%;height:100%;font-weight:bold;font-size:22px;color:rgb(25, 25, 25);display:none;text-align:center;justify-content: center; align-items: center;"><span style="background:white;padding: 10px;border-radius: 5px;box-shadow: 2px 2px 4px rgba(0,0,0,0.3);">Click the map to pan and zoom.</span></p>');var a=document.getElementById("mapOverlayNotice");void 0!==u.ol?(p.openlayersLoaded&&t.getInteractions().forEach((function(e){(e instanceof u.ol.interaction.DragPan||e instanceof u.ol.interaction.MouseWheelZoom)&&e.setActive(!1)}),this),o.onclick=function(){o.removeEventListener("wheel",r,!1),o.removeEventListener("touchmove",r,!1),p.openlayersLoaded&&t.getInteractions().forEach((function(e){(e instanceof u.ol.interaction.DragPan||e instanceof u.ol.interaction.MouseWheelZoom)&&e.setActive(!0)}),this)}):(p.maplibreLoaded&&(t.scrollZoom.disable(),t.dragPan.disable()),o.onclick=function(){o.removeEventListener("wheel",r,!1),o.removeEventListener("touchmove",r,!1),p.maplibreLoaded&&(t.scrollZoom.enable(),t.dragPan.enable())});var n=null,r=function(e){document.activeElement!==o&&(o.style.opacity="0.7",a.style.display="flex",null!==n&&clearTimeout(n),n=setTimeout((function(){a.style.display="none",o.style.opacity="1"}),500))};o.addEventListener("wheel",r,!1),o.addEventListener("touchmove",r,!1)},setTransform:function(e,t){if(void 0!==t)if(void 0===u.ol)if(void 0!==p.mapStyleUrl){for(var o=p.mapStyleUrl.split("?"),a=o[0],n=o[1].split("&"),r=[],i=0;i<n.length;i++)-1===n[i].indexOf("transform=")&&r.push(n[i]);p.mapStyleUrl=a+"?"+r.join("&"),""!=e&&"default"!=e&&(p.mapStyleUrl=p.mapStyleUrl+"&transform="+e),t.setStyle(p.mapStyleUrl)}else console.log("Could not retrieve original url. mapStyleUrl is undefined.");else console.log("Can not currently set Transform with OpenLayers. Requires MapLibre.");else console.log("Map was undefined. The second parameter should be of type Map.")},flyTo:function(e,t){if(void 0!==u.ol)var o=t.getView(),a=u.ol.proj.toLonLat(o.getCenter()),n=u.ol.proj.fromLonLat([e.lon,e.lat]),r=o.getZoom(),i=e.quality,l=function(){},s=2,c=!1;else{var d=t.getCenter();a=Object.values(d),n=[e.lon,e.lat],r=t.getZoom()}var p=r,m=(i=e.quality,b(e.lat,e.lon,a[1],a[0])),y=1e3,g=p-1;switch(!0){case m<1:p>16&&(g=16);break;case m<5:p>15&&(g=15);break;case m<10:p>14&&(g=14);break;case m<40:p>13&&(g=13);break;case m<50:p>12&&(g=12),y*=2;break;case m<150:p>11&&(g=11),y*=2;break;case m<250:p>10&&(g=10),y*=2;break;case m<400:p>9&&(g=9),y*=3;break;case m<700:p>8&&(g=8),y*=3;break;case m<1e3:p>7&&(g=7),y*=3;break;case m<2e3:p>6&&(g=6),y*=4;break;case m<3500:p>5&&(g=5),y*=4;break;case m<5e3:p>4&&(g=4),y*=4;break;case m>=5e3:p>3&&(g=3),y*=4}switch(p<13&&(p=13),parseInt(i)){case 1:p=4;break;case 2:p=6;break;case 3:p=8;break;case 4:p=10;break;case 5:p=12;break;case 6:p=13;break;case 7:p=16;break;case 8:p=16.5;break;case 9:case 10:p=17}if(g>=p&&(g=p-1),r>=p&&(g=p),void 0!==u.ol){var h=function(e){--s,c||0!==s&&e||(c=!0,l(e))};o.animate({center:n,duration:y},h),o.animate({zoom:g,duration:y},{zoom:p,duration:y/2},h)}else if(e.boundingbox){var v=e.boundingbox;t.fitBounds([[v[2],v[0]],[v[3],v[1]]],{maxZoom:18,padding:{top:15,bottom:15,left:15,right:15}})}else{var f={center:n,zoom:p,maxDuration:2.5*y};t.flyTo(f)}},toRad:w,distanceInKM:b,distanceInMI:function(e,t,o,a){var n=w(a-t);return e=w(e),o=w(o),3959*Math.acos(Math.sin(e)*Math.sin(o)+Math.cos(e)*Math.cos(o)*Math.cos(n))},mapState:p,settings:m,openlayersParts:y,mapLibraries:u};function E(e,t){if(void 0===u.maplibregl||!h()){if(void 0!==u.maplibregl&&function(){try{var e=document.createElement("canvas");return!(!window.WebGLRenderingContext||!e.getContext("webgl")&&!e.getContext("experimental-webgl"))}catch(e){return!1}}())try{if(u.maplibregl.getVersion().split(".").map(Number)>=5)return!0;console.log("MapLibre requries v5+ for WebGL 1 support.")}catch(e){console.log("Browser has WebGL, but lacks full support for MapLibre.")}if("string"==typeof(o=e))var o=document.getElementById(e);return void 0===u.maplibregl?o.insertAdjacentHTML("afterbegin",'<p id="mapOverlayNotice">The Maplibre GL library could not be found or imported.</p>'):o.insertAdjacentHTML("afterbegin",'<p id="mapOverlayNotice">Your Web Browser is not compatible. Please upgrade.</p>'),!1}return!0}function T(e,t,o){var a=navigator.userAgent.toLowerCase(),n=!1;m.rasterFallback&&"raster"!=e?v()||(n=!0,p.oldIE=!0):"raster"==e&&(v()||(p.oldIE=!0));if(n||"raster"==e){var r=2;return p.oldIE&&parseInt(a.split("msie")[1])<=9&&(r=1),new u.ol.layer.Tile({source:new u.ol.source.XYZ({maxZoom:19,tileSize:256,tilePixelRatio:r,attributions:'© <a href="https://www.slpy.com">Slpy</a> © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',url:"https://api.slpy.com/v1/raster/"+o.mapLanguage+"/{z}/{x}/{y}.png?key="+t})})}return new u.ol.layer.VectorTile({declutter:!0,source:new u.ol.source.VectorTile({maxZoom:15,renderMode:"hybrid",format:new u.ol.format.MVT,url:"https://api.slpy.com/v1/vector/"+o.mapLanguage+"/{z}/{x}/{y}.pbf?key="+t}),zIndex:0})}return{maplibreMap:function(t){return u.maplibregl=function(){let t={};if("undefined"!=typeof window&&void 0!==window.maplibregl)return window.maplibregl;try{t={...e}}catch(e){console.log(e),console.log("Slpy JS: 'maplibre' could not be found. Make sure https://github.com/maplibre/maplibre-gl-js is installed and/or the script has been run before this function.")}return t}(),E((t=function(e){return e.apiKey||console.log("Slpy Map Missing apiKey: Please add your Slpy apiKey to the options object in the maplibreMap function."),e.container||console.log("Slpy Map Missing container: Please add your container id or element to the options object in the maplibreMap function."),e.center||console.log("Slpy Map Missing center: Please add your center as a [longitude, latitude] element to the options object in the maplibreMap function."),e.zoom||console.log("Slpy Map Missing zoom: Please add a zoom value to the options object in the maplibreMap function. Level 0 is globe, 20 is house level."),void 0!==e.mapType&&"raster"==e.mapType.toLowerCase()?e.mapType="raster":e.mapType="vector",void 0!==e.language&&"en"!=e.language.toLowerCase()?e.mapLanguage=e.language.toLowerCase():void 0!==e.mapLanguage&&"en"!=e.mapLanguage.toLowerCase()?e.mapLanguage=e.mapLanguage.toLowerCase():e.mapLanguage="en",void 0!==e.mapFilter&&e.mapFilter.length>0&&(m.mapFilter=e.mapFilter),m.apiKey=e.apiKey.toLowerCase(),e}(t)).container)?function(e){p.maplibreLoaded=!0,"undefined"!=typeof MglOptions&&(e=Object.assign(e,MglOptions));var t=!1;p.mapStyleUrl="https://api.slpy.com/style/slpy-mgl-style.json?key="+m.apiKey;var o="top-left";"raster"==e.mapType?(t=!1,p.mapStyleUrl+="&raster=true"):e.mapStyle&&"3d"==e.mapStyle.toLowerCase()&&(t=!0,p.mapStyleUrl+="&style=3d"),void 0!==e.antialias&&(t=e.antialias);var a=21;if(void 0!==e.maxZoom&&(a=e.maxZoom),void 0!==e.mapTransform&&e.mapTransform.length>0&&(p.mapStyleUrl+="&transform="+e.mapTransform.toLowerCase()),void 0!==m.mapFilter&&m.mapFilter.length>0){p.mapStyleUrl+="&filter=",p.mapStyleUrl+="&filter=";for(var n=0;n<m.mapFilter.length;n++)p.mapStyleUrl+=m.mapFilter[n].toLowerCase().replace("_points","")+",";p.mapStyleUrl=p.mapStyleUrl.substring(0,p.mapStyleUrl.length-1)}"en"!=e.mapLanguage&&(p.mapStyleUrl+="&lang="+e.mapLanguage);var r={container:e.container,style:p.mapStyleUrl,maxZoom:a,center:e.center,zoom:e.zoom,antialias:t,hash:!1,attributionControl:!1};if(""!==e)for(var i in e)r[i]=e[i];return void 0!==e.navControl&&"none"==e.navControl.toLowerCase()?new u.maplibregl.Map(r).addControl(new u.maplibregl.AttributionControl({compact:!1})):(e.navControl&&(o=e.navControl),new u.maplibregl.Map(r).addControl(new u.maplibregl.AttributionControl({compact:!1})).addControl(new u.maplibregl.NavigationControl,o))}(t):""},openlayersMap:function(e){if(u.ol=function(){let e={};if("undefined"!=typeof window&&void 0!==window.ol)return window.ol;try{e={Map:t,control:{defaults:a.defaults,Control:a.Control},extent:{boundingExtent:c.boundingExtent,containsCoordinate:c.containsCoordinate},interaction:{defaults:n.defaults},proj:{fromLonLat:r.fromLonLat},View:o,layer:{VectorTile:i.VectorTile,Tile:i.Tile},source:{VectorTile:l.VectorTile,XYZ:l.XYZ},format:{MVT:s.MVT}}}catch(e){console.log(e),console.log("Slpy JS: 'ol' could not be found. Make sure https://github.com/openlayers/openlayers is installed and/or the script has been run before this function.")}return e}(),!e.controls){var g={rotate:!0,rotateOptions:{autoHide:!1},zoom:!0,zoomOptions:{zoomDuration:500},attribution:!0,attributionOptions:{collapsible:!1}};"function"==typeof u.ol.control.defaults?e.controls=u.ol.control.defaults(g):e.controls=u.ol.control.defaults.defaults(g)}y.controls=e.controls,e.interactions||("function"==typeof u.ol.interaction.defaults?e.interactions=u.ol.interaction.defaults({pinchRotate:!1}):e.interactions=u.ol.interaction.defaults.defaults({pinchRotate:!1})),y.interactions=e.interactions;var h="vector";if(void 0!==e.mapType&&"raster"==e.mapType&&(h="raster"),e.apiKey||console.log("Slpy Map Missing apiKey: Please add your Slpy apiKey to the options object in the olMap function."),e.target||e.container?e.container&&(e.target=e.container):console.log("Slpy Map Missing target: Please add your target id or element to the options object in the olMap function."),e.center||console.log("Slpy Map Missing center: Please add your center as a [longitude, latitude] element to the options object in the olMap function."),e.zoom||console.log("Slpy Map Missing zoom: Please add a zoom value to the options object in the olMap function. Level 0 is globe, 20 is house level."),e.view||(e.view=function(e,t){return new u.ol.View({center:u.ol.proj.fromLonLat(e),zoom:t,maxZoom:21})}(e.center,e.zoom)),void 0!==e.language&&"en"!=e.language.toLowerCase()?e.mapLanguage=e.language.toLowerCase():void 0!==e.mapLanguage&&"en"!=e.mapLanguage.toLowerCase()?e.mapLanguage=e.mapLanguage.toLowerCase():e.mapLanguage="en",y.view=e.view,m.apiKey=e.apiKey,"raster"==h)return p.openlayersLoaded=!0,new u.ol.Map({controls:y.controls,interactions:y.interactions,layers:[T(h,m.apiKey,e)],target:e.target,view:y.view});var v=new u.ol.Map({controls:y.controls,interactions:y.interactions,target:e.target,view:y.view});return u.olms=function(){let e={};if("undefined"!=typeof window&&void 0!==window.olms)return window.olms;try{e={apply:d.apply}}catch(e){console.log(e),console.log("Slpy JS: 'olms' could not be found. Make sure https://github.com/openlayers/ol-mapbox-style is installed and/or the script has been run before this function.")}return e}(),void 0!==u.olms&&u.olms.apply(v,"https://api.slpy.com/style/slpy-mgl-style.json?key="+m.apiKey),p.openlayersLoaded=!0,v},...S}}));
//# sourceMappingURL=slpy.js.map