@opengis/gis 0.1.25 → 0.1.27
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/dist/import-file.cjs +3 -3
- package/dist/import-file.js +22 -13
- package/module/gis/card/gis.maps.table/index.yml +3 -0
- package/module/gis/card/gis.metadata.table/index.yml +3 -0
- package/module/gis/card/gis.rasters.table/index.yml +3 -0
- package/module/gis/card/gis.registers.table/index.yml +3 -0
- package/module/gis/card/gis.services.table/index.yml +3 -0
- package/package.json +6 -4
- package/plugin.js +0 -2
- package/server/plugins/vite.js +12 -3
- package/server/routes/gis/index.mjs +3 -0
- package/server/routes/gis/registers/funcs/content.type.js +10 -0
- package/server/routes/gis/registers/funcs/get.info.js +89 -0
- package/server/routes/gis/registers/gis.export.js +149 -0
package/dist/import-file.cjs
CHANGED
|
@@ -798,7 +798,7 @@ uniform ${z} ${N} u_${O};
|
|
|
798
798
|
`),xe=fe.concat(ci.prelude.vertexSource,b.vertexSource,r.vertexSource).join(`
|
|
799
799
|
`);ri(z)||(ge=function(Le){return Le.replace(/\bin\s/g,"varying ").replace("out highp vec4 fragColor;","").replace(/fragColor/g,"gl_FragColor").replace(/texture\(/g,"texture2D(")}(ge),xe=function(Le){return Le.replace(/\bin\s/g,"attribute ").replace(/\bout\s/g,"varying ").replace(/texture\(/g,"texture2D(")}(xe));const _e=z.createShader(z.FRAGMENT_SHADER);if(z.isContextLost())return void(this.failedToCreate=!0);if(z.shaderSource(_e,ge),z.compileShader(_e),!z.getShaderParameter(_e,z.COMPILE_STATUS))throw new Error(`Could not compile fragment shader: ${z.getShaderInfoLog(_e)}`);z.attachShader(this.program,_e);const Ee=z.createShader(z.VERTEX_SHADER);if(z.isContextLost())return void(this.failedToCreate=!0);if(z.shaderSource(Ee,xe),z.compileShader(Ee),!z.getShaderParameter(Ee,z.COMPILE_STATUS))throw new Error(`Could not compile vertex shader: ${z.getShaderInfoLog(Ee)}`);z.attachShader(this.program,Ee),this.attributes={};const Fe={};this.numAttributes=Z.length;for(let Le=0;Le<this.numAttributes;Le++)Z[Le]&&(z.bindAttribLocation(this.program,Le,Z[Le]),this.attributes[Z[Le]]=Le);if(z.linkProgram(this.program),!z.getProgramParameter(this.program,z.LINK_STATUS))throw new Error(`Program failed to link: ${z.getProgramInfoLog(this.program)}`);z.deleteShader(Ee),z.deleteShader(_e);for(let Le=0;Le<me.length;Le++){const Re=me[Le];if(Re&&!Fe[Re]){const De=z.getUniformLocation(this.program,Re);De&&(Fe[Re]=De)}}this.fixedUniforms=l(e,Fe),this.terrainUniforms=((Le,Re)=>({u_depth:new s.bH(Le,Re.u_depth),u_terrain:new s.bH(Le,Re.u_terrain),u_terrain_dim:new s.b8(Le,Re.u_terrain_dim),u_terrain_matrix:new s.bJ(Le,Re.u_terrain_matrix),u_terrain_unpack:new s.bK(Le,Re.u_terrain_unpack),u_terrain_exaggeration:new s.b8(Le,Re.u_terrain_exaggeration)}))(e,Fe),this.projectionUniforms=((Le,Re)=>({u_projection_matrix:new s.bJ(Le,Re.u_projection_matrix),u_projection_tile_mercator_coords:new s.bK(Le,Re.u_projection_tile_mercator_coords),u_projection_clipping_plane:new s.bK(Le,Re.u_projection_clipping_plane),u_projection_transition:new s.b8(Le,Re.u_projection_transition),u_projection_fallback_matrix:new s.bJ(Le,Re.u_projection_fallback_matrix)}))(e,Fe),this.binderUniforms=a?a.getUniforms(e,Fe):[]}draw(e,r,a,l,p,g,b,k,I,z,N,O,Z,J,ne,ie,oe,ue,me){const fe=e.gl;if(this.failedToCreate)return;if(e.program.set(this.program),e.setDepthMode(a),e.setStencilMode(l),e.setColorMode(p),e.setCullFace(g),k){e.activeTexture.set(fe.TEXTURE2),fe.bindTexture(fe.TEXTURE_2D,k.depthTexture),e.activeTexture.set(fe.TEXTURE3),fe.bindTexture(fe.TEXTURE_2D,k.texture);for(const xe in this.terrainUniforms)this.terrainUniforms[xe].set(k[xe])}if(I)for(const xe in I)this.projectionUniforms[Fo[xe]].set(I[xe]);if(b)for(const xe in this.fixedUniforms)this.fixedUniforms[xe].set(b[xe]);ie&&ie.setUniforms(e,this.binderUniforms,J,{zoom:ne});let ge=0;switch(r){case fe.LINES:ge=2;break;case fe.TRIANGLES:ge=3;break;case fe.LINE_STRIP:ge=1}for(const xe of Z.get()){const _e=xe.vaos||(xe.vaos={});(_e[z]||(_e[z]=new bh)).bind(e,this,N,ie?ie.getPaintVertexBuffers():[],O,xe.vertexOffset,oe,ue,me),fe.drawElements(r,xe.primitiveLength*ge,fe.UNSIGNED_SHORT,xe.primitiveOffset*ge*2)}}}function No(u,e,r){const a=1/s.az(r,1,e.transform.tileZoom),l=Math.pow(2,r.tileID.overscaledZ),p=r.tileSize*Math.pow(2,e.transform.tileZoom)/l,g=p*(r.tileID.canonical.x+r.tileID.wrap*l),b=p*r.tileID.canonical.y;return{u_image:0,u_texsize:r.imageAtlasTexture.size,u_scale:[a,u.fromScale,u.toScale],u_fade:u.t,u_pixel_coord_upper:[g>>16,b>>16],u_pixel_coord_lower:[65535&g,65535&b]}}const qo=(u,e,r,a)=>{const l=u.style.light,p=l.properties.get("position"),g=[p.x,p.y,p.z],b=s.bN();l.properties.get("anchor")==="viewport"&&s.bO(b,u.transform.bearingInRadians),s.bP(g,g,b);const k=u.transform.transformLightDirection(g),I=l.properties.get("color");return{u_lightpos:g,u_lightpos_globe:k,u_lightintensity:l.properties.get("intensity"),u_lightcolor:[I.r,I.g,I.b],u_vertical_gradient:+e,u_opacity:r,u_fill_translate:a}},nn=(u,e,r,a,l,p,g)=>s.e(qo(u,e,r,a),No(p,u,g),{u_height_factor:-Math.pow(2,l.overscaledZ)/g.tileSize/8}),dc=(u,e,r,a)=>s.e(No(e,u,r),{u_fill_translate:a}),Ga=(u,e)=>({u_world:u,u_fill_translate:e}),Qs=(u,e,r,a,l)=>s.e(dc(u,e,r,l),{u_world:a}),Ys=(u,e,r,a,l)=>{const p=u.transform;let g,b,k=0;if(r.paint.get("circle-pitch-alignment")==="map"){const I=s.az(e,1,p.zoom);g=!0,b=[I,I],k=I/(s.Z*Math.pow(2,e.tileID.overscaledZ))*2*Math.PI*l}else g=!1,b=p.pixelsToGLUnits;return{u_camera_to_center_distance:p.cameraToCenterDistance,u_scale_with_map:+(r.paint.get("circle-pitch-scale")==="map"),u_pitch_with_map:+g,u_device_pixel_ratio:u.pixelRatio,u_extrude_scale:b,u_globe_extrude_scale:k,u_translate:a}},Sh=u=>({u_pixel_extrude_scale:[1/u.width,1/u.height]}),Uo=u=>({u_viewport_size:[u.width,u.height]}),fc=(u,e=1)=>({u_color:u,u_overlay:0,u_overlay_scale:e}),Gn=(u,e,r,a)=>{const l=s.az(u,1,e)/(s.Z*Math.pow(2,u.tileID.overscaledZ))*2*Math.PI*a;return{u_extrude_scale:s.az(u,1,e),u_intensity:r,u_globe_extrude_scale:l}},mc=(u,e,r,a)=>{const l=s.K();s.bQ(l,0,u.width,u.height,0,0,1);const p=u.context.gl;return{u_matrix:l,u_world:[p.drawingBufferWidth,p.drawingBufferHeight],u_image:r,u_color_ramp:a,u_opacity:e.paint.get("heatmap-opacity")}},gc=(u,e,r)=>{const a=r.paint.get("hillshade-accent-color");let l;switch(r.paint.get("hillshade-method")){case"basic":l=4;break;case"combined":l=1;break;case"igor":l=2;break;case"multidirectional":l=3;break;default:l=0}const p=r.getIlluminationProperties();for(let g=0;g<p.directionRadians.length;g++)r.paint.get("hillshade-illumination-anchor")==="viewport"&&(p.directionRadians[g]+=u.transform.bearingInRadians);return{u_image:0,u_latrange:yc(0,e.tileID),u_exaggeration:r.paint.get("hillshade-exaggeration"),u_altitudes:p.altitudeRadians,u_azimuths:p.directionRadians,u_accent:a,u_method:l,u_highlights:p.highlightColor,u_shadows:p.shadowColor}},Ah=(u,e)=>{const r=e.stride,a=s.K();return s.bQ(a,0,s.Z,-8192,0,0,1),s.L(a,a,[0,-8192,0]),{u_matrix:a,u_image:1,u_dimension:[r,r],u_zoom:u.overscaledZ,u_unpack:e.getUnpackVector()}};function yc(u,e){const r=Math.pow(2,e.canonical.z),a=e.canonical.y;return[new s.$(0,a/r).toLngLat().lat,new s.$(0,(a+1)/r).toLngLat().lat]}const $s=(u,e,r,a)=>{const l=u.transform;return{u_translation:kn(u,e,r),u_ratio:a/s.az(e,1,l.zoom),u_device_pixel_ratio:u.pixelRatio,u_units_to_pixels:[1/l.pixelsToGLUnits[0],1/l.pixelsToGLUnits[1]]}},_c=(u,e,r,a,l)=>s.e($s(u,e,r,a),{u_image:0,u_image_height:l}),vc=(u,e,r,a,l)=>{const p=u.transform,g=Ja(e,p);return{u_translation:kn(u,e,r),u_texsize:e.imageAtlasTexture.size,u_ratio:a/s.az(e,1,p.zoom),u_device_pixel_ratio:u.pixelRatio,u_image:0,u_scale:[g,l.fromScale,l.toScale],u_fade:l.t,u_units_to_pixels:[1/p.pixelsToGLUnits[0],1/p.pixelsToGLUnits[1]]}},xc=(u,e,r,a,l,p)=>{const g=u.lineAtlas,b=Ja(e,u.transform),k=r.layout.get("line-cap")==="round",I=g.getDash(l.from,k),z=g.getDash(l.to,k),N=I.width*p.fromScale,O=z.width*p.toScale;return s.e($s(u,e,r,a),{u_patternscale_a:[b/N,-I.height/2],u_patternscale_b:[b/O,-z.height/2],u_sdfgamma:g.width/(256*Math.min(N,O)*u.pixelRatio)/2,u_image:0,u_tex_y_a:I.y,u_tex_y_b:z.y,u_mix:p.t})};function Ja(u,e){return 1/s.az(u,1,e.tileZoom)}function kn(u,e,r){return s.aA(u.transform,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}const bc=(u,e,r,a,l)=>{return{u_tl_parent:u,u_scale_parent:e,u_buffer_scale:1,u_fade_t:r.mix,u_opacity:r.opacity*a.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:a.paint.get("raster-brightness-min"),u_brightness_high:a.paint.get("raster-brightness-max"),u_saturation_factor:(g=a.paint.get("raster-saturation"),g>0?1-1/(1.001-g):-g),u_contrast_factor:(p=a.paint.get("raster-contrast"),p>0?1/(1-p):1+p),u_spin_weights:wc(a.paint.get("raster-hue-rotate")),u_coords_top:[l[0].x,l[0].y,l[1].x,l[1].y],u_coords_bottom:[l[3].x,l[3].y,l[2].x,l[2].y]};var p,g};function wc(u){u*=Math.PI/180;const e=Math.sin(u),r=Math.cos(u);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}const ys=(u,e,r,a,l,p,g,b,k,I,z,N,O)=>{const Z=g.transform;return{u_is_size_zoom_constant:+(u==="constant"||u==="source"),u_is_size_feature_constant:+(u==="constant"||u==="camera"),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:Z.cameraToCenterDistance,u_pitch:Z.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:Z.width/Z.height,u_fade_change:g.options.fadeDuration?g.symbolFadeChange:1,u_label_plane_matrix:b,u_coord_matrix:k,u_is_text:+z,u_pitch_with_map:+a,u_is_along_line:l,u_is_variable_anchor:p,u_texsize:N,u_texture:0,u_translation:I,u_pitched_scale:O}},Sc=(u,e,r,a,l,p,g,b,k,I,z,N,O,Z)=>{const J=g.transform;return s.e(ys(u,e,r,a,l,p,g,b,k,I,z,N,Z),{u_gamma_scale:a?Math.cos(J.pitch*Math.PI/180)*J.cameraToCenterDistance:1,u_device_pixel_ratio:g.pixelRatio,u_is_halo:1})},jo=(u,e,r,a,l,p,g,b,k,I,z,N,O)=>s.e(Sc(u,e,r,a,l,p,g,b,k,I,!0,z,0,O),{u_texsize_icon:N,u_texture_icon:1}),kh=(u,e)=>({u_opacity:u,u_color:e}),Th=(u,e,r,a,l)=>s.e(function(p,g,b,k){const I=b.imageManager.getPattern(p.from.toString()),z=b.imageManager.getPattern(p.to.toString()),{width:N,height:O}=b.imageManager.getPixelSize(),Z=Math.pow(2,k.tileID.overscaledZ),J=k.tileSize*Math.pow(2,b.transform.tileZoom)/Z,ne=J*(k.tileID.canonical.x+k.tileID.wrap*Z),ie=J*k.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:I.tl,u_pattern_br_a:I.br,u_pattern_tl_b:z.tl,u_pattern_br_b:z.br,u_texsize:[N,O],u_mix:g.t,u_pattern_size_a:I.displaySize,u_pattern_size_b:z.displaySize,u_scale_a:g.fromScale,u_scale_b:g.toScale,u_tile_units_to_pixels:1/s.az(k,1,b.transform.tileZoom),u_pixel_coord_upper:[ne>>16,ie>>16],u_pixel_coord_lower:[65535&ne,65535&ie]}}(r,l,e,a),{u_opacity:u}),Xa=(u,e)=>{},Ac={fillExtrusion:(u,e)=>({u_lightpos:new s.bL(u,e.u_lightpos),u_lightpos_globe:new s.bL(u,e.u_lightpos_globe),u_lightintensity:new s.b8(u,e.u_lightintensity),u_lightcolor:new s.bL(u,e.u_lightcolor),u_vertical_gradient:new s.b8(u,e.u_vertical_gradient),u_opacity:new s.b8(u,e.u_opacity),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillExtrusionPattern:(u,e)=>({u_lightpos:new s.bL(u,e.u_lightpos),u_lightpos_globe:new s.bL(u,e.u_lightpos_globe),u_lightintensity:new s.b8(u,e.u_lightintensity),u_lightcolor:new s.bL(u,e.u_lightcolor),u_vertical_gradient:new s.b8(u,e.u_vertical_gradient),u_height_factor:new s.b8(u,e.u_height_factor),u_opacity:new s.b8(u,e.u_opacity),u_fill_translate:new s.bM(u,e.u_fill_translate),u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade)}),fill:(u,e)=>({u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillPattern:(u,e)=>({u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillOutline:(u,e)=>({u_world:new s.bM(u,e.u_world),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillOutlinePattern:(u,e)=>({u_world:new s.bM(u,e.u_world),u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade),u_fill_translate:new s.bM(u,e.u_fill_translate)}),circle:(u,e)=>({u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_scale_with_map:new s.bH(u,e.u_scale_with_map),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_extrude_scale:new s.bM(u,e.u_extrude_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_globe_extrude_scale:new s.b8(u,e.u_globe_extrude_scale),u_translate:new s.bM(u,e.u_translate)}),collisionBox:(u,e)=>({u_pixel_extrude_scale:new s.bM(u,e.u_pixel_extrude_scale)}),collisionCircle:(u,e)=>({u_viewport_size:new s.bM(u,e.u_viewport_size)}),debug:(u,e)=>({u_color:new s.bI(u,e.u_color),u_overlay:new s.bH(u,e.u_overlay),u_overlay_scale:new s.b8(u,e.u_overlay_scale)}),depth:Xa,clippingMask:Xa,heatmap:(u,e)=>({u_extrude_scale:new s.b8(u,e.u_extrude_scale),u_intensity:new s.b8(u,e.u_intensity),u_globe_extrude_scale:new s.b8(u,e.u_globe_extrude_scale)}),heatmapTexture:(u,e)=>({u_matrix:new s.bJ(u,e.u_matrix),u_world:new s.bM(u,e.u_world),u_image:new s.bH(u,e.u_image),u_color_ramp:new s.bH(u,e.u_color_ramp),u_opacity:new s.b8(u,e.u_opacity)}),hillshade:(u,e)=>({u_image:new s.bH(u,e.u_image),u_latrange:new s.bM(u,e.u_latrange),u_exaggeration:new s.b8(u,e.u_exaggeration),u_altitudes:new s.bS(u,e.u_altitudes),u_azimuths:new s.bS(u,e.u_azimuths),u_accent:new s.bI(u,e.u_accent),u_method:new s.bH(u,e.u_method),u_shadows:new s.bR(u,e.u_shadows),u_highlights:new s.bR(u,e.u_highlights)}),hillshadePrepare:(u,e)=>({u_matrix:new s.bJ(u,e.u_matrix),u_image:new s.bH(u,e.u_image),u_dimension:new s.bM(u,e.u_dimension),u_zoom:new s.b8(u,e.u_zoom),u_unpack:new s.bK(u,e.u_unpack)}),line:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels)}),lineGradient:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_image:new s.bH(u,e.u_image),u_image_height:new s.b8(u,e.u_image_height)}),linePattern:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_texsize:new s.bM(u,e.u_texsize),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_image:new s.bH(u,e.u_image),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade)}),lineSDF:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_patternscale_a:new s.bM(u,e.u_patternscale_a),u_patternscale_b:new s.bM(u,e.u_patternscale_b),u_sdfgamma:new s.b8(u,e.u_sdfgamma),u_image:new s.bH(u,e.u_image),u_tex_y_a:new s.b8(u,e.u_tex_y_a),u_tex_y_b:new s.b8(u,e.u_tex_y_b),u_mix:new s.b8(u,e.u_mix)}),raster:(u,e)=>({u_tl_parent:new s.bM(u,e.u_tl_parent),u_scale_parent:new s.b8(u,e.u_scale_parent),u_buffer_scale:new s.b8(u,e.u_buffer_scale),u_fade_t:new s.b8(u,e.u_fade_t),u_opacity:new s.b8(u,e.u_opacity),u_image0:new s.bH(u,e.u_image0),u_image1:new s.bH(u,e.u_image1),u_brightness_low:new s.b8(u,e.u_brightness_low),u_brightness_high:new s.b8(u,e.u_brightness_high),u_saturation_factor:new s.b8(u,e.u_saturation_factor),u_contrast_factor:new s.b8(u,e.u_contrast_factor),u_spin_weights:new s.bL(u,e.u_spin_weights),u_coords_top:new s.bK(u,e.u_coords_top),u_coords_bottom:new s.bK(u,e.u_coords_bottom)}),symbolIcon:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texture:new s.bH(u,e.u_texture),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),symbolSDF:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texture:new s.bH(u,e.u_texture),u_gamma_scale:new s.b8(u,e.u_gamma_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_is_halo:new s.bH(u,e.u_is_halo),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),symbolTextAndIcon:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texsize_icon:new s.bM(u,e.u_texsize_icon),u_texture:new s.bH(u,e.u_texture),u_texture_icon:new s.bH(u,e.u_texture_icon),u_gamma_scale:new s.b8(u,e.u_gamma_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_is_halo:new s.bH(u,e.u_is_halo),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),background:(u,e)=>({u_opacity:new s.b8(u,e.u_opacity),u_color:new s.bI(u,e.u_color)}),backgroundPattern:(u,e)=>({u_opacity:new s.b8(u,e.u_opacity),u_image:new s.bH(u,e.u_image),u_pattern_tl_a:new s.bM(u,e.u_pattern_tl_a),u_pattern_br_a:new s.bM(u,e.u_pattern_br_a),u_pattern_tl_b:new s.bM(u,e.u_pattern_tl_b),u_pattern_br_b:new s.bM(u,e.u_pattern_br_b),u_texsize:new s.bM(u,e.u_texsize),u_mix:new s.b8(u,e.u_mix),u_pattern_size_a:new s.bM(u,e.u_pattern_size_a),u_pattern_size_b:new s.bM(u,e.u_pattern_size_b),u_scale_a:new s.b8(u,e.u_scale_a),u_scale_b:new s.b8(u,e.u_scale_b),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_tile_units_to_pixels:new s.b8(u,e.u_tile_units_to_pixels)}),terrain:(u,e)=>({u_texture:new s.bH(u,e.u_texture),u_ele_delta:new s.b8(u,e.u_ele_delta),u_fog_matrix:new s.bJ(u,e.u_fog_matrix),u_fog_color:new s.bI(u,e.u_fog_color),u_fog_ground_blend:new s.b8(u,e.u_fog_ground_blend),u_fog_ground_blend_opacity:new s.b8(u,e.u_fog_ground_blend_opacity),u_horizon_color:new s.bI(u,e.u_horizon_color),u_horizon_fog_blend:new s.b8(u,e.u_horizon_fog_blend),u_is_globe_mode:new s.b8(u,e.u_is_globe_mode)}),terrainDepth:(u,e)=>({u_ele_delta:new s.b8(u,e.u_ele_delta)}),terrainCoords:(u,e)=>({u_texture:new s.bH(u,e.u_texture),u_terrain_coords_id:new s.b8(u,e.u_terrain_coords_id),u_ele_delta:new s.b8(u,e.u_ele_delta)}),projectionErrorMeasurement:(u,e)=>({u_input:new s.b8(u,e.u_input),u_output_expected:new s.b8(u,e.u_output_expected)}),atmosphere:(u,e)=>({u_sun_pos:new s.bL(u,e.u_sun_pos),u_atmosphere_blend:new s.b8(u,e.u_atmosphere_blend),u_globe_position:new s.bL(u,e.u_globe_position),u_globe_radius:new s.b8(u,e.u_globe_radius),u_inv_proj_matrix:new s.bJ(u,e.u_inv_proj_matrix)}),sky:(u,e)=>({u_sky_color:new s.bI(u,e.u_sky_color),u_horizon_color:new s.bI(u,e.u_horizon_color),u_horizon:new s.bM(u,e.u_horizon),u_horizon_normal:new s.bM(u,e.u_horizon_normal),u_sky_horizon_blend:new s.b8(u,e.u_sky_horizon_blend),u_sky_blend:new s.b8(u,e.u_sky_blend)})};class kc{constructor(e,r,a){this.context=e;const l=e.gl;this.buffer=l.createBuffer(),this.dynamicDraw=!!a,this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),l.bufferData(l.ELEMENT_ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?l.DYNAMIC_DRAW:l.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(e){const r=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),r.bufferSubData(r.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const Qa={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class Tc{constructor(e,r,a,l){this.length=r.length,this.attributes=a,this.itemSize=r.bytesPerElement,this.dynamicDraw=l,this.context=e;const p=e.gl;this.buffer=p.createBuffer(),e.bindVertexBuffer.set(this.buffer),p.bufferData(p.ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?p.DYNAMIC_DRAW:p.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(e){if(e.length!==this.length)throw new Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`);const r=this.context.gl;this.bind(),r.bufferSubData(r.ARRAY_BUFFER,0,e.arrayBuffer)}enableAttributes(e,r){for(let a=0;a<this.attributes.length;a++){const l=r.attributes[this.attributes[a].name];l!==void 0&&e.enableVertexAttribArray(l)}}setVertexAttribPointers(e,r,a){for(let l=0;l<this.attributes.length;l++){const p=this.attributes[l],g=r.attributes[p.name];g!==void 0&&e.vertexAttribPointer(g,p.components,e[Qa[p.type]],!1,this.itemSize,p.offset+this.itemSize*(a||0))}}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}class qt{constructor(e){this.gl=e.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1}get(){return this.current}set(e){}getDefault(){return this.default}setDefault(){this.set(this.default)}}class hn extends qt{getDefault(){return s.b7.transparent}set(e){const r=this.current;(e.r!==r.r||e.g!==r.g||e.b!==r.b||e.a!==r.a||this.dirty)&&(this.gl.clearColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}}class Ya extends qt{getDefault(){return 1}set(e){(e!==this.current||this.dirty)&&(this.gl.clearDepth(e),this.current=e,this.dirty=!1)}}class $a extends qt{getDefault(){return 0}set(e){(e!==this.current||this.dirty)&&(this.gl.clearStencil(e),this.current=e,this.dirty=!1)}}class el extends qt{getDefault(){return[!0,!0,!0,!0]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3]||this.dirty)&&(this.gl.colorMask(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}}class Cc extends qt{getDefault(){return!0}set(e){(e!==this.current||this.dirty)&&(this.gl.depthMask(e),this.current=e,this.dirty=!1)}}class tl extends qt{getDefault(){return 255}set(e){(e!==this.current||this.dirty)&&(this.gl.stencilMask(e),this.current=e,this.dirty=!1)}}class Jn extends qt{getDefault(){return{func:this.gl.ALWAYS,ref:0,mask:255}}set(e){const r=this.current;(e.func!==r.func||e.ref!==r.ref||e.mask!==r.mask||this.dirty)&&(this.gl.stencilFunc(e.func,e.ref,e.mask),this.current=e,this.dirty=!1)}}class rl extends qt{getDefault(){const e=this.gl;return[e.KEEP,e.KEEP,e.KEEP]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||this.dirty)&&(this.gl.stencilOp(e[0],e[1],e[2]),this.current=e,this.dirty=!1)}}class Ch extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.STENCIL_TEST):r.disable(r.STENCIL_TEST),this.current=e,this.dirty=!1}}class Eh extends qt{getDefault(){return[0,1]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||this.dirty)&&(this.gl.depthRange(e[0],e[1]),this.current=e,this.dirty=!1)}}class Ph extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.DEPTH_TEST):r.disable(r.DEPTH_TEST),this.current=e,this.dirty=!1}}class Ih extends qt{getDefault(){return this.gl.LESS}set(e){(e!==this.current||this.dirty)&&(this.gl.depthFunc(e),this.current=e,this.dirty=!1)}}class Ec extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.BLEND):r.disable(r.BLEND),this.current=e,this.dirty=!1}}class Mh extends qt{getDefault(){const e=this.gl;return[e.ONE,e.ZERO]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||this.dirty)&&(this.gl.blendFunc(e[0],e[1]),this.current=e,this.dirty=!1)}}class Pc extends qt{getDefault(){return s.b7.transparent}set(e){const r=this.current;(e.r!==r.r||e.g!==r.g||e.b!==r.b||e.a!==r.a||this.dirty)&&(this.gl.blendColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}}class Ho extends qt{getDefault(){return this.gl.FUNC_ADD}set(e){(e!==this.current||this.dirty)&&(this.gl.blendEquation(e),this.current=e,this.dirty=!1)}}class Wo extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.CULL_FACE):r.disable(r.CULL_FACE),this.current=e,this.dirty=!1}}class Zo extends qt{getDefault(){return this.gl.BACK}set(e){(e!==this.current||this.dirty)&&(this.gl.cullFace(e),this.current=e,this.dirty=!1)}}class il extends qt{getDefault(){return this.gl.CCW}set(e){(e!==this.current||this.dirty)&&(this.gl.frontFace(e),this.current=e,this.dirty=!1)}}class Xn extends qt{getDefault(){return null}set(e){(e!==this.current||this.dirty)&&(this.gl.useProgram(e),this.current=e,this.dirty=!1)}}class Ko extends qt{getDefault(){return this.gl.TEXTURE0}set(e){(e!==this.current||this.dirty)&&(this.gl.activeTexture(e),this.current=e,this.dirty=!1)}}class _s extends qt{getDefault(){const e=this.gl;return[0,0,e.drawingBufferWidth,e.drawingBufferHeight]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3]||this.dirty)&&(this.gl.viewport(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}}class zi extends qt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindFramebuffer(r.FRAMEBUFFER,e),this.current=e,this.dirty=!1}}class Ic extends qt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindRenderbuffer(r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}class Mc extends qt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindTexture(r.TEXTURE_2D,e),this.current=e,this.dirty=!1}}class nl extends qt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindBuffer(r.ARRAY_BUFFER,e),this.current=e,this.dirty=!1}}class Qn extends qt{getDefault(){return null}set(e){const r=this.gl;r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e),this.current=e,this.dirty=!1}}class Go extends qt{getDefault(){return null}set(e){var r;if(e===this.current&&!this.dirty)return;const a=this.gl;ri(a)?a.bindVertexArray(e):(r=a.getExtension("OES_vertex_array_object"))===null||r===void 0||r.bindVertexArrayOES(e),this.current=e,this.dirty=!1}}class Jo extends qt{getDefault(){return 4}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_ALIGNMENT,e),this.current=e,this.dirty=!1}}class eo extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e),this.current=e,this.dirty=!1}}class Xo extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,e),this.current=e,this.dirty=!1}}class Qo extends qt{constructor(e,r){super(e),this.context=e,this.parent=r}getDefault(){return null}}class vs extends Qo{setDirty(){this.dirty=!0}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),this.current=e,this.dirty=!1}}class xs extends Qo{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}class Lc extends Qo{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}const Yo="Framebuffer is not complete";class Lt{constructor(e,r,a,l,p){this.context=e,this.width=r,this.height=a;const g=e.gl,b=this.framebuffer=g.createFramebuffer();if(this.colorAttachment=new vs(e,b),l)this.depthAttachment=p?new Lc(e,b):new xs(e,b);else if(p)throw new Error("Stencil cannot be set without depth");if(g.checkFramebufferStatus(g.FRAMEBUFFER)!==g.FRAMEBUFFER_COMPLETE)throw new Error(Yo)}destroy(){const e=this.context.gl,r=this.colorAttachment.get();if(r&&e.deleteTexture(r),this.depthAttachment){const a=this.depthAttachment.get();a&&e.deleteRenderbuffer(a)}e.deleteFramebuffer(this.framebuffer)}}class $o{constructor(e){var r,a;if(this.gl=e,this.clearColor=new hn(this),this.clearDepth=new Ya(this),this.clearStencil=new $a(this),this.colorMask=new el(this),this.depthMask=new Cc(this),this.stencilMask=new tl(this),this.stencilFunc=new Jn(this),this.stencilOp=new rl(this),this.stencilTest=new Ch(this),this.depthRange=new Eh(this),this.depthTest=new Ph(this),this.depthFunc=new Ih(this),this.blend=new Ec(this),this.blendFunc=new Mh(this),this.blendColor=new Pc(this),this.blendEquation=new Ho(this),this.cullFace=new Wo(this),this.cullFaceSide=new Zo(this),this.frontFace=new il(this),this.program=new Xn(this),this.activeTexture=new Ko(this),this.viewport=new _s(this),this.bindFramebuffer=new zi(this),this.bindRenderbuffer=new Ic(this),this.bindTexture=new Mc(this),this.bindVertexBuffer=new nl(this),this.bindElementBuffer=new Qn(this),this.bindVertexArray=new Go(this),this.pixelStoreUnpack=new Jo(this),this.pixelStoreUnpackPremultiplyAlpha=new eo(this),this.pixelStoreUnpackFlipY=new Xo(this),this.extTextureFilterAnisotropic=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=e.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),ri(e)){this.HALF_FLOAT=e.HALF_FLOAT;const l=e.getExtension("EXT_color_buffer_half_float");this.RGBA16F=(r=e.RGBA16F)!==null&&r!==void 0?r:l==null?void 0:l.RGBA16F_EXT,this.RGB16F=(a=e.RGB16F)!==null&&a!==void 0?a:l==null?void 0:l.RGB16F_EXT,e.getExtension("EXT_color_buffer_float")}else{e.getExtension("EXT_color_buffer_half_float"),e.getExtension("OES_texture_half_float_linear");const l=e.getExtension("OES_texture_half_float");this.HALF_FLOAT=l==null?void 0:l.HALF_FLOAT_OES}}setDefault(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()}setDirty(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.bindVertexArray.dirty=!0,this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0}createIndexBuffer(e,r){return new kc(this,e,r)}createVertexBuffer(e,r,a){return new Tc(this,e,r,a)}createRenderbuffer(e,r,a){const l=this.gl,p=l.createRenderbuffer();return this.bindRenderbuffer.set(p),l.renderbufferStorage(l.RENDERBUFFER,e,r,a),this.bindRenderbuffer.set(null),p}createFramebuffer(e,r,a,l){return new Lt(this,e,r,a,l)}clear({color:e,depth:r,stencil:a}){const l=this.gl;let p=0;e&&(p|=l.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),r!==void 0&&(p|=l.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(r),this.depthMask.set(!0)),a!==void 0&&(p|=l.STENCIL_BUFFER_BIT,this.clearStencil.set(a),this.stencilMask.set(255)),l.clear(p)}setCullFace(e){e.enable===!1?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(e.mode),this.frontFace.set(e.frontFace))}setDepthMode(e){e.func!==this.gl.ALWAYS||e.mask?(this.depthTest.set(!0),this.depthFunc.set(e.func),this.depthMask.set(e.mask),this.depthRange.set(e.range)):this.depthTest.set(!1)}setStencilMode(e){e.test.func!==this.gl.ALWAYS||e.mask?(this.stencilTest.set(!0),this.stencilMask.set(e.mask),this.stencilOp.set([e.fail,e.depthFail,e.pass]),this.stencilFunc.set({func:e.test.func,ref:e.ref,mask:e.test.mask})):this.stencilTest.set(!1)}setColorMode(e){s.bE(e.blendFunction,Jt.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask)}createVertexArray(){var e;return ri(this.gl)?this.gl.createVertexArray():(e=this.gl.getExtension("OES_vertex_array_object"))===null||e===void 0?void 0:e.createVertexArrayOES()}deleteVertexArray(e){var r;return ri(this.gl)?this.gl.deleteVertexArray(e):(r=this.gl.getExtension("OES_vertex_array_object"))===null||r===void 0?void 0:r.deleteVertexArrayOES(e)}unbindVAO(){this.bindVertexArray.set(null)}}let ea;function sl(u,e,r,a,l){const p=u.context,g=u.transform,b=p.gl,k=u.useProgram("collisionBox"),I=[];let z=0,N=0;for(let oe=0;oe<a.length;oe++){const ue=a[oe],me=e.getTile(ue).getBucket(r);if(!me)continue;const fe=l?me.textCollisionBox:me.iconCollisionBox,ge=me.collisionCircleArray;ge.length>0&&(I.push({circleArray:ge,circleOffset:N,coord:ue}),z+=ge.length/4,N=z),fe&&k.draw(p,b.LINES,wt.disabled,Ct.disabled,u.colorModeForRenderPass(),Ft.disabled,Sh(u.transform),u.style.map.terrain&&u.style.map.terrain.getTerrainData(ue),g.getProjectionData({overscaledTileID:ue,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),r.id,fe.layoutVertexBuffer,fe.indexBuffer,fe.segments,null,u.transform.zoom,null,null,fe.collisionVertexBuffer)}if(!l||!I.length)return;const O=u.useProgram("collisionCircle"),Z=new s.bT;Z.resize(4*z),Z._trim();let J=0;for(const oe of I)for(let ue=0;ue<oe.circleArray.length/4;ue++){const me=4*ue,fe=oe.circleArray[me+0],ge=oe.circleArray[me+1],xe=oe.circleArray[me+2],_e=oe.circleArray[me+3];Z.emplace(J++,fe,ge,xe,_e,0),Z.emplace(J++,fe,ge,xe,_e,1),Z.emplace(J++,fe,ge,xe,_e,2),Z.emplace(J++,fe,ge,xe,_e,3)}(!ea||ea.length<2*z)&&(ea=function(oe){const ue=2*oe,me=new s.bV;me.resize(ue),me._trim();for(let fe=0;fe<ue;fe++){const ge=6*fe;me.uint16[ge+0]=4*fe+0,me.uint16[ge+1]=4*fe+1,me.uint16[ge+2]=4*fe+2,me.uint16[ge+3]=4*fe+2,me.uint16[ge+4]=4*fe+3,me.uint16[ge+5]=4*fe+0}return me}(z));const ne=p.createIndexBuffer(ea,!0),ie=p.createVertexBuffer(Z,s.bU.members,!0);for(const oe of I){const ue=Uo(u.transform);O.draw(p,b.TRIANGLES,wt.disabled,Ct.disabled,u.colorModeForRenderPass(),Ft.disabled,ue,u.style.map.terrain&&u.style.map.terrain.getTerrainData(oe.coord),null,r.id,ie,ne,s.aJ.simpleSegment(0,2*oe.circleOffset,oe.circleArray.length,oe.circleArray.length/2),null,u.transform.zoom,null,null,null)}ie.destroy(),ne.destroy()}const to=s.ad(new Float32Array(16));function Lh(u,e,r,a,l,p){const{horizontalAlign:g,verticalAlign:b}=s.aE(u);return new s.P((-(g-.5)*e/l+a[0])*p,(-(b-.5)*r/l+a[1])*p)}function Rh(u,e,r,a,l,p){const g=e.tileAnchorPoint.add(new s.P(e.translation[0],e.translation[1]));if(e.pitchWithMap){let b=a.mult(p);r||(b=b.rotate(-l));const k=g.add(b);return ze(k.x,k.y,e.pitchedLabelPlaneMatrix,e.getElevation).point}if(r){const b=vr(e.tileAnchorPoint.x+1,e.tileAnchorPoint.y,e).point.sub(u),k=Math.atan(b.y/b.x)+(b.x<0?Math.PI:0);return u.add(a.rotate(k))}return u.add(a)}function Rc(u,e,r,a,l,p,g,b,k,I,z,N){const O=u.text.placedSymbolArray,Z=u.text.dynamicLayoutVertexArray,J=u.icon.dynamicLayoutVertexArray,ne={};Z.clear();for(let ie=0;ie<O.length;ie++){const oe=O.get(ie),ue=oe.hidden||!oe.crossTileID||u.allowVerticalPlacement&&!oe.placedOrientation?null:a[oe.crossTileID];if(ue){const me=new s.P(oe.anchorX,oe.anchorY),fe={getElevation:N,width:l.width,height:l.height,pitchedLabelPlaneMatrix:p,pitchWithMap:r,transform:l,tileAnchorPoint:me,translation:I,unwrappedTileID:z},ge=r?Tt(me.x,me.y,fe):vr(me.x,me.y,fe),xe=Kt(l.cameraToCenterDistance,ge.signedDistanceFromCamera);let _e=s.am(u.textSizeData,b,oe)*xe/s.ay;r&&(_e*=u.tilePixelRatio/g);const{width:Ee,height:Fe,anchor:Le,textOffset:Re,textBoxScale:De}=ue,Ye=Lh(Le,Ee,Fe,Re,De,_e),Qe=l.getPitchedTextCorrection(me.x+I[0],me.y+I[1],z),We=Rh(ge.point,fe,e,Ye,-l.bearingInRadians,Qe),ot=u.allowVerticalPlacement&&oe.placedOrientation===s.al.vertical?Math.PI/2:0;for(let Et=0;Et<oe.numGlyphs;Et++)s.as(Z,We,ot);k&&oe.associatedIconIndex>=0&&(ne[oe.associatedIconIndex]={shiftedAnchor:We,angle:ot})}else cn(oe.numGlyphs,Z)}if(k){J.clear();const ie=u.icon.placedSymbolArray;for(let oe=0;oe<ie.length;oe++){const ue=ie.get(oe);if(ue.hidden)cn(ue.numGlyphs,J);else{const me=ne[oe];if(me)for(let fe=0;fe<ue.numGlyphs;fe++)s.as(J,me.shiftedAnchor,me.angle);else cn(ue.numGlyphs,J)}}u.icon.dynamicLayoutVertexBuffer.updateData(J)}u.text.dynamicLayoutVertexBuffer.updateData(Z)}function Dh(u,e,r){return r.iconsInText&&e?"symbolTextAndIcon":u?"symbolSDF":"symbolIcon"}function ta(u,e,r,a,l,p,g,b,k,I,z,N,O){const Z=u.context,J=Z.gl,ne=u.transform,ie=b==="map",oe=k==="map",ue=b!=="viewport"&&r.layout.get("symbol-placement")!=="point",me=ie&&!oe&&!ue,fe=!r.layout.get("symbol-sort-key").isConstant();let ge=!1;const xe=u.getDepthModeForSublayer(0,wt.ReadOnly),_e=r._unevaluatedLayout.hasValue("text-variable-anchor")||r._unevaluatedLayout.hasValue("text-variable-anchor-offset"),Ee=[],Fe=ne.getCircleRadiusCorrection();for(const Le of a){const Re=e.getTile(Le),De=Re.getBucket(r);if(!De)continue;const Ye=l?De.text:De.icon;if(!Ye||!Ye.segments.get().length||!Ye.hasVisibleVertices)continue;const Qe=Ye.programConfigurations.get(r.id),We=l||De.sdfIcons,ot=l?De.textSizeData:De.iconSizeData,Et=oe||ne.pitch!==0,Ot=u.useProgram(Dh(We,l,De),Qe),pr=s.ak(ot,ne.zoom),Qt=u.style.map.terrain&&u.style.map.terrain.getTerrainData(Le);let dr,fr,tr,Ht,Br=[0,0],Ur=null;if(l)fr=Re.glyphAtlasTexture,tr=J.LINEAR,dr=Re.glyphAtlasTexture.size,De.iconsInText&&(Br=Re.imageAtlasTexture.size,Ur=Re.imageAtlasTexture,Ht=Et||u.options.rotating||u.options.zooming||ot.kind==="composite"||ot.kind==="camera"?J.LINEAR:J.NEAREST);else{const Ir=r.layout.get("icon-size").constantOr(0)!==1||De.iconsNeedLinear;fr=Re.imageAtlasTexture,tr=We||u.options.rotating||u.options.zooming||Ir||Et?J.LINEAR:J.NEAREST,dr=Re.imageAtlasTexture.size}const Qr=s.az(Re,1,u.transform.zoom),Wt=ht(ie,u.transform,Qr),Cn=s.K();s.an(Cn,Wt);const an=St(oe,ie,u.transform,Qr),En=s.aA(ne,Re,p,g),es=ne.getProjectionData({overscaledTileID:Le,applyGlobeMatrix:!O,applyTerrainMatrix:!0}),yo=_e&&De.hasTextData(),Pn=r.layout.get("icon-text-fit")!=="none"&&yo&&De.hasIconData();if(ue){const Ir=u.style.map.terrain?(di,sr)=>u.style.map.terrain.getElevation(Le,di,sr):null,Mr=r.layout.get("text-rotation-alignment")==="map";jt(De,u,l,Wt,Cn,oe,I,Mr,Le.toUnwrapped(),ne.width,ne.height,En,Ir)}const ts=l&&_e||Pn,Ti=ue||ts?to:oe?Wt:u.transform.clipSpaceToPixelsMatrix,In=We&&r.paint.get(l?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let dn;dn=We?De.iconsInText?jo(ot.kind,pr,me,oe,ue,ts,u,Ti,an,En,dr,Br,Fe):Sc(ot.kind,pr,me,oe,ue,ts,u,Ti,an,En,l,dr,0,Fe):ys(ot.kind,pr,me,oe,ue,ts,u,Ti,an,En,l,dr,Fe);const Mn={program:Ot,buffers:Ye,uniformValues:dn,projectionData:es,atlasTexture:fr,atlasTextureIcon:Ur,atlasInterpolation:tr,atlasInterpolationIcon:Ht,isSDF:We,hasHalo:In};if(fe&&De.canOverlap){ge=!0;const Ir=Ye.segments.get();for(const Mr of Ir)Ee.push({segments:new s.aJ([Mr]),sortKey:Mr.sortKey,state:Mn,terrainData:Qt})}else Ee.push({segments:Ye.segments,sortKey:0,state:Mn,terrainData:Qt})}ge&&Ee.sort((Le,Re)=>Le.sortKey-Re.sortKey);for(const Le of Ee){const Re=Le.state;if(Z.activeTexture.set(J.TEXTURE0),Re.atlasTexture.bind(Re.atlasInterpolation,J.CLAMP_TO_EDGE),Re.atlasTextureIcon&&(Z.activeTexture.set(J.TEXTURE1),Re.atlasTextureIcon&&Re.atlasTextureIcon.bind(Re.atlasInterpolationIcon,J.CLAMP_TO_EDGE)),Re.isSDF){const De=Re.uniformValues;Re.hasHalo&&(De.u_is_halo=1,ro(Re.buffers,Le.segments,r,u,Re.program,xe,z,N,De,Re.projectionData,Le.terrainData)),De.u_is_halo=0}ro(Re.buffers,Le.segments,r,u,Re.program,xe,z,N,Re.uniformValues,Re.projectionData,Le.terrainData)}}function ro(u,e,r,a,l,p,g,b,k,I,z){const N=a.context;l.draw(N,N.gl.TRIANGLES,p,g,b,Ft.backCCW,k,z,I,r.id,u.layoutVertexBuffer,u.indexBuffer,e,r.paint,a.transform.zoom,u.programConfigurations.get(r.id),u.dynamicLayoutVertexBuffer,u.opacityVertexBuffer)}function ra(u,e,r,a,l){const p=u.context,g=p.gl,b=Ct.disabled,k=new Jt([g.ONE,g.ONE],s.b7.transparent,[!0,!0,!0,!0]),I=e.getBucket(r);if(!I)return;const z=a.key;let N=r.heatmapFbos.get(z);N||(N=ia(p,e.tileSize,e.tileSize),r.heatmapFbos.set(z,N)),p.bindFramebuffer.set(N.framebuffer),p.viewport.set([0,0,e.tileSize,e.tileSize]),p.clear({color:s.b7.transparent});const O=I.programConfigurations.get(r.id),Z=u.useProgram("heatmap",O,!l),J=u.transform.getProjectionData({overscaledTileID:e.tileID,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),ne=u.style.map.terrain.getTerrainData(a);Z.draw(p,g.TRIANGLES,wt.disabled,b,k,Ft.disabled,Gn(e,u.transform.zoom,r.paint.get("heatmap-intensity"),1),ne,J,r.id,I.layoutVertexBuffer,I.indexBuffer,I.segments,r.paint,u.transform.zoom,O)}function ol(u,e,r,a,l){const p=u.context,g=p.gl,b=u.transform;p.setColorMode(u.colorModeForRenderPass());const k=al(p,e),I=r.key,z=e.heatmapFbos.get(I);if(!z)return;p.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,z.colorAttachment.get()),p.activeTexture.set(g.TEXTURE1),k.bind(g.LINEAR,g.CLAMP_TO_EDGE);const N=b.getProjectionData({overscaledTileID:r,applyTerrainMatrix:l,applyGlobeMatrix:!a});u.useProgram("heatmapTexture").draw(p,g.TRIANGLES,wt.disabled,Ct.disabled,u.colorModeForRenderPass(),Ft.disabled,mc(u,e,0,1),null,N,e.id,u.rasterBoundsBuffer,u.quadTriangleIndexBuffer,u.rasterBoundsSegments,e.paint,b.zoom),z.destroy(),e.heatmapFbos.delete(I)}function ia(u,e,r){var a,l;const p=u.gl,g=p.createTexture();p.bindTexture(p.TEXTURE_2D,g),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_S,p.CLAMP_TO_EDGE),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_T,p.CLAMP_TO_EDGE),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MIN_FILTER,p.LINEAR),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MAG_FILTER,p.LINEAR);const b=(a=u.HALF_FLOAT)!==null&&a!==void 0?a:p.UNSIGNED_BYTE,k=(l=u.RGBA16F)!==null&&l!==void 0?l:p.RGBA;p.texImage2D(p.TEXTURE_2D,0,k,e,r,0,p.RGBA,b,null);const I=u.createFramebuffer(e,r,!1,!1);return I.colorAttachment.set(g),I}function al(u,e){return e.colorRampTexture||(e.colorRampTexture=new Ze(u,e.colorRamp,u.gl.RGBA)),e.colorRampTexture}function io(u,e,r,a,l){if(!r||!a||!a.imageAtlas)return;const p=a.imageAtlas.patternPositions;let g=p[r.to.toString()],b=p[r.from.toString()];if(!g&&b&&(g=b),!b&&g&&(b=g),!g||!b){const k=l.getPaintProperty(e);g=p[k],b=p[k]}g&&b&&u.setConstantPatternPositions(g,b)}function no(u,e,r,a,l,p,g,b){const k=u.context.gl,I="fill-pattern",z=r.paint.get(I),N=z&&z.constantOr(1),O=r.getCrossfadeParameters();let Z,J,ne,ie,oe;const ue=u.transform,me=r.paint.get("fill-translate"),fe=r.paint.get("fill-translate-anchor");g?(J=N&&!r.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",Z=k.LINES):(J=N?"fillPattern":"fill",Z=k.TRIANGLES);const ge=z.constantOr(null);for(const xe of a){const _e=e.getTile(xe);if(N&&!_e.patternsLoaded())continue;const Ee=_e.getBucket(r);if(!Ee)continue;const Fe=Ee.programConfigurations.get(r.id),Le=u.useProgram(J,Fe),Re=u.style.map.terrain&&u.style.map.terrain.getTerrainData(xe);N&&(u.context.activeTexture.set(k.TEXTURE0),_e.imageAtlasTexture.bind(k.LINEAR,k.CLAMP_TO_EDGE),Fe.updatePaintBuffers(O)),io(Fe,I,ge,_e,r);const De=ue.getProjectionData({overscaledTileID:xe,applyGlobeMatrix:!b,applyTerrainMatrix:!0}),Ye=s.aA(ue,_e,me,fe);if(g){ie=Ee.indexBuffer2,oe=Ee.segments2;const We=[k.drawingBufferWidth,k.drawingBufferHeight];ne=J==="fillOutlinePattern"&&N?Qs(u,O,_e,We,Ye):Ga(We,Ye)}else ie=Ee.indexBuffer,oe=Ee.segments,ne=N?dc(u,O,_e,Ye):{u_fill_translate:Ye};const Qe=u.stencilModeForClipping(xe);Le.draw(u.context,Z,l,Qe,p,Ft.backCCW,ne,Re,De,r.id,Ee.layoutVertexBuffer,ie,oe,r.paint,u.transform.zoom,Fe)}}function so(u,e,r,a,l,p,g,b){const k=u.context,I=k.gl,z="fill-extrusion-pattern",N=r.paint.get(z),O=N.constantOr(1),Z=r.getCrossfadeParameters(),J=r.paint.get("fill-extrusion-opacity"),ne=N.constantOr(null),ie=u.transform;for(const oe of a){const ue=e.getTile(oe),me=ue.getBucket(r);if(!me)continue;const fe=u.style.map.terrain&&u.style.map.terrain.getTerrainData(oe),ge=me.programConfigurations.get(r.id),xe=u.useProgram(O?"fillExtrusionPattern":"fillExtrusion",ge);O&&(u.context.activeTexture.set(I.TEXTURE0),ue.imageAtlasTexture.bind(I.LINEAR,I.CLAMP_TO_EDGE),ge.updatePaintBuffers(Z));const _e=ie.getProjectionData({overscaledTileID:oe,applyGlobeMatrix:!b,applyTerrainMatrix:!0});io(ge,z,ne,ue,r);const Ee=s.aA(ie,ue,r.paint.get("fill-extrusion-translate"),r.paint.get("fill-extrusion-translate-anchor")),Fe=r.paint.get("fill-extrusion-vertical-gradient"),Le=O?nn(u,Fe,J,Ee,oe,Z,ue):qo(u,Fe,J,Ee);xe.draw(k,k.gl.TRIANGLES,l,p,g,Ft.backCCW,Le,fe,_e,r.id,me.layoutVertexBuffer,me.indexBuffer,me.segments,r.paint,u.transform.zoom,ge,u.style.map.terrain&&me.centroidVertexBuffer)}}function ll(u,e,r,a,l,p,g,b,k){var I;const z=u.style.projection,N=u.context,O=u.transform,Z=N.gl,J=[`#define NUM_ILLUMINATION_SOURCES ${r.paint.get("hillshade-highlight-color").values.length}`],ne=u.useProgram("hillshade",null,!1,J),ie=!u.options.moving;for(const oe of a){const ue=e.getTile(oe),me=ue.fbo;if(!me)continue;const fe=z.getMeshFromTileID(N,oe.canonical,b,!0,"raster"),ge=(I=u.style.map.terrain)===null||I===void 0?void 0:I.getTerrainData(oe);N.activeTexture.set(Z.TEXTURE0),Z.bindTexture(Z.TEXTURE_2D,me.colorAttachment.get());const xe=O.getProjectionData({overscaledTileID:oe,aligned:ie,applyGlobeMatrix:!k,applyTerrainMatrix:!0});ne.draw(N,Z.TRIANGLES,p,l[oe.overscaledZ],g,Ft.backCCW,gc(u,ue,r),ge,xe,r.id,fe.vertexBuffer,fe.indexBuffer,fe.segments)}}const oo=[new s.P(0,0),new s.P(s.Z,0),new s.P(s.Z,s.Z),new s.P(0,s.Z)];function na(u,e,r,a,l,p,g,b,k=!1,I=!1){const z=a[a.length-1].overscaledZ,N=u.context,O=N.gl,Z=u.useProgram("raster"),J=u.transform,ne=u.style.projection,ie=u.colorModeForRenderPass(),oe=!u.options.moving;for(const ue of a){const me=u.getDepthModeForSublayer(ue.overscaledZ-z,r.paint.get("raster-opacity")===1?wt.ReadWrite:wt.ReadOnly,O.LESS),fe=e.getTile(ue);fe.registerFadeDuration(r.paint.get("raster-fade-duration"));const ge=e.findLoadedParent(ue,0),xe=e.findLoadedSibling(ue),_e=Dc(fe,ge||xe||null,e,r,u.transform,u.style.map.terrain);let Ee,Fe;const Le=r.paint.get("raster-resampling")==="nearest"?O.NEAREST:O.LINEAR;N.activeTexture.set(O.TEXTURE0),fe.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),N.activeTexture.set(O.TEXTURE1),ge?(ge.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),Ee=Math.pow(2,ge.tileID.overscaledZ-fe.tileID.overscaledZ),Fe=[fe.tileID.canonical.x*Ee%1,fe.tileID.canonical.y*Ee%1]):fe.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),fe.texture.useMipmap&&N.extTextureFilterAnisotropic&&u.transform.pitch>20&&O.texParameterf(O.TEXTURE_2D,N.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,N.extTextureFilterAnisotropicMax);const Re=u.style.map.terrain&&u.style.map.terrain.getTerrainData(ue),De=J.getProjectionData({overscaledTileID:ue,aligned:oe,applyGlobeMatrix:!I,applyTerrainMatrix:!0}),Ye=bc(Fe||[0,0],Ee||1,_e,r,b),Qe=ne.getMeshFromTileID(N,ue.canonical,p,g,"raster");Z.draw(N,O.TRIANGLES,me,l?l[ue.overscaledZ]:Ct.disabled,ie,k?Ft.frontCCW:Ft.backCCW,Ye,Re,De,r.id,Qe.vertexBuffer,Qe.indexBuffer,Qe.segments)}}function Dc(u,e,r,a,l,p){const g=a.paint.get("raster-fade-duration");if(!p&&g>0){const b=L.now(),k=(b-u.timeAdded)/g,I=e?(b-e.timeAdded)/g:-1,z=r.getSource(),N=ke(l,{tileSize:z.tileSize,roundZoom:z.roundZoom}),O=!e||Math.abs(e.tileID.overscaledZ-N)>Math.abs(u.tileID.overscaledZ-N),Z=O&&u.refreshedUponExpiration?1:s.ae(O?k:1-I,0,1);return u.refreshedUponExpiration&&k>=1&&(u.refreshedUponExpiration=!1),e?{opacity:1,mix:1-Z}:{opacity:Z,mix:0}}return{opacity:1,mix:0}}const sa=new s.b7(1,0,0,1),cl=new s.b7(0,1,0,1),zc=new s.b7(0,0,1,1),Bc=new s.b7(1,0,1,1),oa=new s.b7(0,1,1,1);function aa(u,e,r,a){ao(u,0,e+r/2,u.transform.width,r,a)}function Vc(u,e,r,a){ao(u,e-r/2,0,r,u.transform.height,a)}function ao(u,e,r,a,l,p){const g=u.context,b=g.gl;b.enable(b.SCISSOR_TEST),b.scissor(e*u.pixelRatio,r*u.pixelRatio,a*u.pixelRatio,l*u.pixelRatio),g.clear({color:p}),b.disable(b.SCISSOR_TEST)}function Ar(u,e,r){const a=u.context,l=a.gl,p=u.useProgram("debug"),g=wt.disabled,b=Ct.disabled,k=u.colorModeForRenderPass(),I="$debug",z=u.style.map.terrain&&u.style.map.terrain.getTerrainData(r);a.activeTexture.set(l.TEXTURE0);const N=e.getTileByID(r.key).latestRawTileData,O=Math.floor((N&&N.byteLength||0)/1024),Z=e.getTile(r).tileSize,J=512/Math.min(Z,512)*(r.overscaledZ/u.transform.zoom)*.5;let ne=r.canonical.toString();r.overscaledZ!==r.canonical.z&&(ne+=` => ${r.overscaledZ}`),function(oe,ue){oe.initDebugOverlayCanvas();const me=oe.debugOverlayCanvas,fe=oe.context.gl,ge=oe.debugOverlayCanvas.getContext("2d");ge.clearRect(0,0,me.width,me.height),ge.shadowColor="white",ge.shadowBlur=2,ge.lineWidth=1.5,ge.strokeStyle="white",ge.textBaseline="top",ge.font="bold 36px Open Sans, sans-serif",ge.fillText(ue,5,5),ge.strokeText(ue,5,5),oe.debugOverlayTexture.update(me),oe.debugOverlayTexture.bind(fe.LINEAR,fe.CLAMP_TO_EDGE)}(u,`${ne} ${O}kB`);const ie=u.transform.getProjectionData({overscaledTileID:r,applyGlobeMatrix:!0,applyTerrainMatrix:!0});p.draw(a,l.TRIANGLES,g,b,Jt.alphaBlended,Ft.disabled,fc(s.b7.transparent,J),null,ie,I,u.debugBuffer,u.quadTriangleIndexBuffer,u.debugSegments),p.draw(a,l.LINE_STRIP,g,b,k,Ft.disabled,fc(s.b7.red),z,ie,I,u.debugBuffer,u.tileBorderIndexBuffer,u.debugSegments)}function Tn(u,e,r,a){const{isRenderingGlobe:l}=a,p=u.context,g=p.gl,b=u.transform,k=u.colorModeForRenderPass(),I=u.getDepthModeFor3D(),z=u.useProgram("terrain");p.bindFramebuffer.set(null),p.viewport.set([0,0,u.width,u.height]);for(const N of r){const O=e.getTerrainMesh(N.tileID),Z=u.renderToTexture.getTexture(N),J=e.getTerrainData(N.tileID);p.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,Z.texture);const ne=e.getMeshFrameDelta(b.zoom),ie=b.calculateFogMatrix(N.tileID.toUnwrapped()),oe=wh(ne,ie,u.style.sky,b.pitch,l),ue=b.getProjectionData({overscaledTileID:N.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});z.draw(p,g.TRIANGLES,I,Ct.disabled,k,Ft.backCCW,oe,J,ue,"terrain",O.vertexBuffer,O.indexBuffer,O.segments)}}function ki(u,e){if(!e.mesh){const r=new s.aI;r.emplaceBack(-1,-1),r.emplaceBack(1,-1),r.emplaceBack(1,1),r.emplaceBack(-1,1);const a=new s.aK;a.emplaceBack(0,1,2),a.emplaceBack(0,2,3),e.mesh=new hs(u.createVertexBuffer(r,ui.members),u.createIndexBuffer(a),s.aJ.simpleSegment(0,0,r.length,a.length))}return e.mesh}class ul{constructor(e,r){this.context=new $o(e),this.transform=r,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:s.ad(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=Se.maxUnderzooming+Se.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new qs}resize(e,r,a){if(this.width=Math.floor(e*a),this.height=Math.floor(r*a),this.pixelRatio=a,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const l of this.style._order)this.style._layers[l].resize()}setup(){const e=this.context,r=new s.aI;r.emplaceBack(0,0),r.emplaceBack(s.Z,0),r.emplaceBack(0,s.Z),r.emplaceBack(s.Z,s.Z),this.tileExtentBuffer=e.createVertexBuffer(r,ui.members),this.tileExtentSegments=s.aJ.simpleSegment(0,0,4,2);const a=new s.aI;a.emplaceBack(0,0),a.emplaceBack(s.Z,0),a.emplaceBack(0,s.Z),a.emplaceBack(s.Z,s.Z),this.debugBuffer=e.createVertexBuffer(a,ui.members),this.debugSegments=s.aJ.simpleSegment(0,0,4,5);const l=new s.b_;l.emplaceBack(0,0,0,0),l.emplaceBack(s.Z,0,s.Z,0),l.emplaceBack(0,s.Z,0,s.Z),l.emplaceBack(s.Z,s.Z,s.Z,s.Z),this.rasterBoundsBuffer=e.createVertexBuffer(l,xh.members),this.rasterBoundsSegments=s.aJ.simpleSegment(0,0,4,2);const p=new s.aI;p.emplaceBack(0,0),p.emplaceBack(s.Z,0),p.emplaceBack(0,s.Z),p.emplaceBack(s.Z,s.Z),this.rasterBoundsBufferPosOnly=e.createVertexBuffer(p,ui.members),this.rasterBoundsSegmentsPosOnly=s.aJ.simpleSegment(0,0,4,5);const g=new s.aI;g.emplaceBack(0,0),g.emplaceBack(1,0),g.emplaceBack(0,1),g.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(g,ui.members),this.viewportSegments=s.aJ.simpleSegment(0,0,4,2);const b=new s.b$;b.emplaceBack(0),b.emplaceBack(1),b.emplaceBack(3),b.emplaceBack(2),b.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(b);const k=new s.aK;k.emplaceBack(1,0,2),k.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(k);const I=this.context.gl;this.stencilClearMode=new Ct({func:I.ALWAYS,mask:0},0,255,I.ZERO,I.ZERO,I.ZERO),this.tileExtentMesh=new hs(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}clearStencil(){const e=this.context,r=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const a=s.K();s.bQ(a,0,this.width,this.height,0,0,1),s.M(a,a,[r.drawingBufferWidth,r.drawingBufferHeight,0]);const l={mainMatrix:a,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:a};this.useProgram("clippingMask",null,!0).draw(e,r.TRIANGLES,wt.disabled,this.stencilClearMode,Jt.disabled,Ft.disabled,null,null,l,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(e,r,a){if(this.currentStencilSource===e.source||!e.isTileClipped()||!r||!r.length)return;this.currentStencilSource=e.source,this.nextStencilID+r.length>256&&this.clearStencil();const l=this.context;l.setColorMode(Jt.disabled),l.setDepthMode(wt.disabled);const p={};for(const g of r)p[g.key]=this.nextStencilID++;this._renderTileMasks(p,r,a,!0),this._renderTileMasks(p,r,a,!1),this._tileClippingMaskIDs=p}_renderTileMasks(e,r,a,l){const p=this.context,g=p.gl,b=this.style.projection,k=this.transform,I=this.useProgram("clippingMask");for(const z of r){const N=e[z.key],O=this.style.map.terrain&&this.style.map.terrain.getTerrainData(z),Z=b.getMeshFromTileID(this.context,z.canonical,l,!0,"stencil"),J=k.getProjectionData({overscaledTileID:z,applyGlobeMatrix:!a,applyTerrainMatrix:!0});I.draw(p,g.TRIANGLES,wt.disabled,new Ct({func:g.ALWAYS,mask:0},N,255,g.KEEP,g.KEEP,g.REPLACE),Jt.disabled,a?Ft.disabled:Ft.backCCW,null,O,J,"$clipping",Z.vertexBuffer,Z.indexBuffer,Z.segments)}}_renderTilesDepthBuffer(){const e=this.context,r=e.gl,a=this.style.projection,l=this.transform,p=this.useProgram("depth"),g=this.getDepthModeFor3D(),b=be(l,{tileSize:l.tileSize});for(const k of b){const I=this.style.map.terrain&&this.style.map.terrain.getTerrainData(k),z=a.getMeshFromTileID(this.context,k.canonical,!0,!0,"raster"),N=l.getProjectionData({overscaledTileID:k,applyGlobeMatrix:!0,applyTerrainMatrix:!0});p.draw(e,r.TRIANGLES,g,Ct.disabled,Jt.disabled,Ft.backCCW,null,I,N,"$clipping",z.vertexBuffer,z.indexBuffer,z.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const e=this.nextStencilID++,r=this.context.gl;return new Ct({func:r.NOTEQUAL,mask:255},e,255,r.KEEP,r.KEEP,r.REPLACE)}stencilModeForClipping(e){const r=this.context.gl;return new Ct({func:r.EQUAL,mask:255},this._tileClippingMaskIDs[e.key],0,r.KEEP,r.KEEP,r.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(e){const r=this.context.gl,a=e.sort((g,b)=>b.overscaledZ-g.overscaledZ),l=a[a.length-1].overscaledZ,p=a[0].overscaledZ-l+1;if(p>1){this.currentStencilSource=void 0,this.nextStencilID+p>256&&this.clearStencil();const g={};for(let b=0;b<p;b++)g[b+l]=new Ct({func:r.GEQUAL,mask:255},b+this.nextStencilID,255,r.KEEP,r.KEEP,r.REPLACE);return this.nextStencilID+=p,[g,a]}return[{[l]:Ct.disabled},a]}stencilConfigForOverlapTwoPass(e){const r=this.context.gl,a=e.sort((g,b)=>b.overscaledZ-g.overscaledZ),l=a[a.length-1].overscaledZ,p=a[0].overscaledZ-l+1;if(this.clearStencil(),p>1){const g={},b={};for(let k=0;k<p;k++)g[k+l]=new Ct({func:r.GREATER,mask:255},p+1+k,255,r.KEEP,r.KEEP,r.REPLACE),b[k+l]=new Ct({func:r.GREATER,mask:255},1+k,255,r.KEEP,r.KEEP,r.REPLACE);return this.nextStencilID=2*p+1,[g,b,a]}return this.nextStencilID=3,[{[l]:new Ct({func:r.GREATER,mask:255},2,255,r.KEEP,r.KEEP,r.REPLACE)},{[l]:new Ct({func:r.GREATER,mask:255},1,255,r.KEEP,r.KEEP,r.REPLACE)},a]}colorModeForRenderPass(){const e=this.context.gl;return this._showOverdrawInspector?new Jt([e.CONSTANT_COLOR,e.ONE],new s.b7(.125,.125,.125,0),[!0,!0,!0,!0]):this.renderPass==="opaque"?Jt.unblended:Jt.alphaBlended}getDepthModeForSublayer(e,r,a){if(!this.opaquePassEnabledForLayer())return wt.disabled;const l=1-((1+this.currentLayer)*this.numSublayers+e)*this.depthEpsilon;return new wt(a||this.context.gl.LEQUAL,r,[l,l])}getDepthModeFor3D(){return new wt(this.context.gl.LEQUAL,wt.ReadWrite,this.depthRangeFor3D)}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}render(e,r){var a,l;this.style=e,this.options=r,this.lineAtlas=e.lineAtlas,this.imageManager=e.imageManager,this.glyphManager=e.glyphManager,this.symbolFadeChange=e.placement.symbolFadeChange(L.now()),this.imageManager.beginFrame();const p=this.style._order,g=this.style.sourceCaches,b={},k={},I={},z={isRenderingToTexture:!1,isRenderingGlobe:((a=e.projection)===null||a===void 0?void 0:a.transitionState)>0};for(const O in g){const Z=g[O];Z.used&&Z.prepare(this.context),b[O]=Z.getVisibleCoordinates(!1),k[O]=b[O].slice().reverse(),I[O]=Z.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let O=0;O<p.length;O++)if(this.style._layers[p[O]].is3D()){this.opaquePassCutoff=O;break}this.maybeDrawDepthAndCoords(!1),this.renderToTexture&&(this.renderToTexture.prepareForRender(this.style,this.transform.zoom),this.opaquePassCutoff=0),this.renderPass="offscreen";for(const O of p){const Z=this.style._layers[O];if(!Z.hasOffscreenPass()||Z.isHidden(this.transform.zoom))continue;const J=k[Z.source];(Z.type==="custom"||J.length)&&this.renderLayer(this,g[Z.source],Z,J,z)}if((l=this.style.projection)===null||l===void 0||l.updateGPUdependent({context:this.context,useProgram:O=>this.useProgram(O)}),this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:r.showOverdrawInspector?s.b7.black:s.b7.transparent,depth:1}),this.clearStencil(),this.style.sky&&function(O,Z){const J=O.context,ne=J.gl,ie=((xe,_e,Ee)=>{const Fe=Math.cos(_e.rollInRadians),Le=Math.sin(_e.rollInRadians),Re=we(_e),De=_e.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition;return{u_sky_color:xe.properties.get("sky-color"),u_horizon_color:xe.properties.get("horizon-color"),u_horizon:[(_e.width/2-Re*Le)*Ee,(_e.height/2+Re*Fe)*Ee],u_horizon_normal:[-Le,Fe],u_sky_horizon_blend:xe.properties.get("sky-horizon-blend")*_e.height/2*Ee,u_sky_blend:De}})(Z,O.style.map.transform,O.pixelRatio),oe=new wt(ne.LEQUAL,wt.ReadWrite,[0,1]),ue=Ct.disabled,me=O.colorModeForRenderPass(),fe=O.useProgram("sky"),ge=ki(J,Z);fe.draw(J,ne.TRIANGLES,oe,ue,me,Ft.disabled,ie,null,void 0,"sky",ge.vertexBuffer,ge.indexBuffer,ge.segments)}(this,this.style.sky),this._showOverdrawInspector=r.showOverdrawInspector,this.depthRangeFor3D=[0,1-(e._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=p.length-1;this.currentLayer>=0;this.currentLayer--){const O=this.style._layers[p[this.currentLayer]],Z=g[O.source],J=b[O.source];this._renderTileClippingMasks(O,J,!1),this.renderLayer(this,Z,O,J,z)}this.renderPass="translucent";let N=!1;for(this.currentLayer=0;this.currentLayer<p.length;this.currentLayer++){const O=this.style._layers[p[this.currentLayer]],Z=g[O.source];if(this.renderToTexture&&this.renderToTexture.renderLayer(O,z))continue;this.opaquePassEnabledForLayer()||N||(N=!0,z.isRenderingGlobe&&!this.style.map.terrain&&this._renderTilesDepthBuffer());const J=(O.type==="symbol"?I:k)[O.source];this._renderTileClippingMasks(O,b[O.source],!!this.renderToTexture),this.renderLayer(this,Z,O,J,z)}if(z.isRenderingGlobe&&function(O,Z,J){const ne=O.context,ie=ne.gl,oe=O.useProgram("atmosphere"),ue=new wt(ie.LEQUAL,wt.ReadOnly,[0,1]),me=O.transform,fe=function(De,Ye){const Qe=De.properties.get("position"),We=[-Qe.x,-Qe.y,-Qe.z],ot=s.ad(new Float64Array(16));return De.properties.get("anchor")==="map"&&(s.a_(ot,ot,Ye.rollInRadians),s.a$(ot,ot,-Ye.pitchInRadians),s.a_(ot,ot,Ye.bearingInRadians),s.a$(ot,ot,Ye.center.lat*Math.PI/180),s.bp(ot,ot,-Ye.center.lng*Math.PI/180)),s.bZ(We,We,ot),We}(J,O.transform),ge=me.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),xe=Z.properties.get("atmosphere-blend")*ge.projectionTransition;if(xe===0)return;const _e=Wn(me.worldSize,me.center.lat),Ee=me.inverseProjectionMatrix,Fe=new Float64Array(4);Fe[3]=1,s.at(Fe,Fe,me.modelViewProjectionMatrix),Fe[0]/=Fe[3],Fe[1]/=Fe[3],Fe[2]/=Fe[3],Fe[3]=1,s.at(Fe,Fe,Ee),Fe[0]/=Fe[3],Fe[1]/=Fe[3],Fe[2]/=Fe[3],Fe[3]=1;const Le=((De,Ye,Qe,We,ot)=>({u_sun_pos:De,u_atmosphere_blend:Ye,u_globe_position:Qe,u_globe_radius:We,u_inv_proj_matrix:ot}))(fe,xe,[Fe[0],Fe[1],Fe[2]],_e,Ee),Re=ki(ne,Z);oe.draw(ne,ie.TRIANGLES,ue,Ct.disabled,Jt.alphaBlended,Ft.disabled,Le,null,null,"atmosphere",Re.vertexBuffer,Re.indexBuffer,Re.segments)}(this,this.style.sky,this.style.light),this.options.showTileBoundaries){const O=function(Z,J){let ne=null;const ie=Object.values(Z._layers).flatMap(fe=>fe.source&&!fe.isHidden(J)?[Z.sourceCaches[fe.source]]:[]),oe=ie.filter(fe=>fe.getSource().type==="vector"),ue=ie.filter(fe=>fe.getSource().type!=="vector"),me=fe=>{(!ne||ne.getSource().maxzoom<fe.getSource().maxzoom)&&(ne=fe)};return oe.forEach(fe=>me(fe)),ne||ue.forEach(fe=>me(fe)),ne}(this.style,this.transform.zoom);O&&function(Z,J,ne){for(let ie=0;ie<ne.length;ie++)Ar(Z,J,ne[ie])}(this,O,O.getVisibleCoordinates())}this.options.showPadding&&function(O){const Z=O.transform.padding;aa(O,O.transform.height-(Z.top||0),3,sa),aa(O,Z.bottom||0,3,cl),Vc(O,Z.left||0,3,zc),Vc(O,O.transform.width-(Z.right||0),3,Bc);const J=O.transform.centerPoint;(function(ne,ie,oe,ue){ao(ne,ie-1,oe-10,2,20,ue),ao(ne,ie-10,oe-1,20,2,ue)})(O,J.x,O.transform.height-J.y,oa)}(this),this.context.setDefault()}maybeDrawDepthAndCoords(e){if(!this.style||!this.style.map||!this.style.map.terrain)return;const r=this.terrainFacilitator.matrix,a=this.transform.modelViewProjectionMatrix;let l=this.terrainFacilitator.dirty;l||(l=e?!s.c0(r,a):!s.c1(r,a)),l||(l=this.style.map.terrain.sourceCache.anyTilesAfterTime(this.terrainFacilitator.renderTime)),l&&(s.c2(r,a),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(p,g){const b=p.context,k=b.gl,I=p.transform,z=Jt.unblended,N=new wt(k.LEQUAL,wt.ReadWrite,[0,1]),O=g.sourceCache.getRenderableTiles(),Z=p.useProgram("terrainDepth");b.bindFramebuffer.set(g.getFramebuffer("depth").framebuffer),b.viewport.set([0,0,p.width/devicePixelRatio,p.height/devicePixelRatio]),b.clear({color:s.b7.transparent,depth:1});for(const J of O){const ne=g.getTerrainMesh(J.tileID),ie=g.getTerrainData(J.tileID),oe=I.getProjectionData({overscaledTileID:J.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0}),ue={u_ele_delta:g.getMeshFrameDelta(I.zoom)};Z.draw(b,k.TRIANGLES,N,Ct.disabled,z,Ft.backCCW,ue,ie,oe,"terrain",ne.vertexBuffer,ne.indexBuffer,ne.segments)}b.bindFramebuffer.set(null),b.viewport.set([0,0,p.width,p.height])}(this,this.style.map.terrain),function(p,g){const b=p.context,k=b.gl,I=p.transform,z=Jt.unblended,N=new wt(k.LEQUAL,wt.ReadWrite,[0,1]),O=g.getCoordsTexture(),Z=g.sourceCache.getRenderableTiles(),J=p.useProgram("terrainCoords");b.bindFramebuffer.set(g.getFramebuffer("coords").framebuffer),b.viewport.set([0,0,p.width/devicePixelRatio,p.height/devicePixelRatio]),b.clear({color:s.b7.transparent,depth:1}),g.coordsIndex=[];for(const ne of Z){const ie=g.getTerrainMesh(ne.tileID),oe=g.getTerrainData(ne.tileID);b.activeTexture.set(k.TEXTURE0),k.bindTexture(k.TEXTURE_2D,O.texture);const ue={u_terrain_coords_id:(255-g.coordsIndex.length)/255,u_texture:0,u_ele_delta:g.getMeshFrameDelta(I.zoom)},me=I.getProjectionData({overscaledTileID:ne.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});J.draw(b,k.TRIANGLES,N,Ct.disabled,z,Ft.backCCW,ue,oe,me,"terrain",ie.vertexBuffer,ie.indexBuffer,ie.segments),g.coordsIndex.push(ne.tileID.key)}b.bindFramebuffer.set(null),b.viewport.set([0,0,p.width,p.height])}(this,this.style.map.terrain))}renderLayer(e,r,a,l,p){a.isHidden(this.transform.zoom)||(a.type==="background"||a.type==="custom"||(l||[]).length)&&(this.id=a.id,s.c3(a)?function(g,b,k,I,z,N){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:O}=N,Z=Ct.disabled,J=g.colorModeForRenderPass();(k._unevaluatedLayout.hasValue("text-variable-anchor")||k._unevaluatedLayout.hasValue("text-variable-anchor-offset"))&&function(ne,ie,oe,ue,me,fe,ge,xe,_e){const Ee=ie.transform,Fe=ie.style.map.terrain,Le=me==="map",Re=fe==="map";for(const De of ne){const Ye=ue.getTile(De),Qe=Ye.getBucket(oe);if(!Qe||!Qe.text||!Qe.text.segments.get().length)continue;const We=s.ak(Qe.textSizeData,Ee.zoom),ot=s.az(Ye,1,ie.transform.zoom),Et=ht(Le,ie.transform,ot),Ot=oe.layout.get("icon-text-fit")!=="none"&&Qe.hasIconData();if(We){const pr=Math.pow(2,Ee.zoom-Ye.tileID.overscaledZ),Qt=Fe?(dr,fr)=>Fe.getElevation(De,dr,fr):null;Rc(Qe,Le,Re,_e,Ee,Et,pr,We,Ot,s.aA(Ee,Ye,ge,xe),De.toUnwrapped(),Qt)}}}(I,g,k,b,k.layout.get("text-rotation-alignment"),k.layout.get("text-pitch-alignment"),k.paint.get("text-translate"),k.paint.get("text-translate-anchor"),z),k.paint.get("icon-opacity").constantOr(1)!==0&&ta(g,b,k,I,!1,k.paint.get("icon-translate"),k.paint.get("icon-translate-anchor"),k.layout.get("icon-rotation-alignment"),k.layout.get("icon-pitch-alignment"),k.layout.get("icon-keep-upright"),Z,J,O),k.paint.get("text-opacity").constantOr(1)!==0&&ta(g,b,k,I,!0,k.paint.get("text-translate"),k.paint.get("text-translate-anchor"),k.layout.get("text-rotation-alignment"),k.layout.get("text-pitch-alignment"),k.layout.get("text-keep-upright"),Z,J,O),b.map.showCollisionBoxes&&(sl(g,b,k,I,!0),sl(g,b,k,I,!1))}(e,r,a,l,this.style.placement.variableOffsets,p):s.c4(a)?function(g,b,k,I,z){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:N}=z,O=k.paint.get("circle-opacity"),Z=k.paint.get("circle-stroke-width"),J=k.paint.get("circle-stroke-opacity"),ne=!k.layout.get("circle-sort-key").isConstant();if(O.constantOr(1)===0&&(Z.constantOr(1)===0||J.constantOr(1)===0))return;const ie=g.context,oe=ie.gl,ue=g.transform,me=g.getDepthModeForSublayer(0,wt.ReadOnly),fe=Ct.disabled,ge=g.colorModeForRenderPass(),xe=[],_e=ue.getCircleRadiusCorrection();for(let Ee=0;Ee<I.length;Ee++){const Fe=I[Ee],Le=b.getTile(Fe),Re=Le.getBucket(k);if(!Re)continue;const De=k.paint.get("circle-translate"),Ye=k.paint.get("circle-translate-anchor"),Qe=s.aA(ue,Le,De,Ye),We=Re.programConfigurations.get(k.id),ot=g.useProgram("circle",We),Et=Re.layoutVertexBuffer,Ot=Re.indexBuffer,pr=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Fe),Qt={programConfiguration:We,program:ot,layoutVertexBuffer:Et,indexBuffer:Ot,uniformValues:Ys(g,Le,k,Qe,_e),terrainData:pr,projectionData:ue.getProjectionData({overscaledTileID:Fe,applyGlobeMatrix:!N,applyTerrainMatrix:!0})};if(ne){const dr=Re.segments.get();for(const fr of dr)xe.push({segments:new s.aJ([fr]),sortKey:fr.sortKey,state:Qt})}else xe.push({segments:Re.segments,sortKey:0,state:Qt})}ne&&xe.sort((Ee,Fe)=>Ee.sortKey-Fe.sortKey);for(const Ee of xe){const{programConfiguration:Fe,program:Le,layoutVertexBuffer:Re,indexBuffer:De,uniformValues:Ye,terrainData:Qe,projectionData:We}=Ee.state;Le.draw(ie,oe.TRIANGLES,me,fe,ge,Ft.backCCW,Ye,Qe,We,k.id,Re,De,Ee.segments,k.paint,g.transform.zoom,Fe)}}(e,r,a,l,p):s.c5(a)?function(g,b,k,I,z){if(k.paint.get("heatmap-opacity")===0)return;const N=g.context,{isRenderingToTexture:O,isRenderingGlobe:Z}=z;if(g.style.map.terrain){for(const J of I){const ne=b.getTile(J);b.hasRenderableParent(J)||(g.renderPass==="offscreen"?ra(g,ne,k,J,Z):g.renderPass==="translucent"&&ol(g,k,J,O,Z))}N.viewport.set([0,0,g.width,g.height])}else g.renderPass==="offscreen"?function(J,ne,ie,oe){const ue=J.context,me=ue.gl,fe=J.transform,ge=Ct.disabled,xe=new Jt([me.ONE,me.ONE],s.b7.transparent,[!0,!0,!0,!0]);(function(_e,Ee,Fe){const Le=_e.gl;_e.activeTexture.set(Le.TEXTURE1),_e.viewport.set([0,0,Ee.width/4,Ee.height/4]);let Re=Fe.heatmapFbos.get(s.bW);Re?(Le.bindTexture(Le.TEXTURE_2D,Re.colorAttachment.get()),_e.bindFramebuffer.set(Re.framebuffer)):(Re=ia(_e,Ee.width/4,Ee.height/4),Fe.heatmapFbos.set(s.bW,Re))})(ue,J,ie),ue.clear({color:s.b7.transparent});for(let _e=0;_e<oe.length;_e++){const Ee=oe[_e];if(ne.hasRenderableParent(Ee))continue;const Fe=ne.getTile(Ee),Le=Fe.getBucket(ie);if(!Le)continue;const Re=Le.programConfigurations.get(ie.id),De=J.useProgram("heatmap",Re),Ye=fe.getProjectionData({overscaledTileID:Ee,applyGlobeMatrix:!0,applyTerrainMatrix:!1}),Qe=fe.getCircleRadiusCorrection();De.draw(ue,me.TRIANGLES,wt.disabled,ge,xe,Ft.backCCW,Gn(Fe,fe.zoom,ie.paint.get("heatmap-intensity"),Qe),null,Ye,ie.id,Le.layoutVertexBuffer,Le.indexBuffer,Le.segments,ie.paint,fe.zoom,Re)}ue.viewport.set([0,0,J.width,J.height])}(g,b,k,I):g.renderPass==="translucent"&&function(J,ne){const ie=J.context,oe=ie.gl;ie.setColorMode(J.colorModeForRenderPass());const ue=ne.heatmapFbos.get(s.bW);ue&&(ie.activeTexture.set(oe.TEXTURE0),oe.bindTexture(oe.TEXTURE_2D,ue.colorAttachment.get()),ie.activeTexture.set(oe.TEXTURE1),al(ie,ne).bind(oe.LINEAR,oe.CLAMP_TO_EDGE),J.useProgram("heatmapTexture").draw(ie,oe.TRIANGLES,wt.disabled,Ct.disabled,J.colorModeForRenderPass(),Ft.disabled,mc(J,ne,0,1),null,null,ne.id,J.viewportBuffer,J.quadTriangleIndexBuffer,J.viewportSegments,ne.paint,J.transform.zoom))}(g,k)}(e,r,a,l,p):s.c6(a)?function(g,b,k,I,z){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:N}=z,O=k.paint.get("line-opacity"),Z=k.paint.get("line-width");if(O.constantOr(1)===0||Z.constantOr(1)===0)return;const J=g.getDepthModeForSublayer(0,wt.ReadOnly),ne=g.colorModeForRenderPass(),ie=k.paint.get("line-dasharray"),oe=k.paint.get("line-pattern"),ue=oe.constantOr(1),me=k.paint.get("line-gradient"),fe=k.getCrossfadeParameters(),ge=ue?"linePattern":ie?"lineSDF":me?"lineGradient":"line",xe=g.context,_e=xe.gl,Ee=g.transform;let Fe=!0;for(const Le of I){const Re=b.getTile(Le);if(ue&&!Re.patternsLoaded())continue;const De=Re.getBucket(k);if(!De)continue;const Ye=De.programConfigurations.get(k.id),Qe=g.context.program.get(),We=g.useProgram(ge,Ye),ot=Fe||We.program!==Qe,Et=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Le),Ot=oe.constantOr(null);if(Ot&&Re.imageAtlas){const tr=Re.imageAtlas,Ht=tr.patternPositions[Ot.to.toString()],Br=tr.patternPositions[Ot.from.toString()];Ht&&Br&&Ye.setConstantPatternPositions(Ht,Br)}const pr=Ee.getProjectionData({overscaledTileID:Le,applyGlobeMatrix:!N,applyTerrainMatrix:!0}),Qt=Ee.getPixelScale(),dr=ue?vc(g,Re,k,Qt,fe):ie?xc(g,Re,k,Qt,ie,fe):me?_c(g,Re,k,Qt,De.lineClipsArray.length):$s(g,Re,k,Qt);if(ue)xe.activeTexture.set(_e.TEXTURE0),Re.imageAtlasTexture.bind(_e.LINEAR,_e.CLAMP_TO_EDGE),Ye.updatePaintBuffers(fe);else if(ie&&(ot||g.lineAtlas.dirty))xe.activeTexture.set(_e.TEXTURE0),g.lineAtlas.bind(xe);else if(me){const tr=De.gradients[k.id];let Ht=tr.texture;if(k.gradientVersion!==tr.version){let Br=256;if(k.stepInterpolant){const Ur=b.getSource().maxzoom,Qr=Le.canonical.z===Ur?Math.ceil(1<<g.transform.maxZoom-Le.canonical.z):1;Br=s.ae(s.bX(De.maxLineLength/s.Z*1024*Qr),256,xe.maxTextureSize)}tr.gradient=s.bY({expression:k.gradientExpression(),evaluationKey:"lineProgress",resolution:Br,image:tr.gradient||void 0,clips:De.lineClipsArray}),tr.texture?tr.texture.update(tr.gradient):tr.texture=new Ze(xe,tr.gradient,_e.RGBA),tr.version=k.gradientVersion,Ht=tr.texture}xe.activeTexture.set(_e.TEXTURE0),Ht.bind(k.stepInterpolant?_e.NEAREST:_e.LINEAR,_e.CLAMP_TO_EDGE)}const fr=g.stencilModeForClipping(Le);We.draw(xe,_e.TRIANGLES,J,fr,ne,Ft.disabled,dr,Et,pr,k.id,De.layoutVertexBuffer,De.indexBuffer,De.segments,k.paint,g.transform.zoom,Ye,De.layoutVertexBuffer2),Fe=!1}}(e,r,a,l,p):s.c7(a)?function(g,b,k,I,z){const N=k.paint.get("fill-color"),O=k.paint.get("fill-opacity");if(O.constantOr(1)===0)return;const{isRenderingToTexture:Z}=z,J=g.colorModeForRenderPass(),ne=k.paint.get("fill-pattern"),ie=g.opaquePassEnabledForLayer()&&!ne.constantOr(1)&&N.constantOr(s.b7.transparent).a===1&&O.constantOr(0)===1?"opaque":"translucent";if(g.renderPass===ie){const oe=g.getDepthModeForSublayer(1,g.renderPass==="opaque"?wt.ReadWrite:wt.ReadOnly);no(g,b,k,I,oe,J,!1,Z)}if(g.renderPass==="translucent"&&k.paint.get("fill-antialias")){const oe=g.getDepthModeForSublayer(k.getPaintProperty("fill-outline-color")?2:0,wt.ReadOnly);no(g,b,k,I,oe,J,!0,Z)}}(e,r,a,l,p):s.c8(a)?function(g,b,k,I,z){const N=k.paint.get("fill-extrusion-opacity");if(N===0)return;const{isRenderingToTexture:O}=z;if(g.renderPass==="translucent"){const Z=new wt(g.context.gl.LEQUAL,wt.ReadWrite,g.depthRangeFor3D);if(N!==1||k.paint.get("fill-extrusion-pattern").constantOr(1))so(g,b,k,I,Z,Ct.disabled,Jt.disabled,O),so(g,b,k,I,Z,g.stencilModeFor3D(),g.colorModeForRenderPass(),O);else{const J=g.colorModeForRenderPass();so(g,b,k,I,Z,Ct.disabled,J,O)}}}(e,r,a,l,p):s.c9(a)?function(g,b,k,I,z){if(g.renderPass!=="offscreen"&&g.renderPass!=="translucent")return;const{isRenderingToTexture:N}=z,O=g.context,Z=g.style.projection.useSubdivision,J=g.getDepthModeForSublayer(0,wt.ReadOnly),ne=g.colorModeForRenderPass();if(g.renderPass==="offscreen")(function(ie,oe,ue,me,fe,ge,xe){const _e=ie.context,Ee=_e.gl;for(const Fe of ue){const Le=oe.getTile(Fe),Re=Le.dem;if(!Re||!Re.data||!Le.needsHillshadePrepare)continue;const De=Re.dim,Ye=Re.stride,Qe=Re.getPixels();if(_e.activeTexture.set(Ee.TEXTURE1),_e.pixelStoreUnpackPremultiplyAlpha.set(!1),Le.demTexture=Le.demTexture||ie.getTileTexture(Ye),Le.demTexture){const ot=Le.demTexture;ot.update(Qe,{premultiply:!1}),ot.bind(Ee.NEAREST,Ee.CLAMP_TO_EDGE)}else Le.demTexture=new Ze(_e,Qe,Ee.RGBA,{premultiply:!1}),Le.demTexture.bind(Ee.NEAREST,Ee.CLAMP_TO_EDGE);_e.activeTexture.set(Ee.TEXTURE0);let We=Le.fbo;if(!We){const ot=new Ze(_e,{width:De,height:De,data:null},Ee.RGBA);ot.bind(Ee.LINEAR,Ee.CLAMP_TO_EDGE),We=Le.fbo=_e.createFramebuffer(De,De,!0,!1),We.colorAttachment.set(ot.texture)}_e.bindFramebuffer.set(We.framebuffer),_e.viewport.set([0,0,De,De]),ie.useProgram("hillshadePrepare").draw(_e,Ee.TRIANGLES,fe,ge,xe,Ft.disabled,Ah(Le.tileID,Re),null,null,me.id,ie.rasterBoundsBuffer,ie.quadTriangleIndexBuffer,ie.rasterBoundsSegments),Le.needsHillshadePrepare=!1}})(g,b,I,k,J,Ct.disabled,ne),O.viewport.set([0,0,g.width,g.height]);else if(g.renderPass==="translucent")if(Z){const[ie,oe,ue]=g.stencilConfigForOverlapTwoPass(I);ll(g,b,k,ue,ie,J,ne,!1,N),ll(g,b,k,ue,oe,J,ne,!0,N)}else{const[ie,oe]=g.getStencilConfigForOverlapAndUpdateStencilID(I);ll(g,b,k,oe,ie,J,ne,!1,N)}}(e,r,a,l,p):s.ca(a)?function(g,b,k,I,z){if(g.renderPass!=="translucent"||k.paint.get("raster-opacity")===0||!I.length)return;const{isRenderingToTexture:N}=z,O=b.getSource(),Z=g.style.projection.useSubdivision;if(O instanceof mt)na(g,b,k,I,null,!1,!1,O.tileCoords,O.flippedWindingOrder,N);else if(Z){const[J,ne,ie]=g.stencilConfigForOverlapTwoPass(I);na(g,b,k,ie,J,!1,!0,oo,!1,N),na(g,b,k,ie,ne,!0,!0,oo,!1,N)}else{const[J,ne]=g.getStencilConfigForOverlapAndUpdateStencilID(I);na(g,b,k,ne,J,!1,!0,oo,!1,N)}}(e,r,a,l,p):s.cb(a)?function(g,b,k,I,z){const N=k.paint.get("background-color"),O=k.paint.get("background-opacity");if(O===0)return;const{isRenderingToTexture:Z}=z,J=g.context,ne=J.gl,ie=g.style.projection,oe=g.transform,ue=oe.tileSize,me=k.paint.get("background-pattern");if(g.isPatternMissing(me))return;const fe=!me&&N.a===1&&O===1&&g.opaquePassEnabledForLayer()?"opaque":"translucent";if(g.renderPass!==fe)return;const ge=Ct.disabled,xe=g.getDepthModeForSublayer(0,fe==="opaque"?wt.ReadWrite:wt.ReadOnly),_e=g.colorModeForRenderPass(),Ee=g.useProgram(me?"backgroundPattern":"background"),Fe=I||be(oe,{tileSize:ue,terrain:g.style.map.terrain});me&&(J.activeTexture.set(ne.TEXTURE0),g.imageManager.bind(g.context));const Le=k.getCrossfadeParameters();for(const Re of Fe){const De=oe.getProjectionData({overscaledTileID:Re,applyGlobeMatrix:!Z,applyTerrainMatrix:!0}),Ye=me?Th(O,g,me,{tileID:Re,tileSize:ue},Le):kh(O,N),Qe=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Re),We=ie.getMeshFromTileID(J,Re.canonical,!1,!0,"raster");Ee.draw(J,ne.TRIANGLES,xe,ge,_e,Ft.backCCW,Ye,Qe,De,k.id,We.vertexBuffer,We.indexBuffer,We.segments)}}(e,0,a,l,p):s.cc(a)&&function(g,b,k,I){const{isRenderingGlobe:z}=I,N=g.context,O=k.implementation,Z=g.style.projection,J=g.transform,ne=J.getProjectionDataForCustomLayer(z),ie={farZ:J.farZ,nearZ:J.nearZ,fov:J.fov*Math.PI/180,modelViewProjectionMatrix:J.modelViewProjectionMatrix,projectionMatrix:J.projectionMatrix,shaderData:{variantName:Z.shaderVariantName,vertexShaderPrelude:`const float PI = 3.141592653589793;
|
|
800
800
|
uniform mat4 u_projection_matrix;
|
|
801
|
-
${Z.shaderPreludeCode.vertexSource}`,define:Z.shaderDefine},defaultProjectionData:ne},oe=O.renderingMode?O.renderingMode:"2d";if(g.renderPass==="offscreen"){const ue=O.prerender;ue&&(g.setCustomLayerDefaults(),N.setColorMode(g.colorModeForRenderPass()),ue.call(O,N.gl,ie),N.setDirty(),g.setBaseState())}else if(g.renderPass==="translucent"){g.setCustomLayerDefaults(),N.setColorMode(g.colorModeForRenderPass()),N.setStencilMode(Ct.disabled);const ue=oe==="3d"?g.getDepthModeFor3D():g.getDepthModeForSublayer(0,wt.ReadOnly);N.setDepthMode(ue),O.render(N.gl,ie),N.setDirty(),g.setBaseState(),N.bindFramebuffer.set(null)}}(e,0,a,p))}saveTileTexture(e){const r=this._tileTextures[e.size[0]];r?r.push(e):this._tileTextures[e.size[0]]=[e]}getTileTexture(e){const r=this._tileTextures[e];return r&&r.length>0?r.pop():null}isPatternMissing(e){if(!e)return!1;if(!e.from||!e.to)return!0;const r=this.imageManager.getPattern(e.from.toString()),a=this.imageManager.getPattern(e.to.toString());return!r||!a}useProgram(e,r,a=!1,l=[]){this.cache=this.cache||{};const p=!!this.style.map.terrain,g=this.style.projection,b=a?ci.projectionMercator:g.shaderPreludeCode,k=a?jn:g.shaderDefine,I=e+(r?r.cacheKey:"")+`/${a?Vt:g.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(p?"/terrain":"")+(l?`/${l.join("/")}`:"");return this.cache[I]||(this.cache[I]=new Oo(this.context,ci[e],r,Ac[e],this._showOverdrawInspector,p,b,k,l)),this.cache[I]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new Ze(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:e,drawingBufferHeight:r}=this.context.gl;return this.width!==e||this.height!==r}}function lo(u,e){let r,a=!1,l=null,p=null;const g=()=>{l=null,a&&(u.apply(p,r),l=setTimeout(g,e),a=!1)};return(...b)=>(a=!0,p=this,r=b,l||g(),l)}class hl{constructor(e){this._getCurrentHash=()=>{const r=window.location.hash.replace("#","");if(this._hashName){let a;return r.split("&").map(l=>l.split("=")).forEach(l=>{l[0]===this._hashName&&(a=l)}),(a&&a[1]||"").split("/")}return r.split("/")},this._onHashChange=()=>{const r=this._getCurrentHash();if(!this._isValidHash(r))return!1;const a=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(r[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+r[2],+r[1]],zoom:+r[0],bearing:a,pitch:+(r[4]||0)}),!0},this._updateHashUnthrottled=()=>{const r=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,r)},this._removeHash=()=>{const r=this._getCurrentHash();if(r.length===0)return;const a=r.join("/");let l=a;l.split("&").length>0&&(l=l.split("&")[0]),this._hashName&&(l=`${this._hashName}=${a}`);let p=window.location.hash.replace(l,"");p.startsWith("#&")?p=p.slice(0,1)+p.slice(2):p==="#"&&(p="");let g=window.location.href.replace(/(#.+)?$/,p);g=g.replace("&&","&"),window.history.replaceState(window.history.state,null,g)},this._updateHash=lo(this._updateHashUnthrottled,300),this._hashName=e&&encodeURIComponent(e)}addTo(e){return this._map=e,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(e){const r=this._map.getCenter(),a=Math.round(100*this._map.getZoom())/100,l=Math.ceil((a*Math.LN2+Math.log(512/360/.5))/Math.LN10),p=Math.pow(10,l),g=Math.round(r.lng*p)/p,b=Math.round(r.lat*p)/p,k=this._map.getBearing(),I=this._map.getPitch();let z="";if(z+=e?`/${g}/${b}/${a}`:`${a}/${b}/${g}`,(k||I)&&(z+="/"+Math.round(10*k)/10),I&&(z+=`/${Math.round(I)}`),this._hashName){const N=this._hashName;let O=!1;const Z=window.location.hash.slice(1).split("&").map(J=>{const ne=J.split("=")[0];return ne===N?(O=!0,`${ne}=${z}`):J}).filter(J=>J);return O||Z.push(`${N}=${z}`),`#${Z.join("&")}`}return`#${z}`}_isValidHash(e){if(e.length<3||e.some(isNaN))return!1;try{new s.Q(+e[2],+e[1])}catch{return!1}const r=+e[0],a=+(e[3]||0),l=+(e[4]||0);return r>=this._map.getMinZoom()&&r<=this._map.getMaxZoom()&&a>=-180&&a<=180&&l>=this._map.getMinPitch()&&l<=this._map.getMaxPitch()}}const sn={linearity:.3,easing:s.cd(0,0,.3,1)},pl=s.e({deceleration:2500,maxSpeed:1400},sn),co=s.e({deceleration:20,maxSpeed:1400},sn),dl=s.e({deceleration:1e3,maxSpeed:360},sn),Fc=s.e({deceleration:1e3,maxSpeed:90},sn),Oc=s.e({deceleration:1e3,maxSpeed:360},sn);class Nc{constructor(e){this._map=e,this.clear()}clear(){this._inertiaBuffer=[]}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:L.now(),settings:e})}_drainInertiaBuffer(){const e=this._inertiaBuffer,r=L.now();for(;e.length>0&&r-e[0].time>160;)e.shift()}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const r={zoom:0,bearing:0,pitch:0,roll:0,pan:new s.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:p}of this._inertiaBuffer)r.zoom+=p.zoomDelta||0,r.bearing+=p.bearingDelta||0,r.pitch+=p.pitchDelta||0,r.roll+=p.rollDelta||0,p.panDelta&&r.pan._add(p.panDelta),p.around&&(r.around=p.around),p.pinchAround&&(r.pinchAround=p.pinchAround);const a=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,l={};if(r.pan.mag()){const p=ws(r.pan.mag(),a,s.e({},pl,e||{})),g=r.pan.mult(p.amount/r.pan.mag()),b=this._map.cameraHelper.handlePanInertia(g,this._map.transform);l.center=b.easingCenter,l.offset=b.easingOffset,bs(l,p)}if(r.zoom){const p=ws(r.zoom,a,co);l.zoom=this._map.transform.zoom+p.amount,bs(l,p)}if(r.bearing){const p=ws(r.bearing,a,dl);l.bearing=this._map.transform.bearing+s.ae(p.amount,-179,179),bs(l,p)}if(r.pitch){const p=ws(r.pitch,a,Fc);l.pitch=this._map.transform.pitch+p.amount,bs(l,p)}if(r.roll){const p=ws(r.roll,a,Oc);l.roll=this._map.transform.roll+s.ae(p.amount,-179,179),bs(l,p)}if(l.zoom||l.bearing){const p=r.pinchAround===void 0?r.around:r.pinchAround;l.around=p?this._map.unproject(p):this._map.getCenter()}return this.clear(),s.e(l,{noMoveStart:!0})}}function bs(u,e){(!u.duration||u.duration<e.duration)&&(u.duration=e.duration,u.easing=e.easing)}function ws(u,e,r){const{maxSpeed:a,linearity:l,deceleration:p}=r,g=s.ae(u*l/(e/1e3),-a,a),b=Math.abs(g)/(p*l);return{easing:r.easing,duration:1e3*b,amount:g*(b/2)}}class zr extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a,l={}){a=a instanceof MouseEvent?a:new MouseEvent(e,a);const p=A.mousePos(r.getCanvas(),a),g=r.unproject(p);super(e,s.e({point:p,lngLat:g,originalEvent:a},l)),this._defaultPrevented=!1,this.target=r}}class Ss extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a){const l=e==="touchend"?a.changedTouches:a.touches,p=A.touchPos(r.getCanvasContainer(),l),g=p.map(k=>r.unproject(k)),b=p.reduce((k,I,z,N)=>k.add(I.div(N.length)),new s.P(0,0));super(e,{points:p,point:b,lngLats:g,lngLat:r.unproject(b),originalEvent:a}),this._defaultPrevented=!1}}class fl extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a){super(e,{originalEvent:a}),this._defaultPrevented=!1}}class qc{constructor(e,r){this._map=e,this._clickTolerance=r.clickTolerance}reset(){delete this._mousedownPos}wheel(e){return this._firePreventable(new fl(e.type,this._map,e))}mousedown(e,r){return this._mousedownPos=r,this._firePreventable(new zr(e.type,this._map,e))}mouseup(e){this._map.fire(new zr(e.type,this._map,e))}click(e,r){this._mousedownPos&&this._mousedownPos.dist(r)>=this._clickTolerance||this._map.fire(new zr(e.type,this._map,e))}dblclick(e){return this._firePreventable(new zr(e.type,this._map,e))}mouseover(e){this._map.fire(new zr(e.type,this._map,e))}mouseout(e){this._map.fire(new zr(e.type,this._map,e))}touchstart(e){return this._firePreventable(new Ss(e.type,this._map,e))}touchmove(e){this._map.fire(new Ss(e.type,this._map,e))}touchend(e){this._map.fire(new Ss(e.type,this._map,e))}touchcancel(e){this._map.fire(new Ss(e.type,this._map,e))}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Uc{constructor(e){this._map=e}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(e){this._map.fire(new zr(e.type,this._map,e))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new zr("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._ignoreContextMenu||this._map.fire(new zr(e.type,this._map,e)),this._map.listens("contextmenu")&&e.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class As{constructor(e){this._map=e}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(e){return this.transform.screenPointToLocation(s.P.convert(e),this._map.terrain)}}class ml{constructor(e,r){this._map=e,this._tr=new As(e),this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=r.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(e,r){this.isEnabled()&&e.shiftKey&&e.button===0&&(A.disableDrag(),this._startPos=this._lastPos=r,this._active=!0)}mousemoveWindow(e,r){if(!this._active)return;const a=r;if(this._lastPos.equals(a)||!this._box&&a.dist(this._startPos)<this._clickTolerance)return;const l=this._startPos;this._lastPos=a,this._box||(this._box=A.create("div","maplibregl-boxzoom",this._container),this._container.classList.add("maplibregl-crosshair"),this._fireEvent("boxzoomstart",e));const p=Math.min(l.x,a.x),g=Math.max(l.x,a.x),b=Math.min(l.y,a.y),k=Math.max(l.y,a.y);A.setTransform(this._box,`translate(${p}px,${b}px)`),this._box.style.width=g-p+"px",this._box.style.height=k-b+"px"}mouseupWindow(e,r){if(!this._active||e.button!==0)return;const a=this._startPos,l=r;if(this.reset(),A.suppressClick(),a.x!==l.x||a.y!==l.y)return this._map.fire(new s.l("boxzoomend",{originalEvent:e})),{cameraAnimation:p=>p.fitScreenCoordinates(a,l,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",e)}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",e))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(A.remove(this._box),this._box=null),A.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(e,r){return this._map.fire(new s.l(e,{originalEvent:r}))}}function la(u,e){if(u.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${u.length}, points ${e.length}`);const r={};for(let a=0;a<u.length;a++)r[u[a].identifier]=e[a];return r}class jc{constructor(e){this.reset(),this.numTouches=e.numTouches}reset(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1}touchstart(e,r,a){(this.centroid||a.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=e.timeStamp),a.length===this.numTouches&&(this.centroid=function(l){const p=new s.P(0,0);for(const g of l)p._add(g);return p.div(l.length)}(r),this.touches=la(a,r)))}touchmove(e,r,a){if(this.aborted||!this.centroid)return;const l=la(a,r);for(const p in this.touches){const g=l[p];(!g||g.dist(this.touches[p])>30)&&(this.aborted=!0)}}touchend(e,r,a){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),a.length===0){const l=!this.aborted&&this.centroid;if(this.reset(),l)return l}}}class ks{constructor(e){this.singleTap=new jc(e),this.numTaps=e.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(e,r,a){this.singleTap.touchstart(e,r,a)}touchmove(e,r,a){this.singleTap.touchmove(e,r,a)}touchend(e,r,a){const l=this.singleTap.touchend(e,r,a);if(l){const p=e.timeStamp-this.lastTime<500,g=!this.lastTap||this.lastTap.dist(l)<30;if(p&&g||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=l,this.count===this.numTaps)return this.reset(),l}}}class Hc{constructor(e){this._tr=new As(e),this._zoomIn=new ks({numTouches:1,numTaps:2}),this._zoomOut=new ks({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(e,r,a){this._zoomIn.touchstart(e,r,a),this._zoomOut.touchstart(e,r,a)}touchmove(e,r,a){this._zoomIn.touchmove(e,r,a),this._zoomOut.touchmove(e,r,a)}touchend(e,r,a){const l=this._zoomIn.touchend(e,r,a),p=this._zoomOut.touchend(e,r,a),g=this._tr;return l?(this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:b=>b.easeTo({duration:300,zoom:g.zoom+1,around:g.unproject(l)},{originalEvent:e})}):p?(this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:b=>b.easeTo({duration:300,zoom:g.zoom-1,around:g.unproject(p)},{originalEvent:e})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class ni{constructor(e){this._enabled=!!e.enable,this._moveStateManager=e.moveStateManager,this._clickTolerance=e.clickTolerance||1,this._moveFunction=e.move,this._activateOnStart=!!e.activateOnStart,e.assignEvents(this),this.reset()}reset(e){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(e)}_move(...e){const r=this._moveFunction(...e);if(r.bearingDelta||r.pitchDelta||r.rollDelta||r.around||r.panDelta)return this._active=!0,r}dragStart(e,r){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(e)&&(this._moveStateManager.startMove(e),this._lastPoint=Array.isArray(r)?r[0]:r,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(e,r){if(!this.isEnabled())return;const a=this._lastPoint;if(!a)return;if(e.preventDefault(),!this._moveStateManager.isValidMoveEvent(e))return void this.reset(e);const l=Array.isArray(r)?r[0]:r;return!this._moved&&l.dist(a)<this._clickTolerance?void 0:(this._moved=!0,this._lastPoint=l,this._move(a,l))}dragEnd(e){this.isEnabled()&&this._lastPoint&&this._moveStateManager.isValidEndEvent(e)&&(this._moved&&A.suppressClick(),this.reset(e))}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}getClickTolerance(){return this._clickTolerance}}const Wi={0:1,2:2};class Ts{constructor(e){this._correctEvent=e.checkCorrectEvent}startMove(e){const r=A.mouseButton(e);this._eventButton=r}endMove(e){delete this._eventButton}isValidStartEvent(e){return this._correctEvent(e)}isValidMoveEvent(e){return!function(r,a){const l=Wi[a];return r.buttons===void 0||(r.buttons&l)!==l}(e,this._eventButton)}isValidEndEvent(e){return A.mouseButton(e)===this._eventButton}}class Zi{constructor(){this._firstTouch=void 0}_isOneFingerTouch(e){return e.targetTouches.length===1}_isSameTouchEvent(e){return e.targetTouches[0].identifier===this._firstTouch}startMove(e){this._firstTouch=e.targetTouches[0].identifier}endMove(e){delete this._firstTouch}isValidStartEvent(e){return this._isOneFingerTouch(e)}isValidMoveEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}isValidEndEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}}class Cs{constructor(e=new Ts({checkCorrectEvent:()=>!0}),r=new Zi){this.mouseMoveStateManager=e,this.oneFingerTouchMoveStateManager=r}_executeRelevantHandler(e,r,a){return e instanceof MouseEvent?r(e):typeof TouchEvent<"u"&&e instanceof TouchEvent?a(e):void 0}startMove(e){this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.startMove(r),r=>this.oneFingerTouchMoveStateManager.startMove(r))}endMove(e){this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.endMove(r),r=>this.oneFingerTouchMoveStateManager.endMove(r))}isValidStartEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidStartEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidStartEvent(r))}isValidMoveEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidMoveEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(r))}isValidEndEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidEndEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidEndEvent(r))}}const ca=u=>{u.mousedown=u.dragStart,u.mousemoveWindow=u.dragMove,u.mouseup=u.dragEnd,u.contextmenu=e=>{e.preventDefault()}};class zh{constructor(e,r){this._clickTolerance=e.clickTolerance||1,this._map=r,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new s.P(0,0)}_shouldBePrevented(e){return e<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(e,r,a){return this._calculateTransform(e,r,a)}touchmove(e,r,a){if(this._active){if(!this._shouldBePrevented(a.length))return e.preventDefault(),this._calculateTransform(e,r,a);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",e)}}touchend(e,r,a){this._calculateTransform(e,r,a),this._active&&this._shouldBePrevented(a.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(e,r,a){a.length>0&&(this._active=!0);const l=la(a,r),p=new s.P(0,0),g=new s.P(0,0);let b=0;for(const I in l){const z=l[I],N=this._touches[I];N&&(p._add(z),g._add(z.sub(N)),b++,l[I]=z)}if(this._touches=l,this._shouldBePrevented(b)||!g.mag())return;const k=g.div(b);return this._sum._add(k),this._sum.mag()<this._clickTolerance?void 0:{around:p.div(b),panDelta:k}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class gl{constructor(){this.reset()}reset(){this._active=!1,delete this._firstTwoTouches}touchstart(e,r,a){this._firstTwoTouches||a.length<2||(this._firstTwoTouches=[a[0].identifier,a[1].identifier],this._start([r[0],r[1]]))}touchmove(e,r,a){if(!this._firstTwoTouches)return;e.preventDefault();const[l,p]=this._firstTwoTouches,g=ua(a,r,l),b=ua(a,r,p);if(!g||!b)return;const k=this._aroundCenter?null:g.add(b).div(2);return this._move([g,b],k,e)}touchend(e,r,a){if(!this._firstTwoTouches)return;const[l,p]=this._firstTwoTouches,g=ua(a,r,l),b=ua(a,r,p);g&&b||(this._active&&A.suppressClick(),this.reset())}touchcancel(){this.reset()}enable(e){this._enabled=!0,this._aroundCenter=!!e&&e.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return!!this._enabled}isActive(){return!!this._active}}function ua(u,e,r){for(let a=0;a<u.length;a++)if(u[a].identifier===r)return e[a]}function yl(u,e){return Math.log(u/e)/Math.LN2}class Es extends gl{reset(){super.reset(),delete this._distance,delete this._startDistance}_start(e){this._startDistance=this._distance=e[0].dist(e[1])}_move(e,r){const a=this._distance;if(this._distance=e[0].dist(e[1]),this._active||!(Math.abs(yl(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:yl(this._distance,a),pinchAround:r}}}function on(u,e){return 180*u.angleWith(e)/Math.PI}class it extends gl{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector}_start(e){this._startVector=this._vector=e[0].sub(e[1]),this._minDiameter=e[0].dist(e[1])}_move(e,r,a){const l=this._vector;if(this._vector=e[0].sub(e[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:on(this._vector,l),pinchAround:r}}_isBelowThreshold(e){this._minDiameter=Math.min(this._minDiameter,e.mag());const r=25/(Math.PI*this._minDiameter)*360,a=on(e,this._startVector);return Math.abs(a)<r}}function ha(u){return Math.abs(u.y)>Math.abs(u.x)}class pa extends gl{constructor(e){super(),this._currentTouchCount=0,this._map=e}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(e,r,a){super.touchstart(e,r,a),this._currentTouchCount=a.length}_start(e){this._lastPoints=e,ha(e[0].sub(e[1]))&&(this._valid=!1)}_move(e,r,a){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const l=e[0].sub(this._lastPoints[0]),p=e[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(l,p,a.timeStamp),this._valid?(this._lastPoints=e,this._active=!0,{pitchDelta:(l.y+p.y)/2*-.5}):void 0}gestureBeginsVertically(e,r,a){if(this._valid!==void 0)return this._valid;const l=e.mag()>=2,p=r.mag()>=2;if(!l&&!p)return;if(!l||!p)return this._firstMove===void 0&&(this._firstMove=a),a-this._firstMove<100&&void 0;const g=e.y>0==r.y>0;return ha(e)&&ha(r)&&g}}const Wc={panStep:100,bearingStep:15,pitchStep:10};class Ps{constructor(e){this._tr=new As(e);const r=Wc;this._panStep=r.panStep,this._bearingStep=r.bearingStep,this._pitchStep=r.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let r=0,a=0,l=0,p=0,g=0;switch(e.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:e.shiftKey?a=-1:(e.preventDefault(),p=-1);break;case 39:e.shiftKey?a=1:(e.preventDefault(),p=1);break;case 38:e.shiftKey?l=1:(e.preventDefault(),g=-1);break;case 40:e.shiftKey?l=-1:(e.preventDefault(),g=1);break;default:return}return this._rotationDisabled&&(a=0,l=0),{cameraAnimation:b=>{const k=this._tr;b.easeTo({duration:300,easeId:"keyboardHandler",easing:uo,zoom:r?Math.round(k.zoom)+r*(e.shiftKey?2:1):k.zoom,bearing:k.bearing+a*this._bearingStep,pitch:k.pitch+l*this._pitchStep,offset:[-p*this._panStep,-g*this._panStep],center:k.center},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function uo(u){return u*(2-u)}const _l=4.000244140625;class Rt{constructor(e,r){this._onTimeout=a=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(a)},this._map=e,this._tr=new As(e),this._triggerRenderFrame=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(e){this._defaultZoomRate=e}setWheelZoomRate(e){this._wheelZoomRate=e}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&e.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(e){return!!this._map.cooperativeGestures.isEnabled()&&!(e.ctrlKey||this._map.cooperativeGestures.isBypassed(e))}wheel(e){if(!this.isEnabled())return;if(this._shouldBePrevented(e))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",e);let r=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const a=L.now(),l=a-(this._lastWheelEventTime||0);this._lastWheelEventTime=a,r!==0&&r%_l==0?this._type="wheel":r!==0&&Math.abs(r)<4?this._type="trackpad":l>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(l*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}_start(e){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const r=A.mousePos(this._map.getCanvas(),e),a=this._tr;this._aroundPoint=this._aroundCenter?a.transform.locationToScreenPoint(s.Q.convert(a.center)):r,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const e=this._tr.transform;if(typeof this._lastExpectedZoom=="number"){const b=e.zoom-this._lastExpectedZoom;typeof this._startZoom=="number"&&(this._startZoom+=b),typeof this._targetZoom=="number"&&(this._targetZoom+=b)}if(this._delta!==0){const b=this._type==="wheel"&&Math.abs(this._delta)>_l?this._wheelZoomRate:this._defaultZoomRate;let k=2/(1+Math.exp(-Math.abs(this._delta*b)));this._delta<0&&k!==0&&(k=1/k);const I=typeof this._targetZoom!="number"?e.scale:s.ac(this._targetZoom);this._targetZoom=e.getConstrained(e.getCameraLngLat(),s.ah(I*k)).zoom,this._type==="wheel"&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const r=typeof this._targetZoom!="number"?e.zoom:this._targetZoom,a=this._startZoom,l=this._easing;let p,g=!1;if(this._type==="wheel"&&a&&l){const b=L.now()-this._lastWheelEventTime,k=Math.min((b+5)/200,1),I=l(k);p=s.B.number(a,r,I),k<1?this._frameId||(this._frameId=!0):g=!0}else p=r,g=!0;return this._active=!0,g&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout},200)),this._lastExpectedZoom=p,{noInertia:!0,needsRenderFrame:!g,zoomDelta:p-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let r=s.cf;if(this._prevEase){const a=this._prevEase,l=(L.now()-a.start)/a.duration,p=a.easing(l+.01)-a.easing(l),g=.27/Math.sqrt(p*p+1e-4)*.01,b=Math.sqrt(.0729-g*g);r=s.cd(g,b,.25,1)}return this._prevEase={start:L.now(),duration:e,easing:r},r}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class da{constructor(e,r){this._clickZoom=e,this._tapZoom=r}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class Bh{constructor(e){this._tr=new As(e),this.reset()}reset(){this._active=!1}dblclick(e,r){return e.preventDefault(),{cameraAnimation:a=>{a.easeTo({duration:300,zoom:this._tr.zoom+(e.shiftKey?-1:1),around:this._tr.unproject(r)},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class vl{constructor(){this._tap=new ks({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(e,r,a){if(!this._swipePoint)if(this._tapTime){const l=r[0],p=e.timeStamp-this._tapTime<500,g=this._tapPoint.dist(l)<30;p&&g?a.length>0&&(this._swipePoint=l,this._swipeTouch=a[0].identifier):this.reset()}else this._tap.touchstart(e,r,a)}touchmove(e,r,a){if(this._tapTime){if(this._swipePoint){if(a[0].identifier!==this._swipeTouch)return;const l=r[0],p=l.y-this._swipePoint.y;return this._swipePoint=l,e.preventDefault(),this._active=!0,{zoomDelta:p/128}}}else this._tap.touchmove(e,r,a)}touchend(e,r,a){if(this._tapTime)this._swipePoint&&a.length===0&&this.reset();else{const l=this._tap.touchend(e,r,a);l&&(this._tapTime=e.timeStamp,this._tapPoint=l)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Zc{constructor(e,r,a){this._el=e,this._mousePan=r,this._touchPan=a}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Kc{constructor(e,r,a,l){this._pitchWithRotate=e.pitchWithRotate,this._rollEnabled=e.rollEnabled,this._mouseRotate=r,this._mousePitch=a,this._mouseRoll=l}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}}class xl{constructor(e,r,a,l){this._el=e,this._touchZoom=r,this._touchRotate=a,this._tapDragZoom=l,this._rotationDisabled=!1,this._enabled=!0}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class fa{constructor(e,r){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=e,this._options=r,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const e=this._map.getCanvasContainer();e.classList.add("maplibregl-cooperative-gestures"),this._container=A.create("div","maplibregl-cooperative-gesture-screen",e);let r=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(r=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const a=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),l=document.createElement("div");l.className="maplibregl-desktop-message",l.textContent=r,this._container.appendChild(l);const p=document.createElement("div");p.className="maplibregl-mobile-message",p.textContent=a,this._container.appendChild(p),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(A.remove(this._container),this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destroyUI()}isEnabled(){return this._enabled}isBypassed(e){return e[this._bypassKey]}notifyGestureBlocked(e,r){this._enabled&&(this._map.fire(new s.l("cooperativegestureprevented",{gestureType:e,originalEvent:r})),this._container.classList.add("maplibregl-show"),setTimeout(()=>{this._container.classList.remove("maplibregl-show")},100))}}const ho=u=>u.zoom||u.drag||u.roll||u.pitch||u.rotate;class Vh extends s.l{}function ma(u){return u.panDelta&&u.panDelta.mag()||u.zoomDelta||u.bearingDelta||u.pitchDelta||u.rollDelta}class Fh{constructor(e,r){this.handleWindowEvent=l=>{this.handleEvent(l,`${l.type}Window`)},this.handleEvent=(l,p)=>{if(l.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const g=l.type==="renderFrame"?void 0:l,b={needsRenderFrame:!1},k={},I={};for(const{handlerName:O,handler:Z,allowed:J}of this._handlers){if(!Z.isEnabled())continue;let ne;if(this._blockedByActive(I,J,O))Z.reset();else if(Z[p||l.type]){if(s.cg(l,p||l.type)){const ie=A.mousePos(this._map.getCanvas(),l);ne=Z[p||l.type](l,ie)}else if(s.ch(l,p||l.type)){const ie=this._getMapTouches(l.touches),oe=A.touchPos(this._map.getCanvas(),ie);ne=Z[p||l.type](l,oe,ie)}else s.ci(p||l.type)||(ne=Z[p||l.type](l));this.mergeHandlerResult(b,k,ne,O,g),ne&&ne.needsRenderFrame&&this._triggerRenderFrame()}(ne||Z.isActive())&&(I[O]=Z)}const z={};for(const O in this._previousActiveHandlers)I[O]||(z[O]=g);this._previousActiveHandlers=I,(Object.keys(z).length||ma(b))&&(this._changes.push([b,k,z]),this._triggerRenderFrame()),(Object.keys(I).length||ma(b))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:N}=b;N&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],N(this._map))},this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Nc(e),this._bearingSnap=r.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(r);const a=this._el;this._listeners=[[a,"touchstart",{passive:!0}],[a,"touchmove",{passive:!1}],[a,"touchend",void 0],[a,"touchcancel",void 0],[a,"mousedown",void 0],[a,"mousemove",void 0],[a,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[a,"mouseover",void 0],[a,"mouseout",void 0],[a,"dblclick",void 0],[a,"click",void 0],[a,"keydown",{capture:!1}],[a,"keyup",void 0],[a,"wheel",{passive:!1}],[a,"contextmenu",void 0],[window,"blur",void 0]];for(const[l,p,g]of this._listeners)A.addEventListener(l,p,l===document?this.handleWindowEvent:this.handleEvent,g)}destroy(){for(const[e,r,a]of this._listeners)A.removeEventListener(e,r,e===document?this.handleWindowEvent:this.handleEvent,a)}_addDefaultHandlers(e){const r=this._map,a=r.getCanvasContainer();this._add("mapEvent",new qc(r,e));const l=r.boxZoom=new ml(r,e);this._add("boxZoom",l),e.interactive&&e.boxZoom&&l.enable();const p=r.cooperativeGestures=new fa(r,e.cooperativeGestures);this._add("cooperativeGestures",p),e.cooperativeGestures&&p.enable();const g=new Hc(r),b=new Bh(r);r.doubleClickZoom=new da(b,g),this._add("tapZoom",g),this._add("clickZoom",b),e.interactive&&e.doubleClickZoom&&r.doubleClickZoom.enable();const k=new vl;this._add("tapDragZoom",k);const I=r.touchPitch=new pa(r);this._add("touchPitch",I),e.interactive&&e.touchPitch&&r.touchPitch.enable(e.touchPitch);const z=()=>r.project(r.getCenter()),N=function({enable:fe,clickTolerance:ge,aroundCenter:xe=!0,minPixelCenterThreshold:_e=100,rotateDegreesPerPixelMoved:Ee=.8},Fe){const Le=new Ts({checkCorrectEvent:Re=>A.mouseButton(Re)===0&&Re.ctrlKey||A.mouseButton(Re)===2&&!Re.ctrlKey});return new ni({clickTolerance:ge,move:(Re,De)=>{const Ye=Fe();if(xe&&Math.abs(Ye.y-Re.y)>_e)return{bearingDelta:s.ce(new s.P(Re.x,De.y),De,Ye)};let Qe=(De.x-Re.x)*Ee;return xe&&De.y<Ye.y&&(Qe=-Qe),{bearingDelta:Qe}},moveStateManager:Le,enable:fe,assignEvents:ca})}(e,z),O=function({enable:fe,clickTolerance:ge,pitchDegreesPerPixelMoved:xe=-.5}){const _e=new Ts({checkCorrectEvent:Ee=>A.mouseButton(Ee)===0&&Ee.ctrlKey||A.mouseButton(Ee)===2});return new ni({clickTolerance:ge,move:(Ee,Fe)=>({pitchDelta:(Fe.y-Ee.y)*xe}),moveStateManager:_e,enable:fe,assignEvents:ca})}(e),Z=function({enable:fe,clickTolerance:ge,rollDegreesPerPixelMoved:xe=.3},_e){const Ee=new Ts({checkCorrectEvent:Fe=>A.mouseButton(Fe)===2&&Fe.ctrlKey});return new ni({clickTolerance:ge,move:(Fe,Le)=>{const Re=_e();let De=(Le.x-Fe.x)*xe;return Le.y<Re.y&&(De=-De),{rollDelta:De}},moveStateManager:Ee,enable:fe,assignEvents:ca})}(e,z);r.dragRotate=new Kc(e,N,O,Z),this._add("mouseRotate",N,["mousePitch"]),this._add("mousePitch",O,["mouseRotate","mouseRoll"]),this._add("mouseRoll",Z,["mousePitch"]),e.interactive&&e.dragRotate&&r.dragRotate.enable();const J=function({enable:fe,clickTolerance:ge}){const xe=new Ts({checkCorrectEvent:_e=>A.mouseButton(_e)===0&&!_e.ctrlKey});return new ni({clickTolerance:ge,move:(_e,Ee)=>({around:Ee,panDelta:Ee.sub(_e)}),activateOnStart:!0,moveStateManager:xe,enable:fe,assignEvents:ca})}(e),ne=new zh(e,r);r.dragPan=new Zc(a,J,ne),this._add("mousePan",J),this._add("touchPan",ne,["touchZoom","touchRotate"]),e.interactive&&e.dragPan&&r.dragPan.enable(e.dragPan);const ie=new it,oe=new Es;r.touchZoomRotate=new xl(a,oe,ie,k),this._add("touchRotate",ie,["touchPan","touchZoom"]),this._add("touchZoom",oe,["touchPan","touchRotate"]),e.interactive&&e.touchZoomRotate&&r.touchZoomRotate.enable(e.touchZoomRotate);const ue=r.scrollZoom=new Rt(r,()=>this._triggerRenderFrame());this._add("scrollZoom",ue,["mousePan"]),e.interactive&&e.scrollZoom&&r.scrollZoom.enable(e.scrollZoom);const me=r.keyboard=new Ps(r);this._add("keyboard",me),e.interactive&&e.keyboard&&r.keyboard.enable(),this._add("blockableMapEvent",new Uc(r))}_add(e,r,a){this._handlers.push({handlerName:e,handler:r,allowed:a}),this._handlersById[e]=r}stop(e){if(!this._updatingCamera){for(const{handler:r}of this._handlers)r.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[]}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!ho(this._eventsInProgress)||this.isZooming()}_blockedByActive(e,r,a){for(const l in e)if(l!==a&&(!r||r.indexOf(l)<0))return!0;return!1}_getMapTouches(e){const r=[];for(const a of e)this._el.contains(a.target)&&r.push(a);return r}mergeHandlerResult(e,r,a,l,p){if(!a)return;s.e(e,a);const g={handlerName:l,originalEvent:a.originalEvent||p};a.zoomDelta!==void 0&&(r.zoom=g),a.panDelta!==void 0&&(r.drag=g),a.rollDelta!==void 0&&(r.roll=g),a.pitchDelta!==void 0&&(r.pitch=g),a.bearingDelta!==void 0&&(r.rotate=g)}_applyChanges(){const e={},r={},a={};for(const[l,p,g]of this._changes)l.panDelta&&(e.panDelta=(e.panDelta||new s.P(0,0))._add(l.panDelta)),l.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+l.zoomDelta),l.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+l.bearingDelta),l.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+l.pitchDelta),l.rollDelta&&(e.rollDelta=(e.rollDelta||0)+l.rollDelta),l.around!==void 0&&(e.around=l.around),l.pinchAround!==void 0&&(e.pinchAround=l.pinchAround),l.noInertia&&(e.noInertia=l.noInertia),s.e(r,p),s.e(a,g);this._updateMapTransform(e,r,a),this._changes=[]}_updateMapTransform(e,r,a){const l=this._map,p=l._getTransformForUpdate(),g=l.terrain;if(!(ma(e)||g&&this._terrainMovement))return this._fireEvents(r,a,!0);l._stop(!0);let{panDelta:b,zoomDelta:k,bearingDelta:I,pitchDelta:z,rollDelta:N,around:O,pinchAround:Z}=e;Z!==void 0&&(O=Z),O=O||l.transform.centerPoint,g&&!p.isPointOnMapSurface(O)&&(O=p.centerPoint);const J={panDelta:b,zoomDelta:k,rollDelta:N,pitchDelta:z,bearingDelta:I,around:O};this._map.cameraHelper.useGlobeControls&&!p.isPointOnMapSurface(O)&&(O=p.centerPoint);const ne=O.distSqr(p.centerPoint)<.01?p.center:p.screenPointToLocation(b?O.sub(b):O);g?(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(J,p),this._terrainMovement||!r.drag&&!r.zoom?r.drag&&this._terrainMovement?p.setCenter(p.screenPointToLocation(p.centerPoint.sub(b))):this._map.cameraHelper.handleMapControlsPan(J,p,ne):(this._terrainMovement=!0,this._map._elevationFreeze=!0,this._map.cameraHelper.handleMapControlsPan(J,p,ne))):(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(J,p),this._map.cameraHelper.handleMapControlsPan(J,p,ne)),l._applyUpdatedTransform(p),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(r,a,!0)}_fireEvents(e,r,a){const l=ho(this._eventsInProgress),p=ho(e),g={};for(const N in e){const{originalEvent:O}=e[N];this._eventsInProgress[N]||(g[`${N}start`]=O),this._eventsInProgress[N]=e[N]}!l&&p&&this._fireEvent("movestart",p.originalEvent);for(const N in g)this._fireEvent(N,g[N]);p&&this._fireEvent("move",p.originalEvent);for(const N in e){const{originalEvent:O}=e[N];this._fireEvent(N,O)}const b={};let k;for(const N in this._eventsInProgress){const{handlerName:O,originalEvent:Z}=this._eventsInProgress[N];this._handlersById[O].isActive()||(delete this._eventsInProgress[N],k=r[O]||Z,b[`${N}end`]=k)}for(const N in b)this._fireEvent(N,b[N]);const I=ho(this._eventsInProgress),z=(l||p)&&!I;if(z&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const N=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&N.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(N)}if(a&&z){this._updatingCamera=!0;const N=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),O=Z=>Z!==0&&-this._bearingSnap<Z&&Z<this._bearingSnap;!N||!N.essential&&L.prefersReducedMotion?(this._map.fire(new s.l("moveend",{originalEvent:k})),O(this._map.getBearing())&&this._map.resetNorth()):(O(N.bearing||this._map.getBearing())&&(N.bearing=0),N.freezeElevation=!0,this._map.easeTo(N,{originalEvent:k})),this._updatingCamera=!1}}_fireEvent(e,r){this._map.fire(new s.l(e,r?{originalEvent:r}:{}))}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add(e=>{delete this._frameId,this.handleEvent(new Vh("renderFrame",{timeStamp:e})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Oh extends s.E{constructor(e,r,a){super(),this._renderFrameCallback=()=>{const l=Math.min((L.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(l)),l<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=e,this._bearingSnap=a.bearingSnap,this.cameraHelper=r,this.on("moveend",()=>{delete this._requestedCameraState})}migrateProjection(e,r){e.apply(this.transform),this.transform=e,this.cameraHelper=r}getCenter(){return new s.Q(this.transform.center.lng,this.transform.center.lat)}setCenter(e,r){return this.jumpTo({center:e},r)}getCenterElevation(){return this.transform.elevation}setCenterElevation(e,r){return this.jumpTo({elevation:e},r),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(e){this._centerClampedToGround=e}panBy(e,r,a){return e=s.P.convert(e).mult(-1),this.panTo(this.transform.center,s.e({offset:e},r),a)}panTo(e,r,a){return this.easeTo(s.e({center:e},r),a)}getZoom(){return this.transform.zoom}setZoom(e,r){return this.jumpTo({zoom:e},r),this}zoomTo(e,r,a){return this.easeTo(s.e({zoom:e},r),a)}zoomIn(e,r){return this.zoomTo(this.getZoom()+1,e,r),this}zoomOut(e,r){return this.zoomTo(this.getZoom()-1,e,r),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(e,r){return e!=this.transform.fov&&(this.transform.setFov(e),this.fire(new s.l("movestart",r)).fire(new s.l("move",r)).fire(new s.l("moveend",r))),this}getBearing(){return this.transform.bearing}setBearing(e,r){return this.jumpTo({bearing:e},r),this}getPadding(){return this.transform.padding}setPadding(e,r){return this.jumpTo({padding:e},r),this}rotateTo(e,r,a){return this.easeTo(s.e({bearing:e},r),a)}resetNorth(e,r){return this.rotateTo(0,s.e({duration:1e3},e),r),this}resetNorthPitch(e,r){return this.easeTo(s.e({bearing:0,pitch:0,roll:0,duration:1e3},e),r),this}snapToNorth(e,r){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(e,r):this}getPitch(){return this.transform.pitch}setPitch(e,r){return this.jumpTo({pitch:e},r),this}getRoll(){return this.transform.roll}setRoll(e,r){return this.jumpTo({roll:e},r),this}cameraForBounds(e,r){e=Ke.convert(e).adjustAntiMeridian();const a=r&&r.bearing||0;return this._cameraForBoxAndBearing(e.getNorthWest(),e.getSouthEast(),a,r)}_cameraForBoxAndBearing(e,r,a,l){const p={top:0,bottom:0,right:0,left:0};if(typeof(l=s.e({padding:p,offset:[0,0],maxZoom:this.transform.maxZoom},l)).padding=="number"){const I=l.padding;l.padding={top:I,bottom:I,right:I,left:I}}const g=s.e(p,l.padding);l.padding=g;const b=this.transform,k=new Ke(e,r);return this.cameraHelper.cameraForBoxAndBearing(l,g,k,a,b)}fitBounds(e,r,a){return this._fitInternal(this.cameraForBounds(e,r),r,a)}fitScreenCoordinates(e,r,a,l,p){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(s.P.convert(e)),this.transform.screenPointToLocation(s.P.convert(r)),a,l),l,p)}_fitInternal(e,r,a){return e?(delete(r=s.e(e,r)).padding,r.linear?this.easeTo(r,a):this.flyTo(r,a)):this}jumpTo(e,r){this.stop();const a=this._getTransformForUpdate();let l=!1,p=!1,g=!1;const b=a.zoom;this.cameraHelper.handleJumpToCenterZoom(a,e);const k=a.zoom!==b;return"elevation"in e&&a.elevation!==+e.elevation&&a.setElevation(+e.elevation),"bearing"in e&&a.bearing!==+e.bearing&&(l=!0,a.setBearing(+e.bearing)),"pitch"in e&&a.pitch!==+e.pitch&&(p=!0,a.setPitch(+e.pitch)),"roll"in e&&a.roll!==+e.roll&&(g=!0,a.setRoll(+e.roll)),e.padding==null||a.isPaddingEqual(e.padding)||a.setPadding(e.padding),this._applyUpdatedTransform(a),this.fire(new s.l("movestart",r)).fire(new s.l("move",r)),k&&this.fire(new s.l("zoomstart",r)).fire(new s.l("zoom",r)).fire(new s.l("zoomend",r)),l&&this.fire(new s.l("rotatestart",r)).fire(new s.l("rotate",r)).fire(new s.l("rotateend",r)),p&&this.fire(new s.l("pitchstart",r)).fire(new s.l("pitch",r)).fire(new s.l("pitchend",r)),g&&this.fire(new s.l("rollstart",r)).fire(new s.l("roll",r)).fire(new s.l("rollend",r)),this.fire(new s.l("moveend",r))}calculateCameraOptionsFromTo(e,r,a,l=0){const p=s.$.fromLngLat(e,r),g=s.$.fromLngLat(a,l),b=g.x-p.x,k=g.y-p.y,I=g.z-p.z,z=Math.hypot(b,k,I);if(z===0)throw new Error("Can't calculate camera options with same From and To");const N=Math.hypot(b,k),O=s.ah(this.transform.cameraToCenterDistance/z/this.transform.tileSize),Z=180*Math.atan2(b,-k)/Math.PI;let J=180*Math.acos(N/z)/Math.PI;return J=I<0?90-J:90+J,{center:g.toLngLat(),elevation:l,zoom:O,pitch:J,bearing:Z}}calculateCameraOptionsFromCameraLngLatAltRotation(e,r,a,l,p){const g=this.transform.calculateCenterFromCameraLngLatAlt(e,r,a,l);return{center:g.center,elevation:g.elevation,zoom:g.zoom,bearing:a,pitch:l,roll:p}}easeTo(e,r){this._stop(!1,e.easeId),((e=s.e({offset:[0,0],duration:500,easing:s.cf},e)).animate===!1||!e.essential&&L.prefersReducedMotion)&&(e.duration=0);const a=this._getTransformForUpdate(),l=this.getBearing(),p=a.pitch,g=a.roll,b="bearing"in e?this._normalizeBearing(e.bearing,l):l,k="pitch"in e?+e.pitch:p,I="roll"in e?this._normalizeBearing(e.roll,g):g,z="padding"in e?e.padding:a.padding,N=s.P.convert(e.offset);let O,Z;e.around&&(O=s.Q.convert(e.around),Z=a.locationToScreenPoint(O));const J={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching,rolling:this._rolling},ne=this.cameraHelper.handleEaseTo(a,{bearing:b,pitch:k,roll:I,padding:z,around:O,aroundPoint:Z,offsetAsPoint:N,offset:e.offset,zoom:e.zoom,center:e.center});return this._rotating=this._rotating||l!==b,this._pitching=this._pitching||k!==p,this._rolling=this._rolling||I!==g,this._padding=!a.isPaddingEqual(z),this._zooming=this._zooming||ne.isZooming,this._easeId=e.easeId,this._prepareEase(r,e.noMoveStart,J),this.terrain&&this._prepareElevation(ne.elevationCenter),this._ease(ie=>{ne.easeFunc(ie),this.terrain&&!e.freezeElevation&&this._updateElevation(ie),this._applyUpdatedTransform(a),this._fireMoveEvents(r)},ie=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(r,ie)},e),this}_prepareEase(e,r,a={}){this._moving=!0,r||a.moving||this.fire(new s.l("movestart",e)),this._zooming&&!a.zooming&&this.fire(new s.l("zoomstart",e)),this._rotating&&!a.rotating&&this.fire(new s.l("rotatestart",e)),this._pitching&&!a.pitching&&this.fire(new s.l("pitchstart",e)),this._rolling&&!a.rolling&&this.fire(new s.l("rollstart",e))}_prepareElevation(e){this._elevationCenter=e,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(e,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(e){this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const r=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&r!==this._elevationTarget){const a=this._elevationTarget-this._elevationStart;this._elevationStart+=e*(a-(r-(a*e+this._elevationStart))/(1-e)),this._elevationTarget=r}this.transform.setElevation(s.B.number(this._elevationStart,this._elevationTarget,e))}_finalizeElevation(){this._elevationFreeze=!1,this.getCenterClampedToGround()&&this.transform.recalculateZoomAndCenter(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate||this.terrain?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_elevateCameraIfInsideTerrain(e){if(!this.terrain&&e.elevation>=0&&e.pitch<=90)return{};const r=e.getCameraLngLat(),a=e.getCameraAltitude(),l=this.terrain?this.terrain.getElevationForLngLatZoom(r,e.zoom):0;if(a<l){const p=this.calculateCameraOptionsFromTo(r,l,e.center,e.elevation);return{pitch:p.pitch,zoom:p.zoom}}return{}}_applyUpdatedTransform(e){const r=[];if(r.push(l=>this._elevateCameraIfInsideTerrain(l)),this.transformCameraUpdate&&r.push(l=>this.transformCameraUpdate(l)),!r.length)return;const a=e.clone();for(const l of r){const p=a.clone(),{center:g,zoom:b,roll:k,pitch:I,bearing:z,elevation:N}=l(p);g&&p.setCenter(g),N!==void 0&&p.setElevation(N),b!==void 0&&p.setZoom(b),k!==void 0&&p.setRoll(k),I!==void 0&&p.setPitch(I),z!==void 0&&p.setBearing(z),a.apply(p)}this.transform.apply(a)}_fireMoveEvents(e){this.fire(new s.l("move",e)),this._zooming&&this.fire(new s.l("zoom",e)),this._rotating&&this.fire(new s.l("rotate",e)),this._pitching&&this.fire(new s.l("pitch",e)),this._rolling&&this.fire(new s.l("roll",e))}_afterEase(e,r){if(this._easeId&&r&&this._easeId===r)return;delete this._easeId;const a=this._zooming,l=this._rotating,p=this._pitching,g=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,a&&this.fire(new s.l("zoomend",e)),l&&this.fire(new s.l("rotateend",e)),p&&this.fire(new s.l("pitchend",e)),g&&this.fire(new s.l("rollend",e)),this.fire(new s.l("moveend",e))}flyTo(e,r){if(!e.essential&&L.prefersReducedMotion){const De=s.O(e,["center","zoom","bearing","pitch","roll","elevation"]);return this.jumpTo(De,r)}this.stop(),e=s.e({offset:[0,0],speed:1.2,curve:1.42,easing:s.cf},e);const a=this._getTransformForUpdate(),l=a.bearing,p=a.pitch,g=a.roll,b=a.padding,k="bearing"in e?this._normalizeBearing(e.bearing,l):l,I="pitch"in e?+e.pitch:p,z="roll"in e?this._normalizeBearing(e.roll,g):g,N="padding"in e?e.padding:a.padding,O=s.P.convert(e.offset);let Z=a.centerPoint.add(O);const J=a.screenPointToLocation(Z),ne=this.cameraHelper.handleFlyTo(a,{bearing:k,pitch:I,roll:z,padding:N,locationAtOffset:J,offsetAsPoint:O,center:e.center,minZoom:e.minZoom,zoom:e.zoom});let ie=e.curve;const oe=Math.max(a.width,a.height),ue=oe/ne.scaleOfZoom,me=ne.pixelPathLength;typeof ne.scaleOfMinZoom=="number"&&(ie=Math.sqrt(oe/ne.scaleOfMinZoom/me*2));const fe=ie*ie;function ge(De){const Ye=(ue*ue-oe*oe+(De?-1:1)*fe*fe*me*me)/(2*(De?ue:oe)*fe*me);return Math.log(Math.sqrt(Ye*Ye+1)-Ye)}function xe(De){return(Math.exp(De)-Math.exp(-De))/2}function _e(De){return(Math.exp(De)+Math.exp(-De))/2}const Ee=ge(!1);let Fe=function(De){return _e(Ee)/_e(Ee+ie*De)},Le=function(De){return oe*((_e(Ee)*(xe(Ye=Ee+ie*De)/_e(Ye))-xe(Ee))/fe)/me;var Ye},Re=(ge(!0)-Ee)/ie;if(Math.abs(me)<2e-6||!isFinite(Re)){if(Math.abs(oe-ue)<1e-6)return this.easeTo(e,r);const De=ue<oe?-1:1;Re=Math.abs(Math.log(ue/oe))/ie,Le=()=>0,Fe=Ye=>Math.exp(De*ie*Ye)}return e.duration="duration"in e?+e.duration:1e3*Re/("screenSpeed"in e?+e.screenSpeed/ie:+e.speed),e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=l!==k,this._pitching=I!==p,this._rolling=z!==g,this._padding=!a.isPaddingEqual(N),this._prepareEase(r,!1),this.terrain&&this._prepareElevation(ne.targetCenter),this._ease(De=>{const Ye=De*Re,Qe=1/Fe(Ye),We=Le(Ye);this._rotating&&a.setBearing(s.B.number(l,k,De)),this._pitching&&a.setPitch(s.B.number(p,I,De)),this._rolling&&a.setRoll(s.B.number(g,z,De)),this._padding&&(a.interpolatePadding(b,N,De),Z=a.centerPoint.add(O)),ne.easeFunc(De,Qe,We,Z),this.terrain&&!e.freezeElevation&&this._updateElevation(De),this._applyUpdatedTransform(a),this._fireMoveEvents(r)},()=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(r)},e),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(e,r){var a;if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const l=this._onEaseEnd;delete this._onEaseEnd,l.call(this,r)}return e||(a=this.handlers)===null||a===void 0||a.stop(!1),this}_ease(e,r,a){a.animate===!1||a.duration===0?(e(1),r()):(this._easeStart=L.now(),this._easeOptions=a,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(e,r){e=s.aL(e,-180,180);const a=Math.abs(e-r);return Math.abs(e-360-r)<a&&(e-=360),Math.abs(e+360-r)<a&&(e+=360),e}queryTerrainElevation(e){return this.terrain?this.terrain.getElevationForLngLatZoom(s.Q.convert(e),this.transform.tileZoom):null}}const pn={compact:!0,customAttribution:'<a href="https://maplibre.org/" target="_blank">MapLibre</a>'};class nr{constructor(e=pn){this._toggleAttribution=()=>{this._container.classList.contains("maplibregl-compact")&&(this._container.classList.contains("maplibregl-compact-show")?(this._container.setAttribute("open",""),this._container.classList.remove("maplibregl-compact-show")):(this._container.classList.add("maplibregl-compact-show"),this._container.removeAttribute("open")))},this._updateData=r=>{!r||r.sourceDataType!=="metadata"&&r.sourceDataType!=="visibility"&&r.dataType!=="style"&&r.type!=="terrain"||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute("open",""):this._container.classList.contains("maplibregl-compact")||this._container.classList.contains("maplibregl-attrib-empty")||(this._container.setAttribute("open",""),this._container.classList.add("maplibregl-compact","maplibregl-compact-show")):(this._container.setAttribute("open",""),this._container.classList.contains("maplibregl-compact")&&this._container.classList.remove("maplibregl-compact","maplibregl-compact-show"))},this._updateCompactMinimize=()=>{this._container.classList.contains("maplibregl-compact")&&this._container.classList.contains("maplibregl-compact-show")&&this._container.classList.remove("maplibregl-compact-show")},this.options=e}getDefaultPosition(){return"bottom-right"}onAdd(e){return this._map=e,this._compact=this.options.compact,this._container=A.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=A.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=A.create("div","maplibregl-ctrl-attrib-inner",this._container),this._updateAttributions(),this._updateCompact(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("terrain",this._updateData),this._map.on("resize",this._updateCompact),this._map.on("drag",this._updateCompactMinimize),this._container}onRemove(){A.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("terrain",this._updateData),this._map.off("resize",this._updateCompact),this._map.off("drag",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(e,r){const a=this._map._getUIString(`AttributionControl.${r}`);e.title=a,e.setAttribute("aria-label",a)}_updateAttributions(){if(!this._map.style)return;let e=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=e.concat(this.options.customAttribution.map(l=>typeof l!="string"?"":l)):typeof this.options.customAttribution=="string"&&e.push(this.options.customAttribution)),this._map.style.stylesheet){const l=this._map.style.stylesheet;this.styleOwner=l.owner,this.styleId=l.id}const r=this._map.style.sourceCaches;for(const l in r){const p=r[l];if(p.used||p.usedForTerrain){const g=p.getSource();g.attribution&&e.indexOf(g.attribution)<0&&e.push(g.attribution)}}e=e.filter(l=>String(l).trim()),e.sort((l,p)=>l.length-p.length),e=e.filter((l,p)=>{for(let g=p+1;g<e.length;g++)if(e[g].indexOf(l)>=0)return!1;return!0});const a=e.join(" | ");a!==this._attribHTML&&(this._attribHTML=a,e.length?(this._innerContainer.innerHTML=A.sanitize(a),this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class po{constructor(e={}){this._updateCompact=()=>{const r=this._container.children;if(r.length){const a=r[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&a.classList.add("maplibregl-compact"):a.classList.remove("maplibregl-compact")}},this.options=e}getDefaultPosition(){return"bottom-left"}onAdd(e){this._map=e,this._compact=this.options&&this.options.compact,this._container=A.create("div","maplibregl-ctrl");const r=A.create("a","maplibregl-ctrl-logo");return r.target="_blank",r.rel="noopener nofollow",r.href="https://maplibre.org/",r.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),r.setAttribute("rel","noopener nofollow"),this._container.appendChild(r),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){A.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class bl{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(e){const r=++this._id;return this._queue.push({callback:e,id:r,cancelled:!1}),r}remove(e){const r=this._currentlyRunning,a=r?this._queue.concat(r):this._queue;for(const l of a)if(l.id===e)return void(l.cancelled=!0)}run(e=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const r=this._currentlyRunning=this._queue;this._queue=[];for(const a of r)if(!a.cancelled&&(a.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Gc=s.aG([{name:"a_pos3d",type:"Int16",components:3}]);class Jc extends s.E{constructor(e){super(),this._lastTilesetChange=L.now(),this.sourceCache=e,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=e._source.tileSize*2**this.deltaZoom,e.usedForTerrain=!0,e.tileSize=this.tileSize}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(e,r){this.sourceCache.update(e,r),this._renderableTilesKeys=[];const a={};for(const l of be(e,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:r,calculateTileZoom:this.sourceCache._source.calculateTileZoom}))a[l.key]=!0,this._renderableTilesKeys.push(l.key),this._tiles[l.key]||(l.terrainRttPosMatrix32f=new Float64Array(16),s.bQ(l.terrainRttPosMatrix32f,0,s.Z,s.Z,0,0,1),this._tiles[l.key]=new Ri(l,this.tileSize),this._lastTilesetChange=L.now());for(const l in this._tiles)a[l]||delete this._tiles[l]}freeRtt(e){for(const r in this._tiles){const a=this._tiles[r];(!e||a.tileID.equals(e)||a.tileID.isChildOf(e)||e.isChildOf(a.tileID))&&(a.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(e=>this.getTileByID(e))}getTileByID(e){return this._tiles[e]}getTerrainCoords(e,r){return r?this._getTerrainCoordsForTileRanges(e,r):this._getTerrainCoordsForRegularTile(e)}_getTerrainCoordsForRegularTile(e){const r={};for(const a of this._renderableTilesKeys){const l=this._tiles[a].tileID,p=e.clone(),g=s.b2();if(l.canonical.equals(e.canonical))s.bQ(g,0,s.Z,s.Z,0,0,1);else if(l.canonical.isChildOf(e.canonical)){const b=l.canonical.z-e.canonical.z,k=l.canonical.x-(l.canonical.x>>b<<b),I=l.canonical.y-(l.canonical.y>>b<<b),z=s.Z>>b;s.bQ(g,0,z,z,0,0,1),s.L(g,g,[-k*z,-I*z,0])}else{if(!e.canonical.isChildOf(l.canonical))continue;{const b=e.canonical.z-l.canonical.z,k=e.canonical.x-(e.canonical.x>>b<<b),I=e.canonical.y-(e.canonical.y>>b<<b),z=s.Z>>b;s.bQ(g,0,s.Z,s.Z,0,0,1),s.L(g,g,[k*z,I*z,0]),s.M(g,g,[1/2**b,1/2**b,0])}}p.terrainRttPosMatrix32f=new Float32Array(g),r[a]=p}return r}_getTerrainCoordsForTileRanges(e,r){const a={};for(const l of this._renderableTilesKeys){const p=this._tiles[l].tileID;if(!this._isWithinTileRanges(p,r))continue;const g=e.clone(),b=s.b2();if(p.canonical.z===e.canonical.z){const k=e.canonical.x-p.canonical.x,I=e.canonical.y-p.canonical.y;s.bQ(b,0,s.Z,s.Z,0,0,1),s.L(b,b,[k*s.Z,I*s.Z,0])}else if(p.canonical.z>e.canonical.z){const k=p.canonical.z-e.canonical.z,I=p.canonical.x-(p.canonical.x>>k<<k),z=p.canonical.y-(p.canonical.y>>k<<k),N=e.canonical.x-(p.canonical.x>>k),O=e.canonical.y-(p.canonical.y>>k),Z=s.Z>>k;s.bQ(b,0,Z,Z,0,0,1),s.L(b,b,[-I*Z+N*s.Z,-z*Z+O*s.Z,0])}else{const k=e.canonical.z-p.canonical.z,I=e.canonical.x-(e.canonical.x>>k<<k),z=e.canonical.y-(e.canonical.y>>k<<k),N=(e.canonical.x>>k)-p.canonical.x,O=(e.canonical.y>>k)-p.canonical.y,Z=s.Z<<k;s.bQ(b,0,Z,Z,0,0,1),s.L(b,b,[I*s.Z+N*Z,z*s.Z+O*Z,0])}g.terrainRttPosMatrix32f=new Float32Array(b),a[l]=g}return a}getSourceTile(e,r){const a=this.sourceCache._source;let l=e.overscaledZ-this.deltaZoom;if(l>a.maxzoom&&(l=a.maxzoom),l<a.minzoom)return null;this._sourceTileCache[e.key]||(this._sourceTileCache[e.key]=e.scaledTo(l).key);let p=this.sourceCache.getTileByID(this._sourceTileCache[e.key]);if((!p||!p.dem)&&r)for(;l>=a.minzoom&&(!p||!p.dem);)p=this.sourceCache.getTileByID(e.scaledTo(l--).key);return p}anyTilesAfterTime(e=Date.now()){return this._lastTilesetChange>=e}_isWithinTileRanges(e,r){return r[e.canonical.z]&&e.canonical.x>=r[e.canonical.z].minTileX&&e.canonical.x<=r[e.canonical.z].maxTileX&&e.canonical.y>=r[e.canonical.z].minTileY&&e.canonical.y<=r[e.canonical.z].maxTileY}}class Xc{constructor(e,r,a){this._meshCache={},this.painter=e,this.sourceCache=new Jc(r),this.options=a,this.exaggeration=typeof a.exaggeration=="number"?a.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(e,r,a,l=s.Z){var p;if(!(r>=0&&r<l&&a>=0&&a<l))return 0;const g=this.getTerrainData(e),b=(p=g.tile)===null||p===void 0?void 0:p.dem;if(!b)return 0;const k=s.cj([],[r/l*s.Z,a/l*s.Z],g.u_terrain_matrix),I=[k[0]*b.dim,k[1]*b.dim],z=Math.floor(I[0]),N=Math.floor(I[1]),O=I[0]-z,Z=I[1]-N;return b.get(z,N)*(1-O)*(1-Z)+b.get(z+1,N)*O*(1-Z)+b.get(z,N+1)*(1-O)*Z+b.get(z+1,N+1)*O*Z}getElevationForLngLatZoom(e,r){if(!s.ck(r,e.wrap()))return 0;const{tileID:a,mercatorX:l,mercatorY:p}=this._getOverscaledTileIDFromLngLatZoom(e,r);return this.getElevation(a,l%s.Z,p%s.Z,s.Z)}getElevation(e,r,a,l=s.Z){return this.getDEMElevation(e,r,a,l)*this.exaggeration}getTerrainData(e){if(!this._emptyDemTexture){const l=this.painter.context,p=new s.R({width:1,height:1},new Uint8Array(4));this._emptyDepthTexture=new Ze(l,p,l.gl.RGBA,{premultiply:!1}),this._emptyDemUnpack=[0,0,0,0],this._emptyDemTexture=new Ze(l,new s.R({width:1,height:1}),l.gl.RGBA,{premultiply:!1}),this._emptyDemTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._emptyDemMatrix=s.ad([])}const r=this.sourceCache.getSourceTile(e,!0);if(r&&r.dem&&(!r.demTexture||r.needsTerrainPrepare)){const l=this.painter.context;r.demTexture=this.painter.getTileTexture(r.dem.stride),r.demTexture?r.demTexture.update(r.dem.getPixels(),{premultiply:!1}):r.demTexture=new Ze(l,r.dem.getPixels(),l.gl.RGBA,{premultiply:!1}),r.demTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),r.needsTerrainPrepare=!1}const a=r&&r+r.tileID.key+e.key;if(a&&!this._demMatrixCache[a]){const l=this.sourceCache.sourceCache._source.maxzoom;let p=e.canonical.z-r.tileID.canonical.z;e.overscaledZ>e.canonical.z&&(e.canonical.z>=l?p=e.canonical.z-l:s.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const g=e.canonical.x-(e.canonical.x>>p<<p),b=e.canonical.y-(e.canonical.y>>p<<p),k=s.cl(new Float64Array(16),[1/(s.Z<<p),1/(s.Z<<p),0]);s.L(k,k,[g*s.Z,b*s.Z,0]),this._demMatrixCache[e.key]={matrix:k,coord:e}}return{u_depth:2,u_terrain:3,u_terrain_dim:r&&r.dem&&r.dem.dim||1,u_terrain_matrix:a?this._demMatrixCache[e.key].matrix:this._emptyDemMatrix,u_terrain_unpack:r&&r.dem&&r.dem.getUnpackVector()||this._emptyDemUnpack,u_terrain_exaggeration:this.exaggeration,texture:(r&&r.demTexture||this._emptyDemTexture).texture,depthTexture:(this._fboDepthTexture||this._emptyDepthTexture).texture,tile:r}}getFramebuffer(e){const r=this.painter,a=r.width/devicePixelRatio,l=r.height/devicePixelRatio;return!this._fbo||this._fbo.width===a&&this._fbo.height===l||(this._fbo.destroy(),this._fboCoordsTexture.destroy(),this._fboDepthTexture.destroy(),delete this._fbo,delete this._fboDepthTexture,delete this._fboCoordsTexture),this._fboCoordsTexture||(this._fboCoordsTexture=new Ze(r.context,{width:a,height:l,data:null},r.context.gl.RGBA,{premultiply:!1}),this._fboCoordsTexture.bind(r.context.gl.NEAREST,r.context.gl.CLAMP_TO_EDGE)),this._fboDepthTexture||(this._fboDepthTexture=new Ze(r.context,{width:a,height:l,data:null},r.context.gl.RGBA,{premultiply:!1}),this._fboDepthTexture.bind(r.context.gl.NEAREST,r.context.gl.CLAMP_TO_EDGE)),this._fbo||(this._fbo=r.context.createFramebuffer(a,l,!0,!1),this._fbo.depthAttachment.set(r.context.createRenderbuffer(r.context.gl.DEPTH_COMPONENT16,a,l))),this._fbo.colorAttachment.set(e==="coords"?this._fboCoordsTexture.texture:this._fboDepthTexture.texture),this._fbo}getCoordsTexture(){const e=this.painter.context;if(this._coordsTexture)return this._coordsTexture;const r=new Uint8Array(this._coordsTextureSize*this._coordsTextureSize*4);for(let p=0,g=0;p<this._coordsTextureSize;p++)for(let b=0;b<this._coordsTextureSize;b++,g+=4)r[g+0]=255&b,r[g+1]=255&p,r[g+2]=b>>8<<4|p>>8,r[g+3]=0;const a=new s.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(r.buffer)),l=new Ze(e,a,e.gl.RGBA,{premultiply:!1});return l.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=l,l}pointCoordinate(e){this.painter.maybeDrawDepthAndCoords(!0);const r=new Uint8Array(4),a=this.painter.context,l=a.gl,p=Math.round(e.x*this.painter.pixelRatio/devicePixelRatio),g=Math.round(e.y*this.painter.pixelRatio/devicePixelRatio),b=Math.round(this.painter.height/devicePixelRatio);a.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),l.readPixels(p,b-g-1,1,1,l.RGBA,l.UNSIGNED_BYTE,r),a.bindFramebuffer.set(null);const k=r[0]+(r[2]>>4<<8),I=r[1]+((15&r[2])<<8),z=this.coordsIndex[255-r[3]],N=z&&this.sourceCache.getTileByID(z);if(!N)return null;const O=this._coordsTextureSize,Z=(1<<N.tileID.canonical.z)*O;return new s.$((N.tileID.canonical.x*O+k)/Z+N.tileID.wrap,(N.tileID.canonical.y*O+I)/Z,this.getElevation(N.tileID,k,I,O))}depthAtPoint(e){const r=new Uint8Array(4),a=this.painter.context,l=a.gl;return a.bindFramebuffer.set(this.getFramebuffer("depth").framebuffer),l.readPixels(e.x,this.painter.height/devicePixelRatio-e.y-1,1,1,l.RGBA,l.UNSIGNED_BYTE,r),a.bindFramebuffer.set(null),(r[0]/16777216+r[1]/65536+r[2]/256+r[3])/256}getTerrainMesh(e){var r;const a=((r=this.painter.style.projection)===null||r===void 0?void 0:r.transitionState)>0,l=a&&e.canonical.y===0,p=a&&e.canonical.y===(1<<e.canonical.z)-1,g=`m_${l?"n":""}_${p?"s":""}`;if(this._meshCache[g])return this._meshCache[g];const b=this.painter.context,k=new s.cm,I=new s.aK,z=this.meshSize,N=s.Z/z,O=z*z;for(let _e=0;_e<=z;_e++)for(let Ee=0;Ee<=z;Ee++)k.emplaceBack(Ee*N,_e*N,0);for(let _e=0;_e<O;_e+=z+1)for(let Ee=0;Ee<z;Ee++)I.emplaceBack(Ee+_e,z+Ee+_e+1,z+Ee+_e+2),I.emplaceBack(Ee+_e,z+Ee+_e+2,Ee+_e+1);const Z=k.length,J=Z+(z+1),ne=(z+1)*z,ie=l?s.b9:0,oe=l?0:1,ue=p?s.ba:s.Z,me=p?0:1;for(let _e=0;_e<=z;_e++)k.emplaceBack(_e*N,ie,oe);for(let _e=0;_e<=z;_e++)k.emplaceBack(_e*N,ue,me);for(let _e=0;_e<z;_e++)I.emplaceBack(ne+_e,J+_e,J+_e+1),I.emplaceBack(ne+_e,J+_e+1,ne+_e+1),I.emplaceBack(0+_e,Z+_e+1,Z+_e),I.emplaceBack(0+_e,0+_e+1,Z+_e+1);const fe=k.length,ge=fe+2*(z+1);for(const _e of[0,1])for(let Ee=0;Ee<=z;Ee++)for(const Fe of[0,1])k.emplaceBack(_e*s.Z,Ee*N,Fe);for(let _e=0;_e<2*z;_e+=2)I.emplaceBack(fe+_e,fe+_e+1,fe+_e+3),I.emplaceBack(fe+_e,fe+_e+3,fe+_e+2),I.emplaceBack(ge+_e,ge+_e+3,ge+_e+1),I.emplaceBack(ge+_e,ge+_e+2,ge+_e+3);const xe=new hs(b.createVertexBuffer(k,Gc.members),b.createIndexBuffer(I),s.aJ.simpleSegment(0,0,k.length,I.length));return this._meshCache[g]=xe,xe}getMeshFrameDelta(e){return 2*Math.PI*s.bu/Math.pow(2,Math.max(e,0))/5}getMinTileElevationForLngLatZoom(e,r){var a;const{tileID:l}=this._getOverscaledTileIDFromLngLatZoom(e,r);return(a=this.getMinMaxElevation(l).minElevation)!==null&&a!==void 0?a:0}getMinMaxElevation(e){const r=this.getTerrainData(e).tile,a={minElevation:null,maxElevation:null};return r&&r.dem&&(a.minElevation=r.dem.min*this.exaggeration,a.maxElevation=r.dem.max*this.exaggeration),a}_getOverscaledTileIDFromLngLatZoom(e,r){const a=s.$.fromLngLat(e.wrap()),l=(1<<r)*s.Z,p=a.x*l,g=a.y*l,b=Math.floor(p/s.Z),k=Math.floor(g/s.Z);return{tileID:new s.Y(r,0,r,b,k),mercatorX:p,mercatorY:g}}}class Nh{constructor(e,r,a){this._context=e,this._size=r,this._tileSize=a,this._objects=[],this._recentlyUsed=[],this._stamp=0}destruct(){for(const e of this._objects)e.texture.destroy(),e.fbo.destroy()}_createObject(e){const r=this._context.createFramebuffer(this._tileSize,this._tileSize,!0,!0),a=new Ze(this._context,{width:this._tileSize,height:this._tileSize,data:null},this._context.gl.RGBA);return a.bind(this._context.gl.LINEAR,this._context.gl.CLAMP_TO_EDGE),this._context.extTextureFilterAnisotropic&&this._context.gl.texParameterf(this._context.gl.TEXTURE_2D,this._context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this._context.extTextureFilterAnisotropicMax),r.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL,this._tileSize,this._tileSize)),r.colorAttachment.set(a.texture),{id:e,fbo:r,texture:a,stamp:-1,inUse:!1}}getObjectForId(e){return this._objects[e]}useObject(e){e.inUse=!0,this._recentlyUsed=this._recentlyUsed.filter(r=>e.id!==r),this._recentlyUsed.push(e.id)}stampObject(e){e.stamp=++this._stamp}getOrCreateFreeObject(){for(const r of this._recentlyUsed)if(!this._objects[r].inUse)return this._objects[r];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const e=this._createObject(this._objects.length);return this._objects.push(e),e}freeObject(e){e.inUse=!1}freeAllObjects(){for(const e of this._objects)this.freeObject(e)}isFull(){return!(this._objects.length<this._size)&&this._objects.some(e=>!e.inUse)===!1}}const pi={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ga{constructor(e,r){this.painter=e,this.terrain=r,this.pool=new Nh(e.context,30,r.sourceCache.tileSize*r.qualityFactor)}destruct(){this.pool.destruct()}getTexture(e){return this.pool.getObjectForId(e.rtt[this._stacks.length-1].id).texture}prepareForRender(e,r){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=e._order.filter(a=>!e._layers[a].isHidden(r)),this._coordsAscending={};for(const a in e.sourceCaches){this._coordsAscending[a]={};const l=e.sourceCaches[a].getVisibleCoordinates(),p=e.sourceCaches[a].getSource(),g=p instanceof mt?p.terrainTileRanges:null;for(const b of l){const k=this.terrain.sourceCache.getTerrainCoords(b,g);for(const I in k)this._coordsAscending[a][I]||(this._coordsAscending[a][I]=[]),this._coordsAscending[a][I].push(k[I])}}this._coordsAscendingStr={};for(const a of e._order){const l=e._layers[a],p=l.source;if(pi[l.type]&&!this._coordsAscendingStr[p]){this._coordsAscendingStr[p]={};for(const g in this._coordsAscending[p])this._coordsAscendingStr[p][g]=this._coordsAscending[p][g].map(b=>b.key).sort().join()}}for(const a of this._renderableTiles)for(const l in this._coordsAscendingStr){const p=this._coordsAscendingStr[l][a.tileID.key];p&&p!==a.rttCoords[l]&&(a.rtt=[])}}renderLayer(e,r){if(e.isHidden(this.painter.transform.zoom))return!1;const a=Object.assign(Object.assign({},r),{isRenderingToTexture:!0}),l=e.type,p=this.painter,g=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(pi[l]&&(this._prevType&&pi[this._prevType]||this._stacks.push([]),this._prevType=l,this._stacks[this._stacks.length-1].push(e.id),!g))return!0;if(pi[this._prevType]||pi[l]&&g){this._prevType=l;const b=this._stacks.length-1,k=this._stacks[b]||[];for(const I of this._renderableTiles){if(this.pool.isFull()&&(Tn(this.painter,this.terrain,this._rttTiles,a),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(I),I.rtt[b]){const N=this.pool.getObjectForId(I.rtt[b].id);if(N.stamp===I.rtt[b].stamp){this.pool.useObject(N);continue}}const z=this.pool.getOrCreateFreeObject();this.pool.useObject(z),this.pool.stampObject(z),I.rtt[b]={id:z.id,stamp:z.stamp},p.context.bindFramebuffer.set(z.fbo.framebuffer),p.context.clear({color:s.b7.transparent,stencil:0}),p.currentStencilSource=void 0;for(let N=0;N<k.length;N++){const O=p.style._layers[k[N]],Z=O.source?this._coordsAscending[O.source][I.tileID.key]:[I.tileID];p.context.viewport.set([0,0,z.fbo.width,z.fbo.height]),p._renderTileClippingMasks(O,Z,!0),p.renderLayer(p,p.style.sourceCaches[O.source],O,Z,a),O.source&&(I.rttCoords[O.source]=this._coordsAscendingStr[O.source][I.tileID.key])}}return Tn(this.painter,this.terrain,this._rttTiles,a),this._rttTiles=[],this.pool.freeAllObjects(),pi[l]}return!1}}const ct={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"MapLibre logo","Map.Title":"Map","Marker.Title":"Map marker","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","Popup.Close":"Close popup","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm","GlobeControl.Enable":"Enable globe","GlobeControl.Disable":"Disable globe","TerrainControl.Enable":"Enable terrain","TerrainControl.Disable":"Disable terrain","CooperativeGesturesHandler.WindowsHelpText":"Use Ctrl + scroll to zoom the map","CooperativeGesturesHandler.MacHelpText":"Use ⌘ + scroll to zoom the map","CooperativeGesturesHandler.MobileHelpText":"Use two fingers to move the map"},ft=B,fo={hash:!1,interactive:!0,bearingSnap:7,attributionControl:pn,maplibreLogo:!1,refreshExpiredTiles:!0,canvasContextAttributes:{antialias:!1,preserveDrawingBuffer:!1,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,desynchronized:!1,contextType:void 0},scrollZoom:!0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,trackResize:!0,center:[0,0],elevation:0,zoom:0,bearing:0,pitch:0,roll:0,renderWorldCopies:!0,maxTileCacheSize:null,maxTileCacheZoomLevels:s.a.MAX_TILE_CACHE_ZOOM_LEVELS,transformRequest:null,transformCameraUpdate:null,fadeDuration:300,crossSourceCollisions:!0,clickTolerance:3,localIdeographFontFamily:"sans-serif",pitchWithRotate:!0,rollEnabled:!1,validateStyle:!0,maxCanvasSize:[4096,4096],cancelPendingTileRequestsWhileZooming:!0,centerClampedToGround:!0},wl={showCompass:!0,showZoom:!0,visualizePitch:!1,visualizeRoll:!0};class Sl{constructor(e,r,a=!1){this.mousedown=p=>{this.startMove(p,A.mousePos(this.element,p)),A.addEventListener(window,"mousemove",this.mousemove),A.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=p=>{this.move(p,A.mousePos(this.element,p))},this.mouseup=p=>{this._rotatePitchHanlder.dragEnd(p),this.offTemp()},this.touchstart=p=>{p.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=A.touchPos(this.element,p.targetTouches)[0],this.startMove(p,this._startPos),A.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),A.addEventListener(window,"touchend",this.touchend))},this.touchmove=p=>{p.targetTouches.length!==1?this.reset():(this._lastPos=A.touchPos(this.element,p.targetTouches)[0],this.move(p,this._lastPos))},this.touchend=p=>{p.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),delete this._startPos,delete this._lastPos,this.offTemp()},this.reset=()=>{this._rotatePitchHanlder.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=r;const l=new Cs;this._rotatePitchHanlder=new ni({clickTolerance:3,move:(p,g)=>{const b=r.getBoundingClientRect(),k=new s.P((b.bottom-b.top)/2,(b.right-b.left)/2);return{bearingDelta:s.ce(new s.P(p.x,g.y),g,k),pitchDelta:a?-.5*(g.y-p.y):void 0}},moveStateManager:l,enable:!0,assignEvents:()=>{}}),this.map=e,A.addEventListener(r,"mousedown",this.mousedown),A.addEventListener(r,"touchstart",this.touchstart,{passive:!1}),A.addEventListener(r,"touchcancel",this.reset)}startMove(e,r){this._rotatePitchHanlder.dragStart(e,r),A.disableDrag()}move(e,r){const a=this.map,{bearingDelta:l,pitchDelta:p}=this._rotatePitchHanlder.dragMove(e,r)||{};l&&a.setBearing(a.getBearing()+l),p&&a.setPitch(a.getPitch()+p)}off(){const e=this.element;A.removeEventListener(e,"mousedown",this.mousedown),A.removeEventListener(e,"touchstart",this.touchstart,{passive:!1}),A.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),A.removeEventListener(window,"touchend",this.touchend),A.removeEventListener(e,"touchcancel",this.reset),this.offTemp()}offTemp(){A.enableDrag(),A.removeEventListener(window,"mousemove",this.mousemove),A.removeEventListener(window,"mouseup",this.mouseup),A.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),A.removeEventListener(window,"touchend",this.touchend)}}let Pr;function Al(u,e,r,a=!1){if(a||!r.getCoveringTilesDetailsProvider().allowWorldCopies())return u==null?void 0:u.wrap();const l=new s.Q(u.lng,u.lat);if(u=new s.Q(u.lng,u.lat),e){const p=new s.Q(u.lng-360,u.lat),g=new s.Q(u.lng+360,u.lat),b=r.locationToScreenPoint(u).distSqr(e);r.locationToScreenPoint(p).distSqr(e)<b?u=p:r.locationToScreenPoint(g).distSqr(e)<b&&(u=g)}for(;Math.abs(u.lng-r.center.lng)>180;){const p=r.locationToScreenPoint(u);if(p.x>=0&&p.y>=0&&p.x<=r.width&&p.y<=r.height)break;u.lng>r.center.lng?u.lng-=360:u.lng+=360}return u.lng!==l.lng&&r.isPointOnMapSurface(r.locationToScreenPoint(u))?u:l}const Bi={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Qc(u,e,r){const a=u.classList;for(const l in Bi)a.remove(`maplibregl-${r}-anchor-${l}`);a.add(`maplibregl-${r}-anchor-${e}`)}class Yn extends s.E{constructor(e){if(super(),this._onKeyPress=r=>{const a=r.code,l=r.charCode||r.keyCode;a!=="Space"&&a!=="Enter"&&l!==32&&l!==13||this.togglePopup()},this._onMapClick=r=>{const a=r.originalEvent.target,l=this._element;this._popup&&(a===l||l.contains(a))&&this.togglePopup()},this._update=r=>{if(!this._map)return;const a=this._map.loaded()&&!this._map.isMoving();((r==null?void 0:r.type)==="terrain"||(r==null?void 0:r.type)==="render"&&!a)&&this._map.once("render",this._update),this._lngLat=Al(this._lngLat,this._flatPos,this._map.transform),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let l="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?l=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(l=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let p="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?p="rotateX(0deg)":this._pitchAlignment==="map"&&(p=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||r&&r.type!=="moveend"||(this._pos=this._pos.round()),A.setTransform(this._element,`${Bi[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${p} ${l}`),L.frameAsync(new AbortController).then(()=>{this._updateOpacity(r&&r.type==="moveend")}).catch(()=>{})},this._onMove=r=>{if(!this._isDragging){const a=this._clickTolerance||this._map._clickTolerance;this._isDragging=r.point.dist(this._pointerdownPos)>=a}this._isDragging&&(this._pos=r.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new s.l("dragstart"))),this.fire(new s.l("drag")))},this._onUp=()=>{this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new s.l("dragend")),this._state="inactive"},this._addDragHandler=r=>{this._element.contains(r.originalEvent.target)&&(r.preventDefault(),this._positionDelta=r.point.sub(this._pos).add(this._offset),this._pointerdownPos=r.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},this._anchor=e&&e.anchor||"center",this._color=e&&e.color||"#3FB1CE",this._scale=e&&e.scale||1,this._draggable=e&&e.draggable||!1,this._clickTolerance=e&&e.clickTolerance||0,this._subpixelPositioning=e&&e.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=e&&e.rotation||0,this._rotationAlignment=e&&e.rotationAlignment||"auto",this._pitchAlignment=e&&e.pitchAlignment&&e.pitchAlignment!=="auto"?e.pitchAlignment:this._rotationAlignment,this.setOpacity(e==null?void 0:e.opacity,e==null?void 0:e.opacityWhenCovered),e&&e.element)this._element=e.element,this._offset=s.P.convert(e&&e.offset||[0,0]);else{this._defaultMarker=!0,this._element=A.create("div");const r=A.createNS("http://www.w3.org/2000/svg","svg"),a=41,l=27;r.setAttributeNS(null,"display","block"),r.setAttributeNS(null,"height",`${a}px`),r.setAttributeNS(null,"width",`${l}px`),r.setAttributeNS(null,"viewBox",`0 0 ${l} ${a}`);const p=A.createNS("http://www.w3.org/2000/svg","g");p.setAttributeNS(null,"stroke","none"),p.setAttributeNS(null,"stroke-width","1"),p.setAttributeNS(null,"fill","none"),p.setAttributeNS(null,"fill-rule","evenodd");const g=A.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"fill-rule","nonzero");const b=A.createNS("http://www.w3.org/2000/svg","g");b.setAttributeNS(null,"transform","translate(3.0, 29.0)"),b.setAttributeNS(null,"fill","#000000");const k=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(const oe of k){const ue=A.createNS("http://www.w3.org/2000/svg","ellipse");ue.setAttributeNS(null,"opacity","0.04"),ue.setAttributeNS(null,"cx","10.5"),ue.setAttributeNS(null,"cy","5.80029008"),ue.setAttributeNS(null,"rx",oe.rx),ue.setAttributeNS(null,"ry",oe.ry),b.appendChild(ue)}const I=A.createNS("http://www.w3.org/2000/svg","g");I.setAttributeNS(null,"fill",this._color);const z=A.createNS("http://www.w3.org/2000/svg","path");z.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),I.appendChild(z);const N=A.createNS("http://www.w3.org/2000/svg","g");N.setAttributeNS(null,"opacity","0.25"),N.setAttributeNS(null,"fill","#000000");const O=A.createNS("http://www.w3.org/2000/svg","path");O.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),N.appendChild(O);const Z=A.createNS("http://www.w3.org/2000/svg","g");Z.setAttributeNS(null,"transform","translate(6.0, 7.0)"),Z.setAttributeNS(null,"fill","#FFFFFF");const J=A.createNS("http://www.w3.org/2000/svg","g");J.setAttributeNS(null,"transform","translate(8.0, 8.0)");const ne=A.createNS("http://www.w3.org/2000/svg","circle");ne.setAttributeNS(null,"fill","#000000"),ne.setAttributeNS(null,"opacity","0.25"),ne.setAttributeNS(null,"cx","5.5"),ne.setAttributeNS(null,"cy","5.5"),ne.setAttributeNS(null,"r","5.4999962");const ie=A.createNS("http://www.w3.org/2000/svg","circle");ie.setAttributeNS(null,"fill","#FFFFFF"),ie.setAttributeNS(null,"cx","5.5"),ie.setAttributeNS(null,"cy","5.5"),ie.setAttributeNS(null,"r","5.4999962"),J.appendChild(ne),J.appendChild(ie),g.appendChild(b),g.appendChild(I),g.appendChild(N),g.appendChild(Z),g.appendChild(J),r.appendChild(g),r.setAttributeNS(null,"height",a*this._scale+"px"),r.setAttributeNS(null,"width",l*this._scale+"px"),this._element.appendChild(r),this._offset=s.P.convert(e&&e.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",r=>{r.preventDefault()}),this._element.addEventListener("mousedown",r=>{r.preventDefault()}),Qc(this._element,this._anchor,"marker"),e&&e.className)for(const r of e.className.split(" "))this._element.classList.add(r);this._popup=null}addTo(e){return this.remove(),this._map=e,this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label",e._getUIString("Marker.Title")),e.getCanvasContainer().appendChild(this._element),e.on("move",this._update),e.on("moveend",this._update),e.on("terrain",this._update),e.on("projectiontransition",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("terrain",this._update),this._map.off("projectiontransition",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),A.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=s.Q.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),e){if(!("offset"in e.options)){const l=Math.abs(13.5)/Math.SQRT2;e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[l,-1*(38.1-13.5+l)],"bottom-right":[-l,-1*(38.1-13.5+l)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=e,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(e){return this._subpixelPositioning=e,this}getPopup(){return this._popup}togglePopup(){const e=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:e?(e.isOpen()?e.remove():(e.setLngLat(this._lngLat),e.addTo(this._map)),this):this}_updateOpacity(e=!1){var r,a;const l=(r=this._map)===null||r===void 0?void 0:r.terrain,p=this._map.transform.isLocationOccluded(this._lngLat);if(!l||p){const Z=p?this._opacityWhenCovered:this._opacity;return void(this._element.style.opacity!==Z&&(this._element.style.opacity=Z))}if(e)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null},100)}const g=this._map,b=g.terrain.depthAtPoint(this._pos),k=g.terrain.getElevationForLngLatZoom(this._lngLat,g.transform.tileZoom);if(g.transform.lngLatToCameraDepth(this._lngLat,k)-b<.006)return void(this._element.style.opacity=this._opacity);const I=-this._offset.y/g.transform.pixelsPerMeter,z=Math.sin(g.getPitch()*Math.PI/180)*I,N=g.terrain.depthAtPoint(new s.P(this._pos.x,this._pos.y-this._offset.y)),O=g.transform.lngLatToCameraDepth(this._lngLat,k+z)-N>.006;!((a=this._popup)===null||a===void 0)&&a.isOpen()&&O&&this._popup.remove(),this._element.style.opacity=O?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(e){return this._offset=s.P.convert(e),this._update(),this}addClassName(e){this._element.classList.add(e)}removeClassName(e){this._element.classList.remove(e)}toggleClassName(e){return this._element.classList.toggle(e)}setDraggable(e){return this._draggable=!!e,this._map&&(e?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e&&e!=="auto"?e:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(e,r){return(this._opacity===void 0||e===void 0&&r===void 0)&&(this._opacity="1",this._opacityWhenCovered="0.2"),e!==void 0&&(this._opacity=e),r!==void 0&&(this._opacityWhenCovered=r),this._map&&this._updateOpacity(!0),this}}const br={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let hr=0,Is=!1;const mo={maxWidth:100,unit:"metric"};function go(u,e,r){const a=r&&r.maxWidth||100,l=u._container.clientHeight/2,p=u._container.clientWidth/2,g=u.unproject([p-a/2,l]),b=u.unproject([p+a/2,l]),k=Math.round(u.project(b).x-u.project(g).x),I=Math.min(a,k,u._container.clientWidth),z=g.distanceTo(b);if(r&&r.unit==="imperial"){const N=3.2808*z;N>5280?$n(e,I,N/5280,u._getUIString("ScaleControl.Miles")):$n(e,I,N,u._getUIString("ScaleControl.Feet"))}else r&&r.unit==="nautical"?$n(e,I,z/1852,u._getUIString("ScaleControl.NauticalMiles")):z>=1e3?$n(e,I,z/1e3,u._getUIString("ScaleControl.Kilometers")):$n(e,I,z,u._getUIString("ScaleControl.Meters"))}function $n(u,e,r,a){const l=function(p){const g=Math.pow(10,`${Math.floor(p)}`.length-1);let b=p/g;return b=b>=10?10:b>=5?5:b>=3?3:b>=2?2:b>=1?1:function(k){const I=Math.pow(10,Math.ceil(-Math.log(k)/Math.LN10));return Math.round(k*I)/I}(b),g*b}(r);u.style.width=e*(l/r)+"px",u.innerHTML=`${l} ${a}`}const kl={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1,locationOccludedOpacity:void 0},Tl=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Ms(u){if(u){if(typeof u=="number"){const e=Math.round(Math.abs(u)/Math.SQRT2);return{center:new s.P(0,0),top:new s.P(0,u),"top-left":new s.P(e,e),"top-right":new s.P(-e,e),bottom:new s.P(0,-u),"bottom-left":new s.P(e,-e),"bottom-right":new s.P(-e,-e),left:new s.P(u,0),right:new s.P(-u,0)}}if(u instanceof s.P||Array.isArray(u)){const e=s.P.convert(u);return{center:e,top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{center:s.P.convert(u.center||[0,0]),top:s.P.convert(u.top||[0,0]),"top-left":s.P.convert(u["top-left"]||[0,0]),"top-right":s.P.convert(u["top-right"]||[0,0]),bottom:s.P.convert(u.bottom||[0,0]),"bottom-left":s.P.convert(u["bottom-left"]||[0,0]),"bottom-right":s.P.convert(u["bottom-right"]||[0,0]),left:s.P.convert(u.left||[0,0]),right:s.P.convert(u.right||[0,0])}}return Ms(new s.P(0,0))}const Cl=B;x.AJAXError=s.cq,x.Event=s.l,x.Evented=s.E,x.LngLat=s.Q,x.MercatorCoordinate=s.$,x.Point=s.P,x.addProtocol=s.cr,x.config=s.a,x.removeProtocol=s.cs,x.AttributionControl=nr,x.BoxZoomHandler=ml,x.CanvasSource=It,x.CooperativeGesturesHandler=fa,x.DoubleClickZoomHandler=da,x.DragPanHandler=Zc,x.DragRotateHandler=Kc,x.EdgeInsets=js,x.FullscreenControl=class extends s.E{constructor(u={}){super(),this._onFullscreenChange=()=>{var e;let r=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((e=r==null?void 0:r.shadowRoot)===null||e===void 0)&&e.fullscreenElement;)r=r.shadowRoot.fullscreenElement;r===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,u&&u.container&&(u.container instanceof HTMLElement?this._container=u.container:s.w("Full screen control 'container' must be a DOM element.")),"onfullscreenchange"in document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in document&&(this._fullscreenchange="MSFullscreenChange")}onAdd(u){return this._map=u,this._container||(this._container=this._map.getContainer()),this._controlContainer=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){A.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const u=this._fullscreenButton=A.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);A.create("span","maplibregl-ctrl-icon",u).setAttribute("aria-hidden","true"),u.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const u=this._getTitle();this._fullscreenButton.setAttribute("aria-label",u),this._fullscreenButton.title=u}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"),this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"),this._updateTitle(),this._fullscreen?(this.fire(new s.l("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new s.l("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},x.GeoJSONSource=Pt,x.GeolocateControl=class extends s.E{constructor(u){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new s.l("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(e),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new s.l("geolocate",e)),this._finish()}},this._updateCamera=e=>{const r=new s.Q(e.coords.longitude,e.coords.latitude),a=e.coords.accuracy,l=this._map.getBearing(),p=s.e({bearing:l},this.options.fitBoundsOptions),g=Ke.fromLngLat(r,a);this._map.fitBounds(g,p,{geolocateSource:!0})},this._updateMarker=e=>{if(e){const r=new s.Q(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=e=>{if(this._map){if(e.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(e.code===3&&Is)return;this.options.trackUserLocation&&this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new s.l("error",e)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",e=>e.preventDefault()),this._geolocateButton=A.create("button","maplibregl-ctrl-geolocate",this._container),A.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=e=>{if(this._map){if(e===!1){s.w("Geolocation support is not available so the GeolocateControl will be disabled.");const r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r)}else{const r=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=A.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new Yn({element:this._dotElement}),this._circleElement=A.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Yn({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",r=>{r.geolocateSource||this._watchState!=="ACTIVE_LOCK"||r.originalEvent&&r.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new s.l("trackuserlocationend")),this.fire(new s.l("userlocationlostfocus")))})}},this.options=s.e({},br,u)}onAdd(u){return this._map=u,this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),function(){return s._(this,arguments,void 0,function*(e=!1){if(Pr!==void 0&&!e)return Pr;if(window.navigator.permissions===void 0)return Pr=!!window.navigator.geolocation,Pr;try{Pr=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{Pr=!!window.navigator.geolocation}return Pr})}().then(e=>this._finishSetupUI(e)),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),A.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,hr=0,Is=!1}_isOutOfMapMaxBounds(u){const e=this._map.getMaxBounds(),r=u.coords;return e&&(r.longitude<e.getWest()||r.longitude>e.getEast()||r.latitude<e.getSouth()||r.latitude>e.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"ACTIVE_ERROR":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const u=this._map.getBounds(),e=u.getSouthEast(),r=u.getNorthEast(),a=e.distanceTo(r),l=Math.ceil(this._accuracy/(a/this._map._container.clientHeight)*2);this._circleElement.style.width=`${l}px`,this._circleElement.style.height=`${l}px`}trigger(){if(!this._setup)return s.w("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new s.l("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":hr--,Is=!1,this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this.fire(new s.l("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.l("trackuserlocationstart")),this.fire(new s.l("userlocationfocus"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"OFF":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let u;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),hr++,hr>1?(u={maximumAge:6e5,timeout:0},Is=!0):(u=this.options.positionOptions,Is=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,u)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},x.GlobeControl=class{constructor(){this._toggleProjection=()=>{var u;const e=(u=this._map.getProjection())===null||u===void 0?void 0:u.type;this._map.setProjection(e!=="mercator"&&e?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var u;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),((u=this._map.getProjection())===null||u===void 0?void 0:u.type)==="globe"?(this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"),this._globeButton.title=this._map._getUIString("GlobeControl.Disable")):(this._globeButton.classList.add("maplibregl-ctrl-globe"),this._globeButton.title=this._map._getUIString("GlobeControl.Enable"))}}onAdd(u){return this._map=u,this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=A.create("button","maplibregl-ctrl-globe",this._container),A.create("span","maplibregl-ctrl-icon",this._globeButton).setAttribute("aria-hidden","true"),this._globeButton.type="button",this._globeButton.addEventListener("click",this._toggleProjection),this._updateGlobeIcon(),this._map.on("styledata",this._updateGlobeIcon),this._container}onRemove(){A.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},x.Hash=hl,x.ImageSource=mt,x.KeyboardHandler=Ps,x.LngLatBounds=Ke,x.LogoControl=po,x.Map=class extends Oh{constructor(u){var e,r;s.cn.mark(s.co.create);const a=Object.assign(Object.assign(Object.assign({},fo),u),{canvasContextAttributes:Object.assign(Object.assign({},fo.canvasContextAttributes),u.canvasContextAttributes)});if(a.minZoom!=null&&a.maxZoom!=null&&a.minZoom>a.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(a.minPitch!=null&&a.maxPitch!=null&&a.minPitch>a.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(a.minPitch!=null&&a.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(a.maxPitch!=null&&a.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const l=new ds,p=new Hs;if(a.minZoom!==void 0&&l.setMinZoom(a.minZoom),a.maxZoom!==void 0&&l.setMaxZoom(a.maxZoom),a.minPitch!==void 0&&l.setMinPitch(a.minPitch),a.maxPitch!==void 0&&l.setMaxPitch(a.maxPitch),a.renderWorldCopies!==void 0&&l.setRenderWorldCopies(a.renderWorldCopies),super(l,p,{bearingSnap:a.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new bl,this._controls=[],this._mapId=s.a4(),this._contextLost=b=>{b.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new s.l("webglcontextlost",{originalEvent:b}))},this._contextRestored=b=>{this._setupPainter(),this.resize(),this._update(),this.fire(new s.l("webglcontextrestored",{originalEvent:b}))},this._onMapScroll=b=>{if(b.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=a.interactive,this._maxTileCacheSize=a.maxTileCacheSize,this._maxTileCacheZoomLevels=a.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},a.canvasContextAttributes),this._trackResize=a.trackResize===!0,this._bearingSnap=a.bearingSnap,this._centerClampedToGround=a.centerClampedToGround,this._refreshExpiredTiles=a.refreshExpiredTiles===!0,this._fadeDuration=a.fadeDuration,this._crossSourceCollisions=a.crossSourceCollisions===!0,this._collectResourceTiming=a.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},ct),a.locale),this._clickTolerance=a.clickTolerance,this._overridePixelRatio=a.pixelRatio,this._maxCanvasSize=a.maxCanvasSize,this.transformCameraUpdate=a.transformCameraUpdate,this.cancelPendingTileRequestsWhileZooming=a.cancelPendingTileRequestsWhileZooming===!0,this._imageQueueHandle=te.addThrottleControl(()=>this.isMoving()),this._requestManager=new de(a.transformRequest),typeof a.container=="string"){if(this._container=document.getElementById(a.container),!this._container)throw new Error(`Container '${a.container}' not found.`)}else{if(!(a.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=a.container}if(a.maxBounds&&this.setMaxBounds(a.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),this.on("terrain",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}),this.once("idle",()=>{this._idleTriggered=!0}),typeof window<"u"){addEventListener("online",this._onWindowOnline,!1);let b=!1;const k=lo(I=>{this._trackResize&&!this._removed&&(this.resize(I),this.redraw())},50);this._resizeObserver=new ResizeObserver(I=>{b?k(I):b=!0}),this._resizeObserver.observe(this._container)}this.handlers=new Fh(this,a),this._hash=a.hash&&new hl(typeof a.hash=="string"&&a.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:a.center,elevation:a.elevation,zoom:a.zoom,bearing:a.bearing,pitch:a.pitch,roll:a.roll}),a.bounds&&(this.resize(),this.fitBounds(a.bounds,s.e({},a.fitBoundsOptions,{duration:0}))));const g=typeof a.style=="string"||((r=(e=a.style)===null||e===void 0?void 0:e.projection)===null||r===void 0?void 0:r.type)!=="globe";this.resize(null,g),this._localIdeographFontFamily=a.localIdeographFontFamily,this._validateStyle=a.validateStyle,a.style&&this.setStyle(a.style,{localIdeographFontFamily:a.localIdeographFontFamily}),a.attributionControl&&this.addControl(new nr(typeof a.attributionControl=="boolean"?void 0:a.attributionControl)),a.maplibreLogo&&this.addControl(new po,a.logoPosition),this.on("style.load",()=>{if(g||this._resizeTransform(),this.transform.unmodified){const b=s.O(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(b)}}),this.on("data",b=>{this._update(b.dataType==="style"),this.fire(new s.l(`${b.dataType}data`,b))}),this.on("dataloading",b=>{this.fire(new s.l(`${b.dataType}dataloading`,b))}),this.on("dataabort",b=>{this.fire(new s.l("sourcedataabort",b))})}_getMapId(){return this._mapId}addControl(u,e){if(e===void 0&&(e=u.getDefaultPosition?u.getDefaultPosition():"top-right"),!u||!u.onAdd)return this.fire(new s.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const r=u.onAdd(this);this._controls.push(u);const a=this._controlPositions[e];return e.indexOf("bottom")!==-1?a.insertBefore(r,a.firstChild):a.appendChild(r),this}removeControl(u){if(!u||!u.onRemove)return this.fire(new s.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const e=this._controls.indexOf(u);return e>-1&&this._controls.splice(e,1),u.onRemove(this),this}hasControl(u){return this._controls.indexOf(u)>-1}calculateCameraOptionsFromTo(u,e,r,a){return a==null&&this.terrain&&(a=this.terrain.getElevationForLngLatZoom(r,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(u,e,r,a)}resize(u,e=!0){const[r,a]=this._containerDimensions(),l=this._getClampedPixelRatio(r,a);if(this._resizeCanvas(r,a,l),this.painter.resize(r,a,l),this.painter.overLimit()){const g=this.painter.context.gl;this._maxCanvasSize=[g.drawingBufferWidth,g.drawingBufferHeight];const b=this._getClampedPixelRatio(r,a);this._resizeCanvas(r,a,b),this.painter.resize(r,a,b)}this._resizeTransform(e);const p=!this._moving;return p&&(this.stop(),this.fire(new s.l("movestart",u)).fire(new s.l("move",u))),this.fire(new s.l("resize",u)),p&&this.fire(new s.l("moveend",u)),this}_resizeTransform(u=!0){var e;const[r,a]=this._containerDimensions();this.transform.resize(r,a,u),(e=this._requestedCameraState)===null||e===void 0||e.resize(r,a,u)}_getClampedPixelRatio(u,e){const{0:r,1:a}=this._maxCanvasSize,l=this.getPixelRatio(),p=u*l,g=e*l;return Math.min(p>r?r/p:1,g>a?a/g:1)*l}getPixelRatio(){var u;return(u=this._overridePixelRatio)!==null&&u!==void 0?u:devicePixelRatio}setPixelRatio(u){this._overridePixelRatio=u,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(u){return this.transform.setMaxBounds(Ke.convert(u)),this._update()}setMinZoom(u){if((u=u??-2)>=-2&&u<=this.transform.maxZoom)return this.transform.setMinZoom(u),this._update(),this.getZoom()<u&&this.setZoom(u),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")}getMinZoom(){return this.transform.minZoom}setMaxZoom(u){if((u=u??22)>=this.transform.minZoom)return this.transform.setMaxZoom(u),this._update(),this.getZoom()>u&&this.setZoom(u),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(u){if((u=u??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(u>=0&&u<=this.transform.maxPitch)return this.transform.setMinPitch(u),this._update(),this.getPitch()<u&&this.setPitch(u),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")}getMinPitch(){return this.transform.minPitch}setMaxPitch(u){if((u=u??60)>180)throw new Error("maxPitch must be less than or equal to 180");if(u>=this.transform.minPitch)return this.transform.setMaxPitch(u),this._update(),this.getPitch()>u&&this.setPitch(u),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(u){return this.transform.setRenderWorldCopies(u),this._update()}project(u){return this.transform.locationToScreenPoint(s.Q.convert(u),this.style&&this.terrain)}unproject(u){return this.transform.screenPointToLocation(s.P.convert(u),this.terrain)}isMoving(){var u;return this._moving||((u=this.handlers)===null||u===void 0?void 0:u.isMoving())}isZooming(){var u;return this._zooming||((u=this.handlers)===null||u===void 0?void 0:u.isZooming())}isRotating(){var u;return this._rotating||((u=this.handlers)===null||u===void 0?void 0:u.isRotating())}_createDelegatedListener(u,e,r){if(u==="mouseenter"||u==="mouseover"){let a=!1;return{layers:e,listener:r,delegates:{mousemove:p=>{const g=e.filter(k=>this.getLayer(k)),b=g.length!==0?this.queryRenderedFeatures(p.point,{layers:g}):[];b.length?a||(a=!0,r.call(this,new zr(u,this,p.originalEvent,{features:b}))):a=!1},mouseout:()=>{a=!1}}}}if(u==="mouseleave"||u==="mouseout"){let a=!1;return{layers:e,listener:r,delegates:{mousemove:g=>{const b=e.filter(k=>this.getLayer(k));(b.length!==0?this.queryRenderedFeatures(g.point,{layers:b}):[]).length?a=!0:a&&(a=!1,r.call(this,new zr(u,this,g.originalEvent)))},mouseout:g=>{a&&(a=!1,r.call(this,new zr(u,this,g.originalEvent)))}}}}{const a=l=>{const p=e.filter(b=>this.getLayer(b)),g=p.length!==0?this.queryRenderedFeatures(l.point,{layers:p}):[];g.length&&(l.features=g,r.call(this,l),delete l.features)};return{layers:e,listener:r,delegates:{[u]:a}}}}_saveDelegatedListener(u,e){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[u]=this._delegatedListeners[u]||[],this._delegatedListeners[u].push(e)}_removeDelegatedListener(u,e,r){if(!this._delegatedListeners||!this._delegatedListeners[u])return;const a=this._delegatedListeners[u];for(let l=0;l<a.length;l++){const p=a[l];if(p.listener===r&&p.layers.length===e.length&&p.layers.every(g=>e.includes(g))){for(const g in p.delegates)this.off(g,p.delegates[g]);return void a.splice(l,1)}}}on(u,e,r){if(r===void 0)return super.on(u,e);const a=typeof e=="string"?[e]:e,l=this._createDelegatedListener(u,a,r);this._saveDelegatedListener(u,l);for(const p in l.delegates)this.on(p,l.delegates[p]);return{unsubscribe:()=>{this._removeDelegatedListener(u,a,r)}}}once(u,e,r){if(r===void 0)return super.once(u,e);const a=typeof e=="string"?[e]:e,l=this._createDelegatedListener(u,a,r);for(const p in l.delegates){const g=l.delegates[p];l.delegates[p]=(...b)=>{this._removeDelegatedListener(u,a,r),g(...b)}}this._saveDelegatedListener(u,l);for(const p in l.delegates)this.once(p,l.delegates[p]);return this}off(u,e,r){return r===void 0?super.off(u,e):(this._removeDelegatedListener(u,typeof e=="string"?[e]:e,r),this)}queryRenderedFeatures(u,e){if(!this.style)return[];let r;const a=u instanceof s.P||Array.isArray(u),l=a?u:[[0,0],[this.transform.width,this.transform.height]];if(e=e||(a?{}:u)||{},l instanceof s.P||typeof l[0]=="number")r=[s.P.convert(l)];else{const p=s.P.convert(l[0]),g=s.P.convert(l[1]);r=[p,new s.P(g.x,p.y),g,new s.P(p.x,g.y),p]}return this.style.queryRenderedFeatures(r,e,this.transform)}querySourceFeatures(u,e){return this.style.querySourceFeatures(u,e)}setStyle(u,e){return(e=s.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},e)).diff!==!1&&e.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&u?(this._diffStyle(u,e),this):(this._localIdeographFontFamily=e.localIdeographFontFamily,this._updateStyle(u,e))}setTransformRequest(u){return this._requestManager.setTransformRequest(u),this}_getUIString(u){const e=this._locale[u];if(e==null)throw new Error(`Missing UI string '${u}'`);return e}_updateStyle(u,e){var r,a;if(e.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",()=>this._updateStyle(u,e));const l=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!u)),u?(this.style=new Ka(this,e||{}),this.style.setEventedParent(this,{style:this.style}),typeof u=="string"?this.style.loadURL(u,e,l):this.style.loadJSON(u,e,l),this):((a=(r=this.style)===null||r===void 0?void 0:r.projection)===null||a===void 0||a.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ka(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(u,e){if(typeof u=="string"){const r=this._requestManager.transformRequest(u,"Style");s.j(r,new AbortController).then(a=>{this._updateDiff(a.data,e)}).catch(a=>{a&&this.fire(new s.k(a))})}else typeof u=="object"&&this._updateDiff(u,e)}_updateDiff(u,e){try{this.style.setState(u,e)&&this._update(!0)}catch(r){s.w(`Unable to perform style diff: ${r.message||r.error||r}. Rebuilding the style from scratch.`),this._updateStyle(u,e)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():s.w("There is no style added to the map.")}addSource(u,e){return this._lazyInitEmptyStyle(),this.style.addSource(u,e),this._update(!0)}isSourceLoaded(u){const e=this.style&&this.style.sourceCaches[u];if(e!==void 0)return e.loaded();this.fire(new s.k(new Error(`There is no source with ID '${u}'`)))}setTerrain(u){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),u){const e=this.style.sourceCaches[u.source];if(!e)throw new Error(`cannot load terrain, because there exists no source with ID: ${u.source}`);this.terrain===null&&e.reload();for(const r in this.style._layers){const a=this.style._layers[r];a.type==="hillshade"&&a.source===u.source&&s.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Xc(this.painter,e,u),this.painter.renderToTexture=new ga(this.painter,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._terrainDataCallback=r=>{var a;r.dataType==="style"?this.terrain.sourceCache.freeRtt():r.dataType==="source"&&r.tile&&(r.sourceId!==u.source||this._elevationFreeze||(this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))),((a=r.source)===null||a===void 0?void 0:a.type)==="image"?this.terrain.sourceCache.freeRtt():this.terrain.sourceCache.freeRtt(r.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0);return this.fire(new s.l("terrain",{terrain:u})),this}getTerrain(){var u,e;return(e=(u=this.terrain)===null||u===void 0?void 0:u.options)!==null&&e!==void 0?e:null}areTilesLoaded(){const u=this.style&&this.style.sourceCaches;for(const e in u){const r=u[e]._tiles;for(const a in r){const l=r[a];if(l.state!=="loaded"&&l.state!=="errored")return!1}}return!0}removeSource(u){return this.style.removeSource(u),this._update(!0)}getSource(u){return this.style.getSource(u)}setSourceTileLodParams(u,e,r){if(r){const a=this.getSource(r);if(!a)throw new Error(`There is no source with ID "${r}", cannot set LOD parameters`);a.calculateTileZoom=ye(Math.max(1,u),Math.max(1,e))}else for(const a in this.style.sourceCaches)this.style.sourceCaches[a].getSource().calculateTileZoom=ye(Math.max(1,u),Math.max(1,e));return this._update(!0),this}refreshTiles(u,e){const r=this.style.sourceCaches[u];if(!r)throw new Error(`There is no source cache with ID "${u}", cannot refresh tile`);e===void 0?r.reload():r.refreshTiles(e.map(a=>new s.a1(a.z,a.x,a.y)))}addImage(u,e,r={}){const{pixelRatio:a=1,sdf:l=!1,stretchX:p,stretchY:g,content:b,textFitWidth:k,textFitHeight:I}=r;if(this._lazyInitEmptyStyle(),!(e instanceof HTMLImageElement||s.b(e))){if(e.width===void 0||e.height===void 0)return this.fire(new s.k(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{const{width:z,height:N,data:O}=e,Z=e;return this.style.addImage(u,{data:new s.R({width:z,height:N},new Uint8Array(O)),pixelRatio:a,stretchX:p,stretchY:g,content:b,textFitWidth:k,textFitHeight:I,sdf:l,version:0,userImage:Z}),Z.onAdd&&Z.onAdd(this,u),this}}{const{width:z,height:N,data:O}=L.getImageData(e);this.style.addImage(u,{data:new s.R({width:z,height:N},O),pixelRatio:a,stretchX:p,stretchY:g,content:b,textFitWidth:k,textFitHeight:I,sdf:l,version:0})}}updateImage(u,e){const r=this.style.getImage(u);if(!r)return this.fire(new s.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const a=e instanceof HTMLImageElement||s.b(e)?L.getImageData(e):e,{width:l,height:p,data:g}=a;if(l===void 0||p===void 0)return this.fire(new s.k(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(l!==r.data.width||p!==r.data.height)return this.fire(new s.k(new Error("The width and height of the updated image must be that same as the previous version of the image")));const b=!(e instanceof HTMLImageElement||s.b(e));return r.data.replace(g,b),this.style.updateImage(u,r),this}getImage(u){return this.style.getImage(u)}hasImage(u){return u?!!this.style.getImage(u):(this.fire(new s.k(new Error("Missing required image id"))),!1)}removeImage(u){this.style.removeImage(u)}loadImage(u){return te.getImage(this._requestManager.transformRequest(u,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(u,e){return this._lazyInitEmptyStyle(),this.style.addLayer(u,e),this._update(!0)}moveLayer(u,e){return this.style.moveLayer(u,e),this._update(!0)}removeLayer(u){return this.style.removeLayer(u),this._update(!0)}getLayer(u){return this.style.getLayer(u)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(u,e,r){return this.style.setLayerZoomRange(u,e,r),this._update(!0)}setFilter(u,e,r={}){return this.style.setFilter(u,e,r),this._update(!0)}getFilter(u){return this.style.getFilter(u)}setPaintProperty(u,e,r,a={}){return this.style.setPaintProperty(u,e,r,a),this._update(!0)}getPaintProperty(u,e){return this.style.getPaintProperty(u,e)}setLayoutProperty(u,e,r,a={}){return this.style.setLayoutProperty(u,e,r,a),this._update(!0)}getLayoutProperty(u,e){return this.style.getLayoutProperty(u,e)}setGlyphs(u,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(u,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(u,e,r={}){return this._lazyInitEmptyStyle(),this.style.addSprite(u,e,r,a=>{a||this._update(!0)}),this}removeSprite(u){return this._lazyInitEmptyStyle(),this.style.removeSprite(u),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(u,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(u,e,r=>{r||this._update(!0)}),this}setLight(u,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(u,e),this._update(!0)}getLight(){return this.style.getLight()}setSky(u,e={}){return this._lazyInitEmptyStyle(),this.style.setSky(u,e),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(u,e){return this.style.setFeatureState(u,e),this._update()}removeFeatureState(u,e){return this.style.removeFeatureState(u,e),this._update()}getFeatureState(u){return this.style.getFeatureState(u)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let u=0,e=0;return this._container&&(u=this._container.clientWidth||400,e=this._container.clientHeight||300),[u,e]}_setupContainer(){const u=this._container;u.classList.add("maplibregl-map");const e=this._canvasContainer=A.create("div","maplibregl-canvas-container",u);this._interactive&&e.classList.add("maplibregl-interactive"),this._canvas=A.create("canvas","maplibregl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",this._interactive?"0":"-1"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region");const r=this._containerDimensions(),a=this._getClampedPixelRatio(r[0],r[1]);this._resizeCanvas(r[0],r[1],a);const l=this._controlContainer=A.create("div","maplibregl-control-container",u),p=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(g=>{p[g]=A.create("div",`maplibregl-ctrl-${g} `,l)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(u,e,r){this._canvas.width=Math.floor(r*u),this._canvas.height=Math.floor(r*e),this._canvas.style.width=`${u}px`,this._canvas.style.height=`${e}px`}_setupPainter(){const u=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let e=null;this._canvas.addEventListener("webglcontextcreationerror",a=>{e={requestedAttributes:u},a&&(e.statusMessage=a.statusMessage,e.type=a.type)},{once:!0});let r=null;if(r=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,u):this._canvas.getContext("webgl2",u)||this._canvas.getContext("webgl",u),!r){const a="Failed to initialize WebGL";throw e?(e.message=a,new Error(JSON.stringify(e))):new Error(a)}this.painter=new ul(r,this.transform),C.testSupport(r)}migrateProjection(u,e){super.migrateProjection(u,e),this.painter.transform=u,this.fire(new s.l("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(u){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||u,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(u){return this._update(),this._renderTaskQueue.add(u)}_cancelRenderFrame(u){this._renderTaskQueue.remove(u)}_render(u){var e,r,a,l,p;const g=this._idleTriggered?this._fadeDuration:0,b=((e=this.style.projection)===null||e===void 0?void 0:e.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(u),this._removed)return;let k=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const N=this.transform.zoom,O=L.now();this.style.zoomHistory.update(N,O);const Z=new s.C(N,{now:O,fadeDuration:g,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),J=Z.crossFadingFactor();J===1&&J===this._crossFadingFactor||(k=!0,this._crossFadingFactor=J),this.style.update(Z)}const I=((r=this.style.projection)===null||r===void 0?void 0:r.transitionState)>0!==b;(a=this.style.projection)===null||a===void 0||a.setErrorQueryLatitudeDegrees(this.transform.center.lat),this.transform.setTransitionState((l=this.style.projection)===null||l===void 0?void 0:l.transitionState,(p=this.style.projection)===null||p===void 0?void 0:p.latitudeErrorCorrectionRadians),this.style&&(this._sourcesDirty||I)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),!this._elevationFreeze&&this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0)),this._placementDirty=this.style&&this.style._updatePlacement(this.transform,this.showCollisionBoxes,g,this._crossSourceCollisions,I),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:g,showPadding:this.showPadding}),this.fire(new s.l("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,s.cn.mark(s.co.load),this.fire(new s.l("load"))),this.style&&(this.style.hasTransitions()||k)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const z=this._sourcesDirty||this._styleDirty||this._placementDirty;return z||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new s.l("idle")),!this._loaded||this._fullyLoaded||z||(this._fullyLoaded=!0,s.cn.mark(s.co.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var u;this._hash&&this._hash.remove();for(const r of this._controls)r.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<"u"&&removeEventListener("online",this._onWindowOnline,!1),te.removeThrottleControl(this._imageQueueHandle),(u=this._resizeObserver)===null||u===void 0||u.disconnect();const e=this.painter.context.gl.getExtension("WEBGL_lose_context");e!=null&&e.loseContext&&e.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),A.remove(this._canvasContainer),A.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),s.cn.clearMetrics(),this._removed=!0,this.fire(new s.l("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,L.frame(this._frameRequest,u=>{s.cn.frame(u),this._frameRequest=null;try{this._render(u)}catch(e){if(!s.cp(e)&&!function(r){return r.message===Yo}(e))throw e}},()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(u){this._showTileBoundaries!==u&&(this._showTileBoundaries=u,this._update())}get showPadding(){return!!this._showPadding}set showPadding(u){this._showPadding!==u&&(this._showPadding=u,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(u){this._showCollisionBoxes!==u&&(this._showCollisionBoxes=u,u?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(u){this._showOverdrawInspector!==u&&(this._showOverdrawInspector=u,this._update())}get repaint(){return!!this._repaint}set repaint(u){this._repaint!==u&&(this._repaint=u,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(u){this._vertices=u,this._update()}get version(){return ft}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(u){return this._lazyInitEmptyStyle(),this.style.setProjection(u),this._update(!0)}},x.MapMouseEvent=zr,x.MapTouchEvent=Ss,x.MapWheelEvent=fl,x.Marker=Yn,x.NavigationControl=class{constructor(u){this._updateZoomButtons=()=>{const e=this._map.getZoom(),r=e===this._map.getMaxZoom(),a=e===this._map.getMinZoom();this._zoomInButton.disabled=r,this._zoomOutButton.disabled=a,this._zoomInButton.setAttribute("aria-disabled",r.toString()),this._zoomOutButton.setAttribute("aria-disabled",a.toString())},this._rotateCompassArrow=()=>{this._compassIcon.style.transform=this.options.visualizePitch&&this.options.visualizeRoll?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizeRoll?`rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)`:`rotate(${-this._map.transform.bearing}deg)`},this._setButtonTitle=(e,r)=>{const a=this._map._getUIString(`NavigationControl.${r}`);e.title=a,e.setAttribute("aria-label",a)},this.options=s.e({},wl,u),this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",e=>e.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",e=>this._map.zoomIn({},{originalEvent:e})),A.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",e=>this._map.zoomOut({},{originalEvent:e})),A.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",e=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:e}):this._map.resetNorth({},{originalEvent:e})}),this._compassIcon=A.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(u){return this._map=u,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.on("roll",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Sl(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){A.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.off("roll",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(u,e){const r=A.create("button",u,this._container);return r.type="button",r.addEventListener("click",e),r}},x.Popup=class extends s.E{constructor(u){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._container.style.opacity=this._map.transform.isLocationOccluded(this.getLngLat())?`${this.options.locationOccludedOpacity}`:void 0)},this.remove=()=>(this._content&&A.remove(this._content),this._container&&(A.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),this._map._canvasContainer.classList.remove("maplibregl-track-pointer"),delete this._map,this.fire(new s.l("close"))),this),this._onMouseUp=e=>{this._update(e.point)},this._onMouseMove=e=>{this._update(e.point)},this._onDrag=e=>{this._update(e.point)},this._update=e=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=A.create("div","maplibregl-popup",this._map.getContainer()),this._tip=A.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const g of this.options.className.split(" "))this._container.classList.add(g);this._closeButton&&this._closeButton.setAttribute("aria-label",this._map._getUIString("Popup.Close")),this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=Al(this._lngLat,this._flatPos,this._map.transform,this._trackPointer),this._trackPointer&&!e)return;const r=this._flatPos=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&e?e:this._map.transform.locationToScreenPoint(this._lngLat));let a=this.options.anchor;const l=Ms(this.options.offset);if(!a){const g=this._container.offsetWidth,b=this._container.offsetHeight;let k;k=r.y+l.bottom.y<b?["top"]:r.y>this._map.transform.height-b?["bottom"]:[],r.x<g/2?k.push("left"):r.x>this._map.transform.width-g/2&&k.push("right"),a=k.length===0?"bottom":k.join("-")}let p=r.add(l[a]);this.options.subpixelPositioning||(p=p.round()),A.setTransform(this._container,`${Bi[a]} translate(${p.x}px,${p.y}px)`),Qc(this._container,a,"popup"),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=s.e(Object.create(kl),u)}addTo(u){return this._map&&this.remove(),this._map=u,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")):this._map.on("move",this._update),this.fire(new s.l("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(u){return this._lngLat=s.Q.convert(u),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.remove("maplibregl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._flatPos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(u){return this.setDOMContent(document.createTextNode(u))}setHTML(u){const e=document.createDocumentFragment(),r=document.createElement("body");let a;for(r.innerHTML=u;a=r.firstChild,a;)e.appendChild(a);return this.setDOMContent(e)}getMaxWidth(){var u;return(u=this._container)===null||u===void 0?void 0:u.style.maxWidth}setMaxWidth(u){return this.options.maxWidth=u,this._update(),this}setDOMContent(u){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=A.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(u),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(u){return this._container&&this._container.classList.add(u),this}removeClassName(u){return this._container&&this._container.classList.remove(u),this}setOffset(u){return this.options.offset=u,this._update(),this}toggleClassName(u){if(this._container)return this._container.classList.toggle(u)}setSubpixelPositioning(u){this.options.subpixelPositioning=u}_createCloseButton(){this.options.closeButton&&(this._closeButton=A.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const u=this._container.querySelector(Tl);u&&u.focus()}},x.RasterDEMTileSource=kt,x.RasterTileSource=xt,x.ScaleControl=class{constructor(u){this._onMove=()=>{go(this._map,this._container,this.options)},this.setUnit=e=>{this.options.unit=e,go(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},mo),u)}getDefaultPosition(){return"bottom-left"}onAdd(u){return this._map=u,this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-scale",u.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){A.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},x.ScrollZoomHandler=Rt,x.Style=Ka,x.TerrainControl=class{constructor(u){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.terrain?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.Disable")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.Enable"))},this.options=u}onAdd(u){return this._map=u,this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=A.create("button","maplibregl-ctrl-terrain",this._container),A.create("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){A.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},x.TwoFingersTouchPitchHandler=pa,x.TwoFingersTouchRotateHandler=it,x.TwoFingersTouchZoomHandler=Es,x.TwoFingersTouchZoomRotateHandler=xl,x.VectorTileSource=lt,x.VideoSource=Ut,x.addSourceType=(u,e)=>s._(void 0,void 0,void 0,function*(){if(mi(u))throw new Error(`A source type called "${u}" already exists.`);((r,a)=>{Sr[r]=a})(u,e)}),x.clearPrewarmedResources=function(){const u=wi;u&&(u.isPreloaded()&&u.numActive()===1?(u.release(wn),wi=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},x.createTileMesh=Ws,x.getMaxParallelImageRequests=function(){return s.a.MAX_PARALLEL_IMAGE_REQUESTS},x.getRTLTextPluginStatus=function(){return Li().getRTLTextPluginStatus()},x.getVersion=function(){return Cl},x.getWorkerCount=function(){return Rr.workerCount},x.getWorkerUrl=function(){return s.a.WORKER_URL},x.importScriptInWorkers=function(u){return Sn().broadcast("IS",u)},x.prewarm=function(){ji().acquire(wn)},x.setMaxParallelImageRequests=function(u){s.a.MAX_PARALLEL_IMAGE_REQUESTS=u},x.setRTLTextPlugin=function(u,e){return Li().setRTLTextPlugin(u,e)},x.setWorkerCount=function(u){Rr.workerCount=u},x.setWorkerUrl=function(u){s.a.WORKER_URL=u}});var P=_;return P})}(Qu)),Qu.exports}var bx=xx();const $p=Yg(bx);function ey(h){const d={"bottom-left":"bottom-[20px] left-[20px]","bottom-right":"bottom-[20px] right-[20px]","bottom-center":"bottom-[20px] left-1/2 -translate-x-1/2","top-left":"top-[20px] left-[20px]","top-right":"top-[20px] right-[20px]","top-center":"top-[20px] left-1/2 -translate-x-1/2",center:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"};return d[h]||d["bottom-left"]}const Gt=(h,d)=>{const _=h.__vccOpts||h;for(const[w,T]of d)_[w]=T;return _},wx={key:0,class:"p-5 pb-0 flex justify-between items-center"},Sx={class:"inline-block font-semibold text-lg text-gray-800"},Ax={class:"flex flex-col gap-1 p-5"},kx={class:"flex items-center justify-between w-full text-sm text-gray-800"},Tx={key:0,class:"ms-2 text-xs text-gray-500"},Cx={__name:"vs-legend-widget",props:{config:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var T;return((T=d.config)==null?void 0:T.items)||[]}),w=y.computed(()=>{var T;return((T=d.config)==null?void 0:T.title)||""});return(T,P)=>(y.openBlock(),y.createElementBlock("div",{class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative",style:y.normalizeStyle({width:h.config.width||"100%"})},[w.value?(y.openBlock(),y.createElementBlock("div",wx,[y.createElementVNode("h2",Sx,y.toDisplayString(w.value),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",Ax,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.value,x=>(y.openBlock(),y.createElementBlock("div",{class:"flex items-center",key:x.label},[y.createElementVNode("span",{class:y.normalizeClass(["shrink-0 size-2.5 inline-block me-2.5",[x.shape==="square"?"rounded-sm":"",x.shape==="circle"?"rounded-full":"",x.shape==="line"?"w-6 h-0.5":"",x.shape==="dashed-line"?"w-6 h-0.5 dashed-line":""]]),style:y.normalizeStyle({backgroundColor:x.color})},null,6),y.createElementVNode("span",kx,[y.createElementVNode("span",null,y.toDisplayString(x.label),1),x.count!==void 0?(y.openBlock(),y.createElementBlock("span",Tx," ("+y.toDisplayString(x.count)+") ",1)):y.createCommentVNode("",!0)])]))),128))])],4))}},Ex=Gt(Cx,[["__scopeId","data-v-6dafc777"]]),Px="data:image/png;base64,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",Ix={class:"flex flex-row gap-x-3 z-10 relative"},Mx=["onClick"],Lx=["src","alt"],Rx={__name:"vs-basemaps-widget",props:{map:{type:Object,required:!0},config:{type:Object,default:()=>({})},position:{type:String,default:"bottom-left"}},setup(h){const d=h,_=y.ref("voyager"),w=y.computed(()=>{var B;if(!((B=d.config)!=null&&B.layers))return[];const s=d.config.layers.map(R=>({id:R.id,title:R.label||R.title,url:R.url,service:R.type,category:"Базові карти",attribution:R.attribution,image:R.image,enabled:!0,owner:R.owner||"Unknown"}));return s.push({id:"__none__",title:"Без підложки",url:"",service:"",category:"Базові карти",attribution:"",image:Px,enabled:!0,owner:""}),s});function T(s){return{version:8,sources:{[s.id]:{type:"raster",tiles:[s.url],tileSize:256,attribution:s.attribution||""}},layers:[{id:s.id,type:"raster",source:s.id}]}}const P=s=>{if(!d.map)return;const B=d.map.getStyle(),R=w.value.map(A=>A.id),M=B.layers.filter(A=>!R.includes(A.id)),F={};for(const A in B.sources)R.includes(A)||(F[A]=B.sources[A]);if(s.id==="__none__"){const A={version:8,sources:{...F},layers:[...M]};d.map.setStyle(A);return}const L=T(s);d.map.setStyle(L),d.map.once("styledata",()=>{for(const[A,C]of Object.entries(F))d.map.getSource(A)||d.map.addSource(A,C);for(const A of M)d.map.getLayer(A.id)||d.map.addLayer(A)})},x=s=>{_.value=s;const B=w.value.find(R=>R.id===s);B&&d.map&&P(B)};return y.onMounted(()=>{var s;(s=d.config)!=null&&s.default&&(_.value=d.config.default)}),(s,B)=>{const R=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",Ix,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(w.value,M=>(y.openBlock(),y.createBlock(R,{trigger:"hover",placement:"top",key:M.id},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:y.normalizeClass(["w-14 h-14 flex items-center justify-center bg-white rounded-xl shadow-2xs cursor-pointer transition-all border-4",_.value===M.id?"border-blue-400":"border-transparent"]),onClick:F=>x(M.id)},[y.createElementVNode("img",{src:M.image,alt:M.title,class:y.normalizeClass(["object-cover rounded-lg",M.id==="__none__"?"w-10 h-10":"w-12 h-12"])},null,10,Lx)],10,Mx)]),default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(M.title)+" ",1)]),_:2},1024))),128))])}}};function za(h){if(!h.attrType||!h.attribute||!h.rules)return h.color||"#ccc";const d=h.rules.map(_=>[["==",["get",h.attribute],_.id||_.value],_.color]);return d.push(h.color||"#ccc"),["case",...d.flat()]}function Dx(h){if(!h.attrType||h.attrType!=="icon-by-attribute"||!h.attribute||!h.rules)return h.default_icon||null;const d=h.rules.map(_=>[["==",["get",h.attribute],_.value],_.icon]);return d.push(h.default_icon||"marker.svg"),["case",...d.flat()]}function ty(h){if(!h.attrType||h.attrType!=="attribute-pattern"||!h.attribute||!h.rules)return h.fillPattern||"";const d=h.rules.map(_=>[["==",["get",h.attribute],_.value],_.fillPattern||""]);return d.push(h.fillPattern||""),["case",...d.flat()]}function os(h,d="stroke",_="#ccc"){return["case",["boolean",["feature-state","hovered"],!1],"#ff0000",["boolean",["feature-state","selected"],!1],"#ff0000",h[d]||_]}function zx(h){const d=[{type:"fill",minzoom:h.pointZoom||0,paint:{"fill-color":za(h),"fill-outline-color":os(h,"stroke","#ccc"),"fill-opacity":h.opacity||1,...h.attrType==="attribute-pattern"&&{"fill-pattern":ty(h)},...h.fillPattern&&!h.attrType&&{"fill-pattern":h.fillPattern}}},{type:"line",paint:{"line-color":os(h,"stroke","#ccc"),"line-width":h.width||2,"line-opacity":h.lineOpacity||h.opacity||1}}];return h.pointZoom&&d.push({type:"circle",maxzoom:h.pointZoom,paint:{"circle-color":h.color||"#ccc","circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-opacity":h.opacity||1}}),d}function Bx(h){return[{type:"line",paint:{"line-color":os(h,"color",za(h)),"line-width":h.width||2,"line-opacity":h.opacity||1,...h.dashArray&&{"line-dasharray":h.dashArray}},layout:{...h.lineCap&&{"line-cap":h.lineCap},...h.lineJoin&&{"line-join":h.lineJoin}}}]}function Vx(h){const d=[{type:"circle",maxzoom:h.icon&&+h.iconZoom||22,paint:{"circle-radius":h.radius||6,"circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-color":za(h),"circle-opacity":h.opacity||1}}];return h!=null&&h.clusterZoom?(d.push({type:"circle",filter:["has","point_count"],paint:{"circle-color":["step",["get","point_count"],"#51bbd6",100,"#f1f075",750,"#f28cb1"],"circle-radius":["step",["get","point_count"],20,100,30,750,40]}}),d.push({type:"symbol",filter:["has","point_count"],layout:{"text-field":["get","point_count"],"text-font":["Open Sans Regular"],"text-size":12}})):h.icon&&d.push({type:"symbol",minzoom:+h.iconZoom||16,layout:{"icon-image":h.icon,"icon-allow-overlap":!0}}),d}function Fx(h,d,_){const w=h.type||"point";return w==="polygon"?[{type:"fill",..._!==void 0?{maxzoom:_}:{},paint:{"fill-color":za(h),"fill-outline-color":os(h,"stroke","#ccc"),"fill-opacity":h.opacity||1,...h.attrType==="attribute-pattern"&&{"fill-pattern":ty(h)},...h.fillPattern&&!h.attrType&&{"fill-pattern":h.fillPattern}}},{type:"line",..._!==void 0?{maxzoom:_}:{},paint:{"line-color":os(h,"stroke","#ccc"),"line-width":h.width||2,"line-opacity":h.lineOpacity||h.opacity||1}}]:w==="line"?[{type:"line",..._!==void 0?{maxzoom:_}:{},paint:{"line-color":os(h,"color",za(h)),"line-width":h.width||2,"line-opacity":h.opacity||1,...h.dashArray&&{"line-dasharray":h.dashArray}},layout:{...h.lineCap&&{"line-cap":h.lineCap},...h.lineJoin&&{"line-join":h.lineJoin}}}]:[{type:"circle",..._!==void 0?{maxzoom:_}:{},paint:{"circle-radius":h.radius||6,"circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-color":za(h),"circle-opacity":h.opacity||1}}]}function ry(h){var _,w;if(!h)return null;if(h.attrType==="icon-by-attribute"&&h.iconZoom){const T=Dx(h),P=Array.isArray(T)&&T[0]==="case"?T:["case",["==",["get",h.attribute],((w=(_=h.rules)==null?void 0:_[0])==null?void 0:w.value)||""],T,T],x=Fx(h,void 0,+h.iconZoom),s={type:"symbol",minzoom:+h.iconZoom,layout:{"icon-image":P,"icon-size":(h==null?void 0:h.icon_size)||1,"icon-allow-overlap":!0,"icon-anchor":(h==null?void 0:h.icon_anchor)||"bottom"},paint:{"icon-opacity":h.opacity||1}};return[...x,s]}const d=h.type||"point";return d==="polygon"?zx(h):d==="line"?Bx(h):Vx(h)}function Ox(h){return h.startsWith("http")?h:`${window.location.origin}${h}`}function Nx(h){const{id:d,sourceLayer:_,url:w,bounds:T,title:P,style:x,service:s,service_type:B,source_type:R,data:M}=h,F=Ox(w),L=B||s||R||"vector";switch(L){case"vtile":case"vector":return qx(d,_,F,T,P,x);case"raster":return Ux(d,F,T,P,x);case"geojson":return jx(d,M||F,T,P,x);default:throw new Error(`Unsupported layer service type: ${L}`)}}function iy(h){switch(h){case"polygon":return{type:"polygon",color:"#3388ff",opacity:.5};case"line":return{type:"line",color:"#3388ff",opacity:1};case"point":default:return{type:"point",color:"#3388ff",radius:6,opacity:1}}}function qx(h,d,_,w,T,P){const x=d||(_.match(/\/vtile\/([^/]+)/)||[])[1]||h,s={type:"vector",tiles:[_],...w&&{bounds:w}},B=P||iy("polygon"),M=ry(B).map((F,L)=>({...F,id:`${h}-${L}`,"source-layer":x,source:h}));return{id:h,title:T,source:s,layers:M,visible:!0}}function Ux(h,d,_,w,T){const P={type:"raster",tiles:[d],tileSize:256,..._&&{bounds:_}},x=T||{},s={id:h,type:"raster",source:h,layout:{visibility:"visible"},...x&&{paint:x}};return{id:h,title:w,source:P,layers:[s],visible:!0}}function jx(h,d,_,w,T){var M;const P={type:"geojson",data:d,..._&&{bounds:_}};let x="point";if(d&&d.features&&d.features.length>0){const F=(M=d.features[0].geometry)==null?void 0:M.type;F==="Polygon"||F==="MultiPolygon"?x="polygon":F==="LineString"||F==="MultiLineString"?x="line":x="point"}const s=T||iy(x),R=ry(s).map((F,L)=>({...F,id:`${h}-${L}`,source:h}));return{id:h,title:w,source:P,layers:R,visible:!0}}function Hx(h){if(!h||h.attrType!=="icon-by-attribute")return[];const d=new Set;return h.default_icon&&d.add(h.default_icon),Array.isArray(h.rules)&&h.rules.forEach(_=>{_.icon&&d.add(_.icon)}),Array.from(d).map(_=>({name:_,url:(h.icon_base_url||"")+_}))}function Wx(h){const d=new Set;function _(w){typeof w=="string"?d.add(w):Array.isArray(w)&&w.forEach(_)}return h&&h["icon-image"]&&_(h["icon-image"]),Array.from(d)}async function ny(h,d){const _=d.map(async({name:w,url:T})=>{const P=await h.loadImage(T);return{name:w,data:P.data}});try{const w=await Promise.all(_);for(const{name:T,data:P}of w)h.hasImage(T)||h.addImage(T,P)}catch(w){console.error("Failed to load icons:",w)}}function Zx(h,d,_="/icons/"){const T=Wx(d).map(P=>({name:P,url:_+P}));return ny(h,T)}async function Po(h,d){const _=Nx(d);console.log("layer",_);const w=Hx(d.style);w.length>0&&await ny(h,w),d.layout&&d.layout["icon-image"]&&await Zx(h,d.layout),h.getSource(_.id)||h.addSource(_.id,_.source);for(const T of _.layers)d.visible!==void 0&&(T.layout={...T.layout,visibility:d.visible?"visible":"none"}),h.getLayer(T.id)?h.setLayoutProperty(T.id,"visibility",d.visible?"visible":"none"):await h.addLayer(T);return _}function Da(h,d){h.getStyle().layers.filter(T=>T.source===d).forEach(T=>{h.removeLayer(T.id)}),h.getSource(d)&&h.removeSource(d)}const Kx={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative"},Gx={class:"flex flex-col justify-between h-full pb-5 px-5"},Jx={key:0,class:"relative mb-[10px]"},Xx={width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0px, -50%)"}},Qx={key:1,class:"mb-4"},Yx={class:""},$x={class:"space-y-2"},eb={class:"flex items-center gap-[10px] text-gray-500"},tb={class:"dataset-checkbox-container flex"},rb=["onUpdate:modelValue","onChange"],ib={class:"text-sm"},nb=["onClick"],sb=["innerHTML"],ob={key:0,class:"text-sm text-gray-500 text-center py-2"},ab={__name:"vs-layers-widget",props:{map:{type:Object,required:!0},history:{type:Boolean,default:!1},config:{type:Object,default:()=>({layers:[],search:!1,allow_toggle_all:!1})},position:{type:String,default:"bottom-left"},hasFilters:{type:Boolean,default:!1}},emits:["set-filter-layer","update:enabledLayerIds"],setup(h,{emit:d}){const _=h,w=d,T=y.ref("");y.computed(()=>ey(_.position));const P=y.ref([]);function x(){const C=new URLSearchParams(window.location.search).get("layers");return C?C.split(","):[]}function s(A){const C=new URLSearchParams(window.location.search);A.length>0?C.set("layers",A.join(",")):C.delete("layers");const H=`${window.location.pathname}?${C.toString()}`;window.history.replaceState({},"",H)}y.onMounted(()=>{let A=[];_.history&&(A=x()),A.length>0?P.value=_.config.layers.map(C=>({...C,visible:A.includes(String(C.id))})):P.value=_.config.layers.map(C=>({...C,visible:C.visible??!1})),P.value.forEach(C=>{C.visible&&Po(_.map,C)}),w("update:enabledLayerIds",M())});const B=y.computed(()=>{if(!T.value)return P.value;const A=T.value.toLowerCase();return P.value.filter(C=>(C.title||C.name||C.label||"").toLowerCase().includes(A))}),R=y.computed(()=>P.value.every(A=>A.visible)),M=()=>P.value.filter(A=>A.visible).map(A=>A.id),F=A=>{A.visible?Po(_.map,A):(Da(_.map,A.id),w("set-filter-layer",null)),_.map.getStyle().layers.filter(G=>G.source===A.id).forEach(G=>{_.map.setLayoutProperty(G.id,"visibility",A.visible?"visible":"none")}),w("update:enabledLayerIds",M())},L=()=>{const A=!R.value;P.value.forEach(C=>{C.visible=A,A?Po(_.map,C):Da(_.map,C.id)}),A||w("set-filter-layer",null),w("update:enabledLayerIds",M())};return y.watch(()=>M(),A=>{_.history&&s(A)},{deep:!0}),(A,C)=>(y.openBlock(),y.createElementBlock("div",Kx,[C[2]||(C[2]=y.createElementVNode("div",{class:"p-5 pb-3 flex justify-between items-center"},[y.createElementVNode("h2",{class:"inline-block font-semibold text-lg text-gray-800"},"Шари")],-1)),y.createElementVNode("div",Gx,[h.config.search?(y.openBlock(),y.createElementBlock("div",Jx,[y.withDirectives(y.createElementVNode("input",{type:"text","onUpdate:modelValue":C[0]||(C[0]=H=>T.value=H),placeholder:"Введіть назву шару...",class:"py-[7px] ps-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none"},null,512),[[y.vModelText,T.value]]),(y.openBlock(),y.createElementBlock("svg",Xx,C[1]||(C[1]=[y.createElementVNode("path",{d:"M7.33333 13.1667C10.2789 13.1667 12.6667 10.7789 12.6667 7.83333C12.6667 4.88781 10.2789 2.5 7.33333 2.5C4.38781 2.5 2 4.88781 2 7.83333C2 10.7789 4.38781 13.1667 7.33333 13.1667Z",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M13.9995 14.5L11.1328 11.6333",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])))])):y.createCommentVNode("",!0),h.config.allow_toggle_all?(y.openBlock(),y.createElementBlock("div",Qx,[y.createElementVNode("button",{onClick:L,class:"w-full py-[7px] bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors"},y.toDisplayString(R.value?"Вимкнути всі":"Увімкнути всі"),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",Yx,[y.createElementVNode("ul",$x,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(B.value,H=>(y.openBlock(),y.createElementBlock("li",{key:H.id,class:"flex flex-wrap justify-between items-center gap-x-2"},[y.createElementVNode("label",eb,[y.createElementVNode("span",tb,[y.withDirectives(y.createElementVNode("input",{class:"dataset-checkbox",type:"checkbox","onUpdate:modelValue":G=>H.visible=G,onChange:()=>F(H)},null,40,rb),[[y.vModelCheckbox,H.visible]])]),y.createElementVNode("span",ib,y.toDisplayString(H.title||H.name||H.label),1)]),H.actions&&H.visible?(y.openBlock(!0),y.createElementBlock(y.Fragment,{key:0},y.renderList(H.actions,G=>(y.openBlock(),y.createElementBlock("div",{key:G.id},[y.createElementVNode("button",{class:"text-sm text-gray-500",onClick:se=>A.$emit("show-widget",G.widget)},[y.createElementVNode("div",{innerHTML:G.icon},null,8,sb)],8,nb)]))),128)):y.createCommentVNode("",!0)]))),128)),T.value&&B.value.length===0?(y.openBlock(),y.createElementBlock("li",ob," Шарів не знайдено ")):y.createCommentVNode("",!0)])])])]))}},lb={class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative"},cb={key:0,class:"p-5 pb-3 flex justify-between items-start gap-[30px]"},ub={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},hb={class:"flex flex-col gap-1"},pb={class:"flex flex-col gap-1 p-5 pt-0"},db=["innerHTML"],fb={__name:"vs-info-widget",props:{config:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.title)||""}),w=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.content)||""}),T=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.goTo)||[]});return(P,x)=>{var R,M;const s=y.resolveComponent("VsPopover"),B=y.resolveComponent("router-link");return y.openBlock(),y.createElementBlock("div",lb,[_.value||(R=T.value)!=null&&R.length?(y.openBlock(),y.createElementBlock("div",cb,[y.createElementVNode("h2",ub,y.toDisplayString(_.value),1),(M=T.value)!=null&&M.length?(y.openBlock(),y.createBlock(s,{key:0,placement:"bottom"},{reference:y.withCtx(()=>[y.createVNode(s,{trigger:"hover",placement:"right"},{reference:y.withCtx(()=>x[0]||(x[0]=[y.createElementVNode("div",{class:"flex items-center justify-center h-8 w-8 transition-colors rounded-full hover:bg-gray-100 cursor-pointer"},[y.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[y.createElementVNode("path",{d:"M4 12H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M4 6H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M4 18H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)])),default:y.withCtx(()=>[x[1]||(x[1]=y.createTextVNode(" Перейти на карту "))]),_:1})]),default:y.withCtx(()=>[y.createElementVNode("div",hb,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.value,F=>(y.openBlock(),y.createElementBlock("div",{key:F.label},[F.url?(y.openBlock(),y.createBlock(B,{key:0,to:F.url,class:"text-sm text-gray-800 dark:text-neutral-200 hover:bg-gray-100 hover:text-blue-600 transition-colors rounded px-2 py-1 block"},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(F.label),1)]),_:2},1032,["to"])):y.createCommentVNode("",!0)]))),128))])]),_:1})):y.createCommentVNode("",!0)])):y.createCommentVNode("",!0),y.createElementVNode("div",pb,[y.createElementVNode("div",{innerHTML:w.value},null,8,db)])])}}},mb=Gt(fb,[["__scopeId","data-v-187a97ca"]]),gb={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative overflow-hidden"},yb={key:0,class:"p-5 pb-3 flex justify-between items-center"},_b={class:"inline-block font-semibold text-lg text-gray-800"},vb={key:1,class:"flex"},xb={class:"flex items-center mx-[8px]"},bb={class:"min-h-[34px] max-h-[34px] overflow-hidden min-w-[34px] flex justify-center items-center bg-stone-100 text-stone-800 py-2 px-3 text-sm rounded-lg"},wb={class:"min-h-[34px] flex justify-center items-center text-stone-500 py-2 px-1.5 text-sm"},Sb={class:"flex flex-col justify-between pb-5 px-5 h-full overflow-y-auto flex-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},Ab={key:0,class:"text-center"},kb={key:1,class:"text-red-500"},Tb={key:2},Cb=["innerHTML"],Eb={key:1,class:"flow-root"},Pb={class:"-my-3 divide-y divide-gray-100 text-sm"},Ib={class:"font-medium text-gray-900"},Mb={class:"text-gray-700 sm:col-span-2"},Lb={key:2,class:"vs-map-card-info__nodata"},sy={__name:"vs-card-widget",props:{config:{type:Object,required:!0},cardValues:{type:Object,required:!0}},emits:["close","content-resize"],setup(h,{emit:d}){const _=h,w=d,T=y.computed(()=>{var G;return((G=_.config)==null?void 0:G.title)||""}),P=y.ref([]),x=y.ref(!1),s=y.ref(null),B=y.ref(0),R=y.computed(()=>B.value+1),M=y.computed(()=>{var G;return((G=_.info)==null?void 0:G.length)||0}),F=y.computed(()=>P.value[B.value]),L=y.computed(()=>{if(!F.value)return{};const{rows:G,columns:se}=F.value;return!G||!se?{}:se.reduce((le,Ae)=>(!Ae.hide&&!["geom","geodata","id"].includes(Ae.name)&&(le[Ae.ua]=G[Ae.name]??"-"),le),{})});async function A(){var G,se,le;x.value=!0,s.value=null;try{const Ae={id:(G=_.cardValues)==null?void 0:G.id,layer:(se=_.cardValues)==null?void 0:se.layer,map:(le=_.cardValues)==null?void 0:le.map},te=await gr.get("/api/map-format",{params:Ae});P.value[B.value]=te.data}catch(Ae){s.value=(Ae==null?void 0:Ae.message)||"Помилка запиту"}finally{x.value=!1,await y.nextTick(),w("content-resize")}}function C(){B.value<_.info.length-1&&(B.value+=1,P.value[B.value]||A())}function H(){B.value>0&&(B.value-=1,P.value[B.value]||A())}return y.onMounted(async()=>{await y.nextTick(),A()}),y.watch(()=>_.info,()=>{B.value=0,A(),w("content-resize")},{deep:!0}),y.watch([()=>_.cardValues,()=>_.config],async()=>{await y.nextTick(),A(),w("content-resize")}),(G,se)=>{var le;return y.openBlock(),y.createElementBlock("div",gb,[T.value?(y.openBlock(),y.createElementBlock("div",yb,[y.createElementVNode("h2",_b,y.toDisplayString(T.value),1),y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600 ml-2",onClick:se[0]||(se[0]=Ae=>w("close"))},se[1]||(se[1]=[y.createElementVNode("svg",{class:"shrink-0 size-4 cursor-pointer",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[y.createElementVNode("path",{d:"M18 6 6 18"}),y.createElementVNode("path",{d:"m6 6 12 12"})],-1)]))])):y.createCommentVNode("",!0),M.value>1?(y.openBlock(),y.createElementBlock("div",vb,[y.createElementVNode("button",{type:"button",class:y.normalizeClass([{"opacity-flex items-center justify-between border-b px-[16px] py-[8px]50 pointer-events-none":R.value===1},"min-h-[34px] min-w-[34px] py-2 px-2.5 inline-flex justify-center items-center gap-x-2 text-sm rounded-lg text-stone-800 hover:bg-stone-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-100"]),onClick:H}," ◀ ",2),y.createElementVNode("div",xb,[y.createElementVNode("span",bb,y.toDisplayString(R.value),1),se[2]||(se[2]=y.createElementVNode("span",{class:"min-h-[34px] flex justify-center items-center text-stone-500 py-2 px-1.5 text-sm"},"з",-1)),y.createElementVNode("span",wb,y.toDisplayString(M.value),1)]),y.createElementVNode("button",{type:"button",onClick:C,class:y.normalizeClass([{"opacity-50 pointer-events-none":R.value===M.value},"min-h-[34px] min-w-[34px] py-2 px-2.5 inline-flex justify-center items-center gap-x-2 text-sm rounded-lg text-stone-800 hover:bg-stone-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-100"])}," ▶ ",2)])):y.createCommentVNode("",!0),y.createElementVNode("div",Sb,[x.value?(y.openBlock(),y.createElementBlock("div",Ab,"Завантаження даних...")):s.value?(y.openBlock(),y.createElementBlock("div",kb,"Помилка завантаження даних")):(y.openBlock(),y.createElementBlock("div",Tb,[(le=F.value)!=null&&le.html?(y.openBlock(),y.createElementBlock("div",{key:0,innerHTML:F.value.html,class:"custom-table-html border-b"},null,8,Cb)):Object.keys(L.value).length?(y.openBlock(),y.createElementBlock("div",Eb,[y.createElementVNode("dl",Pb,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(L.value,(Ae,te)=>(y.openBlock(),y.createElementBlock("div",{key:te,class:"grid grid-cols-1 gap-1 py-3 even:bg-gray-50 sm:grid-cols-3 sm:gap-4"},[y.createElementVNode("dt",Ib,y.toDisplayString(te),1),y.createElementVNode("dd",Mb,y.toDisplayString(Ae),1)]))),128))])])):(y.openBlock(),y.createElementBlock("div",Lb,"Даних не знайдено."))]))])])}}},Rb={class:"size-full flex flex-col bg-white border border-gray-200 shadow-2xs rounded-xl dark:bg-neutral-800 dark:border-neutral-700"},Db={key:0,class:"p-5 pb-0 items-center"},zb={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},Bb={class:"h-full p-5"},Vb={class:"h-full flex flex-col justify-between space-y-4"},Fb={class:"space-y-4"},Ob={key:0,class:"flex gap-x-1 w-full h-2.5 rounded-full overflow-hidden"},Nb=["aria-valuenow"],qb={class:"text-sm text-gray-500 px-2 w-full py-2 cursor-pointer !flex flex-row items-center rounded-lg group hover:bg-gray-100"},Ub=["for"],jb={key:0,width:"16",height:"auto",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J3doaXRlJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J00xMi4yMDcgNC43OTNhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMGwtMi0yYTEgMSAwIDAxMS40MTQtMS40MTRMNi41IDkuMDg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHonLz48L3N2Zz4="},Hb=["id","onUpdate:modelValue"],Wb={class:"ms-2 text-gray-800 dark:text-neutral-200"},Zb={key:0,class:"ms-auto text-xs text-gray-500 dark:text-neutral-500"},Kb={__name:"vs-attributre-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var B;return((B=d.config)==null?void 0:B.title)||""}),w=y.ref([]),T=y.computed(()=>d.config.layer.style.rules.some(B=>B.count!==void 0)),P=y.computed(()=>d.config.layer.style.rules.reduce((B,R)=>B+(R.count||0),0)),x=B=>!B||P.value===0?0:Math.round(B/P.value*100),s=()=>{const R=d.config.layer.style.rules.filter((M,F)=>w.value[F]).map(M=>M.id||M.value).join(",");if(d.config.layer.id){const M=d.map.getSource(d.config.layer.id);if(M){const L=M.tiles[0].split("?filter=")[0],A=R?`${L}?filter=${d.config.layer.style.attribute}=${R}`:L;M.setTiles([A])}}};return y.onMounted(()=>{var B;(B=d.config)!=null&&B.layer&&(Po(d.map,d.config.layer),w.value=new Array(d.config.layer.style.rules.length).fill(!1))}),(B,R)=>(y.openBlock(),y.createElementBlock("div",Rb,[_.value?(y.openBlock(),y.createElementBlock("div",Db,[y.createElementVNode("div",null,[y.createElementVNode("h2",zb,y.toDisplayString(_.value),1)])])):y.createCommentVNode("",!0),y.createElementVNode("div",Bb,[y.createElementVNode("div",Vb,[y.createElementVNode("div",Fb,[T.value?(y.openBlock(),y.createElementBlock("div",Ob,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(h.config.layer.style.rules,(M,F)=>(y.openBlock(),y.createElementBlock("div",{key:F,class:"flex flex-col justify-center overflow-hidden text-xs text-white text-center whitespace-nowrap",style:y.normalizeStyle({width:`${x(M.count)}%`,backgroundColor:M.color}),role:"progressbar","aria-valuenow":x(M.count),"aria-valuemin":"0","aria-valuemax":"100"},null,12,Nb))),128))])):y.createCommentVNode("",!0),y.createElementVNode("ul",null,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(h.config.layer.style.rules,(M,F)=>(y.openBlock(),y.createElementBlock("li",{key:F},[y.createElementVNode("div",qb,[y.createElementVNode("label",{for:`filter-${F}`,class:"flex items-center w-full cursor-pointer"},[y.createElementVNode("div",{class:"w-[18px] h-[18px] border rounded-[4px] flex items-center justify-center",style:y.normalizeStyle({background:w.value[F]?M.color||"#2563eb":"#fff",borderColor:w.value[F]?M.color||"#2563eb":M.color||"#d9d9d9"})},[w.value[F]?(y.openBlock(),y.createElementBlock("img",jb)):y.createCommentVNode("",!0)],4),y.withDirectives(y.createElementVNode("input",{type:"checkbox",id:`filter-${F}`,"onUpdate:modelValue":L=>w.value[F]=L,onChange:s,class:"hidden",disabled:!1},null,40,Hb),[[y.vModelCheckbox,w.value[F]]]),y.createElementVNode("span",Wb,y.toDisplayString(M.label||M.text),1),T.value?(y.openBlock(),y.createElementBlock("span",Zb,"("+y.toDisplayString(M.count)+")",1)):y.createCommentVNode("",!0)],8,Ub)])]))),128))])])])])]))}},Gb={class:"hover:bg-gray-100 rounded-lg flex items-center ml-[20px] py-[8px] px-[8px]"},Jb=["for"],Xb={class:"custom-checkbox-wrapper"},Qb=["id","checked"],Yb={class:"custom-checkbox"},$b={key:0,xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},e1={class:"flex items-center justify-between ml-2 w-full"},t1=["title"],r1={key:0,class:"text-xs opacity-60 text-[#4b5563]"},i1={__name:"vs-map-catalog-item",props:{layer:{type:Object,required:!0},map:{type:Object,default:()=>null},selectedLayers:{type:Array,default:()=>[]}},emits:["select","remove"],setup(h,{emit:d}){const _=h,w=d,T=y.computed(()=>_.selectedLayers.some(s=>s.id===_.layer.id)),P=s=>Intl.NumberFormat("uk",{notation:"compact"}).format(s),x=s=>{w(s?"select":"remove",_.layer)};return(s,B)=>{var R,M,F,L,A;return y.openBlock(),y.createElementBlock("div",Gb,[y.createElementVNode("label",{class:"flex items-center w-full cursor-pointer",for:h.layer.id},[y.createElementVNode("div",Xb,[y.createElementVNode("input",{id:h.layer.id,type:"checkbox",checked:T.value,onChange:B[0]||(B[0]=C=>x(C.target.checked)),class:"custom-checkbox-input"},null,40,Qb),y.createElementVNode("div",Yb,[T.value?(y.openBlock(),y.createElementBlock("svg",$b,B[1]||(B[1]=[y.createElementVNode("path",{d:"M10.6663 1L4.24967 7.41667L1.33301 4.5",stroke:"#fff","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))):y.createCommentVNode("",!0)])]),y.createElementVNode("div",e1,[y.createElementVNode("div",{class:"whitespace-nowrap text text-ellipsis max-w-[260px] overflow-hidden text-[13px] text-[#4b5563]",title:(R=h.layer)==null?void 0:R.name},y.toDisplayString(((M=h.layer)==null?void 0:M.name)||((F=h.layer)==null?void 0:F.title)),9,t1),isNaN(P((L=h.layer)==null?void 0:L.count))?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",r1,y.toDisplayString(P((A=h.layer)==null?void 0:A.count)),1))])],8,Jb)])}}},n1=Gt(i1,[["__scopeId","data-v-b96f3537"]]),s1={},o1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-zoom-in"};function a1(h,d){return y.openBlock(),y.createElementBlock("svg",o1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"11",cy:"11",r:"8"},null,-1),y.createElementVNode("line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65"},null,-1),y.createElementVNode("line",{x1:"11",x2:"11",y1:"8",y2:"14"},null,-1),y.createElementVNode("line",{x1:"8",x2:"14",y1:"11",y2:"11"},null,-1)]))}const l1=Gt(s1,[["render",a1]]),c1={},u1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-info"};function h1(h,d){return y.openBlock(),y.createElementBlock("svg",u1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),y.createElementVNode("path",{d:"M12 16v-4"},null,-1),y.createElementVNode("path",{d:"M12 8h.01"},null,-1)]))}const p1=Gt(c1,[["render",h1]]),d1={},f1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-table"};function m1(h,d){return y.openBlock(),y.createElementBlock("svg",f1,d[0]||(d[0]=[y.createElementVNode("path",{d:"M12 3v18"},null,-1),y.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"},null,-1),y.createElementVNode("path",{d:"M3 9h18"},null,-1),y.createElementVNode("path",{d:"M3 15h18"},null,-1)]))}const g1=Gt(d1,[["render",m1]]),y1={},_1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-trash2"};function v1(h,d){return y.openBlock(),y.createElementBlock("svg",_1,d[0]||(d[0]=[y.createStaticVNode('<path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line>',5)]))}const x1=Gt(y1,[["render",v1]]),b1={},w1={xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-more-vertical text-gray-600"};function S1(h,d){return y.openBlock(),y.createElementBlock("svg",w1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"12",cy:"12",r:"1"},null,-1),y.createElementVNode("circle",{cx:"12",cy:"5",r:"1"},null,-1),y.createElementVNode("circle",{cx:"12",cy:"19",r:"1"},null,-1)]))}const A1=Gt(b1,[["render",S1]]),k1={},T1={width:"6",height:"10",viewBox:"0 0 6 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function C1(h,d){return y.openBlock(),y.createElementBlock("svg",T1,d[0]||(d[0]=[y.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const E1=Gt(k1,[["render",C1]]);function P1(){const d=new URLSearchParams(window.location.search).get("layers");return d?d.split(","):[]}function I1(h){const d=new URLSearchParams(window.location.search);h.length>0?d.set("layers",h.join(",")):d.delete("layers");const _=`${window.location.pathname}?${d.toString()}`;window.history.replaceState({},"",_)}const M1={components:{VsLayersItem:n1,ZoomInIcon:l1,InfoIcon:p1,TableIcon:g1,TrashIcon:x1,DotsIcon:A1,ChevronRightIcon:E1},props:{center:{type:Array,default:()=>[26.2516,50.6199]},zoom:{type:Number,default:12},map:{type:Object,default:()=>null},history:{type:Boolean,default:!1}},emits:["content-resize"],data(){return{layers:null,rawCatalog:null,categories:null,selectedCategory:"",search:"",activeView:"catalog",selectedLayers:[],mounted:!1,draggedLayerIndex:null}},computed:{searchedLayers(){return this.layers.filter(({name:h})=>h==null?void 0:h.toLowerCase().match(this.search.toLowerCase()))}},async mounted(){if(this.mounted=!0,await this.getLayers(),this.categories=this.layersCategories(),this.history){const h=P1();h.length>0&&this.layers&&(h.forEach(d=>{const _=this.layers.find(w=>String(w.id)===d);if(_&&!this.selectedLayers.find(w=>w.id===_.id)){const w={..._,visible:!0,opacity:100};this.selectedLayers.push(w),Po(this.map,w)}}),this.activeView="selected")}this._resizeObserver=new window.ResizeObserver(()=>{this.$emit("content-resize")}),this.$nextTick(()=>{const h=this.$el;h&&this._resizeObserver.observe(h)})},beforeUnmount(){this._resizeObserver&&this._resizeObserver.disconnect()},watch:{selectedLayers:{handler(h){this.history&&I1(h.map(d=>d.id))},deep:!0}},methods:{async getLayers(){try{const h=await gr.get("/api/map-catalog"),d=(h.data.services||[]).filter(_=>_.service_type!=="other");this.layers=[...d,...h.data.rasters||[]],this.rawCatalog={...h.data,services:d}}catch(h){console.error("Помилка завантаження шарів:",h)}},layersCategories(){return this.rawCatalog?{Сервіси:this.rawCatalog.services||[],Растри:this.rawCatalog.rasters||[]}:{}},selectCategory(h){this.selectedCategory=this.selectedCategory===h?"":h},formatNumber(h){return Intl.NumberFormat("uk",{notation:"compact"}).format(h)},onEnter(){this.layers.filter(({name:h})=>h==null?void 0:h.toLowerCase().match(this.search.toLowerCase()))},clearSearch(){this.search=""},addToSelected(h){if(!this.selectedLayers.find(d=>d.id===h.id)){const d={...h,visible:!0,opacity:100};this.selectedLayers.unshift(d),Po(this.map,d)}},deleteLayer(h){const d=this.selectedLayers.findIndex(_=>_.id===h.id);d!==-1&&this.selectedLayers.splice(d,1),Da(this.map,h.id)},async toggleLayerVisibility(h){try{h.visible?(await Po(this.map,h),this.updateLayerOpacity(h)):await Da(this.map,h.id)}catch(d){console.error("Error toggling layer visibility:",d),h.visible=!h.visible}},onLayerOpacityChange(h){this.updateLayerOpacity(h)},updateLayerOpacity(h){if(this.map){const d=this.map.getStyle().layers.filter(w=>w.id.includes(h.id)),_=h.opacity/100;d.forEach(w=>{w.type==="fill"?(h.originalFillOpacity||(h.originalFillOpacity=this.map.getPaintProperty(w.id,"fill-opacity")||1),this.map.setPaintProperty(w.id,"fill-opacity",h.originalFillOpacity*_)):w.type==="raster"?this.map.setPaintProperty(w.id,"raster-opacity",_):w.type==="line"?this.map.setPaintProperty(w.id,"line-opacity",_):w.type==="circle"?(this.map.setPaintProperty(w.id,"circle-opacity",_),this.map.setPaintProperty(w.id,"circle-stroke-opacity",_)):w.type==="symbol"&&(this.map.setPaintProperty(w.id,"icon-opacity",_),this.map.setPaintProperty(w.id,"text-opacity",_))})}},async handleRemoveFromCatalog(h){const d=this.selectedLayers.find(_=>_.id===h.id);d!=null&&d.visible&&await Da(this.map,h.id),this.deleteLayer(h)},clearSelectedLayers(){this.selectedLayers.forEach(async h=>{h.visible&&await Da(this.map,h.id)}),this.selectedLayers=[]},zoomToLayer(h){this.fitBoundsByLayer(h)},showLayerInfo(h){},showLayerTable(h){},fitBoundsByLayer(h){h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4&&this.map&&this.map.fitBounds([[h.bbox[0],h.bbox[1]],[h.bbox[2],h.bbox[3]]],{padding:50,duration:0})},popoverActions(h){return[{label:"Збільшити до шару",icon:"ZoomInIcon",class:h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4?"text-gray-700 hover:bg-gray-100":"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"zoomToLayer",disabled:!(h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4)},{label:"Інформація про шар",icon:"InfoIcon",class:"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"showLayerInfo",disabled:!0},{label:"Таблиця шару",icon:"TableIcon",class:"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"showLayerTable",disabled:!0},{divider:!0},{label:"Видалити шар",icon:"TrashIcon",class:"text-red-600 hover:bg-red-50",handler:"deleteLayer",disabled:!1}]},onDragStart(h){this.draggedLayerIndex=h},onDragOver(h){},onDrop(h){if(this.draggedLayerIndex===null||this.draggedLayerIndex===h)return;const d=this.selectedLayers[this.draggedLayerIndex];if(this.selectedLayers.splice(this.draggedLayerIndex,1),this.selectedLayers.splice(h,0,d),this.draggedLayerIndex=null,this.map&&this.selectedLayers.length>1)for(let _=this.selectedLayers.length-1;_>=0;_--){const w=this.selectedLayers[_];w.visible&&this.map.getStyle().layers.find(T=>T.id.includes(w.id))&&this.map.getStyle().layers.forEach(T=>{T.id.includes(w.id)&&this.map.moveLayer(T.id)})}},onDragEnd(){this.draggedLayerIndex=null}}},L1={class:"w-full max-w-md mx-auto p-4 bg-white border border-gray-200 rounded-lg shadow-sm"},R1={class:"flex items-center justify-between mb-4"},D1={class:"flex items-center gap-2"},z1={class:"text-lg font-semibold text-gray-800"},B1={key:0},V1={key:1},F1={class:"flex mb-4 border-b border-gray-200"},O1={key:0},N1={class:"mb-4"},q1={key:0,class:"space-y-2 max-h-[400px] overflow-y-auto pr-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},U1=["onDragstart","onDragover","onDrop"],j1={class:"flex items-center justify-between"},H1={class:"flex items-center gap-2 cursor-move"},W1=["onUpdate:modelValue","onChange"],Z1={class:"text-gray-800 font-medium"},K1={class:"flex items-center gap-2"},G1={class:"relative"},J1={class:"flex items-center gap-2"},X1=["onUpdate:modelValue","onInput"],Q1={class:"text-xs text-gray-600 whitespace-nowrap"},Y1=["onClick"],$1={class:"relative"},e2={class:"w-48"},t2={key:0,class:"my-1 border-gray-200"},r2=["disabled","onClick"],i2={class:"p-1 rounded-full hover:bg-gray-100 transition-colors","aria-label":"Layer actions"},n2={key:0,class:"text-center text-[14px] text-[#4b5563]"},s2={class:"relative mt-[10px]"},o2={class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"},width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a2={key:0,class:"vs-layers-catalog__list flex-1 scrollable-container overflow-auto mt-2 catalog-list"},l2={key:0,class:"text-center text-[14px] text-[#4b5563]"},c2={key:0,class:"text-center text-[14px] text-[#4b5563]"},u2=["onClick"],h2={class:"flex items-center gap-x-3"},p2=["title"],d2={class:"text-xs opacity-60 text-[#4b5563]"};function f2(h,d,_,w,T,P){var L;const x=y.resolveComponent("VsPopover"),s=y.resolveComponent("DotsIcon"),B=y.resolveComponent("searchIcon"),R=y.resolveComponent("closeIcon"),M=y.resolveComponent("VsLayersItem"),F=y.resolveComponent("chevronRightIcon");return y.openBlock(),y.createElementBlock("div",L1,[y.createElementVNode("div",R1,[y.createElementVNode("div",D1,[d[7]||(d[7]=y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-layers text-blue-600"},[y.createElementVNode("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"}),y.createElementVNode("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"}),y.createElementVNode("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"})],-1)),y.createElementVNode("h2",z1,[y.createTextVNode(y.toDisplayString(T.activeView==="catalog"?"Каталог":"Вибрані шари")+" ",1),T.activeView==="catalog"?(y.openBlock(),y.createElementBlock("span",B1,"("+y.toDisplayString(((L=T.layers)==null?void 0:L.length)||0)+")",1)):(y.openBlock(),y.createElementBlock("span",V1,"("+y.toDisplayString(T.selectedLayers.length)+")",1))])]),y.createElementVNode("button",{class:"p-1 rounded-full hover:bg-gray-200 transition-colors","aria-label":"Reset layers",onClick:d[0]||(d[0]=(...A)=>P.clearSelectedLayers&&P.clearSelectedLayers(...A))},d[8]||(d[8]=[y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-gray-600" data-v-29516a2c><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" data-v-29516a2c></path><path d="M21 3v5h-5" data-v-29516a2c></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" data-v-29516a2c></path><path d="M8 16H3v5" data-v-29516a2c></path></svg>',1)]))]),y.createElementVNode("div",F1,[y.createElementVNode("button",{class:y.normalizeClass(["px-4 py-2 text-sm font-medium",T.activeView==="catalog"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"]),onClick:d[1]||(d[1]=A=>T.activeView="catalog")}," Каталог ",2),y.createElementVNode("button",{class:y.normalizeClass(["px-4 py-2 text-sm font-medium",T.activeView==="selected"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"]),onClick:d[2]||(d[2]=A=>T.activeView="selected")}," Вибрані шари ",2)]),T.activeView==="selected"?(y.openBlock(),y.createElementBlock("div",O1,[y.createElementVNode("div",N1,[y.createElementVNode("button",{class:"flex items-center gap-2 text-blue-600 hover:text-blue-700 transition-colors px-3 py-2 rounded-md bg-blue-50 hover:bg-blue-100 w-full justify-center",onClick:d[3]||(d[3]=A=>T.activeView="catalog")},d[9]||(d[9]=[y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-plus"},[y.createElementVNode("path",{d:"M5 12h14"}),y.createElementVNode("path",{d:"M12 5v14"})],-1),y.createElementVNode("span",null,"Вибрати шар",-1)]))]),T.mounted?(y.openBlock(),y.createElementBlock("div",q1,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.selectedLayers,(A,C)=>(y.openBlock(),y.createElementBlock("div",{key:A.id||C,class:y.normalizeClass(["border border-gray-200 rounded-md p-3 mb-2 bg-white shadow-sm",{dragging:T.draggedLayerIndex===C}]),draggable:"true",onDragstart:H=>P.onDragStart(C),onDragover:y.withModifiers(H=>P.onDragOver(C),["prevent"]),onDrop:H=>P.onDrop(C),onDragend:d[4]||(d[4]=(...H)=>P.onDragEnd&&P.onDragEnd(...H))},[y.createElementVNode("div",j1,[y.createElementVNode("div",H1,[d[10]||(d[10]=y.createStaticVNode('<svg width="16" height="16" fill="none" stroke="#9ca3af" stroke-width="2" viewBox="0 0 24 24" class="mr-1 shrink-0" data-v-29516a2c><circle cx="5" cy="5" r="1.5" data-v-29516a2c></circle><circle cx="5" cy="12" r="1.5" data-v-29516a2c></circle><circle cx="5" cy="19" r="1.5" data-v-29516a2c></circle><circle cx="12" cy="5" r="1.5" data-v-29516a2c></circle><circle cx="12" cy="12" r="1.5" data-v-29516a2c></circle><circle cx="12" cy="19" r="1.5" data-v-29516a2c></circle><circle cx="19" cy="5" r="1.5" data-v-29516a2c></circle><circle cx="19" cy="12" r="1.5" data-v-29516a2c></circle><circle cx="19" cy="19" r="1.5" data-v-29516a2c></circle></svg>',1)),y.withDirectives(y.createElementVNode("input",{type:"checkbox",class:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500","onUpdate:modelValue":H=>A.visible=H,onChange:H=>P.toggleLayerVisibility(A)},null,40,W1),[[y.vModelCheckbox,A.visible]]),y.createElementVNode("span",Z1,y.toDisplayString(A.name||A.title||A.label),1)]),y.createElementVNode("div",K1,[y.createElementVNode("div",G1,[y.createVNode(x,{placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:"text-sm text-gray-600 hover:text-gray-800 transition-colors px-2 py-1 rounded hover:bg-gray-100 cursor-pointer",onClick:H=>P.updateLayerOpacity(A)},y.toDisplayString(A.opacity||100)+"% ",9,Y1)]),default:y.withCtx(()=>[y.createElementVNode("div",J1,[d[11]||(d[11]=y.createElementVNode("label",{class:"text-gray-600 whitespace-nowrap"},"Прозорість:",-1)),y.withDirectives(y.createElementVNode("input",{type:"range",min:"0",max:"100",step:"1","onUpdate:modelValue":H=>A.opacity=H,onInput:H=>P.onLayerOpacityChange(A),class:"h-2 w-full accent-blue-600 rounded-lg cursor-pointer bg-gray-200"},null,40,X1),[[y.vModelText,A.opacity]]),y.createElementVNode("span",Q1,y.toDisplayString(Math.round(A.opacity))+"% ",1)])]),_:2},1024)]),y.createElementVNode("div",$1,[y.createVNode(x,{placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("div",i2,[y.createVNode(s)])]),default:y.withCtx(()=>[y.createElementVNode("div",e2,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.popoverActions(A),(H,G)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:G},[H.divider?(y.openBlock(),y.createElementBlock("hr",t2)):(y.openBlock(),y.createElementBlock("button",{key:1,class:y.normalizeClass("w-full p-2 text-left text-sm flex items-center gap-2 "+(H.class||"")),disabled:H.disabled,onClick:se=>!H.disabled&&h.$options.methods[H.handler].call(this,A)},[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(H.icon),{class:"lucide"})),y.createTextVNode(" "+y.toDisplayString(H.label),1)],10,r2))],64))),128))])]),_:2},1024)])])])],42,U1))),128)),T.selectedLayers.length===0?(y.openBlock(),y.createElementBlock("div",n2,d[12]||(d[12]=[y.createElementVNode("p",null,'Щоб додати шар, натисніть на кнопку "Вибрати шар".',-1)]))):y.createCommentVNode("",!0)])):y.createCommentVNode("",!0)])):(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createElementVNode("div",s2,[(y.openBlock(),y.createElementBlock("svg",o2,d[13]||(d[13]=[y.createElementVNode("path",{d:"M7.33333 13.1667C10.2789 13.1667 12.6667 10.7789 12.6667 7.83333C12.6667 4.88781 10.2789 2.5 7.33333 2.5C4.38781 2.5 2 4.88781 2 7.83333C2 10.7789 4.38781 13.1667 7.33333 13.1667Z",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M13.9995 14.5L11.1328 11.6333",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))),y.withDirectives(y.createElementVNode("input",{title:"value",placeholder:"Введіть назву шару...","onUpdate:modelValue":d[5]||(d[5]=A=>T.search=A),type:"text",class:"py-[7px] ps-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:bg-neutral-800 dark:focus:ring-neutral-600",onKeyup:d[6]||(d[6]=y.withKeys((...A)=>P.onEnter&&P.onEnter(...A),["enter"]))},null,544),[[y.vModelText,T.search]]),y.createVNode(B,{class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"}}),T.search?(y.openBlock(),y.createBlock(R,{key:0,class:"absolute top-1/2 right-[10px] w-[16px] h-[16px] cursor-pointer",style:{transform:"translate(0, -50%)"},onClick:P.clearSearch},null,8,["onClick"])):y.createCommentVNode("",!0)]),T.categories?(y.openBlock(),y.createElementBlock("div",a2,[T.search?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.searchedLayers,(A,C)=>(y.openBlock(),y.createBlock(M,{key:C,layer:A,map:_.map,selectedLayers:T.selectedLayers,onSelect:P.addToSelected,onRemove:P.handleRemoveFromCatalog},null,8,["layer","map","selectedLayers","onSelect","onRemove"]))),128)),P.searchedLayers.length===0?(y.openBlock(),y.createElementBlock("div",l2," Нічого не знайдено ")):y.createCommentVNode("",!0)],64)):(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[!T.categories||Object.keys(T.categories).length===0?(y.openBlock(),y.createElementBlock("div",c2," Каталог порожній ")):(y.openBlock(!0),y.createElementBlock(y.Fragment,{key:1},y.renderList(Object.keys(T.categories),A=>(y.openBlock(),y.createElementBlock("div",{key:A},[y.createElementVNode("div",{class:"hover:bg-gray-100 focus:bg-gray-100 px-2.5 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:C=>P.selectCategory(A)},[y.createElementVNode("div",h2,[y.createVNode(F,{class:y.normalizeClass({"rotate-up":A===T.selectedCategory,"rotate-down":A!==T.selectedCategory})},null,8,["class"]),y.createElementVNode("div",{class:"max-w-[260px] text-[14px] text-[#4b5563]",title:A},y.toDisplayString(A),9,p2)]),y.createElementVNode("div",d2,y.toDisplayString(P.formatNumber(T.categories[A].length)),1)],8,u2),y.withDirectives(y.createElementVNode("div",null,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.categories[A],(C,H)=>(y.openBlock(),y.createBlock(M,{key:H,layer:C,map:_.map,selectedLayers:T.selectedLayers,onSelect:P.addToSelected,onRemove:P.handleRemoveFromCatalog},null,8,["layer","map","selectedLayers","onSelect","onRemove"]))),128))],512),[[y.vShow,A===T.selectedCategory]])]))),128))],64))])):y.createCommentVNode("",!0)],64))])}const m2=Gt(M1,[["render",f2],["__scopeId","data-v-29516a2c"]]);var vu={exports:{}},xu={exports:{}},vn={},Oi={},bm;function Ui(){if(bm)return Oi;bm=1,Oi.__esModule=!0,Oi.extend=T,Oi.indexOf=B,Oi.escapeExpression=R,Oi.isEmpty=M,Oi.createFrame=F,Oi.blockParams=L,Oi.appendContextPath=A;var h={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},d=/[&<>"'`=]/g,_=/[&<>"'`=]/;function w(C){return h[C]}function T(C){for(var H=1;H<arguments.length;H++)for(var G in arguments[H])Object.prototype.hasOwnProperty.call(arguments[H],G)&&(C[G]=arguments[H][G]);return C}var P=Object.prototype.toString;Oi.toString=P;var x=function(H){return typeof H=="function"};x(/x/)&&(Oi.isFunction=x=function(C){return typeof C=="function"&&P.call(C)==="[object Function]"}),Oi.isFunction=x;var s=Array.isArray||function(C){return C&&typeof C=="object"?P.call(C)==="[object Array]":!1};Oi.isArray=s;function B(C,H){for(var G=0,se=C.length;G<se;G++)if(C[G]===H)return G;return-1}function R(C){if(typeof C!="string"){if(C&&C.toHTML)return C.toHTML();if(C==null)return"";if(!C)return C+"";C=""+C}return _.test(C)?C.replace(d,w):C}function M(C){return!C&&C!==0?!0:!!(s(C)&&C.length===0)}function F(C){var H=T({},C);return H._parent=C,H}function L(C,H){return C.path=H,C}function A(C,H){return(C?C+".":"")+H}return Oi}var bu={exports:{}},wm;function bn(){return wm||(wm=1,function(h,d){d.__esModule=!0;var _=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function w(T,P){var x=P&&P.loc,s=void 0,B=void 0,R=void 0,M=void 0;x&&(s=x.start.line,B=x.end.line,R=x.start.column,M=x.end.column,T+=" - "+s+":"+R);for(var F=Error.prototype.constructor.call(this,T),L=0;L<_.length;L++)this[_[L]]=F[_[L]];Error.captureStackTrace&&Error.captureStackTrace(this,w);try{x&&(this.lineNumber=s,this.endLineNumber=B,Object.defineProperty?(Object.defineProperty(this,"column",{value:R,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:M,enumerable:!0})):(this.column=R,this.endColumn=M))}catch{}}w.prototype=new Error,d.default=w,h.exports=d.default}(bu,bu.exports)),bu.exports}var Ql={},wu={exports:{}},Sm;function g2(){return Sm||(Sm=1,function(h,d){d.__esModule=!0;var _=Ui();d.default=function(w){w.registerHelper("blockHelperMissing",function(T,P){var x=P.inverse,s=P.fn;if(T===!0)return s(this);if(T===!1||T==null)return x(this);if(_.isArray(T))return T.length>0?(P.ids&&(P.ids=[P.name]),w.helpers.each(T,P)):x(this);if(P.data&&P.ids){var B=_.createFrame(P.data);B.contextPath=_.appendContextPath(P.data.contextPath,P.name),P={data:B}}return s(T,P)})},h.exports=d.default}(wu,wu.exports)),wu.exports}var Su={exports:{}},Am;function y2(){return Am||(Am=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),T=bn(),P=_(T);d.default=function(x){x.registerHelper("each",function(s,B){if(!B)throw new P.default("Must pass iterator to #each");var R=B.fn,M=B.inverse,F=0,L="",A=void 0,C=void 0;B.data&&B.ids&&(C=w.appendContextPath(B.data.contextPath,B.ids[0])+"."),w.isFunction(s)&&(s=s.call(this)),B.data&&(A=w.createFrame(B.data));function H(te,de,Ce){A&&(A.key=te,A.index=de,A.first=de===0,A.last=!!Ce,C&&(A.contextPath=C+te)),L=L+R(s[te],{data:A,blockParams:w.blockParams([s[te],te],[C+te,null])})}if(s&&typeof s=="object")if(w.isArray(s))for(var G=s.length;F<G;F++)F in s&&H(F,F,F===s.length-1);else if(typeof Symbol=="function"&&s[Symbol.iterator]){for(var se=[],le=s[Symbol.iterator](),Ae=le.next();!Ae.done;Ae=le.next())se.push(Ae.value);s=se;for(var G=s.length;F<G;F++)H(F,F,F===s.length-1)}else(function(){var te=void 0;Object.keys(s).forEach(function(de){te!==void 0&&H(te,F-1),te=de,F++}),te!==void 0&&H(te,F-1,!0)})();return F===0&&(L=M(this)),L})},h.exports=d.default}(Su,Su.exports)),Su.exports}var Au={exports:{}},km;function _2(){return km||(km=1,function(h,d){d.__esModule=!0;function _(P){return P&&P.__esModule?P:{default:P}}var w=bn(),T=_(w);d.default=function(P){P.registerHelper("helperMissing",function(){if(arguments.length!==1)throw new T.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},h.exports=d.default}(Au,Au.exports)),Au.exports}var ku={exports:{}},Tm;function v2(){return Tm||(Tm=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),T=bn(),P=_(T);d.default=function(x){x.registerHelper("if",function(s,B){if(arguments.length!=2)throw new P.default("#if requires exactly one argument");return w.isFunction(s)&&(s=s.call(this)),!B.hash.includeZero&&!s||w.isEmpty(s)?B.inverse(this):B.fn(this)}),x.registerHelper("unless",function(s,B){if(arguments.length!=2)throw new P.default("#unless requires exactly one argument");return x.helpers.if.call(this,s,{fn:B.inverse,inverse:B.fn,hash:B.hash})})},h.exports=d.default}(ku,ku.exports)),ku.exports}var Tu={exports:{}},Cm;function x2(){return Cm||(Cm=1,function(h,d){d.__esModule=!0,d.default=function(_){_.registerHelper("log",function(){for(var w=[void 0],T=arguments[arguments.length-1],P=0;P<arguments.length-1;P++)w.push(arguments[P]);var x=1;T.hash.level!=null?x=T.hash.level:T.data&&T.data.level!=null&&(x=T.data.level),w[0]=x,_.log.apply(_,w)})},h.exports=d.default}(Tu,Tu.exports)),Tu.exports}var Cu={exports:{}},Em;function b2(){return Em||(Em=1,function(h,d){d.__esModule=!0,d.default=function(_){_.registerHelper("lookup",function(w,T,P){return w&&P.lookupProperty(w,T)})},h.exports=d.default}(Cu,Cu.exports)),Cu.exports}var Eu={exports:{}},Pm;function w2(){return Pm||(Pm=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),T=bn(),P=_(T);d.default=function(x){x.registerHelper("with",function(s,B){if(arguments.length!=2)throw new P.default("#with requires exactly one argument");w.isFunction(s)&&(s=s.call(this));var R=B.fn;if(w.isEmpty(s))return B.inverse(this);var M=B.data;return B.data&&B.ids&&(M=w.createFrame(B.data),M.contextPath=w.appendContextPath(B.data.contextPath,B.ids[0])),R(s,{data:M,blockParams:w.blockParams([s],[M&&M.contextPath])})})},h.exports=d.default}(Eu,Eu.exports)),Eu.exports}var Im;function oy(){if(Im)return Ql;Im=1,Ql.__esModule=!0,Ql.registerDefaultHelpers=H,Ql.moveHelperToHooks=G;function h(se){return se&&se.__esModule?se:{default:se}}var d=g2(),_=h(d),w=y2(),T=h(w),P=_2(),x=h(P),s=v2(),B=h(s),R=x2(),M=h(R),F=b2(),L=h(F),A=w2(),C=h(A);function H(se){_.default(se),T.default(se),x.default(se),B.default(se),M.default(se),L.default(se),C.default(se)}function G(se,le,Ae){se.helpers[le]&&(se.hooks[le]=se.helpers[le],Ae||delete se.helpers[le])}return Ql}var Pu={},Iu={exports:{}},Mm;function S2(){return Mm||(Mm=1,function(h,d){d.__esModule=!0;var _=Ui();d.default=function(w){w.registerDecorator("inline",function(T,P,x,s){var B=T;return P.partials||(P.partials={},B=function(R,M){var F=x.partials;x.partials=_.extend({},F,P.partials);var L=T(R,M);return x.partials=F,L}),P.partials[s.args[0]]=s.fn,B})},h.exports=d.default}(Iu,Iu.exports)),Iu.exports}var Lm;function A2(){if(Lm)return Pu;Lm=1,Pu.__esModule=!0,Pu.registerDefaultDecorators=w;function h(T){return T&&T.__esModule?T:{default:T}}var d=S2(),_=h(d);function w(T){_.default(T)}return Pu}var Mu={exports:{}},Rm;function ay(){return Rm||(Rm=1,function(h,d){d.__esModule=!0;var _=Ui(),w={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(P){if(typeof P=="string"){var x=_.indexOf(w.methodMap,P.toLowerCase());x>=0?P=x:P=parseInt(P,10)}return P},log:function(P){if(P=w.lookupLevel(P),typeof console<"u"&&w.lookupLevel(w.level)<=P){var x=w.methodMap[P];console[x]||(x="log");for(var s=arguments.length,B=Array(s>1?s-1:0),R=1;R<s;R++)B[R-1]=arguments[R];console[x].apply(console,B)}}};d.default=w,h.exports=d.default}(Mu,Mu.exports)),Mu.exports}var Ma={},Lu={},Dm;function k2(){if(Dm)return Lu;Dm=1,Lu.__esModule=!0,Lu.createNewLookupObject=d;var h=Ui();function d(){for(var _=arguments.length,w=Array(_),T=0;T<_;T++)w[T]=arguments[T];return h.extend.apply(void 0,[Object.create(null)].concat(w))}return Lu}var zm;function ly(){if(zm)return Ma;zm=1,Ma.__esModule=!0,Ma.createProtoAccessControl=P,Ma.resultIsAllowed=x,Ma.resetLoggedProperties=R;function h(M){return M&&M.__esModule?M:{default:M}}var d=k2(),_=ay(),w=h(_),T=Object.create(null);function P(M){var F=Object.create(null);F.constructor=!1,F.__defineGetter__=!1,F.__defineSetter__=!1,F.__lookupGetter__=!1;var L=Object.create(null);return L.__proto__=!1,{properties:{whitelist:d.createNewLookupObject(L,M.allowedProtoProperties),defaultValue:M.allowProtoPropertiesByDefault},methods:{whitelist:d.createNewLookupObject(F,M.allowedProtoMethods),defaultValue:M.allowProtoMethodsByDefault}}}function x(M,F,L){return s(typeof M=="function"?F.methods:F.properties,L)}function s(M,F){return M.whitelist[F]!==void 0?M.whitelist[F]===!0:M.defaultValue!==void 0?M.defaultValue:(B(F),!1)}function B(M){T[M]!==!0&&(T[M]=!0,w.default.log("error",'Handlebars: Access has been denied to resolve the property "'+M+`" because it is not an "own property" of its parent.
|
|
801
|
+
${Z.shaderPreludeCode.vertexSource}`,define:Z.shaderDefine},defaultProjectionData:ne},oe=O.renderingMode?O.renderingMode:"2d";if(g.renderPass==="offscreen"){const ue=O.prerender;ue&&(g.setCustomLayerDefaults(),N.setColorMode(g.colorModeForRenderPass()),ue.call(O,N.gl,ie),N.setDirty(),g.setBaseState())}else if(g.renderPass==="translucent"){g.setCustomLayerDefaults(),N.setColorMode(g.colorModeForRenderPass()),N.setStencilMode(Ct.disabled);const ue=oe==="3d"?g.getDepthModeFor3D():g.getDepthModeForSublayer(0,wt.ReadOnly);N.setDepthMode(ue),O.render(N.gl,ie),N.setDirty(),g.setBaseState(),N.bindFramebuffer.set(null)}}(e,0,a,p))}saveTileTexture(e){const r=this._tileTextures[e.size[0]];r?r.push(e):this._tileTextures[e.size[0]]=[e]}getTileTexture(e){const r=this._tileTextures[e];return r&&r.length>0?r.pop():null}isPatternMissing(e){if(!e)return!1;if(!e.from||!e.to)return!0;const r=this.imageManager.getPattern(e.from.toString()),a=this.imageManager.getPattern(e.to.toString());return!r||!a}useProgram(e,r,a=!1,l=[]){this.cache=this.cache||{};const p=!!this.style.map.terrain,g=this.style.projection,b=a?ci.projectionMercator:g.shaderPreludeCode,k=a?jn:g.shaderDefine,I=e+(r?r.cacheKey:"")+`/${a?Vt:g.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(p?"/terrain":"")+(l?`/${l.join("/")}`:"");return this.cache[I]||(this.cache[I]=new Oo(this.context,ci[e],r,Ac[e],this._showOverdrawInspector,p,b,k,l)),this.cache[I]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new Ze(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:e,drawingBufferHeight:r}=this.context.gl;return this.width!==e||this.height!==r}}function lo(u,e){let r,a=!1,l=null,p=null;const g=()=>{l=null,a&&(u.apply(p,r),l=setTimeout(g,e),a=!1)};return(...b)=>(a=!0,p=this,r=b,l||g(),l)}class hl{constructor(e){this._getCurrentHash=()=>{const r=window.location.hash.replace("#","");if(this._hashName){let a;return r.split("&").map(l=>l.split("=")).forEach(l=>{l[0]===this._hashName&&(a=l)}),(a&&a[1]||"").split("/")}return r.split("/")},this._onHashChange=()=>{const r=this._getCurrentHash();if(!this._isValidHash(r))return!1;const a=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(r[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+r[2],+r[1]],zoom:+r[0],bearing:a,pitch:+(r[4]||0)}),!0},this._updateHashUnthrottled=()=>{const r=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,r)},this._removeHash=()=>{const r=this._getCurrentHash();if(r.length===0)return;const a=r.join("/");let l=a;l.split("&").length>0&&(l=l.split("&")[0]),this._hashName&&(l=`${this._hashName}=${a}`);let p=window.location.hash.replace(l,"");p.startsWith("#&")?p=p.slice(0,1)+p.slice(2):p==="#"&&(p="");let g=window.location.href.replace(/(#.+)?$/,p);g=g.replace("&&","&"),window.history.replaceState(window.history.state,null,g)},this._updateHash=lo(this._updateHashUnthrottled,300),this._hashName=e&&encodeURIComponent(e)}addTo(e){return this._map=e,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(e){const r=this._map.getCenter(),a=Math.round(100*this._map.getZoom())/100,l=Math.ceil((a*Math.LN2+Math.log(512/360/.5))/Math.LN10),p=Math.pow(10,l),g=Math.round(r.lng*p)/p,b=Math.round(r.lat*p)/p,k=this._map.getBearing(),I=this._map.getPitch();let z="";if(z+=e?`/${g}/${b}/${a}`:`${a}/${b}/${g}`,(k||I)&&(z+="/"+Math.round(10*k)/10),I&&(z+=`/${Math.round(I)}`),this._hashName){const N=this._hashName;let O=!1;const Z=window.location.hash.slice(1).split("&").map(J=>{const ne=J.split("=")[0];return ne===N?(O=!0,`${ne}=${z}`):J}).filter(J=>J);return O||Z.push(`${N}=${z}`),`#${Z.join("&")}`}return`#${z}`}_isValidHash(e){if(e.length<3||e.some(isNaN))return!1;try{new s.Q(+e[2],+e[1])}catch{return!1}const r=+e[0],a=+(e[3]||0),l=+(e[4]||0);return r>=this._map.getMinZoom()&&r<=this._map.getMaxZoom()&&a>=-180&&a<=180&&l>=this._map.getMinPitch()&&l<=this._map.getMaxPitch()}}const sn={linearity:.3,easing:s.cd(0,0,.3,1)},pl=s.e({deceleration:2500,maxSpeed:1400},sn),co=s.e({deceleration:20,maxSpeed:1400},sn),dl=s.e({deceleration:1e3,maxSpeed:360},sn),Fc=s.e({deceleration:1e3,maxSpeed:90},sn),Oc=s.e({deceleration:1e3,maxSpeed:360},sn);class Nc{constructor(e){this._map=e,this.clear()}clear(){this._inertiaBuffer=[]}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:L.now(),settings:e})}_drainInertiaBuffer(){const e=this._inertiaBuffer,r=L.now();for(;e.length>0&&r-e[0].time>160;)e.shift()}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const r={zoom:0,bearing:0,pitch:0,roll:0,pan:new s.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:p}of this._inertiaBuffer)r.zoom+=p.zoomDelta||0,r.bearing+=p.bearingDelta||0,r.pitch+=p.pitchDelta||0,r.roll+=p.rollDelta||0,p.panDelta&&r.pan._add(p.panDelta),p.around&&(r.around=p.around),p.pinchAround&&(r.pinchAround=p.pinchAround);const a=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,l={};if(r.pan.mag()){const p=ws(r.pan.mag(),a,s.e({},pl,e||{})),g=r.pan.mult(p.amount/r.pan.mag()),b=this._map.cameraHelper.handlePanInertia(g,this._map.transform);l.center=b.easingCenter,l.offset=b.easingOffset,bs(l,p)}if(r.zoom){const p=ws(r.zoom,a,co);l.zoom=this._map.transform.zoom+p.amount,bs(l,p)}if(r.bearing){const p=ws(r.bearing,a,dl);l.bearing=this._map.transform.bearing+s.ae(p.amount,-179,179),bs(l,p)}if(r.pitch){const p=ws(r.pitch,a,Fc);l.pitch=this._map.transform.pitch+p.amount,bs(l,p)}if(r.roll){const p=ws(r.roll,a,Oc);l.roll=this._map.transform.roll+s.ae(p.amount,-179,179),bs(l,p)}if(l.zoom||l.bearing){const p=r.pinchAround===void 0?r.around:r.pinchAround;l.around=p?this._map.unproject(p):this._map.getCenter()}return this.clear(),s.e(l,{noMoveStart:!0})}}function bs(u,e){(!u.duration||u.duration<e.duration)&&(u.duration=e.duration,u.easing=e.easing)}function ws(u,e,r){const{maxSpeed:a,linearity:l,deceleration:p}=r,g=s.ae(u*l/(e/1e3),-a,a),b=Math.abs(g)/(p*l);return{easing:r.easing,duration:1e3*b,amount:g*(b/2)}}class zr extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a,l={}){a=a instanceof MouseEvent?a:new MouseEvent(e,a);const p=A.mousePos(r.getCanvas(),a),g=r.unproject(p);super(e,s.e({point:p,lngLat:g,originalEvent:a},l)),this._defaultPrevented=!1,this.target=r}}class Ss extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a){const l=e==="touchend"?a.changedTouches:a.touches,p=A.touchPos(r.getCanvasContainer(),l),g=p.map(k=>r.unproject(k)),b=p.reduce((k,I,z,N)=>k.add(I.div(N.length)),new s.P(0,0));super(e,{points:p,point:b,lngLats:g,lngLat:r.unproject(b),originalEvent:a}),this._defaultPrevented=!1}}class fl extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a){super(e,{originalEvent:a}),this._defaultPrevented=!1}}class qc{constructor(e,r){this._map=e,this._clickTolerance=r.clickTolerance}reset(){delete this._mousedownPos}wheel(e){return this._firePreventable(new fl(e.type,this._map,e))}mousedown(e,r){return this._mousedownPos=r,this._firePreventable(new zr(e.type,this._map,e))}mouseup(e){this._map.fire(new zr(e.type,this._map,e))}click(e,r){this._mousedownPos&&this._mousedownPos.dist(r)>=this._clickTolerance||this._map.fire(new zr(e.type,this._map,e))}dblclick(e){return this._firePreventable(new zr(e.type,this._map,e))}mouseover(e){this._map.fire(new zr(e.type,this._map,e))}mouseout(e){this._map.fire(new zr(e.type,this._map,e))}touchstart(e){return this._firePreventable(new Ss(e.type,this._map,e))}touchmove(e){this._map.fire(new Ss(e.type,this._map,e))}touchend(e){this._map.fire(new Ss(e.type,this._map,e))}touchcancel(e){this._map.fire(new Ss(e.type,this._map,e))}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Uc{constructor(e){this._map=e}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(e){this._map.fire(new zr(e.type,this._map,e))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new zr("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._ignoreContextMenu||this._map.fire(new zr(e.type,this._map,e)),this._map.listens("contextmenu")&&e.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class As{constructor(e){this._map=e}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(e){return this.transform.screenPointToLocation(s.P.convert(e),this._map.terrain)}}class ml{constructor(e,r){this._map=e,this._tr=new As(e),this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=r.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(e,r){this.isEnabled()&&e.shiftKey&&e.button===0&&(A.disableDrag(),this._startPos=this._lastPos=r,this._active=!0)}mousemoveWindow(e,r){if(!this._active)return;const a=r;if(this._lastPos.equals(a)||!this._box&&a.dist(this._startPos)<this._clickTolerance)return;const l=this._startPos;this._lastPos=a,this._box||(this._box=A.create("div","maplibregl-boxzoom",this._container),this._container.classList.add("maplibregl-crosshair"),this._fireEvent("boxzoomstart",e));const p=Math.min(l.x,a.x),g=Math.max(l.x,a.x),b=Math.min(l.y,a.y),k=Math.max(l.y,a.y);A.setTransform(this._box,`translate(${p}px,${b}px)`),this._box.style.width=g-p+"px",this._box.style.height=k-b+"px"}mouseupWindow(e,r){if(!this._active||e.button!==0)return;const a=this._startPos,l=r;if(this.reset(),A.suppressClick(),a.x!==l.x||a.y!==l.y)return this._map.fire(new s.l("boxzoomend",{originalEvent:e})),{cameraAnimation:p=>p.fitScreenCoordinates(a,l,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",e)}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",e))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(A.remove(this._box),this._box=null),A.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(e,r){return this._map.fire(new s.l(e,{originalEvent:r}))}}function la(u,e){if(u.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${u.length}, points ${e.length}`);const r={};for(let a=0;a<u.length;a++)r[u[a].identifier]=e[a];return r}class jc{constructor(e){this.reset(),this.numTouches=e.numTouches}reset(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1}touchstart(e,r,a){(this.centroid||a.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=e.timeStamp),a.length===this.numTouches&&(this.centroid=function(l){const p=new s.P(0,0);for(const g of l)p._add(g);return p.div(l.length)}(r),this.touches=la(a,r)))}touchmove(e,r,a){if(this.aborted||!this.centroid)return;const l=la(a,r);for(const p in this.touches){const g=l[p];(!g||g.dist(this.touches[p])>30)&&(this.aborted=!0)}}touchend(e,r,a){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),a.length===0){const l=!this.aborted&&this.centroid;if(this.reset(),l)return l}}}class ks{constructor(e){this.singleTap=new jc(e),this.numTaps=e.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(e,r,a){this.singleTap.touchstart(e,r,a)}touchmove(e,r,a){this.singleTap.touchmove(e,r,a)}touchend(e,r,a){const l=this.singleTap.touchend(e,r,a);if(l){const p=e.timeStamp-this.lastTime<500,g=!this.lastTap||this.lastTap.dist(l)<30;if(p&&g||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=l,this.count===this.numTaps)return this.reset(),l}}}class Hc{constructor(e){this._tr=new As(e),this._zoomIn=new ks({numTouches:1,numTaps:2}),this._zoomOut=new ks({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(e,r,a){this._zoomIn.touchstart(e,r,a),this._zoomOut.touchstart(e,r,a)}touchmove(e,r,a){this._zoomIn.touchmove(e,r,a),this._zoomOut.touchmove(e,r,a)}touchend(e,r,a){const l=this._zoomIn.touchend(e,r,a),p=this._zoomOut.touchend(e,r,a),g=this._tr;return l?(this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:b=>b.easeTo({duration:300,zoom:g.zoom+1,around:g.unproject(l)},{originalEvent:e})}):p?(this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:b=>b.easeTo({duration:300,zoom:g.zoom-1,around:g.unproject(p)},{originalEvent:e})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class ni{constructor(e){this._enabled=!!e.enable,this._moveStateManager=e.moveStateManager,this._clickTolerance=e.clickTolerance||1,this._moveFunction=e.move,this._activateOnStart=!!e.activateOnStart,e.assignEvents(this),this.reset()}reset(e){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(e)}_move(...e){const r=this._moveFunction(...e);if(r.bearingDelta||r.pitchDelta||r.rollDelta||r.around||r.panDelta)return this._active=!0,r}dragStart(e,r){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(e)&&(this._moveStateManager.startMove(e),this._lastPoint=Array.isArray(r)?r[0]:r,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(e,r){if(!this.isEnabled())return;const a=this._lastPoint;if(!a)return;if(e.preventDefault(),!this._moveStateManager.isValidMoveEvent(e))return void this.reset(e);const l=Array.isArray(r)?r[0]:r;return!this._moved&&l.dist(a)<this._clickTolerance?void 0:(this._moved=!0,this._lastPoint=l,this._move(a,l))}dragEnd(e){this.isEnabled()&&this._lastPoint&&this._moveStateManager.isValidEndEvent(e)&&(this._moved&&A.suppressClick(),this.reset(e))}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}getClickTolerance(){return this._clickTolerance}}const Wi={0:1,2:2};class Ts{constructor(e){this._correctEvent=e.checkCorrectEvent}startMove(e){const r=A.mouseButton(e);this._eventButton=r}endMove(e){delete this._eventButton}isValidStartEvent(e){return this._correctEvent(e)}isValidMoveEvent(e){return!function(r,a){const l=Wi[a];return r.buttons===void 0||(r.buttons&l)!==l}(e,this._eventButton)}isValidEndEvent(e){return A.mouseButton(e)===this._eventButton}}class Zi{constructor(){this._firstTouch=void 0}_isOneFingerTouch(e){return e.targetTouches.length===1}_isSameTouchEvent(e){return e.targetTouches[0].identifier===this._firstTouch}startMove(e){this._firstTouch=e.targetTouches[0].identifier}endMove(e){delete this._firstTouch}isValidStartEvent(e){return this._isOneFingerTouch(e)}isValidMoveEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}isValidEndEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}}class Cs{constructor(e=new Ts({checkCorrectEvent:()=>!0}),r=new Zi){this.mouseMoveStateManager=e,this.oneFingerTouchMoveStateManager=r}_executeRelevantHandler(e,r,a){return e instanceof MouseEvent?r(e):typeof TouchEvent<"u"&&e instanceof TouchEvent?a(e):void 0}startMove(e){this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.startMove(r),r=>this.oneFingerTouchMoveStateManager.startMove(r))}endMove(e){this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.endMove(r),r=>this.oneFingerTouchMoveStateManager.endMove(r))}isValidStartEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidStartEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidStartEvent(r))}isValidMoveEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidMoveEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(r))}isValidEndEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidEndEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidEndEvent(r))}}const ca=u=>{u.mousedown=u.dragStart,u.mousemoveWindow=u.dragMove,u.mouseup=u.dragEnd,u.contextmenu=e=>{e.preventDefault()}};class zh{constructor(e,r){this._clickTolerance=e.clickTolerance||1,this._map=r,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new s.P(0,0)}_shouldBePrevented(e){return e<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(e,r,a){return this._calculateTransform(e,r,a)}touchmove(e,r,a){if(this._active){if(!this._shouldBePrevented(a.length))return e.preventDefault(),this._calculateTransform(e,r,a);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",e)}}touchend(e,r,a){this._calculateTransform(e,r,a),this._active&&this._shouldBePrevented(a.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(e,r,a){a.length>0&&(this._active=!0);const l=la(a,r),p=new s.P(0,0),g=new s.P(0,0);let b=0;for(const I in l){const z=l[I],N=this._touches[I];N&&(p._add(z),g._add(z.sub(N)),b++,l[I]=z)}if(this._touches=l,this._shouldBePrevented(b)||!g.mag())return;const k=g.div(b);return this._sum._add(k),this._sum.mag()<this._clickTolerance?void 0:{around:p.div(b),panDelta:k}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class gl{constructor(){this.reset()}reset(){this._active=!1,delete this._firstTwoTouches}touchstart(e,r,a){this._firstTwoTouches||a.length<2||(this._firstTwoTouches=[a[0].identifier,a[1].identifier],this._start([r[0],r[1]]))}touchmove(e,r,a){if(!this._firstTwoTouches)return;e.preventDefault();const[l,p]=this._firstTwoTouches,g=ua(a,r,l),b=ua(a,r,p);if(!g||!b)return;const k=this._aroundCenter?null:g.add(b).div(2);return this._move([g,b],k,e)}touchend(e,r,a){if(!this._firstTwoTouches)return;const[l,p]=this._firstTwoTouches,g=ua(a,r,l),b=ua(a,r,p);g&&b||(this._active&&A.suppressClick(),this.reset())}touchcancel(){this.reset()}enable(e){this._enabled=!0,this._aroundCenter=!!e&&e.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return!!this._enabled}isActive(){return!!this._active}}function ua(u,e,r){for(let a=0;a<u.length;a++)if(u[a].identifier===r)return e[a]}function yl(u,e){return Math.log(u/e)/Math.LN2}class Es extends gl{reset(){super.reset(),delete this._distance,delete this._startDistance}_start(e){this._startDistance=this._distance=e[0].dist(e[1])}_move(e,r){const a=this._distance;if(this._distance=e[0].dist(e[1]),this._active||!(Math.abs(yl(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:yl(this._distance,a),pinchAround:r}}}function on(u,e){return 180*u.angleWith(e)/Math.PI}class it extends gl{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector}_start(e){this._startVector=this._vector=e[0].sub(e[1]),this._minDiameter=e[0].dist(e[1])}_move(e,r,a){const l=this._vector;if(this._vector=e[0].sub(e[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:on(this._vector,l),pinchAround:r}}_isBelowThreshold(e){this._minDiameter=Math.min(this._minDiameter,e.mag());const r=25/(Math.PI*this._minDiameter)*360,a=on(e,this._startVector);return Math.abs(a)<r}}function ha(u){return Math.abs(u.y)>Math.abs(u.x)}class pa extends gl{constructor(e){super(),this._currentTouchCount=0,this._map=e}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(e,r,a){super.touchstart(e,r,a),this._currentTouchCount=a.length}_start(e){this._lastPoints=e,ha(e[0].sub(e[1]))&&(this._valid=!1)}_move(e,r,a){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const l=e[0].sub(this._lastPoints[0]),p=e[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(l,p,a.timeStamp),this._valid?(this._lastPoints=e,this._active=!0,{pitchDelta:(l.y+p.y)/2*-.5}):void 0}gestureBeginsVertically(e,r,a){if(this._valid!==void 0)return this._valid;const l=e.mag()>=2,p=r.mag()>=2;if(!l&&!p)return;if(!l||!p)return this._firstMove===void 0&&(this._firstMove=a),a-this._firstMove<100&&void 0;const g=e.y>0==r.y>0;return ha(e)&&ha(r)&&g}}const Wc={panStep:100,bearingStep:15,pitchStep:10};class Ps{constructor(e){this._tr=new As(e);const r=Wc;this._panStep=r.panStep,this._bearingStep=r.bearingStep,this._pitchStep=r.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let r=0,a=0,l=0,p=0,g=0;switch(e.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:e.shiftKey?a=-1:(e.preventDefault(),p=-1);break;case 39:e.shiftKey?a=1:(e.preventDefault(),p=1);break;case 38:e.shiftKey?l=1:(e.preventDefault(),g=-1);break;case 40:e.shiftKey?l=-1:(e.preventDefault(),g=1);break;default:return}return this._rotationDisabled&&(a=0,l=0),{cameraAnimation:b=>{const k=this._tr;b.easeTo({duration:300,easeId:"keyboardHandler",easing:uo,zoom:r?Math.round(k.zoom)+r*(e.shiftKey?2:1):k.zoom,bearing:k.bearing+a*this._bearingStep,pitch:k.pitch+l*this._pitchStep,offset:[-p*this._panStep,-g*this._panStep],center:k.center},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function uo(u){return u*(2-u)}const _l=4.000244140625;class Rt{constructor(e,r){this._onTimeout=a=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(a)},this._map=e,this._tr=new As(e),this._triggerRenderFrame=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(e){this._defaultZoomRate=e}setWheelZoomRate(e){this._wheelZoomRate=e}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&e.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(e){return!!this._map.cooperativeGestures.isEnabled()&&!(e.ctrlKey||this._map.cooperativeGestures.isBypassed(e))}wheel(e){if(!this.isEnabled())return;if(this._shouldBePrevented(e))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",e);let r=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const a=L.now(),l=a-(this._lastWheelEventTime||0);this._lastWheelEventTime=a,r!==0&&r%_l==0?this._type="wheel":r!==0&&Math.abs(r)<4?this._type="trackpad":l>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(l*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}_start(e){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const r=A.mousePos(this._map.getCanvas(),e),a=this._tr;this._aroundPoint=this._aroundCenter?a.transform.locationToScreenPoint(s.Q.convert(a.center)):r,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const e=this._tr.transform;if(typeof this._lastExpectedZoom=="number"){const b=e.zoom-this._lastExpectedZoom;typeof this._startZoom=="number"&&(this._startZoom+=b),typeof this._targetZoom=="number"&&(this._targetZoom+=b)}if(this._delta!==0){const b=this._type==="wheel"&&Math.abs(this._delta)>_l?this._wheelZoomRate:this._defaultZoomRate;let k=2/(1+Math.exp(-Math.abs(this._delta*b)));this._delta<0&&k!==0&&(k=1/k);const I=typeof this._targetZoom!="number"?e.scale:s.ac(this._targetZoom);this._targetZoom=e.getConstrained(e.getCameraLngLat(),s.ah(I*k)).zoom,this._type==="wheel"&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const r=typeof this._targetZoom!="number"?e.zoom:this._targetZoom,a=this._startZoom,l=this._easing;let p,g=!1;if(this._type==="wheel"&&a&&l){const b=L.now()-this._lastWheelEventTime,k=Math.min((b+5)/200,1),I=l(k);p=s.B.number(a,r,I),k<1?this._frameId||(this._frameId=!0):g=!0}else p=r,g=!0;return this._active=!0,g&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout},200)),this._lastExpectedZoom=p,{noInertia:!0,needsRenderFrame:!g,zoomDelta:p-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let r=s.cf;if(this._prevEase){const a=this._prevEase,l=(L.now()-a.start)/a.duration,p=a.easing(l+.01)-a.easing(l),g=.27/Math.sqrt(p*p+1e-4)*.01,b=Math.sqrt(.0729-g*g);r=s.cd(g,b,.25,1)}return this._prevEase={start:L.now(),duration:e,easing:r},r}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class da{constructor(e,r){this._clickZoom=e,this._tapZoom=r}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class Bh{constructor(e){this._tr=new As(e),this.reset()}reset(){this._active=!1}dblclick(e,r){return e.preventDefault(),{cameraAnimation:a=>{a.easeTo({duration:300,zoom:this._tr.zoom+(e.shiftKey?-1:1),around:this._tr.unproject(r)},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class vl{constructor(){this._tap=new ks({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(e,r,a){if(!this._swipePoint)if(this._tapTime){const l=r[0],p=e.timeStamp-this._tapTime<500,g=this._tapPoint.dist(l)<30;p&&g?a.length>0&&(this._swipePoint=l,this._swipeTouch=a[0].identifier):this.reset()}else this._tap.touchstart(e,r,a)}touchmove(e,r,a){if(this._tapTime){if(this._swipePoint){if(a[0].identifier!==this._swipeTouch)return;const l=r[0],p=l.y-this._swipePoint.y;return this._swipePoint=l,e.preventDefault(),this._active=!0,{zoomDelta:p/128}}}else this._tap.touchmove(e,r,a)}touchend(e,r,a){if(this._tapTime)this._swipePoint&&a.length===0&&this.reset();else{const l=this._tap.touchend(e,r,a);l&&(this._tapTime=e.timeStamp,this._tapPoint=l)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Zc{constructor(e,r,a){this._el=e,this._mousePan=r,this._touchPan=a}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Kc{constructor(e,r,a,l){this._pitchWithRotate=e.pitchWithRotate,this._rollEnabled=e.rollEnabled,this._mouseRotate=r,this._mousePitch=a,this._mouseRoll=l}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}}class xl{constructor(e,r,a,l){this._el=e,this._touchZoom=r,this._touchRotate=a,this._tapDragZoom=l,this._rotationDisabled=!1,this._enabled=!0}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class fa{constructor(e,r){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=e,this._options=r,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const e=this._map.getCanvasContainer();e.classList.add("maplibregl-cooperative-gestures"),this._container=A.create("div","maplibregl-cooperative-gesture-screen",e);let r=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(r=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const a=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),l=document.createElement("div");l.className="maplibregl-desktop-message",l.textContent=r,this._container.appendChild(l);const p=document.createElement("div");p.className="maplibregl-mobile-message",p.textContent=a,this._container.appendChild(p),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(A.remove(this._container),this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destroyUI()}isEnabled(){return this._enabled}isBypassed(e){return e[this._bypassKey]}notifyGestureBlocked(e,r){this._enabled&&(this._map.fire(new s.l("cooperativegestureprevented",{gestureType:e,originalEvent:r})),this._container.classList.add("maplibregl-show"),setTimeout(()=>{this._container.classList.remove("maplibregl-show")},100))}}const ho=u=>u.zoom||u.drag||u.roll||u.pitch||u.rotate;class Vh extends s.l{}function ma(u){return u.panDelta&&u.panDelta.mag()||u.zoomDelta||u.bearingDelta||u.pitchDelta||u.rollDelta}class Fh{constructor(e,r){this.handleWindowEvent=l=>{this.handleEvent(l,`${l.type}Window`)},this.handleEvent=(l,p)=>{if(l.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const g=l.type==="renderFrame"?void 0:l,b={needsRenderFrame:!1},k={},I={};for(const{handlerName:O,handler:Z,allowed:J}of this._handlers){if(!Z.isEnabled())continue;let ne;if(this._blockedByActive(I,J,O))Z.reset();else if(Z[p||l.type]){if(s.cg(l,p||l.type)){const ie=A.mousePos(this._map.getCanvas(),l);ne=Z[p||l.type](l,ie)}else if(s.ch(l,p||l.type)){const ie=this._getMapTouches(l.touches),oe=A.touchPos(this._map.getCanvas(),ie);ne=Z[p||l.type](l,oe,ie)}else s.ci(p||l.type)||(ne=Z[p||l.type](l));this.mergeHandlerResult(b,k,ne,O,g),ne&&ne.needsRenderFrame&&this._triggerRenderFrame()}(ne||Z.isActive())&&(I[O]=Z)}const z={};for(const O in this._previousActiveHandlers)I[O]||(z[O]=g);this._previousActiveHandlers=I,(Object.keys(z).length||ma(b))&&(this._changes.push([b,k,z]),this._triggerRenderFrame()),(Object.keys(I).length||ma(b))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:N}=b;N&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],N(this._map))},this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Nc(e),this._bearingSnap=r.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(r);const a=this._el;this._listeners=[[a,"touchstart",{passive:!0}],[a,"touchmove",{passive:!1}],[a,"touchend",void 0],[a,"touchcancel",void 0],[a,"mousedown",void 0],[a,"mousemove",void 0],[a,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[a,"mouseover",void 0],[a,"mouseout",void 0],[a,"dblclick",void 0],[a,"click",void 0],[a,"keydown",{capture:!1}],[a,"keyup",void 0],[a,"wheel",{passive:!1}],[a,"contextmenu",void 0],[window,"blur",void 0]];for(const[l,p,g]of this._listeners)A.addEventListener(l,p,l===document?this.handleWindowEvent:this.handleEvent,g)}destroy(){for(const[e,r,a]of this._listeners)A.removeEventListener(e,r,e===document?this.handleWindowEvent:this.handleEvent,a)}_addDefaultHandlers(e){const r=this._map,a=r.getCanvasContainer();this._add("mapEvent",new qc(r,e));const l=r.boxZoom=new ml(r,e);this._add("boxZoom",l),e.interactive&&e.boxZoom&&l.enable();const p=r.cooperativeGestures=new fa(r,e.cooperativeGestures);this._add("cooperativeGestures",p),e.cooperativeGestures&&p.enable();const g=new Hc(r),b=new Bh(r);r.doubleClickZoom=new da(b,g),this._add("tapZoom",g),this._add("clickZoom",b),e.interactive&&e.doubleClickZoom&&r.doubleClickZoom.enable();const k=new vl;this._add("tapDragZoom",k);const I=r.touchPitch=new pa(r);this._add("touchPitch",I),e.interactive&&e.touchPitch&&r.touchPitch.enable(e.touchPitch);const z=()=>r.project(r.getCenter()),N=function({enable:fe,clickTolerance:ge,aroundCenter:xe=!0,minPixelCenterThreshold:_e=100,rotateDegreesPerPixelMoved:Ee=.8},Fe){const Le=new Ts({checkCorrectEvent:Re=>A.mouseButton(Re)===0&&Re.ctrlKey||A.mouseButton(Re)===2&&!Re.ctrlKey});return new ni({clickTolerance:ge,move:(Re,De)=>{const Ye=Fe();if(xe&&Math.abs(Ye.y-Re.y)>_e)return{bearingDelta:s.ce(new s.P(Re.x,De.y),De,Ye)};let Qe=(De.x-Re.x)*Ee;return xe&&De.y<Ye.y&&(Qe=-Qe),{bearingDelta:Qe}},moveStateManager:Le,enable:fe,assignEvents:ca})}(e,z),O=function({enable:fe,clickTolerance:ge,pitchDegreesPerPixelMoved:xe=-.5}){const _e=new Ts({checkCorrectEvent:Ee=>A.mouseButton(Ee)===0&&Ee.ctrlKey||A.mouseButton(Ee)===2});return new ni({clickTolerance:ge,move:(Ee,Fe)=>({pitchDelta:(Fe.y-Ee.y)*xe}),moveStateManager:_e,enable:fe,assignEvents:ca})}(e),Z=function({enable:fe,clickTolerance:ge,rollDegreesPerPixelMoved:xe=.3},_e){const Ee=new Ts({checkCorrectEvent:Fe=>A.mouseButton(Fe)===2&&Fe.ctrlKey});return new ni({clickTolerance:ge,move:(Fe,Le)=>{const Re=_e();let De=(Le.x-Fe.x)*xe;return Le.y<Re.y&&(De=-De),{rollDelta:De}},moveStateManager:Ee,enable:fe,assignEvents:ca})}(e,z);r.dragRotate=new Kc(e,N,O,Z),this._add("mouseRotate",N,["mousePitch"]),this._add("mousePitch",O,["mouseRotate","mouseRoll"]),this._add("mouseRoll",Z,["mousePitch"]),e.interactive&&e.dragRotate&&r.dragRotate.enable();const J=function({enable:fe,clickTolerance:ge}){const xe=new Ts({checkCorrectEvent:_e=>A.mouseButton(_e)===0&&!_e.ctrlKey});return new ni({clickTolerance:ge,move:(_e,Ee)=>({around:Ee,panDelta:Ee.sub(_e)}),activateOnStart:!0,moveStateManager:xe,enable:fe,assignEvents:ca})}(e),ne=new zh(e,r);r.dragPan=new Zc(a,J,ne),this._add("mousePan",J),this._add("touchPan",ne,["touchZoom","touchRotate"]),e.interactive&&e.dragPan&&r.dragPan.enable(e.dragPan);const ie=new it,oe=new Es;r.touchZoomRotate=new xl(a,oe,ie,k),this._add("touchRotate",ie,["touchPan","touchZoom"]),this._add("touchZoom",oe,["touchPan","touchRotate"]),e.interactive&&e.touchZoomRotate&&r.touchZoomRotate.enable(e.touchZoomRotate);const ue=r.scrollZoom=new Rt(r,()=>this._triggerRenderFrame());this._add("scrollZoom",ue,["mousePan"]),e.interactive&&e.scrollZoom&&r.scrollZoom.enable(e.scrollZoom);const me=r.keyboard=new Ps(r);this._add("keyboard",me),e.interactive&&e.keyboard&&r.keyboard.enable(),this._add("blockableMapEvent",new Uc(r))}_add(e,r,a){this._handlers.push({handlerName:e,handler:r,allowed:a}),this._handlersById[e]=r}stop(e){if(!this._updatingCamera){for(const{handler:r}of this._handlers)r.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[]}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!ho(this._eventsInProgress)||this.isZooming()}_blockedByActive(e,r,a){for(const l in e)if(l!==a&&(!r||r.indexOf(l)<0))return!0;return!1}_getMapTouches(e){const r=[];for(const a of e)this._el.contains(a.target)&&r.push(a);return r}mergeHandlerResult(e,r,a,l,p){if(!a)return;s.e(e,a);const g={handlerName:l,originalEvent:a.originalEvent||p};a.zoomDelta!==void 0&&(r.zoom=g),a.panDelta!==void 0&&(r.drag=g),a.rollDelta!==void 0&&(r.roll=g),a.pitchDelta!==void 0&&(r.pitch=g),a.bearingDelta!==void 0&&(r.rotate=g)}_applyChanges(){const e={},r={},a={};for(const[l,p,g]of this._changes)l.panDelta&&(e.panDelta=(e.panDelta||new s.P(0,0))._add(l.panDelta)),l.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+l.zoomDelta),l.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+l.bearingDelta),l.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+l.pitchDelta),l.rollDelta&&(e.rollDelta=(e.rollDelta||0)+l.rollDelta),l.around!==void 0&&(e.around=l.around),l.pinchAround!==void 0&&(e.pinchAround=l.pinchAround),l.noInertia&&(e.noInertia=l.noInertia),s.e(r,p),s.e(a,g);this._updateMapTransform(e,r,a),this._changes=[]}_updateMapTransform(e,r,a){const l=this._map,p=l._getTransformForUpdate(),g=l.terrain;if(!(ma(e)||g&&this._terrainMovement))return this._fireEvents(r,a,!0);l._stop(!0);let{panDelta:b,zoomDelta:k,bearingDelta:I,pitchDelta:z,rollDelta:N,around:O,pinchAround:Z}=e;Z!==void 0&&(O=Z),O=O||l.transform.centerPoint,g&&!p.isPointOnMapSurface(O)&&(O=p.centerPoint);const J={panDelta:b,zoomDelta:k,rollDelta:N,pitchDelta:z,bearingDelta:I,around:O};this._map.cameraHelper.useGlobeControls&&!p.isPointOnMapSurface(O)&&(O=p.centerPoint);const ne=O.distSqr(p.centerPoint)<.01?p.center:p.screenPointToLocation(b?O.sub(b):O);g?(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(J,p),this._terrainMovement||!r.drag&&!r.zoom?r.drag&&this._terrainMovement?p.setCenter(p.screenPointToLocation(p.centerPoint.sub(b))):this._map.cameraHelper.handleMapControlsPan(J,p,ne):(this._terrainMovement=!0,this._map._elevationFreeze=!0,this._map.cameraHelper.handleMapControlsPan(J,p,ne))):(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(J,p),this._map.cameraHelper.handleMapControlsPan(J,p,ne)),l._applyUpdatedTransform(p),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(r,a,!0)}_fireEvents(e,r,a){const l=ho(this._eventsInProgress),p=ho(e),g={};for(const N in e){const{originalEvent:O}=e[N];this._eventsInProgress[N]||(g[`${N}start`]=O),this._eventsInProgress[N]=e[N]}!l&&p&&this._fireEvent("movestart",p.originalEvent);for(const N in g)this._fireEvent(N,g[N]);p&&this._fireEvent("move",p.originalEvent);for(const N in e){const{originalEvent:O}=e[N];this._fireEvent(N,O)}const b={};let k;for(const N in this._eventsInProgress){const{handlerName:O,originalEvent:Z}=this._eventsInProgress[N];this._handlersById[O].isActive()||(delete this._eventsInProgress[N],k=r[O]||Z,b[`${N}end`]=k)}for(const N in b)this._fireEvent(N,b[N]);const I=ho(this._eventsInProgress),z=(l||p)&&!I;if(z&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const N=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&N.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(N)}if(a&&z){this._updatingCamera=!0;const N=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),O=Z=>Z!==0&&-this._bearingSnap<Z&&Z<this._bearingSnap;!N||!N.essential&&L.prefersReducedMotion?(this._map.fire(new s.l("moveend",{originalEvent:k})),O(this._map.getBearing())&&this._map.resetNorth()):(O(N.bearing||this._map.getBearing())&&(N.bearing=0),N.freezeElevation=!0,this._map.easeTo(N,{originalEvent:k})),this._updatingCamera=!1}}_fireEvent(e,r){this._map.fire(new s.l(e,r?{originalEvent:r}:{}))}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add(e=>{delete this._frameId,this.handleEvent(new Vh("renderFrame",{timeStamp:e})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Oh extends s.E{constructor(e,r,a){super(),this._renderFrameCallback=()=>{const l=Math.min((L.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(l)),l<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=e,this._bearingSnap=a.bearingSnap,this.cameraHelper=r,this.on("moveend",()=>{delete this._requestedCameraState})}migrateProjection(e,r){e.apply(this.transform),this.transform=e,this.cameraHelper=r}getCenter(){return new s.Q(this.transform.center.lng,this.transform.center.lat)}setCenter(e,r){return this.jumpTo({center:e},r)}getCenterElevation(){return this.transform.elevation}setCenterElevation(e,r){return this.jumpTo({elevation:e},r),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(e){this._centerClampedToGround=e}panBy(e,r,a){return e=s.P.convert(e).mult(-1),this.panTo(this.transform.center,s.e({offset:e},r),a)}panTo(e,r,a){return this.easeTo(s.e({center:e},r),a)}getZoom(){return this.transform.zoom}setZoom(e,r){return this.jumpTo({zoom:e},r),this}zoomTo(e,r,a){return this.easeTo(s.e({zoom:e},r),a)}zoomIn(e,r){return this.zoomTo(this.getZoom()+1,e,r),this}zoomOut(e,r){return this.zoomTo(this.getZoom()-1,e,r),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(e,r){return e!=this.transform.fov&&(this.transform.setFov(e),this.fire(new s.l("movestart",r)).fire(new s.l("move",r)).fire(new s.l("moveend",r))),this}getBearing(){return this.transform.bearing}setBearing(e,r){return this.jumpTo({bearing:e},r),this}getPadding(){return this.transform.padding}setPadding(e,r){return this.jumpTo({padding:e},r),this}rotateTo(e,r,a){return this.easeTo(s.e({bearing:e},r),a)}resetNorth(e,r){return this.rotateTo(0,s.e({duration:1e3},e),r),this}resetNorthPitch(e,r){return this.easeTo(s.e({bearing:0,pitch:0,roll:0,duration:1e3},e),r),this}snapToNorth(e,r){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(e,r):this}getPitch(){return this.transform.pitch}setPitch(e,r){return this.jumpTo({pitch:e},r),this}getRoll(){return this.transform.roll}setRoll(e,r){return this.jumpTo({roll:e},r),this}cameraForBounds(e,r){e=Ke.convert(e).adjustAntiMeridian();const a=r&&r.bearing||0;return this._cameraForBoxAndBearing(e.getNorthWest(),e.getSouthEast(),a,r)}_cameraForBoxAndBearing(e,r,a,l){const p={top:0,bottom:0,right:0,left:0};if(typeof(l=s.e({padding:p,offset:[0,0],maxZoom:this.transform.maxZoom},l)).padding=="number"){const I=l.padding;l.padding={top:I,bottom:I,right:I,left:I}}const g=s.e(p,l.padding);l.padding=g;const b=this.transform,k=new Ke(e,r);return this.cameraHelper.cameraForBoxAndBearing(l,g,k,a,b)}fitBounds(e,r,a){return this._fitInternal(this.cameraForBounds(e,r),r,a)}fitScreenCoordinates(e,r,a,l,p){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(s.P.convert(e)),this.transform.screenPointToLocation(s.P.convert(r)),a,l),l,p)}_fitInternal(e,r,a){return e?(delete(r=s.e(e,r)).padding,r.linear?this.easeTo(r,a):this.flyTo(r,a)):this}jumpTo(e,r){this.stop();const a=this._getTransformForUpdate();let l=!1,p=!1,g=!1;const b=a.zoom;this.cameraHelper.handleJumpToCenterZoom(a,e);const k=a.zoom!==b;return"elevation"in e&&a.elevation!==+e.elevation&&a.setElevation(+e.elevation),"bearing"in e&&a.bearing!==+e.bearing&&(l=!0,a.setBearing(+e.bearing)),"pitch"in e&&a.pitch!==+e.pitch&&(p=!0,a.setPitch(+e.pitch)),"roll"in e&&a.roll!==+e.roll&&(g=!0,a.setRoll(+e.roll)),e.padding==null||a.isPaddingEqual(e.padding)||a.setPadding(e.padding),this._applyUpdatedTransform(a),this.fire(new s.l("movestart",r)).fire(new s.l("move",r)),k&&this.fire(new s.l("zoomstart",r)).fire(new s.l("zoom",r)).fire(new s.l("zoomend",r)),l&&this.fire(new s.l("rotatestart",r)).fire(new s.l("rotate",r)).fire(new s.l("rotateend",r)),p&&this.fire(new s.l("pitchstart",r)).fire(new s.l("pitch",r)).fire(new s.l("pitchend",r)),g&&this.fire(new s.l("rollstart",r)).fire(new s.l("roll",r)).fire(new s.l("rollend",r)),this.fire(new s.l("moveend",r))}calculateCameraOptionsFromTo(e,r,a,l=0){const p=s.$.fromLngLat(e,r),g=s.$.fromLngLat(a,l),b=g.x-p.x,k=g.y-p.y,I=g.z-p.z,z=Math.hypot(b,k,I);if(z===0)throw new Error("Can't calculate camera options with same From and To");const N=Math.hypot(b,k),O=s.ah(this.transform.cameraToCenterDistance/z/this.transform.tileSize),Z=180*Math.atan2(b,-k)/Math.PI;let J=180*Math.acos(N/z)/Math.PI;return J=I<0?90-J:90+J,{center:g.toLngLat(),elevation:l,zoom:O,pitch:J,bearing:Z}}calculateCameraOptionsFromCameraLngLatAltRotation(e,r,a,l,p){const g=this.transform.calculateCenterFromCameraLngLatAlt(e,r,a,l);return{center:g.center,elevation:g.elevation,zoom:g.zoom,bearing:a,pitch:l,roll:p}}easeTo(e,r){this._stop(!1,e.easeId),((e=s.e({offset:[0,0],duration:500,easing:s.cf},e)).animate===!1||!e.essential&&L.prefersReducedMotion)&&(e.duration=0);const a=this._getTransformForUpdate(),l=this.getBearing(),p=a.pitch,g=a.roll,b="bearing"in e?this._normalizeBearing(e.bearing,l):l,k="pitch"in e?+e.pitch:p,I="roll"in e?this._normalizeBearing(e.roll,g):g,z="padding"in e?e.padding:a.padding,N=s.P.convert(e.offset);let O,Z;e.around&&(O=s.Q.convert(e.around),Z=a.locationToScreenPoint(O));const J={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching,rolling:this._rolling},ne=this.cameraHelper.handleEaseTo(a,{bearing:b,pitch:k,roll:I,padding:z,around:O,aroundPoint:Z,offsetAsPoint:N,offset:e.offset,zoom:e.zoom,center:e.center});return this._rotating=this._rotating||l!==b,this._pitching=this._pitching||k!==p,this._rolling=this._rolling||I!==g,this._padding=!a.isPaddingEqual(z),this._zooming=this._zooming||ne.isZooming,this._easeId=e.easeId,this._prepareEase(r,e.noMoveStart,J),this.terrain&&this._prepareElevation(ne.elevationCenter),this._ease(ie=>{ne.easeFunc(ie),this.terrain&&!e.freezeElevation&&this._updateElevation(ie),this._applyUpdatedTransform(a),this._fireMoveEvents(r)},ie=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(r,ie)},e),this}_prepareEase(e,r,a={}){this._moving=!0,r||a.moving||this.fire(new s.l("movestart",e)),this._zooming&&!a.zooming&&this.fire(new s.l("zoomstart",e)),this._rotating&&!a.rotating&&this.fire(new s.l("rotatestart",e)),this._pitching&&!a.pitching&&this.fire(new s.l("pitchstart",e)),this._rolling&&!a.rolling&&this.fire(new s.l("rollstart",e))}_prepareElevation(e){this._elevationCenter=e,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(e,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(e){this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const r=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&r!==this._elevationTarget){const a=this._elevationTarget-this._elevationStart;this._elevationStart+=e*(a-(r-(a*e+this._elevationStart))/(1-e)),this._elevationTarget=r}this.transform.setElevation(s.B.number(this._elevationStart,this._elevationTarget,e))}_finalizeElevation(){this._elevationFreeze=!1,this.getCenterClampedToGround()&&this.transform.recalculateZoomAndCenter(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate||this.terrain?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_elevateCameraIfInsideTerrain(e){if(!this.terrain&&e.elevation>=0&&e.pitch<=90)return{};const r=e.getCameraLngLat(),a=e.getCameraAltitude(),l=this.terrain?this.terrain.getElevationForLngLatZoom(r,e.zoom):0;if(a<l){const p=this.calculateCameraOptionsFromTo(r,l,e.center,e.elevation);return{pitch:p.pitch,zoom:p.zoom}}return{}}_applyUpdatedTransform(e){const r=[];if(r.push(l=>this._elevateCameraIfInsideTerrain(l)),this.transformCameraUpdate&&r.push(l=>this.transformCameraUpdate(l)),!r.length)return;const a=e.clone();for(const l of r){const p=a.clone(),{center:g,zoom:b,roll:k,pitch:I,bearing:z,elevation:N}=l(p);g&&p.setCenter(g),N!==void 0&&p.setElevation(N),b!==void 0&&p.setZoom(b),k!==void 0&&p.setRoll(k),I!==void 0&&p.setPitch(I),z!==void 0&&p.setBearing(z),a.apply(p)}this.transform.apply(a)}_fireMoveEvents(e){this.fire(new s.l("move",e)),this._zooming&&this.fire(new s.l("zoom",e)),this._rotating&&this.fire(new s.l("rotate",e)),this._pitching&&this.fire(new s.l("pitch",e)),this._rolling&&this.fire(new s.l("roll",e))}_afterEase(e,r){if(this._easeId&&r&&this._easeId===r)return;delete this._easeId;const a=this._zooming,l=this._rotating,p=this._pitching,g=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,a&&this.fire(new s.l("zoomend",e)),l&&this.fire(new s.l("rotateend",e)),p&&this.fire(new s.l("pitchend",e)),g&&this.fire(new s.l("rollend",e)),this.fire(new s.l("moveend",e))}flyTo(e,r){if(!e.essential&&L.prefersReducedMotion){const De=s.O(e,["center","zoom","bearing","pitch","roll","elevation"]);return this.jumpTo(De,r)}this.stop(),e=s.e({offset:[0,0],speed:1.2,curve:1.42,easing:s.cf},e);const a=this._getTransformForUpdate(),l=a.bearing,p=a.pitch,g=a.roll,b=a.padding,k="bearing"in e?this._normalizeBearing(e.bearing,l):l,I="pitch"in e?+e.pitch:p,z="roll"in e?this._normalizeBearing(e.roll,g):g,N="padding"in e?e.padding:a.padding,O=s.P.convert(e.offset);let Z=a.centerPoint.add(O);const J=a.screenPointToLocation(Z),ne=this.cameraHelper.handleFlyTo(a,{bearing:k,pitch:I,roll:z,padding:N,locationAtOffset:J,offsetAsPoint:O,center:e.center,minZoom:e.minZoom,zoom:e.zoom});let ie=e.curve;const oe=Math.max(a.width,a.height),ue=oe/ne.scaleOfZoom,me=ne.pixelPathLength;typeof ne.scaleOfMinZoom=="number"&&(ie=Math.sqrt(oe/ne.scaleOfMinZoom/me*2));const fe=ie*ie;function ge(De){const Ye=(ue*ue-oe*oe+(De?-1:1)*fe*fe*me*me)/(2*(De?ue:oe)*fe*me);return Math.log(Math.sqrt(Ye*Ye+1)-Ye)}function xe(De){return(Math.exp(De)-Math.exp(-De))/2}function _e(De){return(Math.exp(De)+Math.exp(-De))/2}const Ee=ge(!1);let Fe=function(De){return _e(Ee)/_e(Ee+ie*De)},Le=function(De){return oe*((_e(Ee)*(xe(Ye=Ee+ie*De)/_e(Ye))-xe(Ee))/fe)/me;var Ye},Re=(ge(!0)-Ee)/ie;if(Math.abs(me)<2e-6||!isFinite(Re)){if(Math.abs(oe-ue)<1e-6)return this.easeTo(e,r);const De=ue<oe?-1:1;Re=Math.abs(Math.log(ue/oe))/ie,Le=()=>0,Fe=Ye=>Math.exp(De*ie*Ye)}return e.duration="duration"in e?+e.duration:1e3*Re/("screenSpeed"in e?+e.screenSpeed/ie:+e.speed),e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=l!==k,this._pitching=I!==p,this._rolling=z!==g,this._padding=!a.isPaddingEqual(N),this._prepareEase(r,!1),this.terrain&&this._prepareElevation(ne.targetCenter),this._ease(De=>{const Ye=De*Re,Qe=1/Fe(Ye),We=Le(Ye);this._rotating&&a.setBearing(s.B.number(l,k,De)),this._pitching&&a.setPitch(s.B.number(p,I,De)),this._rolling&&a.setRoll(s.B.number(g,z,De)),this._padding&&(a.interpolatePadding(b,N,De),Z=a.centerPoint.add(O)),ne.easeFunc(De,Qe,We,Z),this.terrain&&!e.freezeElevation&&this._updateElevation(De),this._applyUpdatedTransform(a),this._fireMoveEvents(r)},()=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(r)},e),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(e,r){var a;if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const l=this._onEaseEnd;delete this._onEaseEnd,l.call(this,r)}return e||(a=this.handlers)===null||a===void 0||a.stop(!1),this}_ease(e,r,a){a.animate===!1||a.duration===0?(e(1),r()):(this._easeStart=L.now(),this._easeOptions=a,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(e,r){e=s.aL(e,-180,180);const a=Math.abs(e-r);return Math.abs(e-360-r)<a&&(e-=360),Math.abs(e+360-r)<a&&(e+=360),e}queryTerrainElevation(e){return this.terrain?this.terrain.getElevationForLngLatZoom(s.Q.convert(e),this.transform.tileZoom):null}}const pn={compact:!0,customAttribution:'<a href="https://maplibre.org/" target="_blank">MapLibre</a>'};class nr{constructor(e=pn){this._toggleAttribution=()=>{this._container.classList.contains("maplibregl-compact")&&(this._container.classList.contains("maplibregl-compact-show")?(this._container.setAttribute("open",""),this._container.classList.remove("maplibregl-compact-show")):(this._container.classList.add("maplibregl-compact-show"),this._container.removeAttribute("open")))},this._updateData=r=>{!r||r.sourceDataType!=="metadata"&&r.sourceDataType!=="visibility"&&r.dataType!=="style"&&r.type!=="terrain"||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute("open",""):this._container.classList.contains("maplibregl-compact")||this._container.classList.contains("maplibregl-attrib-empty")||(this._container.setAttribute("open",""),this._container.classList.add("maplibregl-compact","maplibregl-compact-show")):(this._container.setAttribute("open",""),this._container.classList.contains("maplibregl-compact")&&this._container.classList.remove("maplibregl-compact","maplibregl-compact-show"))},this._updateCompactMinimize=()=>{this._container.classList.contains("maplibregl-compact")&&this._container.classList.contains("maplibregl-compact-show")&&this._container.classList.remove("maplibregl-compact-show")},this.options=e}getDefaultPosition(){return"bottom-right"}onAdd(e){return this._map=e,this._compact=this.options.compact,this._container=A.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=A.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=A.create("div","maplibregl-ctrl-attrib-inner",this._container),this._updateAttributions(),this._updateCompact(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("terrain",this._updateData),this._map.on("resize",this._updateCompact),this._map.on("drag",this._updateCompactMinimize),this._container}onRemove(){A.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("terrain",this._updateData),this._map.off("resize",this._updateCompact),this._map.off("drag",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(e,r){const a=this._map._getUIString(`AttributionControl.${r}`);e.title=a,e.setAttribute("aria-label",a)}_updateAttributions(){if(!this._map.style)return;let e=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=e.concat(this.options.customAttribution.map(l=>typeof l!="string"?"":l)):typeof this.options.customAttribution=="string"&&e.push(this.options.customAttribution)),this._map.style.stylesheet){const l=this._map.style.stylesheet;this.styleOwner=l.owner,this.styleId=l.id}const r=this._map.style.sourceCaches;for(const l in r){const p=r[l];if(p.used||p.usedForTerrain){const g=p.getSource();g.attribution&&e.indexOf(g.attribution)<0&&e.push(g.attribution)}}e=e.filter(l=>String(l).trim()),e.sort((l,p)=>l.length-p.length),e=e.filter((l,p)=>{for(let g=p+1;g<e.length;g++)if(e[g].indexOf(l)>=0)return!1;return!0});const a=e.join(" | ");a!==this._attribHTML&&(this._attribHTML=a,e.length?(this._innerContainer.innerHTML=A.sanitize(a),this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class po{constructor(e={}){this._updateCompact=()=>{const r=this._container.children;if(r.length){const a=r[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&a.classList.add("maplibregl-compact"):a.classList.remove("maplibregl-compact")}},this.options=e}getDefaultPosition(){return"bottom-left"}onAdd(e){this._map=e,this._compact=this.options&&this.options.compact,this._container=A.create("div","maplibregl-ctrl");const r=A.create("a","maplibregl-ctrl-logo");return r.target="_blank",r.rel="noopener nofollow",r.href="https://maplibre.org/",r.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),r.setAttribute("rel","noopener nofollow"),this._container.appendChild(r),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){A.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class bl{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(e){const r=++this._id;return this._queue.push({callback:e,id:r,cancelled:!1}),r}remove(e){const r=this._currentlyRunning,a=r?this._queue.concat(r):this._queue;for(const l of a)if(l.id===e)return void(l.cancelled=!0)}run(e=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const r=this._currentlyRunning=this._queue;this._queue=[];for(const a of r)if(!a.cancelled&&(a.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Gc=s.aG([{name:"a_pos3d",type:"Int16",components:3}]);class Jc extends s.E{constructor(e){super(),this._lastTilesetChange=L.now(),this.sourceCache=e,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=e._source.tileSize*2**this.deltaZoom,e.usedForTerrain=!0,e.tileSize=this.tileSize}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(e,r){this.sourceCache.update(e,r),this._renderableTilesKeys=[];const a={};for(const l of be(e,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:r,calculateTileZoom:this.sourceCache._source.calculateTileZoom}))a[l.key]=!0,this._renderableTilesKeys.push(l.key),this._tiles[l.key]||(l.terrainRttPosMatrix32f=new Float64Array(16),s.bQ(l.terrainRttPosMatrix32f,0,s.Z,s.Z,0,0,1),this._tiles[l.key]=new Ri(l,this.tileSize),this._lastTilesetChange=L.now());for(const l in this._tiles)a[l]||delete this._tiles[l]}freeRtt(e){for(const r in this._tiles){const a=this._tiles[r];(!e||a.tileID.equals(e)||a.tileID.isChildOf(e)||e.isChildOf(a.tileID))&&(a.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(e=>this.getTileByID(e))}getTileByID(e){return this._tiles[e]}getTerrainCoords(e,r){return r?this._getTerrainCoordsForTileRanges(e,r):this._getTerrainCoordsForRegularTile(e)}_getTerrainCoordsForRegularTile(e){const r={};for(const a of this._renderableTilesKeys){const l=this._tiles[a].tileID,p=e.clone(),g=s.b2();if(l.canonical.equals(e.canonical))s.bQ(g,0,s.Z,s.Z,0,0,1);else if(l.canonical.isChildOf(e.canonical)){const b=l.canonical.z-e.canonical.z,k=l.canonical.x-(l.canonical.x>>b<<b),I=l.canonical.y-(l.canonical.y>>b<<b),z=s.Z>>b;s.bQ(g,0,z,z,0,0,1),s.L(g,g,[-k*z,-I*z,0])}else{if(!e.canonical.isChildOf(l.canonical))continue;{const b=e.canonical.z-l.canonical.z,k=e.canonical.x-(e.canonical.x>>b<<b),I=e.canonical.y-(e.canonical.y>>b<<b),z=s.Z>>b;s.bQ(g,0,s.Z,s.Z,0,0,1),s.L(g,g,[k*z,I*z,0]),s.M(g,g,[1/2**b,1/2**b,0])}}p.terrainRttPosMatrix32f=new Float32Array(g),r[a]=p}return r}_getTerrainCoordsForTileRanges(e,r){const a={};for(const l of this._renderableTilesKeys){const p=this._tiles[l].tileID;if(!this._isWithinTileRanges(p,r))continue;const g=e.clone(),b=s.b2();if(p.canonical.z===e.canonical.z){const k=e.canonical.x-p.canonical.x,I=e.canonical.y-p.canonical.y;s.bQ(b,0,s.Z,s.Z,0,0,1),s.L(b,b,[k*s.Z,I*s.Z,0])}else if(p.canonical.z>e.canonical.z){const k=p.canonical.z-e.canonical.z,I=p.canonical.x-(p.canonical.x>>k<<k),z=p.canonical.y-(p.canonical.y>>k<<k),N=e.canonical.x-(p.canonical.x>>k),O=e.canonical.y-(p.canonical.y>>k),Z=s.Z>>k;s.bQ(b,0,Z,Z,0,0,1),s.L(b,b,[-I*Z+N*s.Z,-z*Z+O*s.Z,0])}else{const k=e.canonical.z-p.canonical.z,I=e.canonical.x-(e.canonical.x>>k<<k),z=e.canonical.y-(e.canonical.y>>k<<k),N=(e.canonical.x>>k)-p.canonical.x,O=(e.canonical.y>>k)-p.canonical.y,Z=s.Z<<k;s.bQ(b,0,Z,Z,0,0,1),s.L(b,b,[I*s.Z+N*Z,z*s.Z+O*Z,0])}g.terrainRttPosMatrix32f=new Float32Array(b),a[l]=g}return a}getSourceTile(e,r){const a=this.sourceCache._source;let l=e.overscaledZ-this.deltaZoom;if(l>a.maxzoom&&(l=a.maxzoom),l<a.minzoom)return null;this._sourceTileCache[e.key]||(this._sourceTileCache[e.key]=e.scaledTo(l).key);let p=this.sourceCache.getTileByID(this._sourceTileCache[e.key]);if((!p||!p.dem)&&r)for(;l>=a.minzoom&&(!p||!p.dem);)p=this.sourceCache.getTileByID(e.scaledTo(l--).key);return p}anyTilesAfterTime(e=Date.now()){return this._lastTilesetChange>=e}_isWithinTileRanges(e,r){return r[e.canonical.z]&&e.canonical.x>=r[e.canonical.z].minTileX&&e.canonical.x<=r[e.canonical.z].maxTileX&&e.canonical.y>=r[e.canonical.z].minTileY&&e.canonical.y<=r[e.canonical.z].maxTileY}}class Xc{constructor(e,r,a){this._meshCache={},this.painter=e,this.sourceCache=new Jc(r),this.options=a,this.exaggeration=typeof a.exaggeration=="number"?a.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(e,r,a,l=s.Z){var p;if(!(r>=0&&r<l&&a>=0&&a<l))return 0;const g=this.getTerrainData(e),b=(p=g.tile)===null||p===void 0?void 0:p.dem;if(!b)return 0;const k=s.cj([],[r/l*s.Z,a/l*s.Z],g.u_terrain_matrix),I=[k[0]*b.dim,k[1]*b.dim],z=Math.floor(I[0]),N=Math.floor(I[1]),O=I[0]-z,Z=I[1]-N;return b.get(z,N)*(1-O)*(1-Z)+b.get(z+1,N)*O*(1-Z)+b.get(z,N+1)*(1-O)*Z+b.get(z+1,N+1)*O*Z}getElevationForLngLatZoom(e,r){if(!s.ck(r,e.wrap()))return 0;const{tileID:a,mercatorX:l,mercatorY:p}=this._getOverscaledTileIDFromLngLatZoom(e,r);return this.getElevation(a,l%s.Z,p%s.Z,s.Z)}getElevation(e,r,a,l=s.Z){return this.getDEMElevation(e,r,a,l)*this.exaggeration}getTerrainData(e){if(!this._emptyDemTexture){const l=this.painter.context,p=new s.R({width:1,height:1},new Uint8Array(4));this._emptyDepthTexture=new Ze(l,p,l.gl.RGBA,{premultiply:!1}),this._emptyDemUnpack=[0,0,0,0],this._emptyDemTexture=new Ze(l,new s.R({width:1,height:1}),l.gl.RGBA,{premultiply:!1}),this._emptyDemTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._emptyDemMatrix=s.ad([])}const r=this.sourceCache.getSourceTile(e,!0);if(r&&r.dem&&(!r.demTexture||r.needsTerrainPrepare)){const l=this.painter.context;r.demTexture=this.painter.getTileTexture(r.dem.stride),r.demTexture?r.demTexture.update(r.dem.getPixels(),{premultiply:!1}):r.demTexture=new Ze(l,r.dem.getPixels(),l.gl.RGBA,{premultiply:!1}),r.demTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),r.needsTerrainPrepare=!1}const a=r&&r+r.tileID.key+e.key;if(a&&!this._demMatrixCache[a]){const l=this.sourceCache.sourceCache._source.maxzoom;let p=e.canonical.z-r.tileID.canonical.z;e.overscaledZ>e.canonical.z&&(e.canonical.z>=l?p=e.canonical.z-l:s.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const g=e.canonical.x-(e.canonical.x>>p<<p),b=e.canonical.y-(e.canonical.y>>p<<p),k=s.cl(new Float64Array(16),[1/(s.Z<<p),1/(s.Z<<p),0]);s.L(k,k,[g*s.Z,b*s.Z,0]),this._demMatrixCache[e.key]={matrix:k,coord:e}}return{u_depth:2,u_terrain:3,u_terrain_dim:r&&r.dem&&r.dem.dim||1,u_terrain_matrix:a?this._demMatrixCache[e.key].matrix:this._emptyDemMatrix,u_terrain_unpack:r&&r.dem&&r.dem.getUnpackVector()||this._emptyDemUnpack,u_terrain_exaggeration:this.exaggeration,texture:(r&&r.demTexture||this._emptyDemTexture).texture,depthTexture:(this._fboDepthTexture||this._emptyDepthTexture).texture,tile:r}}getFramebuffer(e){const r=this.painter,a=r.width/devicePixelRatio,l=r.height/devicePixelRatio;return!this._fbo||this._fbo.width===a&&this._fbo.height===l||(this._fbo.destroy(),this._fboCoordsTexture.destroy(),this._fboDepthTexture.destroy(),delete this._fbo,delete this._fboDepthTexture,delete this._fboCoordsTexture),this._fboCoordsTexture||(this._fboCoordsTexture=new Ze(r.context,{width:a,height:l,data:null},r.context.gl.RGBA,{premultiply:!1}),this._fboCoordsTexture.bind(r.context.gl.NEAREST,r.context.gl.CLAMP_TO_EDGE)),this._fboDepthTexture||(this._fboDepthTexture=new Ze(r.context,{width:a,height:l,data:null},r.context.gl.RGBA,{premultiply:!1}),this._fboDepthTexture.bind(r.context.gl.NEAREST,r.context.gl.CLAMP_TO_EDGE)),this._fbo||(this._fbo=r.context.createFramebuffer(a,l,!0,!1),this._fbo.depthAttachment.set(r.context.createRenderbuffer(r.context.gl.DEPTH_COMPONENT16,a,l))),this._fbo.colorAttachment.set(e==="coords"?this._fboCoordsTexture.texture:this._fboDepthTexture.texture),this._fbo}getCoordsTexture(){const e=this.painter.context;if(this._coordsTexture)return this._coordsTexture;const r=new Uint8Array(this._coordsTextureSize*this._coordsTextureSize*4);for(let p=0,g=0;p<this._coordsTextureSize;p++)for(let b=0;b<this._coordsTextureSize;b++,g+=4)r[g+0]=255&b,r[g+1]=255&p,r[g+2]=b>>8<<4|p>>8,r[g+3]=0;const a=new s.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(r.buffer)),l=new Ze(e,a,e.gl.RGBA,{premultiply:!1});return l.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=l,l}pointCoordinate(e){this.painter.maybeDrawDepthAndCoords(!0);const r=new Uint8Array(4),a=this.painter.context,l=a.gl,p=Math.round(e.x*this.painter.pixelRatio/devicePixelRatio),g=Math.round(e.y*this.painter.pixelRatio/devicePixelRatio),b=Math.round(this.painter.height/devicePixelRatio);a.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),l.readPixels(p,b-g-1,1,1,l.RGBA,l.UNSIGNED_BYTE,r),a.bindFramebuffer.set(null);const k=r[0]+(r[2]>>4<<8),I=r[1]+((15&r[2])<<8),z=this.coordsIndex[255-r[3]],N=z&&this.sourceCache.getTileByID(z);if(!N)return null;const O=this._coordsTextureSize,Z=(1<<N.tileID.canonical.z)*O;return new s.$((N.tileID.canonical.x*O+k)/Z+N.tileID.wrap,(N.tileID.canonical.y*O+I)/Z,this.getElevation(N.tileID,k,I,O))}depthAtPoint(e){const r=new Uint8Array(4),a=this.painter.context,l=a.gl;return a.bindFramebuffer.set(this.getFramebuffer("depth").framebuffer),l.readPixels(e.x,this.painter.height/devicePixelRatio-e.y-1,1,1,l.RGBA,l.UNSIGNED_BYTE,r),a.bindFramebuffer.set(null),(r[0]/16777216+r[1]/65536+r[2]/256+r[3])/256}getTerrainMesh(e){var r;const a=((r=this.painter.style.projection)===null||r===void 0?void 0:r.transitionState)>0,l=a&&e.canonical.y===0,p=a&&e.canonical.y===(1<<e.canonical.z)-1,g=`m_${l?"n":""}_${p?"s":""}`;if(this._meshCache[g])return this._meshCache[g];const b=this.painter.context,k=new s.cm,I=new s.aK,z=this.meshSize,N=s.Z/z,O=z*z;for(let _e=0;_e<=z;_e++)for(let Ee=0;Ee<=z;Ee++)k.emplaceBack(Ee*N,_e*N,0);for(let _e=0;_e<O;_e+=z+1)for(let Ee=0;Ee<z;Ee++)I.emplaceBack(Ee+_e,z+Ee+_e+1,z+Ee+_e+2),I.emplaceBack(Ee+_e,z+Ee+_e+2,Ee+_e+1);const Z=k.length,J=Z+(z+1),ne=(z+1)*z,ie=l?s.b9:0,oe=l?0:1,ue=p?s.ba:s.Z,me=p?0:1;for(let _e=0;_e<=z;_e++)k.emplaceBack(_e*N,ie,oe);for(let _e=0;_e<=z;_e++)k.emplaceBack(_e*N,ue,me);for(let _e=0;_e<z;_e++)I.emplaceBack(ne+_e,J+_e,J+_e+1),I.emplaceBack(ne+_e,J+_e+1,ne+_e+1),I.emplaceBack(0+_e,Z+_e+1,Z+_e),I.emplaceBack(0+_e,0+_e+1,Z+_e+1);const fe=k.length,ge=fe+2*(z+1);for(const _e of[0,1])for(let Ee=0;Ee<=z;Ee++)for(const Fe of[0,1])k.emplaceBack(_e*s.Z,Ee*N,Fe);for(let _e=0;_e<2*z;_e+=2)I.emplaceBack(fe+_e,fe+_e+1,fe+_e+3),I.emplaceBack(fe+_e,fe+_e+3,fe+_e+2),I.emplaceBack(ge+_e,ge+_e+3,ge+_e+1),I.emplaceBack(ge+_e,ge+_e+2,ge+_e+3);const xe=new hs(b.createVertexBuffer(k,Gc.members),b.createIndexBuffer(I),s.aJ.simpleSegment(0,0,k.length,I.length));return this._meshCache[g]=xe,xe}getMeshFrameDelta(e){return 2*Math.PI*s.bu/Math.pow(2,Math.max(e,0))/5}getMinTileElevationForLngLatZoom(e,r){var a;const{tileID:l}=this._getOverscaledTileIDFromLngLatZoom(e,r);return(a=this.getMinMaxElevation(l).minElevation)!==null&&a!==void 0?a:0}getMinMaxElevation(e){const r=this.getTerrainData(e).tile,a={minElevation:null,maxElevation:null};return r&&r.dem&&(a.minElevation=r.dem.min*this.exaggeration,a.maxElevation=r.dem.max*this.exaggeration),a}_getOverscaledTileIDFromLngLatZoom(e,r){const a=s.$.fromLngLat(e.wrap()),l=(1<<r)*s.Z,p=a.x*l,g=a.y*l,b=Math.floor(p/s.Z),k=Math.floor(g/s.Z);return{tileID:new s.Y(r,0,r,b,k),mercatorX:p,mercatorY:g}}}class Nh{constructor(e,r,a){this._context=e,this._size=r,this._tileSize=a,this._objects=[],this._recentlyUsed=[],this._stamp=0}destruct(){for(const e of this._objects)e.texture.destroy(),e.fbo.destroy()}_createObject(e){const r=this._context.createFramebuffer(this._tileSize,this._tileSize,!0,!0),a=new Ze(this._context,{width:this._tileSize,height:this._tileSize,data:null},this._context.gl.RGBA);return a.bind(this._context.gl.LINEAR,this._context.gl.CLAMP_TO_EDGE),this._context.extTextureFilterAnisotropic&&this._context.gl.texParameterf(this._context.gl.TEXTURE_2D,this._context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this._context.extTextureFilterAnisotropicMax),r.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL,this._tileSize,this._tileSize)),r.colorAttachment.set(a.texture),{id:e,fbo:r,texture:a,stamp:-1,inUse:!1}}getObjectForId(e){return this._objects[e]}useObject(e){e.inUse=!0,this._recentlyUsed=this._recentlyUsed.filter(r=>e.id!==r),this._recentlyUsed.push(e.id)}stampObject(e){e.stamp=++this._stamp}getOrCreateFreeObject(){for(const r of this._recentlyUsed)if(!this._objects[r].inUse)return this._objects[r];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const e=this._createObject(this._objects.length);return this._objects.push(e),e}freeObject(e){e.inUse=!1}freeAllObjects(){for(const e of this._objects)this.freeObject(e)}isFull(){return!(this._objects.length<this._size)&&this._objects.some(e=>!e.inUse)===!1}}const pi={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ga{constructor(e,r){this.painter=e,this.terrain=r,this.pool=new Nh(e.context,30,r.sourceCache.tileSize*r.qualityFactor)}destruct(){this.pool.destruct()}getTexture(e){return this.pool.getObjectForId(e.rtt[this._stacks.length-1].id).texture}prepareForRender(e,r){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=e._order.filter(a=>!e._layers[a].isHidden(r)),this._coordsAscending={};for(const a in e.sourceCaches){this._coordsAscending[a]={};const l=e.sourceCaches[a].getVisibleCoordinates(),p=e.sourceCaches[a].getSource(),g=p instanceof mt?p.terrainTileRanges:null;for(const b of l){const k=this.terrain.sourceCache.getTerrainCoords(b,g);for(const I in k)this._coordsAscending[a][I]||(this._coordsAscending[a][I]=[]),this._coordsAscending[a][I].push(k[I])}}this._coordsAscendingStr={};for(const a of e._order){const l=e._layers[a],p=l.source;if(pi[l.type]&&!this._coordsAscendingStr[p]){this._coordsAscendingStr[p]={};for(const g in this._coordsAscending[p])this._coordsAscendingStr[p][g]=this._coordsAscending[p][g].map(b=>b.key).sort().join()}}for(const a of this._renderableTiles)for(const l in this._coordsAscendingStr){const p=this._coordsAscendingStr[l][a.tileID.key];p&&p!==a.rttCoords[l]&&(a.rtt=[])}}renderLayer(e,r){if(e.isHidden(this.painter.transform.zoom))return!1;const a=Object.assign(Object.assign({},r),{isRenderingToTexture:!0}),l=e.type,p=this.painter,g=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(pi[l]&&(this._prevType&&pi[this._prevType]||this._stacks.push([]),this._prevType=l,this._stacks[this._stacks.length-1].push(e.id),!g))return!0;if(pi[this._prevType]||pi[l]&&g){this._prevType=l;const b=this._stacks.length-1,k=this._stacks[b]||[];for(const I of this._renderableTiles){if(this.pool.isFull()&&(Tn(this.painter,this.terrain,this._rttTiles,a),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(I),I.rtt[b]){const N=this.pool.getObjectForId(I.rtt[b].id);if(N.stamp===I.rtt[b].stamp){this.pool.useObject(N);continue}}const z=this.pool.getOrCreateFreeObject();this.pool.useObject(z),this.pool.stampObject(z),I.rtt[b]={id:z.id,stamp:z.stamp},p.context.bindFramebuffer.set(z.fbo.framebuffer),p.context.clear({color:s.b7.transparent,stencil:0}),p.currentStencilSource=void 0;for(let N=0;N<k.length;N++){const O=p.style._layers[k[N]],Z=O.source?this._coordsAscending[O.source][I.tileID.key]:[I.tileID];p.context.viewport.set([0,0,z.fbo.width,z.fbo.height]),p._renderTileClippingMasks(O,Z,!0),p.renderLayer(p,p.style.sourceCaches[O.source],O,Z,a),O.source&&(I.rttCoords[O.source]=this._coordsAscendingStr[O.source][I.tileID.key])}}return Tn(this.painter,this.terrain,this._rttTiles,a),this._rttTiles=[],this.pool.freeAllObjects(),pi[l]}return!1}}const ct={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"MapLibre logo","Map.Title":"Map","Marker.Title":"Map marker","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","Popup.Close":"Close popup","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm","GlobeControl.Enable":"Enable globe","GlobeControl.Disable":"Disable globe","TerrainControl.Enable":"Enable terrain","TerrainControl.Disable":"Disable terrain","CooperativeGesturesHandler.WindowsHelpText":"Use Ctrl + scroll to zoom the map","CooperativeGesturesHandler.MacHelpText":"Use ⌘ + scroll to zoom the map","CooperativeGesturesHandler.MobileHelpText":"Use two fingers to move the map"},ft=B,fo={hash:!1,interactive:!0,bearingSnap:7,attributionControl:pn,maplibreLogo:!1,refreshExpiredTiles:!0,canvasContextAttributes:{antialias:!1,preserveDrawingBuffer:!1,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,desynchronized:!1,contextType:void 0},scrollZoom:!0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,trackResize:!0,center:[0,0],elevation:0,zoom:0,bearing:0,pitch:0,roll:0,renderWorldCopies:!0,maxTileCacheSize:null,maxTileCacheZoomLevels:s.a.MAX_TILE_CACHE_ZOOM_LEVELS,transformRequest:null,transformCameraUpdate:null,fadeDuration:300,crossSourceCollisions:!0,clickTolerance:3,localIdeographFontFamily:"sans-serif",pitchWithRotate:!0,rollEnabled:!1,validateStyle:!0,maxCanvasSize:[4096,4096],cancelPendingTileRequestsWhileZooming:!0,centerClampedToGround:!0},wl={showCompass:!0,showZoom:!0,visualizePitch:!1,visualizeRoll:!0};class Sl{constructor(e,r,a=!1){this.mousedown=p=>{this.startMove(p,A.mousePos(this.element,p)),A.addEventListener(window,"mousemove",this.mousemove),A.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=p=>{this.move(p,A.mousePos(this.element,p))},this.mouseup=p=>{this._rotatePitchHanlder.dragEnd(p),this.offTemp()},this.touchstart=p=>{p.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=A.touchPos(this.element,p.targetTouches)[0],this.startMove(p,this._startPos),A.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),A.addEventListener(window,"touchend",this.touchend))},this.touchmove=p=>{p.targetTouches.length!==1?this.reset():(this._lastPos=A.touchPos(this.element,p.targetTouches)[0],this.move(p,this._lastPos))},this.touchend=p=>{p.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),delete this._startPos,delete this._lastPos,this.offTemp()},this.reset=()=>{this._rotatePitchHanlder.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=r;const l=new Cs;this._rotatePitchHanlder=new ni({clickTolerance:3,move:(p,g)=>{const b=r.getBoundingClientRect(),k=new s.P((b.bottom-b.top)/2,(b.right-b.left)/2);return{bearingDelta:s.ce(new s.P(p.x,g.y),g,k),pitchDelta:a?-.5*(g.y-p.y):void 0}},moveStateManager:l,enable:!0,assignEvents:()=>{}}),this.map=e,A.addEventListener(r,"mousedown",this.mousedown),A.addEventListener(r,"touchstart",this.touchstart,{passive:!1}),A.addEventListener(r,"touchcancel",this.reset)}startMove(e,r){this._rotatePitchHanlder.dragStart(e,r),A.disableDrag()}move(e,r){const a=this.map,{bearingDelta:l,pitchDelta:p}=this._rotatePitchHanlder.dragMove(e,r)||{};l&&a.setBearing(a.getBearing()+l),p&&a.setPitch(a.getPitch()+p)}off(){const e=this.element;A.removeEventListener(e,"mousedown",this.mousedown),A.removeEventListener(e,"touchstart",this.touchstart,{passive:!1}),A.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),A.removeEventListener(window,"touchend",this.touchend),A.removeEventListener(e,"touchcancel",this.reset),this.offTemp()}offTemp(){A.enableDrag(),A.removeEventListener(window,"mousemove",this.mousemove),A.removeEventListener(window,"mouseup",this.mouseup),A.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),A.removeEventListener(window,"touchend",this.touchend)}}let Pr;function Al(u,e,r,a=!1){if(a||!r.getCoveringTilesDetailsProvider().allowWorldCopies())return u==null?void 0:u.wrap();const l=new s.Q(u.lng,u.lat);if(u=new s.Q(u.lng,u.lat),e){const p=new s.Q(u.lng-360,u.lat),g=new s.Q(u.lng+360,u.lat),b=r.locationToScreenPoint(u).distSqr(e);r.locationToScreenPoint(p).distSqr(e)<b?u=p:r.locationToScreenPoint(g).distSqr(e)<b&&(u=g)}for(;Math.abs(u.lng-r.center.lng)>180;){const p=r.locationToScreenPoint(u);if(p.x>=0&&p.y>=0&&p.x<=r.width&&p.y<=r.height)break;u.lng>r.center.lng?u.lng-=360:u.lng+=360}return u.lng!==l.lng&&r.isPointOnMapSurface(r.locationToScreenPoint(u))?u:l}const Bi={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Qc(u,e,r){const a=u.classList;for(const l in Bi)a.remove(`maplibregl-${r}-anchor-${l}`);a.add(`maplibregl-${r}-anchor-${e}`)}class Yn extends s.E{constructor(e){if(super(),this._onKeyPress=r=>{const a=r.code,l=r.charCode||r.keyCode;a!=="Space"&&a!=="Enter"&&l!==32&&l!==13||this.togglePopup()},this._onMapClick=r=>{const a=r.originalEvent.target,l=this._element;this._popup&&(a===l||l.contains(a))&&this.togglePopup()},this._update=r=>{if(!this._map)return;const a=this._map.loaded()&&!this._map.isMoving();((r==null?void 0:r.type)==="terrain"||(r==null?void 0:r.type)==="render"&&!a)&&this._map.once("render",this._update),this._lngLat=Al(this._lngLat,this._flatPos,this._map.transform),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let l="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?l=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(l=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let p="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?p="rotateX(0deg)":this._pitchAlignment==="map"&&(p=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||r&&r.type!=="moveend"||(this._pos=this._pos.round()),A.setTransform(this._element,`${Bi[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${p} ${l}`),L.frameAsync(new AbortController).then(()=>{this._updateOpacity(r&&r.type==="moveend")}).catch(()=>{})},this._onMove=r=>{if(!this._isDragging){const a=this._clickTolerance||this._map._clickTolerance;this._isDragging=r.point.dist(this._pointerdownPos)>=a}this._isDragging&&(this._pos=r.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new s.l("dragstart"))),this.fire(new s.l("drag")))},this._onUp=()=>{this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new s.l("dragend")),this._state="inactive"},this._addDragHandler=r=>{this._element.contains(r.originalEvent.target)&&(r.preventDefault(),this._positionDelta=r.point.sub(this._pos).add(this._offset),this._pointerdownPos=r.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},this._anchor=e&&e.anchor||"center",this._color=e&&e.color||"#3FB1CE",this._scale=e&&e.scale||1,this._draggable=e&&e.draggable||!1,this._clickTolerance=e&&e.clickTolerance||0,this._subpixelPositioning=e&&e.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=e&&e.rotation||0,this._rotationAlignment=e&&e.rotationAlignment||"auto",this._pitchAlignment=e&&e.pitchAlignment&&e.pitchAlignment!=="auto"?e.pitchAlignment:this._rotationAlignment,this.setOpacity(e==null?void 0:e.opacity,e==null?void 0:e.opacityWhenCovered),e&&e.element)this._element=e.element,this._offset=s.P.convert(e&&e.offset||[0,0]);else{this._defaultMarker=!0,this._element=A.create("div");const r=A.createNS("http://www.w3.org/2000/svg","svg"),a=41,l=27;r.setAttributeNS(null,"display","block"),r.setAttributeNS(null,"height",`${a}px`),r.setAttributeNS(null,"width",`${l}px`),r.setAttributeNS(null,"viewBox",`0 0 ${l} ${a}`);const p=A.createNS("http://www.w3.org/2000/svg","g");p.setAttributeNS(null,"stroke","none"),p.setAttributeNS(null,"stroke-width","1"),p.setAttributeNS(null,"fill","none"),p.setAttributeNS(null,"fill-rule","evenodd");const g=A.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"fill-rule","nonzero");const b=A.createNS("http://www.w3.org/2000/svg","g");b.setAttributeNS(null,"transform","translate(3.0, 29.0)"),b.setAttributeNS(null,"fill","#000000");const k=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(const oe of k){const ue=A.createNS("http://www.w3.org/2000/svg","ellipse");ue.setAttributeNS(null,"opacity","0.04"),ue.setAttributeNS(null,"cx","10.5"),ue.setAttributeNS(null,"cy","5.80029008"),ue.setAttributeNS(null,"rx",oe.rx),ue.setAttributeNS(null,"ry",oe.ry),b.appendChild(ue)}const I=A.createNS("http://www.w3.org/2000/svg","g");I.setAttributeNS(null,"fill",this._color);const z=A.createNS("http://www.w3.org/2000/svg","path");z.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),I.appendChild(z);const N=A.createNS("http://www.w3.org/2000/svg","g");N.setAttributeNS(null,"opacity","0.25"),N.setAttributeNS(null,"fill","#000000");const O=A.createNS("http://www.w3.org/2000/svg","path");O.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),N.appendChild(O);const Z=A.createNS("http://www.w3.org/2000/svg","g");Z.setAttributeNS(null,"transform","translate(6.0, 7.0)"),Z.setAttributeNS(null,"fill","#FFFFFF");const J=A.createNS("http://www.w3.org/2000/svg","g");J.setAttributeNS(null,"transform","translate(8.0, 8.0)");const ne=A.createNS("http://www.w3.org/2000/svg","circle");ne.setAttributeNS(null,"fill","#000000"),ne.setAttributeNS(null,"opacity","0.25"),ne.setAttributeNS(null,"cx","5.5"),ne.setAttributeNS(null,"cy","5.5"),ne.setAttributeNS(null,"r","5.4999962");const ie=A.createNS("http://www.w3.org/2000/svg","circle");ie.setAttributeNS(null,"fill","#FFFFFF"),ie.setAttributeNS(null,"cx","5.5"),ie.setAttributeNS(null,"cy","5.5"),ie.setAttributeNS(null,"r","5.4999962"),J.appendChild(ne),J.appendChild(ie),g.appendChild(b),g.appendChild(I),g.appendChild(N),g.appendChild(Z),g.appendChild(J),r.appendChild(g),r.setAttributeNS(null,"height",a*this._scale+"px"),r.setAttributeNS(null,"width",l*this._scale+"px"),this._element.appendChild(r),this._offset=s.P.convert(e&&e.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",r=>{r.preventDefault()}),this._element.addEventListener("mousedown",r=>{r.preventDefault()}),Qc(this._element,this._anchor,"marker"),e&&e.className)for(const r of e.className.split(" "))this._element.classList.add(r);this._popup=null}addTo(e){return this.remove(),this._map=e,this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label",e._getUIString("Marker.Title")),e.getCanvasContainer().appendChild(this._element),e.on("move",this._update),e.on("moveend",this._update),e.on("terrain",this._update),e.on("projectiontransition",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("terrain",this._update),this._map.off("projectiontransition",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),A.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=s.Q.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),e){if(!("offset"in e.options)){const l=Math.abs(13.5)/Math.SQRT2;e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[l,-1*(38.1-13.5+l)],"bottom-right":[-l,-1*(38.1-13.5+l)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=e,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(e){return this._subpixelPositioning=e,this}getPopup(){return this._popup}togglePopup(){const e=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:e?(e.isOpen()?e.remove():(e.setLngLat(this._lngLat),e.addTo(this._map)),this):this}_updateOpacity(e=!1){var r,a;const l=(r=this._map)===null||r===void 0?void 0:r.terrain,p=this._map.transform.isLocationOccluded(this._lngLat);if(!l||p){const Z=p?this._opacityWhenCovered:this._opacity;return void(this._element.style.opacity!==Z&&(this._element.style.opacity=Z))}if(e)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null},100)}const g=this._map,b=g.terrain.depthAtPoint(this._pos),k=g.terrain.getElevationForLngLatZoom(this._lngLat,g.transform.tileZoom);if(g.transform.lngLatToCameraDepth(this._lngLat,k)-b<.006)return void(this._element.style.opacity=this._opacity);const I=-this._offset.y/g.transform.pixelsPerMeter,z=Math.sin(g.getPitch()*Math.PI/180)*I,N=g.terrain.depthAtPoint(new s.P(this._pos.x,this._pos.y-this._offset.y)),O=g.transform.lngLatToCameraDepth(this._lngLat,k+z)-N>.006;!((a=this._popup)===null||a===void 0)&&a.isOpen()&&O&&this._popup.remove(),this._element.style.opacity=O?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(e){return this._offset=s.P.convert(e),this._update(),this}addClassName(e){this._element.classList.add(e)}removeClassName(e){this._element.classList.remove(e)}toggleClassName(e){return this._element.classList.toggle(e)}setDraggable(e){return this._draggable=!!e,this._map&&(e?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e&&e!=="auto"?e:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(e,r){return(this._opacity===void 0||e===void 0&&r===void 0)&&(this._opacity="1",this._opacityWhenCovered="0.2"),e!==void 0&&(this._opacity=e),r!==void 0&&(this._opacityWhenCovered=r),this._map&&this._updateOpacity(!0),this}}const br={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let hr=0,Is=!1;const mo={maxWidth:100,unit:"metric"};function go(u,e,r){const a=r&&r.maxWidth||100,l=u._container.clientHeight/2,p=u._container.clientWidth/2,g=u.unproject([p-a/2,l]),b=u.unproject([p+a/2,l]),k=Math.round(u.project(b).x-u.project(g).x),I=Math.min(a,k,u._container.clientWidth),z=g.distanceTo(b);if(r&&r.unit==="imperial"){const N=3.2808*z;N>5280?$n(e,I,N/5280,u._getUIString("ScaleControl.Miles")):$n(e,I,N,u._getUIString("ScaleControl.Feet"))}else r&&r.unit==="nautical"?$n(e,I,z/1852,u._getUIString("ScaleControl.NauticalMiles")):z>=1e3?$n(e,I,z/1e3,u._getUIString("ScaleControl.Kilometers")):$n(e,I,z,u._getUIString("ScaleControl.Meters"))}function $n(u,e,r,a){const l=function(p){const g=Math.pow(10,`${Math.floor(p)}`.length-1);let b=p/g;return b=b>=10?10:b>=5?5:b>=3?3:b>=2?2:b>=1?1:function(k){const I=Math.pow(10,Math.ceil(-Math.log(k)/Math.LN10));return Math.round(k*I)/I}(b),g*b}(r);u.style.width=e*(l/r)+"px",u.innerHTML=`${l} ${a}`}const kl={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1,locationOccludedOpacity:void 0},Tl=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Ms(u){if(u){if(typeof u=="number"){const e=Math.round(Math.abs(u)/Math.SQRT2);return{center:new s.P(0,0),top:new s.P(0,u),"top-left":new s.P(e,e),"top-right":new s.P(-e,e),bottom:new s.P(0,-u),"bottom-left":new s.P(e,-e),"bottom-right":new s.P(-e,-e),left:new s.P(u,0),right:new s.P(-u,0)}}if(u instanceof s.P||Array.isArray(u)){const e=s.P.convert(u);return{center:e,top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{center:s.P.convert(u.center||[0,0]),top:s.P.convert(u.top||[0,0]),"top-left":s.P.convert(u["top-left"]||[0,0]),"top-right":s.P.convert(u["top-right"]||[0,0]),bottom:s.P.convert(u.bottom||[0,0]),"bottom-left":s.P.convert(u["bottom-left"]||[0,0]),"bottom-right":s.P.convert(u["bottom-right"]||[0,0]),left:s.P.convert(u.left||[0,0]),right:s.P.convert(u.right||[0,0])}}return Ms(new s.P(0,0))}const Cl=B;x.AJAXError=s.cq,x.Event=s.l,x.Evented=s.E,x.LngLat=s.Q,x.MercatorCoordinate=s.$,x.Point=s.P,x.addProtocol=s.cr,x.config=s.a,x.removeProtocol=s.cs,x.AttributionControl=nr,x.BoxZoomHandler=ml,x.CanvasSource=It,x.CooperativeGesturesHandler=fa,x.DoubleClickZoomHandler=da,x.DragPanHandler=Zc,x.DragRotateHandler=Kc,x.EdgeInsets=js,x.FullscreenControl=class extends s.E{constructor(u={}){super(),this._onFullscreenChange=()=>{var e;let r=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((e=r==null?void 0:r.shadowRoot)===null||e===void 0)&&e.fullscreenElement;)r=r.shadowRoot.fullscreenElement;r===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,u&&u.container&&(u.container instanceof HTMLElement?this._container=u.container:s.w("Full screen control 'container' must be a DOM element.")),"onfullscreenchange"in document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in document&&(this._fullscreenchange="MSFullscreenChange")}onAdd(u){return this._map=u,this._container||(this._container=this._map.getContainer()),this._controlContainer=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){A.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const u=this._fullscreenButton=A.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);A.create("span","maplibregl-ctrl-icon",u).setAttribute("aria-hidden","true"),u.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const u=this._getTitle();this._fullscreenButton.setAttribute("aria-label",u),this._fullscreenButton.title=u}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"),this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"),this._updateTitle(),this._fullscreen?(this.fire(new s.l("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new s.l("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},x.GeoJSONSource=Pt,x.GeolocateControl=class extends s.E{constructor(u){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new s.l("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(e),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new s.l("geolocate",e)),this._finish()}},this._updateCamera=e=>{const r=new s.Q(e.coords.longitude,e.coords.latitude),a=e.coords.accuracy,l=this._map.getBearing(),p=s.e({bearing:l},this.options.fitBoundsOptions),g=Ke.fromLngLat(r,a);this._map.fitBounds(g,p,{geolocateSource:!0})},this._updateMarker=e=>{if(e){const r=new s.Q(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=e=>{if(this._map){if(e.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(e.code===3&&Is)return;this.options.trackUserLocation&&this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new s.l("error",e)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",e=>e.preventDefault()),this._geolocateButton=A.create("button","maplibregl-ctrl-geolocate",this._container),A.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=e=>{if(this._map){if(e===!1){s.w("Geolocation support is not available so the GeolocateControl will be disabled.");const r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r)}else{const r=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=A.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new Yn({element:this._dotElement}),this._circleElement=A.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Yn({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",r=>{r.geolocateSource||this._watchState!=="ACTIVE_LOCK"||r.originalEvent&&r.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new s.l("trackuserlocationend")),this.fire(new s.l("userlocationlostfocus")))})}},this.options=s.e({},br,u)}onAdd(u){return this._map=u,this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),function(){return s._(this,arguments,void 0,function*(e=!1){if(Pr!==void 0&&!e)return Pr;if(window.navigator.permissions===void 0)return Pr=!!window.navigator.geolocation,Pr;try{Pr=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{Pr=!!window.navigator.geolocation}return Pr})}().then(e=>this._finishSetupUI(e)),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),A.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,hr=0,Is=!1}_isOutOfMapMaxBounds(u){const e=this._map.getMaxBounds(),r=u.coords;return e&&(r.longitude<e.getWest()||r.longitude>e.getEast()||r.latitude<e.getSouth()||r.latitude>e.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"ACTIVE_ERROR":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const u=this._map.getBounds(),e=u.getSouthEast(),r=u.getNorthEast(),a=e.distanceTo(r),l=Math.ceil(this._accuracy/(a/this._map._container.clientHeight)*2);this._circleElement.style.width=`${l}px`,this._circleElement.style.height=`${l}px`}trigger(){if(!this._setup)return s.w("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new s.l("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":hr--,Is=!1,this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this.fire(new s.l("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.l("trackuserlocationstart")),this.fire(new s.l("userlocationfocus"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"OFF":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let u;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),hr++,hr>1?(u={maximumAge:6e5,timeout:0},Is=!0):(u=this.options.positionOptions,Is=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,u)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},x.GlobeControl=class{constructor(){this._toggleProjection=()=>{var u;const e=(u=this._map.getProjection())===null||u===void 0?void 0:u.type;this._map.setProjection(e!=="mercator"&&e?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var u;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),((u=this._map.getProjection())===null||u===void 0?void 0:u.type)==="globe"?(this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"),this._globeButton.title=this._map._getUIString("GlobeControl.Disable")):(this._globeButton.classList.add("maplibregl-ctrl-globe"),this._globeButton.title=this._map._getUIString("GlobeControl.Enable"))}}onAdd(u){return this._map=u,this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=A.create("button","maplibregl-ctrl-globe",this._container),A.create("span","maplibregl-ctrl-icon",this._globeButton).setAttribute("aria-hidden","true"),this._globeButton.type="button",this._globeButton.addEventListener("click",this._toggleProjection),this._updateGlobeIcon(),this._map.on("styledata",this._updateGlobeIcon),this._container}onRemove(){A.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},x.Hash=hl,x.ImageSource=mt,x.KeyboardHandler=Ps,x.LngLatBounds=Ke,x.LogoControl=po,x.Map=class extends Oh{constructor(u){var e,r;s.cn.mark(s.co.create);const a=Object.assign(Object.assign(Object.assign({},fo),u),{canvasContextAttributes:Object.assign(Object.assign({},fo.canvasContextAttributes),u.canvasContextAttributes)});if(a.minZoom!=null&&a.maxZoom!=null&&a.minZoom>a.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(a.minPitch!=null&&a.maxPitch!=null&&a.minPitch>a.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(a.minPitch!=null&&a.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(a.maxPitch!=null&&a.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const l=new ds,p=new Hs;if(a.minZoom!==void 0&&l.setMinZoom(a.minZoom),a.maxZoom!==void 0&&l.setMaxZoom(a.maxZoom),a.minPitch!==void 0&&l.setMinPitch(a.minPitch),a.maxPitch!==void 0&&l.setMaxPitch(a.maxPitch),a.renderWorldCopies!==void 0&&l.setRenderWorldCopies(a.renderWorldCopies),super(l,p,{bearingSnap:a.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new bl,this._controls=[],this._mapId=s.a4(),this._contextLost=b=>{b.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new s.l("webglcontextlost",{originalEvent:b}))},this._contextRestored=b=>{this._setupPainter(),this.resize(),this._update(),this.fire(new s.l("webglcontextrestored",{originalEvent:b}))},this._onMapScroll=b=>{if(b.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=a.interactive,this._maxTileCacheSize=a.maxTileCacheSize,this._maxTileCacheZoomLevels=a.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},a.canvasContextAttributes),this._trackResize=a.trackResize===!0,this._bearingSnap=a.bearingSnap,this._centerClampedToGround=a.centerClampedToGround,this._refreshExpiredTiles=a.refreshExpiredTiles===!0,this._fadeDuration=a.fadeDuration,this._crossSourceCollisions=a.crossSourceCollisions===!0,this._collectResourceTiming=a.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},ct),a.locale),this._clickTolerance=a.clickTolerance,this._overridePixelRatio=a.pixelRatio,this._maxCanvasSize=a.maxCanvasSize,this.transformCameraUpdate=a.transformCameraUpdate,this.cancelPendingTileRequestsWhileZooming=a.cancelPendingTileRequestsWhileZooming===!0,this._imageQueueHandle=te.addThrottleControl(()=>this.isMoving()),this._requestManager=new de(a.transformRequest),typeof a.container=="string"){if(this._container=document.getElementById(a.container),!this._container)throw new Error(`Container '${a.container}' not found.`)}else{if(!(a.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=a.container}if(a.maxBounds&&this.setMaxBounds(a.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),this.on("terrain",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}),this.once("idle",()=>{this._idleTriggered=!0}),typeof window<"u"){addEventListener("online",this._onWindowOnline,!1);let b=!1;const k=lo(I=>{this._trackResize&&!this._removed&&(this.resize(I),this.redraw())},50);this._resizeObserver=new ResizeObserver(I=>{b?k(I):b=!0}),this._resizeObserver.observe(this._container)}this.handlers=new Fh(this,a),this._hash=a.hash&&new hl(typeof a.hash=="string"&&a.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:a.center,elevation:a.elevation,zoom:a.zoom,bearing:a.bearing,pitch:a.pitch,roll:a.roll}),a.bounds&&(this.resize(),this.fitBounds(a.bounds,s.e({},a.fitBoundsOptions,{duration:0}))));const g=typeof a.style=="string"||((r=(e=a.style)===null||e===void 0?void 0:e.projection)===null||r===void 0?void 0:r.type)!=="globe";this.resize(null,g),this._localIdeographFontFamily=a.localIdeographFontFamily,this._validateStyle=a.validateStyle,a.style&&this.setStyle(a.style,{localIdeographFontFamily:a.localIdeographFontFamily}),a.attributionControl&&this.addControl(new nr(typeof a.attributionControl=="boolean"?void 0:a.attributionControl)),a.maplibreLogo&&this.addControl(new po,a.logoPosition),this.on("style.load",()=>{if(g||this._resizeTransform(),this.transform.unmodified){const b=s.O(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(b)}}),this.on("data",b=>{this._update(b.dataType==="style"),this.fire(new s.l(`${b.dataType}data`,b))}),this.on("dataloading",b=>{this.fire(new s.l(`${b.dataType}dataloading`,b))}),this.on("dataabort",b=>{this.fire(new s.l("sourcedataabort",b))})}_getMapId(){return this._mapId}addControl(u,e){if(e===void 0&&(e=u.getDefaultPosition?u.getDefaultPosition():"top-right"),!u||!u.onAdd)return this.fire(new s.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const r=u.onAdd(this);this._controls.push(u);const a=this._controlPositions[e];return e.indexOf("bottom")!==-1?a.insertBefore(r,a.firstChild):a.appendChild(r),this}removeControl(u){if(!u||!u.onRemove)return this.fire(new s.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const e=this._controls.indexOf(u);return e>-1&&this._controls.splice(e,1),u.onRemove(this),this}hasControl(u){return this._controls.indexOf(u)>-1}calculateCameraOptionsFromTo(u,e,r,a){return a==null&&this.terrain&&(a=this.terrain.getElevationForLngLatZoom(r,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(u,e,r,a)}resize(u,e=!0){const[r,a]=this._containerDimensions(),l=this._getClampedPixelRatio(r,a);if(this._resizeCanvas(r,a,l),this.painter.resize(r,a,l),this.painter.overLimit()){const g=this.painter.context.gl;this._maxCanvasSize=[g.drawingBufferWidth,g.drawingBufferHeight];const b=this._getClampedPixelRatio(r,a);this._resizeCanvas(r,a,b),this.painter.resize(r,a,b)}this._resizeTransform(e);const p=!this._moving;return p&&(this.stop(),this.fire(new s.l("movestart",u)).fire(new s.l("move",u))),this.fire(new s.l("resize",u)),p&&this.fire(new s.l("moveend",u)),this}_resizeTransform(u=!0){var e;const[r,a]=this._containerDimensions();this.transform.resize(r,a,u),(e=this._requestedCameraState)===null||e===void 0||e.resize(r,a,u)}_getClampedPixelRatio(u,e){const{0:r,1:a}=this._maxCanvasSize,l=this.getPixelRatio(),p=u*l,g=e*l;return Math.min(p>r?r/p:1,g>a?a/g:1)*l}getPixelRatio(){var u;return(u=this._overridePixelRatio)!==null&&u!==void 0?u:devicePixelRatio}setPixelRatio(u){this._overridePixelRatio=u,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(u){return this.transform.setMaxBounds(Ke.convert(u)),this._update()}setMinZoom(u){if((u=u??-2)>=-2&&u<=this.transform.maxZoom)return this.transform.setMinZoom(u),this._update(),this.getZoom()<u&&this.setZoom(u),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")}getMinZoom(){return this.transform.minZoom}setMaxZoom(u){if((u=u??22)>=this.transform.minZoom)return this.transform.setMaxZoom(u),this._update(),this.getZoom()>u&&this.setZoom(u),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(u){if((u=u??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(u>=0&&u<=this.transform.maxPitch)return this.transform.setMinPitch(u),this._update(),this.getPitch()<u&&this.setPitch(u),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")}getMinPitch(){return this.transform.minPitch}setMaxPitch(u){if((u=u??60)>180)throw new Error("maxPitch must be less than or equal to 180");if(u>=this.transform.minPitch)return this.transform.setMaxPitch(u),this._update(),this.getPitch()>u&&this.setPitch(u),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(u){return this.transform.setRenderWorldCopies(u),this._update()}project(u){return this.transform.locationToScreenPoint(s.Q.convert(u),this.style&&this.terrain)}unproject(u){return this.transform.screenPointToLocation(s.P.convert(u),this.terrain)}isMoving(){var u;return this._moving||((u=this.handlers)===null||u===void 0?void 0:u.isMoving())}isZooming(){var u;return this._zooming||((u=this.handlers)===null||u===void 0?void 0:u.isZooming())}isRotating(){var u;return this._rotating||((u=this.handlers)===null||u===void 0?void 0:u.isRotating())}_createDelegatedListener(u,e,r){if(u==="mouseenter"||u==="mouseover"){let a=!1;return{layers:e,listener:r,delegates:{mousemove:p=>{const g=e.filter(k=>this.getLayer(k)),b=g.length!==0?this.queryRenderedFeatures(p.point,{layers:g}):[];b.length?a||(a=!0,r.call(this,new zr(u,this,p.originalEvent,{features:b}))):a=!1},mouseout:()=>{a=!1}}}}if(u==="mouseleave"||u==="mouseout"){let a=!1;return{layers:e,listener:r,delegates:{mousemove:g=>{const b=e.filter(k=>this.getLayer(k));(b.length!==0?this.queryRenderedFeatures(g.point,{layers:b}):[]).length?a=!0:a&&(a=!1,r.call(this,new zr(u,this,g.originalEvent)))},mouseout:g=>{a&&(a=!1,r.call(this,new zr(u,this,g.originalEvent)))}}}}{const a=l=>{const p=e.filter(b=>this.getLayer(b)),g=p.length!==0?this.queryRenderedFeatures(l.point,{layers:p}):[];g.length&&(l.features=g,r.call(this,l),delete l.features)};return{layers:e,listener:r,delegates:{[u]:a}}}}_saveDelegatedListener(u,e){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[u]=this._delegatedListeners[u]||[],this._delegatedListeners[u].push(e)}_removeDelegatedListener(u,e,r){if(!this._delegatedListeners||!this._delegatedListeners[u])return;const a=this._delegatedListeners[u];for(let l=0;l<a.length;l++){const p=a[l];if(p.listener===r&&p.layers.length===e.length&&p.layers.every(g=>e.includes(g))){for(const g in p.delegates)this.off(g,p.delegates[g]);return void a.splice(l,1)}}}on(u,e,r){if(r===void 0)return super.on(u,e);const a=typeof e=="string"?[e]:e,l=this._createDelegatedListener(u,a,r);this._saveDelegatedListener(u,l);for(const p in l.delegates)this.on(p,l.delegates[p]);return{unsubscribe:()=>{this._removeDelegatedListener(u,a,r)}}}once(u,e,r){if(r===void 0)return super.once(u,e);const a=typeof e=="string"?[e]:e,l=this._createDelegatedListener(u,a,r);for(const p in l.delegates){const g=l.delegates[p];l.delegates[p]=(...b)=>{this._removeDelegatedListener(u,a,r),g(...b)}}this._saveDelegatedListener(u,l);for(const p in l.delegates)this.once(p,l.delegates[p]);return this}off(u,e,r){return r===void 0?super.off(u,e):(this._removeDelegatedListener(u,typeof e=="string"?[e]:e,r),this)}queryRenderedFeatures(u,e){if(!this.style)return[];let r;const a=u instanceof s.P||Array.isArray(u),l=a?u:[[0,0],[this.transform.width,this.transform.height]];if(e=e||(a?{}:u)||{},l instanceof s.P||typeof l[0]=="number")r=[s.P.convert(l)];else{const p=s.P.convert(l[0]),g=s.P.convert(l[1]);r=[p,new s.P(g.x,p.y),g,new s.P(p.x,g.y),p]}return this.style.queryRenderedFeatures(r,e,this.transform)}querySourceFeatures(u,e){return this.style.querySourceFeatures(u,e)}setStyle(u,e){return(e=s.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},e)).diff!==!1&&e.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&u?(this._diffStyle(u,e),this):(this._localIdeographFontFamily=e.localIdeographFontFamily,this._updateStyle(u,e))}setTransformRequest(u){return this._requestManager.setTransformRequest(u),this}_getUIString(u){const e=this._locale[u];if(e==null)throw new Error(`Missing UI string '${u}'`);return e}_updateStyle(u,e){var r,a;if(e.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",()=>this._updateStyle(u,e));const l=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!u)),u?(this.style=new Ka(this,e||{}),this.style.setEventedParent(this,{style:this.style}),typeof u=="string"?this.style.loadURL(u,e,l):this.style.loadJSON(u,e,l),this):((a=(r=this.style)===null||r===void 0?void 0:r.projection)===null||a===void 0||a.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ka(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(u,e){if(typeof u=="string"){const r=this._requestManager.transformRequest(u,"Style");s.j(r,new AbortController).then(a=>{this._updateDiff(a.data,e)}).catch(a=>{a&&this.fire(new s.k(a))})}else typeof u=="object"&&this._updateDiff(u,e)}_updateDiff(u,e){try{this.style.setState(u,e)&&this._update(!0)}catch(r){s.w(`Unable to perform style diff: ${r.message||r.error||r}. Rebuilding the style from scratch.`),this._updateStyle(u,e)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():s.w("There is no style added to the map.")}addSource(u,e){return this._lazyInitEmptyStyle(),this.style.addSource(u,e),this._update(!0)}isSourceLoaded(u){const e=this.style&&this.style.sourceCaches[u];if(e!==void 0)return e.loaded();this.fire(new s.k(new Error(`There is no source with ID '${u}'`)))}setTerrain(u){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),u){const e=this.style.sourceCaches[u.source];if(!e)throw new Error(`cannot load terrain, because there exists no source with ID: ${u.source}`);this.terrain===null&&e.reload();for(const r in this.style._layers){const a=this.style._layers[r];a.type==="hillshade"&&a.source===u.source&&s.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Xc(this.painter,e,u),this.painter.renderToTexture=new ga(this.painter,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._terrainDataCallback=r=>{var a;r.dataType==="style"?this.terrain.sourceCache.freeRtt():r.dataType==="source"&&r.tile&&(r.sourceId!==u.source||this._elevationFreeze||(this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))),((a=r.source)===null||a===void 0?void 0:a.type)==="image"?this.terrain.sourceCache.freeRtt():this.terrain.sourceCache.freeRtt(r.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0);return this.fire(new s.l("terrain",{terrain:u})),this}getTerrain(){var u,e;return(e=(u=this.terrain)===null||u===void 0?void 0:u.options)!==null&&e!==void 0?e:null}areTilesLoaded(){const u=this.style&&this.style.sourceCaches;for(const e in u){const r=u[e]._tiles;for(const a in r){const l=r[a];if(l.state!=="loaded"&&l.state!=="errored")return!1}}return!0}removeSource(u){return this.style.removeSource(u),this._update(!0)}getSource(u){return this.style.getSource(u)}setSourceTileLodParams(u,e,r){if(r){const a=this.getSource(r);if(!a)throw new Error(`There is no source with ID "${r}", cannot set LOD parameters`);a.calculateTileZoom=ye(Math.max(1,u),Math.max(1,e))}else for(const a in this.style.sourceCaches)this.style.sourceCaches[a].getSource().calculateTileZoom=ye(Math.max(1,u),Math.max(1,e));return this._update(!0),this}refreshTiles(u,e){const r=this.style.sourceCaches[u];if(!r)throw new Error(`There is no source cache with ID "${u}", cannot refresh tile`);e===void 0?r.reload():r.refreshTiles(e.map(a=>new s.a1(a.z,a.x,a.y)))}addImage(u,e,r={}){const{pixelRatio:a=1,sdf:l=!1,stretchX:p,stretchY:g,content:b,textFitWidth:k,textFitHeight:I}=r;if(this._lazyInitEmptyStyle(),!(e instanceof HTMLImageElement||s.b(e))){if(e.width===void 0||e.height===void 0)return this.fire(new s.k(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{const{width:z,height:N,data:O}=e,Z=e;return this.style.addImage(u,{data:new s.R({width:z,height:N},new Uint8Array(O)),pixelRatio:a,stretchX:p,stretchY:g,content:b,textFitWidth:k,textFitHeight:I,sdf:l,version:0,userImage:Z}),Z.onAdd&&Z.onAdd(this,u),this}}{const{width:z,height:N,data:O}=L.getImageData(e);this.style.addImage(u,{data:new s.R({width:z,height:N},O),pixelRatio:a,stretchX:p,stretchY:g,content:b,textFitWidth:k,textFitHeight:I,sdf:l,version:0})}}updateImage(u,e){const r=this.style.getImage(u);if(!r)return this.fire(new s.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const a=e instanceof HTMLImageElement||s.b(e)?L.getImageData(e):e,{width:l,height:p,data:g}=a;if(l===void 0||p===void 0)return this.fire(new s.k(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(l!==r.data.width||p!==r.data.height)return this.fire(new s.k(new Error("The width and height of the updated image must be that same as the previous version of the image")));const b=!(e instanceof HTMLImageElement||s.b(e));return r.data.replace(g,b),this.style.updateImage(u,r),this}getImage(u){return this.style.getImage(u)}hasImage(u){return u?!!this.style.getImage(u):(this.fire(new s.k(new Error("Missing required image id"))),!1)}removeImage(u){this.style.removeImage(u)}loadImage(u){return te.getImage(this._requestManager.transformRequest(u,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(u,e){return this._lazyInitEmptyStyle(),this.style.addLayer(u,e),this._update(!0)}moveLayer(u,e){return this.style.moveLayer(u,e),this._update(!0)}removeLayer(u){return this.style.removeLayer(u),this._update(!0)}getLayer(u){return this.style.getLayer(u)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(u,e,r){return this.style.setLayerZoomRange(u,e,r),this._update(!0)}setFilter(u,e,r={}){return this.style.setFilter(u,e,r),this._update(!0)}getFilter(u){return this.style.getFilter(u)}setPaintProperty(u,e,r,a={}){return this.style.setPaintProperty(u,e,r,a),this._update(!0)}getPaintProperty(u,e){return this.style.getPaintProperty(u,e)}setLayoutProperty(u,e,r,a={}){return this.style.setLayoutProperty(u,e,r,a),this._update(!0)}getLayoutProperty(u,e){return this.style.getLayoutProperty(u,e)}setGlyphs(u,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(u,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(u,e,r={}){return this._lazyInitEmptyStyle(),this.style.addSprite(u,e,r,a=>{a||this._update(!0)}),this}removeSprite(u){return this._lazyInitEmptyStyle(),this.style.removeSprite(u),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(u,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(u,e,r=>{r||this._update(!0)}),this}setLight(u,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(u,e),this._update(!0)}getLight(){return this.style.getLight()}setSky(u,e={}){return this._lazyInitEmptyStyle(),this.style.setSky(u,e),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(u,e){return this.style.setFeatureState(u,e),this._update()}removeFeatureState(u,e){return this.style.removeFeatureState(u,e),this._update()}getFeatureState(u){return this.style.getFeatureState(u)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let u=0,e=0;return this._container&&(u=this._container.clientWidth||400,e=this._container.clientHeight||300),[u,e]}_setupContainer(){const u=this._container;u.classList.add("maplibregl-map");const e=this._canvasContainer=A.create("div","maplibregl-canvas-container",u);this._interactive&&e.classList.add("maplibregl-interactive"),this._canvas=A.create("canvas","maplibregl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",this._interactive?"0":"-1"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region");const r=this._containerDimensions(),a=this._getClampedPixelRatio(r[0],r[1]);this._resizeCanvas(r[0],r[1],a);const l=this._controlContainer=A.create("div","maplibregl-control-container",u),p=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(g=>{p[g]=A.create("div",`maplibregl-ctrl-${g} `,l)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(u,e,r){this._canvas.width=Math.floor(r*u),this._canvas.height=Math.floor(r*e),this._canvas.style.width=`${u}px`,this._canvas.style.height=`${e}px`}_setupPainter(){const u=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let e=null;this._canvas.addEventListener("webglcontextcreationerror",a=>{e={requestedAttributes:u},a&&(e.statusMessage=a.statusMessage,e.type=a.type)},{once:!0});let r=null;if(r=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,u):this._canvas.getContext("webgl2",u)||this._canvas.getContext("webgl",u),!r){const a="Failed to initialize WebGL";throw e?(e.message=a,new Error(JSON.stringify(e))):new Error(a)}this.painter=new ul(r,this.transform),C.testSupport(r)}migrateProjection(u,e){super.migrateProjection(u,e),this.painter.transform=u,this.fire(new s.l("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(u){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||u,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(u){return this._update(),this._renderTaskQueue.add(u)}_cancelRenderFrame(u){this._renderTaskQueue.remove(u)}_render(u){var e,r,a,l,p;const g=this._idleTriggered?this._fadeDuration:0,b=((e=this.style.projection)===null||e===void 0?void 0:e.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(u),this._removed)return;let k=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const N=this.transform.zoom,O=L.now();this.style.zoomHistory.update(N,O);const Z=new s.C(N,{now:O,fadeDuration:g,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),J=Z.crossFadingFactor();J===1&&J===this._crossFadingFactor||(k=!0,this._crossFadingFactor=J),this.style.update(Z)}const I=((r=this.style.projection)===null||r===void 0?void 0:r.transitionState)>0!==b;(a=this.style.projection)===null||a===void 0||a.setErrorQueryLatitudeDegrees(this.transform.center.lat),this.transform.setTransitionState((l=this.style.projection)===null||l===void 0?void 0:l.transitionState,(p=this.style.projection)===null||p===void 0?void 0:p.latitudeErrorCorrectionRadians),this.style&&(this._sourcesDirty||I)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),!this._elevationFreeze&&this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0)),this._placementDirty=this.style&&this.style._updatePlacement(this.transform,this.showCollisionBoxes,g,this._crossSourceCollisions,I),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:g,showPadding:this.showPadding}),this.fire(new s.l("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,s.cn.mark(s.co.load),this.fire(new s.l("load"))),this.style&&(this.style.hasTransitions()||k)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const z=this._sourcesDirty||this._styleDirty||this._placementDirty;return z||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new s.l("idle")),!this._loaded||this._fullyLoaded||z||(this._fullyLoaded=!0,s.cn.mark(s.co.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var u;this._hash&&this._hash.remove();for(const r of this._controls)r.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<"u"&&removeEventListener("online",this._onWindowOnline,!1),te.removeThrottleControl(this._imageQueueHandle),(u=this._resizeObserver)===null||u===void 0||u.disconnect();const e=this.painter.context.gl.getExtension("WEBGL_lose_context");e!=null&&e.loseContext&&e.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),A.remove(this._canvasContainer),A.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),s.cn.clearMetrics(),this._removed=!0,this.fire(new s.l("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,L.frame(this._frameRequest,u=>{s.cn.frame(u),this._frameRequest=null;try{this._render(u)}catch(e){if(!s.cp(e)&&!function(r){return r.message===Yo}(e))throw e}},()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(u){this._showTileBoundaries!==u&&(this._showTileBoundaries=u,this._update())}get showPadding(){return!!this._showPadding}set showPadding(u){this._showPadding!==u&&(this._showPadding=u,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(u){this._showCollisionBoxes!==u&&(this._showCollisionBoxes=u,u?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(u){this._showOverdrawInspector!==u&&(this._showOverdrawInspector=u,this._update())}get repaint(){return!!this._repaint}set repaint(u){this._repaint!==u&&(this._repaint=u,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(u){this._vertices=u,this._update()}get version(){return ft}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(u){return this._lazyInitEmptyStyle(),this.style.setProjection(u),this._update(!0)}},x.MapMouseEvent=zr,x.MapTouchEvent=Ss,x.MapWheelEvent=fl,x.Marker=Yn,x.NavigationControl=class{constructor(u){this._updateZoomButtons=()=>{const e=this._map.getZoom(),r=e===this._map.getMaxZoom(),a=e===this._map.getMinZoom();this._zoomInButton.disabled=r,this._zoomOutButton.disabled=a,this._zoomInButton.setAttribute("aria-disabled",r.toString()),this._zoomOutButton.setAttribute("aria-disabled",a.toString())},this._rotateCompassArrow=()=>{this._compassIcon.style.transform=this.options.visualizePitch&&this.options.visualizeRoll?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizeRoll?`rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)`:`rotate(${-this._map.transform.bearing}deg)`},this._setButtonTitle=(e,r)=>{const a=this._map._getUIString(`NavigationControl.${r}`);e.title=a,e.setAttribute("aria-label",a)},this.options=s.e({},wl,u),this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",e=>e.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",e=>this._map.zoomIn({},{originalEvent:e})),A.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",e=>this._map.zoomOut({},{originalEvent:e})),A.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",e=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:e}):this._map.resetNorth({},{originalEvent:e})}),this._compassIcon=A.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(u){return this._map=u,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.on("roll",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Sl(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){A.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.off("roll",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(u,e){const r=A.create("button",u,this._container);return r.type="button",r.addEventListener("click",e),r}},x.Popup=class extends s.E{constructor(u){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._container.style.opacity=this._map.transform.isLocationOccluded(this.getLngLat())?`${this.options.locationOccludedOpacity}`:void 0)},this.remove=()=>(this._content&&A.remove(this._content),this._container&&(A.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),this._map._canvasContainer.classList.remove("maplibregl-track-pointer"),delete this._map,this.fire(new s.l("close"))),this),this._onMouseUp=e=>{this._update(e.point)},this._onMouseMove=e=>{this._update(e.point)},this._onDrag=e=>{this._update(e.point)},this._update=e=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=A.create("div","maplibregl-popup",this._map.getContainer()),this._tip=A.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const g of this.options.className.split(" "))this._container.classList.add(g);this._closeButton&&this._closeButton.setAttribute("aria-label",this._map._getUIString("Popup.Close")),this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=Al(this._lngLat,this._flatPos,this._map.transform,this._trackPointer),this._trackPointer&&!e)return;const r=this._flatPos=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&e?e:this._map.transform.locationToScreenPoint(this._lngLat));let a=this.options.anchor;const l=Ms(this.options.offset);if(!a){const g=this._container.offsetWidth,b=this._container.offsetHeight;let k;k=r.y+l.bottom.y<b?["top"]:r.y>this._map.transform.height-b?["bottom"]:[],r.x<g/2?k.push("left"):r.x>this._map.transform.width-g/2&&k.push("right"),a=k.length===0?"bottom":k.join("-")}let p=r.add(l[a]);this.options.subpixelPositioning||(p=p.round()),A.setTransform(this._container,`${Bi[a]} translate(${p.x}px,${p.y}px)`),Qc(this._container,a,"popup"),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=s.e(Object.create(kl),u)}addTo(u){return this._map&&this.remove(),this._map=u,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")):this._map.on("move",this._update),this.fire(new s.l("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(u){return this._lngLat=s.Q.convert(u),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.remove("maplibregl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._flatPos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(u){return this.setDOMContent(document.createTextNode(u))}setHTML(u){const e=document.createDocumentFragment(),r=document.createElement("body");let a;for(r.innerHTML=u;a=r.firstChild,a;)e.appendChild(a);return this.setDOMContent(e)}getMaxWidth(){var u;return(u=this._container)===null||u===void 0?void 0:u.style.maxWidth}setMaxWidth(u){return this.options.maxWidth=u,this._update(),this}setDOMContent(u){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=A.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(u),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(u){return this._container&&this._container.classList.add(u),this}removeClassName(u){return this._container&&this._container.classList.remove(u),this}setOffset(u){return this.options.offset=u,this._update(),this}toggleClassName(u){if(this._container)return this._container.classList.toggle(u)}setSubpixelPositioning(u){this.options.subpixelPositioning=u}_createCloseButton(){this.options.closeButton&&(this._closeButton=A.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const u=this._container.querySelector(Tl);u&&u.focus()}},x.RasterDEMTileSource=kt,x.RasterTileSource=xt,x.ScaleControl=class{constructor(u){this._onMove=()=>{go(this._map,this._container,this.options)},this.setUnit=e=>{this.options.unit=e,go(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},mo),u)}getDefaultPosition(){return"bottom-left"}onAdd(u){return this._map=u,this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-scale",u.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){A.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},x.ScrollZoomHandler=Rt,x.Style=Ka,x.TerrainControl=class{constructor(u){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.terrain?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.Disable")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.Enable"))},this.options=u}onAdd(u){return this._map=u,this._container=A.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=A.create("button","maplibregl-ctrl-terrain",this._container),A.create("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){A.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},x.TwoFingersTouchPitchHandler=pa,x.TwoFingersTouchRotateHandler=it,x.TwoFingersTouchZoomHandler=Es,x.TwoFingersTouchZoomRotateHandler=xl,x.VectorTileSource=lt,x.VideoSource=Ut,x.addSourceType=(u,e)=>s._(void 0,void 0,void 0,function*(){if(mi(u))throw new Error(`A source type called "${u}" already exists.`);((r,a)=>{Sr[r]=a})(u,e)}),x.clearPrewarmedResources=function(){const u=wi;u&&(u.isPreloaded()&&u.numActive()===1?(u.release(wn),wi=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},x.createTileMesh=Ws,x.getMaxParallelImageRequests=function(){return s.a.MAX_PARALLEL_IMAGE_REQUESTS},x.getRTLTextPluginStatus=function(){return Li().getRTLTextPluginStatus()},x.getVersion=function(){return Cl},x.getWorkerCount=function(){return Rr.workerCount},x.getWorkerUrl=function(){return s.a.WORKER_URL},x.importScriptInWorkers=function(u){return Sn().broadcast("IS",u)},x.prewarm=function(){ji().acquire(wn)},x.setMaxParallelImageRequests=function(u){s.a.MAX_PARALLEL_IMAGE_REQUESTS=u},x.setRTLTextPlugin=function(u,e){return Li().setRTLTextPlugin(u,e)},x.setWorkerCount=function(u){Rr.workerCount=u},x.setWorkerUrl=function(u){s.a.WORKER_URL=u}});var P=_;return P})}(Qu)),Qu.exports}var bx=xx();const $p=Yg(bx);function ey(h){const d={"bottom-left":"bottom-[20px] left-[20px]","bottom-right":"bottom-[20px] right-[20px]","bottom-center":"bottom-[20px] left-1/2 -translate-x-1/2","top-left":"top-[20px] left-[20px]","top-right":"top-[20px] right-[20px]","top-center":"top-[20px] left-1/2 -translate-x-1/2",center:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"};return d[h]||d["bottom-left"]}const Gt=(h,d)=>{const _=h.__vccOpts||h;for(const[w,T]of d)_[w]=T;return _},wx={key:0,class:"p-5 pb-0 flex justify-between items-center"},Sx={class:"inline-block font-semibold text-lg text-gray-800"},Ax={class:"flex flex-col gap-1 p-5"},kx={class:"flex items-center justify-between w-full text-sm text-gray-800"},Tx={key:0,class:"ms-2 text-xs text-gray-500"},Cx={__name:"vs-legend-widget",props:{config:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var T;return((T=d.config)==null?void 0:T.items)||[]}),w=y.computed(()=>{var T;return((T=d.config)==null?void 0:T.title)||""});return(T,P)=>(y.openBlock(),y.createElementBlock("div",{class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative",style:y.normalizeStyle({width:h.config.width||"100%"})},[w.value?(y.openBlock(),y.createElementBlock("div",wx,[y.createElementVNode("h2",Sx,y.toDisplayString(w.value),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",Ax,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.value,x=>(y.openBlock(),y.createElementBlock("div",{class:"flex items-center",key:x.label},[y.createElementVNode("span",{class:y.normalizeClass(["shrink-0 size-2.5 inline-block me-2.5",[x.shape==="square"?"rounded-sm":"",x.shape==="circle"?"rounded-full":"",x.shape==="line"?"w-6 h-0.5":"",x.shape==="dashed-line"?"w-6 h-0.5 dashed-line":""]]),style:y.normalizeStyle({backgroundColor:x.color})},null,6),y.createElementVNode("span",kx,[y.createElementVNode("span",null,y.toDisplayString(x.label),1),x.count!==void 0?(y.openBlock(),y.createElementBlock("span",Tx," ("+y.toDisplayString(x.count)+") ",1)):y.createCommentVNode("",!0)])]))),128))])],4))}},Ex=Gt(Cx,[["__scopeId","data-v-6dafc777"]]),Px="data:image/png;base64,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",Ix={class:"flex flex-row gap-x-3 z-10 relative"},Mx=["onClick"],Lx=["src","alt"],Rx={__name:"vs-basemaps-widget",props:{map:{type:Object,required:!0},config:{type:Object,default:()=>({})},position:{type:String,default:"bottom-left"}},setup(h){const d=h,_=y.ref("voyager"),w=y.computed(()=>{var B;if(!((B=d.config)!=null&&B.layers))return[];const s=d.config.layers.map(R=>({id:R.id,title:R.label||R.title,url:R.url,service:R.type,category:"Базові карти",attribution:R.attribution,image:R.image,enabled:!0,owner:R.owner||"Unknown"}));return s.push({id:"__none__",title:"Без підложки",url:"",service:"",category:"Базові карти",attribution:"",image:Px,enabled:!0,owner:""}),s});function T(s){return{version:8,sources:{[s.id]:{type:"raster",tiles:[s.url],tileSize:256,attribution:s.attribution||""}},layers:[{id:s.id,type:"raster",source:s.id}]}}const P=s=>{if(!d.map)return;const B=d.map.getStyle(),R=w.value.map(A=>A.id),M=B.layers.filter(A=>!R.includes(A.id)),F={};for(const A in B.sources)R.includes(A)||(F[A]=B.sources[A]);if(s.id==="__none__"){const A={version:8,sources:{...F},layers:[...M]};d.map.setStyle(A);return}const L=T(s);d.map.setStyle(L),d.map.once("styledata",()=>{for(const[A,C]of Object.entries(F))d.map.getSource(A)||d.map.addSource(A,C);for(const A of M)d.map.getLayer(A.id)||d.map.addLayer(A)})},x=s=>{_.value=s;const B=w.value.find(R=>R.id===s);B&&d.map&&P(B)};return y.onMounted(()=>{var s;(s=d.config)!=null&&s.default&&(_.value=d.config.default)}),(s,B)=>{const R=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",Ix,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(w.value,M=>(y.openBlock(),y.createBlock(R,{trigger:"hover",placement:"top",key:M.id},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:y.normalizeClass(["w-14 h-14 flex items-center justify-center bg-white rounded-xl shadow-2xs cursor-pointer transition-all border-4",_.value===M.id?"border-blue-400":"border-transparent"]),onClick:F=>x(M.id)},[y.createElementVNode("img",{src:M.image,alt:M.title,class:y.normalizeClass(["object-cover rounded-lg",M.id==="__none__"?"w-10 h-10":"w-12 h-12"])},null,10,Lx)],10,Mx)]),default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(M.title)+" ",1)]),_:2},1024))),128))])}}};function za(h){if(!h.attrType||!h.attribute||!h.rules)return h.color||"#ccc";const d=h.rules.map(_=>[["==",["get",h.attribute],_.id||_.value],_.color]);return d.push(h.color||"#ccc"),["case",...d.flat()]}function Dx(h){if(!h.attrType||h.attrType!=="icon-by-attribute"||!h.attribute||!h.rules)return h.default_icon||null;const d=h.rules.map(_=>[["==",["get",h.attribute],_.value],_.icon]);return d.push(h.default_icon||"marker.svg"),["case",...d.flat()]}function ty(h){if(!h.attrType||h.attrType!=="attribute-pattern"||!h.attribute||!h.rules)return h.fillPattern||"";const d=h.rules.map(_=>[["==",["get",h.attribute],_.value],_.fillPattern||""]);return d.push(h.fillPattern||""),["case",...d.flat()]}function os(h,d="stroke",_="#ccc"){return["case",["boolean",["feature-state","hovered"],!1],"#ff0000",["boolean",["feature-state","selected"],!1],"#ff0000",h[d]||_]}function zx(h){const d=[{type:"fill",minzoom:h.pointZoom||0,paint:{"fill-color":za(h),"fill-outline-color":os(h,"stroke","#ccc"),"fill-opacity":h.opacity||1,...h.attrType==="attribute-pattern"&&{"fill-pattern":ty(h)},...h.fillPattern&&!h.attrType&&{"fill-pattern":h.fillPattern}}},{type:"line",paint:{"line-color":os(h,"stroke","#ccc"),"line-width":h.width||2,"line-opacity":h.lineOpacity||h.opacity||1}}];return h.pointZoom&&d.push({type:"circle",maxzoom:h.pointZoom,paint:{"circle-color":h.color||"#ccc","circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-opacity":h.opacity||1}}),d}function Bx(h){return[{type:"line",paint:{"line-color":os(h,"color",za(h)),"line-width":h.width||2,"line-opacity":h.opacity||1,...h.dashArray&&{"line-dasharray":h.dashArray}},layout:{...h.lineCap&&{"line-cap":h.lineCap},...h.lineJoin&&{"line-join":h.lineJoin}}}]}function Vx(h){const d=[{type:"circle",maxzoom:h.icon&&+h.iconZoom||22,paint:{"circle-radius":h.radius||6,"circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-color":za(h),"circle-opacity":h.opacity||1}}];return h!=null&&h.clusterZoom?(d.push({type:"circle",filter:["has","point_count"],paint:{"circle-color":["step",["get","point_count"],"#51bbd6",100,"#f1f075",750,"#f28cb1"],"circle-radius":["step",["get","point_count"],20,100,30,750,40]}}),d.push({type:"symbol",filter:["has","point_count"],layout:{"text-field":["get","point_count"],"text-font":["Open Sans Regular"],"text-size":12}})):h.icon&&d.push({type:"symbol",minzoom:+h.iconZoom||16,layout:{"icon-image":h.icon,"icon-allow-overlap":!0}}),d}function Fx(h,d,_){const w=h.type||"point";return w==="polygon"?[{type:"fill",..._!==void 0?{maxzoom:_}:{},paint:{"fill-color":za(h),"fill-outline-color":os(h,"stroke","#ccc"),"fill-opacity":h.opacity||1,...h.attrType==="attribute-pattern"&&{"fill-pattern":ty(h)},...h.fillPattern&&!h.attrType&&{"fill-pattern":h.fillPattern}}},{type:"line",..._!==void 0?{maxzoom:_}:{},paint:{"line-color":os(h,"stroke","#ccc"),"line-width":h.width||2,"line-opacity":h.lineOpacity||h.opacity||1}}]:w==="line"?[{type:"line",..._!==void 0?{maxzoom:_}:{},paint:{"line-color":os(h,"color",za(h)),"line-width":h.width||2,"line-opacity":h.opacity||1,...h.dashArray&&{"line-dasharray":h.dashArray}},layout:{...h.lineCap&&{"line-cap":h.lineCap},...h.lineJoin&&{"line-join":h.lineJoin}}}]:[{type:"circle",..._!==void 0?{maxzoom:_}:{},paint:{"circle-radius":h.radius||6,"circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-color":za(h),"circle-opacity":h.opacity||1}}]}function ry(h){var _,w;if(!h)return null;if(h.attrType==="icon-by-attribute"&&h.iconZoom){const T=Dx(h),P=Array.isArray(T)&&T[0]==="case"?T:["case",["==",["get",h.attribute],((w=(_=h.rules)==null?void 0:_[0])==null?void 0:w.value)||""],T,T],x=Fx(h,void 0,+h.iconZoom),s={type:"symbol",minzoom:+h.iconZoom,layout:{"icon-image":P,"icon-size":(h==null?void 0:h.icon_size)||1,"icon-allow-overlap":!0,"icon-anchor":(h==null?void 0:h.icon_anchor)||"bottom"},paint:{"icon-opacity":h.opacity||1}};return[...x,s]}const d=h.type||"point";return d==="polygon"?zx(h):d==="line"?Bx(h):Vx(h)}function Ox(h){return h.startsWith("http")?h:`${window.location.origin}${h}`}function Nx(h){const{id:d,sourceLayer:_,url:w,bounds:T,title:P,style:x,service:s,service_type:B,source_type:R,data:M}=h,F=Ox(w),L=B||s||R||"vector";switch(L){case"vtile":case"vector":return qx(d,_,F,T,P,x);case"raster":return Ux(d,F,T,P,x);case"geojson":return jx(d,M||F,T,P,x);default:throw new Error(`Unsupported layer service type: ${L}`)}}function iy(h){switch(h){case"polygon":return{type:"polygon",color:"#3388ff",opacity:.5};case"line":return{type:"line",color:"#3388ff",opacity:1};case"point":default:return{type:"point",color:"#3388ff",radius:6,opacity:1}}}function qx(h,d,_,w,T,P){const x=d||(_.match(/\/vtile\/([^/]+)/)||[])[1]||h,s={type:"vector",tiles:[_],...w&&{bounds:w}},B=P||iy("polygon"),M=ry(B).map((F,L)=>({...F,id:`${h}-${L}`,"source-layer":x,source:h}));return{id:h,title:T,source:s,layers:M,visible:!0}}function Ux(h,d,_,w,T){const P={type:"raster",tiles:[d],tileSize:256,..._&&{bounds:_}},x=T||{},s={id:h,type:"raster",source:h,layout:{visibility:"visible"},...x&&{paint:x}};return{id:h,title:w,source:P,layers:[s],visible:!0}}function jx(h,d,_,w,T){var M;const P={type:"geojson",data:d,..._&&{bounds:_}};let x="point";if(d&&d.features&&d.features.length>0){const F=(M=d.features[0].geometry)==null?void 0:M.type;F==="Polygon"||F==="MultiPolygon"?x="polygon":F==="LineString"||F==="MultiLineString"?x="line":x="point"}const s=T||iy(x),R=ry(s).map((F,L)=>({...F,id:`${h}-${L}`,source:h}));return{id:h,title:w,source:P,layers:R,visible:!0}}function Hx(h){if(!h||h.attrType!=="icon-by-attribute")return[];const d=new Set;return h.default_icon&&d.add(h.default_icon),Array.isArray(h.rules)&&h.rules.forEach(_=>{_.icon&&d.add(_.icon)}),Array.from(d).map(_=>({name:_,url:(h.icon_base_url||"")+_}))}function Wx(h){const d=new Set;function _(w){typeof w=="string"?d.add(w):Array.isArray(w)&&w.forEach(_)}return h&&h["icon-image"]&&_(h["icon-image"]),Array.from(d)}async function ny(h,d){const _=d.map(async({name:w,url:T})=>{const P=await h.loadImage(T);return{name:w,data:P.data}});try{const w=await Promise.all(_);for(const{name:T,data:P}of w)h.hasImage(T)||h.addImage(T,P)}catch(w){console.error("Failed to load icons:",w)}}function Zx(h,d,_="/icons/"){const T=Wx(d).map(P=>({name:P,url:_+P}));return ny(h,T)}async function Po(h,d){const _=Nx(d);console.log("layer",_);const w=Hx(d.style);w.length>0&&await ny(h,w),d.layout&&d.layout["icon-image"]&&await Zx(h,d.layout),h.getSource(_.id)||h.addSource(_.id,_.source);for(const T of _.layers)d.visible!==void 0&&(T.layout={...T.layout,visibility:d.visible?"visible":"none"}),h.getLayer(T.id)?h.setLayoutProperty(T.id,"visibility",d.visible?"visible":"none"):await h.addLayer(T);return _}function Da(h,d){h.getStyle().layers.filter(T=>T.source===d).forEach(T=>{h.removeLayer(T.id)}),h.getSource(d)&&h.removeSource(d)}const Kx={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative"},Gx={class:"flex flex-col justify-between h-full pb-5 px-5"},Jx={key:0,class:"relative mb-[10px]"},Xx={width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0px, -50%)"}},Qx={key:1,class:"mb-4"},Yx={class:""},$x={class:"space-y-2"},eb={class:"flex items-center gap-[10px] text-gray-500"},tb={class:"dataset-checkbox-container flex"},rb=["onUpdate:modelValue","onChange"],ib={class:"text-sm"},nb=["onClick"],sb=["innerHTML"],ob={key:0,class:"text-sm text-gray-500 text-center py-2"},ab={__name:"vs-layers-widget",props:{map:{type:Object,required:!0},history:{type:Boolean,default:!1},config:{type:Object,default:()=>({layers:[],search:!1,allow_toggle_all:!1})},position:{type:String,default:"bottom-left"},hasFilters:{type:Boolean,default:!1}},emits:["set-filter-layer","update:enabledLayerIds"],setup(h,{emit:d}){const _=h,w=d,T=y.ref("");y.computed(()=>ey(_.position));const P=y.ref([]);function x(){const C=new URLSearchParams(window.location.search).get("layers");return C?C.split(","):[]}function s(A){const C=new URLSearchParams(window.location.search);A.length>0?C.set("layers",A.join(",")):C.delete("layers");const H=`${window.location.pathname}?${C.toString()}`;window.history.replaceState({},"",H)}y.onMounted(()=>{let A=[];_.history&&(A=x()),A.length>0?P.value=_.config.layers.map(C=>({...C,visible:A.includes(String(C.id))})):P.value=_.config.layers.map(C=>({...C,visible:C.visible??!1})),P.value.forEach(C=>{C.visible&&Po(_.map,C)}),w("update:enabledLayerIds",M())});const B=y.computed(()=>{if(!T.value)return P.value;const A=T.value.toLowerCase();return P.value.filter(C=>(C.title||C.name||C.label||"").toLowerCase().includes(A))}),R=y.computed(()=>P.value.every(A=>A.visible)),M=()=>P.value.filter(A=>A.visible).map(A=>A.id),F=A=>{A.visible?Po(_.map,A):(Da(_.map,A.id),w("set-filter-layer",null)),_.map.getStyle().layers.filter(G=>G.source===A.id).forEach(G=>{_.map.setLayoutProperty(G.id,"visibility",A.visible?"visible":"none")}),w("update:enabledLayerIds",M())},L=()=>{const A=!R.value;P.value.forEach(C=>{C.visible=A,A?Po(_.map,C):Da(_.map,C.id)}),A||w("set-filter-layer",null),w("update:enabledLayerIds",M())};return y.watch(()=>M(),A=>{_.history&&s(A)},{deep:!0}),(A,C)=>(y.openBlock(),y.createElementBlock("div",Kx,[C[2]||(C[2]=y.createElementVNode("div",{class:"p-5 pb-3 flex justify-between items-center"},[y.createElementVNode("h2",{class:"inline-block font-semibold text-lg text-gray-800"},"Шари")],-1)),y.createElementVNode("div",Gx,[h.config.search?(y.openBlock(),y.createElementBlock("div",Jx,[y.withDirectives(y.createElementVNode("input",{type:"text","onUpdate:modelValue":C[0]||(C[0]=H=>T.value=H),placeholder:"Введіть назву шару...",class:"py-[7px] ps-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none"},null,512),[[y.vModelText,T.value]]),(y.openBlock(),y.createElementBlock("svg",Xx,C[1]||(C[1]=[y.createElementVNode("path",{d:"M7.33333 13.1667C10.2789 13.1667 12.6667 10.7789 12.6667 7.83333C12.6667 4.88781 10.2789 2.5 7.33333 2.5C4.38781 2.5 2 4.88781 2 7.83333C2 10.7789 4.38781 13.1667 7.33333 13.1667Z",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M13.9995 14.5L11.1328 11.6333",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])))])):y.createCommentVNode("",!0),h.config.allow_toggle_all?(y.openBlock(),y.createElementBlock("div",Qx,[y.createElementVNode("button",{onClick:L,class:"w-full py-[7px] bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors"},y.toDisplayString(R.value?"Вимкнути всі":"Увімкнути всі"),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",Yx,[y.createElementVNode("ul",$x,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(B.value,H=>(y.openBlock(),y.createElementBlock("li",{key:H.id,class:"flex flex-wrap justify-between items-center gap-x-2"},[y.createElementVNode("label",eb,[y.createElementVNode("span",tb,[y.withDirectives(y.createElementVNode("input",{class:"dataset-checkbox",type:"checkbox","onUpdate:modelValue":G=>H.visible=G,onChange:()=>F(H)},null,40,rb),[[y.vModelCheckbox,H.visible]])]),y.createElementVNode("span",ib,y.toDisplayString(H.title||H.name||H.label),1)]),H.actions&&H.visible?(y.openBlock(!0),y.createElementBlock(y.Fragment,{key:0},y.renderList(H.actions,G=>(y.openBlock(),y.createElementBlock("div",{key:G.id},[y.createElementVNode("button",{class:"text-sm text-gray-500",onClick:se=>A.$emit("show-widget",G.widget)},[y.createElementVNode("div",{innerHTML:G.icon},null,8,sb)],8,nb)]))),128)):y.createCommentVNode("",!0)]))),128)),T.value&&B.value.length===0?(y.openBlock(),y.createElementBlock("li",ob," Шарів не знайдено ")):y.createCommentVNode("",!0)])])])]))}},lb={class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative"},cb={key:0,class:"p-5 pb-3 flex justify-between items-start gap-[30px]"},ub={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},hb={class:"flex flex-col gap-1"},pb={class:"flex flex-col gap-1 p-5 pt-0"},db=["innerHTML"],fb={__name:"vs-info-widget",props:{config:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.title)||""}),w=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.content)||""}),T=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.goTo)||[]});return(P,x)=>{var R,M;const s=y.resolveComponent("VsPopover"),B=y.resolveComponent("router-link");return y.openBlock(),y.createElementBlock("div",lb,[_.value||(R=T.value)!=null&&R.length?(y.openBlock(),y.createElementBlock("div",cb,[y.createElementVNode("h2",ub,y.toDisplayString(_.value),1),(M=T.value)!=null&&M.length?(y.openBlock(),y.createBlock(s,{key:0,placement:"bottom"},{reference:y.withCtx(()=>[y.createVNode(s,{trigger:"hover",placement:"right"},{reference:y.withCtx(()=>x[0]||(x[0]=[y.createElementVNode("div",{class:"flex items-center justify-center h-8 w-8 transition-colors rounded-full hover:bg-gray-100 cursor-pointer"},[y.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[y.createElementVNode("path",{d:"M4 12H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M4 6H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M4 18H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)])),default:y.withCtx(()=>[x[1]||(x[1]=y.createTextVNode(" Перейти на карту "))]),_:1,__:[1]})]),default:y.withCtx(()=>[y.createElementVNode("div",hb,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.value,F=>(y.openBlock(),y.createElementBlock("div",{key:F.label},[F.url?(y.openBlock(),y.createBlock(B,{key:0,to:F.url,class:"text-sm text-gray-800 dark:text-neutral-200 hover:bg-gray-100 hover:text-blue-600 transition-colors rounded px-2 py-1 block"},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(F.label),1)]),_:2},1032,["to"])):y.createCommentVNode("",!0)]))),128))])]),_:1})):y.createCommentVNode("",!0)])):y.createCommentVNode("",!0),y.createElementVNode("div",pb,[y.createElementVNode("div",{innerHTML:w.value},null,8,db)])])}}},mb=Gt(fb,[["__scopeId","data-v-187a97ca"]]),gb={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative overflow-hidden"},yb={key:0,class:"p-5 pb-3 flex justify-between items-center"},_b={class:"inline-block font-semibold text-lg text-gray-800"},vb={key:1,class:"flex"},xb={class:"flex items-center mx-[8px]"},bb={class:"min-h-[34px] max-h-[34px] overflow-hidden min-w-[34px] flex justify-center items-center bg-stone-100 text-stone-800 py-2 px-3 text-sm rounded-lg"},wb={class:"min-h-[34px] flex justify-center items-center text-stone-500 py-2 px-1.5 text-sm"},Sb={class:"flex flex-col justify-between pb-5 px-5 h-full overflow-y-auto flex-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},Ab={key:0,class:"text-center"},kb={key:1,class:"text-red-500"},Tb={key:2},Cb=["innerHTML"],Eb={key:1,class:"flow-root"},Pb={class:"-my-3 divide-y divide-gray-100 text-sm"},Ib={class:"font-medium text-gray-900"},Mb={class:"text-gray-700 sm:col-span-2"},Lb={key:2,class:"vs-map-card-info__nodata"},sy={__name:"vs-card-widget",props:{config:{type:Object,required:!0},cardValues:{type:Object,required:!0}},emits:["close","content-resize"],setup(h,{emit:d}){const _=h,w=d,T=y.computed(()=>{var G;return((G=_.config)==null?void 0:G.title)||""}),P=y.ref([]),x=y.ref(!1),s=y.ref(null),B=y.ref(0),R=y.computed(()=>B.value+1),M=y.computed(()=>{var G;return((G=_.info)==null?void 0:G.length)||0}),F=y.computed(()=>P.value[B.value]),L=y.computed(()=>{if(!F.value)return{};const{rows:G,columns:se}=F.value;return!G||!se?{}:se.reduce((le,Ae)=>(!Ae.hide&&!["geom","geodata","id"].includes(Ae.name)&&(le[Ae.ua]=G[Ae.name]??"-"),le),{})});async function A(){var G,se,le;x.value=!0,s.value=null;try{const Ae={id:(G=_.cardValues)==null?void 0:G.id,layer:(se=_.cardValues)==null?void 0:se.layer,map:(le=_.cardValues)==null?void 0:le.map},te=await gr.get("/api/map-format",{params:Ae});P.value[B.value]=te.data}catch(Ae){s.value=(Ae==null?void 0:Ae.message)||"Помилка запиту"}finally{x.value=!1,await y.nextTick(),w("content-resize")}}function C(){B.value<_.info.length-1&&(B.value+=1,P.value[B.value]||A())}function H(){B.value>0&&(B.value-=1,P.value[B.value]||A())}return y.onMounted(async()=>{await y.nextTick(),A()}),y.watch(()=>_.info,()=>{B.value=0,A(),w("content-resize")},{deep:!0}),y.watch([()=>_.cardValues,()=>_.config],async()=>{await y.nextTick(),A(),w("content-resize")}),(G,se)=>{var le;return y.openBlock(),y.createElementBlock("div",gb,[T.value?(y.openBlock(),y.createElementBlock("div",yb,[y.createElementVNode("h2",_b,y.toDisplayString(T.value),1),y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600 ml-2",onClick:se[0]||(se[0]=Ae=>w("close"))},se[1]||(se[1]=[y.createElementVNode("svg",{class:"shrink-0 size-4 cursor-pointer",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[y.createElementVNode("path",{d:"M18 6 6 18"}),y.createElementVNode("path",{d:"m6 6 12 12"})],-1)]))])):y.createCommentVNode("",!0),M.value>1?(y.openBlock(),y.createElementBlock("div",vb,[y.createElementVNode("button",{type:"button",class:y.normalizeClass([{"opacity-flex items-center justify-between border-b px-[16px] py-[8px]50 pointer-events-none":R.value===1},"min-h-[34px] min-w-[34px] py-2 px-2.5 inline-flex justify-center items-center gap-x-2 text-sm rounded-lg text-stone-800 hover:bg-stone-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-100"]),onClick:H}," ◀ ",2),y.createElementVNode("div",xb,[y.createElementVNode("span",bb,y.toDisplayString(R.value),1),se[2]||(se[2]=y.createElementVNode("span",{class:"min-h-[34px] flex justify-center items-center text-stone-500 py-2 px-1.5 text-sm"},"з",-1)),y.createElementVNode("span",wb,y.toDisplayString(M.value),1)]),y.createElementVNode("button",{type:"button",onClick:C,class:y.normalizeClass([{"opacity-50 pointer-events-none":R.value===M.value},"min-h-[34px] min-w-[34px] py-2 px-2.5 inline-flex justify-center items-center gap-x-2 text-sm rounded-lg text-stone-800 hover:bg-stone-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-100"])}," ▶ ",2)])):y.createCommentVNode("",!0),y.createElementVNode("div",Sb,[x.value?(y.openBlock(),y.createElementBlock("div",Ab,"Завантаження даних...")):s.value?(y.openBlock(),y.createElementBlock("div",kb,"Помилка завантаження даних")):(y.openBlock(),y.createElementBlock("div",Tb,[(le=F.value)!=null&&le.html?(y.openBlock(),y.createElementBlock("div",{key:0,innerHTML:F.value.html,class:"custom-table-html border-b"},null,8,Cb)):Object.keys(L.value).length?(y.openBlock(),y.createElementBlock("div",Eb,[y.createElementVNode("dl",Pb,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(L.value,(Ae,te)=>(y.openBlock(),y.createElementBlock("div",{key:te,class:"grid grid-cols-1 gap-1 py-3 even:bg-gray-50 sm:grid-cols-3 sm:gap-4"},[y.createElementVNode("dt",Ib,y.toDisplayString(te),1),y.createElementVNode("dd",Mb,y.toDisplayString(Ae),1)]))),128))])])):(y.openBlock(),y.createElementBlock("div",Lb,"Даних не знайдено."))]))])])}}},Rb={class:"size-full flex flex-col bg-white border border-gray-200 shadow-2xs rounded-xl dark:bg-neutral-800 dark:border-neutral-700"},Db={key:0,class:"p-5 pb-0 items-center"},zb={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},Bb={class:"h-full p-5"},Vb={class:"h-full flex flex-col justify-between space-y-4"},Fb={class:"space-y-4"},Ob={key:0,class:"flex gap-x-1 w-full h-2.5 rounded-full overflow-hidden"},Nb=["aria-valuenow"],qb={class:"text-sm text-gray-500 px-2 w-full py-2 cursor-pointer !flex flex-row items-center rounded-lg group hover:bg-gray-100"},Ub=["for"],jb={key:0,width:"16",height:"auto",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J3doaXRlJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J00xMi4yMDcgNC43OTNhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMGwtMi0yYTEgMSAwIDAxMS40MTQtMS40MTRMNi41IDkuMDg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHonLz48L3N2Zz4="},Hb=["id","onUpdate:modelValue"],Wb={class:"ms-2 text-gray-800 dark:text-neutral-200"},Zb={key:0,class:"ms-auto text-xs text-gray-500 dark:text-neutral-500"},Kb={__name:"vs-attributre-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var B;return((B=d.config)==null?void 0:B.title)||""}),w=y.ref([]),T=y.computed(()=>d.config.layer.style.rules.some(B=>B.count!==void 0)),P=y.computed(()=>d.config.layer.style.rules.reduce((B,R)=>B+(R.count||0),0)),x=B=>!B||P.value===0?0:Math.round(B/P.value*100),s=()=>{const R=d.config.layer.style.rules.filter((M,F)=>w.value[F]).map(M=>M.id||M.value).join(",");if(d.config.layer.id){const M=d.map.getSource(d.config.layer.id);if(M){const L=M.tiles[0].split("?filter=")[0],A=R?`${L}?filter=${d.config.layer.style.attribute}=${R}`:L;M.setTiles([A])}}};return y.onMounted(()=>{var B;(B=d.config)!=null&&B.layer&&(Po(d.map,d.config.layer),w.value=new Array(d.config.layer.style.rules.length).fill(!1))}),(B,R)=>(y.openBlock(),y.createElementBlock("div",Rb,[_.value?(y.openBlock(),y.createElementBlock("div",Db,[y.createElementVNode("div",null,[y.createElementVNode("h2",zb,y.toDisplayString(_.value),1)])])):y.createCommentVNode("",!0),y.createElementVNode("div",Bb,[y.createElementVNode("div",Vb,[y.createElementVNode("div",Fb,[T.value?(y.openBlock(),y.createElementBlock("div",Ob,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(h.config.layer.style.rules,(M,F)=>(y.openBlock(),y.createElementBlock("div",{key:F,class:"flex flex-col justify-center overflow-hidden text-xs text-white text-center whitespace-nowrap",style:y.normalizeStyle({width:`${x(M.count)}%`,backgroundColor:M.color}),role:"progressbar","aria-valuenow":x(M.count),"aria-valuemin":"0","aria-valuemax":"100"},null,12,Nb))),128))])):y.createCommentVNode("",!0),y.createElementVNode("ul",null,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(h.config.layer.style.rules,(M,F)=>(y.openBlock(),y.createElementBlock("li",{key:F},[y.createElementVNode("div",qb,[y.createElementVNode("label",{for:`filter-${F}`,class:"flex items-center w-full cursor-pointer"},[y.createElementVNode("div",{class:"w-[18px] h-[18px] border rounded-[4px] flex items-center justify-center",style:y.normalizeStyle({background:w.value[F]?M.color||"#2563eb":"#fff",borderColor:w.value[F]?M.color||"#2563eb":M.color||"#d9d9d9"})},[w.value[F]?(y.openBlock(),y.createElementBlock("img",jb)):y.createCommentVNode("",!0)],4),y.withDirectives(y.createElementVNode("input",{type:"checkbox",id:`filter-${F}`,"onUpdate:modelValue":L=>w.value[F]=L,onChange:s,class:"hidden",disabled:!1},null,40,Hb),[[y.vModelCheckbox,w.value[F]]]),y.createElementVNode("span",Wb,y.toDisplayString(M.label||M.text),1),T.value?(y.openBlock(),y.createElementBlock("span",Zb,"("+y.toDisplayString(M.count)+")",1)):y.createCommentVNode("",!0)],8,Ub)])]))),128))])])])])]))}},Gb={class:"hover:bg-gray-100 rounded-lg flex items-center ml-[20px] py-[8px] px-[8px]"},Jb=["for"],Xb={class:"custom-checkbox-wrapper"},Qb=["id","checked"],Yb={class:"custom-checkbox"},$b={key:0,xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},e1={class:"flex items-center justify-between ml-2 w-full"},t1=["title"],r1={key:0,class:"text-xs opacity-60 text-[#4b5563]"},i1={__name:"vs-map-catalog-item",props:{layer:{type:Object,required:!0},map:{type:Object,default:()=>null},selectedLayers:{type:Array,default:()=>[]}},emits:["select","remove"],setup(h,{emit:d}){const _=h,w=d,T=y.computed(()=>_.selectedLayers.some(s=>s.id===_.layer.id)),P=s=>Intl.NumberFormat("uk",{notation:"compact"}).format(s),x=s=>{w(s?"select":"remove",_.layer)};return(s,B)=>{var R,M,F,L,A;return y.openBlock(),y.createElementBlock("div",Gb,[y.createElementVNode("label",{class:"flex items-center w-full cursor-pointer",for:h.layer.id},[y.createElementVNode("div",Xb,[y.createElementVNode("input",{id:h.layer.id,type:"checkbox",checked:T.value,onChange:B[0]||(B[0]=C=>x(C.target.checked)),class:"custom-checkbox-input"},null,40,Qb),y.createElementVNode("div",Yb,[T.value?(y.openBlock(),y.createElementBlock("svg",$b,B[1]||(B[1]=[y.createElementVNode("path",{d:"M10.6663 1L4.24967 7.41667L1.33301 4.5",stroke:"#fff","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))):y.createCommentVNode("",!0)])]),y.createElementVNode("div",e1,[y.createElementVNode("div",{class:"whitespace-nowrap text text-ellipsis max-w-[260px] overflow-hidden text-[13px] text-[#4b5563]",title:(R=h.layer)==null?void 0:R.name},y.toDisplayString(((M=h.layer)==null?void 0:M.name)||((F=h.layer)==null?void 0:F.title)),9,t1),isNaN(P((L=h.layer)==null?void 0:L.count))?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",r1,y.toDisplayString(P((A=h.layer)==null?void 0:A.count)),1))])],8,Jb)])}}},n1=Gt(i1,[["__scopeId","data-v-b96f3537"]]),s1={},o1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-zoom-in"};function a1(h,d){return y.openBlock(),y.createElementBlock("svg",o1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"11",cy:"11",r:"8"},null,-1),y.createElementVNode("line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65"},null,-1),y.createElementVNode("line",{x1:"11",x2:"11",y1:"8",y2:"14"},null,-1),y.createElementVNode("line",{x1:"8",x2:"14",y1:"11",y2:"11"},null,-1)]))}const l1=Gt(s1,[["render",a1]]),c1={},u1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-info"};function h1(h,d){return y.openBlock(),y.createElementBlock("svg",u1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),y.createElementVNode("path",{d:"M12 16v-4"},null,-1),y.createElementVNode("path",{d:"M12 8h.01"},null,-1)]))}const p1=Gt(c1,[["render",h1]]),d1={},f1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-table"};function m1(h,d){return y.openBlock(),y.createElementBlock("svg",f1,d[0]||(d[0]=[y.createElementVNode("path",{d:"M12 3v18"},null,-1),y.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"},null,-1),y.createElementVNode("path",{d:"M3 9h18"},null,-1),y.createElementVNode("path",{d:"M3 15h18"},null,-1)]))}const g1=Gt(d1,[["render",m1]]),y1={},_1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-trash2"};function v1(h,d){return y.openBlock(),y.createElementBlock("svg",_1,d[0]||(d[0]=[y.createStaticVNode('<path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line>',5)]))}const x1=Gt(y1,[["render",v1]]),b1={},w1={xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-more-vertical text-gray-600"};function S1(h,d){return y.openBlock(),y.createElementBlock("svg",w1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"12",cy:"12",r:"1"},null,-1),y.createElementVNode("circle",{cx:"12",cy:"5",r:"1"},null,-1),y.createElementVNode("circle",{cx:"12",cy:"19",r:"1"},null,-1)]))}const A1=Gt(b1,[["render",S1]]),k1={},T1={width:"6",height:"10",viewBox:"0 0 6 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function C1(h,d){return y.openBlock(),y.createElementBlock("svg",T1,d[0]||(d[0]=[y.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const E1=Gt(k1,[["render",C1]]);function P1(){const d=new URLSearchParams(window.location.search).get("layers");return d?d.split(","):[]}function I1(h){const d=new URLSearchParams(window.location.search);h.length>0?d.set("layers",h.join(",")):d.delete("layers");const _=`${window.location.pathname}?${d.toString()}`;window.history.replaceState({},"",_)}const M1={components:{VsLayersItem:n1,ZoomInIcon:l1,InfoIcon:p1,TableIcon:g1,TrashIcon:x1,DotsIcon:A1,ChevronRightIcon:E1},props:{center:{type:Array,default:()=>[26.2516,50.6199]},zoom:{type:Number,default:12},map:{type:Object,default:()=>null},history:{type:Boolean,default:!1}},emits:["content-resize"],data(){return{layers:null,rawCatalog:null,categories:null,selectedCategory:"",search:"",activeView:"catalog",selectedLayers:[],mounted:!1,draggedLayerIndex:null}},computed:{searchedLayers(){return this.layers.filter(({name:h})=>h==null?void 0:h.toLowerCase().match(this.search.toLowerCase()))}},async mounted(){if(this.mounted=!0,await this.getLayers(),this.categories=this.layersCategories(),this.history){const h=P1();h.length>0&&this.layers&&(h.forEach(d=>{const _=this.layers.find(w=>String(w.id)===d);if(_&&!this.selectedLayers.find(w=>w.id===_.id)){const w={..._,visible:!0,opacity:100};this.selectedLayers.push(w),Po(this.map,w)}}),this.activeView="selected")}this._resizeObserver=new window.ResizeObserver(()=>{this.$emit("content-resize")}),this.$nextTick(()=>{const h=this.$el;h&&this._resizeObserver.observe(h)})},beforeUnmount(){this._resizeObserver&&this._resizeObserver.disconnect()},watch:{selectedLayers:{handler(h){this.history&&I1(h.map(d=>d.id))},deep:!0}},methods:{async getLayers(){try{const h=await gr.get("/api/map-catalog"),d=(h.data.services||[]).filter(_=>_.service_type!=="other");this.layers=[...d,...h.data.rasters||[]],this.rawCatalog={...h.data,services:d}}catch(h){console.error("Помилка завантаження шарів:",h)}},layersCategories(){return this.rawCatalog?{Сервіси:this.rawCatalog.services||[],Растри:this.rawCatalog.rasters||[]}:{}},selectCategory(h){this.selectedCategory=this.selectedCategory===h?"":h},formatNumber(h){return Intl.NumberFormat("uk",{notation:"compact"}).format(h)},onEnter(){this.layers.filter(({name:h})=>h==null?void 0:h.toLowerCase().match(this.search.toLowerCase()))},clearSearch(){this.search=""},addToSelected(h){if(!this.selectedLayers.find(d=>d.id===h.id)){const d={...h,visible:!0,opacity:100};this.selectedLayers.unshift(d),Po(this.map,d)}},deleteLayer(h){const d=this.selectedLayers.findIndex(_=>_.id===h.id);d!==-1&&this.selectedLayers.splice(d,1),Da(this.map,h.id)},async toggleLayerVisibility(h){try{h.visible?(await Po(this.map,h),this.updateLayerOpacity(h)):await Da(this.map,h.id)}catch(d){console.error("Error toggling layer visibility:",d),h.visible=!h.visible}},onLayerOpacityChange(h){this.updateLayerOpacity(h)},updateLayerOpacity(h){if(this.map){const d=this.map.getStyle().layers.filter(w=>w.id.includes(h.id)),_=h.opacity/100;d.forEach(w=>{w.type==="fill"?(h.originalFillOpacity||(h.originalFillOpacity=this.map.getPaintProperty(w.id,"fill-opacity")||1),this.map.setPaintProperty(w.id,"fill-opacity",h.originalFillOpacity*_)):w.type==="raster"?this.map.setPaintProperty(w.id,"raster-opacity",_):w.type==="line"?this.map.setPaintProperty(w.id,"line-opacity",_):w.type==="circle"?(this.map.setPaintProperty(w.id,"circle-opacity",_),this.map.setPaintProperty(w.id,"circle-stroke-opacity",_)):w.type==="symbol"&&(this.map.setPaintProperty(w.id,"icon-opacity",_),this.map.setPaintProperty(w.id,"text-opacity",_))})}},async handleRemoveFromCatalog(h){const d=this.selectedLayers.find(_=>_.id===h.id);d!=null&&d.visible&&await Da(this.map,h.id),this.deleteLayer(h)},clearSelectedLayers(){this.selectedLayers.forEach(async h=>{h.visible&&await Da(this.map,h.id)}),this.selectedLayers=[]},zoomToLayer(h){this.fitBoundsByLayer(h)},showLayerInfo(h){},showLayerTable(h){},fitBoundsByLayer(h){h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4&&this.map&&this.map.fitBounds([[h.bbox[0],h.bbox[1]],[h.bbox[2],h.bbox[3]]],{padding:50,duration:0})},popoverActions(h){return[{label:"Збільшити до шару",icon:"ZoomInIcon",class:h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4?"text-gray-700 hover:bg-gray-100":"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"zoomToLayer",disabled:!(h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4)},{label:"Інформація про шар",icon:"InfoIcon",class:"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"showLayerInfo",disabled:!0},{label:"Таблиця шару",icon:"TableIcon",class:"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"showLayerTable",disabled:!0},{divider:!0},{label:"Видалити шар",icon:"TrashIcon",class:"text-red-600 hover:bg-red-50",handler:"deleteLayer",disabled:!1}]},onDragStart(h){this.draggedLayerIndex=h},onDragOver(h){},onDrop(h){if(this.draggedLayerIndex===null||this.draggedLayerIndex===h)return;const d=this.selectedLayers[this.draggedLayerIndex];if(this.selectedLayers.splice(this.draggedLayerIndex,1),this.selectedLayers.splice(h,0,d),this.draggedLayerIndex=null,this.map&&this.selectedLayers.length>1)for(let _=this.selectedLayers.length-1;_>=0;_--){const w=this.selectedLayers[_];w.visible&&this.map.getStyle().layers.find(T=>T.id.includes(w.id))&&this.map.getStyle().layers.forEach(T=>{T.id.includes(w.id)&&this.map.moveLayer(T.id)})}},onDragEnd(){this.draggedLayerIndex=null}}},L1={class:"w-full max-w-md mx-auto p-4 bg-white border border-gray-200 rounded-lg shadow-sm"},R1={class:"flex items-center justify-between mb-4"},D1={class:"flex items-center gap-2"},z1={class:"text-lg font-semibold text-gray-800"},B1={key:0},V1={key:1},F1={class:"flex mb-4 border-b border-gray-200"},O1={key:0},N1={class:"mb-4"},q1={key:0,class:"space-y-2 max-h-[400px] overflow-y-auto pr-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},U1=["onDragstart","onDragover","onDrop"],j1={class:"flex items-center justify-between"},H1={class:"flex items-center gap-2 cursor-move"},W1=["onUpdate:modelValue","onChange"],Z1={class:"text-gray-800 font-medium"},K1={class:"flex items-center gap-2"},G1={class:"relative"},J1={class:"flex items-center gap-2"},X1=["onUpdate:modelValue","onInput"],Q1={class:"text-xs text-gray-600 whitespace-nowrap"},Y1=["onClick"],$1={class:"relative"},e2={class:"w-48"},t2={key:0,class:"my-1 border-gray-200"},r2=["disabled","onClick"],i2={class:"p-1 rounded-full hover:bg-gray-100 transition-colors","aria-label":"Layer actions"},n2={key:0,class:"text-center text-[14px] text-[#4b5563]"},s2={class:"relative mt-[10px]"},o2={class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"},width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a2={key:0,class:"vs-layers-catalog__list flex-1 scrollable-container overflow-auto mt-2 catalog-list"},l2={key:0,class:"text-center text-[14px] text-[#4b5563]"},c2={key:0,class:"text-center text-[14px] text-[#4b5563]"},u2=["onClick"],h2={class:"flex items-center gap-x-3"},p2=["title"],d2={class:"text-xs opacity-60 text-[#4b5563]"};function f2(h,d,_,w,T,P){var L;const x=y.resolveComponent("VsPopover"),s=y.resolveComponent("DotsIcon"),B=y.resolveComponent("searchIcon"),R=y.resolveComponent("closeIcon"),M=y.resolveComponent("VsLayersItem"),F=y.resolveComponent("chevronRightIcon");return y.openBlock(),y.createElementBlock("div",L1,[y.createElementVNode("div",R1,[y.createElementVNode("div",D1,[d[7]||(d[7]=y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-layers text-blue-600"},[y.createElementVNode("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"}),y.createElementVNode("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"}),y.createElementVNode("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"})],-1)),y.createElementVNode("h2",z1,[y.createTextVNode(y.toDisplayString(T.activeView==="catalog"?"Каталог":"Вибрані шари")+" ",1),T.activeView==="catalog"?(y.openBlock(),y.createElementBlock("span",B1,"("+y.toDisplayString(((L=T.layers)==null?void 0:L.length)||0)+")",1)):(y.openBlock(),y.createElementBlock("span",V1,"("+y.toDisplayString(T.selectedLayers.length)+")",1))])]),y.createElementVNode("button",{class:"p-1 rounded-full hover:bg-gray-200 transition-colors","aria-label":"Reset layers",onClick:d[0]||(d[0]=(...A)=>P.clearSelectedLayers&&P.clearSelectedLayers(...A))},d[8]||(d[8]=[y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-gray-600" data-v-29516a2c><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" data-v-29516a2c></path><path d="M21 3v5h-5" data-v-29516a2c></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" data-v-29516a2c></path><path d="M8 16H3v5" data-v-29516a2c></path></svg>',1)]))]),y.createElementVNode("div",F1,[y.createElementVNode("button",{class:y.normalizeClass(["px-4 py-2 text-sm font-medium",T.activeView==="catalog"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"]),onClick:d[1]||(d[1]=A=>T.activeView="catalog")}," Каталог ",2),y.createElementVNode("button",{class:y.normalizeClass(["px-4 py-2 text-sm font-medium",T.activeView==="selected"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"]),onClick:d[2]||(d[2]=A=>T.activeView="selected")}," Вибрані шари ",2)]),T.activeView==="selected"?(y.openBlock(),y.createElementBlock("div",O1,[y.createElementVNode("div",N1,[y.createElementVNode("button",{class:"flex items-center gap-2 text-blue-600 hover:text-blue-700 transition-colors px-3 py-2 rounded-md bg-blue-50 hover:bg-blue-100 w-full justify-center",onClick:d[3]||(d[3]=A=>T.activeView="catalog")},d[9]||(d[9]=[y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-plus"},[y.createElementVNode("path",{d:"M5 12h14"}),y.createElementVNode("path",{d:"M12 5v14"})],-1),y.createElementVNode("span",null,"Вибрати шар",-1)]))]),T.mounted?(y.openBlock(),y.createElementBlock("div",q1,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.selectedLayers,(A,C)=>(y.openBlock(),y.createElementBlock("div",{key:A.id||C,class:y.normalizeClass(["border border-gray-200 rounded-md p-3 mb-2 bg-white shadow-sm",{dragging:T.draggedLayerIndex===C}]),draggable:"true",onDragstart:H=>P.onDragStart(C),onDragover:y.withModifiers(H=>P.onDragOver(C),["prevent"]),onDrop:H=>P.onDrop(C),onDragend:d[4]||(d[4]=(...H)=>P.onDragEnd&&P.onDragEnd(...H))},[y.createElementVNode("div",j1,[y.createElementVNode("div",H1,[d[10]||(d[10]=y.createStaticVNode('<svg width="16" height="16" fill="none" stroke="#9ca3af" stroke-width="2" viewBox="0 0 24 24" class="mr-1 shrink-0" data-v-29516a2c><circle cx="5" cy="5" r="1.5" data-v-29516a2c></circle><circle cx="5" cy="12" r="1.5" data-v-29516a2c></circle><circle cx="5" cy="19" r="1.5" data-v-29516a2c></circle><circle cx="12" cy="5" r="1.5" data-v-29516a2c></circle><circle cx="12" cy="12" r="1.5" data-v-29516a2c></circle><circle cx="12" cy="19" r="1.5" data-v-29516a2c></circle><circle cx="19" cy="5" r="1.5" data-v-29516a2c></circle><circle cx="19" cy="12" r="1.5" data-v-29516a2c></circle><circle cx="19" cy="19" r="1.5" data-v-29516a2c></circle></svg>',1)),y.withDirectives(y.createElementVNode("input",{type:"checkbox",class:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500","onUpdate:modelValue":H=>A.visible=H,onChange:H=>P.toggleLayerVisibility(A)},null,40,W1),[[y.vModelCheckbox,A.visible]]),y.createElementVNode("span",Z1,y.toDisplayString(A.name||A.title||A.label),1)]),y.createElementVNode("div",K1,[y.createElementVNode("div",G1,[y.createVNode(x,{placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:"text-sm text-gray-600 hover:text-gray-800 transition-colors px-2 py-1 rounded hover:bg-gray-100 cursor-pointer",onClick:H=>P.updateLayerOpacity(A)},y.toDisplayString(A.opacity||100)+"% ",9,Y1)]),default:y.withCtx(()=>[y.createElementVNode("div",J1,[d[11]||(d[11]=y.createElementVNode("label",{class:"text-gray-600 whitespace-nowrap"},"Прозорість:",-1)),y.withDirectives(y.createElementVNode("input",{type:"range",min:"0",max:"100",step:"1","onUpdate:modelValue":H=>A.opacity=H,onInput:H=>P.onLayerOpacityChange(A),class:"h-2 w-full accent-blue-600 rounded-lg cursor-pointer bg-gray-200"},null,40,X1),[[y.vModelText,A.opacity]]),y.createElementVNode("span",Q1,y.toDisplayString(Math.round(A.opacity))+"% ",1)])]),_:2},1024)]),y.createElementVNode("div",$1,[y.createVNode(x,{placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("div",i2,[y.createVNode(s)])]),default:y.withCtx(()=>[y.createElementVNode("div",e2,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.popoverActions(A),(H,G)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:G},[H.divider?(y.openBlock(),y.createElementBlock("hr",t2)):(y.openBlock(),y.createElementBlock("button",{key:1,class:y.normalizeClass("w-full p-2 text-left text-sm flex items-center gap-2 "+(H.class||"")),disabled:H.disabled,onClick:se=>!H.disabled&&h.$options.methods[H.handler].call(this,A)},[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(H.icon),{class:"lucide"})),y.createTextVNode(" "+y.toDisplayString(H.label),1)],10,r2))],64))),128))])]),_:2},1024)])])])],42,U1))),128)),T.selectedLayers.length===0?(y.openBlock(),y.createElementBlock("div",n2,d[12]||(d[12]=[y.createElementVNode("p",null,'Щоб додати шар, натисніть на кнопку "Вибрати шар".',-1)]))):y.createCommentVNode("",!0)])):y.createCommentVNode("",!0)])):(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createElementVNode("div",s2,[(y.openBlock(),y.createElementBlock("svg",o2,d[13]||(d[13]=[y.createElementVNode("path",{d:"M7.33333 13.1667C10.2789 13.1667 12.6667 10.7789 12.6667 7.83333C12.6667 4.88781 10.2789 2.5 7.33333 2.5C4.38781 2.5 2 4.88781 2 7.83333C2 10.7789 4.38781 13.1667 7.33333 13.1667Z",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M13.9995 14.5L11.1328 11.6333",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))),y.withDirectives(y.createElementVNode("input",{title:"value",placeholder:"Введіть назву шару...","onUpdate:modelValue":d[5]||(d[5]=A=>T.search=A),type:"text",class:"py-[7px] ps-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:bg-neutral-800 dark:focus:ring-neutral-600",onKeyup:d[6]||(d[6]=y.withKeys((...A)=>P.onEnter&&P.onEnter(...A),["enter"]))},null,544),[[y.vModelText,T.search]]),y.createVNode(B,{class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"}}),T.search?(y.openBlock(),y.createBlock(R,{key:0,class:"absolute top-1/2 right-[10px] w-[16px] h-[16px] cursor-pointer",style:{transform:"translate(0, -50%)"},onClick:P.clearSearch},null,8,["onClick"])):y.createCommentVNode("",!0)]),T.categories?(y.openBlock(),y.createElementBlock("div",a2,[T.search?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.searchedLayers,(A,C)=>(y.openBlock(),y.createBlock(M,{key:C,layer:A,map:_.map,selectedLayers:T.selectedLayers,onSelect:P.addToSelected,onRemove:P.handleRemoveFromCatalog},null,8,["layer","map","selectedLayers","onSelect","onRemove"]))),128)),P.searchedLayers.length===0?(y.openBlock(),y.createElementBlock("div",l2," Нічого не знайдено ")):y.createCommentVNode("",!0)],64)):(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[!T.categories||Object.keys(T.categories).length===0?(y.openBlock(),y.createElementBlock("div",c2," Каталог порожній ")):(y.openBlock(!0),y.createElementBlock(y.Fragment,{key:1},y.renderList(Object.keys(T.categories),A=>(y.openBlock(),y.createElementBlock("div",{key:A},[y.createElementVNode("div",{class:"hover:bg-gray-100 focus:bg-gray-100 px-2.5 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:C=>P.selectCategory(A)},[y.createElementVNode("div",h2,[y.createVNode(F,{class:y.normalizeClass({"rotate-up":A===T.selectedCategory,"rotate-down":A!==T.selectedCategory})},null,8,["class"]),y.createElementVNode("div",{class:"max-w-[260px] text-[14px] text-[#4b5563]",title:A},y.toDisplayString(A),9,p2)]),y.createElementVNode("div",d2,y.toDisplayString(P.formatNumber(T.categories[A].length)),1)],8,u2),y.withDirectives(y.createElementVNode("div",null,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.categories[A],(C,H)=>(y.openBlock(),y.createBlock(M,{key:H,layer:C,map:_.map,selectedLayers:T.selectedLayers,onSelect:P.addToSelected,onRemove:P.handleRemoveFromCatalog},null,8,["layer","map","selectedLayers","onSelect","onRemove"]))),128))],512),[[y.vShow,A===T.selectedCategory]])]))),128))],64))])):y.createCommentVNode("",!0)],64))])}const m2=Gt(M1,[["render",f2],["__scopeId","data-v-29516a2c"]]);var vu={exports:{}},xu={exports:{}},vn={},Oi={},bm;function Ui(){if(bm)return Oi;bm=1,Oi.__esModule=!0,Oi.extend=T,Oi.indexOf=B,Oi.escapeExpression=R,Oi.isEmpty=M,Oi.createFrame=F,Oi.blockParams=L,Oi.appendContextPath=A;var h={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},d=/[&<>"'`=]/g,_=/[&<>"'`=]/;function w(C){return h[C]}function T(C){for(var H=1;H<arguments.length;H++)for(var G in arguments[H])Object.prototype.hasOwnProperty.call(arguments[H],G)&&(C[G]=arguments[H][G]);return C}var P=Object.prototype.toString;Oi.toString=P;var x=function(H){return typeof H=="function"};x(/x/)&&(Oi.isFunction=x=function(C){return typeof C=="function"&&P.call(C)==="[object Function]"}),Oi.isFunction=x;var s=Array.isArray||function(C){return C&&typeof C=="object"?P.call(C)==="[object Array]":!1};Oi.isArray=s;function B(C,H){for(var G=0,se=C.length;G<se;G++)if(C[G]===H)return G;return-1}function R(C){if(typeof C!="string"){if(C&&C.toHTML)return C.toHTML();if(C==null)return"";if(!C)return C+"";C=""+C}return _.test(C)?C.replace(d,w):C}function M(C){return!C&&C!==0?!0:!!(s(C)&&C.length===0)}function F(C){var H=T({},C);return H._parent=C,H}function L(C,H){return C.path=H,C}function A(C,H){return(C?C+".":"")+H}return Oi}var bu={exports:{}},wm;function bn(){return wm||(wm=1,function(h,d){d.__esModule=!0;var _=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function w(T,P){var x=P&&P.loc,s=void 0,B=void 0,R=void 0,M=void 0;x&&(s=x.start.line,B=x.end.line,R=x.start.column,M=x.end.column,T+=" - "+s+":"+R);for(var F=Error.prototype.constructor.call(this,T),L=0;L<_.length;L++)this[_[L]]=F[_[L]];Error.captureStackTrace&&Error.captureStackTrace(this,w);try{x&&(this.lineNumber=s,this.endLineNumber=B,Object.defineProperty?(Object.defineProperty(this,"column",{value:R,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:M,enumerable:!0})):(this.column=R,this.endColumn=M))}catch{}}w.prototype=new Error,d.default=w,h.exports=d.default}(bu,bu.exports)),bu.exports}var Ql={},wu={exports:{}},Sm;function g2(){return Sm||(Sm=1,function(h,d){d.__esModule=!0;var _=Ui();d.default=function(w){w.registerHelper("blockHelperMissing",function(T,P){var x=P.inverse,s=P.fn;if(T===!0)return s(this);if(T===!1||T==null)return x(this);if(_.isArray(T))return T.length>0?(P.ids&&(P.ids=[P.name]),w.helpers.each(T,P)):x(this);if(P.data&&P.ids){var B=_.createFrame(P.data);B.contextPath=_.appendContextPath(P.data.contextPath,P.name),P={data:B}}return s(T,P)})},h.exports=d.default}(wu,wu.exports)),wu.exports}var Su={exports:{}},Am;function y2(){return Am||(Am=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),T=bn(),P=_(T);d.default=function(x){x.registerHelper("each",function(s,B){if(!B)throw new P.default("Must pass iterator to #each");var R=B.fn,M=B.inverse,F=0,L="",A=void 0,C=void 0;B.data&&B.ids&&(C=w.appendContextPath(B.data.contextPath,B.ids[0])+"."),w.isFunction(s)&&(s=s.call(this)),B.data&&(A=w.createFrame(B.data));function H(te,de,Ce){A&&(A.key=te,A.index=de,A.first=de===0,A.last=!!Ce,C&&(A.contextPath=C+te)),L=L+R(s[te],{data:A,blockParams:w.blockParams([s[te],te],[C+te,null])})}if(s&&typeof s=="object")if(w.isArray(s))for(var G=s.length;F<G;F++)F in s&&H(F,F,F===s.length-1);else if(typeof Symbol=="function"&&s[Symbol.iterator]){for(var se=[],le=s[Symbol.iterator](),Ae=le.next();!Ae.done;Ae=le.next())se.push(Ae.value);s=se;for(var G=s.length;F<G;F++)H(F,F,F===s.length-1)}else(function(){var te=void 0;Object.keys(s).forEach(function(de){te!==void 0&&H(te,F-1),te=de,F++}),te!==void 0&&H(te,F-1,!0)})();return F===0&&(L=M(this)),L})},h.exports=d.default}(Su,Su.exports)),Su.exports}var Au={exports:{}},km;function _2(){return km||(km=1,function(h,d){d.__esModule=!0;function _(P){return P&&P.__esModule?P:{default:P}}var w=bn(),T=_(w);d.default=function(P){P.registerHelper("helperMissing",function(){if(arguments.length!==1)throw new T.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},h.exports=d.default}(Au,Au.exports)),Au.exports}var ku={exports:{}},Tm;function v2(){return Tm||(Tm=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),T=bn(),P=_(T);d.default=function(x){x.registerHelper("if",function(s,B){if(arguments.length!=2)throw new P.default("#if requires exactly one argument");return w.isFunction(s)&&(s=s.call(this)),!B.hash.includeZero&&!s||w.isEmpty(s)?B.inverse(this):B.fn(this)}),x.registerHelper("unless",function(s,B){if(arguments.length!=2)throw new P.default("#unless requires exactly one argument");return x.helpers.if.call(this,s,{fn:B.inverse,inverse:B.fn,hash:B.hash})})},h.exports=d.default}(ku,ku.exports)),ku.exports}var Tu={exports:{}},Cm;function x2(){return Cm||(Cm=1,function(h,d){d.__esModule=!0,d.default=function(_){_.registerHelper("log",function(){for(var w=[void 0],T=arguments[arguments.length-1],P=0;P<arguments.length-1;P++)w.push(arguments[P]);var x=1;T.hash.level!=null?x=T.hash.level:T.data&&T.data.level!=null&&(x=T.data.level),w[0]=x,_.log.apply(_,w)})},h.exports=d.default}(Tu,Tu.exports)),Tu.exports}var Cu={exports:{}},Em;function b2(){return Em||(Em=1,function(h,d){d.__esModule=!0,d.default=function(_){_.registerHelper("lookup",function(w,T,P){return w&&P.lookupProperty(w,T)})},h.exports=d.default}(Cu,Cu.exports)),Cu.exports}var Eu={exports:{}},Pm;function w2(){return Pm||(Pm=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),T=bn(),P=_(T);d.default=function(x){x.registerHelper("with",function(s,B){if(arguments.length!=2)throw new P.default("#with requires exactly one argument");w.isFunction(s)&&(s=s.call(this));var R=B.fn;if(w.isEmpty(s))return B.inverse(this);var M=B.data;return B.data&&B.ids&&(M=w.createFrame(B.data),M.contextPath=w.appendContextPath(B.data.contextPath,B.ids[0])),R(s,{data:M,blockParams:w.blockParams([s],[M&&M.contextPath])})})},h.exports=d.default}(Eu,Eu.exports)),Eu.exports}var Im;function oy(){if(Im)return Ql;Im=1,Ql.__esModule=!0,Ql.registerDefaultHelpers=H,Ql.moveHelperToHooks=G;function h(se){return se&&se.__esModule?se:{default:se}}var d=g2(),_=h(d),w=y2(),T=h(w),P=_2(),x=h(P),s=v2(),B=h(s),R=x2(),M=h(R),F=b2(),L=h(F),A=w2(),C=h(A);function H(se){_.default(se),T.default(se),x.default(se),B.default(se),M.default(se),L.default(se),C.default(se)}function G(se,le,Ae){se.helpers[le]&&(se.hooks[le]=se.helpers[le],Ae||delete se.helpers[le])}return Ql}var Pu={},Iu={exports:{}},Mm;function S2(){return Mm||(Mm=1,function(h,d){d.__esModule=!0;var _=Ui();d.default=function(w){w.registerDecorator("inline",function(T,P,x,s){var B=T;return P.partials||(P.partials={},B=function(R,M){var F=x.partials;x.partials=_.extend({},F,P.partials);var L=T(R,M);return x.partials=F,L}),P.partials[s.args[0]]=s.fn,B})},h.exports=d.default}(Iu,Iu.exports)),Iu.exports}var Lm;function A2(){if(Lm)return Pu;Lm=1,Pu.__esModule=!0,Pu.registerDefaultDecorators=w;function h(T){return T&&T.__esModule?T:{default:T}}var d=S2(),_=h(d);function w(T){_.default(T)}return Pu}var Mu={exports:{}},Rm;function ay(){return Rm||(Rm=1,function(h,d){d.__esModule=!0;var _=Ui(),w={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(P){if(typeof P=="string"){var x=_.indexOf(w.methodMap,P.toLowerCase());x>=0?P=x:P=parseInt(P,10)}return P},log:function(P){if(P=w.lookupLevel(P),typeof console<"u"&&w.lookupLevel(w.level)<=P){var x=w.methodMap[P];console[x]||(x="log");for(var s=arguments.length,B=Array(s>1?s-1:0),R=1;R<s;R++)B[R-1]=arguments[R];console[x].apply(console,B)}}};d.default=w,h.exports=d.default}(Mu,Mu.exports)),Mu.exports}var Ma={},Lu={},Dm;function k2(){if(Dm)return Lu;Dm=1,Lu.__esModule=!0,Lu.createNewLookupObject=d;var h=Ui();function d(){for(var _=arguments.length,w=Array(_),T=0;T<_;T++)w[T]=arguments[T];return h.extend.apply(void 0,[Object.create(null)].concat(w))}return Lu}var zm;function ly(){if(zm)return Ma;zm=1,Ma.__esModule=!0,Ma.createProtoAccessControl=P,Ma.resultIsAllowed=x,Ma.resetLoggedProperties=R;function h(M){return M&&M.__esModule?M:{default:M}}var d=k2(),_=ay(),w=h(_),T=Object.create(null);function P(M){var F=Object.create(null);F.constructor=!1,F.__defineGetter__=!1,F.__defineSetter__=!1,F.__lookupGetter__=!1;var L=Object.create(null);return L.__proto__=!1,{properties:{whitelist:d.createNewLookupObject(L,M.allowedProtoProperties),defaultValue:M.allowProtoPropertiesByDefault},methods:{whitelist:d.createNewLookupObject(F,M.allowedProtoMethods),defaultValue:M.allowProtoMethodsByDefault}}}function x(M,F,L){return s(typeof M=="function"?F.methods:F.properties,L)}function s(M,F){return M.whitelist[F]!==void 0?M.whitelist[F]===!0:M.defaultValue!==void 0?M.defaultValue:(B(F),!1)}function B(M){T[M]!==!0&&(T[M]=!0,w.default.log("error",'Handlebars: Access has been denied to resolve the property "'+M+`" because it is not an "own property" of its parent.
|
|
802
802
|
You can add a runtime option to disable the check or this warning:
|
|
803
803
|
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`))}function R(){Object.keys(T).forEach(function(M){delete T[M]})}return Ma}var Bm;function dd(){if(Bm)return vn;Bm=1,vn.__esModule=!0,vn.HandlebarsEnvironment=C;function h(G){return G&&G.__esModule?G:{default:G}}var d=Ui(),_=bn(),w=h(_),T=oy(),P=A2(),x=ay(),s=h(x),B=ly(),R="4.7.8";vn.VERSION=R;var M=8;vn.COMPILER_REVISION=M;var F=7;vn.LAST_COMPATIBLE_COMPILER_REVISION=F;var L={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};vn.REVISION_CHANGES=L;var A="[object Object]";function C(G,se,le){this.helpers=G||{},this.partials=se||{},this.decorators=le||{},T.registerDefaultHelpers(this),P.registerDefaultDecorators(this)}C.prototype={constructor:C,logger:s.default,log:s.default.log,registerHelper:function(se,le){if(d.toString.call(se)===A){if(le)throw new w.default("Arg not supported with multiple helpers");d.extend(this.helpers,se)}else this.helpers[se]=le},unregisterHelper:function(se){delete this.helpers[se]},registerPartial:function(se,le){if(d.toString.call(se)===A)d.extend(this.partials,se);else{if(typeof le>"u")throw new w.default('Attempting to register a partial called "'+se+'" as undefined');this.partials[se]=le}},unregisterPartial:function(se){delete this.partials[se]},registerDecorator:function(se,le){if(d.toString.call(se)===A){if(le)throw new w.default("Arg not supported with multiple decorators");d.extend(this.decorators,se)}else this.decorators[se]=le},unregisterDecorator:function(se){delete this.decorators[se]},resetLoggedPropertyAccesses:function(){B.resetLoggedProperties()}};var H=s.default.log;return vn.log=H,vn.createFrame=d.createFrame,vn.logger=s.default,vn}var Ru={exports:{}},Vm;function T2(){return Vm||(Vm=1,function(h,d){d.__esModule=!0;function _(w){this.string=w}_.prototype.toString=_.prototype.toHTML=function(){return""+this.string},d.default=_,h.exports=d.default}(Ru,Ru.exports)),Ru.exports}var is={},Du={},Fm;function C2(){if(Fm)return Du;Fm=1,Du.__esModule=!0,Du.wrapHelper=h;function h(d,_){if(typeof d!="function")return d;var w=function(){var P=arguments[arguments.length-1];return arguments[arguments.length-1]=_(P),d.apply(this,arguments)};return w}return Du}var Om;function E2(){if(Om)return is;Om=1,is.__esModule=!0,is.checkRevision=M,is.template=F,is.wrapProgram=L,is.resolvePartial=A,is.invokePartial=C,is.noop=H;function h(te){return te&&te.__esModule?te:{default:te}}function d(te){if(te&&te.__esModule)return te;var de={};if(te!=null)for(var Ce in te)Object.prototype.hasOwnProperty.call(te,Ce)&&(de[Ce]=te[Ce]);return de.default=te,de}var _=Ui(),w=d(_),T=bn(),P=h(T),x=dd(),s=oy(),B=C2(),R=ly();function M(te){var de=te&&te[0]||1,Ce=x.COMPILER_REVISION;if(!(de>=x.LAST_COMPATIBLE_COMPILER_REVISION&&de<=x.COMPILER_REVISION))if(de<x.LAST_COMPATIBLE_COMPILER_REVISION){var Ve=x.REVISION_CHANGES[Ce],Ze=x.REVISION_CHANGES[de];throw new P.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+Ve+") or downgrade your runtime to an older version ("+Ze+").")}else throw new P.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+te[1]+").")}function F(te,de){if(!de)throw new P.default("No environment passed to template");if(!te||!te.main)throw new P.default("Unknown template object: "+typeof te);te.main.decorator=te.main_d,de.VM.checkRevision(te.compiler);var Ce=te.compiler&&te.compiler[0]===7;function Ve(tt,Xe,rt){rt.hash&&(Xe=w.extend({},Xe,rt.hash),rt.ids&&(rt.ids[0]=!0)),tt=de.VM.resolvePartial.call(this,tt,Xe,rt);var bt=w.extend({},rt,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),Mt=de.VM.invokePartial.call(this,tt,Xe,bt);if(Mt==null&&de.compile&&(rt.partials[rt.name]=de.compile(tt,te.compilerOptions,de),Mt=rt.partials[rt.name](Xe,bt)),Mt!=null){if(rt.indent){for(var cr=Mt.split(`
|
|
804
804
|
`),yr=0,bi=cr.length;yr<bi&&!(!cr[yr]&&yr+1===bi);yr++)cr[yr]=rt.indent+cr[yr];Mt=cr.join(`
|
|
@@ -819,7 +819,7 @@ Expecting `+Xe.join(", ")+", got '"+(this.terminals_[Ae]||Ae)+"'":rt="Parse erro
|
|
|
819
819
|
}
|
|
820
820
|
return undefined
|
|
821
821
|
}
|
|
822
|
-
`.trim()},blockValue:function(A){var C=this.aliasable("container.hooks.blockHelperMissing"),H=[this.contextName(0)];this.setupHelperArgs(A,0,H);var G=this.popStack();H.splice(1,0,G),this.push(this.source.functionCall(C,"call",H))},ambiguousBlockValue:function(){var A=this.aliasable("container.hooks.blockHelperMissing"),C=[this.contextName(0)];this.setupHelperArgs("",0,C,!0),this.flushInline();var H=this.topStack();C.splice(1,0,H),this.pushSource(["if (!",this.lastHelper,") { ",H," = ",this.source.functionCall(A,"call",C),"}"])},appendContent:function(A){this.pendingContent?A=this.pendingContent+A:this.pendingLocation=this.source.currentLocation,this.pendingContent=A},append:function(){if(this.isInline())this.replaceStack(function(C){return[" != null ? ",C,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var A=this.popStack();this.pushSource(["if (",A," != null) { ",this.appendToBuffer(A,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(A){this.lastContext=A},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(A,C,H,G){var se=0;!G&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(A[se++])):this.pushContext(),this.resolvePath("context",A,se,C,H)},lookupBlockParam:function(A,C){this.useBlockParams=!0,this.push(["blockParams[",A[0],"][",A[1],"]"]),this.resolvePath("context",C,1)},lookupData:function(A,C,H){A?this.pushStackLiteral("container.data(data, "+A+")"):this.pushStackLiteral("data"),this.resolvePath("data",C,0,!0,H)},resolvePath:function(A,C,H,G,se){var le=this;if(this.options.strict||this.options.assumeObjects){this.push(F(this.options.strict&&se,this,C,H,A));return}for(var Ae=C.length;H<Ae;H++)this.replaceStack(function(te){var de=le.nameLookup(te,C[H],A);return G?[" && ",de]:[" != null ? ",de," : ",te]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(A,C){this.pushContext(),this.pushString(C),C!=="SubExpression"&&(typeof A=="string"?this.pushString(A):this.pushStackLiteral(A))},emptyHash:function(A){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(A?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var A=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(A.ids)),this.stringParams&&(this.push(this.objectLiteral(A.contexts)),this.push(this.objectLiteral(A.types))),this.push(this.objectLiteral(A.values))},pushString:function(A){this.pushStackLiteral(this.quotedString(A))},pushLiteral:function(A){this.pushStackLiteral(A)},pushProgram:function(A){A!=null?this.pushStackLiteral(this.programExpression(A)):this.pushStackLiteral(null)},registerDecorator:function(A,C){var H=this.nameLookup("decorators",C,"decorator"),G=this.setupHelperArgs(C,A);this.decorators.push(["fn = ",this.decorators.functionCall(H,"",["fn","props","container",G])," || fn;"])},invokeHelper:function(A,C,H){var G=this.popStack(),se=this.setupHelper(A,C),le=[];H&&le.push(se.name),le.push(G),this.options.strict||le.push(this.aliasable("container.hooks.helperMissing"));var Ae=["(",this.itemsSeparatedBy(le,"||"),")"],te=this.source.functionCall(Ae,"call",se.callParams);this.push(te)},itemsSeparatedBy:function(A,C){var H=[];H.push(A[0]);for(var G=1;G<A.length;G++)H.push(C,A[G]);return H},invokeKnownHelper:function(A,C){var H=this.setupHelper(A,C);this.push(this.source.functionCall(H.name,"call",H.callParams))},invokeAmbiguous:function(A,C){this.useRegister("helper");var H=this.popStack();this.emptyHash();var G=this.setupHelper(0,A,C),se=this.lastHelper=this.nameLookup("helpers",A,"helper"),le=["(","(helper = ",se," || ",H,")"];this.options.strict||(le[0]="(helper = ",le.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"))),this.push(["(",le,G.paramsInit?["),(",G.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",G.callParams)," : helper))"])},invokePartial:function(A,C,H){var G=[],se=this.setupParams(C,1,G);A&&(C=this.popStack(),delete se.name),H&&(se.indent=JSON.stringify(H)),se.helpers="helpers",se.partials="partials",se.decorators="container.decorators",A?G.unshift(C):G.unshift(this.nameLookup("partials",C,"partial")),this.options.compat&&(se.depths="depths"),se=this.objectLiteral(se),G.push(se),this.push(this.source.functionCall("container.invokePartial","",G))},assignToHash:function(A){var C=this.popStack(),H=void 0,G=void 0,se=void 0;this.trackIds&&(se=this.popStack()),this.stringParams&&(G=this.popStack(),H=this.popStack());var le=this.hash;H&&(le.contexts[A]=H),G&&(le.types[A]=G),se&&(le.ids[A]=se),le.values[A]=C},pushId:function(A,C,H){A==="BlockParam"?this.pushStackLiteral("blockParams["+C[0]+"].path["+C[1]+"]"+(H?" + "+JSON.stringify("."+H):"")):A==="PathExpression"?this.pushString(C):A==="SubExpression"?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:M,compileChildren:function(A,C){for(var H=A.children,G=void 0,se=void 0,le=0,Ae=H.length;le<Ae;le++){G=H[le],se=new this.compiler;var te=this.matchExistingProgram(G);if(te==null){this.context.programs.push("");var de=this.context.programs.length;G.index=de,G.name="program"+de,this.context.programs[de]=se.compile(G,C,this.context,!this.precompile),this.context.decorators[de]=se.decorators,this.context.environments[de]=G,this.useDepths=this.useDepths||se.useDepths,this.useBlockParams=this.useBlockParams||se.useBlockParams,G.useDepths=this.useDepths,G.useBlockParams=this.useBlockParams}else G.index=te.index,G.name="program"+te.index,this.useDepths=this.useDepths||te.useDepths,this.useBlockParams=this.useBlockParams||te.useBlockParams}},matchExistingProgram:function(A){for(var C=0,H=this.context.environments.length;C<H;C++){var G=this.context.environments[C];if(G&&G.equals(A))return G}},programExpression:function(A){var C=this.environment.children[A],H=[C.index,"data",C.blockParams];return(this.useBlockParams||this.useDepths)&&H.push("blockParams"),this.useDepths&&H.push("depths"),"container.program("+H.join(", ")+")"},useRegister:function(A){this.registers[A]||(this.registers[A]=!0,this.registers.list.push(A))},push:function(A){return A instanceof R||(A=this.source.wrap(A)),this.inlineStack.push(A),A},pushStackLiteral:function(A){this.push(new R(A))},pushSource:function(A){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),A&&this.source.push(A)},replaceStack:function(A){var C=["("],H=void 0,G=void 0,se=void 0;if(!this.isInline())throw new P.default("replaceStack on non-inline");var le=this.popStack(!0);if(le instanceof R)H=[le.value],C=["(",H],se=!0;else{G=!0;var Ae=this.incrStack();C=["((",this.push(Ae)," = ",le,")"],H=this.topStack()}var te=A.call(this,H);se||this.popStack(),G&&this.stackSlot--,this.push(C.concat(te,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var A=this.inlineStack;this.inlineStack=[];for(var C=0,H=A.length;C<H;C++){var G=A[C];if(G instanceof R)this.compileStack.push(G);else{var se=this.incrStack();this.pushSource([se," = ",G,";"]),this.compileStack.push(se)}}},isInline:function(){return this.inlineStack.length},popStack:function(A){var C=this.isInline(),H=(C?this.inlineStack:this.compileStack).pop();if(!A&&H instanceof R)return H.value;if(!C){if(!this.stackSlot)throw new P.default("Invalid stack pop");this.stackSlot--}return H},topStack:function(){var A=this.isInline()?this.inlineStack:this.compileStack,C=A[A.length-1];return C instanceof R?C.value:C},contextName:function(A){return this.useDepths&&A?"depths["+A+"]":"depth"+A},quotedString:function(A){return this.source.quotedString(A)},objectLiteral:function(A){return this.source.objectLiteral(A)},aliasable:function(A){var C=this.aliases[A];return C?(C.referenceCount++,C):(C=this.aliases[A]=this.source.wrap(A),C.aliasable=!0,C.referenceCount=1,C)},setupHelper:function(A,C,H){var G=[],se=this.setupHelperArgs(C,A,G,H),le=this.nameLookup("helpers",C,"helper"),Ae=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:G,paramsInit:se,name:le,callParams:[Ae].concat(G)}},setupParams:function(A,C,H){var G={},se=[],le=[],Ae=[],te=!H,de=void 0;te&&(H=[]),G.name=this.quotedString(A),G.hash=this.popStack(),this.trackIds&&(G.hashIds=this.popStack()),this.stringParams&&(G.hashTypes=this.popStack(),G.hashContexts=this.popStack());var Ce=this.popStack(),Ve=this.popStack();(Ve||Ce)&&(G.fn=Ve||"container.noop",G.inverse=Ce||"container.noop");for(var Ze=C;Ze--;)de=this.popStack(),H[Ze]=de,this.trackIds&&(Ae[Ze]=this.popStack()),this.stringParams&&(le[Ze]=this.popStack(),se[Ze]=this.popStack());return te&&(G.args=this.source.generateArray(H)),this.trackIds&&(G.ids=this.source.generateArray(Ae)),this.stringParams&&(G.types=this.source.generateArray(le),G.contexts=this.source.generateArray(se)),this.options.data&&(G.data="data"),this.useBlockParams&&(G.blockParams="blockParams"),G},setupHelperArgs:function(A,C,H,G){var se=this.setupParams(A,C,H);return se.loc=JSON.stringify(this.source.currentLocation),se=this.objectLiteral(se),G?(this.useRegister("options"),H.push("options"),["options=",se]):H?(H.push(se),""):se}},function(){for(var L="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),A=M.RESERVED_WORDS={},C=0,H=L.length;C<H;C++)A[L[C]]=!0}(),M.isValidJavaScriptVariableName=function(L){return!M.RESERVED_WORDS[L]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(L)};function F(L,A,C,H,G){var se=A.popStack(),le=C.length;for(L&&le--;H<le;H++)se=A.nameLookup(se,C[H],G);return L?[A.aliasable("container.strict"),"(",se,", ",A.quotedString(C[H]),", ",JSON.stringify(A.source.currentLocation)," )"]:se}d.default=M,h.exports=d.default}(Nu,Nu.exports)),Nu.exports}var lg;function H2(){return lg||(lg=1,function(h,d){d.__esModule=!0;function _(le){return le&&le.__esModule?le:{default:le}}var w=P2(),T=_(w),P=uy(),x=_(P),s=R2(),B=D2(),R=j2(),M=_(R),F=hy(),L=_(F),A=cy(),C=_(A),H=T.default.create;function G(){var le=H();return le.compile=function(Ae,te){return B.compile(Ae,te,le)},le.precompile=function(Ae,te){return B.precompile(Ae,te,le)},le.AST=x.default,le.Compiler=B.Compiler,le.JavaScriptCompiler=M.default,le.Parser=s.parser,le.parse=s.parse,le.parseWithoutProcessing=s.parseWithoutProcessing,le}var se=G();se.create=G,C.default(se),se.Visitor=L.default,se.default=se,d.default=se,h.exports=d.default}(vu,vu.exports)),vu.exports}var W2=H2();const Hu=Yg(W2);function cg(h,d,_,w){const T=h+d;let P=0,x=0;if(T<=_)P=h,x=d;else{const s=_/2;if(h>s&&d>s)P=s-w,x=s-w;else{const B=Math.min(h,d),R=_-B;h>d?(P=Math.max(R,100)-w,x=B):(P=B,x=Math.max(R,100)-w)}}return{topMaxHeight:P,bottomMaxHeight:x}}function Wu(h,d,_,w){if(!h)return!1;const T=_-w*2-((d==null?void 0:d.scrollHeight)||0);return h.scrollHeight>T}function Z2(h,d,_){const w=d-_*2;return Math.min(h,w)}function ug(h,d,_){const w=(d-_*3)/2;return Math.min(h,w)}function hg(h,d){var Ae,te,de,Ce,Ve,Ze,vt;const w=d-80,T=((Ae=h.topLeft)==null?void 0:Ae.scrollHeight)||0,P=((te=h.bottomLeft)==null?void 0:te.scrollHeight)||0,{topMaxHeight:x,bottomMaxHeight:s}=cg(T,P,w,40),B=((de=h.topRight)==null?void 0:de.scrollHeight)||0,R=((Ce=h.bottomRight)==null?void 0:Ce.scrollHeight)||0,{topMaxHeight:M,bottomMaxHeight:F}=cg(B,R,w,40),L=((Ve=h.center)==null?void 0:Ve.scrollHeight)||0,A=Z2(L,d,40),C=((Ze=h.topCenter)==null?void 0:Ze.scrollHeight)||0,H=ug(C,d,40),G=((vt=h.bottomCenter)==null?void 0:vt.scrollHeight)||0,se=ug(G,d,40),le={topLeft:Wu(h.topLeft,h.bottomLeft,d,40),topRight:Wu(h.topRight,h.bottomRight,d,40),topCenter:C>H,center:L>A,bottomLeft:Wu(h.bottomLeft,h.topLeft,d,40),bottomRight:Wu(h.bottomRight,h.topRight,d,40),bottomCenter:G>se};return{heights:{topLeft:x,topRight:M,topCenter:H,center:A,bottomLeft:s,bottomRight:F,bottomCenter:se},hasScroll:le}}const K2="data:image/jpeg;base64,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",G2="data:image/jpeg;base64,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",J2="data:image/jpeg;base64,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",X2={"diagonal-stripes":K2,dots:G2,crosshatch:J2};async function Q2(h){for(const[d,_]of Object.entries(X2))if(!h.hasImage(d))try{const w=await h.loadImage(_);h.addImage(d,w.data)}catch(w){console.error(`Failed to load pattern image: ${d}`,w)}}const Y2={key:0,class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"},$2={key:0,class:"p-5 pb-3 flex justify-between items-center"},ew={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},tw={class:"flex flex-col justify-between h-full"},rw={__name:"vs-filters-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0},enabledLayerIds:{type:Array,default:()=>[]}},setup(h){const d=h,_=y.ref(0),w=y.ref(null),T=y.computed(()=>{var B;return((B=d.config)==null?void 0:B.filters)||[]}),P=y.computed(()=>T.value.map(B=>({...B,id:B.name}))),x=y.computed(()=>{var R;const B=(R=d.config)==null?void 0:R.conditions;return!B||!B.layers?!0:d.enabledLayerIds.some(M=>B.layers.includes(M))}),s=async({url:B})=>{var L;const R=(L=d.config)==null?void 0:L.conditions,M=(R==null?void 0:R.layers)||[],F=d.enabledLayerIds.filter(A=>M.includes(A));F.length&&F.forEach(A=>{const C=d.map.getSource(A);if(C){const G=C.tiles[0].split("?filter=")[0],se=B?`${G}?filter=${B}`:G;C.setTiles([se])}})};return y.watch(()=>d.enabledLayerIds,B=>{(!B||!B.length)&&w.value&&(w.value.activeFilters={},_.value=0)}),y.watch(()=>{var B;return(B=w.value)==null?void 0:B.activeFilters},B=>{_.value=Object.keys(B||{}).length},{deep:!0}),(B,R)=>{const M=y.resolveComponent("VsFilter");return x.value?(y.openBlock(),y.createElementBlock("div",Y2,[h.config.title?(y.openBlock(),y.createElementBlock("div",$2,[y.createElementVNode("h2",ew,y.toDisplayString(h.config.title),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",tw,[y.createVNode(M,{ref_key:"filter",ref:w,scheme:P.value,header:!1,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:s},null,8,["scheme"])])])):y.createCommentVNode("",!0)}}},iw={type:"button",class:"py-2 px-2.5 inline-flex items-center gap-x-1.5 text-sm font-medium rounded-lg bg-white text-gray-800 hover:bg-gray-50 focus:outline-none focus:bg-gray-49 h-[38px] shadow-md"},nw={class:"flex gap-[5px] items-center"},sw={class:"text-gray-600"},ow={key:0,class:"w-[16px] h-[16px] font-medium bg-gray-800 text-white rounded-full flex items-center justify-center text-[10px]"},aw={__name:"vs-inline-filters-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0},enabledLayerIds:{type:Array,default:()=>[]}},setup(h){const d=h,_=y.ref(0),w=y.ref(null),T=y.computed(()=>{var R;return((R=d.config)==null?void 0:R.filters)||[]}),P=y.computed(()=>T.value.map(R=>({...R,id:R.name}))),x=y.computed(()=>{var M;const R=(M=d.config)==null?void 0:M.conditions;return!R||!R.layers?!0:d.enabledLayerIds.some(F=>R.layers.includes(F))}),s=y.computed(()=>{var R;if(d.enabledLayerIds&&d.enabledLayerIds.length){const F=(((R=d.config)==null?void 0:R.layers)||[]).find(L=>L.id===d.enabledLayerIds[0]);return(F==null?void 0:F.title)||(F==null?void 0:F.name)||(F==null?void 0:F.label)||d.enabledLayerIds[0]}return""}),B=async({url:R})=>{var A,C;const M=(A=d.config)==null?void 0:A.conditions;if(!M){const H=(C=d.config)==null?void 0:C.layer_id;if(!H)return;const G=d.map.getSource(H);if(G){const le=G.tiles[0].split("?filter=")[0],Ae=R?`${le}?filter=${R}`:le;G.setTiles([Ae])}return}const F=(M==null?void 0:M.layers)||[],L=d.enabledLayerIds.filter(H=>F.includes(H));L.length&&L.forEach(H=>{const G=d.map.getSource(H);if(G){const le=G.tiles[0].split("?filter=")[0],Ae=R?`${le}?filter=${R}`:le;G.setTiles([Ae])}})};return y.watch(()=>d.enabledLayerIds,R=>{(!R||!R.length)&&w.value&&(w.value.activeFilters={},_.value=0)}),y.watch(()=>{var R;return(R=w.value)==null?void 0:R.activeFilters},R=>{_.value=Object.keys(R||{}).length},{deep:!0}),(R,M)=>{const F=y.resolveComponent("VsPopover"),L=y.resolveComponent("VsFilterList");return x.value&&P.value.length?(y.openBlock(),y.createBlock(L,{key:0,ref_key:"filter",ref:w,isDialog:h.config.dialog??!0,scheme:P.value,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:B},{button:y.withCtx(({visible:A})=>[y.createVNode(F,{teleport:"body",trigger:"hover",placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("button",iw,[y.createElementVNode("div",nw,[M[0]||(M[0]=y.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[y.createElementVNode("path",{d:"M12 20L9 21V12.5L4.52 7.572C4.18545 7.20393 4.00005 6.7244 4 6.227V4H20V6.172C19.9999 6.70239 19.7891 7.21101 19.414 7.586L15 12",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M21.121 20.1209C21.5406 19.7014 21.8265 19.1668 21.9423 18.5849C22.0581 18.0029 21.9988 17.3997 21.7717 16.8514C21.5447 16.3032 21.1602 15.8346 20.6668 15.5049C20.1734 15.1752 19.5934 14.9993 19 14.9993C18.4066 14.9993 17.8266 15.1752 17.3332 15.5049C16.8398 15.8346 16.4553 16.3032 16.2283 16.8514C16.0012 17.3997 15.9419 18.0029 16.0577 18.5849C16.1735 19.1668 16.4594 19.7014 16.879 20.1209C17.297 20.5399 18.004 21.1659 19 21.9999C20.051 21.1099 20.759 20.4839 21.121 20.1209Z",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M19 18V18.01",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),y.createElementVNode("span",sw,y.toDisplayString(s.value),1),_.value?(y.openBlock(),y.createElementBlock("span",ow,y.toDisplayString(_.value),1)):y.createCommentVNode("",!0)])])]),default:y.withCtx(()=>[M[1]||(M[1]=y.createTextVNode(" Відкрити бокову панель "))]),_:1})]),_:1},8,["isDialog","scheme"])):y.createCommentVNode("",!0)}}},lw={name:"VsListWidget",props:{config:{type:Object,required:!0}},data(){return{items:[],total:0,currentPage:1,limit:10,rootEl:null,resizeObserver:null}},methods:{async fetchData(){try{const h=await gr.get(this.config.api,{params:{page:this.currentPage,limit:this.limit}});this.items=h.data.rows,this.total=h.data.total,this.$emit("content-resize")}catch(h){console.error("Error fetching data:",h)}},handlePageChange(h){this.currentPage=h,this.fetchData()},changeLimit(h){this.limit=h,this.currentPage=1,this.fetchData()}},mounted(){this.fetchData(),this.resizeObserver=new ResizeObserver(()=>{this.$emit("content-resize")}),this.$nextTick(()=>{this.$refs.rootEl&&this.resizeObserver.observe(this.$refs.rootEl)})},beforeUnmount(){this.resizeObserver&&this.$refs.rootEl&&(this.resizeObserver.unobserve(this.$refs.rootEl),this.resizeObserver.disconnect())}},cw={class:"bg-white p-4 rounded-lg h-full flex flex-col overflow-hidden",ref:"rootEl"},uw={key:0,class:"flex flex-col flex-1 overflow-hidden"},hw={class:"space-y-0 overflow-y-auto flex-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},pw=["onClick"],dw={class:"text-base font-medium"},fw={class:"mt-2 flex flex-wrap gap-2"},mw={key:1,class:"px-2 py-1 text-sm bg-gray-100 rounded-full"},gw={key:0,class:"my-5 pr-2"},yw={class:"paginationWrapper relative flex justify-center"},_w={key:1,class:"text-center text-slate-400"};function vw(h,d,_,w,T,P){var s;const x=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",cw,[d[0]||(d[0]=y.createElementVNode("h2",{class:"text-xl font-semibold mb-4"},"Список",-1)),((s=T.items)==null?void 0:s.length)>0?(y.openBlock(),y.createElementBlock("div",uw,[y.createElementVNode("div",hw,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.items,B=>(y.openBlock(),y.createElementBlock("div",{key:B.id,class:"py-4 border-b last:border-b-0 hover:bg-gray-50",onClick:R=>h.$emit("cardValuesId",B.id)},[y.createElementVNode("h3",dw,y.toDisplayString(B.name),1),y.createElementVNode("div",fw,[B.status_data?(y.openBlock(),y.createElementBlock("span",{key:0,class:y.normalizeClass(["px-2 py-1 text-sm rounded-full",{"bg-green-100 text-green-800":B.status_data.color==="green","bg-red-100 text-red-800":B.status_data.color==="red"}])},y.toDisplayString(B.status_data.text),3)):y.createCommentVNode("",!0),B.class_mbd_id_data?(y.openBlock(),y.createElementBlock("span",mw,y.toDisplayString(B.class_mbd_id_data.text),1)):y.createCommentVNode("",!0)])],8,pw))),128))]),T.total>T.limit?(y.openBlock(),y.createElementBlock("div",gw,[y.createElementVNode("div",yw,[y.createVNode(x,{total:T.total,maxPages:4,defaultPage:T.currentPage,pageSize:T.limit,goTo:!1,size:"medium",onPageChange:P.handlePageChange,backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[5,10,20,50],onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])):y.createCommentVNode("",!0)])):(y.openBlock(),y.createElementBlock("div",_w,"Немає даних"))],512)}const xw=Gt(lw,[["render",vw]]),bw={class:"map-skeleton-loader"},ww={__name:"vs-skeleton-loader",setup(h){return(d,_)=>(y.openBlock(),y.createElementBlock("div",bw,_[0]||(_[0]=[y.createElementVNode("div",{class:"dot-pulse"},null,-1)])))}},Sw=Gt(ww,[["__scopeId","data-v-954c1e03"]]),Aw={},kw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Tw(h,d){return y.openBlock(),y.createElementBlock("svg",kw,d[0]||(d[0]=[y.createElementVNode("title",null,"Globe Icon",-1),y.createElementVNode("desc",null," A circular representation of a globe with horizontal and vertical lines ",-1),y.createElementVNode("path",{d:"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M2 12H22",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M12 2C14.5013 4.73835 15.9228 8.29203 16 12C15.9228 15.708 14.5013 19.2616 12 22C9.49872 19.2616 8.07725 15.708 8 12C8.07725 8.29203 9.49872 4.73835 12 2Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const Cw=Gt(Aw,[["render",Tw]]),Ew={components:{homeIcon:Cw},name:"vs-homezoom",props:{map:{type:Object},initialView:{type:Object,default:()=>({})}},methods:{homeZoom(){!this.map||!this.initialView||(this.initialView.bbox?this.map.fitBounds(this.initialView.bbox,{duration:0,padding:10}):this.initialView.center&&this.initialView.zoom!==void 0&&(this.map.setCenter(this.initialView.center),this.map.setZoom(this.initialView.zoom)),this.initialView.pitch!==void 0&&this.map.setPitch(this.initialView.pitch),this.initialView.bearing!==void 0&&this.map.setBearing(this.initialView.bearing))}},computed:{}};function Pw(h,d,_,w,T,P){const x=y.resolveComponent("homeIcon"),s=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",null,[y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(x,{onClick:P.homeZoom,class:"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"},null,8,["onClick"])]),default:y.withCtx(()=>[d[0]||(d[0]=y.createElementVNode("div",null,"Повернутися до початкових налаштувань",-1))]),_:1})])}const Iw=Gt(Ew,[["render",Pw]]),Mw={},Lw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Rw(h,d){return y.openBlock(),y.createElementBlock("svg",Lw,d[0]||(d[0]=[y.createElementVNode("title",null,"Document with Two Sections Icon",-1),y.createElementVNode("desc",null,"A document icon with a split design indicating two sections",-1),y.createElementVNode("path",{d:"M6 9V2H18V9",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M6 18H4C3.46957 18 2.96086 17.7893 2.58579 17.4142C2.21071 17.0391 2 16.5304 2 16V11C2 10.4696 2.21071 9.96086 2.58579 9.58579C2.96086 9.21071 3.46957 9 4 9H20C20.5304 9 21.0391 9.21071 21.4142 9.58579C21.7893 9.96086 22 10.4696 22 11V16C22 16.5304 21.7893 17.0391 21.4142 17.4142C21.0391 17.7893 20.5304 18 20 18H18",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M18 14H6V22H18V14Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const Dw=Gt(Mw,[["render",Rw]]),zw={components:{printIcon:Dw},props:{map:{type:Object},activeTool:String,setActiveTool:Function},data(){return{printVisible:!1,scriptElements:[],styleElements:[],resourcesLoaded:!1}},watch:{activeTool(h){h!=="print"?this.printVisible=!1:this.init()},async printVisible(h){!this.resourcesLoaded&&h?(await this.loadResources(),this.init(),this.simulateClick()):this.removeResources()},activeTool(h,d){h!=="print"&&d==="print"&&(this.closePrint&&this.closePrint(),this.printVisible=!1),h==="print"&&!this.printVisible&&(this.printVisible=!0,this.init())}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.printVisible,"bg-white":!this.printVisible}}},mounted(){document.addEventListener("click",h=>{const d=document.querySelector(".mapboxgl-export-list");if(d&&d.contains(h.target)){h.stopPropagation();return}!h.target.classList.contains("mapboxgl-export-list")&&!h.target.classList.contains("print-button")&&!h.target.classList.contains("mapboxgl-export-control")&&!h.target.id.includes("mapbox-gl-export")&&(this.printVisible=!1)})},methods:{addScript(h){return new Promise((d,_)=>{const w=document.createElement("script");w.src=h,w.async=!0,w.onload=d,w.onerror=_,document.head.appendChild(w),this.scriptElements.push(w)})},addStyle(h){return new Promise((d,_)=>{const w=document.createElement("link");w.href=h,w.rel="stylesheet",w.type="text/css",w.onload=d,w.onerror=_,document.head.appendChild(w),this.styleElements.push(w)})},async loadResources(){try{await this.addStyle("https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/3.8.0/mapbox-gl.min.css"),await this.addScript("https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/3.8.0/mapbox-gl.js"),await this.addStyle("https://cdn.jsdelivr.net/npm/@watergis/mapbox-gl-export@3.5.4/dist/mapbox-gl-export.min.css"),await this.addScript("https://cdn.jsdelivr.net/npm/@watergis/mapbox-gl-export@3.5.4/dist/mapbox-gl-export.umd.min.js"),this.resourcesLoaded=!0}catch(h){console.error("Failed to load resources:",h)}},removeResources(){this.scriptElements.forEach(h=>{h.parentNode&&h.parentNode.removeChild(h)}),this.scriptElements=[],this.styleElements.forEach(h=>{h.parentNode&&h.parentNode.removeChild(h)}),this.styleElements=[],this.resourcesLoaded=!1},async toggleResources(){this.printVisible=!this.printVisible},init(){if(!window.MapboxExportControl){console.error("MapboxExportControl is not loaded.");return}window.mapboxgl.accessToken="pk.eyJ1Ijoia3Jpemhhbm92c2t5IiwiYSI6ImNsemkxNWtkODA5dDcycnNhMWZzYWM0MTAifQ.6fEpgfd_2mA4UYuflDewpQ";const{MapboxExportControl:h,Size:d,PageOrientation:_,Format:w,DPI:T}=window.MapboxExportControl;this.map.addControl(new h({PageSize:d.A3,PageOrientation:_.Portrait,Format:w.PNG,DPI:T[96],Crosshair:!0,PrintableArea:!0,Local:"uk"}))},simulateClick(){new Promise(d=>{const _=setTimeout(()=>{const w=document.querySelector(".mapboxgl-export-control");w&&(clearInterval(_),d(w))},100)}).then(d=>{d.click()}).catch(()=>{console.error("Print button not found.")})},togglePrint(){!this.activeTool||this.activeTool!=="print"?this.setActiveTool&&this.setActiveTool("print"):this.setActiveTool&&this.setActiveTool(null),this.printVisible=!this.printVisible,this.printVisible?this.init():this.removeResources()}}};function Bw(h,d,_,w,T,P){const x=y.resolveComponent("printIcon"),s=y.resolveComponent("VsPopover");return y.openBlock(),y.createBlock(s,{trigger:"hover",placement:"left",teleport:"body"},{reference:y.withCtx(()=>[y.createVNode(x,{onClick:P.togglePrint,class:y.normalizeClass([P.modalButtonClasses,"print-button w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[0]||(d[0]=y.createElementVNode("div",null,"Надрукувати",-1))]),_:1})}const Vw=Gt(zw,[["render",Bw]]),Fw={props:{map:{type:Object,required:!0}},data(){return{is3D:!1}},mounted(){this.map.on("move",this.updateViewStatus),this.updateViewStatus()},beforeUnmount(){this.map.off("move",this.updateViewStatus)},methods:{toggleView(){this.is3D?this.map.easeTo({pitch:0,bearing:0,duration:1e3}):this.map.easeTo({pitch:60,bearing:-29.6,duration:1e3})},updateViewStatus(){this.is3D=this.map.getPitch()!==0}}};function Ow(h,d,_,w,T,P){const x=y.resolveComponent("VsPopover");return y.openBlock(),y.createBlock(x,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:"font-light w-full h-[44px] p-[9px] [transition:.3s] hover:[transition:.3s] text-[19px] hover:bg-[#DBEAFE] flex cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]",onClick:d[0]||(d[0]=(...s)=>P.toggleView&&P.toggleView(...s))},y.toDisplayString(T.is3D?"2D":"3D"),1)]),default:y.withCtx(()=>[d[1]||(d[1]=y.createElementVNode("div",null,"Перемикач виду",-1))]),_:1})}const Nw=Gt(Fw,[["render",Ow]]),qw={},Uw={class:"shrink-0 size-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function jw(h,d){return y.openBlock(),y.createElementBlock("svg",Uw,d[0]||(d[0]=[y.createElementVNode("path",{d:"M18 6 6 18"},null,-1),y.createElementVNode("path",{d:"m6 6 12 12"},null,-1)]))}const fd=Gt(qw,[["render",jw]]),Hw={props:{bgColor:{type:String,default:"#1E40AF"}}},Ww={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Zw=["stroke"],Kw=["stroke"],Gw=["stroke"],Jw=["stroke"],Xw=["stroke"],Qw=["stroke"];function Yw(h,d,_,w,T,P){return y.openBlock(),y.createElementBlock("svg",Ww,[d[0]||(d[0]=y.createElementVNode("title",null,"Target Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"A target icon with a circular pattern inside a rounded square",-1)),y.createElementVNode("path",{d:"M2 12H5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Zw),y.createElementVNode("path",{d:"M19 12H22",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Kw),y.createElementVNode("path",{d:"M12 2V5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Gw),y.createElementVNode("path",{d:"M12 19V22",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Jw),y.createElementVNode("path",{d:"M12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Xw),y.createElementVNode("path",{d:"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Qw)])}const $w=Gt(Hw,[["render",Yw]]),{Marker:eS}=$p,tS={components:{geoIcon:$w,closeIcon:fd},data(){return{location:null,data:null,marker:null,showLocation:!1}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.showLocation,"bg-white":!this.showLocation}}},props:{map:{type:Object}},beforeUnmount(){var h;(h=this.marker)==null||h.remove()},watch:{activeControl(h,d){h!=="geolocation"&&d==="geolocation"&&(this.showLocation=!1,this.closeGeolocation())}},methods:{togleGeolocation(){this.showLocation=!this.showLocation,this.showLocation?this.getUserLocation():(this.closeGeolocation(),this.activeControl="no")},getUserLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(this.onGeolocationSuccess,this.onGeolocationError):(this.showLocation=!1,this.activeControl="no",this.$notify({type:"error",title:"Помилка",message:"Цей браузер не підтримує геолокацію"}),this.$emit("close"))},async onGeolocationSuccess(h){this.location={latitude:h.coords.latitude,longitude:h.coords.longitude};const _=await(await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${this.location.latitude}&lon=${this.location.longitude}`)).json();this.data=_.address;const w=[this.location.longitude,this.location.latitude],T=[[parseFloat(_.boundingbox[2]),parseFloat(_.boundingbox[0])],[parseFloat(_.boundingbox[3]),parseFloat(_.boundingbox[1])]];this.map.fitBounds(T,{padding:200,maxZoom:16}),this.marker||(this.marker=new eS({color:"var(--primary)"})),this.marker.setLngLat(w).addTo(this.map),this.activeControl="geolocation"},closeGeolocation(){this.showLocation=!1,this.marker&&(this.marker.remove(),this.marker=null),this.location=null,this.data=null},onGeolocationError(){this.showLocation=!1,this.activeControl="no",this.$notify({type:"error",title:"Помилка",message:"Для визначення геолокації потрібен HTTPS протокол"}),this.$emit("close")}}},rS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[70px] bg-white border rounded-[15px] p-4 z-10"},iS={class:"flex justify-between items-center border-b pb-[16px]"},nS={class:"d-flex"},sS={class:"pt-[16px]"};function oS(h,d,_,w,T,P){var R,M,F,L,A,C;const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("geoIcon"),B=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[T.location?(y.openBlock(),y.createElementBlock("div",rS,[y.createElementVNode("div",iS,[d[0]||(d[0]=y.createElementVNode("div",{class:"text-lg font-semibold"},"Ваша геолокація",-1)),y.createElementVNode("div",nS,[y.createVNode(x,{onClick:P.closeGeolocation},null,8,["onClick"])])]),y.createElementVNode("div",sS,[y.createElementVNode("div",null,[d[1]||(d[1]=y.createElementVNode("strong",null,"Широта:",-1)),y.createTextVNode(" "+y.toDisplayString((R=T.location)==null?void 0:R.latitude),1)]),y.createElementVNode("div",null,[d[2]||(d[2]=y.createElementVNode("strong",null,"Довгота:",-1)),y.createTextVNode(" "+y.toDisplayString((M=T.location)==null?void 0:M.longitude),1)]),y.createElementVNode("div",null,[d[3]||(d[3]=y.createElementVNode("strong",null,"КраЇна:",-1)),y.createTextVNode(" "+y.toDisplayString((F=T.data)==null?void 0:F.country),1)]),y.createElementVNode("div",null,[d[4]||(d[4]=y.createElementVNode("strong",null,"Код країни:",-1)),y.createTextVNode(" "+y.toDisplayString((L=T.data)==null?void 0:L.country_code),1)]),y.createElementVNode("div",null,[d[5]||(d[5]=y.createElementVNode("strong",null,"Місто:",-1)),y.createTextVNode(" "+y.toDisplayString((A=T.data)==null?void 0:A.city),1)]),y.createElementVNode("div",null,[d[6]||(d[6]=y.createElementVNode("strong",null,"Поштовий індекс:",-1)),y.createTextVNode(" "+y.toDisplayString((C=T.data)==null?void 0:C.postcode),1)])])])):y.createCommentVNode("",!0)])),y.createVNode(B,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(s,{onClick:P.togleGeolocation,class:y.normalizeClass([P.modalButtonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[7]||(d[7]=y.createElementVNode("div",null,"Дізнатися геолокацію",-1))]),_:1})])}const aS=Gt(tS,[["render",oS]]);var pg=63710088e-1;function lS(h,d){var _,w,T,P,x,s,B,R,M,F,L=0,A=h.type==="FeatureCollection",C=h.type==="Feature",H=A?h.features.length:1;for(_=0;_<H;_++){for(s=A?h.features[_].geometry:C?h.geometry:h,R=A?h.features[_].properties:C?h.properties:{},M=A?h.features[_].bbox:C?h.bbox:void 0,F=A?h.features[_].id:C?h.id:void 0,B=s?s.type==="GeometryCollection":!1,x=B?s.geometries.length:1,T=0;T<x;T++){if(P=B?s.geometries[T]:s,P===null){if(d(null,L,R,M,F)===!1)return!1;continue}switch(P.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(d(P,L,R,M,F)===!1)return!1;break}case"GeometryCollection":{for(w=0;w<P.geometries.length;w++)if(d(P.geometries[w],L,R,M,F)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}L++}}function cS(h,d,_){var w=_;return lS(h,function(T,P,x,s,B){P===0&&_===void 0?w=T:w=d(w,T,P,x,s,B)}),w}function uS(h){return cS(h,(d,_)=>d+hS(_),0)}function hS(h){let d=0,_;switch(h.type){case"Polygon":return dg(h.coordinates);case"MultiPolygon":for(_=0;_<h.coordinates.length;_++)d+=dg(h.coordinates[_]);return d;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}function dg(h){let d=0;if(h&&h.length>0){d+=Math.abs(fg(h[0]));for(let _=1;_<h.length;_++)d-=Math.abs(fg(h[_]))}return d}var pS=pg*pg/2,Up=Math.PI/180;function fg(h){const d=h.length-1;if(d<=2)return 0;let _=0,w=0;for(;w<d;){const T=h[w],P=h[w+1===d?0:w+1],x=h[w+2>=d?(w+2)%d:w+2],s=T[0]*Up,B=P[1]*Up,R=x[0]*Up;_+=(R-s)*Math.sin(B),w++}return _*pS}var $i=63710088e-1,dS={centimeters:$i*100,centimetres:$i*100,degrees:360/(2*Math.PI),feet:$i*3.28084,inches:$i*39.37,kilometers:$i/1e3,kilometres:$i/1e3,meters:$i,metres:$i,miles:$i/1609.344,millimeters:$i*1e3,millimetres:$i*1e3,nauticalmiles:$i/1852,radians:1,yards:$i*1.0936};function ih(h,d,_={}){const w={type:"Feature"};return(_.id===0||_.id)&&(w.id=_.id),_.bbox&&(w.bbox=_.bbox),w.properties=d||{},w.geometry=h,w}function my(h,d,_={}){for(const T of h){if(T.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(T[T.length-1].length!==T[0].length)throw new Error("First and last Position are not equivalent.");for(let P=0;P<T[T.length-1].length;P++)if(T[T.length-1][P]!==T[0][P])throw new Error("First and last Position are not equivalent.")}return ih({type:"Polygon",coordinates:h},d,_)}function nh(h,d,_={}){if(h.length<2)throw new Error("coordinates must be an array of two or more positions");return ih({type:"LineString",coordinates:h},d,_)}function tc(h,d={}){const _={type:"FeatureCollection"};return d.id&&(_.id=d.id),d.bbox&&(_.bbox=d.bbox),_.features=h,_}function fS(h,d="kilometers"){const _=dS[d];if(!_)throw new Error(d+" units is invalid");return h*_}function Zu(h){return h%360*Math.PI/180}function mg(h){if(!h)throw new Error("coord is required");if(!Array.isArray(h)){if(h.type==="Feature"&&h.geometry!==null&&h.geometry.type==="Point")return[...h.geometry.coordinates];if(h.type==="Point")return[...h.coordinates]}if(Array.isArray(h)&&h.length>=2&&!Array.isArray(h[0])&&!Array.isArray(h[1]))return[...h];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function ed(h,d,_={}){var w=mg(h),T=mg(d),P=Zu(T[1]-w[1]),x=Zu(T[0]-w[0]),s=Zu(w[1]),B=Zu(T[1]),R=Math.pow(Math.sin(P/2),2)+Math.pow(Math.sin(x/2),2)*Math.cos(s)*Math.cos(B);return fS(2*Math.atan2(Math.sqrt(R),Math.sqrt(1-R)),_.units)}function gy(h,d,_){if(h!==null)for(var w,T,P,x,s,B,R,M=0,F=0,L,A=h.type,C=A==="FeatureCollection",H=A==="Feature",G=C?h.features.length:1,se=0;se<G;se++){R=C?h.features[se].geometry:H?h.geometry:h,L=R?R.type==="GeometryCollection":!1,s=L?R.geometries.length:1;for(var le=0;le<s;le++){var Ae=0,te=0;if(x=L?R.geometries[le]:R,x!==null){B=x.coordinates;var de=x.type;switch(M=0,de){case null:break;case"Point":if(d(B,F,se,Ae,te)===!1)return!1;F++,Ae++;break;case"LineString":case"MultiPoint":for(w=0;w<B.length;w++){if(d(B[w],F,se,Ae,te)===!1)return!1;F++,de==="MultiPoint"&&Ae++}de==="LineString"&&Ae++;break;case"Polygon":case"MultiLineString":for(w=0;w<B.length;w++){for(T=0;T<B[w].length-M;T++){if(d(B[w][T],F,se,Ae,te)===!1)return!1;F++}de==="MultiLineString"&&Ae++,de==="Polygon"&&te++}de==="Polygon"&&Ae++;break;case"MultiPolygon":for(w=0;w<B.length;w++){for(te=0,T=0;T<B[w].length;T++){for(P=0;P<B[w][T].length-M;P++){if(d(B[w][T][P],F,se,Ae,te)===!1)return!1;F++}te++}Ae++}break;case"GeometryCollection":for(w=0;w<x.geometries.length;w++)if(gy(x.geometries[w],d)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function mS(h,d){var _,w,T,P,x,s,B,R,M,F,L=0,A=h.type==="FeatureCollection",C=h.type==="Feature",H=A?h.features.length:1;for(_=0;_<H;_++){for(s=A?h.features[_].geometry:C?h.geometry:h,R=A?h.features[_].properties:C?h.properties:{},M=A?h.features[_].bbox:C?h.bbox:void 0,F=A?h.features[_].id:C?h.id:void 0,B=s?s.type==="GeometryCollection":!1,x=B?s.geometries.length:1,T=0;T<x;T++){if(P=B?s.geometries[T]:s,P===null){if(d(null,L,R,M,F)===!1)return!1;continue}switch(P.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(d(P,L,R,M,F)===!1)return!1;break}case"GeometryCollection":{for(w=0;w<P.geometries.length;w++)if(d(P.geometries[w],L,R,M,F)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}L++}}function gS(h,d){mS(h,function(_,w,T,P,x){var s=_===null?null:_.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return d(ih(_,T,{bbox:P,id:x}),w,0)===!1?!1:void 0}var B;switch(s){case"MultiPoint":B="Point";break;case"MultiLineString":B="LineString";break;case"MultiPolygon":B="Polygon";break}for(var R=0;R<_.coordinates.length;R++){var M=_.coordinates[R],F={type:B,coordinates:M};if(d(ih(F,T),w,R)===!1)return!1}})}function yS(h,d){gS(h,function(_,w,T){var P=0;if(_.geometry){var x=_.geometry.type;if(!(x==="Point"||x==="MultiPoint")){var s,B=0,R=0,M=0;if(gy(_,function(F,L,A,C,H){if(s===void 0||w>B||C>R||H>M){s=F,B=w,R=C,M=H,P=0;return}var G=nh([s,F],_.properties);if(d(G,w,T,H,P)===!1)return!1;P++,s=F})===!1)return!1}}})}function _S(h,d,_){var w=_,T=!1;return yS(h,function(P,x,s,B,R){T===!1&&_===void 0?w=P:w=d(w,P,x,s,B,R),T=!0}),w}function vS(h,d={}){return _S(h,(_,w)=>{const T=w.geometry.coordinates;return _+ed(T[0],T[1],d)},0)}const xS={props:{bgColor:{type:String,default:"#1E40AF"}}},bS={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},wS=["stroke"],SS=["stroke"],AS=["stroke"],kS=["stroke"],TS=["stroke"];function CS(h,d,_,w,T,P){return y.openBlock(),y.createElementBlock("svg",bS,[d[0]||(d[0]=y.createElementVNode("title",null,"Pencil Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"A pencil icon with strokes and detailed lines",-1)),y.createElementVNode("path",{d:"M21.3 15.3C21.5238 15.523 21.7013 15.7879 21.8225 16.0796C21.9436 16.3714 22.0059 16.6841 22.0059 17C22.0059 17.3159 21.9436 17.6286 21.8225 17.9204C21.7013 18.2121 21.5238 18.477 21.3 18.7L18.7 21.3C18.4771 21.5237 18.2121 21.7013 17.9204 21.8224C17.6287 21.9435 17.3159 22.0059 17 22.0059C16.6842 22.0059 16.3714 21.9435 16.0797 21.8224C15.788 21.7013 15.523 21.5237 15.3 21.3L2.70005 8.7C2.2506 8.24838 1.99829 7.63715 1.99829 7C1.99829 6.36285 2.2506 5.75162 2.70005 5.3L5.30005 2.7C5.75167 2.25056 6.36289 1.99825 7.00005 1.99825C7.6372 1.99825 8.24842 2.25056 8.70005 2.7L21.3 15.3Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,wS),y.createElementVNode("path",{d:"M14.5 12.5L16.5 10.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,SS),y.createElementVNode("path",{d:"M11.5 9.5L13.5 7.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,AS),y.createElementVNode("path",{d:"M8.5 6.5L10.5 4.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,kS),y.createElementVNode("path",{d:"M17.5 15.5L19.5 13.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,TS)])}const ES=Gt(xS,[["render",CS]]),PS={name:"vs-measure",components:{rulerIcon:ES,closeIcon:fd},data(){return{points:[],inputPoint:[],distance:0,distanceType:!1,modalVisible:!1,draggingPointId:null}},watch:{async points(){this.inputPoint=this.points.map(h=>{var d,_;return{id:h.properties.id,value:((_=(d=h==null?void 0:h.geometry)==null?void 0:d.coordinates)==null?void 0:_.reduceRight((w,T)=>[...w,typeof T=="string"?T:T.toFixed(5)],[]).join(","))||""}}),this.setPoints()},activeTool(h,d){h!=="length"&&d==="length"&&(this.closeMeasure(),this.modalVisible=!1),h==="length"&&!this.modalVisible&&(this.modalVisible=!0,this.initMeasureLayer())}},props:{map:{type:Object},activeTool:String,setActiveTool:Function},methods:{measureMapClick(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});if(d.length)this.points=this.points.filter(_=>{var w,T;return _.properties.id!==((T=(w=d[0])==null?void 0:w.properties)==null?void 0:T.id)});else{const _={type:"Feature",geometry:{type:"Point",coordinates:Object.values(h.lngLat)},properties:{id:Math.floor(Math.random()*1e3)}};this.points=this.points.concat(_)}},async setPoints(){const h=this.points.filter(T=>T==null?void 0:T.geometry),d=h.map((T,P)=>{var B,R;const x=ed(h[P?P-1:0],T),s=this.distanceType?x:x+ +((R=(B=h[P-1])==null?void 0:B.properties)==null?void 0:R.distance)||0;return T.properties.distance=s,T.properties.title=`${s.toLocaleString()}км`,T}),_=await tc(d);if(d.length>2){const T=my([[...d.map(P=>P.geometry.coordinates),d[0].geometry.coordinates]]);this.map.getSource("linear-area").setData(tc([T]))}else{const T=this.map.getSource("measure");T&&T.setData(_)}d.length>1&&(_.features=_.features.concat(nh(d.map(T=>T.geometry.coordinates))),this.distance=vS(nh(d.map(T=>T.geometry.coordinates))));const w=this.map.getSource("measure");w&&w.setData(_)},handleDelete(h){this.points=this.points.filter(d=>d.properties.id!==h)},addCoords(){this.points=this.points.concat({type:"Feature",properties:{id:Math.floor(Math.random()*1e3)},geometry:null})},handleChange(){this.points=this.inputPoint.map(h=>{if(/^([^,]*,[^,]*)$/.test(h.value)){const d=h.value.split(",").reverse();if(d[0]<-90||d[0]>90||d[1]>180||d[1]<-180)this.$notify({type:"error",title:"Помилка",message:"Координати неправильні"});else return{type:"Feature",geometry:{type:"Point",coordinates:d},properties:{id:h.id}}}else this.$notify({type:"error",title:"Помилка",message:"Координати неправильні"})})},removeLinearLayer(){this.map.getLayer("measure-lines")&&this.map.removeLayer("measure-lines"),this.map.getLayer("measure-points")&&this.map.removeLayer("measure-points"),this.map.getLayer("measure-symbol")&&this.map.removeLayer("measure-symbol"),this.map.getSource("measure")&&this.map.removeSource("measure"),this.map.getLayer("linear-area-fill")&&this.map.removeLayer("linear-area-fill"),this.map.getSource("linear-area")&&this.map.removeSource("linear-area"),this.distance=0},createLinearLayer(){this.map.addSource("measure",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"measure-lines",type:"line",source:"measure",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#000","line-width":2.5},filter:["in","$type","LineString"]}),this.map.addLayer({id:"measure-points",type:"circle",source:"measure",paint:{"circle-radius":4.5,"circle-color":"#fff","circle-stroke-width":2,"circle-stroke-color":"#000"},filter:["in","$type","Point"]}),this.map.addLayer({id:"measure-symbol",source:"measure",type:"symbol",paint:{"text-color":"#111","text-halo-color":"#fff","text-halo-width":2},layout:{"symbol-placement":"point","text-letter-spacing":.2,"text-field":"{title}","text-font":["Open Sans Regular"],"text-size":15,"text-anchor":"bottom-left"},filter:["in","$type","Point"]}),this.createAreaLayer(),this.map.on("mousemove",this.mouseMove),this.map.on("mousemove",this.mouseMove)},mouseMove(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});this.map.getCanvas().style.cursor=d.length?"move":"crosshair"},createAreaLayer(){const{map:h}=this;h.addSource("linear-area",{type:"geojson",data:{type:"FeatureCollection",features:[]}})},distanceFormat(){const h=this.points.filter(d=>d.geometry).map(d=>d.geometry);h.forEach((d,_)=>{const w=ed(h[_?_-1:0],d);distance.push(w);const T=this.distanceType?w:w+ +this.points[_?_-1:0].properties.distance||0;this.points[_].properties.distance=T,this.points[_].properties.title=`${T.toLocaleString()}km`})},initMeasureLayer(){this.createLinearLayer(),this.map.on("mousedown","measure-points",this.handleDrag),this.map.on("click",this.measureMapClick),this.map.on("touchend",this.measureMapClick)},onMove(h){const d=h.lngLat;this.points=this.points.map(_=>_.properties.id===this.draggingPointId?{..._,geometry:{..._.geometry,coordinates:[d.lng,d.lat]}}:_),this.setPoints()},onUp(){this.map.off("mousemove",this.onMove),this.draggingPointId=null},handleDrag(h){h.preventDefault();const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});if(d.length){const _=d[0].properties.id;this.draggingPointId=_,this.map.on("mousemove",this.onMove),this.map.once("mouseup",this.onUp)}},closeMeasure(){this.points=[],this.map.off("touchend",this.measureMapClick),this.map.off("click",this.measureMapClick),this.map.off("mousemove",this.mouseMove),this.map.getCanvas().style.cursor="grab",this.modalVisible=!1,this.removeLinearLayer()},toggleMeasure(){!this.activeTool||this.activeTool!=="length"?this.setActiveTool&&this.setActiveTool("length"):this.setActiveTool&&this.setActiveTool(null),this.modalVisible=!this.modalVisible,this.modalVisible?this.initMeasureLayer():this.closeMeasure()}},computed:{buttonClasses(){return{"!bg-[#DBEAFE]":this.modalVisible,"bg-white":!this.modalVisible}}}},IS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[60px] bg-white border rounded-[15px] p-4 z-10"},MS={class:"flex justify-between items-center border-b pb-[16px]"},LS={class:"pt-[16px]"},RS={class:"text-[14px] font-medium text-[#6B7280] mb-[16px]"},DS={key:0,class:"flex items-center mb-4"},zS={key:1,class:"text-[14px] font-bold",ref:"distanceContainer"};function BS(h,d,_,w,T,P){const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("VsPopover"),B=y.resolveComponent("VsSwitch"),R=y.resolveComponent("rulerIcon");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[T.modalVisible&&_.activeTool==="length"?(y.openBlock(),y.createElementBlock("div",IS,[y.createElementVNode("div",MS,[d[3]||(d[3]=y.createElementVNode("div",{class:"text-[20px]"},"Лінійка",-1)),y.createVNode(s,{trigger:"hover",teleport:"body"},{reference:y.withCtx(()=>[y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:d[0]||(d[0]=(...M)=>P.toggleMeasure&&P.toggleMeasure(...M))},[y.createVNode(x,{class:"cursor-pointer"})])]),default:y.withCtx(()=>[d[2]||(d[2]=y.createTextVNode(" Приховати панель "))]),_:1})]),y.createElementVNode("div",LS,[y.createElementVNode("p",RS,[T.points.length?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createTextVNode(" Натисніть на мапу, щоб додати першу точку. ")],64)),T.points.length==1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createTextVNode(" Натисніть на мапу, щоб додати другу точку. ")],64)):y.createCommentVNode("",!0),T.points.length>1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:2},[y.createTextVNode(" Продовжуйте натискати для додавання нових точок. Точки можна рухати. ")],64)):y.createCommentVNode("",!0)]),T.points.length>=3?(y.openBlock(),y.createElementBlock("div",DS,[y.createVNode(B,{modelValue:T.distanceType,"onUpdate:modelValue":d[1]||(d[1]=M=>T.distanceType=M),onChange:P.setPoints},null,8,["modelValue","onChange"]),d[4]||(d[4]=y.createElementVNode("span",{class:"text-[14px] font-medium text-[#6B7280] ml-2"},"загальна | до точки",-1))])):y.createCommentVNode("",!0),T.points.length>=2?(y.openBlock(),y.createElementBlock("div",zS,[d[5]||(d[5]=y.createTextVNode(" Загальна відстань: ")),y.createElementVNode("span",null,y.toDisplayString(T.distance.toLocaleString())+" км",1)],512)):y.createCommentVNode("",!0)])])):y.createCommentVNode("",!0)])),y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(R,{class:y.normalizeClass([P.buttonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"]),onClick:P.toggleMeasure},null,8,["class","onClick"])]),default:y.withCtx(()=>[d[6]||(d[6]=y.createElementVNode("div",null,"Виміряти довжину",-1))]),_:1})])}const VS=Gt(PS,[["render",BS],["__scopeId","data-v-401b2f16"]]),FS={props:{bgColor:{type:String,default:"#1E40AF"}}},OS={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},NS=["stroke"],qS=["stroke"],US=["stroke"];function jS(h,d,_,w,T,P){return y.openBlock(),y.createElementBlock("svg",OS,[d[0]||(d[0]=y.createElementVNode("title",null,"Crossed Arrows with Curved Line Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"Two crossed arrows with a curved line to the right",-1)),y.createElementVNode("path",{d:"M4 19L12 11",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,NS),y.createElementVNode("path",{d:"M12 19L4 11",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,qS),y.createElementVNode("path",{d:"M20 12H16C16 10.5 16.442 10 17.5 9.5C18.558 9 20 8.334 20 7.002C20 6.53 19.83 6.072 19.516 5.712C19.196 5.35007 18.7613 5.1092 18.2848 5.02981C17.8083 4.95043 17.319 5.03735 16.899 5.276C16.479 5.515 16.161 5.89 16 6.336",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,US)])}const HS=Gt(FS,[["render",jS]]),WS={components:{areaIcon:HS,closeIcon:fd},name:"vs-area-measure",props:{map:{type:Object},activeTool:String,setActiveTool:Function},data(){return{points:[],inputPoint:[],area:0,modalVisible:!1,draggingPointId:null}},watch:{async points(){this.inputPoint=this.points.map(h=>{var d,_;return{id:h.properties.id,value:((_=(d=h==null?void 0:h.geometry)==null?void 0:d.coordinates)==null?void 0:_.reduceRight((w,T)=>[...w,typeof T=="string"?T:T.toFixed(5)],[]).join(","))||""}}),this.setPoints()},activeTool(h,d){h!=="area"&&d==="area"&&(this.closeMeasure(),this.modalVisible=!1),h==="area"&&!this.modalVisible&&(this.modalVisible=!0,this.initMeasureLayer())}},methods:{measureMapClick(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});if(d.length)this.points=this.points.filter(_=>_.properties.id!==d[0].properties.id);else{const _={type:"Feature",geometry:{type:"Point",coordinates:Object.values(h.lngLat)},properties:{id:Math.floor(Math.random()*1e3)}};this.points=this.points.concat(_)}},async setPoints(){const h=this.points.filter(w=>w==null?void 0:w.geometry),d=await tc(h);if(h.length>2){const w=my([[...h.map(P=>P.geometry.coordinates),h[0].geometry.coordinates]]);this.area=uS(w)/1e6;const T=this.map.getSource("area-linear-area");T&&T.setData(tc([w]))}else{const w=this.map.getSource("area-linear-area");w&&w.setData(tc([]))}h.length>1&&(d.features=d.features.concat(nh(h.map(w=>w.geometry.coordinates))));const _=this.map.getSource("area-measure");_&&_.setData(d)},handleDelete(h){this.points=this.points.filter(d=>d.properties.id!==h)},addCoords(){this.points=this.points.concat({type:"Feature",properties:{id:Math.floor(Math.random()*1e3)},geometry:null})},handleChange(){this.points=this.inputPoint.map(h=>{if(/^([^,]*,[^,]*)$/.test(h.value)){const d=h.value.split(",").reverse();if(d[0]<-90||d[0]>90||d[1]>180||d[1]<-180)this.$notify({type:"error",title:"Помилка",message:"Недійсні координати!"});else return{type:"Feature",geometry:{type:"Point",coordinates:d},properties:{id:h.id}}}else this.$notify({type:"error",title:"Помилка",message:"Недійсні координати!"})})},removeLinearLayer(){["area-measure-lines","area-measure-points","area-linear-area-fill","center-symbol"].forEach(_=>{this.map.getLayer(_)&&this.map.removeLayer(_)}),["area-measure","area-linear-area"].forEach(_=>{this.map.getSource(_)&&this.map.removeSource(_)}),this.area=0},createLinearLayer(){this.map.addSource("area-measure",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"area-measure-lines",type:"line",source:"area-measure",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#000","line-width":2.5},filter:["in","$type","LineString"]}),this.map.addLayer({id:"area-measure-points",type:"circle",source:"area-measure",paint:{"circle-radius":4.5,"circle-color":"#fff","circle-stroke-width":2,"circle-stroke-color":"#000"},filter:["in","$type","Point"]}),this.createAreaLayer(),this.map.on("mousemove",this.mouseMove)},mouseMove(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});this.map.getCanvas().style.cursor=d.length?"move":"crosshair"},createAreaLayer(){this.map.addSource("area-linear-area",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"area-linear-area-fill",type:"fill",source:"area-linear-area",layout:{},paint:{"fill-color":"#000","fill-opacity":.06}})},initMeasureLayer(){this.createLinearLayer(),this.map.on("mousedown","area-measure-points",this.handleDrag),this.map.on("click",this.measureMapClick),this.map.on("touchend",this.measureMapClick)},onMove(h){const d=h.lngLat;this.points=this.points.map(_=>_.properties.id===this.draggingPointId?{..._,geometry:{..._.geometry,coordinates:[d.lng,d.lat]}}:_),this.setPoints()},onUp(){this.map.off("mousemove",this.onMove),this.draggingPointId=null},handleDrag(h){h.preventDefault();const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});if(d.length){const _=d[0].properties.id;this.draggingPointId=_,this.map.on("mousemove",this.onMove),this.map.once("mouseup",this.onUp)}},closeMeasure(){this.points=[],this.map.off("touchend",this.measureMapClick),this.map.off("click",this.measureMapClick),this.map.off("mousemove",this.mouseMove),this.map.getCanvas().style.cursor="grab",this.modalVisible=!1,this.removeLinearLayer()},toggleMeasure(){!this.activeTool||this.activeTool!=="area"?this.setActiveTool&&this.setActiveTool("area"):this.setActiveTool&&this.setActiveTool(null),this.modalVisible=!this.modalVisible,this.modalVisible?this.initMeasureLayer():this.closeMeasure()}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.modalVisible,"bg-white":!this.modalVisible}}}},ZS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[60px] bg-white border rounded-[15px] p-4 z-10"},KS={class:"flex justify-between items-center border-b pb-[16px]"},GS={class:"pt-[16px]"},JS={class:"text-[14px] font-medium text-[#6B7280] mb-[16px]"},XS={key:0,ref:"distanceContainer",class:"text-[14px] font-bold"};function QS(h,d,_,w,T,P){const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("VsPopover"),B=y.resolveComponent("areaIcon");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[T.modalVisible&&_.activeTool==="area"?(y.openBlock(),y.createElementBlock("div",ZS,[y.createElementVNode("div",KS,[d[2]||(d[2]=y.createElementVNode("div",{class:"text-lg"},"Площа",-1)),y.createVNode(s,{trigger:"hover",teleport:"body"},{reference:y.withCtx(()=>[y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:d[0]||(d[0]=(...R)=>P.toggleMeasure&&P.toggleMeasure(...R))},[y.createVNode(x,{class:"cursor-pointer"})])]),default:y.withCtx(()=>[d[1]||(d[1]=y.createTextVNode(" Приховати панель "))]),_:1})]),y.createElementVNode("div",GS,[y.createElementVNode("p",JS,[T.points.length?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createTextVNode(" Натисніть на мапу, щоб додати першу точку. ")],64)),T.points.length==1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createTextVNode(" Натисніть на мапу, щоб додати другу точку. ")],64)):y.createCommentVNode("",!0),T.points.length>1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:2},[y.createTextVNode(" Продовжуйте натискати для додавання нових точок. Точки можна рухати. ")],64)):y.createCommentVNode("",!0)]),T.points.length>2?(y.openBlock(),y.createElementBlock("div",XS,[d[3]||(d[3]=y.createTextVNode(" Загальна площа: ")),y.createElementVNode("span",null,y.toDisplayString(T.area.toLocaleString())+" км²",1)],512)):y.createCommentVNode("",!0)])])):y.createCommentVNode("",!0)])),y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(B,{onClick:P.toggleMeasure,class:y.normalizeClass([P.modalButtonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[4]||(d[4]=y.createElementVNode("div",null,"Виміряти площу",-1))]),_:1})])}const YS=Gt(WS,[["render",QS],["__scopeId","data-v-024154e1"]]),$S={__name:"vs-map-widget-column",props:{position:String,widgets:Array,map:Object,mapLoaded:Boolean,cardValues:Object,hasFilters:Boolean,currentFilterLayer:Object,enabledLayerIds:Array,getWidgetComponent:Function,getColumnWidth:Function,rightColumnOffset:[String,Number],maxHeight:Number,history:Boolean},emits:["set-filter-layer","update:enabledLayerIds","cardValuesId","closeCard","content-resize"],setup(h,{expose:d,emit:_}){const w=_,T=h,P=y.ref(T.widgets.map(R=>{var M;return{...R,config:{...R.config,visible:((M=R.config)==null?void 0:M.visible)!==!1}}}));y.watch(()=>T.widgets.map(R=>R.id||R.type).join(","),()=>{P.value=T.widgets.map(R=>{var M;return{...R,config:{...R.config,visible:((M=R.config)==null?void 0:M.visible)!==!1}}})});function x(R){const M=P.value.find(F=>F.id===R);M&&M.config&&(M.config.visible=!M.config.visible,setTimeout(()=>{w("content-resize")},30))}const s=y.ref(null);d({columnRef:s});let B=null;return y.onMounted(()=>{B=new MutationObserver(()=>{var R;clearTimeout((R=s.value)==null?void 0:R._resizeTimeout),s.value._resizeTimeout=setTimeout(()=>{w("content-resize")},30)}),s.value&&B.observe(s.value,{childList:!0,subtree:!0,characterData:!0})}),y.onUnmounted(()=>{B&&B.disconnect()}),(R,M)=>h.mapLoaded?(y.openBlock(),y.createElementBlock("div",{key:0,class:y.normalizeClass(["widget-column",[y.unref(ey)(h.position)]]),ref_key:"columnRef",ref:s,style:y.normalizeStyle({maxHeight:h.maxHeight?h.maxHeight+"px":void 0,width:h.getColumnWidth(h.position),...h.rightColumnOffset?{right:h.rightColumnOffset}:{}})},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.value,F=>{var L;return y.openBlock(),y.createElementBlock(y.Fragment,{key:F.id||F.type},[F.type!=="card"?y.withDirectives((y.openBlock(),y.createBlock(y.resolveDynamicComponent(h.getWidgetComponent(F.type)),{key:0,map:h.map,config:F.config,hasFilters:h.hasFilters,currentLayer:h.currentFilterLayer,enabledLayerIds:h.enabledLayerIds,history:h.history,onSetFilterLayer:M[0]||(M[0]=A=>R.$emit("set-filter-layer",A)),"onUpdate:enabledLayerIds":M[1]||(M[1]=A=>R.$emit("update:enabledLayerIds",A)),onCardValuesId:M[2]||(M[2]=A=>R.$emit("cardValuesId",A)),onContentResize:M[3]||(M[3]=A=>R.$emit("content-resize")),onShowWidget:x,class:"widget"},null,40,["map","config","hasFilters","currentLayer","enabledLayerIds","history"])),[[y.vShow,((L=F.config)==null?void 0:L.visible)!==!1]]):y.createCommentVNode("",!0),h.cardValues&&F.type==="card"?(y.openBlock(),y.createBlock(sy,{key:1,config:F.config,cardValues:h.cardValues,class:"widget",onClose:M[4]||(M[4]=A=>R.$emit("closeCard")),onContentResize:M[5]||(M[5]=A=>R.$emit("content-resize"))},null,8,["config","cardValues"])):y.createCommentVNode("",!0)],64)}),128))],6)):y.createCommentVNode("",!0)}},eA=Gt($S,[["__scopeId","data-v-3be78334"]]),tA={class:"map-widgets"},rA={key:0,class:"absolute top-[180px] right-2 z-10 flex flex-col gap-[5px]"},iA={__name:"vs-map",props:{table:{type:String,required:!0}},setup(h){const d=h,_=y.ref(null),w=y.ref(!1);let T=null;const P=y.ref(null),x=y.ref(null),s=y.ref([]),B=y.ref([]),R=y.ref(null),M=y.ref(null),F=y.ref(null),L=["top-left","top-right","top-center","center","bottom-left","bottom-center","bottom-right"],A={"top-left":y.ref(null),"top-right":y.ref(null),"top-center":y.ref(null),center:y.ref(null),"bottom-left":y.ref(null),"bottom-center":y.ref(null),"bottom-right":y.ref(null)};function C(Ke,nt){A[Ke].value=nt==null?void 0:nt.columnRef}const H=y.ref(0),G=y.ref(0),se=y.ref(0),le=y.ref(0),Ae=y.ref(0),te=y.ref(0),de=y.ref(0);function Ce(Ke){if(!Ke){const Pt={topLeft:A["top-left"].value,topRight:A["top-right"].value,topCenter:A["top-center"].value,center:A.center.value,bottomLeft:A["bottom-left"].value,bottomRight:A["bottom-right"].value,bottomCenter:A["bottom-center"].value};Object.values(Pt).forEach(Ut=>{Ut&&(Ut.style.maxHeight="")});const{heights:mt}=hg(Pt,window.innerHeight);H.value=mt.topLeft,G.value=mt.topRight,se.value=mt.topCenter,le.value=mt.center,Ae.value=mt.bottomLeft,te.value=mt.bottomRight,de.value=mt.bottomCenter;return}const lt={"top-left":["top-left","bottom-left"],"bottom-left":["top-left","bottom-left"],"top-right":["top-right","bottom-right"],"bottom-right":["top-right","bottom-right"],"top-center":["top-center","bottom-center"],"bottom-center":["top-center","bottom-center"],center:["center"]}[Ke]||[],xt={topLeft:A["top-left"].value,topRight:A["top-right"].value,topCenter:A["top-center"].value,center:A.center.value,bottomLeft:A["bottom-left"].value,bottomRight:A["bottom-right"].value,bottomCenter:A["bottom-center"].value};lt.forEach(Pt=>{xt[Pt]&&(xt[Pt].style.maxHeight="")});const{heights:kt}=hg(xt,window.innerHeight);lt.forEach(Pt=>{xt[Pt]&&kt[Pt]&&(xt[Pt].style.maxHeight=kt[Pt]+"px")}),lt.includes("top-left")&&(H.value=kt.topLeft),lt.includes("bottom-left")&&(Ae.value=kt.bottomLeft),lt.includes("top-right")&&(G.value=kt.topRight),lt.includes("bottom-right")&&(te.value=kt.bottomRight),lt.includes("top-center")&&(se.value=kt.topCenter),lt.includes("bottom-center")&&(de.value=kt.bottomCenter),lt.includes("center")&&(le.value=kt.center)}function Ve(Ke){return!F.value||!F.value.widgets?[]:Ke==="center"?[...F.value.widgets.filter(lt=>(lt.position||{})==="center")||[],...B.value.filter(lt=>lt.position==="center")]:F.value.widgets.filter(nt=>(nt.position||{})===Ke)||[]}Hu.registerHelper("eq",(Ke,nt)=>Ke===nt),Hu.registerHelper("formatDate",Ke=>Ke?new Date(Ke).toLocaleDateString():"Немає дати"),Hu.registerHelper("get",(Ke,nt)=>(Ke==null?void 0:Ke[nt])??"");const Ze=(Ke,nt,lt)=>{try{if(Ke)if(lt==="markdown"){const xt=Ke.replace(/\{\{([^}]+)\}\}/g,(kt,Pt)=>{try{return new Function("data",`with(data) { return ${Pt} }`)(nt)}catch{return""}});return rr(xt)}else return Hu.compile(Ke)(nt)}catch(xt){return console.error("Error processing template:",xt),Ke}},vt=(Ke,nt,lt,xt,kt,Pt)=>{const mt=Ze(Ke,xt,kt),Ut=nt?Ze(nt,xt,kt):"";let It="";return lt!=null&<.length&&(It=lt.map(Sr=>{const mi=Ze(Sr.value,xt,kt);return`
|
|
822
|
+
`.trim()},blockValue:function(A){var C=this.aliasable("container.hooks.blockHelperMissing"),H=[this.contextName(0)];this.setupHelperArgs(A,0,H);var G=this.popStack();H.splice(1,0,G),this.push(this.source.functionCall(C,"call",H))},ambiguousBlockValue:function(){var A=this.aliasable("container.hooks.blockHelperMissing"),C=[this.contextName(0)];this.setupHelperArgs("",0,C,!0),this.flushInline();var H=this.topStack();C.splice(1,0,H),this.pushSource(["if (!",this.lastHelper,") { ",H," = ",this.source.functionCall(A,"call",C),"}"])},appendContent:function(A){this.pendingContent?A=this.pendingContent+A:this.pendingLocation=this.source.currentLocation,this.pendingContent=A},append:function(){if(this.isInline())this.replaceStack(function(C){return[" != null ? ",C,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var A=this.popStack();this.pushSource(["if (",A," != null) { ",this.appendToBuffer(A,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(A){this.lastContext=A},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(A,C,H,G){var se=0;!G&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(A[se++])):this.pushContext(),this.resolvePath("context",A,se,C,H)},lookupBlockParam:function(A,C){this.useBlockParams=!0,this.push(["blockParams[",A[0],"][",A[1],"]"]),this.resolvePath("context",C,1)},lookupData:function(A,C,H){A?this.pushStackLiteral("container.data(data, "+A+")"):this.pushStackLiteral("data"),this.resolvePath("data",C,0,!0,H)},resolvePath:function(A,C,H,G,se){var le=this;if(this.options.strict||this.options.assumeObjects){this.push(F(this.options.strict&&se,this,C,H,A));return}for(var Ae=C.length;H<Ae;H++)this.replaceStack(function(te){var de=le.nameLookup(te,C[H],A);return G?[" && ",de]:[" != null ? ",de," : ",te]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(A,C){this.pushContext(),this.pushString(C),C!=="SubExpression"&&(typeof A=="string"?this.pushString(A):this.pushStackLiteral(A))},emptyHash:function(A){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(A?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var A=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(A.ids)),this.stringParams&&(this.push(this.objectLiteral(A.contexts)),this.push(this.objectLiteral(A.types))),this.push(this.objectLiteral(A.values))},pushString:function(A){this.pushStackLiteral(this.quotedString(A))},pushLiteral:function(A){this.pushStackLiteral(A)},pushProgram:function(A){A!=null?this.pushStackLiteral(this.programExpression(A)):this.pushStackLiteral(null)},registerDecorator:function(A,C){var H=this.nameLookup("decorators",C,"decorator"),G=this.setupHelperArgs(C,A);this.decorators.push(["fn = ",this.decorators.functionCall(H,"",["fn","props","container",G])," || fn;"])},invokeHelper:function(A,C,H){var G=this.popStack(),se=this.setupHelper(A,C),le=[];H&&le.push(se.name),le.push(G),this.options.strict||le.push(this.aliasable("container.hooks.helperMissing"));var Ae=["(",this.itemsSeparatedBy(le,"||"),")"],te=this.source.functionCall(Ae,"call",se.callParams);this.push(te)},itemsSeparatedBy:function(A,C){var H=[];H.push(A[0]);for(var G=1;G<A.length;G++)H.push(C,A[G]);return H},invokeKnownHelper:function(A,C){var H=this.setupHelper(A,C);this.push(this.source.functionCall(H.name,"call",H.callParams))},invokeAmbiguous:function(A,C){this.useRegister("helper");var H=this.popStack();this.emptyHash();var G=this.setupHelper(0,A,C),se=this.lastHelper=this.nameLookup("helpers",A,"helper"),le=["(","(helper = ",se," || ",H,")"];this.options.strict||(le[0]="(helper = ",le.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"))),this.push(["(",le,G.paramsInit?["),(",G.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",G.callParams)," : helper))"])},invokePartial:function(A,C,H){var G=[],se=this.setupParams(C,1,G);A&&(C=this.popStack(),delete se.name),H&&(se.indent=JSON.stringify(H)),se.helpers="helpers",se.partials="partials",se.decorators="container.decorators",A?G.unshift(C):G.unshift(this.nameLookup("partials",C,"partial")),this.options.compat&&(se.depths="depths"),se=this.objectLiteral(se),G.push(se),this.push(this.source.functionCall("container.invokePartial","",G))},assignToHash:function(A){var C=this.popStack(),H=void 0,G=void 0,se=void 0;this.trackIds&&(se=this.popStack()),this.stringParams&&(G=this.popStack(),H=this.popStack());var le=this.hash;H&&(le.contexts[A]=H),G&&(le.types[A]=G),se&&(le.ids[A]=se),le.values[A]=C},pushId:function(A,C,H){A==="BlockParam"?this.pushStackLiteral("blockParams["+C[0]+"].path["+C[1]+"]"+(H?" + "+JSON.stringify("."+H):"")):A==="PathExpression"?this.pushString(C):A==="SubExpression"?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:M,compileChildren:function(A,C){for(var H=A.children,G=void 0,se=void 0,le=0,Ae=H.length;le<Ae;le++){G=H[le],se=new this.compiler;var te=this.matchExistingProgram(G);if(te==null){this.context.programs.push("");var de=this.context.programs.length;G.index=de,G.name="program"+de,this.context.programs[de]=se.compile(G,C,this.context,!this.precompile),this.context.decorators[de]=se.decorators,this.context.environments[de]=G,this.useDepths=this.useDepths||se.useDepths,this.useBlockParams=this.useBlockParams||se.useBlockParams,G.useDepths=this.useDepths,G.useBlockParams=this.useBlockParams}else G.index=te.index,G.name="program"+te.index,this.useDepths=this.useDepths||te.useDepths,this.useBlockParams=this.useBlockParams||te.useBlockParams}},matchExistingProgram:function(A){for(var C=0,H=this.context.environments.length;C<H;C++){var G=this.context.environments[C];if(G&&G.equals(A))return G}},programExpression:function(A){var C=this.environment.children[A],H=[C.index,"data",C.blockParams];return(this.useBlockParams||this.useDepths)&&H.push("blockParams"),this.useDepths&&H.push("depths"),"container.program("+H.join(", ")+")"},useRegister:function(A){this.registers[A]||(this.registers[A]=!0,this.registers.list.push(A))},push:function(A){return A instanceof R||(A=this.source.wrap(A)),this.inlineStack.push(A),A},pushStackLiteral:function(A){this.push(new R(A))},pushSource:function(A){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),A&&this.source.push(A)},replaceStack:function(A){var C=["("],H=void 0,G=void 0,se=void 0;if(!this.isInline())throw new P.default("replaceStack on non-inline");var le=this.popStack(!0);if(le instanceof R)H=[le.value],C=["(",H],se=!0;else{G=!0;var Ae=this.incrStack();C=["((",this.push(Ae)," = ",le,")"],H=this.topStack()}var te=A.call(this,H);se||this.popStack(),G&&this.stackSlot--,this.push(C.concat(te,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var A=this.inlineStack;this.inlineStack=[];for(var C=0,H=A.length;C<H;C++){var G=A[C];if(G instanceof R)this.compileStack.push(G);else{var se=this.incrStack();this.pushSource([se," = ",G,";"]),this.compileStack.push(se)}}},isInline:function(){return this.inlineStack.length},popStack:function(A){var C=this.isInline(),H=(C?this.inlineStack:this.compileStack).pop();if(!A&&H instanceof R)return H.value;if(!C){if(!this.stackSlot)throw new P.default("Invalid stack pop");this.stackSlot--}return H},topStack:function(){var A=this.isInline()?this.inlineStack:this.compileStack,C=A[A.length-1];return C instanceof R?C.value:C},contextName:function(A){return this.useDepths&&A?"depths["+A+"]":"depth"+A},quotedString:function(A){return this.source.quotedString(A)},objectLiteral:function(A){return this.source.objectLiteral(A)},aliasable:function(A){var C=this.aliases[A];return C?(C.referenceCount++,C):(C=this.aliases[A]=this.source.wrap(A),C.aliasable=!0,C.referenceCount=1,C)},setupHelper:function(A,C,H){var G=[],se=this.setupHelperArgs(C,A,G,H),le=this.nameLookup("helpers",C,"helper"),Ae=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:G,paramsInit:se,name:le,callParams:[Ae].concat(G)}},setupParams:function(A,C,H){var G={},se=[],le=[],Ae=[],te=!H,de=void 0;te&&(H=[]),G.name=this.quotedString(A),G.hash=this.popStack(),this.trackIds&&(G.hashIds=this.popStack()),this.stringParams&&(G.hashTypes=this.popStack(),G.hashContexts=this.popStack());var Ce=this.popStack(),Ve=this.popStack();(Ve||Ce)&&(G.fn=Ve||"container.noop",G.inverse=Ce||"container.noop");for(var Ze=C;Ze--;)de=this.popStack(),H[Ze]=de,this.trackIds&&(Ae[Ze]=this.popStack()),this.stringParams&&(le[Ze]=this.popStack(),se[Ze]=this.popStack());return te&&(G.args=this.source.generateArray(H)),this.trackIds&&(G.ids=this.source.generateArray(Ae)),this.stringParams&&(G.types=this.source.generateArray(le),G.contexts=this.source.generateArray(se)),this.options.data&&(G.data="data"),this.useBlockParams&&(G.blockParams="blockParams"),G},setupHelperArgs:function(A,C,H,G){var se=this.setupParams(A,C,H);return se.loc=JSON.stringify(this.source.currentLocation),se=this.objectLiteral(se),G?(this.useRegister("options"),H.push("options"),["options=",se]):H?(H.push(se),""):se}},function(){for(var L="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),A=M.RESERVED_WORDS={},C=0,H=L.length;C<H;C++)A[L[C]]=!0}(),M.isValidJavaScriptVariableName=function(L){return!M.RESERVED_WORDS[L]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(L)};function F(L,A,C,H,G){var se=A.popStack(),le=C.length;for(L&&le--;H<le;H++)se=A.nameLookup(se,C[H],G);return L?[A.aliasable("container.strict"),"(",se,", ",A.quotedString(C[H]),", ",JSON.stringify(A.source.currentLocation)," )"]:se}d.default=M,h.exports=d.default}(Nu,Nu.exports)),Nu.exports}var lg;function H2(){return lg||(lg=1,function(h,d){d.__esModule=!0;function _(le){return le&&le.__esModule?le:{default:le}}var w=P2(),T=_(w),P=uy(),x=_(P),s=R2(),B=D2(),R=j2(),M=_(R),F=hy(),L=_(F),A=cy(),C=_(A),H=T.default.create;function G(){var le=H();return le.compile=function(Ae,te){return B.compile(Ae,te,le)},le.precompile=function(Ae,te){return B.precompile(Ae,te,le)},le.AST=x.default,le.Compiler=B.Compiler,le.JavaScriptCompiler=M.default,le.Parser=s.parser,le.parse=s.parse,le.parseWithoutProcessing=s.parseWithoutProcessing,le}var se=G();se.create=G,C.default(se),se.Visitor=L.default,se.default=se,d.default=se,h.exports=d.default}(vu,vu.exports)),vu.exports}var W2=H2();const Hu=Yg(W2);function cg(h,d,_,w){const T=h+d;let P=0,x=0;if(T<=_)P=h,x=d;else{const s=_/2;if(h>s&&d>s)P=s-w,x=s-w;else{const B=Math.min(h,d),R=_-B;h>d?(P=Math.max(R,100)-w,x=B):(P=B,x=Math.max(R,100)-w)}}return{topMaxHeight:P,bottomMaxHeight:x}}function Wu(h,d,_,w){if(!h)return!1;const T=_-w*2-((d==null?void 0:d.scrollHeight)||0);return h.scrollHeight>T}function Z2(h,d,_){const w=d-_*2;return Math.min(h,w)}function ug(h,d,_){const w=(d-_*3)/2;return Math.min(h,w)}function hg(h,d){var Ae,te,de,Ce,Ve,Ze,vt;const w=d-80,T=((Ae=h.topLeft)==null?void 0:Ae.scrollHeight)||0,P=((te=h.bottomLeft)==null?void 0:te.scrollHeight)||0,{topMaxHeight:x,bottomMaxHeight:s}=cg(T,P,w,40),B=((de=h.topRight)==null?void 0:de.scrollHeight)||0,R=((Ce=h.bottomRight)==null?void 0:Ce.scrollHeight)||0,{topMaxHeight:M,bottomMaxHeight:F}=cg(B,R,w,40),L=((Ve=h.center)==null?void 0:Ve.scrollHeight)||0,A=Z2(L,d,40),C=((Ze=h.topCenter)==null?void 0:Ze.scrollHeight)||0,H=ug(C,d,40),G=((vt=h.bottomCenter)==null?void 0:vt.scrollHeight)||0,se=ug(G,d,40),le={topLeft:Wu(h.topLeft,h.bottomLeft,d,40),topRight:Wu(h.topRight,h.bottomRight,d,40),topCenter:C>H,center:L>A,bottomLeft:Wu(h.bottomLeft,h.topLeft,d,40),bottomRight:Wu(h.bottomRight,h.topRight,d,40),bottomCenter:G>se};return{heights:{topLeft:x,topRight:M,topCenter:H,center:A,bottomLeft:s,bottomRight:F,bottomCenter:se},hasScroll:le}}const K2="data:image/jpeg;base64,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",G2="data:image/jpeg;base64,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",J2="data:image/jpeg;base64,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",X2={"diagonal-stripes":K2,dots:G2,crosshatch:J2};async function Q2(h){for(const[d,_]of Object.entries(X2))if(!h.hasImage(d))try{const w=await h.loadImage(_);h.addImage(d,w.data)}catch(w){console.error(`Failed to load pattern image: ${d}`,w)}}const Y2={key:0,class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"},$2={key:0,class:"p-5 pb-3 flex justify-between items-center"},ew={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},tw={class:"flex flex-col justify-between h-full"},rw={__name:"vs-filters-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0},enabledLayerIds:{type:Array,default:()=>[]}},setup(h){const d=h,_=y.ref(0),w=y.ref(null),T=y.computed(()=>{var B;return((B=d.config)==null?void 0:B.filters)||[]}),P=y.computed(()=>T.value.map(B=>({...B,id:B.name}))),x=y.computed(()=>{var R;const B=(R=d.config)==null?void 0:R.conditions;return!B||!B.layers?!0:d.enabledLayerIds.some(M=>B.layers.includes(M))}),s=async({url:B})=>{var L;const R=(L=d.config)==null?void 0:L.conditions,M=(R==null?void 0:R.layers)||[],F=d.enabledLayerIds.filter(A=>M.includes(A));F.length&&F.forEach(A=>{const C=d.map.getSource(A);if(C){const G=C.tiles[0].split("?filter=")[0],se=B?`${G}?filter=${B}`:G;C.setTiles([se])}})};return y.watch(()=>d.enabledLayerIds,B=>{(!B||!B.length)&&w.value&&(w.value.activeFilters={},_.value=0)}),y.watch(()=>{var B;return(B=w.value)==null?void 0:B.activeFilters},B=>{_.value=Object.keys(B||{}).length},{deep:!0}),(B,R)=>{const M=y.resolveComponent("VsFilter");return x.value?(y.openBlock(),y.createElementBlock("div",Y2,[h.config.title?(y.openBlock(),y.createElementBlock("div",$2,[y.createElementVNode("h2",ew,y.toDisplayString(h.config.title),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",tw,[y.createVNode(M,{ref_key:"filter",ref:w,scheme:P.value,header:!1,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:s},null,8,["scheme"])])])):y.createCommentVNode("",!0)}}},iw={type:"button",class:"py-2 px-2.5 inline-flex items-center gap-x-1.5 text-sm font-medium rounded-lg bg-white text-gray-800 hover:bg-gray-50 focus:outline-none focus:bg-gray-49 h-[38px] shadow-md"},nw={class:"flex gap-[5px] items-center"},sw={class:"text-gray-600"},ow={key:0,class:"w-[16px] h-[16px] font-medium bg-gray-800 text-white rounded-full flex items-center justify-center text-[10px]"},aw={__name:"vs-inline-filters-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0},enabledLayerIds:{type:Array,default:()=>[]}},setup(h){const d=h,_=y.ref(0),w=y.ref(null),T=y.computed(()=>{var R;return((R=d.config)==null?void 0:R.filters)||[]}),P=y.computed(()=>T.value.map(R=>({...R,id:R.name}))),x=y.computed(()=>{var M;const R=(M=d.config)==null?void 0:M.conditions;return!R||!R.layers?!0:d.enabledLayerIds.some(F=>R.layers.includes(F))}),s=y.computed(()=>{var R;if(d.enabledLayerIds&&d.enabledLayerIds.length){const F=(((R=d.config)==null?void 0:R.layers)||[]).find(L=>L.id===d.enabledLayerIds[0]);return(F==null?void 0:F.title)||(F==null?void 0:F.name)||(F==null?void 0:F.label)||d.enabledLayerIds[0]}return""}),B=async({url:R})=>{var A,C;const M=(A=d.config)==null?void 0:A.conditions;if(!M){const H=(C=d.config)==null?void 0:C.layer_id;if(!H)return;const G=d.map.getSource(H);if(G){const le=G.tiles[0].split("?filter=")[0],Ae=R?`${le}?filter=${R}`:le;G.setTiles([Ae])}return}const F=(M==null?void 0:M.layers)||[],L=d.enabledLayerIds.filter(H=>F.includes(H));L.length&&L.forEach(H=>{const G=d.map.getSource(H);if(G){const le=G.tiles[0].split("?filter=")[0],Ae=R?`${le}?filter=${R}`:le;G.setTiles([Ae])}})};return y.watch(()=>d.enabledLayerIds,R=>{(!R||!R.length)&&w.value&&(w.value.activeFilters={},_.value=0)}),y.watch(()=>{var R;return(R=w.value)==null?void 0:R.activeFilters},R=>{_.value=Object.keys(R||{}).length},{deep:!0}),(R,M)=>{const F=y.resolveComponent("VsPopover"),L=y.resolveComponent("VsFilterList");return x.value&&P.value.length?(y.openBlock(),y.createBlock(L,{key:0,ref_key:"filter",ref:w,isDialog:h.config.dialog??!0,scheme:P.value,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:B},{button:y.withCtx(({visible:A})=>[y.createVNode(F,{teleport:"body",trigger:"hover",placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("button",iw,[y.createElementVNode("div",nw,[M[0]||(M[0]=y.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[y.createElementVNode("path",{d:"M12 20L9 21V12.5L4.52 7.572C4.18545 7.20393 4.00005 6.7244 4 6.227V4H20V6.172C19.9999 6.70239 19.7891 7.21101 19.414 7.586L15 12",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M21.121 20.1209C21.5406 19.7014 21.8265 19.1668 21.9423 18.5849C22.0581 18.0029 21.9988 17.3997 21.7717 16.8514C21.5447 16.3032 21.1602 15.8346 20.6668 15.5049C20.1734 15.1752 19.5934 14.9993 19 14.9993C18.4066 14.9993 17.8266 15.1752 17.3332 15.5049C16.8398 15.8346 16.4553 16.3032 16.2283 16.8514C16.0012 17.3997 15.9419 18.0029 16.0577 18.5849C16.1735 19.1668 16.4594 19.7014 16.879 20.1209C17.297 20.5399 18.004 21.1659 19 21.9999C20.051 21.1099 20.759 20.4839 21.121 20.1209Z",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M19 18V18.01",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),y.createElementVNode("span",sw,y.toDisplayString(s.value),1),_.value?(y.openBlock(),y.createElementBlock("span",ow,y.toDisplayString(_.value),1)):y.createCommentVNode("",!0)])])]),default:y.withCtx(()=>[M[1]||(M[1]=y.createTextVNode(" Відкрити бокову панель "))]),_:1,__:[1]})]),_:1},8,["isDialog","scheme"])):y.createCommentVNode("",!0)}}},lw={name:"VsListWidget",props:{config:{type:Object,required:!0}},data(){return{items:[],total:0,currentPage:1,limit:10,rootEl:null,resizeObserver:null}},methods:{async fetchData(){try{const h=await gr.get(this.config.api,{params:{page:this.currentPage,limit:this.limit}});this.items=h.data.rows,this.total=h.data.total,this.$emit("content-resize")}catch(h){console.error("Error fetching data:",h)}},handlePageChange(h){this.currentPage=h,this.fetchData()},changeLimit(h){this.limit=h,this.currentPage=1,this.fetchData()}},mounted(){this.fetchData(),this.resizeObserver=new ResizeObserver(()=>{this.$emit("content-resize")}),this.$nextTick(()=>{this.$refs.rootEl&&this.resizeObserver.observe(this.$refs.rootEl)})},beforeUnmount(){this.resizeObserver&&this.$refs.rootEl&&(this.resizeObserver.unobserve(this.$refs.rootEl),this.resizeObserver.disconnect())}},cw={class:"bg-white p-4 rounded-lg h-full flex flex-col overflow-hidden",ref:"rootEl"},uw={key:0,class:"flex flex-col flex-1 overflow-hidden"},hw={class:"space-y-0 overflow-y-auto flex-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},pw=["onClick"],dw={class:"text-base font-medium"},fw={class:"mt-2 flex flex-wrap gap-2"},mw={key:1,class:"px-2 py-1 text-sm bg-gray-100 rounded-full"},gw={key:0,class:"my-5 pr-2"},yw={class:"paginationWrapper relative flex justify-center"},_w={key:1,class:"text-center text-slate-400"};function vw(h,d,_,w,T,P){var s;const x=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",cw,[d[0]||(d[0]=y.createElementVNode("h2",{class:"text-xl font-semibold mb-4"},"Список",-1)),((s=T.items)==null?void 0:s.length)>0?(y.openBlock(),y.createElementBlock("div",uw,[y.createElementVNode("div",hw,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.items,B=>(y.openBlock(),y.createElementBlock("div",{key:B.id,class:"py-4 border-b last:border-b-0 hover:bg-gray-50",onClick:R=>h.$emit("cardValuesId",B.id)},[y.createElementVNode("h3",dw,y.toDisplayString(B.name),1),y.createElementVNode("div",fw,[B.status_data?(y.openBlock(),y.createElementBlock("span",{key:0,class:y.normalizeClass(["px-2 py-1 text-sm rounded-full",{"bg-green-100 text-green-800":B.status_data.color==="green","bg-red-100 text-red-800":B.status_data.color==="red"}])},y.toDisplayString(B.status_data.text),3)):y.createCommentVNode("",!0),B.class_mbd_id_data?(y.openBlock(),y.createElementBlock("span",mw,y.toDisplayString(B.class_mbd_id_data.text),1)):y.createCommentVNode("",!0)])],8,pw))),128))]),T.total>T.limit?(y.openBlock(),y.createElementBlock("div",gw,[y.createElementVNode("div",yw,[y.createVNode(x,{total:T.total,maxPages:4,defaultPage:T.currentPage,pageSize:T.limit,goTo:!1,size:"medium",onPageChange:P.handlePageChange,backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[5,10,20,50],onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])):y.createCommentVNode("",!0)])):(y.openBlock(),y.createElementBlock("div",_w,"Немає даних"))],512)}const xw=Gt(lw,[["render",vw]]),bw={class:"map-skeleton-loader"},ww={__name:"vs-skeleton-loader",setup(h){return(d,_)=>(y.openBlock(),y.createElementBlock("div",bw,_[0]||(_[0]=[y.createElementVNode("div",{class:"dot-pulse"},null,-1)])))}},Sw=Gt(ww,[["__scopeId","data-v-954c1e03"]]),Aw={},kw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Tw(h,d){return y.openBlock(),y.createElementBlock("svg",kw,d[0]||(d[0]=[y.createElementVNode("title",null,"Globe Icon",-1),y.createElementVNode("desc",null," A circular representation of a globe with horizontal and vertical lines ",-1),y.createElementVNode("path",{d:"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M2 12H22",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M12 2C14.5013 4.73835 15.9228 8.29203 16 12C15.9228 15.708 14.5013 19.2616 12 22C9.49872 19.2616 8.07725 15.708 8 12C8.07725 8.29203 9.49872 4.73835 12 2Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const Cw=Gt(Aw,[["render",Tw]]),Ew={components:{homeIcon:Cw},name:"vs-homezoom",props:{map:{type:Object},initialView:{type:Object,default:()=>({})}},methods:{homeZoom(){!this.map||!this.initialView||(this.initialView.bbox?this.map.fitBounds(this.initialView.bbox,{duration:0,padding:10}):this.initialView.center&&this.initialView.zoom!==void 0&&(this.map.setCenter(this.initialView.center),this.map.setZoom(this.initialView.zoom)),this.initialView.pitch!==void 0&&this.map.setPitch(this.initialView.pitch),this.initialView.bearing!==void 0&&this.map.setBearing(this.initialView.bearing))}},computed:{}};function Pw(h,d,_,w,T,P){const x=y.resolveComponent("homeIcon"),s=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",null,[y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(x,{onClick:P.homeZoom,class:"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"},null,8,["onClick"])]),default:y.withCtx(()=>[d[0]||(d[0]=y.createElementVNode("div",null,"Повернутися до початкових налаштувань",-1))]),_:1,__:[0]})])}const Iw=Gt(Ew,[["render",Pw]]),Mw={},Lw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Rw(h,d){return y.openBlock(),y.createElementBlock("svg",Lw,d[0]||(d[0]=[y.createElementVNode("title",null,"Document with Two Sections Icon",-1),y.createElementVNode("desc",null,"A document icon with a split design indicating two sections",-1),y.createElementVNode("path",{d:"M6 9V2H18V9",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M6 18H4C3.46957 18 2.96086 17.7893 2.58579 17.4142C2.21071 17.0391 2 16.5304 2 16V11C2 10.4696 2.21071 9.96086 2.58579 9.58579C2.96086 9.21071 3.46957 9 4 9H20C20.5304 9 21.0391 9.21071 21.4142 9.58579C21.7893 9.96086 22 10.4696 22 11V16C22 16.5304 21.7893 17.0391 21.4142 17.4142C21.0391 17.7893 20.5304 18 20 18H18",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M18 14H6V22H18V14Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const Dw=Gt(Mw,[["render",Rw]]),zw={components:{printIcon:Dw},props:{map:{type:Object},activeTool:String,setActiveTool:Function},data(){return{printVisible:!1,scriptElements:[],styleElements:[],resourcesLoaded:!1}},watch:{activeTool(h){h!=="print"?this.printVisible=!1:this.init()},async printVisible(h){!this.resourcesLoaded&&h?(await this.loadResources(),this.init(),this.simulateClick()):this.removeResources()},activeTool(h,d){h!=="print"&&d==="print"&&(this.closePrint&&this.closePrint(),this.printVisible=!1),h==="print"&&!this.printVisible&&(this.printVisible=!0,this.init())}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.printVisible,"bg-white":!this.printVisible}}},mounted(){document.addEventListener("click",h=>{const d=document.querySelector(".mapboxgl-export-list");if(d&&d.contains(h.target)){h.stopPropagation();return}!h.target.classList.contains("mapboxgl-export-list")&&!h.target.classList.contains("print-button")&&!h.target.classList.contains("mapboxgl-export-control")&&!h.target.id.includes("mapbox-gl-export")&&(this.printVisible=!1)})},methods:{addScript(h){return new Promise((d,_)=>{const w=document.createElement("script");w.src=h,w.async=!0,w.onload=d,w.onerror=_,document.head.appendChild(w),this.scriptElements.push(w)})},addStyle(h){return new Promise((d,_)=>{const w=document.createElement("link");w.href=h,w.rel="stylesheet",w.type="text/css",w.onload=d,w.onerror=_,document.head.appendChild(w),this.styleElements.push(w)})},async loadResources(){try{await this.addStyle("https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/3.8.0/mapbox-gl.min.css"),await this.addScript("https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/3.8.0/mapbox-gl.js"),await this.addStyle("https://cdn.jsdelivr.net/npm/@watergis/mapbox-gl-export@3.5.4/dist/mapbox-gl-export.min.css"),await this.addScript("https://cdn.jsdelivr.net/npm/@watergis/mapbox-gl-export@3.5.4/dist/mapbox-gl-export.umd.min.js"),this.resourcesLoaded=!0}catch(h){console.error("Failed to load resources:",h)}},removeResources(){this.scriptElements.forEach(h=>{h.parentNode&&h.parentNode.removeChild(h)}),this.scriptElements=[],this.styleElements.forEach(h=>{h.parentNode&&h.parentNode.removeChild(h)}),this.styleElements=[],this.resourcesLoaded=!1},async toggleResources(){this.printVisible=!this.printVisible},init(){if(!window.MapboxExportControl){console.error("MapboxExportControl is not loaded.");return}window.mapboxgl.accessToken="pk.eyJ1Ijoia3Jpemhhbm92c2t5IiwiYSI6ImNsemkxNWtkODA5dDcycnNhMWZzYWM0MTAifQ.6fEpgfd_2mA4UYuflDewpQ";const{MapboxExportControl:h,Size:d,PageOrientation:_,Format:w,DPI:T}=window.MapboxExportControl;this.map.addControl(new h({PageSize:d.A3,PageOrientation:_.Portrait,Format:w.PNG,DPI:T[96],Crosshair:!0,PrintableArea:!0,Local:"uk"}))},simulateClick(){new Promise(d=>{const _=setTimeout(()=>{const w=document.querySelector(".mapboxgl-export-control");w&&(clearInterval(_),d(w))},100)}).then(d=>{d.click()}).catch(()=>{console.error("Print button not found.")})},togglePrint(){!this.activeTool||this.activeTool!=="print"?this.setActiveTool&&this.setActiveTool("print"):this.setActiveTool&&this.setActiveTool(null),this.printVisible=!this.printVisible,this.printVisible?this.init():this.removeResources()}}};function Bw(h,d,_,w,T,P){const x=y.resolveComponent("printIcon"),s=y.resolveComponent("VsPopover");return y.openBlock(),y.createBlock(s,{trigger:"hover",placement:"left",teleport:"body"},{reference:y.withCtx(()=>[y.createVNode(x,{onClick:P.togglePrint,class:y.normalizeClass([P.modalButtonClasses,"print-button w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[0]||(d[0]=y.createElementVNode("div",null,"Надрукувати",-1))]),_:1,__:[0]})}const Vw=Gt(zw,[["render",Bw]]),Fw={props:{map:{type:Object,required:!0}},data(){return{is3D:!1}},mounted(){this.map.on("move",this.updateViewStatus),this.updateViewStatus()},beforeUnmount(){this.map.off("move",this.updateViewStatus)},methods:{toggleView(){this.is3D?this.map.easeTo({pitch:0,bearing:0,duration:1e3}):this.map.easeTo({pitch:60,bearing:-29.6,duration:1e3})},updateViewStatus(){this.is3D=this.map.getPitch()!==0}}};function Ow(h,d,_,w,T,P){const x=y.resolveComponent("VsPopover");return y.openBlock(),y.createBlock(x,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:"font-light w-full h-[44px] p-[9px] [transition:.3s] hover:[transition:.3s] text-[19px] hover:bg-[#DBEAFE] flex cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]",onClick:d[0]||(d[0]=(...s)=>P.toggleView&&P.toggleView(...s))},y.toDisplayString(T.is3D?"2D":"3D"),1)]),default:y.withCtx(()=>[d[1]||(d[1]=y.createElementVNode("div",null,"Перемикач виду",-1))]),_:1,__:[1]})}const Nw=Gt(Fw,[["render",Ow]]),qw={},Uw={class:"shrink-0 size-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function jw(h,d){return y.openBlock(),y.createElementBlock("svg",Uw,d[0]||(d[0]=[y.createElementVNode("path",{d:"M18 6 6 18"},null,-1),y.createElementVNode("path",{d:"m6 6 12 12"},null,-1)]))}const fd=Gt(qw,[["render",jw]]),Hw={props:{bgColor:{type:String,default:"#1E40AF"}}},Ww={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Zw=["stroke"],Kw=["stroke"],Gw=["stroke"],Jw=["stroke"],Xw=["stroke"],Qw=["stroke"];function Yw(h,d,_,w,T,P){return y.openBlock(),y.createElementBlock("svg",Ww,[d[0]||(d[0]=y.createElementVNode("title",null,"Target Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"A target icon with a circular pattern inside a rounded square",-1)),y.createElementVNode("path",{d:"M2 12H5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Zw),y.createElementVNode("path",{d:"M19 12H22",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Kw),y.createElementVNode("path",{d:"M12 2V5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Gw),y.createElementVNode("path",{d:"M12 19V22",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Jw),y.createElementVNode("path",{d:"M12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Xw),y.createElementVNode("path",{d:"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Qw)])}const $w=Gt(Hw,[["render",Yw]]),{Marker:eS}=$p,tS={components:{geoIcon:$w,closeIcon:fd},data(){return{location:null,data:null,marker:null,showLocation:!1}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.showLocation,"bg-white":!this.showLocation}}},props:{map:{type:Object}},beforeUnmount(){var h;(h=this.marker)==null||h.remove()},watch:{activeControl(h,d){h!=="geolocation"&&d==="geolocation"&&(this.showLocation=!1,this.closeGeolocation())}},methods:{togleGeolocation(){this.showLocation=!this.showLocation,this.showLocation?this.getUserLocation():(this.closeGeolocation(),this.activeControl="no")},getUserLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(this.onGeolocationSuccess,this.onGeolocationError):(this.showLocation=!1,this.activeControl="no",this.$notify({type:"error",title:"Помилка",message:"Цей браузер не підтримує геолокацію"}),this.$emit("close"))},async onGeolocationSuccess(h){this.location={latitude:h.coords.latitude,longitude:h.coords.longitude};const _=await(await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${this.location.latitude}&lon=${this.location.longitude}`)).json();this.data=_.address;const w=[this.location.longitude,this.location.latitude],T=[[parseFloat(_.boundingbox[2]),parseFloat(_.boundingbox[0])],[parseFloat(_.boundingbox[3]),parseFloat(_.boundingbox[1])]];this.map.fitBounds(T,{padding:200,maxZoom:16}),this.marker||(this.marker=new eS({color:"var(--primary)"})),this.marker.setLngLat(w).addTo(this.map),this.activeControl="geolocation"},closeGeolocation(){this.showLocation=!1,this.marker&&(this.marker.remove(),this.marker=null),this.location=null,this.data=null},onGeolocationError(){this.showLocation=!1,this.activeControl="no",this.$notify({type:"error",title:"Помилка",message:"Для визначення геолокації потрібен HTTPS протокол"}),this.$emit("close")}}},rS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[70px] bg-white border rounded-[15px] p-4 z-10"},iS={class:"flex justify-between items-center border-b pb-[16px]"},nS={class:"d-flex"},sS={class:"pt-[16px]"};function oS(h,d,_,w,T,P){var R,M,F,L,A,C;const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("geoIcon"),B=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[T.location?(y.openBlock(),y.createElementBlock("div",rS,[y.createElementVNode("div",iS,[d[0]||(d[0]=y.createElementVNode("div",{class:"text-lg font-semibold"},"Ваша геолокація",-1)),y.createElementVNode("div",nS,[y.createVNode(x,{onClick:P.closeGeolocation},null,8,["onClick"])])]),y.createElementVNode("div",sS,[y.createElementVNode("div",null,[d[1]||(d[1]=y.createElementVNode("strong",null,"Широта:",-1)),y.createTextVNode(" "+y.toDisplayString((R=T.location)==null?void 0:R.latitude),1)]),y.createElementVNode("div",null,[d[2]||(d[2]=y.createElementVNode("strong",null,"Довгота:",-1)),y.createTextVNode(" "+y.toDisplayString((M=T.location)==null?void 0:M.longitude),1)]),y.createElementVNode("div",null,[d[3]||(d[3]=y.createElementVNode("strong",null,"КраЇна:",-1)),y.createTextVNode(" "+y.toDisplayString((F=T.data)==null?void 0:F.country),1)]),y.createElementVNode("div",null,[d[4]||(d[4]=y.createElementVNode("strong",null,"Код країни:",-1)),y.createTextVNode(" "+y.toDisplayString((L=T.data)==null?void 0:L.country_code),1)]),y.createElementVNode("div",null,[d[5]||(d[5]=y.createElementVNode("strong",null,"Місто:",-1)),y.createTextVNode(" "+y.toDisplayString((A=T.data)==null?void 0:A.city),1)]),y.createElementVNode("div",null,[d[6]||(d[6]=y.createElementVNode("strong",null,"Поштовий індекс:",-1)),y.createTextVNode(" "+y.toDisplayString((C=T.data)==null?void 0:C.postcode),1)])])])):y.createCommentVNode("",!0)])),y.createVNode(B,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(s,{onClick:P.togleGeolocation,class:y.normalizeClass([P.modalButtonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[7]||(d[7]=y.createElementVNode("div",null,"Дізнатися геолокацію",-1))]),_:1,__:[7]})])}const aS=Gt(tS,[["render",oS]]);var pg=63710088e-1;function lS(h,d){var _,w,T,P,x,s,B,R,M,F,L=0,A=h.type==="FeatureCollection",C=h.type==="Feature",H=A?h.features.length:1;for(_=0;_<H;_++){for(s=A?h.features[_].geometry:C?h.geometry:h,R=A?h.features[_].properties:C?h.properties:{},M=A?h.features[_].bbox:C?h.bbox:void 0,F=A?h.features[_].id:C?h.id:void 0,B=s?s.type==="GeometryCollection":!1,x=B?s.geometries.length:1,T=0;T<x;T++){if(P=B?s.geometries[T]:s,P===null){if(d(null,L,R,M,F)===!1)return!1;continue}switch(P.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(d(P,L,R,M,F)===!1)return!1;break}case"GeometryCollection":{for(w=0;w<P.geometries.length;w++)if(d(P.geometries[w],L,R,M,F)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}L++}}function cS(h,d,_){var w=_;return lS(h,function(T,P,x,s,B){P===0&&_===void 0?w=T:w=d(w,T,P,x,s,B)}),w}function uS(h){return cS(h,(d,_)=>d+hS(_),0)}function hS(h){let d=0,_;switch(h.type){case"Polygon":return dg(h.coordinates);case"MultiPolygon":for(_=0;_<h.coordinates.length;_++)d+=dg(h.coordinates[_]);return d;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}function dg(h){let d=0;if(h&&h.length>0){d+=Math.abs(fg(h[0]));for(let _=1;_<h.length;_++)d-=Math.abs(fg(h[_]))}return d}var pS=pg*pg/2,Up=Math.PI/180;function fg(h){const d=h.length-1;if(d<=2)return 0;let _=0,w=0;for(;w<d;){const T=h[w],P=h[w+1===d?0:w+1],x=h[w+2>=d?(w+2)%d:w+2],s=T[0]*Up,B=P[1]*Up,R=x[0]*Up;_+=(R-s)*Math.sin(B),w++}return _*pS}var $i=63710088e-1,dS={centimeters:$i*100,centimetres:$i*100,degrees:360/(2*Math.PI),feet:$i*3.28084,inches:$i*39.37,kilometers:$i/1e3,kilometres:$i/1e3,meters:$i,metres:$i,miles:$i/1609.344,millimeters:$i*1e3,millimetres:$i*1e3,nauticalmiles:$i/1852,radians:1,yards:$i*1.0936};function ih(h,d,_={}){const w={type:"Feature"};return(_.id===0||_.id)&&(w.id=_.id),_.bbox&&(w.bbox=_.bbox),w.properties=d||{},w.geometry=h,w}function my(h,d,_={}){for(const T of h){if(T.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(T[T.length-1].length!==T[0].length)throw new Error("First and last Position are not equivalent.");for(let P=0;P<T[T.length-1].length;P++)if(T[T.length-1][P]!==T[0][P])throw new Error("First and last Position are not equivalent.")}return ih({type:"Polygon",coordinates:h},d,_)}function nh(h,d,_={}){if(h.length<2)throw new Error("coordinates must be an array of two or more positions");return ih({type:"LineString",coordinates:h},d,_)}function tc(h,d={}){const _={type:"FeatureCollection"};return d.id&&(_.id=d.id),d.bbox&&(_.bbox=d.bbox),_.features=h,_}function fS(h,d="kilometers"){const _=dS[d];if(!_)throw new Error(d+" units is invalid");return h*_}function Zu(h){return h%360*Math.PI/180}function mg(h){if(!h)throw new Error("coord is required");if(!Array.isArray(h)){if(h.type==="Feature"&&h.geometry!==null&&h.geometry.type==="Point")return[...h.geometry.coordinates];if(h.type==="Point")return[...h.coordinates]}if(Array.isArray(h)&&h.length>=2&&!Array.isArray(h[0])&&!Array.isArray(h[1]))return[...h];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function ed(h,d,_={}){var w=mg(h),T=mg(d),P=Zu(T[1]-w[1]),x=Zu(T[0]-w[0]),s=Zu(w[1]),B=Zu(T[1]),R=Math.pow(Math.sin(P/2),2)+Math.pow(Math.sin(x/2),2)*Math.cos(s)*Math.cos(B);return fS(2*Math.atan2(Math.sqrt(R),Math.sqrt(1-R)),_.units)}function gy(h,d,_){if(h!==null)for(var w,T,P,x,s,B,R,M=0,F=0,L,A=h.type,C=A==="FeatureCollection",H=A==="Feature",G=C?h.features.length:1,se=0;se<G;se++){R=C?h.features[se].geometry:H?h.geometry:h,L=R?R.type==="GeometryCollection":!1,s=L?R.geometries.length:1;for(var le=0;le<s;le++){var Ae=0,te=0;if(x=L?R.geometries[le]:R,x!==null){B=x.coordinates;var de=x.type;switch(M=0,de){case null:break;case"Point":if(d(B,F,se,Ae,te)===!1)return!1;F++,Ae++;break;case"LineString":case"MultiPoint":for(w=0;w<B.length;w++){if(d(B[w],F,se,Ae,te)===!1)return!1;F++,de==="MultiPoint"&&Ae++}de==="LineString"&&Ae++;break;case"Polygon":case"MultiLineString":for(w=0;w<B.length;w++){for(T=0;T<B[w].length-M;T++){if(d(B[w][T],F,se,Ae,te)===!1)return!1;F++}de==="MultiLineString"&&Ae++,de==="Polygon"&&te++}de==="Polygon"&&Ae++;break;case"MultiPolygon":for(w=0;w<B.length;w++){for(te=0,T=0;T<B[w].length;T++){for(P=0;P<B[w][T].length-M;P++){if(d(B[w][T][P],F,se,Ae,te)===!1)return!1;F++}te++}Ae++}break;case"GeometryCollection":for(w=0;w<x.geometries.length;w++)if(gy(x.geometries[w],d)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function mS(h,d){var _,w,T,P,x,s,B,R,M,F,L=0,A=h.type==="FeatureCollection",C=h.type==="Feature",H=A?h.features.length:1;for(_=0;_<H;_++){for(s=A?h.features[_].geometry:C?h.geometry:h,R=A?h.features[_].properties:C?h.properties:{},M=A?h.features[_].bbox:C?h.bbox:void 0,F=A?h.features[_].id:C?h.id:void 0,B=s?s.type==="GeometryCollection":!1,x=B?s.geometries.length:1,T=0;T<x;T++){if(P=B?s.geometries[T]:s,P===null){if(d(null,L,R,M,F)===!1)return!1;continue}switch(P.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(d(P,L,R,M,F)===!1)return!1;break}case"GeometryCollection":{for(w=0;w<P.geometries.length;w++)if(d(P.geometries[w],L,R,M,F)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}L++}}function gS(h,d){mS(h,function(_,w,T,P,x){var s=_===null?null:_.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return d(ih(_,T,{bbox:P,id:x}),w,0)===!1?!1:void 0}var B;switch(s){case"MultiPoint":B="Point";break;case"MultiLineString":B="LineString";break;case"MultiPolygon":B="Polygon";break}for(var R=0;R<_.coordinates.length;R++){var M=_.coordinates[R],F={type:B,coordinates:M};if(d(ih(F,T),w,R)===!1)return!1}})}function yS(h,d){gS(h,function(_,w,T){var P=0;if(_.geometry){var x=_.geometry.type;if(!(x==="Point"||x==="MultiPoint")){var s,B=0,R=0,M=0;if(gy(_,function(F,L,A,C,H){if(s===void 0||w>B||C>R||H>M){s=F,B=w,R=C,M=H,P=0;return}var G=nh([s,F],_.properties);if(d(G,w,T,H,P)===!1)return!1;P++,s=F})===!1)return!1}}})}function _S(h,d,_){var w=_,T=!1;return yS(h,function(P,x,s,B,R){T===!1&&_===void 0?w=P:w=d(w,P,x,s,B,R),T=!0}),w}function vS(h,d={}){return _S(h,(_,w)=>{const T=w.geometry.coordinates;return _+ed(T[0],T[1],d)},0)}const xS={props:{bgColor:{type:String,default:"#1E40AF"}}},bS={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},wS=["stroke"],SS=["stroke"],AS=["stroke"],kS=["stroke"],TS=["stroke"];function CS(h,d,_,w,T,P){return y.openBlock(),y.createElementBlock("svg",bS,[d[0]||(d[0]=y.createElementVNode("title",null,"Pencil Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"A pencil icon with strokes and detailed lines",-1)),y.createElementVNode("path",{d:"M21.3 15.3C21.5238 15.523 21.7013 15.7879 21.8225 16.0796C21.9436 16.3714 22.0059 16.6841 22.0059 17C22.0059 17.3159 21.9436 17.6286 21.8225 17.9204C21.7013 18.2121 21.5238 18.477 21.3 18.7L18.7 21.3C18.4771 21.5237 18.2121 21.7013 17.9204 21.8224C17.6287 21.9435 17.3159 22.0059 17 22.0059C16.6842 22.0059 16.3714 21.9435 16.0797 21.8224C15.788 21.7013 15.523 21.5237 15.3 21.3L2.70005 8.7C2.2506 8.24838 1.99829 7.63715 1.99829 7C1.99829 6.36285 2.2506 5.75162 2.70005 5.3L5.30005 2.7C5.75167 2.25056 6.36289 1.99825 7.00005 1.99825C7.6372 1.99825 8.24842 2.25056 8.70005 2.7L21.3 15.3Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,wS),y.createElementVNode("path",{d:"M14.5 12.5L16.5 10.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,SS),y.createElementVNode("path",{d:"M11.5 9.5L13.5 7.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,AS),y.createElementVNode("path",{d:"M8.5 6.5L10.5 4.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,kS),y.createElementVNode("path",{d:"M17.5 15.5L19.5 13.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,TS)])}const ES=Gt(xS,[["render",CS]]),PS={name:"vs-measure",components:{rulerIcon:ES,closeIcon:fd},data(){return{points:[],inputPoint:[],distance:0,distanceType:!1,modalVisible:!1,draggingPointId:null}},watch:{async points(){this.inputPoint=this.points.map(h=>{var d,_;return{id:h.properties.id,value:((_=(d=h==null?void 0:h.geometry)==null?void 0:d.coordinates)==null?void 0:_.reduceRight((w,T)=>[...w,typeof T=="string"?T:T.toFixed(5)],[]).join(","))||""}}),this.setPoints()},activeTool(h,d){h!=="length"&&d==="length"&&(this.closeMeasure(),this.modalVisible=!1),h==="length"&&!this.modalVisible&&(this.modalVisible=!0,this.initMeasureLayer())}},props:{map:{type:Object},activeTool:String,setActiveTool:Function},methods:{measureMapClick(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});if(d.length)this.points=this.points.filter(_=>{var w,T;return _.properties.id!==((T=(w=d[0])==null?void 0:w.properties)==null?void 0:T.id)});else{const _={type:"Feature",geometry:{type:"Point",coordinates:Object.values(h.lngLat)},properties:{id:Math.floor(Math.random()*1e3)}};this.points=this.points.concat(_)}},async setPoints(){const h=this.points.filter(T=>T==null?void 0:T.geometry),d=h.map((T,P)=>{var B,R;const x=ed(h[P?P-1:0],T),s=this.distanceType?x:x+ +((R=(B=h[P-1])==null?void 0:B.properties)==null?void 0:R.distance)||0;return T.properties.distance=s,T.properties.title=`${s.toLocaleString()}км`,T}),_=await tc(d);if(d.length>2){const T=my([[...d.map(P=>P.geometry.coordinates),d[0].geometry.coordinates]]);this.map.getSource("linear-area").setData(tc([T]))}else{const T=this.map.getSource("measure");T&&T.setData(_)}d.length>1&&(_.features=_.features.concat(nh(d.map(T=>T.geometry.coordinates))),this.distance=vS(nh(d.map(T=>T.geometry.coordinates))));const w=this.map.getSource("measure");w&&w.setData(_)},handleDelete(h){this.points=this.points.filter(d=>d.properties.id!==h)},addCoords(){this.points=this.points.concat({type:"Feature",properties:{id:Math.floor(Math.random()*1e3)},geometry:null})},handleChange(){this.points=this.inputPoint.map(h=>{if(/^([^,]*,[^,]*)$/.test(h.value)){const d=h.value.split(",").reverse();if(d[0]<-90||d[0]>90||d[1]>180||d[1]<-180)this.$notify({type:"error",title:"Помилка",message:"Координати неправильні"});else return{type:"Feature",geometry:{type:"Point",coordinates:d},properties:{id:h.id}}}else this.$notify({type:"error",title:"Помилка",message:"Координати неправильні"})})},removeLinearLayer(){this.map.getLayer("measure-lines")&&this.map.removeLayer("measure-lines"),this.map.getLayer("measure-points")&&this.map.removeLayer("measure-points"),this.map.getLayer("measure-symbol")&&this.map.removeLayer("measure-symbol"),this.map.getSource("measure")&&this.map.removeSource("measure"),this.map.getLayer("linear-area-fill")&&this.map.removeLayer("linear-area-fill"),this.map.getSource("linear-area")&&this.map.removeSource("linear-area"),this.distance=0},createLinearLayer(){this.map.addSource("measure",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"measure-lines",type:"line",source:"measure",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#000","line-width":2.5},filter:["in","$type","LineString"]}),this.map.addLayer({id:"measure-points",type:"circle",source:"measure",paint:{"circle-radius":4.5,"circle-color":"#fff","circle-stroke-width":2,"circle-stroke-color":"#000"},filter:["in","$type","Point"]}),this.map.addLayer({id:"measure-symbol",source:"measure",type:"symbol",paint:{"text-color":"#111","text-halo-color":"#fff","text-halo-width":2},layout:{"symbol-placement":"point","text-letter-spacing":.2,"text-field":"{title}","text-font":["Open Sans Regular"],"text-size":15,"text-anchor":"bottom-left"},filter:["in","$type","Point"]}),this.createAreaLayer(),this.map.on("mousemove",this.mouseMove),this.map.on("mousemove",this.mouseMove)},mouseMove(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});this.map.getCanvas().style.cursor=d.length?"move":"crosshair"},createAreaLayer(){const{map:h}=this;h.addSource("linear-area",{type:"geojson",data:{type:"FeatureCollection",features:[]}})},distanceFormat(){const h=this.points.filter(d=>d.geometry).map(d=>d.geometry);h.forEach((d,_)=>{const w=ed(h[_?_-1:0],d);distance.push(w);const T=this.distanceType?w:w+ +this.points[_?_-1:0].properties.distance||0;this.points[_].properties.distance=T,this.points[_].properties.title=`${T.toLocaleString()}km`})},initMeasureLayer(){this.createLinearLayer(),this.map.on("mousedown","measure-points",this.handleDrag),this.map.on("click",this.measureMapClick),this.map.on("touchend",this.measureMapClick)},onMove(h){const d=h.lngLat;this.points=this.points.map(_=>_.properties.id===this.draggingPointId?{..._,geometry:{..._.geometry,coordinates:[d.lng,d.lat]}}:_),this.setPoints()},onUp(){this.map.off("mousemove",this.onMove),this.draggingPointId=null},handleDrag(h){h.preventDefault();const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});if(d.length){const _=d[0].properties.id;this.draggingPointId=_,this.map.on("mousemove",this.onMove),this.map.once("mouseup",this.onUp)}},closeMeasure(){this.points=[],this.map.off("touchend",this.measureMapClick),this.map.off("click",this.measureMapClick),this.map.off("mousemove",this.mouseMove),this.map.getCanvas().style.cursor="grab",this.modalVisible=!1,this.removeLinearLayer()},toggleMeasure(){!this.activeTool||this.activeTool!=="length"?this.setActiveTool&&this.setActiveTool("length"):this.setActiveTool&&this.setActiveTool(null),this.modalVisible=!this.modalVisible,this.modalVisible?this.initMeasureLayer():this.closeMeasure()}},computed:{buttonClasses(){return{"!bg-[#DBEAFE]":this.modalVisible,"bg-white":!this.modalVisible}}}},IS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[60px] bg-white border rounded-[15px] p-4 z-10"},MS={class:"flex justify-between items-center border-b pb-[16px]"},LS={class:"pt-[16px]"},RS={class:"text-[14px] font-medium text-[#6B7280] mb-[16px]"},DS={key:0,class:"flex items-center mb-4"},zS={key:1,class:"text-[14px] font-bold",ref:"distanceContainer"};function BS(h,d,_,w,T,P){const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("VsPopover"),B=y.resolveComponent("VsSwitch"),R=y.resolveComponent("rulerIcon");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[T.modalVisible&&_.activeTool==="length"?(y.openBlock(),y.createElementBlock("div",IS,[y.createElementVNode("div",MS,[d[3]||(d[3]=y.createElementVNode("div",{class:"text-[20px]"},"Лінійка",-1)),y.createVNode(s,{trigger:"hover",teleport:"body"},{reference:y.withCtx(()=>[y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:d[0]||(d[0]=(...M)=>P.toggleMeasure&&P.toggleMeasure(...M))},[y.createVNode(x,{class:"cursor-pointer"})])]),default:y.withCtx(()=>[d[2]||(d[2]=y.createTextVNode(" Приховати панель "))]),_:1,__:[2]})]),y.createElementVNode("div",LS,[y.createElementVNode("p",RS,[T.points.length?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createTextVNode(" Натисніть на мапу, щоб додати першу точку. ")],64)),T.points.length==1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createTextVNode(" Натисніть на мапу, щоб додати другу точку. ")],64)):y.createCommentVNode("",!0),T.points.length>1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:2},[y.createTextVNode(" Продовжуйте натискати для додавання нових точок. Точки можна рухати. ")],64)):y.createCommentVNode("",!0)]),T.points.length>=3?(y.openBlock(),y.createElementBlock("div",DS,[y.createVNode(B,{modelValue:T.distanceType,"onUpdate:modelValue":d[1]||(d[1]=M=>T.distanceType=M),onChange:P.setPoints},null,8,["modelValue","onChange"]),d[4]||(d[4]=y.createElementVNode("span",{class:"text-[14px] font-medium text-[#6B7280] ml-2"},"загальна | до точки",-1))])):y.createCommentVNode("",!0),T.points.length>=2?(y.openBlock(),y.createElementBlock("div",zS,[d[5]||(d[5]=y.createTextVNode(" Загальна відстань: ")),y.createElementVNode("span",null,y.toDisplayString(T.distance.toLocaleString())+" км",1)],512)):y.createCommentVNode("",!0)])])):y.createCommentVNode("",!0)])),y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(R,{class:y.normalizeClass([P.buttonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"]),onClick:P.toggleMeasure},null,8,["class","onClick"])]),default:y.withCtx(()=>[d[6]||(d[6]=y.createElementVNode("div",null,"Виміряти довжину",-1))]),_:1,__:[6]})])}const VS=Gt(PS,[["render",BS],["__scopeId","data-v-401b2f16"]]),FS={props:{bgColor:{type:String,default:"#1E40AF"}}},OS={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},NS=["stroke"],qS=["stroke"],US=["stroke"];function jS(h,d,_,w,T,P){return y.openBlock(),y.createElementBlock("svg",OS,[d[0]||(d[0]=y.createElementVNode("title",null,"Crossed Arrows with Curved Line Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"Two crossed arrows with a curved line to the right",-1)),y.createElementVNode("path",{d:"M4 19L12 11",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,NS),y.createElementVNode("path",{d:"M12 19L4 11",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,qS),y.createElementVNode("path",{d:"M20 12H16C16 10.5 16.442 10 17.5 9.5C18.558 9 20 8.334 20 7.002C20 6.53 19.83 6.072 19.516 5.712C19.196 5.35007 18.7613 5.1092 18.2848 5.02981C17.8083 4.95043 17.319 5.03735 16.899 5.276C16.479 5.515 16.161 5.89 16 6.336",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,US)])}const HS=Gt(FS,[["render",jS]]),WS={components:{areaIcon:HS,closeIcon:fd},name:"vs-area-measure",props:{map:{type:Object},activeTool:String,setActiveTool:Function},data(){return{points:[],inputPoint:[],area:0,modalVisible:!1,draggingPointId:null}},watch:{async points(){this.inputPoint=this.points.map(h=>{var d,_;return{id:h.properties.id,value:((_=(d=h==null?void 0:h.geometry)==null?void 0:d.coordinates)==null?void 0:_.reduceRight((w,T)=>[...w,typeof T=="string"?T:T.toFixed(5)],[]).join(","))||""}}),this.setPoints()},activeTool(h,d){h!=="area"&&d==="area"&&(this.closeMeasure(),this.modalVisible=!1),h==="area"&&!this.modalVisible&&(this.modalVisible=!0,this.initMeasureLayer())}},methods:{measureMapClick(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});if(d.length)this.points=this.points.filter(_=>_.properties.id!==d[0].properties.id);else{const _={type:"Feature",geometry:{type:"Point",coordinates:Object.values(h.lngLat)},properties:{id:Math.floor(Math.random()*1e3)}};this.points=this.points.concat(_)}},async setPoints(){const h=this.points.filter(w=>w==null?void 0:w.geometry),d=await tc(h);if(h.length>2){const w=my([[...h.map(P=>P.geometry.coordinates),h[0].geometry.coordinates]]);this.area=uS(w)/1e6;const T=this.map.getSource("area-linear-area");T&&T.setData(tc([w]))}else{const w=this.map.getSource("area-linear-area");w&&w.setData(tc([]))}h.length>1&&(d.features=d.features.concat(nh(h.map(w=>w.geometry.coordinates))));const _=this.map.getSource("area-measure");_&&_.setData(d)},handleDelete(h){this.points=this.points.filter(d=>d.properties.id!==h)},addCoords(){this.points=this.points.concat({type:"Feature",properties:{id:Math.floor(Math.random()*1e3)},geometry:null})},handleChange(){this.points=this.inputPoint.map(h=>{if(/^([^,]*,[^,]*)$/.test(h.value)){const d=h.value.split(",").reverse();if(d[0]<-90||d[0]>90||d[1]>180||d[1]<-180)this.$notify({type:"error",title:"Помилка",message:"Недійсні координати!"});else return{type:"Feature",geometry:{type:"Point",coordinates:d},properties:{id:h.id}}}else this.$notify({type:"error",title:"Помилка",message:"Недійсні координати!"})})},removeLinearLayer(){["area-measure-lines","area-measure-points","area-linear-area-fill","center-symbol"].forEach(_=>{this.map.getLayer(_)&&this.map.removeLayer(_)}),["area-measure","area-linear-area"].forEach(_=>{this.map.getSource(_)&&this.map.removeSource(_)}),this.area=0},createLinearLayer(){this.map.addSource("area-measure",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"area-measure-lines",type:"line",source:"area-measure",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#000","line-width":2.5},filter:["in","$type","LineString"]}),this.map.addLayer({id:"area-measure-points",type:"circle",source:"area-measure",paint:{"circle-radius":4.5,"circle-color":"#fff","circle-stroke-width":2,"circle-stroke-color":"#000"},filter:["in","$type","Point"]}),this.createAreaLayer(),this.map.on("mousemove",this.mouseMove)},mouseMove(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});this.map.getCanvas().style.cursor=d.length?"move":"crosshair"},createAreaLayer(){this.map.addSource("area-linear-area",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"area-linear-area-fill",type:"fill",source:"area-linear-area",layout:{},paint:{"fill-color":"#000","fill-opacity":.06}})},initMeasureLayer(){this.createLinearLayer(),this.map.on("mousedown","area-measure-points",this.handleDrag),this.map.on("click",this.measureMapClick),this.map.on("touchend",this.measureMapClick)},onMove(h){const d=h.lngLat;this.points=this.points.map(_=>_.properties.id===this.draggingPointId?{..._,geometry:{..._.geometry,coordinates:[d.lng,d.lat]}}:_),this.setPoints()},onUp(){this.map.off("mousemove",this.onMove),this.draggingPointId=null},handleDrag(h){h.preventDefault();const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});if(d.length){const _=d[0].properties.id;this.draggingPointId=_,this.map.on("mousemove",this.onMove),this.map.once("mouseup",this.onUp)}},closeMeasure(){this.points=[],this.map.off("touchend",this.measureMapClick),this.map.off("click",this.measureMapClick),this.map.off("mousemove",this.mouseMove),this.map.getCanvas().style.cursor="grab",this.modalVisible=!1,this.removeLinearLayer()},toggleMeasure(){!this.activeTool||this.activeTool!=="area"?this.setActiveTool&&this.setActiveTool("area"):this.setActiveTool&&this.setActiveTool(null),this.modalVisible=!this.modalVisible,this.modalVisible?this.initMeasureLayer():this.closeMeasure()}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.modalVisible,"bg-white":!this.modalVisible}}}},ZS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[60px] bg-white border rounded-[15px] p-4 z-10"},KS={class:"flex justify-between items-center border-b pb-[16px]"},GS={class:"pt-[16px]"},JS={class:"text-[14px] font-medium text-[#6B7280] mb-[16px]"},XS={key:0,ref:"distanceContainer",class:"text-[14px] font-bold"};function QS(h,d,_,w,T,P){const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("VsPopover"),B=y.resolveComponent("areaIcon");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[T.modalVisible&&_.activeTool==="area"?(y.openBlock(),y.createElementBlock("div",ZS,[y.createElementVNode("div",KS,[d[2]||(d[2]=y.createElementVNode("div",{class:"text-lg"},"Площа",-1)),y.createVNode(s,{trigger:"hover",teleport:"body"},{reference:y.withCtx(()=>[y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:d[0]||(d[0]=(...R)=>P.toggleMeasure&&P.toggleMeasure(...R))},[y.createVNode(x,{class:"cursor-pointer"})])]),default:y.withCtx(()=>[d[1]||(d[1]=y.createTextVNode(" Приховати панель "))]),_:1,__:[1]})]),y.createElementVNode("div",GS,[y.createElementVNode("p",JS,[T.points.length?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createTextVNode(" Натисніть на мапу, щоб додати першу точку. ")],64)),T.points.length==1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createTextVNode(" Натисніть на мапу, щоб додати другу точку. ")],64)):y.createCommentVNode("",!0),T.points.length>1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:2},[y.createTextVNode(" Продовжуйте натискати для додавання нових точок. Точки можна рухати. ")],64)):y.createCommentVNode("",!0)]),T.points.length>2?(y.openBlock(),y.createElementBlock("div",XS,[d[3]||(d[3]=y.createTextVNode(" Загальна площа: ")),y.createElementVNode("span",null,y.toDisplayString(T.area.toLocaleString())+" км²",1)],512)):y.createCommentVNode("",!0)])])):y.createCommentVNode("",!0)])),y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(B,{onClick:P.toggleMeasure,class:y.normalizeClass([P.modalButtonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[4]||(d[4]=y.createElementVNode("div",null,"Виміряти площу",-1))]),_:1,__:[4]})])}const YS=Gt(WS,[["render",QS],["__scopeId","data-v-024154e1"]]),$S={__name:"vs-map-widget-column",props:{position:String,widgets:Array,map:Object,mapLoaded:Boolean,cardValues:Object,hasFilters:Boolean,currentFilterLayer:Object,enabledLayerIds:Array,getWidgetComponent:Function,getColumnWidth:Function,rightColumnOffset:[String,Number],maxHeight:Number,history:Boolean},emits:["set-filter-layer","update:enabledLayerIds","cardValuesId","closeCard","content-resize"],setup(h,{expose:d,emit:_}){const w=_,T=h,P=y.ref(T.widgets.map(R=>{var M;return{...R,config:{...R.config,visible:((M=R.config)==null?void 0:M.visible)!==!1}}}));y.watch(()=>T.widgets.map(R=>R.id||R.type).join(","),()=>{P.value=T.widgets.map(R=>{var M;return{...R,config:{...R.config,visible:((M=R.config)==null?void 0:M.visible)!==!1}}})});function x(R){const M=P.value.find(F=>F.id===R);M&&M.config&&(M.config.visible=!M.config.visible,setTimeout(()=>{w("content-resize")},30))}const s=y.ref(null);d({columnRef:s});let B=null;return y.onMounted(()=>{B=new MutationObserver(()=>{var R;clearTimeout((R=s.value)==null?void 0:R._resizeTimeout),s.value._resizeTimeout=setTimeout(()=>{w("content-resize")},30)}),s.value&&B.observe(s.value,{childList:!0,subtree:!0,characterData:!0})}),y.onUnmounted(()=>{B&&B.disconnect()}),(R,M)=>h.mapLoaded?(y.openBlock(),y.createElementBlock("div",{key:0,class:y.normalizeClass(["widget-column",[y.unref(ey)(h.position)]]),ref_key:"columnRef",ref:s,style:y.normalizeStyle({maxHeight:h.maxHeight?h.maxHeight+"px":void 0,width:h.getColumnWidth(h.position),...h.rightColumnOffset?{right:h.rightColumnOffset}:{}})},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.value,F=>{var L;return y.openBlock(),y.createElementBlock(y.Fragment,{key:F.id||F.type},[F.type!=="card"?y.withDirectives((y.openBlock(),y.createBlock(y.resolveDynamicComponent(h.getWidgetComponent(F.type)),{key:0,map:h.map,config:F.config,hasFilters:h.hasFilters,currentLayer:h.currentFilterLayer,enabledLayerIds:h.enabledLayerIds,history:h.history,onSetFilterLayer:M[0]||(M[0]=A=>R.$emit("set-filter-layer",A)),"onUpdate:enabledLayerIds":M[1]||(M[1]=A=>R.$emit("update:enabledLayerIds",A)),onCardValuesId:M[2]||(M[2]=A=>R.$emit("cardValuesId",A)),onContentResize:M[3]||(M[3]=A=>R.$emit("content-resize")),onShowWidget:x,class:"widget"},null,40,["map","config","hasFilters","currentLayer","enabledLayerIds","history"])),[[y.vShow,((L=F.config)==null?void 0:L.visible)!==!1]]):y.createCommentVNode("",!0),h.cardValues&&F.type==="card"?(y.openBlock(),y.createBlock(sy,{key:1,config:F.config,cardValues:h.cardValues,class:"widget",onClose:M[4]||(M[4]=A=>R.$emit("closeCard")),onContentResize:M[5]||(M[5]=A=>R.$emit("content-resize"))},null,8,["config","cardValues"])):y.createCommentVNode("",!0)],64)}),128))],6)):y.createCommentVNode("",!0)}},eA=Gt($S,[["__scopeId","data-v-3be78334"]]),tA={class:"map-widgets"},rA={key:0,class:"absolute top-[180px] right-2 z-10 flex flex-col gap-[5px]"},iA={__name:"vs-map",props:{table:{type:String,required:!0}},setup(h){const d=h,_=y.ref(null),w=y.ref(!1);let T=null;const P=y.ref(null),x=y.ref(null),s=y.ref([]),B=y.ref([]),R=y.ref(null),M=y.ref(null),F=y.ref(null),L=["top-left","top-right","top-center","center","bottom-left","bottom-center","bottom-right"],A={"top-left":y.ref(null),"top-right":y.ref(null),"top-center":y.ref(null),center:y.ref(null),"bottom-left":y.ref(null),"bottom-center":y.ref(null),"bottom-right":y.ref(null)};function C(Ke,nt){A[Ke].value=nt==null?void 0:nt.columnRef}const H=y.ref(0),G=y.ref(0),se=y.ref(0),le=y.ref(0),Ae=y.ref(0),te=y.ref(0),de=y.ref(0);function Ce(Ke){if(!Ke){const Pt={topLeft:A["top-left"].value,topRight:A["top-right"].value,topCenter:A["top-center"].value,center:A.center.value,bottomLeft:A["bottom-left"].value,bottomRight:A["bottom-right"].value,bottomCenter:A["bottom-center"].value};Object.values(Pt).forEach(Ut=>{Ut&&(Ut.style.maxHeight="")});const{heights:mt}=hg(Pt,window.innerHeight);H.value=mt.topLeft,G.value=mt.topRight,se.value=mt.topCenter,le.value=mt.center,Ae.value=mt.bottomLeft,te.value=mt.bottomRight,de.value=mt.bottomCenter;return}const lt={"top-left":["top-left","bottom-left"],"bottom-left":["top-left","bottom-left"],"top-right":["top-right","bottom-right"],"bottom-right":["top-right","bottom-right"],"top-center":["top-center","bottom-center"],"bottom-center":["top-center","bottom-center"],center:["center"]}[Ke]||[],xt={topLeft:A["top-left"].value,topRight:A["top-right"].value,topCenter:A["top-center"].value,center:A.center.value,bottomLeft:A["bottom-left"].value,bottomRight:A["bottom-right"].value,bottomCenter:A["bottom-center"].value};lt.forEach(Pt=>{xt[Pt]&&(xt[Pt].style.maxHeight="")});const{heights:kt}=hg(xt,window.innerHeight);lt.forEach(Pt=>{xt[Pt]&&kt[Pt]&&(xt[Pt].style.maxHeight=kt[Pt]+"px")}),lt.includes("top-left")&&(H.value=kt.topLeft),lt.includes("bottom-left")&&(Ae.value=kt.bottomLeft),lt.includes("top-right")&&(G.value=kt.topRight),lt.includes("bottom-right")&&(te.value=kt.bottomRight),lt.includes("top-center")&&(se.value=kt.topCenter),lt.includes("bottom-center")&&(de.value=kt.bottomCenter),lt.includes("center")&&(le.value=kt.center)}function Ve(Ke){return!F.value||!F.value.widgets?[]:Ke==="center"?[...F.value.widgets.filter(lt=>(lt.position||{})==="center")||[],...B.value.filter(lt=>lt.position==="center")]:F.value.widgets.filter(nt=>(nt.position||{})===Ke)||[]}Hu.registerHelper("eq",(Ke,nt)=>Ke===nt),Hu.registerHelper("formatDate",Ke=>Ke?new Date(Ke).toLocaleDateString():"Немає дати"),Hu.registerHelper("get",(Ke,nt)=>(Ke==null?void 0:Ke[nt])??"");const Ze=(Ke,nt,lt)=>{try{if(Ke)if(lt==="markdown"){const xt=Ke.replace(/\{\{([^}]+)\}\}/g,(kt,Pt)=>{try{return new Function("data",`with(data) { return ${Pt} }`)(nt)}catch{return""}});return rr(xt)}else return Hu.compile(Ke)(nt)}catch(xt){return console.error("Error processing template:",xt),Ke}},vt=(Ke,nt,lt,xt,kt,Pt)=>{const mt=Ze(Ke,xt,kt),Ut=nt?Ze(nt,xt,kt):"";let It="";return lt!=null&<.length&&(It=lt.map(Sr=>{const mi=Ze(Sr.value,xt,kt);return`
|
|
823
823
|
<tr class="flex justify-between items-center">
|
|
824
824
|
<td class="font-medium mr-1.5 flex items-center">${Sr.label}</td>
|
|
825
825
|
<td class="text-right">${mi}</td>
|
|
@@ -842,4 +842,4 @@ Expecting `+Xe.join(", ")+", got '"+(this.terminals_[Ae]||Ae)+"'":rt="Parse erro
|
|
|
842
842
|
</div>
|
|
843
843
|
`},tt=Ke=>({legend:Ex,basemaps:Rx,layers:ab,info:mb,attribute:Kb,catalog:m2,filters:rw,"inline-filters":aw,list:xw,card:sy})[Ke],Xe=y.computed(()=>!!F.value&&Array.isArray(F.value.widgets)&&F.value.widgets.some(Ke=>Ke.type==="filters")),rt=Ke=>{P.value=Ke};function bt(){const Ke=new URLSearchParams(window.location.search),nt=parseFloat(Ke.get("x")),lt=parseFloat(Ke.get("y")),xt=parseFloat(Ke.get("z")),kt=parseFloat(Ke.get("bearing")),Pt=parseFloat(Ke.get("pitch"));return{center:isFinite(nt)&&isFinite(lt)?[nt,lt]:null,zoom:isFinite(xt)?xt:null,bearing:isFinite(kt)?kt:null,pitch:isFinite(Pt)?Pt:null}}function Mt({center:Ke,zoom:nt,bearing:lt,pitch:xt}){const kt=new URLSearchParams(window.location.search);kt.set("x",Ke[0].toFixed(5)),kt.set("y",Ke[1].toFixed(5)),kt.set("z",nt.toFixed(2)),kt.set("bearing",lt.toFixed(2)),kt.set("pitch",xt.toFixed(2));const Pt=`${window.location.pathname}?${kt.toString()}`;window.history.replaceState({},"",Pt)}const cr=()=>{var Pt,mt,Ut;if(!F.value||!F.value.map)return;const Ke={version:8,glyphs:"https://cdn.softpro.ua/data/fonts/{fontstack}/{range}.pbf",sources:{voyager:{type:"raster",tiles:["https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png"],tileSize:256,attribution:"© <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a>, © <a href='https://carto.com/attributions'>CARTO</a>"}},layers:[{id:"voyager",type:"raster",source:"voyager",minzoom:0,maxzoom:22}]};let nt=F.value.map.center,lt=F.value.map.zoom,xt=F.value.map.bearing||0,kt=F.value.map.pitch||0;if(F.value.history){const It=bt();It.center&&(nt=It.center),It.zoom!==null&&(lt=It.zoom),It.bearing!==null&&(xt=It.bearing),It.pitch!==null&&(kt=It.pitch)}if(_.value=new $p.Map({container:"maplibre-demo-map",style:Ke,center:nt,zoom:lt,bearing:xt,pitch:kt,maxBounds:[18.0856083513,40.3614785833,58.0807890155,56.3350745713]}),(Ut=(mt=(Pt=F==null?void 0:F.value)==null?void 0:Pt.interactions)==null?void 0:mt.navigation)!=null&&Ut.enabled){const It=new $p.NavigationControl({showCompass:!0,showZoom:!0,visualizePitch:!0});_.value.addControl(It,"top-right")}_.value.on("load",async()=>{var Er,Hi,Mi,Li,Ri;await Q2(_.value);const It=bt(),Sr=It.center&&It.zoom!==null;if((Er=F.value.map)!=null&&Er.bbox&&!Sr){const[$t,Xt,yt,er]=F.value.map.bbox;_.value.fitBounds([[$t,Xt],[yt,er]],{padding:50,duration:0})}if(await(async()=>{var Xt,yt,er,ur,we;const $t=((we=(ur=(er=(yt=(Xt=F.value)==null?void 0:Xt.widgets)==null?void 0:yt.find(K=>K.type==="layers"))==null?void 0:er.config)==null?void 0:ur.layers)==null?void 0:we.filter(K=>{var Q;return((Q=K.style)==null?void 0:Q.attrType)==="icon-by-attribute"}))||[];for(const K of $t){const{rules:Q,default_icon:re,icon_base_url:ce}=K.style,ye=[...Q.map($=>$.icon),re].filter(Boolean);for(const $ of ye)try{const ke=`${ce}${$}`,be=await _.value.loadImage(ke);_.value.hasImage($)||_.value.addImage($,be.data)}catch(ke){console.error(`Failed to load icon: ${$}`,ke)}}})(),(Li=(Mi=(Hi=F.value)==null?void 0:Hi.interactions)==null?void 0:Mi.hover)!=null&&Li.enabled&&(_.value.on("mousemove",$t=>{var K,Q,re,ce,ye,$,ke,be;const Xt=_.value.queryRenderedFeatures($t.point);if(_.value&&_.value.getCanvas&&(_.value.getCanvas().style.cursor=Xt.length?"pointer":""),!Xt.length){if(x.value){const Se=(K=_.value.getSource(x.value.source))==null?void 0:K.type;x.value.source,x.value.id,Se==="vector"&&x.value.source,Rr(_.value,x.value.source,x.value.id,{hovered:!1}),x.value=null}T&&(T.remove(),T=null);return}const yt=Xt[0];if(!x.value||x.value.id!==yt.id||x.value.source!==yt.layer.source){if(x.value){const Ie=(Q=_.value.getSource(x.value.source))==null?void 0:Q.type;x.value.source,x.value.id,Ie==="vector"&&x.value.source,Rr(_.value,x.value.source,x.value.id,{hovered:!1})}const Se=(re=_.value.getSource(yt.layer.source))==null?void 0:re.type;yt.layer.source,yt.id,Se==="vector"&&yt.layer.source,Rr(_.value,yt.layer.source,yt.id,{hovered:!0}),x.value={source:yt.layer.source,id:yt.id}}const er=(ye=(ce=F.value)==null?void 0:ce.widgets)==null?void 0:ye.find(Se=>Se.type==="layers"),ur=(ke=($=F.value)==null?void 0:$.widgets)==null?void 0:ke.find(Se=>Se.type==="attribute");let we=null;if(er&&(we=er.config.layers.find(Se=>Se.id===yt.layer.source)),!we&&ur&&ur.config.layer.id===yt.layer.source&&(we=ur.config.layer),(be=we==null?void 0:we.style)!=null&&be.popup){const Se=we.style.popup;let Ie=Se.title,Te="";Se.mode==="markdown"?Te=Array.isArray(Se.content)?Se.content.join(`
|
|
844
844
|
|
|
845
|
-
`):"":Te=Array.isArray(Se.content)?Se.content.join(""):"",T||(T=document.createElement("div"),_.value.getContainer().appendChild(T));const qe=_.value.project($t.lngLat);T.innerHTML=vt(Ie,Te,Se.fields,yt.properties,Se.mode,qe)}}),_.value.on("mouseleave",()=>{var $t;if(T&&(T.remove(),T=null),x.value){const Xt=($t=_.value.getSource(x.value.source))==null?void 0:$t.type;x.value.source,x.value.id,Xt==="vector"&&x.value.source,Rr(_.value,x.value.source,x.value.id,{hovered:!1}),x.value=null}_.value&&_.value.getCanvas&&(_.value.getCanvas().style.cursor="")})),_.value.on("click",async $t=>{var Q,re,ce,ye,$;if(["length","area","print"].includes(M.value))return;const Xt=_.value.queryRenderedFeatures($t.point);if(!Xt.length)return;s.value.forEach(ke=>{var Se;const be=(Se=_.value.getSource(ke.source))==null?void 0:Se.type;ke.source,ke.id,be==="vector"&&ke.source,Rr(_.value,ke.source,ke.id,{selected:!1})}),s.value=[];const yt=Xt[0],er=(Q=_.value.getSource(yt.layer.source))==null?void 0:Q.type;yt.layer.source,yt.id,er==="vector"&&yt.layer.source,Rr(_.value,yt.layer.source,yt.id,{selected:!0}),s.value.push({source:yt.layer.source,id:yt.id});const ur=(ce=(re=F.value)==null?void 0:re.widgets)==null?void 0:ce.find(ke=>ke.type==="layers"),we=($=(ye=F.value)==null?void 0:ye.widgets)==null?void 0:$.find(ke=>ke.type==="attribute");let K=(we==null?void 0:we.config.layer)||(ur==null?void 0:ur.config.layers.find(ke=>ke.id===yt.layer.source));R.value={layer:(K==null?void 0:K.service_key)||"",map:(K==null?void 0:K.map_key)||"",id:yt.properties.id,title:(K==null?void 0:K.title)||""}}),_.value.on("dblclick",$t=>{var er,ur,we;if(["length","area","print"].includes(M.value))return;ai([$t.lngLat.lng,$t.lngLat.lat]);const Xt=(ur=(er=F.value)==null?void 0:er.widgets)==null?void 0:ur.find(K=>K.type==="layers");let yt=null;(we=Xt==null?void 0:Xt.config)!=null&&we.layers&&(yt=Xt.config.layers.find(K=>K.visible!==!1&&["tms","wms","raster"].includes((K.service_type||K.service||"").toLowerCase()))),R.value={layer:(yt==null?void 0:yt.map_key)||"",map:(yt==null?void 0:yt.service_key)||"",id:"",title:(yt==null?void 0:yt.title)||""}}),_.value.resize(),w.value=!0,(Ri=F==null?void 0:F.value)!=null&&Ri.history){const $t=()=>{const Xt=_.value.getCenter();Mt({center:[Xt.lng,Xt.lat],zoom:_.value.getZoom(),bearing:_.value.getBearing(),pitch:_.value.getPitch()})};_.value.on("moveend",$t),_.value.on("rotate",$t),_.value.on("pitch",$t)}})},yr=()=>{ji(),s.value.forEach(Ke=>{_.value&&Rr(_.value,Ke.source,Ke.id,{selected:!1})}),s.value=[],R.value=null};y.onMounted(async()=>{await Zt(),await y.nextTick(),cr(),window.addEventListener("resize",()=>{Ce()}),y.watch([A["top-left"],A["top-right"],A["top-center"],A.center,A["bottom-left"],A["bottom-right"],A["bottom-center"],()=>F.value.widgets,B],async()=>{await y.nextTick(),Ce(),setTimeout(Ce,0)},{deep:!0}),y.watch(w,Ke=>{Ke&&y.nextTick().then(()=>{Ce()})}),y.watch(()=>d.table,async Ke=>{if(Ke){if(_.value){try{_.value.remove()}catch{}_.value=null,w.value=!1}await Zt(),await y.nextTick(),cr(),Ce(),window.removeEventListener("resize",Ce),window.addEventListener("resize",Ce),y.watch([A["top-left"],A["top-right"],A["top-center"],A.center,A["bottom-left"],A["bottom-right"],A["bottom-center"],()=>F.value.widgets,B],async()=>{await y.nextTick(),Ce(),setTimeout(Ce,0)},{deep:!0}),y.watch(w,nt=>{nt&&y.nextTick().then(()=>{Ce()})})}})}),y.onUnmounted(()=>{window.removeEventListener("resize",Ce)});const bi=y.computed(()=>{var nt,lt,xt;return{height:((nt=F==null?void 0:F.value)==null?void 0:nt.height)||((xt=(lt=F==null?void 0:F.value)==null?void 0:lt.map)==null?void 0:xt.height)||"100vh",width:"100%"}}),Zt=async()=>{const Ke=await gr.get(`/api/map/${d.table}`);F.value=Ke.data},en=Ke=>{if(!F.value||!F.value.widgets)return"400px";const nt=F.value.widgets.find(lt=>lt.position===Ke);return(nt==null?void 0:nt.width)||"400px"},ti=y.ref([]);y.watch(()=>F.value,Ke=>{Ke&&Ke.map&&(ti.value=wn(),cr())});const wn=()=>{var nt;if(!F.value||!F.value.widgets)return[];const Ke=F.value.widgets.find(lt=>lt.type==="layers");return(nt=Ke==null?void 0:Ke.config)!=null&&nt.layers?Ke.config.layers.map(lt=>({...lt,visible:lt.visible??!1})).filter(lt=>lt.visible).map(lt=>lt.id):[]};function Rr(Ke,nt,lt,xt){Ke.getStyle().layers.filter(Pt=>Pt.source===nt).forEach(Pt=>{var Ut;const mt={source:nt,id:lt};((Ut=Ke.getSource(nt))==null?void 0:Ut.type)==="vector"&&Pt["source-layer"]&&(mt.sourceLayer=Pt["source-layer"]),Ke.setFeatureState(mt,xt)})}const as=y.computed(()=>!!F.value&&!!F.value.interactions&&!!F.value.interactions.navigation&&F.value.interactions.navigation.enabled),wi=y.computed(()=>!!F.value&&Array.isArray(F.value.tools)&&F.value.tools.length>0),Dr=y.computed(()=>as.value||wi.value?"70px":"20px");function ji(){_.value&&(_.value.getLayer("layer-with-pulsing-dot")&&_.value.removeLayer("layer-with-pulsing-dot"),_.value.getSource("dot-point")&&_.value.removeSource("dot-point"),_.value.hasImage&&_.value.hasImage("pulsing-dot")&&_.value.removeImage("pulsing-dot"))}function ai(Ke){var xt,kt,Pt,mt;ji();const nt=80,lt={width:nt,height:nt,data:new Uint8Array(nt*nt*4),onAdd(){const Ut=document.createElement("canvas");Ut.width=this.width,Ut.height=this.height,this.context=Ut.getContext("2d",{willReadFrequently:!0})},render(){var Mi;const It=performance.now()%2e3/2e3,Sr=nt/2*.3,mi=nt/2*.7*It+Sr,{context:Er}=this;Er.clearRect(0,0,this.width,this.height),Er.beginPath(),Er.arc(this.width/2,this.height/2,mi,0,Math.PI*2),Er.fillStyle=`rgba(255, 100, 100, ${1-It})`,Er.fill();const Hi=nt/2*.7*(It-.5<0?It-.5+1:It-.5)+Sr;return Er.beginPath(),Er.arc(this.width/2,this.height/2,Hi,0,Math.PI*2),Er.fillStyle=`rgba(255, 100, 100, ${1-(It-.5<0?It-.5+1:It-.5)})`,Er.fill(),this.data=Er.getImageData(0,0,this.width,this.height).data,(Mi=_.value)==null||Mi.triggerRepaint(),!0}};(xt=_.value)!=null&&xt.hasImage("pulsing-dot")||(kt=_.value)==null||kt.addImage("pulsing-dot",lt,{pixelRatio:2}),(Pt=_.value)==null||Pt.addSource("dot-point",{type:"geojson",data:{type:"Feature",geometry:{type:"Point",coordinates:Ke}}}),(mt=_.value)==null||mt.addLayer({id:"layer-with-pulsing-dot",type:"symbol",source:"dot-point",layout:{"icon-image":"pulsing-dot"},paint:{"icon-opacity":.6}})}const Sn=y.computed(()=>{var Ke,nt,lt,xt,kt,Pt,mt,Ut,It,Sr;return{center:(nt=(Ke=F==null?void 0:F.value)==null?void 0:Ke.map)==null?void 0:nt.center,zoom:(xt=(lt=F==null?void 0:F.value)==null?void 0:lt.map)==null?void 0:xt.zoom,pitch:((Pt=(kt=F==null?void 0:F.value)==null?void 0:kt.map)==null?void 0:Pt.pitch)||0,bearing:((Ut=(mt=F==null?void 0:F.value)==null?void 0:mt.map)==null?void 0:Ut.bearing)||0,bbox:((Sr=(It=F==null?void 0:F.value)==null?void 0:It.map)==null?void 0:Sr.bbox)||null}}),tn={home:Iw,print:Vw,geolocation:aS,pitch:Nw,length:VS,area:YS},Vn=Ke=>{M.value=Ke};function Kr(Ke){if(!F.value||!F.value.widgets)return;const nt=F.value.widgets.find(kt=>kt.type==="list");if(!nt||!nt.config)return;const{map_key:lt,service_key:xt}=nt.config;lt&&xt&&(R.value={id:Ke,map:lt,layer:xt})}function li(Ke){switch(Ke){case"top-left":return H.value;case"top-right":return G.value;case"top-center":return se.value;case"center":return le.value;case"bottom-left":return Ae.value;case"bottom-right":return te.value;case"bottom-center":return de.value;default:return 0}}const Gr=y.computed(()=>F.value&&F.value.widgets?F.value.widgets.filter(Ke=>Ke.position==="absolute"):[]);return(Ke,nt)=>{var lt,xt,kt,Pt;return y.openBlock(),y.createElementBlock("div",{id:"maplibre-demo-map",style:y.normalizeStyle(bi.value)},[w.value?y.createCommentVNode("",!0):(y.openBlock(),y.createBlock(Sw,{key:0})),y.withDirectives(y.createElementVNode("div",tA,[(y.openBlock(),y.createElementBlock(y.Fragment,null,y.renderList(L,mt=>{var Ut,It;return y.createVNode(eA,{key:mt,position:mt,widgets:Ve(mt),map:_.value,mapLoaded:w.value,cardValues:R.value,hasFilters:Xe.value,history:(It=(Ut=F.value)==null?void 0:Ut.value)==null?void 0:It.history,currentFilterLayer:P.value,enabledLayerIds:ti.value,getWidgetComponent:tt,getColumnWidth:en,rightColumnOffset:mt==="top-right"?Dr.value:void 0,maxHeight:li(mt),ref_for:!0,ref:Sr=>C(mt,Sr),onSetFilterLayer:rt,"onUpdate:enabledLayerIds":nt[0]||(nt[0]=Sr=>ti.value=Sr),onCardValuesId:Kr,onCloseCard:yr,onContentResize:()=>Ce(mt)},null,8,["position","widgets","map","mapLoaded","cardValues","hasFilters","history","currentFilterLayer","enabledLayerIds","rightColumnOffset","maxHeight","onContentResize"])}),64)),(xt=(lt=F.value)==null?void 0:lt.value)!=null&&xt.tools?(y.openBlock(),y.createElementBlock("div",rA,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList((Pt=(kt=F.value)==null?void 0:kt.value)==null?void 0:Pt.tools,mt=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:mt},[w.value&&tn[mt]?(y.openBlock(),y.createBlock(y.resolveDynamicComponent(tn[mt]),y.mergeProps({key:0,map:_.value,activeTool:M.value,setActiveTool:Vn,ref_for:!0},mt==="home"?{initialView:Sn.value}:{},{onCardValuesId:Kr}),null,16,["map","activeTool"])):y.createCommentVNode("",!0)],64))),128))])):y.createCommentVNode("",!0)],512),[[y.vShow,w.value]]),(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(Gr.value,(mt,Ut)=>(y.openBlock(),y.createElementBlock("div",{key:"abs-"+(mt.id||mt.type||Ut),class:"absolute z-20",style:y.normalizeStyle(mt.style)},[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(tt(mt.type)),{map:_.value,config:mt.config,hasFilters:Xe.value,currentFilterLayer:P.value,enabledLayerIds:ti.value,cardValues:R.value,onSetFilterLayer:rt,"onUpdate:enabledLayerIds":nt[1]||(nt[1]=It=>ti.value=It),onCardValuesId:Kr,onCloseCard:yr},null,40,["map","config","hasFilters","currentFilterLayer","enabledLayerIds","cardValues"]))],4))),128))],4)}}},yy=Gt(iA,[["__scopeId","data-v-edaa6750"]]),nA={props:{title:{type:String,required:!0},description:{type:String,required:!0}}},sA={class:"text-center mb-12"},oA={class:"text-3xl font-bold mb-4"},aA={class:"text-slate-600 max-w-2xl mx-auto"};function lA(h,d,_,w,T,P){return y.openBlock(),y.createElementBlock("div",sA,[y.createElementVNode("h2",oA,y.toDisplayString(_.title),1),y.createElementVNode("p",aA,y.toDisplayString(_.description),1)])}const _y=Gt(nA,[["render",lA]]),cA={name:"RegistryList",components:{HeroBlock:_y},props:{title:{type:String,required:!0},description:{type:String,default:""},type:{type:String,default:"data"},items:{type:Array,default:()=>[]},total:{type:Number,default:0},filters:{type:Array,default:()=>null},emptyStateText:{type:String,default:"Немає даних"},limit:{type:Number,default:16},breadcrumbs:{type:Array,default:()=>[]},dialog:{type:Boolean,default:!0},token:{type:String,default:""},table:{type:String,default:""},slug:{type:String,default:""}},data(){return{filterUrl:"",mounted:!1,tableData:[],currentPage:1,limit:16,localTotal:0}},created(){this.tableData=this.items,this.localTotal=this.total},mounted(){this.mounted=!0},methods:{handleFilterChange({url:h}){this.currentPage=1,this.filterUrl=h,this.getData()},handlePageChange(h){this.currentPage=h,this.getData()},changeLimit(h){this.limit=h,this.currentPage=1,this.getData()},async getData(){try{const h=this.type==="registry"?`/api/gis-registry/${this.slug}`:`/api/data/${this.table}`,{data:d}=await gr.get(`${h}?filter=${this.filterUrl}&page=${this.currentPage}&limit=${this.limit}`);d&&(this.tableData=d==null?void 0:d.rows,this.localTotal=this.type==="registry"?d==null?void 0:d.total:d==null?void 0:d.filtered)}catch(h){console.error(h.message)}}}},uA={class:"py-16 md:py-24"},hA={class:"py-6"},pA={class:"container"},dA={key:0,class:"flex items-center text-sm text-muted-foreground mb-6"},fA=["href"],mA={key:1,class:"text-foreground font-medium truncate"},gA={class:"flex flex-col md:flex-row gap-4 justify-start"},yA={class:"container"},_A={key:0,class:"space-y-4"},vA={class:"my-5 pr-2"},xA={class:"paginationWrapper relative flex justify-center"},bA={key:1,class:"text-center text-slate-400"};function wA(h,d,_,w,T,P){var R,M;const x=y.resolveComponent("HeroBlock"),s=y.resolveComponent("VsFilterList"),B=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",uA,[y.createElementVNode("section",null,[y.createVNode(x,{title:_.title,description:_.description},null,8,["title","description"])]),y.createElementVNode("section",hA,[y.createElementVNode("div",pA,[(R=_.breadcrumbs)!=null&&R.length?(y.openBlock(),y.createElementBlock("div",dA,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.breadcrumbs,(F,L)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:L},[L<_.breadcrumbs.length-1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createElementVNode("a",{href:F.link,class:"hover:text-foreground"},y.toDisplayString(F.name),9,fA),d[0]||(d[0]=y.createElementVNode("span",{class:"mx-2"},"/",-1))],64)):(y.openBlock(),y.createElementBlock("span",mA,y.toDisplayString(F.name),1))],64))),128))])):y.createCommentVNode("",!0),y.createElementVNode("div",gA,[_.filters&&T.mounted?(y.openBlock(),y.createBlock(s,{key:0,ref:"filter",scheme:_.filters,isDialog:_.dialog,urlSeparator:"true",view:"plain",token:_.token,name:"filter",onFilterChange:P.handleFilterChange},{button:y.withCtx(()=>d[1]||(d[1]=[y.createElementVNode("button",{class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground px-3 py-2",type:"button"}," Фільтри ",-1)])),_:1},8,["scheme","isDialog","token","onFilterChange"])):y.createCommentVNode("",!0)])])]),y.createElementVNode("section",null,[y.createElementVNode("div",yA,[((M=T.tableData)==null?void 0:M.length)>0?(y.openBlock(),y.createElementBlock("div",_A,[y.renderSlot(h.$slots,"default",{items:T.tableData}),y.createElementVNode("div",vA,[y.createElementVNode("div",xA,[y.createVNode(B,{total:T.localTotal,maxPages:4,defaultPage:T.currentPage,pageSize:T.limit,goTo:!1,size:"medium",backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[9,18,27,36],onPageChange:P.handlePageChange,onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])])):(y.openBlock(),y.createElementBlock("div",bA,y.toDisplayString(_.emptyStateText),1))])])])}const vy=Gt(cA,[["render",wA]]),SA={name:"Template2",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},AA={class:"flex flex-col space-y-1.5 p-4 pb-2 bg-slate-50"},kA={class:"flex items-center justify-between"},TA={class:"text-lg font-bold line-clamp-2"},CA={class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground ml-2 whitespace-nowrap","data-v0-t":"badge"},EA={class:"p-4 pt-2"},PA={class:"grid grid-cols-2 gap-3 text-sm"},IA={class:"flex items-center gap-1.5"},MA={class:"font-medium"},LA={class:"flex items-center gap-1.5"},RA={class:"font-medium"},DA={class:"flex items-center gap-1.5"},zA={class:"font-medium"},BA={class:"flex items-center gap-1.5"},VA={class:"font-medium"},FA={class:"items-center p-3 bg-slate-50 flex justify-end"},OA=["href"];function NA(h,d,_,w,T,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[d[8]||(d[8]=y.createElementVNode("div",{class:"absolute left-0 top-0 bottom-0 w-1 bg-blue-500"},null,-1)),y.createElementVNode("div",AA,[y.createElementVNode("div",kA,[y.createElementVNode("h2",TA,y.toDisplayString(x.name),1),y.createElementVNode("div",CA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",EA,[y.createElementVNode("div",PA,[y.createElementVNode("div",IA,[d[0]||(d[0]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>',1)),y.createElementVNode("div",null,[y.createElementVNode("span",MA,y.toDisplayString(x.parent_text),1)])]),y.createElementVNode("div",LA,[d[2]||(d[2]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-building h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><rect width="16" height="20" x="4" y="2" rx="2" ry="2"></rect><path d="M9 22v-4h6v4"></path><path d="M8 6h.01"></path><path d="M16 6h.01"></path><path d="M12 6h.01"></path><path d="M12 10h.01"></path><path d="M12 14h.01"></path><path d="M16 10h.01"></path><path d="M16 14h.01"></path><path d="M8 10h.01"></path><path d="M8 14h.01"></path></svg>',1)),y.createElementVNode("div",null,[d[1]||(d[1]=y.createElementVNode("span",{class:"text-muted-foreground"},"Статус: ",-1)),y.createElementVNode("span",RA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",DA,[d[4]||(d[4]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-building h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><rect width="16" height="20" x="4" y="2" rx="2" ry="2"></rect><path d="M9 22v-4h6v4"></path><path d="M8 6h.01"></path><path d="M16 6h.01"></path><path d="M12 6h.01"></path><path d="M12 10h.01"></path><path d="M12 14h.01"></path><path d="M16 10h.01"></path><path d="M16 14h.01"></path><path d="M8 10h.01"></path><path d="M8 14h.01"></path></svg>',1)),y.createElementVNode("div",null,[y.createElementVNode("div",null,[d[3]||(d[3]=y.createElementVNode("span",{class:"text-muted-foreground"},"Тип: ",-1)),y.createElementVNode("span",zA,y.toDisplayString(x.type_text),1)])])]),y.createElementVNode("div",BA,[d[6]||(d[6]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>',1)),y.createElementVNode("div",null,[d[5]||(d[5]=y.createElementVNode("span",{class:"text-muted-foreground"},"Дата видачі: ",-1)),y.createElementVNode("span",VA,y.toDisplayString(P.formatDate(x.cdate)),1)])])])]),y.createElementVNode("div",FA,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},d[7]||(d[7]=[y.createTextVNode(" Детальніше"),y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-arrow-right ml-1 h-3.5 w-3.5"},[y.createElementVNode("path",{d:"M5 12h14"}),y.createElementVNode("path",{d:"m12 5 7 7-7 7"})],-1)]),8,OA)])]))),128)}const qA=Gt(SA,[["render",NA]]),UA={name:"Template2",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},jA={class:"flex flex-col space-y-1.5 p-6 pb-2 border-b"},HA={class:"flex justify-between items-center"},WA={class:"tracking-tight text-lg font-medium"},ZA={class:"inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800"},KA={class:"p-6 py-4"},GA={class:"grid grid-cols-1 gap-3"},JA={class:"flex items-center"},XA={class:"font-medium"},QA={class:"flex items-center"},YA={class:"font-medium"},$A={class:"items-center p-6 pt-0 flex justify-end"},ek=["href"];function tk(h,d,_,w,T,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"rounded-lg bg-card text-card-foreground border-0 shadow-md","data-v0-t":"card"},[y.createElementVNode("div",jA,[y.createElementVNode("div",HA,[y.createElementVNode("h3",WA,y.toDisplayString(x.name),1),y.createElementVNode("span",ZA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",KA,[y.createElementVNode("div",GA,[y.createElementVNode("div",JA,[d[0]||(d[0]=y.createElementVNode("div",{class:"w-32 flex-shrink-0"},[y.createElementVNode("p",{class:"text-sm font-semibold text-gray-500"},"Номер адреси:")],-1)),y.createElementVNode("p",XA,y.toDisplayString(x.parent_text),1)]),y.createElementVNode("div",QA,[d[1]||(d[1]=y.createElementVNode("div",{class:"w-32 flex-shrink-0"},[y.createElementVNode("p",{class:"text-sm font-semibold text-gray-500"},"Дата видачі:")],-1)),y.createElementVNode("p",YA,y.toDisplayString(P.formatDate(x.cdate)),1)])])]),y.createElementVNode("div",$A,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 h-10 px-4 py-2 rounded-md bg-gray-900 text-white hover:bg-black"}," Детальніше ",8,ek)])]))),128)}const rk=Gt(UA,[["render",tk]]),ik={name:"Template3",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},nk={class:"flex items-center py-2 px-3"},sk={class:"grid grid-cols-12 gap-2 w-full text-sm"},ok={class:"col-span-5"},ak={class:"font-medium line-clamp-1"},lk={class:"inline-flex items-center rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 mt-1 text-[10px] font-normal px-1.5 py-0","data-v0-t":"badge"},ck={class:"col-span-2"},uk={class:"truncate"},hk={class:"col-span-2"},pk={class:"truncate"},dk={class:"col-span-2"},fk={class:"col-span-1 flex justify-end items-center"},mk=["href"];function gk(h,d,_,w,T,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{class:"border-b border-slate-200 hover:bg-slate-50 transition-colors",key:x.id},[y.createElementVNode("div",nk,[d[4]||(d[4]=y.createElementVNode("div",{class:"w-1 h-8 rounded-full mr-3 bg-blue-500"},null,-1)),y.createElementVNode("div",sk,[y.createElementVNode("div",ok,[y.createElementVNode("p",ak,y.toDisplayString(x.name),1),y.createElementVNode("div",lk,y.toDisplayString(x.type_text),1)]),y.createElementVNode("div",ck,[d[0]||(d[0]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Територіальна належність",-1)),y.createElementVNode("p",uk,y.toDisplayString(x.parent_text),1)]),y.createElementVNode("div",hk,[d[1]||(d[1]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Статус",-1)),y.createElementVNode("p",pk,y.toDisplayString(x.status_text),1)]),y.createElementVNode("div",dk,[d[2]||(d[2]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Дата видачі",-1)),y.createElementVNode("p",null,y.toDisplayString(P.formatDate(x.cdate)),1)]),y.createElementVNode("div",fk,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground rounded-md h-7 w-7 p-0"},d[3]||(d[3]=[y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-chevron-right h-4 w-4"},[y.createElementVNode("path",{d:"m9 18 6-6-6-6"})],-1)]),8,mk)])])])]))),128)}const yk=Gt(ik,[["render",gk]]),_k={name:"Template3",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return h?new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"}):"Не вказано"}}},vk={class:"grid grid-cols-12 divide-x divide-gray-100"},xk={class:"col-span-7 p-4"},bk={class:"flex items-center mb-1"},wk={class:"text-base font-bold text-gray-900 mr-2"},Sk={class:"inline-flex items-center rounded-full px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-blue-100 text-blue-800 border-0 text-xs"},Ak={class:"text-sm text-gray-600 line-clamp-1 mb-2"},kk={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},Tk={class:"flex items-center"},Ck={class:"text-gray-600 truncate"},Ek={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},Pk={class:"w-full space-y-2"},Ik=["href"];function Mk(h,d,_,w,T,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[y.createElementVNode("div",vk,[d[2]||(d[2]=y.createElementVNode("div",{class:"col-span-1 flex items-center justify-center"},[y.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-red-500",title:"Пріоритет: Високий","aria-hidden":"true"})],-1)),y.createElementVNode("div",xk,[y.createElementVNode("div",bk,[y.createElementVNode("h3",wk,y.toDisplayString(x.name),1),y.createElementVNode("div",Sk,y.toDisplayString(x.type_text),1)]),y.createElementVNode("p",Ak,y.toDisplayString(x.parent_text),1),y.createElementVNode("div",kk,[y.createElementVNode("div",Tk,[d[0]||(d[0]=y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-clock h-3.5 w-3.5 text-gray-400 mr-1 flex-shrink-0"},[y.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),y.createElementVNode("polyline",{points:"12 6 12 12 16 14"})],-1)),y.createElementVNode("span",Ck,"Оновлено: "+y.toDisplayString(P.formatDate(x.editor_date)),1)])])]),d[3]||(d[3]=y.createStaticVNode('<div class="col-span-2 p-3 bg-gray-50 flex flex-col justify-center"><p class="text-xs text-gray-500 mb-1.5">Категорії:</p><div class="flex flex-wrap gap-1"><div class="inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-1.5 py-0"> Житловий </div><div class="inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-1.5 py-0"> Центр </div></div></div>',1)),y.createElementVNode("div",Ek,[y.createElementVNode("div",Pk,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," Детальніше",8,Ik),d[1]||(d[1]=y.createElementVNode("button",{disabled:"",class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border bg-background hover:text-accent-foreground rounded-md px-3 w-full text-gray-700 border-gray-300 hover:bg-gray-100 text-xs h-8"}," Завантажити ",-1))])])])]))),128)}const Lk=Gt(_k,[["render",Mk]]),Rk={template1:qA,template2:rk,template3:yk,template4:Lk},Dk={name:"RegistryList",components:{HeroBlock:_y,...Rk},props:{title:{type:String,required:!0},description:{type:String,default:""},type:{type:String,default:"list"},items:{type:Array,default:()=>[]},total:{type:Number,default:0},filters:{type:Array,default:()=>null},emptyStateText:{type:String,default:"Немає даних"},limit:{type:Number,default:16},currentPage:{type:Number,default:1},breadcrumbs:{type:Array,default:()=>[]},path:{type:String,default:""},id_key:{type:String,default:"id"},dialog:{type:Boolean,default:!0},token:{type:String,default:""},table:{type:String,required:!0}},data(){return{filterUrl:"",mounted:!1,templateViews:[{value:"template1",label:"Шаблон 1"},{value:"template2",label:"Шаблон 2"},{value:"template3",label:"Шаблон 3"},{value:"template4",label:"Шаблон 4"}],templateView:"template1",tableData:[],localTotal:0}},created(){this.tableData=this.items,this.localTotal=this.total},mounted(){this.mounted=!0},methods:{handleFilterChange({url:h}){this.currentPage=1,this.filterUrl=h,this.getData()},handlePageChange(h){this.currentPage=h,this.getData(),this.$nextTick(()=>{this.$refs.componentRef.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"})})},changeLimit(h){this.limit=h,this.currentPage=1,this.getData()},async getData(){try{const h=this.type==="registry"?"/api/gis-registry":"/api/data",{data:d}=await gr.get(`${h}/${this.table}?filter=${this.filterUrl}&page=${this.currentPage}&limit=${this.limit}`);d&&(this.tableData=d==null?void 0:d.rows,this.localTotal=this.type==="registry"?d==null?void 0:d.filtered:d==null?void 0:d.total)}catch(h){console.error(h.message)}}}},zk={class:"py-16 md:py-24"},Bk={class:"py-6",ref:"componentRef"},Vk={class:"container"},Fk={key:0,class:"flex items-center text-sm text-muted-foreground mb-6"},Ok=["href"],Nk={key:1,class:"text-foreground font-medium truncate"},qk={class:"flex flex-col md:flex-row gap-4 justify-start"},Uk={class:"container"},jk={key:0,class:"space-y-4"},Hk={class:"my-5 pr-2"},Wk={class:"paginationWrapper relative flex justify-center"},Zk={key:1,class:"text-center text-slate-400"};function Kk(h,d,_,w,T,P){var F,L;const x=y.resolveComponent("HeroBlock"),s=y.resolveComponent("VsFilterList"),B=y.resolveComponent("VsAutocompleteOption"),R=y.resolveComponent("VsAutocomplete"),M=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",zk,[y.createElementVNode("section",null,[y.createVNode(x,{title:_.title,description:_.description,path:_.path},null,8,["title","description","path"])]),y.createElementVNode("section",Bk,[y.createElementVNode("div",Vk,[(F=_.breadcrumbs)!=null&&F.length?(y.openBlock(),y.createElementBlock("div",Fk,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.breadcrumbs,(A,C)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:C},[C<_.breadcrumbs.length-1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createElementVNode("a",{href:A.link,class:"hover:text-foreground"},y.toDisplayString(A.name),9,Ok),d[1]||(d[1]=y.createElementVNode("span",{class:"mx-2"},"/",-1))],64)):(y.openBlock(),y.createElementBlock("span",Nk,y.toDisplayString(A.name),1))],64))),128))])):y.createCommentVNode("",!0),y.createElementVNode("div",qk,[_.filters&&T.mounted?(y.openBlock(),y.createBlock(s,{key:0,ref:"filter",scheme:_.filters,token:_.token,isDialog:_.dialog,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:P.handleFilterChange},{button:y.withCtx(()=>d[2]||(d[2]=[y.createElementVNode("button",{class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground px-3 py-2",type:"button"}," Фільтри ",-1)])),_:1},8,["scheme","token","isDialog","onFilterChange"])):y.createCommentVNode("",!0),y.createVNode(R,{modelValue:T.templateView,"onUpdate:modelValue":d[0]||(d[0]=A=>T.templateView=A),class:"w-[150px]"},{default:y.withCtx(()=>[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.templateViews,A=>(y.openBlock(),y.createBlock(B,{label:A.label,value:A.value},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(A.label),1)]),_:2},1032,["label","value"]))),256))]),_:1},8,["modelValue"])])])],512),y.createElementVNode("section",null,[y.createElementVNode("div",Uk,[((L=T.tableData)==null?void 0:L.length)>0?(y.openBlock(),y.createElementBlock("div",jk,[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(T.templateView),{items:T.tableData,path:_.path,id_key:_.id_key},null,8,["items","path","id_key"])),y.createElementVNode("div",Hk,[y.createElementVNode("div",Wk,[y.createVNode(M,{total:T.localTotal,maxPages:4,defaultPage:_.currentPage,pageSize:_.limit,goTo:!1,size:"medium",backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[10,20,30,40],onPageChange:P.handlePageChange,onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])])):(y.openBlock(),y.createElementBlock("div",Zk,y.toDisplayString(_.emptyStateText),1))])])])}const xy=Gt(Dk,[["render",Kk]]),Gk={class:"pt-[10px]"},Jk={__name:"vs-editor-style-ace",props:{yamlValue:{type:null,default:()=>""}},setup(h){const d=h,_=y.ref(d.yamlValue);return(w,T)=>{const P=y.resolveComponent("VsFormAce");return y.openBlock(),y.createElementBlock("div",Gk,[y.createVNode(P,{modelValue:_.value,"onUpdate:modelValue":T[0]||(T[0]=x=>_.value=x),value:_.value,fontSize:"12px"},null,8,["modelValue","value"])])}}},Xk={components:{VsEditorStyleAce:Jk},props:{data:Object,value:null,name:String},data(){var h,d,_;return{style:((_=(d=(h=this.data)==null?void 0:h.rows)==null?void 0:d[0])==null?void 0:_.style)||""}}};function Qk(h,d,_,w,T,P){const x=y.resolveComponent("VsEditorStyleAce");return y.openBlock(),y.createBlock(x,{yamlValue:T.style,onChangeData:h.onChange,height:500,onUpdate:h.getData},null,8,["yamlValue","onChangeData","onUpdate"])}const Yk=Gt(Xk,[["render",Qk]]);function $k(h){h.component("MapCustom",yy),h.component("RegistryList",vy),h.component("RegistryListCustom",xy),h.component("vs-style-yml",Yk)}const eT={MapCustom:yy,RegistryListCustom:xy,RegistryList:vy,install:$k};module.exports=eT;
|
|
845
|
+
`):"":Te=Array.isArray(Se.content)?Se.content.join(""):"",T||(T=document.createElement("div"),_.value.getContainer().appendChild(T));const qe=_.value.project($t.lngLat);T.innerHTML=vt(Ie,Te,Se.fields,yt.properties,Se.mode,qe)}}),_.value.on("mouseleave",()=>{var $t;if(T&&(T.remove(),T=null),x.value){const Xt=($t=_.value.getSource(x.value.source))==null?void 0:$t.type;x.value.source,x.value.id,Xt==="vector"&&x.value.source,Rr(_.value,x.value.source,x.value.id,{hovered:!1}),x.value=null}_.value&&_.value.getCanvas&&(_.value.getCanvas().style.cursor="")})),_.value.on("click",async $t=>{var Q,re,ce,ye,$;if(["length","area","print"].includes(M.value))return;const Xt=_.value.queryRenderedFeatures($t.point);if(!Xt.length)return;s.value.forEach(ke=>{var Se;const be=(Se=_.value.getSource(ke.source))==null?void 0:Se.type;ke.source,ke.id,be==="vector"&&ke.source,Rr(_.value,ke.source,ke.id,{selected:!1})}),s.value=[];const yt=Xt[0],er=(Q=_.value.getSource(yt.layer.source))==null?void 0:Q.type;yt.layer.source,yt.id,er==="vector"&&yt.layer.source,Rr(_.value,yt.layer.source,yt.id,{selected:!0}),s.value.push({source:yt.layer.source,id:yt.id});const ur=(ce=(re=F.value)==null?void 0:re.widgets)==null?void 0:ce.find(ke=>ke.type==="layers"),we=($=(ye=F.value)==null?void 0:ye.widgets)==null?void 0:$.find(ke=>ke.type==="attribute");let K=(we==null?void 0:we.config.layer)||(ur==null?void 0:ur.config.layers.find(ke=>ke.id===yt.layer.source));R.value={layer:(K==null?void 0:K.service_key)||"",map:(K==null?void 0:K.map_key)||"",id:yt.properties.id,title:(K==null?void 0:K.title)||""}}),_.value.on("dblclick",$t=>{var er,ur,we;if(["length","area","print"].includes(M.value))return;ai([$t.lngLat.lng,$t.lngLat.lat]);const Xt=(ur=(er=F.value)==null?void 0:er.widgets)==null?void 0:ur.find(K=>K.type==="layers");let yt=null;(we=Xt==null?void 0:Xt.config)!=null&&we.layers&&(yt=Xt.config.layers.find(K=>K.visible!==!1&&["tms","wms","raster"].includes((K.service_type||K.service||"").toLowerCase()))),R.value={layer:(yt==null?void 0:yt.map_key)||"",map:(yt==null?void 0:yt.service_key)||"",id:"",title:(yt==null?void 0:yt.title)||""}}),_.value.resize(),w.value=!0,(Ri=F==null?void 0:F.value)!=null&&Ri.history){const $t=()=>{const Xt=_.value.getCenter();Mt({center:[Xt.lng,Xt.lat],zoom:_.value.getZoom(),bearing:_.value.getBearing(),pitch:_.value.getPitch()})};_.value.on("moveend",$t),_.value.on("rotate",$t),_.value.on("pitch",$t)}})},yr=()=>{ji(),s.value.forEach(Ke=>{_.value&&Rr(_.value,Ke.source,Ke.id,{selected:!1})}),s.value=[],R.value=null};y.onMounted(async()=>{await Zt(),await y.nextTick(),cr(),window.addEventListener("resize",()=>{Ce()}),y.watch([A["top-left"],A["top-right"],A["top-center"],A.center,A["bottom-left"],A["bottom-right"],A["bottom-center"],()=>F.value.widgets,B],async()=>{await y.nextTick(),Ce(),setTimeout(Ce,0)},{deep:!0}),y.watch(w,Ke=>{Ke&&y.nextTick().then(()=>{Ce()})}),y.watch(()=>d.table,async Ke=>{if(Ke){if(_.value){try{_.value.remove()}catch{}_.value=null,w.value=!1}await Zt(),await y.nextTick(),cr(),Ce(),window.removeEventListener("resize",Ce),window.addEventListener("resize",Ce),y.watch([A["top-left"],A["top-right"],A["top-center"],A.center,A["bottom-left"],A["bottom-right"],A["bottom-center"],()=>F.value.widgets,B],async()=>{await y.nextTick(),Ce(),setTimeout(Ce,0)},{deep:!0}),y.watch(w,nt=>{nt&&y.nextTick().then(()=>{Ce()})})}})}),y.onUnmounted(()=>{window.removeEventListener("resize",Ce)});const bi=y.computed(()=>{var nt,lt,xt;return{height:((nt=F==null?void 0:F.value)==null?void 0:nt.height)||((xt=(lt=F==null?void 0:F.value)==null?void 0:lt.map)==null?void 0:xt.height)||"100vh",width:"100%"}}),Zt=async()=>{const Ke=await gr.get(`/api/map/${d.table}`);F.value=Ke.data},en=Ke=>{if(!F.value||!F.value.widgets)return"400px";const nt=F.value.widgets.find(lt=>lt.position===Ke);return(nt==null?void 0:nt.width)||"400px"},ti=y.ref([]);y.watch(()=>F.value,Ke=>{Ke&&Ke.map&&(ti.value=wn(),cr())});const wn=()=>{var nt;if(!F.value||!F.value.widgets)return[];const Ke=F.value.widgets.find(lt=>lt.type==="layers");return(nt=Ke==null?void 0:Ke.config)!=null&&nt.layers?Ke.config.layers.map(lt=>({...lt,visible:lt.visible??!1})).filter(lt=>lt.visible).map(lt=>lt.id):[]};function Rr(Ke,nt,lt,xt){Ke.getStyle().layers.filter(Pt=>Pt.source===nt).forEach(Pt=>{var Ut;const mt={source:nt,id:lt};((Ut=Ke.getSource(nt))==null?void 0:Ut.type)==="vector"&&Pt["source-layer"]&&(mt.sourceLayer=Pt["source-layer"]),Ke.setFeatureState(mt,xt)})}const as=y.computed(()=>!!F.value&&!!F.value.interactions&&!!F.value.interactions.navigation&&F.value.interactions.navigation.enabled),wi=y.computed(()=>!!F.value&&Array.isArray(F.value.tools)&&F.value.tools.length>0),Dr=y.computed(()=>as.value||wi.value?"70px":"20px");function ji(){_.value&&(_.value.getLayer("layer-with-pulsing-dot")&&_.value.removeLayer("layer-with-pulsing-dot"),_.value.getSource("dot-point")&&_.value.removeSource("dot-point"),_.value.hasImage&&_.value.hasImage("pulsing-dot")&&_.value.removeImage("pulsing-dot"))}function ai(Ke){var xt,kt,Pt,mt;ji();const nt=80,lt={width:nt,height:nt,data:new Uint8Array(nt*nt*4),onAdd(){const Ut=document.createElement("canvas");Ut.width=this.width,Ut.height=this.height,this.context=Ut.getContext("2d",{willReadFrequently:!0})},render(){var Mi;const It=performance.now()%2e3/2e3,Sr=nt/2*.3,mi=nt/2*.7*It+Sr,{context:Er}=this;Er.clearRect(0,0,this.width,this.height),Er.beginPath(),Er.arc(this.width/2,this.height/2,mi,0,Math.PI*2),Er.fillStyle=`rgba(255, 100, 100, ${1-It})`,Er.fill();const Hi=nt/2*.7*(It-.5<0?It-.5+1:It-.5)+Sr;return Er.beginPath(),Er.arc(this.width/2,this.height/2,Hi,0,Math.PI*2),Er.fillStyle=`rgba(255, 100, 100, ${1-(It-.5<0?It-.5+1:It-.5)})`,Er.fill(),this.data=Er.getImageData(0,0,this.width,this.height).data,(Mi=_.value)==null||Mi.triggerRepaint(),!0}};(xt=_.value)!=null&&xt.hasImage("pulsing-dot")||(kt=_.value)==null||kt.addImage("pulsing-dot",lt,{pixelRatio:2}),(Pt=_.value)==null||Pt.addSource("dot-point",{type:"geojson",data:{type:"Feature",geometry:{type:"Point",coordinates:Ke}}}),(mt=_.value)==null||mt.addLayer({id:"layer-with-pulsing-dot",type:"symbol",source:"dot-point",layout:{"icon-image":"pulsing-dot"},paint:{"icon-opacity":.6}})}const Sn=y.computed(()=>{var Ke,nt,lt,xt,kt,Pt,mt,Ut,It,Sr;return{center:(nt=(Ke=F==null?void 0:F.value)==null?void 0:Ke.map)==null?void 0:nt.center,zoom:(xt=(lt=F==null?void 0:F.value)==null?void 0:lt.map)==null?void 0:xt.zoom,pitch:((Pt=(kt=F==null?void 0:F.value)==null?void 0:kt.map)==null?void 0:Pt.pitch)||0,bearing:((Ut=(mt=F==null?void 0:F.value)==null?void 0:mt.map)==null?void 0:Ut.bearing)||0,bbox:((Sr=(It=F==null?void 0:F.value)==null?void 0:It.map)==null?void 0:Sr.bbox)||null}}),tn={home:Iw,print:Vw,geolocation:aS,pitch:Nw,length:VS,area:YS},Vn=Ke=>{M.value=Ke};function Kr(Ke){if(!F.value||!F.value.widgets)return;const nt=F.value.widgets.find(kt=>kt.type==="list");if(!nt||!nt.config)return;const{map_key:lt,service_key:xt}=nt.config;lt&&xt&&(R.value={id:Ke,map:lt,layer:xt})}function li(Ke){switch(Ke){case"top-left":return H.value;case"top-right":return G.value;case"top-center":return se.value;case"center":return le.value;case"bottom-left":return Ae.value;case"bottom-right":return te.value;case"bottom-center":return de.value;default:return 0}}const Gr=y.computed(()=>F.value&&F.value.widgets?F.value.widgets.filter(Ke=>Ke.position==="absolute"):[]);return(Ke,nt)=>{var lt,xt,kt,Pt;return y.openBlock(),y.createElementBlock("div",{id:"maplibre-demo-map",style:y.normalizeStyle(bi.value)},[w.value?y.createCommentVNode("",!0):(y.openBlock(),y.createBlock(Sw,{key:0})),y.withDirectives(y.createElementVNode("div",tA,[(y.openBlock(),y.createElementBlock(y.Fragment,null,y.renderList(L,mt=>{var Ut,It;return y.createVNode(eA,{key:mt,position:mt,widgets:Ve(mt),map:_.value,mapLoaded:w.value,cardValues:R.value,hasFilters:Xe.value,history:(It=(Ut=F.value)==null?void 0:Ut.value)==null?void 0:It.history,currentFilterLayer:P.value,enabledLayerIds:ti.value,getWidgetComponent:tt,getColumnWidth:en,rightColumnOffset:mt==="top-right"?Dr.value:void 0,maxHeight:li(mt),ref_for:!0,ref:Sr=>C(mt,Sr),onSetFilterLayer:rt,"onUpdate:enabledLayerIds":nt[0]||(nt[0]=Sr=>ti.value=Sr),onCardValuesId:Kr,onCloseCard:yr,onContentResize:()=>Ce(mt)},null,8,["position","widgets","map","mapLoaded","cardValues","hasFilters","history","currentFilterLayer","enabledLayerIds","rightColumnOffset","maxHeight","onContentResize"])}),64)),(xt=(lt=F.value)==null?void 0:lt.value)!=null&&xt.tools?(y.openBlock(),y.createElementBlock("div",rA,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList((Pt=(kt=F.value)==null?void 0:kt.value)==null?void 0:Pt.tools,mt=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:mt},[w.value&&tn[mt]?(y.openBlock(),y.createBlock(y.resolveDynamicComponent(tn[mt]),y.mergeProps({key:0,map:_.value,activeTool:M.value,setActiveTool:Vn},{ref_for:!0},mt==="home"?{initialView:Sn.value}:{},{onCardValuesId:Kr}),null,16,["map","activeTool"])):y.createCommentVNode("",!0)],64))),128))])):y.createCommentVNode("",!0)],512),[[y.vShow,w.value]]),(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(Gr.value,(mt,Ut)=>(y.openBlock(),y.createElementBlock("div",{key:"abs-"+(mt.id||mt.type||Ut),class:"absolute z-20",style:y.normalizeStyle(mt.style)},[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(tt(mt.type)),{map:_.value,config:mt.config,hasFilters:Xe.value,currentFilterLayer:P.value,enabledLayerIds:ti.value,cardValues:R.value,onSetFilterLayer:rt,"onUpdate:enabledLayerIds":nt[1]||(nt[1]=It=>ti.value=It),onCardValuesId:Kr,onCloseCard:yr},null,40,["map","config","hasFilters","currentFilterLayer","enabledLayerIds","cardValues"]))],4))),128))],4)}}},yy=Gt(iA,[["__scopeId","data-v-edaa6750"]]),nA={props:{title:{type:String,required:!0},description:{type:String,required:!0}}},sA={class:"text-center mb-12"},oA={class:"text-3xl font-bold mb-4"},aA={class:"text-slate-600 max-w-2xl mx-auto"};function lA(h,d,_,w,T,P){return y.openBlock(),y.createElementBlock("div",sA,[y.createElementVNode("h2",oA,y.toDisplayString(_.title),1),y.createElementVNode("p",aA,y.toDisplayString(_.description),1)])}const _y=Gt(nA,[["render",lA]]),cA={name:"RegistryList",components:{HeroBlock:_y},props:{title:{type:String,required:!0},description:{type:String,default:""},type:{type:String,default:"data"},items:{type:Array,default:()=>[]},total:{type:Number,default:0},filters:{type:Array,default:()=>null},emptyStateText:{type:String,default:"Немає даних"},limit:{type:Number,default:16},breadcrumbs:{type:Array,default:()=>[]},dialog:{type:Boolean,default:!0},token:{type:String,default:""},table:{type:String,default:""},slug:{type:String,default:""}},data(){return{filterUrl:"",mounted:!1,tableData:[],currentPage:1,limit:16,localTotal:0}},created(){this.tableData=this.items,this.localTotal=this.total},mounted(){this.mounted=!0},methods:{handleFilterChange({url:h}){this.currentPage=1,this.filterUrl=h,this.getData()},handlePageChange(h){this.currentPage=h,this.getData()},changeLimit(h){this.limit=h,this.currentPage=1,this.getData()},async getData(){try{const h=this.type==="registry"?`/api/gis-registry/${this.slug}`:`/api/data/${this.table}`,{data:d}=await gr.get(`${h}?filter=${this.filterUrl}&page=${this.currentPage}&limit=${this.limit}`);d&&(this.tableData=d==null?void 0:d.rows,this.localTotal=this.type==="registry"?d==null?void 0:d.total:d==null?void 0:d.filtered)}catch(h){console.error(h.message)}}}},uA={class:"py-16 md:py-24"},hA={class:"py-6"},pA={class:"container"},dA={key:0,class:"flex items-center text-sm text-muted-foreground mb-6"},fA=["href"],mA={key:1,class:"text-foreground font-medium truncate"},gA={class:"flex flex-col md:flex-row gap-4 justify-start"},yA={class:"container"},_A={key:0,class:"space-y-4"},vA={class:"my-5 pr-2"},xA={class:"paginationWrapper relative flex justify-center"},bA={key:1,class:"text-center text-slate-400"};function wA(h,d,_,w,T,P){var R,M;const x=y.resolveComponent("HeroBlock"),s=y.resolveComponent("VsFilterList"),B=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",uA,[y.createElementVNode("section",null,[y.createVNode(x,{title:_.title,description:_.description},null,8,["title","description"])]),y.createElementVNode("section",hA,[y.createElementVNode("div",pA,[(R=_.breadcrumbs)!=null&&R.length?(y.openBlock(),y.createElementBlock("div",dA,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.breadcrumbs,(F,L)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:L},[L<_.breadcrumbs.length-1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createElementVNode("a",{href:F.link,class:"hover:text-foreground"},y.toDisplayString(F.name),9,fA),d[0]||(d[0]=y.createElementVNode("span",{class:"mx-2"},"/",-1))],64)):(y.openBlock(),y.createElementBlock("span",mA,y.toDisplayString(F.name),1))],64))),128))])):y.createCommentVNode("",!0),y.createElementVNode("div",gA,[_.filters&&T.mounted?(y.openBlock(),y.createBlock(s,{key:0,ref:"filter",scheme:_.filters,isDialog:_.dialog,urlSeparator:"true",view:"plain",token:_.token,name:"filter",onFilterChange:P.handleFilterChange},{button:y.withCtx(()=>d[1]||(d[1]=[y.createElementVNode("button",{class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground px-3 py-2",type:"button"}," Фільтри ",-1)])),_:1},8,["scheme","isDialog","token","onFilterChange"])):y.createCommentVNode("",!0)])])]),y.createElementVNode("section",null,[y.createElementVNode("div",yA,[((M=T.tableData)==null?void 0:M.length)>0?(y.openBlock(),y.createElementBlock("div",_A,[y.renderSlot(h.$slots,"default",{items:T.tableData}),y.createElementVNode("div",vA,[y.createElementVNode("div",xA,[y.createVNode(B,{total:T.localTotal,maxPages:4,defaultPage:T.currentPage,pageSize:T.limit,goTo:!1,size:"medium",backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[9,18,27,36],onPageChange:P.handlePageChange,onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])])):(y.openBlock(),y.createElementBlock("div",bA,y.toDisplayString(_.emptyStateText),1))])])])}const vy=Gt(cA,[["render",wA]]),SA={name:"Template2",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},AA={class:"flex flex-col space-y-1.5 p-4 pb-2 bg-slate-50"},kA={class:"flex items-center justify-between"},TA={class:"text-lg font-bold line-clamp-2"},CA={class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground ml-2 whitespace-nowrap","data-v0-t":"badge"},EA={class:"p-4 pt-2"},PA={class:"grid grid-cols-2 gap-3 text-sm"},IA={class:"flex items-center gap-1.5"},MA={class:"font-medium"},LA={class:"flex items-center gap-1.5"},RA={class:"font-medium"},DA={class:"flex items-center gap-1.5"},zA={class:"font-medium"},BA={class:"flex items-center gap-1.5"},VA={class:"font-medium"},FA={class:"items-center p-3 bg-slate-50 flex justify-end"},OA=["href"];function NA(h,d,_,w,T,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[d[8]||(d[8]=y.createElementVNode("div",{class:"absolute left-0 top-0 bottom-0 w-1 bg-blue-500"},null,-1)),y.createElementVNode("div",AA,[y.createElementVNode("div",kA,[y.createElementVNode("h2",TA,y.toDisplayString(x.name),1),y.createElementVNode("div",CA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",EA,[y.createElementVNode("div",PA,[y.createElementVNode("div",IA,[d[0]||(d[0]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>',1)),y.createElementVNode("div",null,[y.createElementVNode("span",MA,y.toDisplayString(x.parent_text),1)])]),y.createElementVNode("div",LA,[d[2]||(d[2]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-building h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><rect width="16" height="20" x="4" y="2" rx="2" ry="2"></rect><path d="M9 22v-4h6v4"></path><path d="M8 6h.01"></path><path d="M16 6h.01"></path><path d="M12 6h.01"></path><path d="M12 10h.01"></path><path d="M12 14h.01"></path><path d="M16 10h.01"></path><path d="M16 14h.01"></path><path d="M8 10h.01"></path><path d="M8 14h.01"></path></svg>',1)),y.createElementVNode("div",null,[d[1]||(d[1]=y.createElementVNode("span",{class:"text-muted-foreground"},"Статус: ",-1)),y.createElementVNode("span",RA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",DA,[d[4]||(d[4]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-building h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><rect width="16" height="20" x="4" y="2" rx="2" ry="2"></rect><path d="M9 22v-4h6v4"></path><path d="M8 6h.01"></path><path d="M16 6h.01"></path><path d="M12 6h.01"></path><path d="M12 10h.01"></path><path d="M12 14h.01"></path><path d="M16 10h.01"></path><path d="M16 14h.01"></path><path d="M8 10h.01"></path><path d="M8 14h.01"></path></svg>',1)),y.createElementVNode("div",null,[y.createElementVNode("div",null,[d[3]||(d[3]=y.createElementVNode("span",{class:"text-muted-foreground"},"Тип: ",-1)),y.createElementVNode("span",zA,y.toDisplayString(x.type_text),1)])])]),y.createElementVNode("div",BA,[d[6]||(d[6]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>',1)),y.createElementVNode("div",null,[d[5]||(d[5]=y.createElementVNode("span",{class:"text-muted-foreground"},"Дата видачі: ",-1)),y.createElementVNode("span",VA,y.toDisplayString(P.formatDate(x.cdate)),1)])])])]),y.createElementVNode("div",FA,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},d[7]||(d[7]=[y.createTextVNode(" Детальніше"),y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-arrow-right ml-1 h-3.5 w-3.5"},[y.createElementVNode("path",{d:"M5 12h14"}),y.createElementVNode("path",{d:"m12 5 7 7-7 7"})],-1)]),8,OA)])]))),128)}const qA=Gt(SA,[["render",NA]]),UA={name:"Template2",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},jA={class:"flex flex-col space-y-1.5 p-6 pb-2 border-b"},HA={class:"flex justify-between items-center"},WA={class:"tracking-tight text-lg font-medium"},ZA={class:"inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800"},KA={class:"p-6 py-4"},GA={class:"grid grid-cols-1 gap-3"},JA={class:"flex items-center"},XA={class:"font-medium"},QA={class:"flex items-center"},YA={class:"font-medium"},$A={class:"items-center p-6 pt-0 flex justify-end"},ek=["href"];function tk(h,d,_,w,T,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"rounded-lg bg-card text-card-foreground border-0 shadow-md","data-v0-t":"card"},[y.createElementVNode("div",jA,[y.createElementVNode("div",HA,[y.createElementVNode("h3",WA,y.toDisplayString(x.name),1),y.createElementVNode("span",ZA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",KA,[y.createElementVNode("div",GA,[y.createElementVNode("div",JA,[d[0]||(d[0]=y.createElementVNode("div",{class:"w-32 flex-shrink-0"},[y.createElementVNode("p",{class:"text-sm font-semibold text-gray-500"},"Номер адреси:")],-1)),y.createElementVNode("p",XA,y.toDisplayString(x.parent_text),1)]),y.createElementVNode("div",QA,[d[1]||(d[1]=y.createElementVNode("div",{class:"w-32 flex-shrink-0"},[y.createElementVNode("p",{class:"text-sm font-semibold text-gray-500"},"Дата видачі:")],-1)),y.createElementVNode("p",YA,y.toDisplayString(P.formatDate(x.cdate)),1)])])]),y.createElementVNode("div",$A,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 h-10 px-4 py-2 rounded-md bg-gray-900 text-white hover:bg-black"}," Детальніше ",8,ek)])]))),128)}const rk=Gt(UA,[["render",tk]]),ik={name:"Template3",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},nk={class:"flex items-center py-2 px-3"},sk={class:"grid grid-cols-12 gap-2 w-full text-sm"},ok={class:"col-span-5"},ak={class:"font-medium line-clamp-1"},lk={class:"inline-flex items-center rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 mt-1 text-[10px] font-normal px-1.5 py-0","data-v0-t":"badge"},ck={class:"col-span-2"},uk={class:"truncate"},hk={class:"col-span-2"},pk={class:"truncate"},dk={class:"col-span-2"},fk={class:"col-span-1 flex justify-end items-center"},mk=["href"];function gk(h,d,_,w,T,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{class:"border-b border-slate-200 hover:bg-slate-50 transition-colors",key:x.id},[y.createElementVNode("div",nk,[d[4]||(d[4]=y.createElementVNode("div",{class:"w-1 h-8 rounded-full mr-3 bg-blue-500"},null,-1)),y.createElementVNode("div",sk,[y.createElementVNode("div",ok,[y.createElementVNode("p",ak,y.toDisplayString(x.name),1),y.createElementVNode("div",lk,y.toDisplayString(x.type_text),1)]),y.createElementVNode("div",ck,[d[0]||(d[0]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Територіальна належність",-1)),y.createElementVNode("p",uk,y.toDisplayString(x.parent_text),1)]),y.createElementVNode("div",hk,[d[1]||(d[1]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Статус",-1)),y.createElementVNode("p",pk,y.toDisplayString(x.status_text),1)]),y.createElementVNode("div",dk,[d[2]||(d[2]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Дата видачі",-1)),y.createElementVNode("p",null,y.toDisplayString(P.formatDate(x.cdate)),1)]),y.createElementVNode("div",fk,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground rounded-md h-7 w-7 p-0"},d[3]||(d[3]=[y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-chevron-right h-4 w-4"},[y.createElementVNode("path",{d:"m9 18 6-6-6-6"})],-1)]),8,mk)])])])]))),128)}const yk=Gt(ik,[["render",gk]]),_k={name:"Template3",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return h?new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"}):"Не вказано"}}},vk={class:"grid grid-cols-12 divide-x divide-gray-100"},xk={class:"col-span-7 p-4"},bk={class:"flex items-center mb-1"},wk={class:"text-base font-bold text-gray-900 mr-2"},Sk={class:"inline-flex items-center rounded-full px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-blue-100 text-blue-800 border-0 text-xs"},Ak={class:"text-sm text-gray-600 line-clamp-1 mb-2"},kk={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},Tk={class:"flex items-center"},Ck={class:"text-gray-600 truncate"},Ek={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},Pk={class:"w-full space-y-2"},Ik=["href"];function Mk(h,d,_,w,T,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[y.createElementVNode("div",vk,[d[2]||(d[2]=y.createElementVNode("div",{class:"col-span-1 flex items-center justify-center"},[y.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-red-500",title:"Пріоритет: Високий","aria-hidden":"true"})],-1)),y.createElementVNode("div",xk,[y.createElementVNode("div",bk,[y.createElementVNode("h3",wk,y.toDisplayString(x.name),1),y.createElementVNode("div",Sk,y.toDisplayString(x.type_text),1)]),y.createElementVNode("p",Ak,y.toDisplayString(x.parent_text),1),y.createElementVNode("div",kk,[y.createElementVNode("div",Tk,[d[0]||(d[0]=y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-clock h-3.5 w-3.5 text-gray-400 mr-1 flex-shrink-0"},[y.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),y.createElementVNode("polyline",{points:"12 6 12 12 16 14"})],-1)),y.createElementVNode("span",Ck,"Оновлено: "+y.toDisplayString(P.formatDate(x.editor_date)),1)])])]),d[3]||(d[3]=y.createStaticVNode('<div class="col-span-2 p-3 bg-gray-50 flex flex-col justify-center"><p class="text-xs text-gray-500 mb-1.5">Категорії:</p><div class="flex flex-wrap gap-1"><div class="inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-1.5 py-0"> Житловий </div><div class="inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-1.5 py-0"> Центр </div></div></div>',1)),y.createElementVNode("div",Ek,[y.createElementVNode("div",Pk,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," Детальніше",8,Ik),d[1]||(d[1]=y.createElementVNode("button",{disabled:"",class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border bg-background hover:text-accent-foreground rounded-md px-3 w-full text-gray-700 border-gray-300 hover:bg-gray-100 text-xs h-8"}," Завантажити ",-1))])])])]))),128)}const Lk=Gt(_k,[["render",Mk]]),Rk={template1:qA,template2:rk,template3:yk,template4:Lk},Dk={name:"RegistryList",components:{HeroBlock:_y,...Rk},props:{title:{type:String,required:!0},description:{type:String,default:""},type:{type:String,default:"list"},items:{type:Array,default:()=>[]},total:{type:Number,default:0},filters:{type:Array,default:()=>null},emptyStateText:{type:String,default:"Немає даних"},limit:{type:Number,default:16},currentPage:{type:Number,default:1},breadcrumbs:{type:Array,default:()=>[]},path:{type:String,default:""},id_key:{type:String,default:"id"},dialog:{type:Boolean,default:!0},token:{type:String,default:""},table:{type:String,required:!0}},data(){return{filterUrl:"",mounted:!1,templateViews:[{value:"template1",label:"Шаблон 1"},{value:"template2",label:"Шаблон 2"},{value:"template3",label:"Шаблон 3"},{value:"template4",label:"Шаблон 4"}],templateView:"template1",tableData:[],localTotal:0}},created(){this.tableData=this.items,this.localTotal=this.total},mounted(){this.mounted=!0},methods:{handleFilterChange({url:h}){this.currentPage=1,this.filterUrl=h,this.getData()},handlePageChange(h){this.currentPage=h,this.getData(),this.$nextTick(()=>{this.$refs.componentRef.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"})})},changeLimit(h){this.limit=h,this.currentPage=1,this.getData()},async getData(){try{const h=this.type==="registry"?"/api/gis-registry":"/api/data",{data:d}=await gr.get(`${h}/${this.table}?filter=${this.filterUrl}&page=${this.currentPage}&limit=${this.limit}`);d&&(this.tableData=d==null?void 0:d.rows,this.localTotal=this.type==="registry"?d==null?void 0:d.filtered:d==null?void 0:d.total)}catch(h){console.error(h.message)}}}},zk={class:"py-16 md:py-24"},Bk={class:"py-6",ref:"componentRef"},Vk={class:"container"},Fk={key:0,class:"flex items-center text-sm text-muted-foreground mb-6"},Ok=["href"],Nk={key:1,class:"text-foreground font-medium truncate"},qk={class:"flex flex-col md:flex-row gap-4 justify-start"},Uk={class:"container"},jk={key:0,class:"space-y-4"},Hk={class:"my-5 pr-2"},Wk={class:"paginationWrapper relative flex justify-center"},Zk={key:1,class:"text-center text-slate-400"};function Kk(h,d,_,w,T,P){var F,L;const x=y.resolveComponent("HeroBlock"),s=y.resolveComponent("VsFilterList"),B=y.resolveComponent("VsAutocompleteOption"),R=y.resolveComponent("VsAutocomplete"),M=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",zk,[y.createElementVNode("section",null,[y.createVNode(x,{title:_.title,description:_.description,path:_.path},null,8,["title","description","path"])]),y.createElementVNode("section",Bk,[y.createElementVNode("div",Vk,[(F=_.breadcrumbs)!=null&&F.length?(y.openBlock(),y.createElementBlock("div",Fk,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.breadcrumbs,(A,C)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:C},[C<_.breadcrumbs.length-1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createElementVNode("a",{href:A.link,class:"hover:text-foreground"},y.toDisplayString(A.name),9,Ok),d[1]||(d[1]=y.createElementVNode("span",{class:"mx-2"},"/",-1))],64)):(y.openBlock(),y.createElementBlock("span",Nk,y.toDisplayString(A.name),1))],64))),128))])):y.createCommentVNode("",!0),y.createElementVNode("div",qk,[_.filters&&T.mounted?(y.openBlock(),y.createBlock(s,{key:0,ref:"filter",scheme:_.filters,token:_.token,isDialog:_.dialog,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:P.handleFilterChange},{button:y.withCtx(()=>d[2]||(d[2]=[y.createElementVNode("button",{class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground px-3 py-2",type:"button"}," Фільтри ",-1)])),_:1},8,["scheme","token","isDialog","onFilterChange"])):y.createCommentVNode("",!0),y.createVNode(R,{modelValue:T.templateView,"onUpdate:modelValue":d[0]||(d[0]=A=>T.templateView=A),class:"w-[150px]"},{default:y.withCtx(()=>[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(T.templateViews,A=>(y.openBlock(),y.createBlock(B,{label:A.label,value:A.value},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(A.label),1)]),_:2},1032,["label","value"]))),256))]),_:1},8,["modelValue"])])])],512),y.createElementVNode("section",null,[y.createElementVNode("div",Uk,[((L=T.tableData)==null?void 0:L.length)>0?(y.openBlock(),y.createElementBlock("div",jk,[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(T.templateView),{items:T.tableData,path:_.path,id_key:_.id_key},null,8,["items","path","id_key"])),y.createElementVNode("div",Hk,[y.createElementVNode("div",Wk,[y.createVNode(M,{total:T.localTotal,maxPages:4,defaultPage:_.currentPage,pageSize:_.limit,goTo:!1,size:"medium",backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[10,20,30,40],onPageChange:P.handlePageChange,onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])])):(y.openBlock(),y.createElementBlock("div",Zk,y.toDisplayString(_.emptyStateText),1))])])])}const xy=Gt(Dk,[["render",Kk]]),Gk={class:"pt-[10px]"},Jk={__name:"vs-editor-style-ace",props:{yamlValue:{type:null,default:()=>""}},setup(h){const d=h,_=y.ref(d.yamlValue);return(w,T)=>{const P=y.resolveComponent("VsFormAce");return y.openBlock(),y.createElementBlock("div",Gk,[y.createVNode(P,{modelValue:_.value,"onUpdate:modelValue":T[0]||(T[0]=x=>_.value=x),value:_.value,fontSize:"12px"},null,8,["modelValue","value"])])}}},Xk={components:{VsEditorStyleAce:Jk},props:{data:Object,value:null,name:String},data(){var h,d,_;return{style:((_=(d=(h=this.data)==null?void 0:h.rows)==null?void 0:d[0])==null?void 0:_.style)||""}}};function Qk(h,d,_,w,T,P){const x=y.resolveComponent("VsEditorStyleAce");return y.openBlock(),y.createBlock(x,{yamlValue:T.style,onChangeData:h.onChange,height:500,onUpdate:h.getData},null,8,["yamlValue","onChangeData","onUpdate"])}const Yk=Gt(Xk,[["render",Qk]]);function $k(h){h.component("MapCustom",yy),h.component("RegistryList",vy),h.component("RegistryListCustom",xy),h.component("vs-style-yml",Yk)}const eT={MapCustom:yy,RegistryListCustom:xy,RegistryList:vy,install:$k};module.exports=eT;
|