@maptiler/geocoding-control 0.0.36 → 0.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/dist/leaflet.js +2076 -690
- package/dist/leaflet.umd.js +22 -0
- package/dist/lib/LeafletGeocodingControl.d.ts +5 -1
- package/dist/lib/MaplibreglGeocodingControl.d.ts +9 -2
- package/dist/lib/leafletMapController.d.ts +1 -1
- package/dist/lib/maplibreglMapController.d.ts +5 -2
- package/dist/lib/types.d.ts +20 -2
- package/dist/maplibregl.js +801 -774
- package/dist/maplibregl.umd.js +22 -0
- package/package.json +4 -4
- package/src/lib/GeocodingControl.svelte +31 -13
- package/src/lib/LeafletGeocodingControl.ts +22 -4
- package/src/lib/MaplibreglGeocodingControl.ts +29 -6
- package/src/lib/ReverseGeocodingIcon.svelte +12 -0
- package/src/lib/leafletMapController.ts +119 -20
- package/src/lib/maplibreglMapController.ts +66 -57
- package/src/lib/types.ts +23 -2
- package/dist/leaflet.umd.cjs +0 -1
- package/dist/lib/maplibreMapController.d.ts +0 -4
- package/dist/maplibregl.umd.cjs +0 -22
- package/src/lib/BullseyeIcon.svelte +0 -12
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var jt=(C,A,k)=>{if(!A.has(C))throw TypeError("Cannot "+k)};var re=(C,A,k)=>(jt(C,A,"read from private field"),k?k.call(C):A.get(C)),ft=(C,A,k)=>{if(A.has(C))throw TypeError("Cannot add the same private member more than once");A instanceof WeakSet?A.add(C):A.set(C,k)},Ze=(C,A,k,Be)=>(jt(C,A,"write to private field"),Be?Be.call(C,k):A.set(C,k),k);(function(C,A){typeof exports=="object"&&typeof module<"u"?A(exports,require("maplibre-gl")):typeof define=="function"&&define.amd?define(["exports","maplibre-gl"],A):(C=typeof globalThis<"u"?globalThis:C||self,A(C.maplibreglMaptilerGeocoder={},C.maplibregl))})(this,function(C,A){var J,de;"use strict";function k(){}function Be(n,t){for(const e in t)n[e]=t[e];return n}function at(n){return n()}function ct(){return Object.create(null)}function ie(n){n.forEach(at)}function ht(n){return typeof n=="function"}function _e(n,t){return n!=n?t==t:n!==t||n&&typeof n=="object"||typeof n=="function"}function Ht(n){return Object.keys(n).length===0}function Kt(n,t,e,r){if(n){const i=gt(n,t,e,r);return n[0](i)}}function gt(n,t,e,r){return n[1]&&r?Be(e.ctx.slice(),n[1](r(t))):e.ctx}function Jt(n,t,e,r){if(n[2]&&r){const i=n[2](r(e));if(t.dirty===void 0)return i;if(typeof i=="object"){const o=[],l=Math.max(t.dirty.length,i.length);for(let s=0;s<l;s+=1)o[s]=t.dirty[s]|i[s];return o}return t.dirty|i}return t.dirty}function $t(n,t,e,r,i,o){if(i){const l=gt(t,e,r,o);n.p(l,i)}}function er(n){if(n.ctx.length>32){const t=[],e=n.ctx.length/32;for(let r=0;r<e;r++)t[r]=-1;return t}return-1}function vt(n){return n==null?"":n}function I(n,t){n.appendChild(t)}function W(n,t,e){n.insertBefore(t,e||null)}function Y(n){n.parentNode.removeChild(n)}function tr(n,t){for(let e=0;e<n.length;e+=1)n[e]&&n[e].d(t)}function N(n){return document.createElement(n)}function oe(n){return document.createElementNS("http://www.w3.org/2000/svg",n)}function ve(n){return document.createTextNode(n)}function $(){return ve(" ")}function j(n,t,e,r){return n.addEventListener(t,e,r),()=>n.removeEventListener(t,e,r)}function rr(n){return function(t){return t.preventDefault(),n.call(this,t)}}function y(n,t,e){e==null?n.removeAttribute(t):n.getAttribute(t)!==e&&n.setAttribute(t,e)}function nr(n){return Array.from(n.childNodes)}function Ie(n,t){t=""+t,n.wholeText!==t&&(n.data=t)}function yt(n,t){n.value=t==null?"":t}function Q(n,t,e){n.classList[e?"add":"remove"](t)}function ir(n,t,{bubbles:e=!1,cancelable:r=!1}={}){const i=document.createEvent("CustomEvent");return i.initCustomEvent(n,e,r,t),i}let Le;function Me(n){Le=n}function dt(){if(!Le)throw new Error("Function called outside component initialization");return Le}function or(n){dt().$$.on_destroy.push(n)}function lr(){const n=dt();return(t,e,{cancelable:r=!1}={})=>{const i=n.$$.callbacks[t];if(i){const o=ir(t,e,{cancelable:r});return i.slice().forEach(l=>{l.call(n,o)}),!o.defaultPrevented}return!0}}const Oe=[],Xe=[],Ge=[],mt=[],sr=Promise.resolve();let We=!1;function ur(){We||(We=!0,sr.then(pt))}function je(n){Ge.push(n)}const He=new Set;let qe=0;function pt(){const n=Le;do{for(;qe<Oe.length;){const t=Oe[qe];qe++,Me(t),fr(t.$$)}for(Me(null),Oe.length=0,qe=0;Xe.length;)Xe.pop()();for(let t=0;t<Ge.length;t+=1){const e=Ge[t];He.has(e)||(He.add(e),e())}Ge.length=0}while(Oe.length);for(;mt.length;)mt.pop()();We=!1,He.clear(),Me(n)}function fr(n){if(n.fragment!==null){n.update(),ie(n.before_update);const t=n.dirty;n.dirty=[-1],n.fragment&&n.fragment.p(n.ctx,t),n.after_update.forEach(je)}}const Fe=new Set;let ye;function Qe(){ye={r:0,c:[],p:ye}}function De(){ye.r||ie(ye.c),ye=ye.p}function B(n,t){n&&n.i&&(Fe.delete(n),n.i(t))}function Z(n,t,e,r){if(n&&n.o){if(Fe.has(n))return;Fe.add(n),ye.c.push(()=>{Fe.delete(n),r&&(e&&n.d(1),r())}),n.o(t)}else r&&r()}function Te(n){n&&n.c()}function be(n,t,e,r){const{fragment:i,after_update:o}=n.$$;i&&i.m(t,e),r||je(()=>{const l=n.$$.on_mount.map(at).filter(ht);n.$$.on_destroy?n.$$.on_destroy.push(...l):ie(l),n.$$.on_mount=[]}),o.forEach(je)}function xe(n,t){const e=n.$$;e.fragment!==null&&(ie(e.on_destroy),e.fragment&&e.fragment.d(t),e.on_destroy=e.fragment=null,e.ctx=[])}function ar(n,t){n.$$.dirty[0]===-1&&(Oe.push(n),ur(),n.$$.dirty.fill(0)),n.$$.dirty[t/31|0]|=1<<t%31}function we(n,t,e,r,i,o,l,s=[-1]){const u=Le;Me(n);const f=n.$$={fragment:null,ctx:[],props:o,update:k,not_equal:i,bound:ct(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(t.context||(u?u.$$.context:[])),callbacks:ct(),dirty:s,skip_bound:!1,root:t.target||u.$$.root};l&&l(f.root);let a=!1;if(f.ctx=e?e(n,t.props||{},(g,m,...v)=>{const x=v.length?v[0]:m;return f.ctx&&i(f.ctx[g],f.ctx[g]=x)&&(!f.skip_bound&&f.bound[g]&&f.bound[g](x),a&&ar(n,g)),m}):[],f.update(),a=!0,ie(f.before_update),f.fragment=r?r(f.ctx):!1,t.target){if(t.hydrate){const g=nr(t.target);f.fragment&&f.fragment.l(g),g.forEach(Y)}else f.fragment&&f.fragment.c();t.intro&&B(n.$$.fragment),be(n,t.target,t.anchor,t.customElement),pt()}Me(u)}class Ee{$destroy(){xe(this,1),this.$destroy=k}$on(t,e){if(!ht(e))return k;const r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return r.push(e),()=>{const i=r.indexOf(e);i!==-1&&r.splice(i,1)}}$set(t){this.$$set&&!Ht(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const mn="";function cr(n){let t,e;return{c(){t=oe("svg"),e=oe("path"),y(e,"d","M30.003-26.765C13.46-26.765 0-14.158 0 1.337c0 23.286 24.535 42.952 28.39 46.04.24.192.402.316.471.376.323.282.732.424 1.142.424.41 0 .82-.142 1.142-.424.068-.06.231-.183.471-.376 3.856-3.09 28.39-22.754 28.39-46.04 0-15.495-13.46-28.102-30.003-28.102Zm1.757 12.469c4.38 0 7.858 1.052 10.431 3.158 2.595 2.105 3.89 4.913 3.89 8.422 0 2.34-.53 4.362-1.593 6.063-1.063 1.702-3.086 3.616-6.063 5.742-2.042 1.51-3.337 2.659-3.89 3.446-.532.787-.8 1.82-.8 3.096v1.914h-8.449V15.18c0-2.041.434-3.815 1.306-5.325.872-1.51 2.467-3.118 4.785-4.82 2.233-1.594 3.7-2.89 4.402-3.889a5.582 5.582 0 0 0 1.087-3.35c0-1.382-.51-2.435-1.531-3.158-1.02-.723-2.45-1.087-4.28-1.087-3.19 0-6.826 1.047-10.91 3.131l-3.472-6.986c4.742-2.659 9.77-3.992 15.087-3.992Zm-1.88 37.324c1.765 0 3.124.472 4.08 1.408.98.936 1.47 2.276 1.47 4.02 0 1.68-.49 3.007-1.47 3.985-.977.957-2.336 1.435-4.08 1.435-1.787 0-3.171-.465-4.15-1.4-.978-.958-1.47-2.298-1.47-4.02 0-1.787.48-3.14 1.436-4.054.957-.915 2.355-1.374 4.184-1.374Z"),y(t,"viewBox","0 0 60.006 21.412"),y(t,"width","14"),y(t,"height","20"),y(t,"class","svelte-en2qvf")},m(r,i){W(r,t,i),I(t,e)},p:k,i:k,o:k,d(r){r&&Y(t)}}}class hr extends Ee{constructor(t){super(),we(this,t,null,cr,_e,{})}}const pn="";function gr(n){let t,e;return{c(){t=oe("svg"),e=oe("path"),y(e,"d","M3.8 2.5c-.6 0-1.3.7-1.3 1.3 0 .3.2.7.5.8L7.2 9 3 13.2c-.3.3-.5.7-.5 1 0 .6.7 1.3 1.3 1.3.3 0 .7-.2 1-.5L9 10.8l4.2 4.2c.2.3.7.3 1 .3.6 0 1.3-.7 1.3-1.3 0-.3-.2-.7-.3-1l-4.4-4L15 4.6c.3-.2.5-.5.5-.8 0-.7-.7-1.3-1.3-1.3-.3 0-.7.2-1 .3L9 7.1 4.8 2.8c-.3-.1-.7-.3-1-.3z"),y(t,"viewBox","0 0 18 18"),y(t,"width","16"),y(t,"height","16"),y(t,"class","svelte-en2qvf")},m(r,i){W(r,t,i),I(t,e)},p:k,i:k,o:k,d(r){r&&Y(t)}}}class vr extends Ee{constructor(t){super(),we(this,t,null,gr,_e,{})}}const _n="";function yr(n){let t;return{c(){t=N("div"),t.innerHTML='<svg viewBox="0 0 18 18" width="24" height="24" class="svelte-7cmwmc"><path fill="#333" d="M4.4 4.4l.8.8c2.1-2.1 5.5-2.1 7.6 0l.8-.8c-2.5-2.5-6.7-2.5-9.2 0z"></path><path opacity=".1" d="M12.8 12.9c-2.1 2.1-5.5 2.1-7.6 0-2.1-2.1-2.1-5.5 0-7.7l-.8-.8c-2.5 2.5-2.5 6.7 0 9.2s6.6 2.5 9.2 0 2.5-6.6 0-9.2l-.8.8c2.2 2.1 2.2 5.6 0 7.7z"></path></svg>',y(t,"class","svelte-7cmwmc")},m(e,r){W(e,t,r)},p:k,i:k,o:k,d(e){e&&Y(t)}}}class dr extends Ee{constructor(t){super(),we(this,t,null,yr,_e,{})}}const bn="";function mr(n){let t,e,r;return{c(){t=oe("svg"),e=oe("path"),y(e,"stroke-width","4"),y(e,"fill-rule","evenodd"),y(e,"clip-rule","evenodd"),y(e,"d","M 5,33.103579 C 5,17.607779 18.457,5 35,5 C 51.543,5 65,17.607779 65,33.103579 C 65,56.388679 40.4668,76.048179 36.6112,79.137779 C 36.3714,79.329879 36.2116,79.457979 36.1427,79.518879 C 35.8203,79.800879 35.4102,79.942779 35,79.942779 C 34.5899,79.942779 34.1797,79.800879 33.8575,79.518879 C 33.7886,79.457979 33.6289,79.330079 33.3893,79.138079 C 29.5346,76.049279 5,56.389379 5,33.103579 Z M 35.0001,49.386379 C 43.1917,49.386379 49.8323,42.646079 49.8323,34.331379 C 49.8323,26.016779 43.1917,19.276479 35.0001,19.276479 C 26.8085,19.276479 20.1679,26.016779 20.1679,34.331379 C 20.1679,42.646079 26.8085,49.386379 35.0001,49.386379 Z"),y(e,"class","svelte-656hh2"),y(t,"width",r=n[0]!=="list"?void 0:"20"),y(t,"viewBox","0 0 70 85"),y(t,"fill","none"),y(t,"class","svelte-656hh2"),Q(t,"in-map",n[0]!=="list"),Q(t,"for-maplibre",n[0]==="maplibre"),Q(t,"for-leaflet",n[0]==="leaflet"),Q(t,"list-icon",n[0]==="list")},m(i,o){W(i,t,o),I(t,e)},p(i,[o]){o&1&&r!==(r=i[0]!=="list"?void 0:"20")&&y(t,"width",r),o&1&&Q(t,"in-map",i[0]!=="list"),o&1&&Q(t,"for-maplibre",i[0]==="maplibre"),o&1&&Q(t,"for-leaflet",i[0]==="leaflet"),o&1&&Q(t,"list-icon",i[0]==="list")},i:k,o:k,d(i){i&&Y(t)}}}function pr(n,t,e){let{displayIn:r}=t;return n.$$set=i=>{"displayIn"in i&&e(0,r=i.displayIn)},[r]}class _t extends Ee{constructor(t){super(),we(this,t,pr,mr,_e,{displayIn:0})}}const xn="";function _r(n){let t,e;return{c(){t=oe("svg"),e=oe("path"),y(e,"d","M7.4 2.5c-2.7 0-4.9 2.2-4.9 4.9s2.2 4.9 4.9 4.9c1 0 1.8-.2 2.5-.8l3.7 3.7c.2.2.4.3.8.3.7 0 1.1-.4 1.1-1.1 0-.3-.1-.5-.3-.8L11.4 10c.4-.8.8-1.6.8-2.5.1-2.8-2.1-5-4.8-5zm0 1.6c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2-3.3-1.3-3.3-3.1 1.4-3.3 3.3-3.3z"),y(t,"viewBox","0 0 18 18"),y(t,"xml:space","preserve"),y(t,"width","20"),y(t,"class","svelte-en2qvf")},m(r,i){W(r,t,i),I(t,e)},p:k,i:k,o:k,d(r){r&&Y(t)}}}class br extends Ee{constructor(t){super(),we(this,t,null,_r,_e,{})}}const wn="";function bt(n,t,e){const r=n.slice();return r[63]=t[e],r[65]=e,r}function xt(n){let t,e;return t=new dr({}),{c(){Te(t.$$.fragment)},m(r,i){be(t,r,i),e=!0},i(r){e||(B(t.$$.fragment,r),e=!0)},o(r){Z(t.$$.fragment,r),e=!1},d(r){xe(t,r)}}}function wt(n){let t,e,r,i,o;return e=new hr({}),{c(){t=N("button"),Te(e.$$.fragment),y(t,"type","button"),y(t,"title",n[8]),y(t,"class","svelte-1h1zm6d"),Q(t,"active",n[1])},m(l,s){W(l,t,s),be(e,t,null),r=!0,i||(o=j(t,"click",n[50]),i=!0)},p(l,s){(!r||s[0]&256)&&y(t,"title",l[8]),(!r||s[0]&2)&&Q(t,"active",l[1])},i(l){r||(B(e.$$.fragment,l),r=!0)},o(l){Z(e.$$.fragment,l),r=!1},d(l){l&&Y(t),xe(e),i=!1,o()}}}function xr(n){let t,e,r,i,o=n[12],l=[];for(let u=0;u<o.length;u+=1)l[u]=St(bt(n,o,u));const s=u=>Z(l[u],1,1,()=>{l[u]=null});return{c(){t=N("ul");for(let u=0;u<l.length;u+=1)l[u].c();y(t,"class","svelte-1h1zm6d")},m(u,f){W(u,t,f);for(let a=0;a<l.length;a+=1)l[a].m(t,null);e=!0,r||(i=[j(t,"mouseout",n[53]),j(t,"blur",n[54])],r=!0)},p(u,f){if(f[0]&29697){o=u[12];let a;for(a=0;a<o.length;a+=1){const g=bt(u,o,a);l[a]?(l[a].p(g,f),B(l[a],1)):(l[a]=St(g),l[a].c(),B(l[a],1),l[a].m(t,null))}for(Qe(),a=o.length;a<l.length;a+=1)s(a);De()}},i(u){if(!e){for(let f=0;f<o.length;f+=1)B(l[f]);e=!0}},o(u){l=l.filter(Boolean);for(let f=0;f<l.length;f+=1)Z(l[f]);e=!1},d(u){u&&Y(t),tr(l,u),r=!1,ie(i)}}}function wr(n){let t,e;return{c(){t=N("div"),e=ve(n[5]),y(t,"class","no-results svelte-1h1zm6d")},m(r,i){W(r,t,i),I(t,e)},p(r,i){i[0]&32&&Ie(e,r[5])},i:k,o:k,d(r){r&&Y(t)}}}function Er(n){let t,e;return{c(){t=N("div"),e=ve(n[4]),y(t,"class","error svelte-1h1zm6d")},m(r,i){W(r,t,i),I(t,e)},p(r,i){i[0]&16&&Ie(e,r[4])},i:k,o:k,d(r){r&&Y(t)}}}function Sr(n){let t="",e;return{c(){e=ve(t)},m(r,i){W(r,e,i)},p:k,i:k,o:k,d(r){r&&Y(e)}}}function Et(n){let t,e=n[63].place_type+"",r;return{c(){t=N("span"),r=ve(e),y(t,"class","svelte-1h1zm6d")},m(i,o){W(i,t,o),I(t,r)},p(i,o){o[0]&4096&&e!==(e=i[63].place_type+"")&&Ie(r,e)},d(i){i&&Y(t)}}}function St(n){let t,e,r,i,o,l,s=n[63].place_name.replace(/,.*/,"")+"",u,f,a,g,m,v=n[63].place_name.replace(/[^,]*,?\s*/,"")+"",x,p,h,d,w,L;e=new _t({props:{displayIn:"list"}});let _=n[10]&&Et(n);function S(){return n[51](n[65])}function E(){return n[52](n[63])}return{c(){t=N("li"),Te(e.$$.fragment),r=$(),i=N("span"),o=N("span"),l=N("span"),u=ve(s),f=$(),_&&_.c(),a=$(),g=N("span"),m=N("span"),x=ve(v),p=$(),y(l,"class","svelte-1h1zm6d"),y(o,"class","svelte-1h1zm6d"),y(i,"class","svelte-1h1zm6d"),y(m,"class","svelte-1h1zm6d"),y(g,"class","svelte-1h1zm6d"),y(t,"tabindex","0"),y(t,"data-selected",h=n[14]===n[65]),y(t,"class","svelte-1h1zm6d"),Q(t,"selected",n[14]===n[65])},m(P,R){W(P,t,R),be(e,t,null),I(t,r),I(t,i),I(i,o),I(o,l),I(l,u),I(o,f),_&&_.m(o,null),I(t,a),I(t,g),I(g,m),I(m,x),I(t,p),d=!0,w||(L=[j(t,"mouseover",S),j(t,"focus",E)],w=!0)},p(P,R){n=P,(!d||R[0]&4096)&&s!==(s=n[63].place_name.replace(/,.*/,"")+"")&&Ie(u,s),n[10]?_?_.p(n,R):(_=Et(n),_.c(),_.m(o,null)):_&&(_.d(1),_=null),(!d||R[0]&4096)&&v!==(v=n[63].place_name.replace(/[^,]*,?\s*/,"")+"")&&Ie(x,v),(!d||R[0]&16384&&h!==(h=n[14]===n[65]))&&y(t,"data-selected",h),(!d||R[0]&16384)&&Q(t,"selected",n[14]===n[65])},i(P){d||(B(e.$$.fragment,P),d=!0)},o(P){Z(e.$$.fragment,P),d=!1},d(P){P&&Y(t),xe(e),_&&_.d(),w=!1,ie(L)}}}function kr(n){let t,e,r,i,o,l,s,u,f,a,g,m,v,x,p,h,d,w,L,_;i=new br({}),a=new vr({});let S=n[18]&&xt(),E=n[7]===!0&&wt(n);const P=n[42].default,R=Kt(P,n,n[41],null),F=[Sr,Er,wr,xr],G=[];function M(b,O){var D,fe;return b[15]?b[17]?1:((D=b[12])==null?void 0:D.length)===0?2:b[15]&&((fe=b[12])==null?void 0:fe.length)?3:-1:0}return~(p=M(n))&&(h=G[p]=F[p](n)),{c(){t=N("form"),e=N("div"),r=N("button"),Te(i.$$.fragment),o=$(),l=N("input"),s=$(),u=N("div"),f=N("button"),Te(a.$$.fragment),g=$(),S&&S.c(),m=$(),E&&E.c(),v=$(),R&&R.c(),x=$(),h&&h.c(),y(r,"type","button"),y(r,"class","svelte-1h1zm6d"),y(l,"placeholder",n[3]),y(l,"aria-label",n[3]),y(l,"class","svelte-1h1zm6d"),y(f,"type","button"),y(f,"title",n[9]),y(f,"class","svelte-1h1zm6d"),Q(f,"displayable",n[0]!==""),y(u,"class","clear-button-container svelte-1h1zm6d"),y(e,"class","input-group svelte-1h1zm6d"),y(t,"tabindex","0"),y(t,"class",d=vt(n[2])+" svelte-1h1zm6d"),Q(t,"can-collapse",n[6]&&n[0]==="")},m(b,O){W(b,t,O),I(t,e),I(e,r),be(i,r,null),I(e,o),I(e,l),n[44](l),yt(l,n[0]),I(e,s),I(e,u),I(u,f),be(a,f,null),I(u,g),S&&S.m(u,null),I(e,m),E&&E.m(e,null),I(e,v),R&&R.m(e,null),I(t,x),~p&&G[p].m(t,null),w=!0,L||(_=[j(r,"click",n[43]),j(l,"input",n[45]),j(l,"focus",n[46]),j(l,"blur",n[47]),j(l,"keydown",n[20]),j(l,"input",n[48]),j(f,"click",n[49]),j(t,"submit",rr(n[19]))],L=!0)},p(b,O){(!w||O[0]&8)&&y(l,"placeholder",b[3]),(!w||O[0]&8)&&y(l,"aria-label",b[3]),O[0]&1&&l.value!==b[0]&&yt(l,b[0]),(!w||O[0]&512)&&y(f,"title",b[9]),(!w||O[0]&1)&&Q(f,"displayable",b[0]!==""),b[18]?S?O[0]&262144&&B(S,1):(S=xt(),S.c(),B(S,1),S.m(u,null)):S&&(Qe(),Z(S,1,1,()=>{S=null}),De()),b[7]===!0?E?(E.p(b,O),O[0]&128&&B(E,1)):(E=wt(b),E.c(),B(E,1),E.m(e,v)):E&&(Qe(),Z(E,1,1,()=>{E=null}),De()),R&&R.p&&(!w||O[1]&1024)&&$t(R,P,b,b[41],w?Jt(P,b[41],O,null):er(b[41]),null);let D=p;p=M(b),p===D?~p&&G[p].p(b,O):(h&&(Qe(),Z(G[D],1,1,()=>{G[D]=null}),De()),~p?(h=G[p],h?h.p(b,O):(h=G[p]=F[p](b),h.c()),B(h,1),h.m(t,null)):h=null),(!w||O[0]&4&&d!==(d=vt(b[2])+" svelte-1h1zm6d"))&&y(t,"class",d),(!w||O[0]&69)&&Q(t,"can-collapse",b[6]&&b[0]==="")},i(b){w||(B(i.$$.fragment,b),B(a.$$.fragment,b),B(S),B(E),B(R,b),B(h),w=!0)},o(b){Z(i.$$.fragment,b),Z(a.$$.fragment,b),Z(S),Z(E),Z(R,b),Z(h),w=!1},d(b){b&&Y(t),xe(i),n[44](null),xe(a),S&&S.d(),E&&E.d(),R&&R.d(b),~p&&G[p].d(),L=!1,ie(_)}}}function Pr(n,t,e){let r,{$$slots:i={},$$scope:o}=t,{class:l=void 0}=t,{mapController:s=void 0}=t,{apiKey:u}=t,{debounceSearch:f=200}=t,{placeholder:a="Search"}=t,{errorMessage:g="Searching failed"}=t,{noResultsMessage:m="No results found"}=t,{proximity:v=void 0}=t,{bbox:x=void 0}=t,{trackProximity:p=!0}=t,{minLength:h=2}=t,{language:d=void 0}=t,{showResultsWhileTyping:w=!0}=t,{zoom:L=16}=t,{flyTo:_=!0}=t,{collapsed:S=!1}=t,{clearOnBlur:E=!1}=t,{enableReverse:P=!1}=t,{reverseButtonTitle:R="toggle reverse geocoding"}=t,{clearButtonTitle:F="clear"}=t,{filter:G=()=>!0}=t,{searchValue:M=""}=t,{reverseActive:b=P==="always"}=t,{showPlaceType:O=!1}=t,{showFullGeometry:D=!0}=t;function fe(){te.focus()}function en(){te.blur()}function Vt(c,V=!0){e(0,M=c),V?(e(14,q=-1),Zt()):(ut(),setTimeout(()=>{te.focus(),te.select()}))}let Se=!1,z,X,T,Yt="",te,q=-1,ae,Ye=[],me,ot,lt;const ce=lr();or(()=>{s&&(s.setProximityChangeHandler(void 0),s.setMapClickHandler(void 0),s.indicateReverse(!1),s.setSelectedMarker(-1),s.setMarkers(void 0,void 0))});function Zt(c){if(q>-1&&z)e(13,T=z[q]),e(0,M=T.place_name.replace(/,.*/,"")),e(17,ae=void 0),e(39,X=void 0),e(14,q=-1);else if(M){const V=c||!Xt();st(M).then(()=>{e(39,X=z),e(13,T=void 0),V&&tn()}).catch(ne=>e(17,ae=ne))}}function Xt(){return/^-?\d+(\.\d+)?,-?\d+(\.\d+)?$/.test(M)}async function st(c,V=!1){e(17,ae=void 0);const ne=Xt(),he=new URLSearchParams;he.set("key",u),d&&he.set("language",String(d)),ne||(x&&he.set("bbox",x.join(",")),v&&he.set("proximity",v.join(",")));const pe="https://api.maptiler.com/geocoding/"+encodeURIComponent(c)+".json?"+he.toString();if(pe===Yt){V?(e(12,z=void 0),e(13,T=Ye[0])):e(12,z=Ye);return}Yt=pe,me==null||me.abort(),e(18,me=new AbortController);let ke;try{ke=await fetch(pe,{signal:me.signal}).finally(()=>{e(18,me=void 0)})}catch(Re){if(Re&&typeof Re=="object"&&Re.name==="AbortError")return;throw new Error}if(!ke.ok)throw new Error;const Pe=await ke.json();ce("response",{url:pe,featureCollection:Pe}),V?(e(12,z=void 0),e(13,T=Pe.features[0]),Ye=[T]):(e(12,z=Pe.features.filter(G)),Ye=z,ne&&te.focus())}function tn(){var V,ne,he,pe,ke,Pe,Re,Wt;if(!(X!=null&&X.length)||!_)return;const c=[180,90,-180,-90];for(const ge of X)c[0]=Math.min(c[0],(ne=(V=ge.bbox)==null?void 0:V[0])!=null?ne:ge.center[0]),c[1]=Math.min(c[1],(pe=(he=ge.bbox)==null?void 0:he[1])!=null?pe:ge.center[1]),c[2]=Math.max(c[2],(Pe=(ke=ge.bbox)==null?void 0:ke[2])!=null?Pe:ge.center[0]),c[3]=Math.max(c[3],(Wt=(Re=ge.bbox)==null?void 0:Re[3])!=null?Wt:ge.center[1]);s&&X.length>0&&(T&&c[0]===c[2]&&c[1]===c[3]?s.flyTo(T.center,L):s.fitBounds(c,50))}function rn(c){e(1,b=P==="always"),Vt(c[0].toFixed(6)+","+c[1].toFixed(6))}function nn(c){if(!z)return;let V=c.key==="ArrowDown"?1:c.key==="ArrowUp"?-1:0;V?(q===-1&&V===-1&&e(14,q=z.length),e(14,q+=V),q>=z.length&&e(14,q=-1),c.preventDefault()):["ArrowLeft","ArrowRight","Home","End"].includes(c.key)&&e(14,q=-1)}function ut(c=!0){if(w&&M.length>h){ot&&clearTimeout(ot);const V=M;ot=window.setTimeout(()=>{st(V).catch(ne=>e(17,ae=ne))},c?f:0)}else e(12,z=void 0),e(17,ae=void 0)}const on=()=>te.focus();function ln(c){Xe[c?"unshift":"push"](()=>{te=c,e(16,te)})}function sn(){M=this.value,e(0,M),e(11,Se),e(33,E)}const un=()=>e(11,Se=!0),fn=()=>e(11,Se=!1),an=()=>ut(),cn=()=>{e(0,M=""),te.focus()},hn=()=>e(1,b=!b),gn=c=>e(14,q=c),vn=c=>{e(13,T=c),e(0,M=c.place_name.replace(/,.*/,"")),e(14,q=-1)},yn=()=>e(14,q=-1),dn=()=>{};return n.$$set=c=>{"class"in c&&e(2,l=c.class),"mapController"in c&&e(23,s=c.mapController),"apiKey"in c&&e(24,u=c.apiKey),"debounceSearch"in c&&e(25,f=c.debounceSearch),"placeholder"in c&&e(3,a=c.placeholder),"errorMessage"in c&&e(4,g=c.errorMessage),"noResultsMessage"in c&&e(5,m=c.noResultsMessage),"proximity"in c&&e(22,v=c.proximity),"bbox"in c&&e(26,x=c.bbox),"trackProximity"in c&&e(27,p=c.trackProximity),"minLength"in c&&e(28,h=c.minLength),"language"in c&&e(29,d=c.language),"showResultsWhileTyping"in c&&e(30,w=c.showResultsWhileTyping),"zoom"in c&&e(31,L=c.zoom),"flyTo"in c&&e(32,_=c.flyTo),"collapsed"in c&&e(6,S=c.collapsed),"clearOnBlur"in c&&e(33,E=c.clearOnBlur),"enableReverse"in c&&e(7,P=c.enableReverse),"reverseButtonTitle"in c&&e(8,R=c.reverseButtonTitle),"clearButtonTitle"in c&&e(9,F=c.clearButtonTitle),"filter"in c&&e(34,G=c.filter),"searchValue"in c&&e(0,M=c.searchValue),"reverseActive"in c&&e(1,b=c.reverseActive),"showPlaceType"in c&&e(10,O=c.showPlaceType),"showFullGeometry"in c&&e(35,D=c.showFullGeometry),"$$scope"in c&&e(41,o=c.$$scope)},n.$$.update=()=>{n.$$.dirty[0]&142606336&&s&&s.setProximityChangeHandler(p?c=>{e(22,v=c)}:void 0),n.$$.dirty[0]&134217728&&(p||e(22,v=void 0)),n.$$.dirty[0]&2048|n.$$.dirty[1]&4&&setTimeout(()=>{e(15,lt=Se),E&&!Se&&e(0,M="")}),n.$$.dirty[0]&4097&&(M||(e(13,T=void 0),e(12,z=void 0),e(17,ae=void 0),e(39,X=z))),n.$$.dirty[0]&8192|n.$$.dirty[1]&16&&D&&T&&!T.address&&T.geometry.type==="Point"&&st(T.id,!0).catch(c=>e(17,ae=c)),n.$$.dirty[0]&8396800|n.$$.dirty[1]&3&&s&&T&&_&&(!T.bbox||T.bbox[0]===T.bbox[2]&&T.bbox[1]===T.bbox[3]?s.flyTo(T.center,L):s.fitBounds(T.bbox,50),e(12,z=void 0),e(39,X=void 0),e(14,q=-1)),n.$$.dirty[0]&4096|n.$$.dirty[1]&256&&X!==z&&e(39,X=void 0),n.$$.dirty[0]&8396800|n.$$.dirty[1]&256&&s&&s.setMarkers(X,T),n.$$.dirty[0]&1&&e(14,q=-1),n.$$.dirty[0]&8404992&&(s==null||s.setSelectedMarker(q)),n.$$.dirty[0]&20480&&e(40,r=z==null?void 0:z[q]),n.$$.dirty[1]&512&&ce("select",r),n.$$.dirty[0]&8192&&ce("pick",T),n.$$.dirty[0]&36864&&ce("optionsVisibilityChange",lt&&!!z),n.$$.dirty[0]&4096&&ce("featuresListed",z),n.$$.dirty[1]&256&&ce("featuresMarked",X),n.$$.dirty[0]&2&&ce("reverseToggle",b),n.$$.dirty[0]&1&&ce("queryChange",M),n.$$.dirty[0]&8388610&&s&&s.indicateReverse(b),n.$$.dirty[0]&8388610&&s&&s.setMapClickHandler(b?rn:void 0)},[M,b,l,a,g,m,S,P,R,F,O,Se,z,T,q,lt,te,ae,me,Zt,nn,ut,v,s,u,f,x,p,h,d,w,L,_,E,G,D,fe,en,Vt,X,r,o,i,on,ln,sn,un,fn,an,cn,hn,gn,vn,yn,dn]}class Rr extends Ee{constructor(t){super(),we(this,t,Pr,kr,_e,{class:2,mapController:23,apiKey:24,debounceSearch:25,placeholder:3,errorMessage:4,noResultsMessage:5,proximity:22,bbox:26,trackProximity:27,minLength:28,language:29,showResultsWhileTyping:30,zoom:31,flyTo:32,collapsed:6,clearOnBlur:33,enableReverse:7,reverseButtonTitle:8,clearButtonTitle:9,filter:34,searchValue:0,reverseActive:1,showPlaceType:10,showFullGeometry:35,focus:36,blur:37,setQuery:38},null,[-1,-1,-1])}get focus(){return this.$$.ctx[36]}get blur(){return this.$$.ctx[37]}get setQuery(){return this.$$.ctx[38]}}function kt(n,t,e){e===void 0&&(e={});var r={type:"Feature"};return(e.id===0||e.id)&&(r.id=e.id),e.bbox&&(r.bbox=e.bbox),r.properties=t||{},r.geometry=n,r}function Pt(n,t,e){e===void 0&&(e={});for(var r=0,i=n;r<i.length;r++){var o=i[r];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var l=0;l<o[o.length-1].length;l++)if(o[o.length-1][l]!==o[0][l])throw new Error("First and last Position are not equivalent.")}var s={type:"Polygon",coordinates:n};return kt(s,t,e)}function Rt(n,t,e){e===void 0&&(e={});var r={type:"MultiPolygon",coordinates:n};return kt(r,t,e)}/**
|
|
2
|
+
* splaytree v3.1.1
|
|
3
|
+
* Fast Splay tree for Node and browser
|
|
4
|
+
*
|
|
5
|
+
* @author Alexander Milevski <info@w8r.name>
|
|
6
|
+
* @license MIT
|
|
7
|
+
* @preserve
|
|
8
|
+
*//*! *****************************************************************************
|
|
9
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
10
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
11
|
+
this file except in compliance with the License. You may obtain a copy of the
|
|
12
|
+
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
|
|
14
|
+
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
16
|
+
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
17
|
+
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
18
|
+
|
|
19
|
+
See the Apache Version 2.0 License for specific language governing permissions
|
|
20
|
+
and limitations under the License.
|
|
21
|
+
***************************************************************************** */function Ir(n,t){var e={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,i,o,l;return l={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function s(f){return function(a){return u([f,a])}}function u(f){if(r)throw new TypeError("Generator is already executing.");for(;e;)try{if(r=1,i&&(o=f[0]&2?i.return:f[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,f[1])).done)return o;switch(i=0,o&&(f=[f[0]&2,o.value]),f[0]){case 0:case 1:o=f;break;case 4:return e.label++,{value:f[1],done:!1};case 5:e.label++,i=f[1],f=[0];continue;case 7:f=e.ops.pop(),e.trys.pop();continue;default:if(o=e.trys,!(o=o.length>0&&o[o.length-1])&&(f[0]===6||f[0]===2)){e=0;continue}if(f[0]===3&&(!o||f[1]>o[0]&&f[1]<o[3])){e.label=f[1];break}if(f[0]===6&&e.label<o[1]){e.label=o[1],o=f;break}if(o&&e.label<o[2]){e.label=o[2],e.ops.push(f);break}o[2]&&e.ops.pop(),e.trys.pop();continue}f=t.call(n,e)}catch(a){f=[6,a],i=0}finally{r=o=0}if(f[0]&5)throw f[1];return{value:f[0]?f[1]:void 0,done:!0}}}var le=function(){function n(t,e){this.next=null,this.key=t,this.data=e,this.left=null,this.right=null}return n}();function Lr(n,t){return n>t?1:n<t?-1:0}function se(n,t,e){for(var r=new le(null,null),i=r,o=r;;){var l=e(n,t.key);if(l<0){if(t.left===null)break;if(e(n,t.left.key)<0){var s=t.left;if(t.left=s.right,s.right=t,t=s,t.left===null)break}o.left=t,o=t,t=t.left}else if(l>0){if(t.right===null)break;if(e(n,t.right.key)>0){var s=t.right;if(t.right=s.left,s.left=t,t=s,t.right===null)break}i.right=t,i=t,t=t.right}else break}return i.right=t.left,o.left=t.right,t.left=r.right,t.right=r.left,t}function Ke(n,t,e,r){var i=new le(n,t);if(e===null)return i.left=i.right=null,i;e=se(n,e,r);var o=r(n,e.key);return o<0?(i.left=e.left,i.right=e,e.left=null):o>=0&&(i.right=e.right,i.left=e,e.right=null),i}function It(n,t,e){var r=null,i=null;if(t){t=se(n,t,e);var o=e(t.key,n);o===0?(r=t.left,i=t.right):o<0?(i=t.right,t.right=null,r=t):(r=t.left,t.left=null,i=t)}return{left:r,right:i}}function Mr(n,t,e){return t===null?n:(n===null||(t=se(n.key,t,e),t.left=n),t)}function Je(n,t,e,r,i){if(n){r(""+t+(e?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ")+i(n)+`
|
|
22
|
+
`);var o=t+(e?" ":"\u2502 ");n.left&&Je(n.left,o,!1,r,i),n.right&&Je(n.right,o,!0,r,i)}}var $e=function(){function n(t){t===void 0&&(t=Lr),this._root=null,this._size=0,this._comparator=t}return n.prototype.insert=function(t,e){return this._size++,this._root=Ke(t,e,this._root,this._comparator)},n.prototype.add=function(t,e){var r=new le(t,e);this._root===null&&(r.left=r.right=null,this._size++,this._root=r);var i=this._comparator,o=se(t,this._root,i),l=i(t,o.key);return l===0?this._root=o:(l<0?(r.left=o.left,r.right=o,o.left=null):l>0&&(r.right=o.right,r.left=o,o.right=null),this._size++,this._root=r),this._root},n.prototype.remove=function(t){this._root=this._remove(t,this._root,this._comparator)},n.prototype._remove=function(t,e,r){var i;if(e===null)return null;e=se(t,e,r);var o=r(t,e.key);return o===0?(e.left===null?i=e.right:(i=se(t,e.left,r),i.right=e.right),this._size--,i):e},n.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=se(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data}}return null},n.prototype.findStatic=function(t){for(var e=this._root,r=this._comparator;e;){var i=r(t,e.key);if(i===0)return e;i<0?e=e.left:e=e.right}return null},n.prototype.find=function(t){return this._root&&(this._root=se(t,this._root,this._comparator),this._comparator(t,this._root.key)!==0)?null:this._root},n.prototype.contains=function(t){for(var e=this._root,r=this._comparator;e;){var i=r(t,e.key);if(i===0)return!0;i<0?e=e.left:e=e.right}return!1},n.prototype.forEach=function(t,e){for(var r=this._root,i=[],o=!1;!o;)r!==null?(i.push(r),r=r.left):i.length!==0?(r=i.pop(),t.call(e,r),r=r.right):o=!0;return this},n.prototype.range=function(t,e,r,i){for(var o=[],l=this._comparator,s=this._root,u;o.length!==0||s;)if(s)o.push(s),s=s.left;else{if(s=o.pop(),u=l(s.key,e),u>0)break;if(l(s.key,t)>=0&&r.call(i,s))return this;s=s.right}return this},n.prototype.keys=function(){var t=[];return this.forEach(function(e){var r=e.key;return t.push(r)}),t},n.prototype.values=function(){var t=[];return this.forEach(function(e){var r=e.data;return t.push(r)}),t},n.prototype.min=function(){return this._root?this.minNode(this._root).key:null},n.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},n.prototype.minNode=function(t){if(t===void 0&&(t=this._root),t)for(;t.left;)t=t.left;return t},n.prototype.maxNode=function(t){if(t===void 0&&(t=this._root),t)for(;t.right;)t=t.right;return t},n.prototype.at=function(t){for(var e=this._root,r=!1,i=0,o=[];!r;)if(e)o.push(e),e=e.left;else if(o.length>0){if(e=o.pop(),i===t)return e;i++,e=e.right}else r=!0;return null},n.prototype.next=function(t){var e=this._root,r=null;if(t.right){for(r=t.right;r.left;)r=r.left;return r}for(var i=this._comparator;e;){var o=i(t.key,e.key);if(o===0)break;o<0?(r=e,e=e.left):e=e.right}return r},n.prototype.prev=function(t){var e=this._root,r=null;if(t.left!==null){for(r=t.left;r.right;)r=r.right;return r}for(var i=this._comparator;e;){var o=i(t.key,e.key);if(o===0)break;o<0?e=e.left:(r=e,e=e.right)}return r},n.prototype.clear=function(){return this._root=null,this._size=0,this},n.prototype.toList=function(){return Tr(this._root)},n.prototype.load=function(t,e,r){e===void 0&&(e=[]),r===void 0&&(r=!1);var i=t.length,o=this._comparator;if(r&&rt(t,e,0,i-1,o),this._root===null)this._root=et(t,e,0,i),this._size=i;else{var l=Cr(this.toList(),Or(t,e),o);i=this._size+i,this._root=tt({head:l},0,i)}return this},n.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),n.prototype.toString=function(t){t===void 0&&(t=function(r){return String(r.key)});var e=[];return Je(this._root,"",!0,function(r){return e.push(r)},t),e.join("")},n.prototype.update=function(t,e,r){var i=this._comparator,o=It(t,this._root,i),l=o.left,s=o.right;i(t,e)<0?s=Ke(e,r,s,i):l=Ke(e,r,l,i),this._root=Mr(l,s,i)},n.prototype.split=function(t){return It(t,this._root,this._comparator)},n.prototype[Symbol.iterator]=function(){var t;return Ir(this,function(e){switch(e.label){case 0:t=this.minNode(),e.label=1;case 1:return t?[4,t]:[3,3];case 2:return e.sent(),t=this.next(t),[3,1];case 3:return[2]}})},n}();function et(n,t,e,r){var i=r-e;if(i>0){var o=e+Math.floor(i/2),l=n[o],s=t[o],u=new le(l,s);return u.left=et(n,t,e,o),u.right=et(n,t,o+1,r),u}return null}function Or(n,t){for(var e=new le(null,null),r=e,i=0;i<n.length;i++)r=r.next=new le(n[i],t[i]);return r.next=null,e.next}function Tr(n){for(var t=n,e=[],r=!1,i=new le(null,null),o=i;!r;)t?(e.push(t),t=t.left):e.length>0?(t=o=o.next=e.pop(),t=t.right):r=!0;return o.next=null,i.next}function tt(n,t,e){var r=e-t;if(r>0){var i=t+Math.floor(r/2),o=tt(n,t,i),l=n.head;return l.left=o,n.head=n.head.next,l.right=tt(n,i+1,e),l}return null}function Cr(n,t,e){for(var r=new le(null,null),i=r,o=n,l=t;o!==null&&l!==null;)e(o.key,l.key)<0?(i.next=o,o=o.next):(i.next=l,l=l.next),i=i.next;return o!==null?i.next=o:l!==null&&(i.next=l),r.next}function rt(n,t,e,r,i){if(!(e>=r)){for(var o=n[e+r>>1],l=e-1,s=r+1;;){do l++;while(i(n[l],o)<0);do s--;while(i(n[s],o)>0);if(l>=s)break;var u=n[l];n[l]=n[s],n[s]=u,u=t[l],t[l]=t[s],t[s]=u}rt(n,t,e,s,i),rt(n,t,s+1,r,i)}}function H(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function Lt(n,t){for(var e=0;e<t.length;e++){var r=t[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}function U(n,t,e){return t&&Lt(n.prototype,t),e&&Lt(n,e),n}var Ce=function(t,e){return t.ll.x<=e.x&&e.x<=t.ur.x&&t.ll.y<=e.y&&e.y<=t.ur.y},nt=function(t,e){if(e.ur.x<t.ll.x||t.ur.x<e.ll.x||e.ur.y<t.ll.y||t.ur.y<e.ll.y)return null;var r=t.ll.x<e.ll.x?e.ll.x:t.ll.x,i=t.ur.x<e.ur.x?t.ur.x:e.ur.x,o=t.ll.y<e.ll.y?e.ll.y:t.ll.y,l=t.ur.y<e.ur.y?t.ur.y:e.ur.y;return{ll:{x:r,y:o},ur:{x:i,y:l}}},ue=Number.EPSILON;ue===void 0&&(ue=Math.pow(2,-52));var zr=ue*ue,it=function(t,e){if(-ue<t&&t<ue&&-ue<e&&e<ue)return 0;var r=t-e;return r*r<zr*t*e?0:t<e?-1:1},Ar=function(){function n(){H(this,n),this.reset()}return U(n,[{key:"reset",value:function(){this.xRounder=new Mt,this.yRounder=new Mt}},{key:"round",value:function(e,r){return{x:this.xRounder.round(e),y:this.yRounder.round(r)}}}]),n}(),Mt=function(){function n(){H(this,n),this.tree=new $e,this.round(0)}return U(n,[{key:"round",value:function(e){var r=this.tree.add(e),i=this.tree.prev(r);if(i!==null&&it(r.key,i.key)===0)return this.tree.remove(e),i.key;var o=this.tree.next(r);return o!==null&&it(r.key,o.key)===0?(this.tree.remove(e),o.key):e}}]),n}(),ze=new Ar,Ae=function(t,e){return t.x*e.y-t.y*e.x},Ot=function(t,e){return t.x*e.x+t.y*e.y},Tt=function(t,e,r){var i={x:e.x-t.x,y:e.y-t.y},o={x:r.x-t.x,y:r.y-t.y},l=Ae(i,o);return it(l,0)},Ue=function(t){return Math.sqrt(Ot(t,t))},Nr=function(t,e,r){var i={x:e.x-t.x,y:e.y-t.y},o={x:r.x-t.x,y:r.y-t.y};return Ae(o,i)/Ue(o)/Ue(i)},Br=function(t,e,r){var i={x:e.x-t.x,y:e.y-t.y},o={x:r.x-t.x,y:r.y-t.y};return Ot(o,i)/Ue(o)/Ue(i)},Ct=function(t,e,r){return e.y===0?null:{x:t.x+e.x/e.y*(r-t.y),y:r}},zt=function(t,e,r){return e.x===0?null:{x:r,y:t.y+e.y/e.x*(r-t.x)}},Gr=function(t,e,r,i){if(e.x===0)return zt(r,i,t.x);if(i.x===0)return zt(t,e,r.x);if(e.y===0)return Ct(r,i,t.y);if(i.y===0)return Ct(t,e,r.y);var o=Ae(e,i);if(o==0)return null;var l={x:r.x-t.x,y:r.y-t.y},s=Ae(l,e)/o,u=Ae(l,i)/o,f=t.x+u*e.x,a=r.x+s*i.x,g=t.y+u*e.y,m=r.y+s*i.y,v=(f+a)/2,x=(g+m)/2;return{x:v,y:x}},ee=function(){U(n,null,[{key:"compare",value:function(e,r){var i=n.comparePoints(e.point,r.point);return i!==0?i:(e.point!==r.point&&e.link(r),e.isLeft!==r.isLeft?e.isLeft?1:-1:Ve.compare(e.segment,r.segment))}},{key:"comparePoints",value:function(e,r){return e.x<r.x?-1:e.x>r.x?1:e.y<r.y?-1:e.y>r.y?1:0}}]);function n(t,e){H(this,n),t.events===void 0?t.events=[this]:t.events.push(this),this.point=t,this.isLeft=e}return U(n,[{key:"link",value:function(e){if(e.point===this.point)throw new Error("Tried to link already linked events");for(var r=e.point.events,i=0,o=r.length;i<o;i++){var l=r[i];this.point.events.push(l),l.point=this.point}this.checkForConsuming()}},{key:"checkForConsuming",value:function(){for(var e=this.point.events.length,r=0;r<e;r++){var i=this.point.events[r];if(i.segment.consumedBy===void 0)for(var o=r+1;o<e;o++){var l=this.point.events[o];l.consumedBy===void 0&&i.otherSE.point.events===l.otherSE.point.events&&i.segment.consume(l.segment)}}}},{key:"getAvailableLinkedEvents",value:function(){for(var e=[],r=0,i=this.point.events.length;r<i;r++){var o=this.point.events[r];o!==this&&!o.segment.ringOut&&o.segment.isInResult()&&e.push(o)}return e}},{key:"getLeftmostComparator",value:function(e){var r=this,i=new Map,o=function(s){var u=s.otherSE;i.set(s,{sine:Nr(r.point,e.point,u.point),cosine:Br(r.point,e.point,u.point)})};return function(l,s){i.has(l)||o(l),i.has(s)||o(s);var u=i.get(l),f=u.sine,a=u.cosine,g=i.get(s),m=g.sine,v=g.cosine;return f>=0&&m>=0?a<v?1:a>v?-1:0:f<0&&m<0?a<v?-1:a>v?1:0:m<f?-1:m>f?1:0}}}]),n}(),qr=0,Ve=function(){U(n,null,[{key:"compare",value:function(e,r){var i=e.leftSE.point.x,o=r.leftSE.point.x,l=e.rightSE.point.x,s=r.rightSE.point.x;if(s<i)return 1;if(l<o)return-1;var u=e.leftSE.point.y,f=r.leftSE.point.y,a=e.rightSE.point.y,g=r.rightSE.point.y;if(i<o){if(f<u&&f<a)return 1;if(f>u&&f>a)return-1;var m=e.comparePoint(r.leftSE.point);if(m<0)return 1;if(m>0)return-1;var v=r.comparePoint(e.rightSE.point);return v!==0?v:-1}if(i>o){if(u<f&&u<g)return-1;if(u>f&&u>g)return 1;var x=r.comparePoint(e.leftSE.point);if(x!==0)return x;var p=e.comparePoint(r.rightSE.point);return p<0?1:p>0?-1:1}if(u<f)return-1;if(u>f)return 1;if(l<s){var h=r.comparePoint(e.rightSE.point);if(h!==0)return h}if(l>s){var d=e.comparePoint(r.rightSE.point);if(d<0)return 1;if(d>0)return-1}if(l!==s){var w=a-u,L=l-i,_=g-f,S=s-o;if(w>L&&_<S)return 1;if(w<L&&_>S)return-1}return l>s?1:l<s||a<g?-1:a>g?1:e.id<r.id?-1:e.id>r.id?1:0}}]);function n(t,e,r,i){H(this,n),this.id=++qr,this.leftSE=t,t.segment=this,t.otherSE=e,this.rightSE=e,e.segment=this,e.otherSE=t,this.rings=r,this.windings=i}return U(n,[{key:"replaceRightSE",value:function(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var e=this.leftSE.point.y,r=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:e<r?e:r},ur:{x:this.rightSE.point.x,y:e>r?e:r}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}},{key:"comparePoint",value:function(e){if(this.isAnEndpoint(e))return 0;var r=this.leftSE.point,i=this.rightSE.point,o=this.vector();if(r.x===i.x)return e.x===r.x?0:e.x<r.x?1:-1;var l=(e.y-r.y)/o.y,s=r.x+l*o.x;if(e.x===s)return 0;var u=(e.x-r.x)/o.x,f=r.y+u*o.y;return e.y===f?0:e.y<f?-1:1}},{key:"getIntersection",value:function(e){var r=this.bbox(),i=e.bbox(),o=nt(r,i);if(o===null)return null;var l=this.leftSE.point,s=this.rightSE.point,u=e.leftSE.point,f=e.rightSE.point,a=Ce(r,u)&&this.comparePoint(u)===0,g=Ce(i,l)&&e.comparePoint(l)===0,m=Ce(r,f)&&this.comparePoint(f)===0,v=Ce(i,s)&&e.comparePoint(s)===0;if(g&&a)return v&&!m?s:!v&&m?f:null;if(g)return m&&l.x===f.x&&l.y===f.y?null:l;if(a)return v&&s.x===u.x&&s.y===u.y?null:u;if(v&&m)return null;if(v)return s;if(m)return f;var x=Gr(l,this.vector(),u,e.vector());return x===null||!Ce(o,x)?null:ze.round(x.x,x.y)}},{key:"split",value:function(e){var r=[],i=e.events!==void 0,o=new ee(e,!0),l=new ee(e,!1),s=this.rightSE;this.replaceRightSE(l),r.push(l),r.push(o);var u=new n(o,s,this.rings.slice(),this.windings.slice());return ee.comparePoints(u.leftSE.point,u.rightSE.point)>0&&u.swapEvents(),ee.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),i&&(o.checkForConsuming(),l.checkForConsuming()),r}},{key:"swapEvents",value:function(){var e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var r=0,i=this.windings.length;r<i;r++)this.windings[r]*=-1}},{key:"consume",value:function(e){for(var r=this,i=e;r.consumedBy;)r=r.consumedBy;for(;i.consumedBy;)i=i.consumedBy;var o=n.compare(r,i);if(o!==0){if(o>0){var l=r;r=i,i=l}if(r.prev===i){var s=r;r=i,i=s}for(var u=0,f=i.rings.length;u<f;u++){var a=i.rings[u],g=i.windings[u],m=r.rings.indexOf(a);m===-1?(r.rings.push(a),r.windings.push(g)):r.windings[m]+=g}i.rings=null,i.windings=null,i.consumedBy=r,i.leftSE.consumedBy=r.leftSE,i.rightSE.consumedBy=r.rightSE}}},{key:"prevInResult",value:function(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}},{key:"beforeState",value:function(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{var e=this.prev.consumedBy||this.prev;this._beforeState=e.afterState()}return this._beforeState}},{key:"afterState",value:function(){if(this._afterState!==void 0)return this._afterState;var e=this.beforeState();this._afterState={rings:e.rings.slice(0),windings:e.windings.slice(0),multiPolys:[]};for(var r=this._afterState.rings,i=this._afterState.windings,o=this._afterState.multiPolys,l=0,s=this.rings.length;l<s;l++){var u=this.rings[l],f=this.windings[l],a=r.indexOf(u);a===-1?(r.push(u),i.push(f)):i[a]+=f}for(var g=[],m=[],v=0,x=r.length;v<x;v++)if(i[v]!==0){var p=r[v],h=p.poly;if(m.indexOf(h)===-1)if(p.isExterior)g.push(h);else{m.indexOf(h)===-1&&m.push(h);var d=g.indexOf(p.poly);d!==-1&&g.splice(d,1)}}for(var w=0,L=g.length;w<L;w++){var _=g[w].multiPoly;o.indexOf(_)===-1&&o.push(_)}return this._afterState}},{key:"isInResult",value:function(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;var e=this.beforeState().multiPolys,r=this.afterState().multiPolys;switch(K.type){case"union":{var i=e.length===0,o=r.length===0;this._isInResult=i!==o;break}case"intersection":{var l,s;e.length<r.length?(l=e.length,s=r.length):(l=r.length,s=e.length),this._isInResult=s===K.numMultiPolys&&l<s;break}case"xor":{var u=Math.abs(e.length-r.length);this._isInResult=u%2===1;break}case"difference":{var f=function(g){return g.length===1&&g[0].isSubject};this._isInResult=f(e)!==f(r);break}default:throw new Error("Unrecognized operation type found ".concat(K.type))}return this._isInResult}}],[{key:"fromRing",value:function(e,r,i){var o,l,s,u=ee.comparePoints(e,r);if(u<0)o=e,l=r,s=1;else if(u>0)o=r,l=e,s=-1;else throw new Error("Tried to create degenerate segment at [".concat(e.x,", ").concat(e.y,"]"));var f=new ee(o,!0),a=new ee(l,!1);return new n(f,a,[i],[s])}}]),n}(),At=function(){function n(t,e,r){if(H(this,n),!Array.isArray(t)||t.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=e,this.isExterior=r,this.segments=[],typeof t[0][0]!="number"||typeof t[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var i=ze.round(t[0][0],t[0][1]);this.bbox={ll:{x:i.x,y:i.y},ur:{x:i.x,y:i.y}};for(var o=i,l=1,s=t.length;l<s;l++){if(typeof t[l][0]!="number"||typeof t[l][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var u=ze.round(t[l][0],t[l][1]);u.x===o.x&&u.y===o.y||(this.segments.push(Ve.fromRing(o,u,this)),u.x<this.bbox.ll.x&&(this.bbox.ll.x=u.x),u.y<this.bbox.ll.y&&(this.bbox.ll.y=u.y),u.x>this.bbox.ur.x&&(this.bbox.ur.x=u.x),u.y>this.bbox.ur.y&&(this.bbox.ur.y=u.y),o=u)}(i.x!==o.x||i.y!==o.y)&&this.segments.push(Ve.fromRing(o,i,this))}return U(n,[{key:"getSweepEvents",value:function(){for(var e=[],r=0,i=this.segments.length;r<i;r++){var o=this.segments[r];e.push(o.leftSE),e.push(o.rightSE)}return e}}]),n}(),Fr=function(){function n(t,e){if(H(this,n),!Array.isArray(t))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new At(t[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(var r=1,i=t.length;r<i;r++){var o=new At(t[r],this,!1);o.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=o.bbox.ll.x),o.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=o.bbox.ll.y),o.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.interiorRings.push(o)}this.multiPoly=e}return U(n,[{key:"getSweepEvents",value:function(){for(var e=this.exteriorRing.getSweepEvents(),r=0,i=this.interiorRings.length;r<i;r++)for(var o=this.interiorRings[r].getSweepEvents(),l=0,s=o.length;l<s;l++)e.push(o[l]);return e}}]),n}(),Nt=function(){function n(t,e){if(H(this,n),!Array.isArray(t))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof t[0][0][0]=="number"&&(t=[t])}catch{}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(var r=0,i=t.length;r<i;r++){var o=new Fr(t[r],this);o.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=o.bbox.ll.x),o.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=o.bbox.ll.y),o.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.polys.push(o)}this.isSubject=e}return U(n,[{key:"getSweepEvents",value:function(){for(var e=[],r=0,i=this.polys.length;r<i;r++)for(var o=this.polys[r].getSweepEvents(),l=0,s=o.length;l<s;l++)e.push(o[l]);return e}}]),n}(),Qr=function(){U(n,null,[{key:"factory",value:function(e){for(var r=[],i=0,o=e.length;i<o;i++){var l=e[i];if(!(!l.isInResult()||l.ringOut)){for(var s=null,u=l.leftSE,f=l.rightSE,a=[u],g=u.point,m=[];s=u,u=f,a.push(u),u.point!==g;)for(;;){var v=u.getAvailableLinkedEvents();if(v.length===0){var x=a[0].point,p=a[a.length-1].point;throw new Error("Unable to complete output ring starting at [".concat(x.x,",")+" ".concat(x.y,"]. Last matching segment found ends at")+" [".concat(p.x,", ").concat(p.y,"]."))}if(v.length===1){f=v[0].otherSE;break}for(var h=null,d=0,w=m.length;d<w;d++)if(m[d].point===u.point){h=d;break}if(h!==null){var L=m.splice(h)[0],_=a.splice(L.index);_.unshift(_[0].otherSE),r.push(new n(_.reverse()));continue}m.push({index:a.length,point:u.point});var S=u.getLeftmostComparator(s);f=v.sort(S)[0].otherSE;break}r.push(new n(a))}}return r}}]);function n(t){H(this,n),this.events=t;for(var e=0,r=t.length;e<r;e++)t[e].segment.ringOut=this;this.poly=null}return U(n,[{key:"getGeom",value:function(){for(var e=this.events[0].point,r=[e],i=1,o=this.events.length-1;i<o;i++){var l=this.events[i].point,s=this.events[i+1].point;Tt(l,e,s)!==0&&(r.push(l),e=l)}if(r.length===1)return null;var u=r[0],f=r[1];Tt(u,e,f)===0&&r.shift(),r.push(r[0]);for(var a=this.isExteriorRing()?1:-1,g=this.isExteriorRing()?0:r.length-1,m=this.isExteriorRing()?r.length:-1,v=[],x=g;x!=m;x+=a)v.push([r[x].x,r[x].y]);return v}},{key:"isExteriorRing",value:function(){if(this._isExteriorRing===void 0){var e=this.enclosingRing();this._isExteriorRing=e?!e.isExteriorRing():!0}return this._isExteriorRing}},{key:"enclosingRing",value:function(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}},{key:"_calcEnclosingRing",value:function(){for(var e=this.events[0],r=1,i=this.events.length;r<i;r++){var o=this.events[r];ee.compare(e,o)>0&&(e=o)}for(var l=e.segment.prevInResult(),s=l?l.prevInResult():null;;){if(!l)return null;if(!s)return l.ringOut;if(s.ringOut!==l.ringOut)return s.ringOut.enclosingRing()!==l.ringOut?l.ringOut:l.ringOut.enclosingRing();l=s.prevInResult(),s=l?l.prevInResult():null}}}]),n}(),Bt=function(){function n(t){H(this,n),this.exteriorRing=t,t.poly=this,this.interiorRings=[]}return U(n,[{key:"addInterior",value:function(e){this.interiorRings.push(e),e.poly=this}},{key:"getGeom",value:function(){var e=[this.exteriorRing.getGeom()];if(e[0]===null)return null;for(var r=0,i=this.interiorRings.length;r<i;r++){var o=this.interiorRings[r].getGeom();o!==null&&e.push(o)}return e}}]),n}(),Dr=function(){function n(t){H(this,n),this.rings=t,this.polys=this._composePolys(t)}return U(n,[{key:"getGeom",value:function(){for(var e=[],r=0,i=this.polys.length;r<i;r++){var o=this.polys[r].getGeom();o!==null&&e.push(o)}return e}},{key:"_composePolys",value:function(e){for(var r=[],i=0,o=e.length;i<o;i++){var l=e[i];if(!l.poly)if(l.isExteriorRing())r.push(new Bt(l));else{var s=l.enclosingRing();s.poly||r.push(new Bt(s)),s.poly.addInterior(l)}}return r}}]),n}(),Ur=function(){function n(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ve.compare;H(this,n),this.queue=t,this.tree=new $e(e),this.segments=[]}return U(n,[{key:"process",value:function(e){var r=e.segment,i=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(r),i;var o=e.isLeft?this.tree.insert(r):this.tree.find(r);if(!o)throw new Error("Unable to find segment #".concat(r.id," ")+"[".concat(r.leftSE.point.x,", ").concat(r.leftSE.point.y,"] -> ")+"[".concat(r.rightSE.point.x,", ").concat(r.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var l=o,s=o,u=void 0,f=void 0;u===void 0;)l=this.tree.prev(l),l===null?u=null:l.key.consumedBy===void 0&&(u=l.key);for(;f===void 0;)s=this.tree.next(s),s===null?f=null:s.key.consumedBy===void 0&&(f=s.key);if(e.isLeft){var a=null;if(u){var g=u.getIntersection(r);if(g!==null&&(r.isAnEndpoint(g)||(a=g),!u.isAnEndpoint(g)))for(var m=this._splitSafely(u,g),v=0,x=m.length;v<x;v++)i.push(m[v])}var p=null;if(f){var h=f.getIntersection(r);if(h!==null&&(r.isAnEndpoint(h)||(p=h),!f.isAnEndpoint(h)))for(var d=this._splitSafely(f,h),w=0,L=d.length;w<L;w++)i.push(d[w])}if(a!==null||p!==null){var _=null;if(a===null)_=p;else if(p===null)_=a;else{var S=ee.comparePoints(a,p);_=S<=0?a:p}this.queue.remove(r.rightSE),i.push(r.rightSE);for(var E=r.split(_),P=0,R=E.length;P<R;P++)i.push(E[P])}i.length>0?(this.tree.remove(r),i.push(e)):(this.segments.push(r),r.prev=u)}else{if(u&&f){var F=u.getIntersection(f);if(F!==null){if(!u.isAnEndpoint(F))for(var G=this._splitSafely(u,F),M=0,b=G.length;M<b;M++)i.push(G[M]);if(!f.isAnEndpoint(F))for(var O=this._splitSafely(f,F),D=0,fe=O.length;D<fe;D++)i.push(O[D])}}this.tree.remove(r)}return i}},{key:"_splitSafely",value:function(e,r){this.tree.remove(e);var i=e.rightSE;this.queue.remove(i);var o=e.split(r);return o.push(i),e.consumedBy===void 0&&this.tree.insert(e),o}}]),n}(),Gt=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,Vr=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6,Yr=function(){function n(){H(this,n)}return U(n,[{key:"run",value:function(e,r,i){K.type=e,ze.reset();for(var o=[new Nt(r,!0)],l=0,s=i.length;l<s;l++)o.push(new Nt(i[l],!1));if(K.numMultiPolys=o.length,K.type==="difference")for(var u=o[0],f=1;f<o.length;)nt(o[f].bbox,u.bbox)!==null?f++:o.splice(f,1);if(K.type==="intersection"){for(var a=0,g=o.length;a<g;a++)for(var m=o[a],v=a+1,x=o.length;v<x;v++)if(nt(m.bbox,o[v].bbox)===null)return[]}for(var p=new $e(ee.compare),h=0,d=o.length;h<d;h++)for(var w=o[h].getSweepEvents(),L=0,_=w.length;L<_;L++)if(p.insert(w[L]),p.size>Gt)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var S=new Ur(p),E=p.size,P=p.pop();P;){var R=P.key;if(p.size===E){var F=R.segment;throw new Error("Unable to pop() ".concat(R.isLeft?"left":"right"," SweepEvent ")+"[".concat(R.point.x,", ").concat(R.point.y,"] from segment #").concat(F.id," ")+"[".concat(F.leftSE.point.x,", ").concat(F.leftSE.point.y,"] -> ")+"[".concat(F.rightSE.point.x,", ").concat(F.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(p.size>Gt)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(S.segments.length>Vr)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var G=S.process(R),M=0,b=G.length;M<b;M++){var O=G[M];O.consumedBy===void 0&&p.insert(O)}E=p.size,P=p.pop()}ze.reset();var D=Qr.factory(S.segments),fe=new Dr(D);return fe.getGeom()}}]),n}(),K=new Yr,Zr=function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];return K.run("union",t,r)},Xr=function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];return K.run("intersection",t,r)},Wr=function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];return K.run("xor",t,r)},jr=function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;i<e;i++)r[i-1]=arguments[i];return K.run("difference",t,r)},Ne={union:Zr,intersection:Xr,xor:Wr,difference:jr};function qt(n,t){var e=Kr(t),r=null;return n.type==="FeatureCollection"?r=Hr(n):r=Ft(Ne.union(n.geometry.coordinates)),r.geometry.coordinates.forEach(function(i){e.geometry.coordinates.push(i[0])}),e}function Hr(n){var t=n.features.length===2?Ne.union(n.features[0].geometry.coordinates,n.features[1].geometry.coordinates):Ne.union.apply(Ne,n.features.map(function(e){return e.geometry.coordinates}));return Ft(t)}function Ft(n){return Rt(n)}function Kr(n){var t=[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]],e=n&&n.geometry.coordinates||t;return Pt(e)}function Qt(n){return n.type==="Feature"?n.geometry:n}function Jr(n,t,e){e===void 0&&(e={});var r=Qt(n),i=Qt(t),o=Ne.union(r.coordinates,i.coordinates);return o.length===0?null:o.length===1?Pt(o[0],e.properties):Rt(o,e.properties)}let Dt={type:"FeatureCollection",features:[]};function Ut(n,t,e=!0,r=!0,i={},o={},l={fill:{layout:{},paint:{"fill-color":"#000","fill-opacity":.1}},line:{layout:{"line-cap":"square"},paint:{"line-width":["case",["==",["geometry-type"],"Polygon"],2,3],"line-dasharray":[1,1],"line-color":"#3170fe"}}}){let s,u,f,a=[],g;function m(){n.addSource("full-geom",{type:"geojson",data:Dt}),n.addLayer({...l.fill,id:"full-geom-fill",type:"fill",source:"full-geom",filter:["==",["geometry-type"],"Polygon"]}),n.addLayer({...l.line,id:"full-geom-line",type:"line",source:"full-geom"})}n.loaded()?m():n.once("load",()=>{m()});const v=h=>{u==null||u([h.lngLat.lng,h.lngLat.lat])},x=()=>{let h;const d=n.getZoom()>9?[(h=n.getCenter().wrap()).lng,h.lat]:void 0;f!==d&&(f=d,s==null||s(d))};return{setProximityChangeHandler(h){h?(s=h,n.on("moveend",x),x()):(n.off("moveend",x),s==null||s(void 0),s=void 0)},setMapClickHandler(h){u=h,u?n.on("click",v):n.off("click",v)},flyTo(h,d){n.flyTo({center:h,zoom:d,...i})},fitBounds(h,d){n.fitBounds([[h[0],h[1]],[h[2],h[3]]],{padding:d,...o})},indicateReverse(h){n.getCanvas().style.cursor=h?"crosshair":""},setMarkers(h,d){function w(_){var S;(S=n.getSource("full-geom"))==null||S.setData(_)}for(const _ of a)_.remove();if(a.length=0,w(Dt),!t)return;const L=()=>{const _=document.createElement("div");return new _t({props:{displayIn:"maplibre"},target:_}),new t.Marker({element:_})};if(d){let _=!1;if(d.geometry.type==="GeometryCollection"){const S=d.geometry.geometries.filter(E=>E.type==="Polygon"||E.type==="MultiPolygon");if(S.length>0){let E=S.pop();for(const P of S)E=Jr(E,P);w(qt({...d,geometry:E})),_=!0}else{const E=d.geometry.geometries.filter(P=>P.type==="LineString"||P.type==="MultiLineString");E.length>0&&(w({...d,geometry:{type:"GeometryCollection",geometries:E}}),_=!0)}}if(!_){if(d.geometry.type==="Polygon"||d.geometry.type==="MultiPolygon")w(qt(d));else if(d.geometry.type==="LineString"||d.geometry.type==="MultiLineString"){w(d);return}}a.push((typeof e=="object"?new t.Marker(e):L()).setLngLat(d.center).addTo(n))}for(const _ of h!=null?h:[])_!==d&&a.push((typeof r=="object"?new t.Marker(r):L()).setLngLat(_.center).addTo(n))},setSelectedMarker(h){g&&g.getElement().classList.toggle("marker-selected",!1),g=h>-1?a[h]:void 0,g==null||g.getElement().classList.toggle("marker-selected",!0)}}}class $r extends A.Evented{constructor(e){super();ft(this,J,void 0);ft(this,de,void 0);Ze(this,de,e)}onAdd(e){const r=document.createElement("div");r.className="mapboxgl-ctrl-geocoder mapboxgl-ctrl maplibregl-ctrl-geocoder maplibregl-ctrl";const{maplibregl:i,marker:o,showResultMarkers:l,flyTo:s,fullGeometryStyle:u,...f}=re(this,de),a=typeof s=="boolean"?{}:s,g=Ut(e,i,o,l,a,a,u);Ze(this,J,new Rr({target:r,props:{mapController:g,flyTo:s===void 0?!0:!!s,...f}}));for(const m of["select","pick","featuresListed","featuresMarked","response","optionsVisibilityChange","reverseToggle","queryChange"])re(this,J).$on(m,v=>this.fire(m.toLowerCase(),v.detail));return r}setOptions(e){var f;Ze(this,de,e);const{maplibregl:r,marker:i,showResultMarkers:o,flyTo:l,fullGeometryStyle:s,...u}=re(this,de);(f=re(this,J))==null||f.$set(u)}setQuery(e,r=!0){var i;(i=re(this,J))==null||i.setQuery(e,r)}setReverseMode(e){var r;(r=re(this,J))==null||r.$set({reverseActive:e})}focus(){var e;(e=re(this,J))==null||e.focus()}blur(){var e;(e=re(this,J))==null||e.blur()}onRemove(){var e;(e=re(this,J))==null||e.$destroy()}}J=new WeakMap,de=new WeakMap,C.GeocodingControl=$r,C.createMaplibreglMapController=Ut,Object.defineProperties(C,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maptiler/geocoding-control",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.38",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite",
|
|
7
|
-
"build": "vite build && FLAVOUR=leaflet vite build && tsc --outDir dist --declaration --emitDeclarationOnly",
|
|
7
|
+
"build": "vite build && mv dist/maplibregl.umd.cjs dist/maplibregl.umd.js && FLAVOUR=leaflet vite build && mv dist/leaflet.umd.cjs dist/leaflet.umd.js && tsc --outDir dist --declaration --emitDeclarationOnly",
|
|
8
8
|
"preview": "vite preview",
|
|
9
9
|
"check": "svelte-check --tsconfig ./tsconfig.json"
|
|
10
10
|
},
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"exports": {
|
|
16
16
|
"./leaflet": {
|
|
17
17
|
"import": "./dist/leaflet.js",
|
|
18
|
-
"require": "./dist/leaflet.umd.
|
|
18
|
+
"require": "./dist/leaflet.umd.js"
|
|
19
19
|
},
|
|
20
20
|
"./maplibregl": {
|
|
21
21
|
"import": "./dist/maplibregl.js",
|
|
22
|
-
"require": "./dist/maplibregl.umd.
|
|
22
|
+
"require": "./dist/maplibregl.umd.js"
|
|
23
23
|
},
|
|
24
24
|
"./dist/style.css": {
|
|
25
25
|
"import": "./dist/style.css",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script type="ts">
|
|
2
2
|
import { createEventDispatcher } from "svelte";
|
|
3
3
|
import { onDestroy } from "svelte/internal";
|
|
4
|
-
import
|
|
4
|
+
import ReverseGeocodingIcon from "./ReverseGeocodingIcon.svelte";
|
|
5
5
|
import ClearIcon from "./ClearIcon.svelte";
|
|
6
6
|
import LoadingIcon from "./LoadingIcon.svelte";
|
|
7
7
|
import MarkerIcon from "./MarkerIcon.svelte";
|
|
@@ -49,16 +49,22 @@
|
|
|
49
49
|
|
|
50
50
|
export let clearOnBlur = false;
|
|
51
51
|
|
|
52
|
-
export let enableReverse: boolean |
|
|
52
|
+
export let enableReverse: boolean | "always" = false;
|
|
53
|
+
|
|
54
|
+
export let reverseButtonTitle = "toggle reverse geocoding";
|
|
55
|
+
|
|
56
|
+
export let clearButtonTitle = "clear";
|
|
53
57
|
|
|
54
58
|
export let filter: (feature: Feature) => boolean = () => true;
|
|
55
59
|
|
|
56
60
|
export let searchValue = "";
|
|
57
61
|
|
|
58
|
-
export let reverseActive =
|
|
62
|
+
export let reverseActive = enableReverse === "always";
|
|
59
63
|
|
|
60
64
|
export let showPlaceType = false;
|
|
61
65
|
|
|
66
|
+
export let showFullGeometry = true;
|
|
67
|
+
|
|
62
68
|
// export let limit = 5;
|
|
63
69
|
|
|
64
70
|
// export let autocomplete = true;
|
|
@@ -139,7 +145,12 @@
|
|
|
139
145
|
proximity = undefined;
|
|
140
146
|
}
|
|
141
147
|
|
|
142
|
-
$: if (
|
|
148
|
+
$: if (
|
|
149
|
+
showFullGeometry &&
|
|
150
|
+
picked &&
|
|
151
|
+
!picked.address &&
|
|
152
|
+
picked.geometry.type === "Point"
|
|
153
|
+
) {
|
|
143
154
|
search(picked.id, true).catch((err) => (error = err));
|
|
144
155
|
}
|
|
145
156
|
|
|
@@ -226,7 +237,7 @@
|
|
|
226
237
|
}
|
|
227
238
|
});
|
|
228
239
|
|
|
229
|
-
function handleOnSubmit() {
|
|
240
|
+
function handleOnSubmit(event?: unknown) {
|
|
230
241
|
if (selectedItemIndex > -1 && listFeatures) {
|
|
231
242
|
picked = listFeatures[selectedItemIndex];
|
|
232
243
|
searchValue = picked.place_name.replace(/,.*/, "");
|
|
@@ -234,22 +245,30 @@
|
|
|
234
245
|
markedFeatures = undefined;
|
|
235
246
|
selectedItemIndex = -1;
|
|
236
247
|
} else if (searchValue) {
|
|
248
|
+
const zoomTo = event || !isQuerReverse();
|
|
249
|
+
|
|
237
250
|
search(searchValue)
|
|
238
251
|
.then(() => {
|
|
239
252
|
markedFeatures = listFeatures;
|
|
240
253
|
|
|
241
254
|
picked = undefined;
|
|
242
255
|
|
|
243
|
-
|
|
256
|
+
if (zoomTo) {
|
|
257
|
+
zoomToResults();
|
|
258
|
+
}
|
|
244
259
|
})
|
|
245
260
|
.catch((err) => (error = err));
|
|
246
261
|
}
|
|
247
262
|
}
|
|
248
263
|
|
|
264
|
+
function isQuerReverse() {
|
|
265
|
+
return /^-?\d+(\.\d+)?,-?\d+(\.\d+)?$/.test(searchValue);
|
|
266
|
+
}
|
|
267
|
+
|
|
249
268
|
async function search(searchValue: string, byId = false) {
|
|
250
269
|
error = undefined;
|
|
251
270
|
|
|
252
|
-
const isReverse =
|
|
271
|
+
const isReverse = isQuerReverse();
|
|
253
272
|
|
|
254
273
|
const sp = new URLSearchParams();
|
|
255
274
|
|
|
@@ -363,7 +382,7 @@
|
|
|
363
382
|
}
|
|
364
383
|
|
|
365
384
|
function handleReverse(coordinates: [lng: number, lat: number]) {
|
|
366
|
-
reverseActive =
|
|
385
|
+
reverseActive = enableReverse === "always";
|
|
367
386
|
|
|
368
387
|
setQuery(coordinates[0].toFixed(6) + "," + coordinates[1].toFixed(6));
|
|
369
388
|
}
|
|
@@ -444,6 +463,7 @@
|
|
|
444
463
|
input.focus();
|
|
445
464
|
}}
|
|
446
465
|
class:displayable={searchValue !== ""}
|
|
466
|
+
title={clearButtonTitle}
|
|
447
467
|
>
|
|
448
468
|
<ClearIcon />
|
|
449
469
|
</button>
|
|
@@ -453,16 +473,14 @@
|
|
|
453
473
|
{/if}
|
|
454
474
|
</div>
|
|
455
475
|
|
|
456
|
-
{#if enableReverse}
|
|
476
|
+
{#if enableReverse === true}
|
|
457
477
|
<button
|
|
458
478
|
type="button"
|
|
459
479
|
class:active={reverseActive}
|
|
460
|
-
title={
|
|
461
|
-
? "toggle reverse geocoding"
|
|
462
|
-
: enableReverse}
|
|
480
|
+
title={reverseButtonTitle}
|
|
463
481
|
on:click={() => (reverseActive = !reverseActive)}
|
|
464
482
|
>
|
|
465
|
-
<
|
|
483
|
+
<ReverseGeocodingIcon />
|
|
466
484
|
</button>
|
|
467
485
|
{/if}
|
|
468
486
|
|
|
@@ -32,6 +32,11 @@ type LeafletControlOptions = ControlOptions &
|
|
|
32
32
|
* @default true
|
|
33
33
|
*/
|
|
34
34
|
flyTo?: boolean | (L.ZoomPanOptions & L.FitBoundsOptions);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Style for full feature geometry GeoJSON.
|
|
38
|
+
*/
|
|
39
|
+
fullGeometryStyle?: L.PathOptions | L.StyleFunction;
|
|
35
40
|
};
|
|
36
41
|
|
|
37
42
|
export class GeocodingControl extends L.Control {
|
|
@@ -53,7 +58,13 @@ export class GeocodingControl extends L.Control {
|
|
|
53
58
|
L.DomEvent.disableClickPropagation(div);
|
|
54
59
|
L.DomEvent.disableScrollPropagation(div);
|
|
55
60
|
|
|
56
|
-
const {
|
|
61
|
+
const {
|
|
62
|
+
marker,
|
|
63
|
+
showResultMarkers,
|
|
64
|
+
flyTo,
|
|
65
|
+
fullGeometryStyle,
|
|
66
|
+
...restOptions
|
|
67
|
+
} = this.#options;
|
|
57
68
|
|
|
58
69
|
const flyToOptions = typeof flyTo === "boolean" ? {} : flyTo;
|
|
59
70
|
|
|
@@ -62,7 +73,8 @@ export class GeocodingControl extends L.Control {
|
|
|
62
73
|
marker,
|
|
63
74
|
showResultMarkers,
|
|
64
75
|
flyToOptions,
|
|
65
|
-
flyToOptions
|
|
76
|
+
flyToOptions,
|
|
77
|
+
fullGeometryStyle
|
|
66
78
|
);
|
|
67
79
|
|
|
68
80
|
this.#gc = new GeocodingControlComponent({
|
|
@@ -95,12 +107,18 @@ export class GeocodingControl extends L.Control {
|
|
|
95
107
|
setOptions(options: LeafletControlOptions) {
|
|
96
108
|
this.#options = options;
|
|
97
109
|
|
|
98
|
-
const {
|
|
110
|
+
const {
|
|
111
|
+
marker,
|
|
112
|
+
showResultMarkers,
|
|
113
|
+
flyTo,
|
|
114
|
+
fullGeometryStyle,
|
|
115
|
+
...restOptions
|
|
116
|
+
} = this.#options;
|
|
99
117
|
|
|
100
118
|
this.#gc?.$set(restOptions);
|
|
101
119
|
}
|
|
102
120
|
|
|
103
|
-
setQuery(value: string, submit = true) {
|
|
121
|
+
setQuery(value: string, submit: boolean | "always" = true) {
|
|
104
122
|
(this.#gc as any)?.setQuery(value, submit);
|
|
105
123
|
}
|
|
106
124
|
|
|
@@ -5,6 +5,8 @@ import {
|
|
|
5
5
|
type FlyToOptions,
|
|
6
6
|
type FitBoundsOptions,
|
|
7
7
|
Evented,
|
|
8
|
+
type FillLayerSpecification,
|
|
9
|
+
type LineLayerSpecification,
|
|
8
10
|
} from "maplibre-gl";
|
|
9
11
|
import type maplibregl from "maplibre-gl";
|
|
10
12
|
import GeocodingControlComponent from "./GeocodingControl.svelte";
|
|
@@ -49,6 +51,14 @@ type MapLibreControlOptions = ControlOptions & {
|
|
|
49
51
|
* @default true
|
|
50
52
|
*/
|
|
51
53
|
flyTo?: boolean | (FlyToOptions & FitBoundsOptions);
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Style for full feature geometry GeoJSON.
|
|
57
|
+
*/
|
|
58
|
+
fullGeometryStyle?: {
|
|
59
|
+
fill: Pick<FillLayerSpecification, "layout" | "paint" | "filter">;
|
|
60
|
+
line: Pick<LineLayerSpecification, "layout" | "paint" | "filter">;
|
|
61
|
+
};
|
|
52
62
|
};
|
|
53
63
|
|
|
54
64
|
export class GeocodingControl extends Evented implements IControl {
|
|
@@ -68,8 +78,14 @@ export class GeocodingControl extends Evented implements IControl {
|
|
|
68
78
|
div.className =
|
|
69
79
|
"mapboxgl-ctrl-geocoder mapboxgl-ctrl maplibregl-ctrl-geocoder maplibregl-ctrl";
|
|
70
80
|
|
|
71
|
-
const {
|
|
72
|
-
|
|
81
|
+
const {
|
|
82
|
+
maplibregl,
|
|
83
|
+
marker,
|
|
84
|
+
showResultMarkers,
|
|
85
|
+
flyTo,
|
|
86
|
+
fullGeometryStyle,
|
|
87
|
+
...restOptions
|
|
88
|
+
} = this.#options;
|
|
73
89
|
|
|
74
90
|
const flyToOptions = typeof flyTo === "boolean" ? {} : flyTo;
|
|
75
91
|
|
|
@@ -79,7 +95,8 @@ export class GeocodingControl extends Evented implements IControl {
|
|
|
79
95
|
marker,
|
|
80
96
|
showResultMarkers,
|
|
81
97
|
flyToOptions,
|
|
82
|
-
flyToOptions
|
|
98
|
+
flyToOptions,
|
|
99
|
+
fullGeometryStyle
|
|
83
100
|
);
|
|
84
101
|
|
|
85
102
|
this.#gc = new GeocodingControlComponent({
|
|
@@ -112,13 +129,19 @@ export class GeocodingControl extends Evented implements IControl {
|
|
|
112
129
|
setOptions(options: MapLibreControlOptions) {
|
|
113
130
|
this.#options = options;
|
|
114
131
|
|
|
115
|
-
const {
|
|
116
|
-
|
|
132
|
+
const {
|
|
133
|
+
maplibregl,
|
|
134
|
+
marker,
|
|
135
|
+
showResultMarkers,
|
|
136
|
+
flyTo,
|
|
137
|
+
fullGeometryStyle,
|
|
138
|
+
...restOptions
|
|
139
|
+
} = this.#options;
|
|
117
140
|
|
|
118
141
|
this.#gc?.$set(restOptions);
|
|
119
142
|
}
|
|
120
143
|
|
|
121
|
-
setQuery(value: string, submit = true) {
|
|
144
|
+
setQuery(value: string, submit: boolean | "always" = true) {
|
|
122
145
|
(this.#gc as any)?.setQuery(value, submit);
|
|
123
146
|
}
|
|
124
147
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg viewBox="0 0 60.006 21.412" width="14" height="20">
|
|
2
|
+
<path
|
|
3
|
+
d="M30.003-26.765C13.46-26.765 0-14.158 0 1.337c0 23.286 24.535 42.952 28.39 46.04.24.192.402.316.471.376.323.282.732.424 1.142.424.41 0 .82-.142 1.142-.424.068-.06.231-.183.471-.376 3.856-3.09 28.39-22.754 28.39-46.04 0-15.495-13.46-28.102-30.003-28.102Zm1.757 12.469c4.38 0 7.858 1.052 10.431 3.158 2.595 2.105 3.89 4.913 3.89 8.422 0 2.34-.53 4.362-1.593 6.063-1.063 1.702-3.086 3.616-6.063 5.742-2.042 1.51-3.337 2.659-3.89 3.446-.532.787-.8 1.82-.8 3.096v1.914h-8.449V15.18c0-2.041.434-3.815 1.306-5.325.872-1.51 2.467-3.118 4.785-4.82 2.233-1.594 3.7-2.89 4.402-3.889a5.582 5.582 0 0 0 1.087-3.35c0-1.382-.51-2.435-1.531-3.158-1.02-.723-2.45-1.087-4.28-1.087-3.19 0-6.826 1.047-10.91 3.131l-3.472-6.986c4.742-2.659 9.77-3.992 15.087-3.992Zm-1.88 37.324c1.765 0 3.124.472 4.08 1.408.98.936 1.47 2.276 1.47 4.02 0 1.68-.49 3.007-1.47 3.985-.977.957-2.336 1.435-4.08 1.435-1.787 0-3.171-.465-4.15-1.4-.978-.958-1.47-2.298-1.47-4.02 0-1.787.48-3.14 1.436-4.054.957-.915 2.355-1.374 4.184-1.374Z"
|
|
4
|
+
/>
|
|
5
|
+
</svg>
|
|
6
|
+
|
|
7
|
+
<style>
|
|
8
|
+
svg {
|
|
9
|
+
display: block;
|
|
10
|
+
fill: var(--color-icon-button);
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
@@ -1,13 +1,35 @@
|
|
|
1
1
|
import * as L from "leaflet";
|
|
2
2
|
import MarkerIcon from "./MarkerIcon.svelte";
|
|
3
3
|
import type { Feature, MapController, Proximity } from "./types";
|
|
4
|
+
import type {
|
|
5
|
+
Polygon,
|
|
6
|
+
MultiPolygon,
|
|
7
|
+
LineString,
|
|
8
|
+
MultiLineString,
|
|
9
|
+
} from "@turf/helpers";
|
|
10
|
+
import mask from "@turf/mask";
|
|
11
|
+
import union from "@turf/union";
|
|
4
12
|
|
|
5
13
|
export function createLeafletMapController(
|
|
6
14
|
map: L.Map,
|
|
7
15
|
marker: boolean | L.MarkerOptions = true,
|
|
8
16
|
showResultMarkers: boolean | L.MarkerOptions = true,
|
|
9
17
|
flyToOptions: L.ZoomPanOptions = {},
|
|
10
|
-
flyToBounds: L.FitBoundsOptions = {}
|
|
18
|
+
flyToBounds: L.FitBoundsOptions = {},
|
|
19
|
+
fullGeometryStyle: L.PathOptions | L.StyleFunction = (feature) => {
|
|
20
|
+
const type = feature?.geometry?.type;
|
|
21
|
+
|
|
22
|
+
const weight = type === "LineString" || type === "MultiLineString" ? 3 : 2;
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
color: "#3170fe",
|
|
26
|
+
fillColor: "#000",
|
|
27
|
+
fillOpacity: 0.1,
|
|
28
|
+
weight,
|
|
29
|
+
dashArray: [weight, weight],
|
|
30
|
+
lineCap: "butt",
|
|
31
|
+
};
|
|
32
|
+
}
|
|
11
33
|
) {
|
|
12
34
|
let proximityChangeHandler: ((proximity: Proximity) => void) | undefined;
|
|
13
35
|
|
|
@@ -19,6 +41,10 @@ export function createLeafletMapController(
|
|
|
19
41
|
|
|
20
42
|
let selectedMarker: L.Marker | undefined;
|
|
21
43
|
|
|
44
|
+
let resultLayer = L.geoJSON(undefined, {
|
|
45
|
+
style: fullGeometryStyle,
|
|
46
|
+
}).addTo(map);
|
|
47
|
+
|
|
22
48
|
const handleMoveEnd = () => {
|
|
23
49
|
if (!proximityChangeHandler) {
|
|
24
50
|
prevProximity = undefined;
|
|
@@ -76,7 +102,7 @@ export function createLeafletMapController(
|
|
|
76
102
|
},
|
|
77
103
|
|
|
78
104
|
flyTo(center: [number, number], zoom: number) {
|
|
79
|
-
map.flyTo(center, zoom, flyToOptions);
|
|
105
|
+
map.flyTo(center, zoom, { duration: 2, ...flyToOptions });
|
|
80
106
|
},
|
|
81
107
|
|
|
82
108
|
fitBounds(bbox: [number, number, number, number], padding: number): void {
|
|
@@ -85,7 +111,7 @@ export function createLeafletMapController(
|
|
|
85
111
|
[bbox[1], bbox[0]],
|
|
86
112
|
[bbox[3], bbox[2]],
|
|
87
113
|
],
|
|
88
|
-
{
|
|
114
|
+
{ padding: [padding, padding], duration: 2, ...flyToBounds }
|
|
89
115
|
);
|
|
90
116
|
},
|
|
91
117
|
|
|
@@ -97,37 +123,110 @@ export function createLeafletMapController(
|
|
|
97
123
|
markedFeatures: Feature[] | undefined,
|
|
98
124
|
picked: Feature | undefined
|
|
99
125
|
): void {
|
|
126
|
+
function setData(data?: GeoJSON.GeoJSON) {
|
|
127
|
+
resultLayer.clearLayers();
|
|
128
|
+
|
|
129
|
+
if (data) {
|
|
130
|
+
resultLayer.addData(data);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
100
134
|
for (const marker of markers) {
|
|
101
135
|
marker.remove();
|
|
102
136
|
}
|
|
103
137
|
|
|
104
138
|
markers.length = 0;
|
|
105
139
|
|
|
106
|
-
|
|
107
|
-
? [...(markedFeatures ?? []), picked]
|
|
108
|
-
: markedFeatures ?? []) {
|
|
109
|
-
let m: L.Marker;
|
|
140
|
+
setData();
|
|
110
141
|
|
|
111
|
-
|
|
142
|
+
const createMarker = (pos: L.LatLngExpression) => {
|
|
143
|
+
const element = document.createElement("div");
|
|
144
|
+
|
|
145
|
+
new MarkerIcon({ props: { displayIn: "leaflet" }, target: element });
|
|
146
|
+
|
|
147
|
+
return new L.Marker(pos, {
|
|
148
|
+
icon: new L.DivIcon({ html: element, className: "" }),
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
if (picked) {
|
|
153
|
+
let handled = false;
|
|
154
|
+
|
|
155
|
+
if (picked.geometry.type === "GeometryCollection") {
|
|
156
|
+
const geoms = picked.geometry.geometries.filter(
|
|
157
|
+
(geometry) =>
|
|
158
|
+
geometry.type === "Polygon" || geometry.type === "MultiPolygon"
|
|
159
|
+
) as (Polygon | MultiPolygon)[];
|
|
160
|
+
|
|
161
|
+
if (geoms.length > 0) {
|
|
162
|
+
let geometry = geoms.pop()!;
|
|
163
|
+
|
|
164
|
+
for (const geom of geoms) {
|
|
165
|
+
geometry = union(geometry, geom) as unknown as
|
|
166
|
+
| Polygon
|
|
167
|
+
| MultiPolygon; // union actually returns geometry
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
setData(mask({ ...picked, geometry }));
|
|
112
171
|
|
|
113
|
-
|
|
114
|
-
|
|
172
|
+
handled = true;
|
|
173
|
+
} else {
|
|
174
|
+
const geometries = picked.geometry.geometries.filter(
|
|
175
|
+
(geometry) =>
|
|
176
|
+
geometry.type === "LineString" ||
|
|
177
|
+
geometry.type === "MultiLineString"
|
|
178
|
+
) as (LineString | MultiLineString)[];
|
|
179
|
+
|
|
180
|
+
if (geometries.length > 0) {
|
|
181
|
+
setData({
|
|
182
|
+
...picked,
|
|
183
|
+
geometry: { type: "GeometryCollection", geometries },
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
handled = true;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (handled) {
|
|
192
|
+
// nothing
|
|
193
|
+
} else if (
|
|
194
|
+
picked.geometry.type === "Polygon" ||
|
|
195
|
+
picked.geometry.type === "MultiPolygon"
|
|
196
|
+
) {
|
|
197
|
+
setData(mask(picked as any));
|
|
115
198
|
} else if (
|
|
116
|
-
|
|
117
|
-
|
|
199
|
+
picked.geometry.type === "LineString" ||
|
|
200
|
+
picked.geometry.type === "MultiLineString"
|
|
118
201
|
) {
|
|
119
|
-
|
|
120
|
-
} else {
|
|
121
|
-
const element = document.createElement("div");
|
|
202
|
+
setData(picked as any);
|
|
122
203
|
|
|
123
|
-
|
|
204
|
+
return; // no pin for (multi)linestrings
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const pos: L.LatLngExpression = [picked.center[1], picked.center[0]];
|
|
208
|
+
|
|
209
|
+
markers.push(
|
|
210
|
+
(typeof marker === "object"
|
|
211
|
+
? new L.Marker(pos, marker)
|
|
212
|
+
: createMarker(pos)
|
|
213
|
+
).addTo(map)
|
|
214
|
+
);
|
|
215
|
+
}
|
|
124
216
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
217
|
+
for (const feature of markedFeatures ?? []) {
|
|
218
|
+
if (feature === picked) {
|
|
219
|
+
continue;
|
|
128
220
|
}
|
|
129
221
|
|
|
130
|
-
|
|
222
|
+
const pos: L.LatLngExpression = [feature.center[1], feature.center[0]];
|
|
223
|
+
|
|
224
|
+
markers.push(
|
|
225
|
+
(typeof showResultMarkers === "object"
|
|
226
|
+
? new L.Marker(pos, showResultMarkers)
|
|
227
|
+
: createMarker(pos)
|
|
228
|
+
).addTo(map)
|
|
229
|
+
);
|
|
131
230
|
}
|
|
132
231
|
},
|
|
133
232
|
|