vendor: 4,424 bytes, line 1
1import{fk as t}from"./164ad2e3.B4L1MRYB.js";import"./2c1ab0fe.GMbxnz74.js";import"./4c290a1e.DMQ9xOwP.js";import"./app.DGSHpWaV.js";import"./9f047e05.DwjCPgK0.js";import"./0a7dffce.BcNpdEJk.js";import"./5fda1420.BLaDhoyL.js";import"./60a453ce.Cg9T1Gj2.js";import"./21cc90a2.Ccyorzx_.js";import"./bb728e1c.CHt2JlPY.js";function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}"function"==typeof SuppressedError&&SuppressedError;var r=e(function t(e,r){if(e===r)return!0;if(e&&r&&"object"==typeof e&&"object"==typeof r){if(e.constructor!==r.constructor)return!1;var s,i,o;if(Array.isArray(e)){if((s=e.length)!=r.length)return!1;for(i=s;0!==i--;)if(!t(e[i],r[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if((s=(o=Object.keys(e)).length)!==Object.keys(r).length)return!1;for(i=s;0!==i--;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=s;0!==i--;){var n=o[i];if(!t(e[n],r[n]))return!1}return!0}return e!=e&&r!=r});const s="__googleMapsScriptId";var i,o,n,a;(o=i||(i={}))[o.INITIALIZED=0]="INITIALIZED",o[o.LOADING=1]="LOADING",o[o.SUCCESS=2]="SUCCESS",o[o.FAILURE=3]="FAILURE";class h{constructor({apiKey:t,authReferrerPolicy:e,channel:i,client:o,id:n=s,language:a,libraries:l=[],mapIds:c,nonce:u,region:p,retries:d=3,url:m="https://maps.googleapis.com/maps/api/js",version:g}){if(this.callbacks=[],this.done=!1,this.loading=!1,this.errors=[],this.apiKey=t,this.authReferrerPolicy=e,this.channel=i,this.client=o,this.id=n||s,this.language=a,this.libraries=l,this.mapIds=c,this.nonce=u,this.region=p,this.retries=d,this.url=m,this.version=g,h.instance){if(!r(this.options,h.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(h.instance.options)}`);return h.instance}h.instance=this}get options(){return{version:this.version,apiKey:this.apiKey,channel:this.channel,client:this.client,id:this.id,libraries:this.libraries,language:this.language,region:this.region,mapIds:this.mapIds,nonce:this.nonce,url:this.url,authReferrerPolicy:this.authReferrerPolicy}}get status(){return this.errors.length?i.FAILURE:this.done?i.SUCCESS:this.loading?i.LOADING:i.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let t=this.url;return t+="?callback=__googleMapsCallback&loading=async",this.apiKey&&(t+=`&key=${this.apiKey}`),this.channel&&(t+=`&channel=${this.channel}`),this.client&&(t+=`&client=${this.client}`),this.libraries.length>0&&(t+=`&libraries=${this.libraries.join(",")}`),this.language&&(t+=`&language=${this.language}`),this.region&&(t+=`®ion=${this.region}`),this.version&&(t+=`&v=${this.version}`),this.mapIds&&(t+=`&map_ids=${this.mapIds.join(",")}`),this.authReferrerPolicy&&(t+=`&auth_referrer_policy=${this.authReferrerPolicy}`),t}deleteScript(){const t=document.getElementById(this.id);t&&t.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((t,e)=>{this.loadCallback(r=>{r?e(r.error):t(window.google)})})}importLibrary(t){return this.execute(),google.maps.importLibrary(t)}loadCallback(t){this.callbacks.push(t),this.execute()}setScript(){var t,e;if(document.getElementById(this.id))return void this.callback();const r={key:this.apiKey,channel:this.channel,client:this.client,libraries:this.libraries.length&&this.libraries,v:this.version,mapIds:this.mapIds,language:this.language,region:this.region,authReferrerPolicy:this.authReferrerPolicy};Object.keys(r).forEach(t=>!r[t]&&delete r[t]),(null===(e=null===(t=null===window||void 0===window?void 0:window.google)||void 0===t?void 0:t.maps)||void 0===e?void 0:e.importLibrary)||(t=>{let e,r,s,i="The Google Maps JavaScript API",o="google",n="importLibrary",a="__ib__",h=document,l=window;l=l[o]||(l[o]={});const c=l.maps||(l.maps={}),u=new Set,p=new URLSearchParams,d=()=>e||(e=new Promise((n,l)=>{return d=this,g=function*(){var d;for(s in yield r=h.createElement("script"),r.id=this.id,p.set("libraries",[...u]+""),t)p.set(s.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),t[s]);p.set("callback",o+".maps."+a),r.src=this.url+"?"+p,c[a]=n,r.onerror=()=>e=l(Error(i+" could not load.")),r.nonce=this.nonce||(null===(d=h.querySelector("script[n
1once]"))||void 0===d?void 0:d.nonce)||"",h.head.append(r)},new((m=void 0)||(m=Promise))(function(t,e){function r(t){try{i(g.next(t))}catch(p){e(p)}}function s(t){try{i(g.throw(t))}catch(p){e(p)}}function i(e){var i;e.done?t(e.value):(i=e.value,i instanceof m?i:new m(function(t){t(i)})).then(r,s)}i((g=g.apply(d,[])).next())});var d,m,g}));c[n]?console.warn(i+" only loads once. Ignoring:",t):c[n]=(t,...e)=>u.add(t)&&d().then(()=>c[n](t,...e))})(r);const s=this.libraries.map(t=>this.importLibrary(t));s.length||s.push(this.importLibrary("core")),Promise.all(s).then(()=>this.callback(),t=>{const e=new ErrorEvent("error",{error:t});this.loadErrorCallback(e)})}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.errors=[],this.onerrorEvent=null}resetIfRetryingFailed(){this.failed&&this.reset()}loadErrorCallback(t){if(this.errors.push(t),this.errors.length<=this.retries){const t=this.errors.length*Math.pow(2,this.errors.length);console.error(`Failed to load Google Maps script, retrying in ${t} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript()},t)}else this.onerrorEvent=t,this.callback()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(t=>{t(this.onerrorEvent)}),this.callbacks=[]}execute(){if(this.resetIfRetryingFailed(),!this.loading)if(this.done)this.callback();else{if(window.google&&window.google.maps&&window.google.maps.version)return console.warn("Google Maps already loaded outside @googlemaps/js-api-loader. This may result in undesirable behavior as options and script parameters may not match."),void this.callback();this.loading=!0,this.setScript()}}}const l=t(a?n:(a=1,n=function t(e,r){if(e===r)return!0;if(e&&r&&"object"==typeof e&&"object"==typeof r){if(e.constructor!==r.constructor)return!1;var s,i,o;if(Array.isArray(e)){if((s=e.length)!=r.length)return!1;for(i=s;0!==i--;)if(!t(e[i],r[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if((s=(o=Object.keys(e)).length)!==Object.keys(r).length)return!1;for(i=s;0!==i--;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=s;0!==i--;){var n=o[i];if(!t(e[n],r[n]))return!1}return!0}return e!=e&&r!=r})),c=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class u{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[e,r]=new Uint8Array(t,0,2);if(219!==e)throw new Error("Data does not appear to be in a KDBush format.");const s=r>>4;if(1!==s)throw new Error(`Got v${s} data when expected v1.`);const i=c[15&r];if(!i)throw new Error("Unrecognized array type.");const[o]=new Uint16Array(t,2,1),[n]=new Uint32Array(t,4,1);return new u(n,o,i,t)}constructor(t,e=64,r=Float64Array,s){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=r,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const i=c.indexOf(this.ArrayType),o=2*t*this.ArrayType.BYTES_PER_ELEMENT,n=t*this.IndexArrayType.BYTES_PER_ELEMENT,a=(8-n%8)%8;if(i<0)throw new Error(`Unexpected typed array class: ${r}.`);s&&s instanceof ArrayBuffer?(this.data=s,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+n+a,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+o+n+a),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+n+a,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+i]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t)}add(t,e){const r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=t,this.coords[this._pos++]=e,r}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return p(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,r,s){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:i,coords:o,nodeSize:n}=this,a=[0,i.length-1,0],h=[];for(;a.length;){const l=a.pop()||0,c=a.pop()||0,u=a.pop()||0;if(c-u<=n){for(let n=u;n<=c;n++){const a=o[2*n],l=o[2*n+1];a>=t&&a<=r&&l>=e&&l<=s&&h.push(i[n])}continue}const p=u+c>>1,d=o[2*p],m=o[2*p+1];d>=t&&d<=r&&m>=e&&m<=s&&h.push(i[p]),(0===l?t<=d:e<=m)&&(a.push(u),a.push(p-1),a.push(1-l)),(0===l?r>=d:s>=m)&&(a.push(p+1),a.push(c),a.push(1-l))}return h}within(t,e,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:s,coords:i,nodeSize:o}=this,n=[0,s.length-1,0],a=[],h=r*r;for(;n.length;){const l=n.pop()||0,c=n.pop()||0,u=n.pop()||0;if(c-u<=o){for(let r=u;r<=c;r++)f(i[2*r],i[2*r+1],t,e)<=h&&a.push(s[r]);continue}const p=u+c>>1,d=i[2*p],m=i[2*p+1];f(d,m,t,e)<=h&&a.push(s[p]),(0===l?t-r<=d:e-r<=m)&&(n.push(u),n.push(p-1),n.push(1-l)),(0===l?t+r>=d:e+r>=m)&&(n.push(p+1),n.push(c),n.push(1-l))}return a}}function p(t,e,r,s,i,o){if(i-s<=r)return;const n=s+i>>1;d(t,e,n,s,i,o),p(t,e,r,s,n-1,1-o),p(t,e,r,n+1,i,1-o)}function d(t,e,r,s,i,o){for(;i>s;){if(i-s>600){const n=i-s+1,a=r-s+1,h=Math.log(n),l=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*l*(n-l)/n)*(a-n/2<0?-1:1);d(t,e,r,Math.max(s,Math.floor(r-a*l/n+c)),Math.min(i,Math.floor(r+(n-a)*l/n+c)),o)}const n=e[2*r+o];let a=s,h=i;for(m(t,e,s,r),e[2*i+o]>n&&m(t,e,s,i);a<h;){for(m(t,e,a,h),a++,h--;e[2*a+o]<n;)a++;for(;e[2*h+o]>n;)h--}e[2*s+o]===n?m(t,e,s,h):(h++,m(t,e,h,i)),h<=r&&(s=h+1),r<=h&&(i=h-1)}}function m(t,e,r,s){g(t,r,s),g(e,2*r,2*s),g(e,2*r+1,2*s+1)}function g(t,e,r){const s=t[e];t[e]=t[r],t[r]=s}function f(t,e,r,s){const i=t-r,o=e-s;return i*i+o*o}const y={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:t=>t},w=Math.fround||(t=>e=>(t[0]=+e,t[0]))(new Float32Array(1));class k{constructor(t){this.options=Object.assign(Object.create(y),t),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(t){const{log:e,minZoom:r,maxZoom:s}=this.options;e&&console.time("total time");const i=`prepare ${t.length} points`;e&&console.time(i),this.points=t;const o=[];for(let a=0;a<t.length;a++){const e=t[a];if(!e.geometry)continue;const[r,s]=e.geometry.coordinates,i=w(M(r)),n=w(E(s));o.push(i,n,1/0,a,-1,1),this.options.reduce&&o.push(0)}let n=this.trees[s+1]=this._createTree(o);e&&console.timeEnd(i);for(let a=s;a>=r;a--){const t=+Date.now();n=this.trees[a]=this._createTree(this._cluster(n,a)),e&&console.log("z%d: %d clusters in %dms",a,n.numItems,+Date.now()-t)}return e&&console.timeEnd("total time"),this}getClusters(t,e){let r=((t[0]+180)%360+360)%360-180;const s=Math.max(-90,Math.min(90,t[1]));let i=180===t[2]?180:((t[2]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)r=-180,i=180;else if(r>i){const t=this.getClusters([r,s,180,o],e),n=this.getClusters([-180,s,i,o],e);return t.concat(n)}const n=this.trees[this._limitZoom(e)],a=n.range(M(r),E(o),M(i),E(s)),h=n.data,l=[];for(const c of a){const t=this.stride*c;l.push(h[t+5]>1?b(h,t,this.clusterProps):this.points[h[t+3]])}return l}getChildren(t){const e=this._getOriginId(t),r=this._getOriginZoom(t),s="No cluster with the specified id.",i=this.trees[r];if(!i)throw new Error(s);const o=i.data;if(e*this.stride>=o.length)throw new Error(s);const n=this.options.radius/(this.options.extent*Math.pow(2,r-1)),a=o[e*this.stride],h=o[e*this.stride+1],l=i.within(a,h,n),c=[];for(const u of l){const e=u*this.stride;o[e+4]===t&&c.push(o[e+5]>1?b(o,e,this.clusterProps):this.points[o[e+3]])}if(0===c.length)throw new Error(s);return c}getLeaves(t,e,r){e=e||10,r=r||0;const s=[];return this._appendLeaves(s,t,e,r,0),s}getTile(t,e,r){const s=this.trees[this._limitZoom(t)],i=Math.pow(2,t),{extent:o,radius:n}=this.options,a=n/o,h=(r-a)/i,l=(r+1+a)/i,c={features:[]};return this._addTileFeatures(s.range((e-a)/i,h,(e+1+a)/i,l),s.data,e,r,i,c),0===e&&this._addTileFeatures(s.range(1-a/i,h,1,l),s.data,i,r,i,c),e===i-1&&this._addTileFeatures(s.range(0,h,a/i,l),s.data,-1,r,i,c),c.features.length?c:null}getClusterExpansionZoom(t){let e=this._getOriginZoom(t)-1;for(;e<=this.options.maxZoom;){const r=this.getChildren(t);if(e++,1!==r.length)break;t=r[0].properties.cluster_id}return e}_appendLeaves(t,e,r,s,i){const o=this.getChildren(e);for(const n of o){const e=n.properties;if(e&&e.cluster?i+e.point_count<=s?i+=e.point_count:i=this._appendLeaves(t,e.cluster_id,r,s,i):i<s?i++:t.push(n),t.length===r)break}return i}_createTree(t){const e=new u(t.length/this.stride|0,this.options.nodeSize,Float32Array);for(let r=0;r<t.length;r+=this.stride)e.add(t[r],t[r+1]);return e.finish(),e.data=t,e}_addTileFeatures(t,e,r,s,i,o){for(const n of t){const t=n*this.stride,a=e[t+5]>1;let h,l,c;if(a)h=v(e,t,this.clusterProps),l=e[t],c=e[t+1];else{const r=this.points[e[t+3]];h=r.properties;const[s,i]=r.geometry.coordinates;l=M(s),c=E(i)}const u={type:1,geometry:[[Math.round(this.options.extent*(l*i-r)),Math.round(this.options.extent*(c*i-s))]],tags:h};let p;p=a||this.options.generateId?e[t+3]:this.points[e[t+3]].id,void 0!==p&&(u.id=p),o.features.push(u)}}_limitZoom(t){return Math.max(this.options.minZoom,Math.min(Math.floor(+t),this.options.maxZoom+1))}_cluster(t,e){const{radius:r,extent:s,reduce:i,minPoints:o}=this.options,n=r/(s*Math.pow(2,e)),a=t.data,h=[],l=this.stride;for(let c=0;c<a.length;c+=l){if(a[c+2]<=e)continue;a[c+2]=e;const r=a[c],s=a[c+1],u=t.within(a[c],a[c+1],n),p=a[c+5];let d=p;for(const t of u){const r=t*l;a[r+2]>e&&(d+=a[r+5])}if(d>p&&d>=o){let t,o=r*p,n=s*p,m=-1;const g=(c/l<<5)+(e+1)+this.points.length;for(const r of u){const s=r*l;if(a[s+2]<=e)continue;a[s+2]=e;const h=a[s+5];o+=a[s]*h,n+=a[s+1]*h,a[s+4]=g,i&&(t||(t=this._map(a,c,!0),m=this.clusterProps.length,this.clusterProps.push(t)),i(t,this._map(a,s)))}a[c+4]=g,h.push(o/d,n/d,1/0,g,-1,d),i&&h.push(m)}else{for(let t=0;t<l;t++)h.push(a[c+t]);if(d>1)for(const t of u){const r=t*l;if(!(a[r+2]<=e)){a[r+2]=e;for(let t=0;t<l;t++)h.push(a[r+t])}}}}return h}_getOriginId(t){return t-this.points.length>>5}_getOriginZoom(t){return(t-this.points.length)%32}_map(t,e,r){if(t[e+5]>1){const s=this.clusterProps[t[e+6]];return r?Object.assign({},s):s}const s=this.points[t[e+3]].properties,i=this.options.map(s);return r&&i===s?Object.assign({},i):i}}function b(t,e,r){return{type:"Feature",id:t[e+3],properties:v(t,e,r),geometry:{type:"Point",coordinates:[(s=t[e],360*(s-.5)),_(t[e+1])]}};var s}function v(t,e,r){const s=t[e+5],i=s>=1e4?`${Math.round(s/1e3)}
1k`:s>=1e3?Math.round(s/100)/10+"k":s,o=t[e+6],n=-1===o?{}:Object.assign({},r[o]);return Object.assign(n,{cluster:!0,cluster_id:t[e+3],point_count:s,point_count_abbreviated:i})}function M(t){return t/360+.5}function E(t){const e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function _(t){const e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}class x{static isAdvancedMarkerAvailable(t){return google.maps.marker&&!0===t.getMapCapabilities().isAdvancedMarkersAvailable}static isAdvancedMarker(t){return google.maps.marker&&t instanceof google.maps.marker.AdvancedMarkerElement}static setMap(t,e){this.isAdvancedMarker(t)?t.map=e:t.setMap(e)}static getPosition(t){if(this.isAdvancedMarker(t)){if(t.position){if(t.position instanceof google.maps.LatLng)return t.position;if(t.position.lat&&t.position.lng)return new google.maps.LatLng(t.position.lat,t.position.lng)}return new google.maps.LatLng(null)}return t.getPosition()}static getVisible(t){return!!this.isAdvancedMarker(t)||t.getVisible()}}class A{constructor({markers:t,position:e}){this.markers=t,e&&(e instanceof google.maps.LatLng?this._position=e:this._position=new google.maps.LatLng(e))}get bounds(){if(0===this.markers.length&&!this._position)return;const t=new google.maps.LatLngBounds(this._position,this._position);for(const e of this.markers)t.extend(x.getPosition(e));return t}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter(t=>x.getVisible(t)).length}push(t){this.markers.push(t)}delete(){this.marker&&(x.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}class I{constructor({maxZoom:t=16}){this.maxZoom=t}noop({markers:t}){return O(t)}}const O=t=>t.map(t=>new A({position:x.getPosition(t),markers:[t]}));class C extends I{constructor(t){var{maxZoom:e,radius:r=60}=t,s=function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(s=Object.getOwnPropertySymbols(t);i<s.length;i++)e.indexOf(s[i])<0&&Object.prototype.propertyIsEnumerable.call(t,s[i])&&(r[s[i]]=t[s[i]])}return r}(t,["maxZoom","radius"]);super({maxZoom:e}),this.state={zoom:-1},this.superCluster=new k(Object.assign({maxZoom:this.maxZoom,radius:r},s))}calculate(t){let e=!1;const r={zoom:t.map.getZoom()};if(!l(t.markers,this.markers)){e=!0,this.markers=[...t.markers];const r=this.markers.map(t=>{const e=x.getPosition(t);return{type:"Feature",geometry:{type:"Point",coordinates:[e.lng(),e.lat()]},properties:{marker:t}}});this.superCluster.load(r)}return e||(this.state.zoom<=this.maxZoom||r.zoom<=this.maxZoom)&&(e=!l(this.state,r)),this.state=r,e&&(this.cluster
1s=this.cluster(t)),{clusters:this.clusters,changed:e}}cluster({map:t}){return this.superCluster.getClusters([-180,-90,180,90],Math.round(t.getZoom())).map(t=>this.transformCluster(t))}transformCluster({geometry:{coordinates:[t,e]},properties:r}){if(r.cluster)return new A({markers:this.superCluster.getLeaves(r.cluster_id,1/0).map(t=>t.properties.marker),position:{lat:e,lng:t}});const s=r.marker;return new A({markers:[s],position:x.getPosition(s)})}}class L{constructor(t,e){this.markers={sum:t.length};const r=e.map(t=>t.count),s=r.reduce((t,e)=>t+e,0);this.clusters={count:e.length,markers:{mean:s/e.length,sum:s,min:Math.min(...r),max:Math.max(...r)}}}}class P{render({count:t,position:e},r,s){const i=`<svg fill="${t>Math.max(10,r.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">\n<circle cx="120" cy="120" opacity=".6" r="70" />\n<circle cx="120" cy="120" opacity=".3" r="90" />\n<circle cx="120" cy="120" opacity=".2" r="110" />\n<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${t}</text>\n</svg>`,o=`Cluster of ${t} markers`,n=Number(google.maps.Marker.MAX_ZINDEX)+t;if(x.isAdvancedMarkerAvailable(s)){const t=(new DOMParser).parseFromString(i,"image/svg+xml").documentElement;t.setAttribute("transform","translate(0 25)");const r={map:s,position:e,zIndex:n,title:o,content:t};return new google.maps.marker.AdvancedMarkerElement(r)}const a={position:e,zIndex:n,title:o,icon:{url:`data:image/svg+xml;base64,${btoa(i)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(a)}}class S{constructor(){!function(t,e){for(let r in e.prototype)t.prototype[r]=e.prototype[r]}(S,google.maps.OverlayView)}}var j,T;(T=j||(j={})).CLUSTERING_BEGIN="clusteringbegin",T.CLUSTERING_END="clusteringend",T.CLUSTER_CLICK="click";const Z=(t,e,r)=>{r.fitBounds(e.bounds)};class U extends S{constructor({map:t,markers:e=[],algorithmOptions:r={},algorithm:s=new C(r),renderer:i=new P,onClusterClick:o=Z}){super(),this.markers=[...e],this.clusters=[],this.algorithm=s,this.renderer=i,this.onClusterClick=o,t&&this.setMap(t)}addMarker(t,e){this.markers.includes(t)||(this.markers.push(t),e||this.render())}addMarkers(t,e){t.forEach(t=>{this.addMarker(t,!0)}),e||this.render()}removeMarker(t,e){const r=this.markers.indexOf(t);return-1!==r&&(x.setMap(t,null),this.markers.splice(r,1),e||this.render(),!0)}removeMarkers(t,e){let r=!1;return t.forEach(t=>{r=this.removeMarker(t,!0)||r}),r&&!e&&this.render(),r}clearMarkers(t){this.markers.length=0,t||this.render()}render(){const t=this.getMap();if(t instanceof google.maps.Map&&t.getProjection()){google.maps.event.trigger(this,j.CLUSTERING_BEGIN,this);const{clusters:e,changed:r}=this.algorithm.calculate({markers:this.markers,map:t,mapCanvasProjection:this.getProjection()});if(r||null==r){const t=new Set;for(const s of e)1==s.markers.length&&t.add(s.markers[0]);const r=[];for(const e of this.clusters)null!=e.marker&&(1==e.markers.length?t.has(e.marker)||x.setMap(e.marker,null):r.push(e.marker));this.clusters=e,this.renderClusters(),requestAnimationFrame(()=>r.forEach(t=>x.setMap(t,null)))}google.maps.event.trigger(this,j.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach(t=>x.setMap(t,null)),this.clusters.forEach(t=>t.delete()),this.clusters=[]}renderClusters(){const t=new L(this.markers,this.clusters),e=this.getMap();this.clusters.forEach(r=>{1===r.markers.length?r.marker=r.markers[0]:(r.marker=this.renderer.render(r,t,e),r.markers.forEach(t=>x.setMap(t,null)),this.onClusterClick&&r.marker.addListener("click",t=>{google.maps.event.trigger(this,j.CLUSTER_CLICK,r),this.onClusterClick(t,r,e)})),x.setMap(r.marker,e)})}}export{h as Loader,U as MarkerClusterer};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.