var X_=Object.defineProperty,yn=(we,ce)=>X_(we,"name",{value:ce,configurable:!0});function sr(we,ce){let Ae="script";return we==="name"?Ae="script":we==="name2"?Ae="script2":we==="name3"&&(Ae="script3"),[["coalesce",["get",`pgf:${we}`],["get",we]],{"text-font":["case",["==",["get",Ae],"Devanagari"],["literal",["Noto Sans Devanagari Regular v1"]],["literal",[ce||"Noto Sans Regular"]]]}]}yn(sr,"get_name_block");function gn(we,ce,Ae){let ze="name";return Ae==="name"?ze="":Ae==="name2"?ze="2":Ae==="name3"&&(ze="3"),ce==="Latin"?["has",`script${ze}`]:we==="ja"?["all",["!=",["get",`script${ze}`],"Han"],["!=",["get",`script${ze}`],"Hiragana"],["!=",["get",`script${ze}`],"Katakana"],["!=",["get",`script${ze}`],"Mixed-Japanese"]]:["!=",["get",`script${ze}`],ce]}yn(gn,"is_not_in_target_script");function Kr(we){return we==="Devanagari"?{"text-font":["literal",["Noto Sans Devanagari Regular v1"]]}:{}}yn(Kr,"get_font_formatting");function nd(we){let ce=Y_.find(Ae=>Ae.lang===we);return ce===void 0?"Latin":ce.script}yn(nd,"get_default_script");function bf(we,ce){let Ae=ce||nd(we),ze;return Ae==="Devanagari"?ze="pgf:":ze="",["format",["coalesce",["get",`${ze}name:${we}`],["get","name:en"]],Kr(Ae)]}yn(bf,"get_country_name");function Yr(we,ce,Ae){let ze=ce||nd(we),ot;return ze==="Devanagari"?ot="pgf:":ot="",["case",["all",["any",["has","name"],["has","pgf:name"]],["!",["any",["has","name2"],["has","pgf:name2"]]],["!",["any",["has","name3"],["has","pgf:name3"]]]],["case",gn(we,ze,"name"),["case",["any",["is-supported-script",["get","name"]],["has","pgf:name"]],["format",["coalesce",["get",`${ot}name:${we}`],["get","name:en"]],Kr(ze),` `,{},["case",["all",["!",["has",`${ot}name:${we}`]],["has","name:en"],["!",["has","script"]]],"",["coalesce",["get","pgf:name"],["get","name"]]],{"text-font":["case",["==",["get","script"],"Devanagari"],["literal",["Noto Sans Devanagari Regular v1"]],["literal",[Ae||"Noto Sans Regular"]]]}],["get","name:en"]],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name"],["get","name"]],Kr(ze)]],["all",["any",["has","name"],["has","pgf:name"]],["any",["has","name2"],["has","pgf:name2"]],["!",["any",["has","name3"],["has","pgf:name3"]]]],["case",["all",gn(we,ze,"name"),gn(we,ze,"name2")],["format",["get",`${ot}name:${we}`],Kr(ze),` `,{},...sr("name",Ae),` `,{},...sr("name2",Ae)],["case",gn(we,ze,"name2"),["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name"],["get","name"]],Kr(ze),` `,{},...sr("name2",Ae)],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name2"],["get","name2"]],Kr(ze),` `,{},...sr("name",Ae)]]],["case",["all",gn(we,ze,"name"),gn(we,ze,"name2"),gn(we,ze,"name3")],["format",["get",`${ot}name:${we}`],Kr(ze),` `,{},...sr("name",Ae),` `,{},...sr("name2",Ae),` `,{},...sr("name3",Ae)],["case",["!",gn(we,ze,"name")],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name"],["get","name"]],Kr(ze),` `,{},...sr("name2",Ae),` `,{},...sr("name3",Ae)],["!",gn(we,ze,"name2")],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name2"],["get","name2"]],Kr(ze),` `,{},...sr("name",Ae),` `,{},...sr("name3",Ae)],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name3"],["get","name3"]],Kr(ze),` `,{},...sr("name",Ae),` `,{},...sr("name2",Ae)]]]]}yn(Yr,"get_multiline_name");var Y_=[{lang:"ar",full_name:"Arabic",script:"Arabic"},{lang:"cs",full_name:"Czech",script:"Latin"},{lang:"bg",full_name:"Bulgarian",script:"Cyrillic"},{lang:"da",full_name:"Danish",script:"Latin"},{lang:"de",full_name:"German",script:"Latin"},{lang:"el",full_name:"Greek",script:"Greek"},{lang:"en",full_name:"English",script:"Latin"},{lang:"es",full_name:"Spanish",script:"Latin"},{lang:"et",full_name:"Estonian",script:"Latin"},{lang:"fa",full_name:"Persian",script:"Arabic"},{lang:"fi",full_name:"Finnish",script:"Latin"},{lang:"fr",full_name:"French",script:"Latin"},{lang:"ga",full_name:"Irish",script:"Latin"},{lang:"he",full_name:"Hebrew",script:"Hebrew"},{lang:"hi",full_name:"Hindi",script:"Devanagari"},{lang:"hr",full_name:"Croatian",script:"Latin"},{lang:"hu",full_name:"Hungarian",script:"Latin"},{lang:"id",full_name:"Indonesian",script:"Latin"},{lang:"it",full_name:"Italian",script:"Latin"},{lang:"ja",full_name:"Japanese",script:""},{lang:"ko",full_name:"Korean",script:"Hangul"},{lang:"lt",full_name:"Lithuanian",script:"Latin"},{lang:"lv",full_name:"Latvian",script:"Latin"},{lang:"ne",full_name:"Nepali",script:"Devanagari"},{lang:"nl",full_name:"Dutch",script:"Latin"},{lang:"no",full_name:"Norwegian",script:"Latin"},{lang:"mr",full_name:"Marathi",script:"Devanagari"},{lang:"mt",full_name:"Maltese",script:"Latin"},{lang:"pl",full_name:"Polish",script:"Latin"},{lang:"pt",full_name:"Portuguese",script:"Latin"},{lang:"ro",full_name:"Romanian",script:"Latin"},{lang:"ru",full_name:"Russian",script:"Cyrillic"},{lang:"sk",full_name:"Slovak",script:"Latin"},{lang:"sl",full_name:"Slovenian",script:"Latin"},{lang:"sv",full_name:"Swedish",script:"Latin"},{lang:"tr",full_name:"Turkish",script:"Latin"},{lang:"uk",full_name:"Ukrainian",script:"Cyrillic"},{lang:"ur",full_name:"Urdu",script:"Arabic"},{lang:"vi",full_name:"Vietnamese",script:"Latin"},{lang:"zh-Hans",full_name:"Chinese (Simplified)",script:"Han"},{lang:"zh-Hant",full_name:"Chinese (Traditional)",script:"Han"}];function wf(we,ce){return[{id:"background",type:"background",paint:{"background-color":ce.background}},{id:"earth",type:"fill",filter:["==","$type","Polygon"],source:we,"source-layer":"earth",paint:{"fill-color":ce.earth}},...ce.landcover?[{id:"landcover",type:"fill",source:we,"source-layer":"landcover",paint:{"fill-color":["match",["get","kind"],"grassland",ce.landcover.grassland,"barren",ce.landcover.barren,"urban_area",ce.landcover.urban_area,"farmland",ce.landcover.farmland,"glacier",ce.landcover.glacier,"scrub",ce.landcover.scrub,ce.landcover.forest],"fill-opacity":["interpolate",["linear"],["zoom"],5,1,7,0]}}]:[],{id:"landuse_park",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","national_park","park","cemetery","protected_area","nature_reserve","forest","golf_course","wood","nature_reserve","forest","scrub","grassland","grass","military","naval_base","airfield"],paint:{"fill-opacity":["interpolate",["linear"],["zoom"],6,0,11,1],"fill-color":["case",["in",["get","kind"],["literal",["national_park","park","cemetery","protected_area","nature_reserve","forest","golf_course"]]],ce.park_b,["in",["get","kind"],["literal",["wood","nature_reserve","forest"]]],ce.wood_b,["in",["get","kind"],["literal",["scrub","grassland","grass"]]],ce.scrub_b,["in",["get","kind"],["literal",["glacier"]]],ce.glacier,["in",["get","kind"],["literal",["sand"]]],ce.sand,["in",["get","kind"],["literal",["military","naval_base","airfield"]]],ce.zoo,ce.earth]}},{id:"landuse_urban_green",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","allotments","village_green","playground"],paint:{"fill-color":ce.park_b,"fill-opacity":.7}},{id:"landuse_hospital",type:"fill",source:we,"source-layer":"landuse",filter:["==","kind","hospital"],paint:{"fill-color":ce.hospital}},{id:"landuse_industrial",type:"fill",source:we,"source-layer":"landuse",filter:["==","kind","industrial"],paint:{"fill-color":ce.industrial}},{id:"landuse_school",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","school","university","college"],paint:{"fill-color":ce.school}},{id:"landuse_beach",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","beach"],paint:{"fill-color":ce.beach}},{id:"landuse_zoo",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","zoo"],paint:{"fill-color":ce.zoo}},{id:"landuse_aerodrome",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","aerodrome"],paint:{"fill-color":ce.aerodrome}},{id:"roads_runway",type:"line",source:we,"source-layer":"roads",filter:["==","kind_detail","runway"],paint:{"line-color":ce.runway,"line-width":["interpolate",["exponential",1.6],["zoom"],10,0,12,4,18,30]}},{id:"roads_taxiway",type:"line",source:we,"source-layer":"roads",minzoom:13,filter:["==","kind_detail","taxiway"],paint:{"line-color":ce.runway,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,15,6]}},{id:"landuse_runway",type:"fill",source:we,"source-layer":"landuse",filter:["any",["in","kind","runway","taxiway"]],paint:{"fill-color":ce.runway}},{id:"water",type:"fill",filter:["==","$type","Polygon"],source:we,"source-layer":"water",paint:{"fill-color":ce.water}},{id:"water_stream",type:"line",source:we,"source-layer":"water",minzoom:14,filter:["in","kind","stream"],paint:{"line-color":ce.water,"line-width":.5}},{id:"water_river",type:"line",source:we,"source-layer":"water",minzoom:9,filter:["in","kind","river"],paint:{"line-color":ce.water,"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1,18,12]}},{id:"landuse_pedestrian",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","pedestrian","dam"],paint:{"fill-color":ce.pedestrian}},{id:"landuse_pier",type:"fill",source:we,"source-layer":"landuse",filter:["==","kind","pier"],paint:{"fill-color":ce.pier}},{id:"roads_tunnels_other_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["in","kind","other","path"]],paint:{"line-color":ce.tunnel_other_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_tunnels_minor_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["==","kind","minor_road"]],paint:{"line-color":ce.tunnel_minor_casing,"line-dasharray":[3,2],"line-gap-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,1]}},{id:"roads_tunnels_link_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["has","is_link"]],paint:{"line-color":ce.tunnel_link_casing,"line-dasharray":[3,2],"line-gap-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,1]}},{id:"roads_tunnels_major_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.tunnel_major_casing,"line-dasharray":[3,2],"line-gap-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,.5,18,13],"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1]}},{id:"roads_tunnels_highway_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.tunnel_highway_casing,"line-dasharray":[6,.5],"line-gap-width":["interpolate",["exponential",1.6],["zoom"],3,0,3.5,.5,18,15],"line-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,1,20,15]}},{id:"roads_tunnels_other",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["in","kind","other","path"]],paint:{"line-color":ce.tunnel_other,"line-dasharray":[4.5,.5],"line-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_tunnels_minor",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["==","kind","minor_road"]],paint:{"line-color":ce.tunnel_minor,"line-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11]}},{id:"roads_tunnels_link",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["has","is_link"]],paint:{"line-color":ce.tunnel_minor,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11]}},{id:"roads_tunnels_major",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["==","kind","major_road"]],paint:{"line-color":ce.tunnel_major,"line-width":["interpolate",["exponential",1.6],["zoom"],6,0,12,1.6,15,3,18,13]}},{id:"roads_tunnels_highway",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["==",["get","kind"],"highway"],["!",["has","is_link"]]],paint:{"line-color":ce.tunnel_highway,"line-width":["interpolate",["exponential",1.6],["zoom"],3,0,6,1.1,12,1.6,15,5,18,15]}},{id:"buildings",type:"fill",source:we,"source-layer":"buildings",filter:["in","kind","building","building_part"],paint:{"fill-color":ce.buildings,"fill-opacity":.5}},{id:"roads_pier",type:"line",source:we,"source-layer":"roads",filter:["==","kind_detail","pier"],paint:{"line-color":ce.pier,"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,.5,20,16]}},{id:"roads_minor_service_casing",type:"line",source:we,"source-layer":"roads",minzoom:13,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","minor_road"],["==","kind_detail","service"]],paint:{"line-color":ce.minor_service_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],13,0,18,8],"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,.8]}},{id:"roads_minor_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","minor_road"],["!=","kind_detail","service"]],paint:{"line-color":ce.minor_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,1]}},{id:"roads_link_casing",type:"line",source:we,"source-layer":"roads",minzoom:13,filter:["has","is_link"],paint:{"line-color":ce.minor_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1.5]}},{id:"roads_major_casing_late",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.major_casing_late,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],6,0,12,1.6,15,3,18,13],"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1]}},{id:"roads_highway_casing_late",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.highway_casing_late,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],3,0,3.5,.5,18,15],"line-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,1,20,15]}},{id:"roads_other",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["in","kind","other","path"],["!=","kind_detail","pier"]],paint:{"line-color":ce.other,"line-dasharray":[3,1],"line-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_link",type:"line",source:we,"source-layer":"roads",filter:["has","is_link"],paint:{"line-color":ce.link,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11]}},{id:"roads_minor_service",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","minor_road"],["==","kind_detail","service"]],paint:{"line-color":ce.minor_service,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,18,8]}},{id:"roads_minor",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","minor_road"],["!=","kind_detail","service"]],paint:{"line-color":["interpolate",["exponential",1.6],["zoom"],11,ce.minor_a,16,ce.minor_b],"line-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11]}},{id:"roads_major_casing_early",type:"line",source:we,"source-layer":"roads",maxzoom:12,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.major_casing_early,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,.5,18,13],"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1]}},{id:"roads_major",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.major,"line-width":["interpolate",["exponential",1.6],["zoom"],6,0,12,1.6,15,3,18,13]}},{id:"roads_highway_casing_early",type:"line",source:we,"source-layer":"roads",maxzoom:12,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.highway_casing_early,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],3,0,3.5,.5,18,15],"line-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,1]}},{id:"roads_highway",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.highway,"line-width":["interpolate",["exponential",1.6],["zoom"],3,0,6,1.1,12,1.6,15,5,18,15]}},{id:"roads_rail",type:"line",source:we,"source-layer":"roads",filter:["==","kind","rail"],paint:{"line-dasharray":[.3,.75],"line-opacity":.5,"line-color":ce.railway,"line-width":["interpolate",["exponential",1.6],["zoom"],3,0,6,.15,18,9]}},{id:"boundaries_country",type:"line",source:we,"source-layer":"boundaries",filter:["<=","kind_detail",2],paint:{"line-color":ce.boundaries,"line-width":.7,"line-dasharray":["step",["zoom"],["literal",[2]],4,["literal",[2,1]]]}},{id:"boundaries",type:"line",source:we,"source-layer":"boundaries",filter:[">","kind_detail",2],paint:{"line-color":ce.boundaries,"line-width":.4,"line-dasharray":["step",["zoom"],["literal",[2]],4,["literal",[2,1]]]}},{id:"roads_bridges_other_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["in","kind","other","path"]],paint:{"line-color":ce.bridges_other_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_bridges_link_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["has","is_link"]],paint:{"line-color":ce.bridges_minor_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,1.5]}},{id:"roads_bridges_minor_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","minor_road"]],paint:{"line-color":ce.bridges_minor_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,.8]}},{id:"roads_bridges_major_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.bridges_major_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,.5,18,10],"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1.5]}},{id:"roads_bridges_other",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["in","kind","other","path"]],paint:{"line-color":ce.bridges_other,"line-dasharray":[2,1],"line-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_bridges_minor",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","minor_road"]],paint:{"line-color":ce.bridges_minor,"line-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11]}},{id:"roads_bridges_link",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["has","is_link"]],paint:{"line-color":ce.bridges_minor,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11]}},{id:"roads_bridges_major",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.bridges_major,"line-width":["interpolate",["exponential",1.6],["zoom"],6,0,12,1.6,15,3,18,13]}},{id:"roads_bridges_highway_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.bridges_highway_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],3,0,3.5,.5,18,15],"line-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,1,20,15]}},{id:"roads_bridges_highway",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.bridges_highway,"line-width":["interpolate",["exponential",1.6],["zoom"],3,0,6,1.1,12,1.6,15,5,18,15]}}]}yn(wf,"nolabels_layers");function Tf(we,ce,Ae,ze){return[{id:"address_label",type:"symbol",source:we,"source-layer":"buildings",minzoom:18,filter:["==","kind","address"],layout:{"symbol-placement":"point","text-font":[ce.italic||"Noto Sans Italic"],"text-field":["get","addr_housenumber"],"text-size":12},paint:{"text-color":ce.address_label,"text-halo-color":ce.address_label_halo,"text-halo-width":1}},{id:"water_waterway_label",type:"symbol",source:we,"source-layer":"water",minzoom:13,filter:["in","kind","river","stream"],layout:{"symbol-placement":"line","text-font":[ce.italic||"Noto Sans Italic"],"text-field":Yr(Ae,ze,ce.regular),"text-size":12,"text-letter-spacing":.2},paint:{"text-color":ce.ocean_label,"text-halo-color":ce.water,"text-halo-width":1}},{id:"roads_labels_minor",type:"symbol",source:we,"source-layer":"roads",minzoom:15,filter:["in","kind","minor_road","other","path"],layout:{"symbol-sort-key":["get","min_zoom"],"symbol-placement":"line","text-font":[ce.regular||"Noto Sans Regular"],"text-field":Yr(Ae,ze,ce.regular),"text-size":12},paint:{"text-color":ce.roads_label_minor,"text-halo-color":ce.roads_label_minor_halo,"text-halo-width":1}},{id:"water_label_ocean",type:"symbol",source:we,"source-layer":"water",filter:["in","kind","sea","ocean","bay","strait","fjord"],layout:{"text-font":[ce.italic||"Noto Sans Italic"],"text-field":Yr(Ae,ze,ce.regular),"text-size":["interpolate",["linear"],["zoom"],3,10,10,12],"text-letter-spacing":.1,"text-max-width":9,"text-transform":"uppercase"},paint:{"text-color":ce.ocean_label,"text-halo-width":1,"text-halo-color":ce.water}},{id:"earth_label_islands",type:"symbol",source:we,"source-layer":"earth",filter:["in","kind","island"],layout:{"text-font":[ce.italic||"Noto Sans Italic"],"text-field":Yr(Ae,ze,ce.regular),"text-size":10,"text-letter-spacing":.1,"text-max-width":8},paint:{"text-color":ce.subplace_label,"text-halo-color":ce.subplace_label_halo,"text-halo-width":1}},{id:"water_label_lakes",type:"symbol",source:we,"source-layer":"water",filter:["in","kind","lake","water"],layout:{"text-font":[ce.italic||"Noto Sans Italic"],"text-field":Yr(Ae,ze,ce.regular),"text-size":["interpolate",["linear"],["zoom"],3,10,6,12,10,12],"text-letter-spacing":.1,"text-max-width":9},paint:{"text-color":ce.ocean_label,"text-halo-color":ce.water,"text-halo-width":1}},{id:"roads_labels_major",type:"symbol",source:we,"source-layer":"roads",minzoom:11,filter:["in","kind","highway","major_road"],layout:{"symbol-sort-key":["get","min_zoom"],"symbol-placement":"line","text-font":[ce.regular||"Noto Sans Regular"],"text-field":Yr(Ae,ze,ce.regular),"text-size":12},paint:{"text-color":ce.roads_label_major,"text-halo-color":ce.roads_label_major_halo,"text-halo-width":1}},...ce.pois?[{id:"pois",type:"symbol",source:we,"source-layer":"pois",filter:["all",["in",["get","kind"],["literal",["beach","forest","marina","park","peak","zoo","garden","bench","aerodrome","station","bus_stop","ferry_terminal","stadium","university","library","school","animal","toilets","drinking_water"]]],[">=",["zoom"],["+",["get","min_zoom"],0]]],layout:{"icon-image":["match",["get","kind"],"station","train_station",["get","kind"]],"text-font":[ce.regular||"Noto Sans Regular"],"text-justify":"auto","text-field":Yr(Ae,ze,ce.regular),"text-size":["interpolate",["linear"],["zoom"],17,10,19,16],"text-max-width":8,"text-offset":[1.1,0],"text-variable-anchor":["left","right"]},paint:{"text-color":["case",["in",["get","kind"],["literal",["beach","forest","marina","park","peak","zoo","garden","bench"]]],ce.pois.green,["in",["get","kind"],["literal",["aerodrome","station","bus_stop","ferry_terminal"]]],ce.pois.lapis,["in",["get","kind"],["literal",["stadium","university","library","school","animal","toilets","drinking_water"]]],ce.pois.slategray,ce.earth],"text-halo-color":ce.earth,"text-halo-width":1}}]:[],{id:"places_subplace",type:"symbol",source:we,"source-layer":"places",filter:["==","kind","neighbourhood"],layout:{"symbol-sort-key":["case",["has","sort_key"],["get","sort_key"],["get","min_zoom"]],"text-field":Yr(Ae,ze,ce.regular),"text-font":[ce.regular||"Noto Sans Regular"],"text-max-width":7,"text-letter-spacing":.1,"text-padding":["interpolate",["linear"],["zoom"],5,2,8,4,12,18,15,20],"text-size":["interpolate",["exponential",1.2],["zoom"],11,8,14,14,18,24],"text-transform":"uppercase"},paint:{"text-color":ce.subplace_label,"text-halo-color":ce.subplace_label_halo,"text-halo-width":1}},{id:"places_region",type:"symbol",source:we,"source-layer":"places",filter:["==","kind","region"],layout:{"symbol-sort-key":["get","sort_key"],"text-field":["step",["zoom"],["coalesce",["get","ref:en"],["get","ref"]],6,Yr(Ae,ze,ce.regular)],"text-font":[ce.regular||"Noto Sans Regular"],"text-size":["interpolate",["linear"],["zoom"],3,11,7,16],"text-radial-offset":.2,"text-anchor":"center","text-transform":"uppercase"},paint:{"text-color":ce.state_label,"text-halo-color":ce.state_label_halo,"text-halo-width":1}},{id:"places_locality",type:"symbol",source:we,"source-layer":"places",filter:["==","kind","locality"],layout:{"icon-image":["step",["zoom"],"townspot",8,""],"icon-size":.7,"text-field":Yr(Ae,ze,ce.regular),"text-font":["case",["<=",["get","min_zoom"],5],["literal",[ce.bold||"Noto Sans Medium"]],["literal",[ce.regular||"Noto Sans Regular"]]],"symbol-sort-key":["case",["has","sort_key"],["get","sort_key"],["get","min_zoom"]],"text-padding":["interpolate",["linear"],["zoom"],5,3,8,7,12,11],"text-size":["interpolate",["linear"],["zoom"],2,["case",["<",["get","population_rank"],13],8,[">=",["get","population_rank"],13],13,0],4,["case",["<",["get","population_rank"],13],10,[">=",["get","population_rank"],13],15,0],6,["case",["<",["get","population_rank"],12],11,[">=",["get","population_rank"],12],17,0],8,["case",["<",["get","population_rank"],11],11,[">=",["get","population_rank"],11],18,0],10,["case",["<",["get","population_rank"],9],12,[">=",["get","population_rank"],9],20,0],15,["case",["<",["get","population_rank"],8],12,[">=",["get","population_rank"],8],22,0]],"icon-padding":["interpolate",["linear"],["zoom"],0,0,8,4,10,8,12,6,22,2],"text-justify":"auto","text-anchor":["step",["zoom"],"left",8,"center"],"text-radial-offset":.4},paint:{"text-color":ce.city_label,"text-halo-color":ce.city_label_halo,"text-halo-width":1}},{id:"places_country",type:"symbol",source:we,"source-layer":"places",filter:["==","kind","country"],layout:{"symbol-sort-key":["case",["has","sort_key"],["get","sort_key"],["get","min_zoom"]],"text-field":bf(Ae,ze),"text-font":[ce.bold||"Noto Sans Medium"],"text-size":["interpolate",["linear"],["zoom"],2,["case",["<",["get","population_rank"],10],8,[">=",["get","population_rank"],10],12,0],6,["case",["<",["get","population_rank"],8],10,[">=",["get","population_rank"],8],18,0],8,["case",["<",["get","population_rank"],7],11,[">=",["get","population_rank"],7],20,0]],"icon-padding":["interpolate",["linear"],["zoom"],0,2,14,2,16,20,17,2,22,2],"text-transform":"uppercase"},paint:{"text-color":ce.country_label,"text-halo-color":ce.earth,"text-halo-width":1}}]}yn(Tf,"labels_layers");var K_={background:"#cccccc",earth:"#e2dfda",park_a:"#cfddd5",park_b:"#9cd3b4",hospital:"#e4dad9",industrial:"#d1dde1",school:"#e4ded7",wood_a:"#d0ded0",wood_b:"#a0d9a0",pedestrian:"#e3e0d4",scrub_a:"#cedcd7",scrub_b:"#99d2bb",glacier:"#e7e7e7",sand:"#e2e0d7",beach:"#e8e4d0",aerodrome:"#dadbdf",runway:"#e9e9ed",water:"#80deea",zoo:"#c6dcdc",military:"#dcdcdc",tunnel_other_casing:"#e0e0e0",tunnel_minor_casing:"#e0e0e0",tunnel_link_casing:"#e0e0e0",tunnel_major_casing:"#e0e0e0",tunnel_highway_casing:"#e0e0e0",tunnel_other:"#d5d5d5",tunnel_minor:"#d5d5d5",tunnel_link:"#d5d5d5",tunnel_major:"#d5d5d5",tunnel_highway:"#d5d5d5",pier:"#e0e0e0",buildings:"#cccccc",minor_service_casing:"#e0e0e0",minor_casing:"#e0e0e0",link_casing:"#e0e0e0",major_casing_late:"#e0e0e0",highway_casing_late:"#e0e0e0",other:"#ebebeb",minor_service:"#ebebeb",minor_a:"#ebebeb",minor_b:"#ffffff",link:"#ffffff",major_casing_early:"#e0e0e0",major:"#ffffff",highway_casing_early:"#e0e0e0",highway:"#ffffff",railway:"#a7b1b3",boundaries:"#adadad",bridges_other_casing:"#e0e0e0",bridges_minor_casing:"#e0e0e0",bridges_link_casing:"#e0e0e0",bridges_major_casing:"#e0e0e0",bridges_highway_casing:"#e0e0e0",bridges_other:"#ebebeb",bridges_minor:"#ffffff",bridges_link:"#ffffff",bridges_major:"#f5f5f5",bridges_highway:"#ffffff",roads_label_minor:"#91888b",roads_label_minor_halo:"#ffffff",roads_label_major:"#938a8d",roads_label_major_halo:"#ffffff",ocean_label:"#728dd4",subplace_label:"#8f8f8f",subplace_label_halo:"#e0e0e0",city_label:"#5c5c5c",city_label_halo:"#e0e0e0",state_label:"#b3b3b3",state_label_halo:"#e0e0e0",country_label:"#a3a3a3",address_label:"#91888b",address_label_halo:"#ffffff",pois:{blue:"#1A8CBD",green:"#20834D",lapis:"#315BCF",pink:"#EF56BA",red:"#F2567A",slategray:"#6A5B8F",tangerine:"#CB6704",turquoise:"#00C3D4"},landcover:{grassland:"rgba(210, 239, 207, 1)",barren:"rgba(255, 243, 215, 1)",urban_area:"rgba(230, 230, 230, 1)",farmland:"rgba(216, 239, 210, 1)",glacier:"rgba(255, 255, 255, 1)",scrub:"rgba(234, 239, 210, 1)",forest:"rgba(196, 231, 210, 1)"}},J_={background:"#34373d",earth:"#1f1f1f",park_a:"#1c2421",park_b:"#192a24",hospital:"#252424",industrial:"#222222",school:"#262323",wood_a:"#202121",wood_b:"#202121",pedestrian:"#1e1e1e",scrub_a:"#222323",scrub_b:"#222323",glacier:"#1c1c1c",sand:"#212123",beach:"#28282a",aerodrome:"#1e1e1e",runway:"#333333",water:"#31353f",zoo:"#222323",military:"#242323",tunnel_other_casing:"#141414",tunnel_minor_casing:"#141414",tunnel_link_casing:"#141414",tunnel_major_casing:"#141414",tunnel_highway_casing:"#141414",tunnel_other:"#292929",tunnel_minor:"#292929",tunnel_link:"#292929",tunnel_major:"#292929",tunnel_highway:"#292929",pier:"#333333",buildings:"#111111",minor_service_casing:"#1f1f1f",minor_casing:"#1f1f1f",link_casing:"#1f1f1f",major_casing_late:"#1f1f1f",highway_casing_late:"#1f1f1f",other:"#333333",minor_service:"#333333",minor_a:"#3d3d3d",minor_b:"#333333",link:"#3d3d3d",major_casing_early:"#1f1f1f",major:"#3d3d3d",highway_casing_early:"#1f1f1f",highway:"#474747",railway:"#000000",boundaries:"#5b6374",bridges_other_casing:"#2b2b2b",bridges_minor_casing:"#1f1f1f",bridges_link_casing:"#1f1f1f",bridges_major_casing:"#1f1f1f",bridges_highway_casing:"#1f1f1f",bridges_other:"#333333",bridges_minor:"#333333",bridges_link:"#3d3d3d",bridges_major:"#3d3d3d",bridges_highway:"#474747",roads_label_minor:"#525252",roads_label_minor_halo:"#1f1f1f",roads_label_major:"#666666",roads_label_major_halo:"#1f1f1f",ocean_label:"#717784",subplace_label:"#525252",subplace_label_halo:"#1f1f1f",city_label:"#7a7a7a",city_label_halo:"#212121",state_label:"#3d3d3d",state_label_halo:"#1f1f1f",country_label:"#5c5c5c",address_label:"#525252",address_label_halo:"#1f1f1f",pois:{blue:"#4299BB",green:"#30C573",lapis:"#2B5CEA",pink:"#EF56BA",red:"#F2567A",slategray:"#93939F",tangerine:"#F19B6E",turquoise:"#00C3D4"},landcover:{grassland:"rgba(30, 41, 31, 1)",barren:"rgba(38, 38, 36, 1)",urban_area:"rgba(28, 28, 28, 1)",farmland:"rgba(31, 36, 32, 1)",glacier:"rgba(43, 43, 43, 1)",scrub:"rgba(34, 36, 30, 1)",forest:"rgba(28, 41, 37, 1)"}},Q_={background:"#ffffff",earth:"#ffffff",park_a:"#fcfcfc",park_b:"#fcfcfc",hospital:"#f8f8f8",industrial:"#fcfcfc",school:"#f8f8f8",wood_a:"#fafafa",wood_b:"#fafafa",pedestrian:"#fdfdfd",scrub_a:"#fafafa",scrub_b:"#fafafa",glacier:"#fcfcfc",sand:"#fafafa",beach:"#f6f6f6",aerodrome:"#fdfdfd",runway:"#efefef",water:"#dcdcdc",zoo:"#f7f7f7",military:"#fcfcfc",tunnel_other_casing:"#d6d6d6",tunnel_minor_casing:"#fcfcfc",tunnel_link_casing:"#fcfcfc",tunnel_major_casing:"#fcfcfc",tunnel_highway_casing:"#fcfcfc",tunnel_other:"#d6d6d6",tunnel_minor:"#d6d6d6",tunnel_link:"#d6d6d6",tunnel_major:"#d6d6d6",tunnel_highway:"#d6d6d6",pier:"#efefef",buildings:"#efefef",minor_service_casing:"#ffffff",minor_casing:"#ffffff",link_casing:"#ffffff",major_casing_late:"#ffffff",highway_casing_late:"#ffffff",other:"#f5f5f5",minor_service:"#f5f5f5",minor_a:"#ebebeb",minor_b:"#f5f5f5",link:"#ebebeb",major_casing_early:"#ffffff",major:"#ebebeb",highway_casing_early:"#ffffff",highway:"#ebebeb",railway:"#d6d6d6",boundaries:"#adadad",bridges_other_casing:"#ffffff",bridges_minor_casing:"#ffffff",bridges_link_casing:"#ffffff",bridges_major_casing:"#ffffff",bridges_highway_casing:"#ffffff",bridges_other:"#f5f5f5",bridges_minor:"#f5f5f5",bridges_link:"#ebebeb",bridges_major:"#ebebeb",bridges_highway:"#ebebeb",roads_label_minor:"#adadad",roads_label_minor_halo:"#ffffff",roads_label_major:"#999999",roads_label_major_halo:"#ffffff",ocean_label:"#adadad",subplace_label:"#8f8f8f",subplace_label_halo:"#ffffff",city_label:"#5c5c5c",city_label_halo:"#ffffff",state_label:"#b3b3b3",state_label_halo:"#ffffff",country_label:"#b8b8b8",address_label:"#adadad",address_label_halo:"#ffffff"},eg={background:"#a3a3a3",earth:"#cccccc",park_a:"#c2c2c2",park_b:"#c2c2c2",hospital:"#d0d0d0",industrial:"#c6c6c6",school:"#d0d0d0",wood_a:"#c2c2c2",wood_b:"#c2c2c2",pedestrian:"#c4c4c4",scrub_a:"#c2c2c2",scrub_b:"#c2c2c2",glacier:"#d2d2d2",sand:"#d2d2d2",beach:"#d2d2d2",aerodrome:"#c9c9c9",runway:"#f5f5f5",water:"#a3a3a3",zoo:"#c7c7c7",military:"#bfbfbf",tunnel_other_casing:"#b8b8b8",tunnel_minor_casing:"#b8b8b8",tunnel_link_casing:"#b8b8b8",tunnel_major_casing:"#b8b8b8",tunnel_highway_casing:"#b8b8b8",tunnel_other:"#d6d6d6",tunnel_minor:"#d6d6d6",tunnel_link:"#d6d6d6",tunnel_major:"#d6d6d6",tunnel_highway:"#d6d6d6",pier:"#b8b8b8",buildings:"#e0e0e0",minor_service_casing:"#cccccc",minor_casing:"#cccccc",link_casing:"#cccccc",major_casing_late:"#cccccc",highway_casing_late:"#cccccc",other:"#e0e0e0",minor_service:"#e0e0e0",minor_a:"#ebebeb",minor_b:"#e0e0e0",link:"#ebebeb",major_casing_early:"#cccccc",major:"#ebebeb",highway_casing_early:"#cccccc",highway:"#ebebeb",railway:"#f5f5f5",boundaries:"#5c5c5c",bridges_other_casing:"#cccccc",bridges_minor_casing:"#cccccc",bridges_link_casing:"#cccccc",bridges_major_casing:"#cccccc",bridges_highway_casing:"#cccccc",bridges_other:"#e0e0e0",bridges_minor:"#e0e0e0",bridges_link:"#ebebeb",bridges_major:"#ebebeb",bridges_highway:"#ebebeb",roads_label_minor:"#999999",roads_label_minor_halo:"#e0e0e0",roads_label_major:"#8f8f8f",roads_label_major_halo:"#ebebeb",ocean_label:"#7a7a7a",subplace_label:"#7a7a7a",subplace_label_halo:"#cccccc",city_label:"#474747",city_label_halo:"#cccccc",state_label:"#999999",state_label_halo:"#cccccc",country_label:"#858585",address_label:"#999999",address_label_halo:"#e0e0e0"},tg={background:"#2b2b2b",earth:"#141414",park_a:"#181818",park_b:"#181818",hospital:"#1d1d1d",industrial:"#101010",school:"#111111",wood_a:"#1a1a1a",wood_b:"#1a1a1a",pedestrian:"#191919",scrub_a:"#1c1c1c",scrub_b:"#1c1c1c",glacier:"#191919",sand:"#161616",beach:"#1f1f1f",aerodrome:"#191919",runway:"#323232",water:"#333333",zoo:"#191919",military:"#121212",tunnel_other_casing:"#101010",tunnel_minor_casing:"#101010",tunnel_link_casing:"#101010",tunnel_major_casing:"#101010",tunnel_highway_casing:"#101010",tunnel_other:"#292929",tunnel_minor:"#292929",tunnel_link:"#292929",tunnel_major:"#292929",tunnel_highway:"#292929",pier:"#0a0a0a",buildings:"#0a0a0a",minor_service_casing:"#141414",minor_casing:"#141414",link_casing:"#141414",major_casing_late:"#141414",highway_casing_late:"#141414",other:"#1f1f1f",minor_service:"#1f1f1f",minor_a:"#292929",minor_b:"#1f1f1f",link:"#1f1f1f",major_casing_early:"#141414",major:"#292929",highway_casing_early:"#141414",highway:"#292929",railway:"#292929",boundaries:"#707070",bridges_other_casing:"#141414",bridges_minor_casing:"#141414",bridges_link_casing:"#141414",bridges_major_casing:"#141414",bridges_highway_casing:"#141414",bridges_other:"#1f1f1f",bridges_minor:"#1f1f1f",bridges_link:"#292929",bridges_major:"#292929",bridges_highway:"#292929",roads_label_minor:"#525252",roads_label_minor_halo:"#141414",roads_label_major:"#5c5c5c",roads_label_major_halo:"#141414",ocean_label:"#707070",subplace_label:"#5c5c5c",subplace_label_halo:"#141414",city_label:"#999999",city_label_halo:"#141414",state_label:"#3d3d3d",state_label_halo:"#141414",country_label:"#707070",address_label:"#525252",address_label_halo:"#141414"};function ig(we){switch(we){case"light":return K_;case"dark":return J_;case"white":return Q_;case"grayscale":return eg;case"black":return tg}throw new Error("Flavor not found")}yn(ig,"namedFlavor");function rg(we,ce,Ae){let ze=[];return Ae!=null&&Ae.labelsOnly||(ze=wf(we,ce)),Ae!=null&&Ae.lang&&(ze=ze.concat(Tf(we,ce,Ae.lang))),ze}yn(rg,"layers");var Du={exports:{}};var ng=Du.exports,xf;function ag(){return xf||(xf=1,(function(we,ce){(function(Ae,ze){we.exports=ze()})(ng,(function(){var Ae={},ze={};function ot(k,c,Ee){if(ze[k]=Ee,k==="index"){var Jt="var sharedModule = {}; ("+ze.shared+")(sharedModule); ("+ze.worker+")(sharedModule);",Nt={};return ze.shared(Nt),ze.index(Ae,Nt),typeof window<"u"&&Ae.setWorkerUrl(window.URL.createObjectURL(new Blob([Jt],{type:"text/javascript"}))),Ae}}ot("shared",["exports"],(function(k){function c(r,e,i,a){return new(i||(i=Promise))((function(o,u){function h(y){try{_(a.next(y))}catch(v){u(v)}}function f(y){try{_(a.throw(y))}catch(v){u(v)}}function _(y){var v;y.done?o(y.value):(v=y.value,v instanceof i?v:new i((function(b){b(v)}))).then(h,f)}_((a=a.apply(r,e||[])).next())}))}function Ee(r,e){this.x=r,this.y=e}function Jt(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var Nt,or;typeof SuppressedError=="function"&&SuppressedError,Ee.prototype={clone(){return new Ee(this.x,this.y)},add(r){return this.clone()._add(r)},sub(r){return this.clone()._sub(r)},multByPoint(r){return this.clone()._multByPoint(r)},divByPoint(r){return this.clone()._divByPoint(r)},mult(r){return this.clone()._mult(r)},div(r){return this.clone()._div(r)},rotate(r){return this.clone()._rotate(r)},rotateAround(r,e){return this.clone()._rotateAround(r,e)},matMult(r){return this.clone()._matMult(r)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(r){return this.x===r.x&&this.y===r.y},dist(r){return Math.sqrt(this.distSqr(r))},distSqr(r){const e=r.x-this.x,i=r.y-this.y;return e*e+i*i},angle(){return Math.atan2(this.y,this.x)},angleTo(r){return Math.atan2(this.y-r.y,this.x-r.x)},angleWith(r){return this.angleWithSep(r.x,r.y)},angleWithSep(r,e){return Math.atan2(this.x*e-this.y*r,this.x*r+this.y*e)},_matMult(r){const e=r[2]*this.x+r[3]*this.y;return this.x=r[0]*this.x+r[1]*this.y,this.y=e,this},_add(r){return this.x+=r.x,this.y+=r.y,this},_sub(r){return this.x-=r.x,this.y-=r.y,this},_mult(r){return this.x*=r,this.y*=r,this},_div(r){return this.x/=r,this.y/=r,this},_multByPoint(r){return this.x*=r.x,this.y*=r.y,this},_divByPoint(r){return this.x/=r.x,this.y/=r.y,this},_unit(){return this._div(this.mag()),this},_perp(){const r=this.y;return this.y=this.x,this.x=-r,this},_rotate(r){const e=Math.cos(r),i=Math.sin(r),a=i*this.x+e*this.y;return this.x=e*this.x-i*this.y,this.y=a,this},_rotateAround(r,e){const i=Math.cos(r),a=Math.sin(r),o=e.y+a*(this.x-e.x)+i*(this.y-e.y);return this.x=e.x+i*(this.x-e.x)-a*(this.y-e.y),this.y=o,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:Ee},Ee.convert=function(r){if(r instanceof Ee)return r;if(Array.isArray(r))return new Ee(+r[0],+r[1]);if(r.x!==void 0&&r.y!==void 0)return new Ee(+r.x,+r.y);throw new Error("Expected [x, y] or {x, y} point format")};var lr=(function(){if(or)return Nt;function r(e,i,a,o){this.cx=3*e,this.bx=3*(a-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(o-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=i,this.p2x=a,this.p2y=o}return or=1,Nt=r,r.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,i){if(i===void 0&&(i=1e-6),e<0)return 0;if(e>1)return 1;for(var a=e,o=0;o<8;o++){var u=this.sampleCurveX(a)-e;if(Math.abs(u)u?f=a:_=a,a=.5*(_-f)+f;return a},solve:function(e,i){return this.sampleCurveY(this.solveCurveX(e,i))}},Nt})(),Zt=Jt(lr);let Jr,it;function fe(){return Jr==null&&(Jr=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),Jr}function Xn(){if(it==null&&(it=!1,fe())){const e=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(e){for(let a=0;a<25;a++){const o=4*a;e.fillStyle=`rgb(${o},${o+1},${o+2})`,e.fillRect(a%5,Math.floor(a/5),1,1)}const i=e.getImageData(0,0,5,5).data;for(let a=0;a<100;a++)if(a%4!=3&&i[a]!==a){it=!0;break}}}return it||!1}var Ct=1e-6,xt=typeof Float32Array<"u"?Float32Array:Array;function xn(){var r=new xt(9);return xt!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function Yn(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function Da(){var r=new xt(3);return xt!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function Li(r){var e=r[0],i=r[1],a=r[2];return Math.sqrt(e*e+i*i+a*a)}function ka(r,e,i){var a=new xt(3);return a[0]=r,a[1]=e,a[2]=i,a}function gr(r,e,i){return r[0]=e[0]+i[0],r[1]=e[1]+i[1],r[2]=e[2]+i[2],r}function Qr(r,e,i){return r[0]=e[0]*i,r[1]=e[1]*i,r[2]=e[2]*i,r}function vn(r,e,i){var a=e[0],o=e[1],u=e[2],h=i[0],f=i[1],_=i[2];return r[0]=o*_-u*f,r[1]=u*h-a*_,r[2]=a*f-o*h,r}var en,yr=Li;function tn(r,e,i){var a=e[0],o=e[1],u=e[2],h=e[3];return r[0]=i[0]*a+i[4]*o+i[8]*u+i[12]*h,r[1]=i[1]*a+i[5]*o+i[9]*u+i[13]*h,r[2]=i[2]*a+i[6]*o+i[10]*u+i[14]*h,r[3]=i[3]*a+i[7]*o+i[11]*u+i[15]*h,r}function Ra(){var r=new xt(4);return xt!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function Kn(r,e,i,a){var o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"zyx",u=Math.PI/360;e*=u,a*=u,i*=u;var h=Math.sin(e),f=Math.cos(e),_=Math.sin(i),y=Math.cos(i),v=Math.sin(a),b=Math.cos(a);switch(o){case"xyz":r[0]=h*y*b+f*_*v,r[1]=f*_*b-h*y*v,r[2]=f*y*v+h*_*b,r[3]=f*y*b-h*_*v;break;case"xzy":r[0]=h*y*b-f*_*v,r[1]=f*_*b-h*y*v,r[2]=f*y*v+h*_*b,r[3]=f*y*b+h*_*v;break;case"yxz":r[0]=h*y*b+f*_*v,r[1]=f*_*b-h*y*v,r[2]=f*y*v-h*_*b,r[3]=f*y*b+h*_*v;break;case"yzx":r[0]=h*y*b+f*_*v,r[1]=f*_*b+h*y*v,r[2]=f*y*v-h*_*b,r[3]=f*y*b-h*_*v;break;case"zxy":r[0]=h*y*b-f*_*v,r[1]=f*_*b+h*y*v,r[2]=f*y*v+h*_*b,r[3]=f*y*b-h*_*v;break;case"zyx":r[0]=h*y*b-f*_*v,r[1]=f*_*b+h*y*v,r[2]=f*y*v-h*_*b,r[3]=f*y*b+h*_*v;break;default:throw new Error("Unknown angle order "+o)}return r}function Er(){var r=new xt(2);return xt!=Float32Array&&(r[0]=0,r[1]=0),r}function Ut(r,e){var i=new xt(2);return i[0]=r,i[1]=e,i}Da(),en=new xt(4),xt!=Float32Array&&(en[0]=0,en[1]=0,en[2]=0,en[3]=0),Da(),ka(1,0,0),ka(0,1,0),Ra(),Ra(),xn(),Er();const st=8192;function bn(r,e,i){return e*(st/(r.tileSize*Math.pow(2,i-r.tileID.overscaledZ)))}function xr(r,e){return(r%e+e)%e}function La(r,e,i){return r*(1-i)+e*i}function Jn(r){if(r<=0)return 0;if(r>=1)return 1;const e=r*r,i=e*r;return 4*(r<.5?i:3*(r-e)+i-.75)}function rn(r,e,i,a){const o=new Zt(r,e,i,a);return u=>o.solve(u)}const Cr=rn(.25,.1,.25,1);function Yi(r,e,i){return Math.min(i,Math.max(e,r))}function ui(r,e,i){const a=i-e,o=((r-e)%a+a)%a+e;return o===e?i:o}function Ei(r,...e){for(const i of e)for(const a in i)r[a]=i[a];return r}let Qn=1;function wn(r,e,i){const a={};for(const o in r)a[o]=e.call(this,r[o],o,r);return a}function Tn(r,e,i){const a={};for(const o in r)e.call(this,r[o],o,r)&&(a[o]=r[o]);return a}function hi(r){return Array.isArray(r)?r.map(hi):typeof r=="object"&&r?wn(r,hi):r}const Ds={};function di(r){Ds[r]||(typeof console<"u"&&console.warn(r),Ds[r]=!0)}function Fi(r,e,i){return(i.y-r.y)*(e.x-r.x)>(e.y-r.y)*(i.x-r.x)}function vr(r){return typeof WorkerGlobalScope<"u"&&r!==void 0&&r instanceof WorkerGlobalScope}let vt=null;function Sn(r){return typeof ImageBitmap<"u"&&r instanceof ImageBitmap}const ea="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function Pn(r,e,i,a,o){return c(this,void 0,void 0,(function*(){if(typeof VideoFrame>"u")throw new Error("VideoFrame not supported");const u=new VideoFrame(r,{timestamp:0});try{const h=u?.format;if(!h||!h.startsWith("BGR")&&!h.startsWith("RGB"))throw new Error(`Unrecognized format ${h}`);const f=h.startsWith("BGR"),_=new Uint8ClampedArray(a*o*4);if(yield u.copyTo(_,(function(y,v,b,S,P){const E=4*Math.max(-v,0),A=(Math.max(0,b)-b)*S*4+E,R=4*S,O=Math.max(0,v),G=Math.max(0,b);return{rect:{x:O,y:G,width:Math.min(y.width,v+S)-O,height:Math.min(y.height,b+P)-G},layout:[{offset:A,stride:R}]}})(r,e,i,a,o)),f)for(let y=0;y<_.length;y+=4){const v=_[y];_[y]=_[y+2],_[y+2]=v}return _}finally{u.close()}}))}let nn,br;function an(r,e,i,a){return r.addEventListener(e,i,a),{unsubscribe:()=>{r.removeEventListener(e,i,a)}}}function Mn(r){return r*Math.PI/180}function Ar(r){return r/Math.PI*180}const zr={touchstart:!0,touchmove:!0,touchmoveWindow:!0,touchend:!0,touchcancel:!0},sn={dblclick:!0,click:!0,mouseover:!0,mouseout:!0,mousedown:!0,mousemove:!0,mousemoveWindow:!0,mouseup:!0,mouseupWindow:!0,contextmenu:!0,wheel:!0},ta="AbortError";class Fa extends Error{constructor(e=ta){super(e instanceof Error?e.message:e),this.name=ta,e instanceof Error&&e.stack&&(this.stack=e.stack)}}function ia(r){return r.name===ta}const ie={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};function C(r){return ie.REGISTERED_PROTOCOLS[r.substring(0,r.indexOf("://"))]}const D="global-dispatcher";class F extends Error{constructor(e,i,a,o){super(`AJAXError: ${i} (${e}): ${a}`),this.status=e,this.statusText=i,this.url=a,this.body=o}}const $=()=>vr(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,J=function(r,e){if(/:\/\//.test(r.url)&&!/^https?:|^file:/.test(r.url)){const a=C(r.url);if(a)return a(r,e);if(vr(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:r,targetMapId:D},e)}if(!(/^file:/.test(i=r.url)||/^file:/.test($())&&!/^\w+:/.test(i))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return(function(a,o){return c(this,void 0,void 0,(function*(){const u=new Request(a.url,{method:a.method||"GET",body:a.body,credentials:a.credentials,headers:a.headers,cache:a.cache,referrer:$(),signal:o.signal});let h,f;a.type!=="json"||u.headers.has("Accept")||u.headers.set("Accept","application/json");try{h=yield fetch(u)}catch(y){throw ia(y)?y:new F(0,y.message,a.url,new Blob)}if(!h.ok){const y=yield h.blob();throw new F(h.status,h.statusText,a.url,y)}f=a.type==="arrayBuffer"||a.type==="image"?h.arrayBuffer():a.type==="json"?h.json():h.text();const _=yield f;return o.signal.throwIfAborted(),{data:_,cacheControl:h.headers.get("Cache-Control"),expires:h.headers.get("Expires")}}))})(r,e);if(vr(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:r,mustQueue:!0,targetMapId:D},e)}var i;return(function(a,o){return new Promise(((u,h)=>{var f;const _=new XMLHttpRequest;_.open(a.method||"GET",a.url,!0),a.type!=="arrayBuffer"&&a.type!=="image"||(_.responseType="arraybuffer");for(const y in a.headers)_.setRequestHeader(y,a.headers[y]);a.type==="json"&&(_.responseType="text",!((f=a.headers)===null||f===void 0)&&f.Accept||_.setRequestHeader("Accept","application/json")),_.withCredentials=a.credentials==="include",_.onerror=()=>{h(new Error(_.statusText))},_.onload=()=>{if(!o.signal.aborted)if((_.status>=200&&_.status<300||_.status===0)&&_.response!==null){let y=_.response;if(a.type==="json")try{y=JSON.parse(_.response)}catch(v){return void h(v)}u({data:y,cacheControl:_.getResponseHeader("Cache-Control"),expires:_.getResponseHeader("Expires")})}else{const y=new Blob([_.response],{type:_.getResponseHeader("Content-Type")});h(new F(_.status,_.statusText,a.url,y))}},o.signal.addEventListener("abort",(()=>{_.abort(),h(new Fa(o.signal.reason))})),_.send(a.body)}))})(r,e)};function ae(r){if(!r||r.indexOf("://")<=0||r.indexOf("data:image/")===0||r.indexOf("blob:")===0)return!0;const e=new URL(r),i=window.location;return e.protocol===i.protocol&&e.host===i.host}function oe(r,e,i){i[r]&&i[r].indexOf(e)!==-1||(i[r]=i[r]||[],i[r].push(e))}function re(r,e,i){if(i&&i[r]){const a=i[r].indexOf(e);a!==-1&&i[r].splice(a,1)}}class ne{constructor(e,i={}){Ei(this,i),this.type=e}}class be extends ne{constructor(e,i={}){super("error",Ei({error:e},i))}}class me{on(e,i){return this._listeners=this._listeners||{},oe(e,i,this._listeners),{unsubscribe:()=>{this.off(e,i)}}}off(e,i){return re(e,i,this._listeners),re(e,i,this._oneTimeListeners),this}once(e,i){return i?(this._oneTimeListeners=this._oneTimeListeners||{},oe(e,i,this._oneTimeListeners),this):new Promise((a=>this.once(e,a)))}fire(e,i){typeof e=="string"&&(e=new ne(e,i||{}));const a=e.type;if(this.listens(a)){e.target=this;const o=this._listeners&&this._listeners[a]?this._listeners[a].slice():[];for(const f of o)f.call(this,e);const u=this._oneTimeListeners&&this._oneTimeListeners[a]?this._oneTimeListeners[a].slice():[];for(const f of u)re(a,f,this._oneTimeListeners),f.call(this,e);const h=this._eventedParent;h&&(Ei(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),h.fire(e))}else e instanceof be&&console.error(e.error);return this}listens(e){return this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)}setEventedParent(e,i){return this._eventedParent=e,this._eventedParentData=i,this}}var K={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number",length:2},centerAltitude:{type:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},roll:{type:"number",default:0,units:"degrees"},state:{type:"state",default:{}},light:{type:"light"},sky:{type:"sky"},projection:{type:"projection"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},"font-faces":{type:"fontFaces"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},encoding:{type:"enum",values:{mvt:{},mlt:{}},default:"mvt"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"filter"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},"color-relief":{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_color-relief","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},"layout_color-relief":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},filter:{type:"boolean",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"expression_name",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}},interpolation:{type:"array",value:"interpolation_name",minimum:1},interpolation_name:{type:"enum",values:{linear:{syntax:{overloads:[{parameters:[],"output-type":"interpolation"}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:["base"],"output-type":"interpolation"}],parameters:[{name:"base",type:"number literal"}]}},"cubic-bezier":{syntax:{overloads:[{parameters:["x1","y1","x2","y2"],"output-type":"interpolation"}],parameters:[{name:"x1",type:"number literal"},{name:"y1",type:"number literal"},{name:"x2",type:"number literal"},{name:"y2",type:"number literal"}]}}}}};const Oe=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function Ze(r,e){const i={};for(const a in r)a!=="ref"&&(i[a]=r[a]);return Oe.forEach((a=>{a in e&&(i[a]=e[a])})),i}function Ne(r,e){if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(let i=0;i`:r.itemType.kind==="value"?"array":`array<${e}>`}return r.kind}const Cn=[Dr,Pe,$e,We,Ki,ra,aa,En,Ci(Ke),ks,Oa,Ba,sa,Va];function on(r,e){if(e.kind==="error")return null;if(r.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!on(r.itemType,e.itemType))&&(typeof r.N!="number"||r.N===e.N))return null}else{if(r.kind===e.kind)return null;if(r.kind==="value"){for(const i of Cn)if(!on(i,e))return null}}return`Expected ${gt(r)} but found ${gt(e)} instead.`}function Rs(r,e){return e.some((i=>i.kind===r.kind))}function kr(r,e){return e.some((i=>i==="null"?r===null:i==="array"?Array.isArray(r):i==="object"?r&&!Array.isArray(r)&&typeof r=="object":i===typeof r))}function ln(r,e){return r.kind==="array"&&e.kind==="array"?r.itemType.kind===e.itemType.kind&&typeof r.N=="number":r.kind===e.kind}const ja=.96422,Kl=.82521,An=4/29,cn=6/29,Xt=3*cn*cn,ku=cn*cn*cn,Jl=Math.PI/180,Na=180/Math.PI;function No(r){return(r%=360)<0&&(r+=360),r}function Ql([r,e,i,a]){let o,u;const h=Ls((.2225045*(r=Uo(r))+.7168786*(e=Uo(e))+.0606169*(i=Uo(i)))/1);r===e&&e===i?o=u=h:(o=Ls((.4360747*r+.3850649*e+.1430804*i)/ja),u=Ls((.0139322*r+.0971045*e+.7141733*i)/Kl));const f=116*h-16;return[f<0?0:f,500*(o-h),200*(h-u),a]}function Uo(r){return r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function Ls(r){return r>ku?Math.pow(r,1/3):r/Xt+An}function ec([r,e,i,a]){let o=(r+16)/116,u=isNaN(e)?o:o+e/500,h=isNaN(i)?o:o-i/200;return o=1*Go(o),u=ja*Go(u),h=Kl*Go(h),[Fs(3.1338561*u-1.6168667*o-.4906146*h),Fs(-.9787684*u+1.9161415*o+.033454*h),Fs(.0719453*u-.2289914*o+1.4052427*h),a]}function Fs(r){return(r=r<=.00304?12.92*r:1.055*Math.pow(r,1/2.4)-.055)<0?0:r>1?1:r}function Go(r){return r>cn?r*r*r:Xt*(r-An)}const Ru=Object.hasOwn||function(r,e){return Object.prototype.hasOwnProperty.call(r,e)};function Ua(r,e){return Ru(r,e)?r[e]:void 0}function Bs(r){return parseInt(r.padEnd(2,r),16)/255}function tc(r,e){return oa(e?r/100:r,0,1)}function oa(r,e,i){return Math.min(Math.max(e,r),i)}function ic(r){return!r.some(Number.isNaN)}const rc={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function Ji(r,e,i){return r+i*(e-r)}function la(r,e,i){return r.map(((a,o)=>Ji(a,e[o],i)))}class et{constructor(e,i,a,o=1,u=!0){this.r=e,this.g=i,this.b=a,this.a=o,u||(this.r*=o,this.g*=o,this.b*=o,o||this.overwriteGetter("rgb",[e,i,a,o]))}static parse(e){if(e instanceof et)return e;if(typeof e!="string")return;const i=(function(a){if((a=a.toLowerCase().trim())==="transparent")return[0,0,0,0];const o=Ua(rc,a);if(o){const[h,f,_]=o;return[h/255,f/255,_/255,1]}if(a.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(a)){const h=a.length<6?1:2;let f=1;return[Bs(a.slice(f,f+=h)),Bs(a.slice(f,f+=h)),Bs(a.slice(f,f+=h)),Bs(a.slice(f,f+h)||"ff")]}if(a.startsWith("rgb")){const h=a.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(h){const[f,_,y,v,b,S,P,E,A,R,O,G]=h,B=[v||" ",P||" ",R].join("");if(B===" "||B===" /"||B===",,"||B===",,,"){const V=[y,S,A].join(""),H=V==="%%%"?100:V===""?255:0;if(H){const ee=[oa(+_/H,0,1),oa(+b/H,0,1),oa(+E/H,0,1),O?tc(+O,G):1];if(ic(ee))return ee}}return}}const u=a.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(u){const[h,f,_,y,v,b,S,P,E]=u,A=[_||" ",v||" ",S].join("");if(A===" "||A===" /"||A===",,"||A===",,,"){const R=[+f,oa(+y,0,100),oa(+b,0,100),P?tc(+P,E):1];if(ic(R))return(function([O,G,B,V]){function H(ee){const se=(ee+O/30)%12,ge=G*Math.min(B,1-B);return B-ge*Math.max(-1,Math.min(se-3,9-se,1))}return O=No(O),G/=100,B/=100,[H(0),H(8),H(4),V]})(R)}}})(e);return i?new et(...i,!1):void 0}get rgb(){const{r:e,g:i,b:a,a:o}=this,u=o||1/0;return this.overwriteGetter("rgb",[e/u,i/u,a/u,o])}get hcl(){return this.overwriteGetter("hcl",(function(e){const[i,a,o,u]=Ql(e),h=Math.sqrt(a*a+o*o);return[Math.round(1e4*h)?No(Math.atan2(o,a)*Na):NaN,h,i,u]})(this.rgb))}get lab(){return this.overwriteGetter("lab",Ql(this.rgb))}overwriteGetter(e,i){return Object.defineProperty(this,e,{value:i}),i}toString(){const[e,i,a,o]=this.rgb;return`rgba(${[e,i,a].map((u=>Math.round(255*u))).join(",")},${o})`}static interpolate(e,i,a,o="rgb"){switch(o){case"rgb":{const[u,h,f,_]=la(e.rgb,i.rgb,a);return new et(u,h,f,_,!1)}case"hcl":{const[u,h,f,_]=e.hcl,[y,v,b,S]=i.hcl;let P,E;if(isNaN(u)||isNaN(y))isNaN(u)?isNaN(y)?P=NaN:(P=y,f!==1&&f!==0||(E=v)):(P=u,b!==1&&b!==0||(E=h));else{let B=y-u;y>u&&B>180?B-=360:y180&&(B+=360),P=u+a*B}const[A,R,O,G]=(function([B,V,H,ee]){return B=isNaN(B)?0:B*Jl,ec([H,Math.cos(B)*V,Math.sin(B)*V,ee])})([P,E??Ji(h,v,a),Ji(f,b,a),Ji(_,S,a)]);return new et(A,R,O,G,!1)}case"lab":{const[u,h,f,_]=ec(la(e.lab,i.lab,a));return new et(u,h,f,_,!1)}}}}et.black=new et(0,0,0,1),et.white=new et(1,1,1,1),et.transparent=new et(0,0,0,0),et.red=new et(1,0,0,1);class zn{constructor(e,i,a){this.sensitivity=e?i?"variant":"case":i?"accent":"base",this.locale=a,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,i){return this.collator.compare(e,i)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}const Lu=["bottom","center","top"];class qo{constructor(e,i,a,o,u,h){this.text=e,this.image=i,this.scale=a,this.fontStack=o,this.textColor=u,this.verticalAlign=h}}class Bi{constructor(e){this.sections=e}static fromString(e){return new Bi([new qo(e,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some((e=>e.text.length!==0||e.image&&e.image.name.length!==0))}static factory(e){return e instanceof Bi?e:Bi.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map((e=>e.text)).join("")}}class pi{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof pi)return e;if(typeof e=="number")return new pi([e,e,e,e]);if(Array.isArray(e)&&!(e.length<1||e.length>4)){for(const i of e)if(typeof i!="number")return;switch(e.length){case 1:e=[e[0],e[0],e[0],e[0]];break;case 2:e=[e[0],e[1],e[0],e[1]];break;case 3:e=[e[0],e[1],e[2],e[1]]}return new pi(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,i,a){return new pi(la(e.values,i.values,a))}}class fi{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof fi)return e;if(typeof e=="number")return new fi([e]);if(Array.isArray(e)){for(const i of e)if(typeof i!="number")return;return new fi(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,i,a){return new fi(la(e.values,i.values,a))}}class yt{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof yt)return e;if(typeof e=="string"){const a=et.parse(e);return a?new yt([a]):void 0}if(!Array.isArray(e))return;const i=[];for(const a of e){if(typeof a!="string")return;const o=et.parse(a);if(!o)return;i.push(o)}return new yt(i)}toString(){return JSON.stringify(this.values)}static interpolate(e,i,a,o="rgb"){const u=[];if(e.values.length!=i.values.length)throw new Error(`colorArray: Arrays have mismatched length (${e.values.length} vs. ${i.values.length}), cannot interpolate.`);for(let h=0;h=0&&r<=255&&typeof e=="number"&&e>=0&&e<=255&&typeof i=="number"&&i>=0&&i<=255?a===void 0||typeof a=="number"&&a>=0&&a<=1?null:`Invalid rgba value [${[r,e,i,a].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof a=="number"?[r,e,i,a]:[r,e,i]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Rr(r){if(r===null||typeof r=="string"||typeof r=="boolean"||typeof r=="number"||r instanceof Ai||r instanceof et||r instanceof zn||r instanceof Bi||r instanceof pi||r instanceof fi||r instanceof yt||r instanceof Gt||r instanceof Oi)return!0;if(Array.isArray(r)){for(const e of r)if(!Rr(e))return!1;return!0}if(typeof r=="object"){for(const e in r)if(!Rr(r[e]))return!1;return!0}return!1}function Mt(r){if(r===null)return Dr;if(typeof r=="string")return $e;if(typeof r=="boolean")return We;if(typeof r=="number")return Pe;if(r instanceof et)return Ki;if(r instanceof Ai)return ra;if(r instanceof zn)return na;if(r instanceof Bi)return aa;if(r instanceof pi)return ks;if(r instanceof fi)return Oa;if(r instanceof yt)return Ba;if(r instanceof Gt)return Va;if(r instanceof Oi)return sa;if(Array.isArray(r)){const e=r.length;let i;for(const a of r){const o=Mt(a);if(i){if(i===o)continue;i=Ke;break}i=o}return Ci(i||Ke,e)}return En}function ua(r){const e=typeof r;return r===null?"":e==="string"||e==="number"||e==="boolean"?String(r):r instanceof et||r instanceof Ai||r instanceof Bi||r instanceof pi||r instanceof fi||r instanceof yt||r instanceof Gt||r instanceof Oi?r.toString():JSON.stringify(r)}class Lr{constructor(e,i){this.type=e,this.value=i}static parse(e,i){if(e.length!==2)return i.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!Rr(e[1]))return i.error("invalid value");const a=e[1];let o=Mt(a);const u=i.expectedType;return o.kind!=="array"||o.N!==0||!u||u.kind!=="array"||typeof u.N=="number"&&u.N!==0||(o=u),new Lr(o,a)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}const Dn={string:$e,number:Pe,boolean:We,object:En};class cr{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");let a,o=1;const u=e[0];if(u==="array"){let f,_;if(e.length>2){const y=e[1];if(typeof y!="string"||!(y in Dn)||y==="object")return i.error('The item type argument of "array" must be one of string, number, boolean',1);f=Dn[y],o++}else f=Ke;if(e.length>3){if(e[2]!==null&&(typeof e[2]!="number"||e[2]<0||e[2]!==Math.floor(e[2])))return i.error('The length argument to "array" must be a positive integer literal',2);_=e[2],o++}a=Ci(f,_)}else{if(!Dn[u])throw new Error(`Types doesn't contain name = ${u}`);a=Dn[u]}const h=[];for(;oe.outputDefined()))}}const Ga={"to-boolean":We,"to-color":Ki,"to-number":Pe,"to-string":$e};class Vi{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");const a=e[0];if(!Ga[a])throw new Error(`Can't parse ${a} as it is not part of the known types`);if((a==="to-boolean"||a==="to-string")&&e.length!==2)return i.error("Expected one argument.");const o=Ga[a],u=[];for(let h=1;h4?`Invalid rgba value ${JSON.stringify(i)}: expected an array containing either three or four numeric values.`:Os(i[0],i[1],i[2],i[3]),!a))return new et(i[0]/255,i[1]/255,i[2]/255,i[3])}throw new je(a||`Could not parse color from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"padding":{let i;for(const a of this.args){i=a.evaluate(e);const o=pi.parse(i);if(o)return o}throw new je(`Could not parse padding from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"numberArray":{let i;for(const a of this.args){i=a.evaluate(e);const o=fi.parse(i);if(o)return o}throw new je(`Could not parse numberArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"colorArray":{let i;for(const a of this.args){i=a.evaluate(e);const o=yt.parse(i);if(o)return o}throw new je(`Could not parse colorArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"variableAnchorOffsetCollection":{let i;for(const a of this.args){i=a.evaluate(e);const o=Gt.parse(i);if(o)return o}throw new je(`Could not parse variableAnchorOffsetCollection from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"number":{let i=null;for(const a of this.args){if(i=a.evaluate(e),i===null)return 0;const o=Number(i);if(!isNaN(o))return o}throw new je(`Could not convert ${JSON.stringify(i)} to number.`)}case"formatted":return Bi.fromString(ua(this.args[0].evaluate(e)));case"resolvedImage":return Oi.fromString(ua(this.args[0].evaluate(e)));case"projectionDefinition":return this.args[0].evaluate(e);default:return ua(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every((e=>e.outputDefined()))}}const nc=["Unknown","Point","LineString","Polygon"];class Zo{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?nc[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(e){let i=this._parseColorCache.get(e);return i||(i=et.parse(e),this._parseColorCache.set(e,i)),i}}class qa{constructor(e,i,a=[],o,u=new In,h=[]){this.registry=e,this.path=a,this.key=a.map((f=>`[${f}]`)).join(""),this.scope=u,this.errors=h,this.expectedType=o,this._isConstant=i}parse(e,i,a,o,u={}){return i?this.concat(i,a,o)._parse(e,u):this._parse(e,u)}_parse(e,i){function a(o,u,h){return h==="assert"?new cr(u,[o]):h==="coerce"?new Vi(u,[o]):o}if(e!==null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"||(e=["literal",e]),Array.isArray(e)){if(e.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const o=e[0];if(typeof o!="string")return this.error(`Expression name must be a string, but found ${typeof o} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const u=this.registry[o];if(u){let h=u.parse(e,this);if(!h)return null;if(this.expectedType){const f=this.expectedType,_=h.type;if(f.kind!=="string"&&f.kind!=="number"&&f.kind!=="boolean"&&f.kind!=="object"&&f.kind!=="array"||_.kind!=="value"){if(f.kind==="projectionDefinition"&&["string","array"].includes(_.kind)||["color","formatted","resolvedImage"].includes(f.kind)&&["value","string"].includes(_.kind)||["padding","numberArray"].includes(f.kind)&&["value","number","array"].includes(_.kind)||f.kind==="colorArray"&&["value","string","array"].includes(_.kind)||f.kind==="variableAnchorOffsetCollection"&&["value","array"].includes(_.kind))h=a(h,f,i.typeAnnotation||"coerce");else if(this.checkSubtype(f,_))return null}else h=a(h,f,i.typeAnnotation||"assert")}if(!(h instanceof Lr)&&h.type.kind!=="resolvedImage"&&this._isConstant(h)){const f=new Zo;try{h=new Lr(h.type,h.evaluate(f))}catch(_){return this.error(_.message),null}}return h}return this.error(`Unknown expression "${o}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?"'undefined' value invalid. Use null instead.":typeof e=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof e} instead.`)}concat(e,i,a){const o=typeof e=="number"?this.path.concat(e):this.path,u=a?this.scope.concat(a):this.scope;return new qa(this.registry,this._isConstant,o,i||null,u,this.errors)}error(e,...i){const a=`${this.key}${i.map((o=>`[${o}]`)).join("")}`;this.errors.push(new bt(a,e))}checkSubtype(e,i){const a=on(e,i);return a&&this.error(a),a}}class kn{constructor(e,i){this.type=i.type,this.bindings=[].concat(e),this.result=i}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const i of this.bindings)e(i[1]);e(this.result)}static parse(e,i){if(e.length<4)return i.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const a=[];for(let u=1;u=a.length)throw new je(`Array index out of bounds: ${i} > ${a.length-1}.`);if(i!==Math.floor(i))throw new je(`Array index must be an integer, but found ${i} instead.`);return a[i]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}}class tt{constructor(e,i){this.type=We,this.needle=e,this.haystack=i}static parse(e,i){if(e.length!==3)return i.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const a=i.parse(e[1],1,Ke),o=i.parse(e[2],2,Ke);return a&&o?Rs(a.type,[We,$e,Pe,Dr,Ke])?new tt(a,o):i.error(`Expected first argument to be of type boolean, string, number or null, but found ${gt(a.type)} instead`):null}evaluate(e){const i=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(!a)return!1;if(!kr(i,["boolean","string","number","null"]))throw new je(`Expected first argument to be of type boolean, string, number or null, but found ${gt(Mt(i))} instead.`);if(!kr(a,["string","array"]))throw new je(`Expected second argument to be of type array or string, but found ${gt(Mt(a))} instead.`);return a.indexOf(i)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}}class Xe{constructor(e,i,a){this.type=Pe,this.needle=e,this.haystack=i,this.fromIndex=a}static parse(e,i){if(e.length<=2||e.length>=5)return i.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const a=i.parse(e[1],1,Ke),o=i.parse(e[2],2,Ke);if(!a||!o)return null;if(!Rs(a.type,[We,$e,Pe,Dr,Ke]))return i.error(`Expected first argument to be of type boolean, string, number or null, but found ${gt(a.type)} instead`);if(e.length===4){const u=i.parse(e[3],3,Pe);return u?new Xe(a,o,u):null}return new Xe(a,o)}evaluate(e){const i=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(!kr(i,["boolean","string","number","null"]))throw new je(`Expected first argument to be of type boolean, string, number or null, but found ${gt(Mt(i))} instead.`);let o;if(this.fromIndex&&(o=this.fromIndex.evaluate(e)),kr(a,["string"])){const u=a.indexOf(i,o);return u===-1?-1:[...a.slice(0,u)].length}if(kr(a,["array"]))return a.indexOf(i,o);throw new je(`Expected second argument to be of type array or string, but found ${gt(Mt(a))} instead.`)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}}class $a{constructor(e,i,a,o,u,h){this.inputType=e,this.type=i,this.input=a,this.cases=o,this.outputs=u,this.otherwise=h}static parse(e,i){if(e.length<5)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return i.error("Expected an even number of arguments.");let a,o;i.expectedType&&i.expectedType.kind!=="value"&&(o=i.expectedType);const u={},h=[];for(let y=2;yNumber.MAX_SAFE_INTEGER)return S.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof E=="number"&&Math.floor(E)!==E)return S.error("Numeric branch labels must be integer values.");if(a){if(S.checkSubtype(a,Mt(E)))return null}else a=Mt(E);if(u[String(E)]!==void 0)return S.error("Branch labels must be unique.");u[String(E)]=h.length}const P=i.parse(b,y,o);if(!P)return null;o=o||P.type,h.push(P)}const f=i.parse(e[1],1,Ke);if(!f)return null;const _=i.parse(e[e.length-1],e.length-1,o);return _?f.type.kind!=="value"&&i.concat(1).checkSubtype(a,f.type)?null:new $a(a,o,f,u,h,_):null}evaluate(e){const i=this.input.evaluate(e);return(Mt(i)===this.inputType&&this.outputs[this.cases[i]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))&&this.otherwise.outputDefined()}}class rt{constructor(e,i,a){this.type=e,this.branches=i,this.otherwise=a}static parse(e,i){if(e.length<4)return i.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return i.error("Expected an odd number of arguments.");let a;i.expectedType&&i.expectedType.kind!=="value"&&(a=i.expectedType);const o=[];for(let h=1;hi.outputDefined()))&&this.otherwise.outputDefined()}}class ha{constructor(e,i,a,o){this.type=e,this.input=i,this.beginIndex=a,this.endIndex=o}static parse(e,i){if(e.length<=2||e.length>=5)return i.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const a=i.parse(e[1],1,Ke),o=i.parse(e[2],2,Pe);if(!a||!o)return null;if(!Rs(a.type,[Ci(Ke),$e,Ke]))return i.error(`Expected first argument to be of type array or string, but found ${gt(a.type)} instead`);if(e.length===4){const u=i.parse(e[3],3,Pe);return u?new ha(a.type,a,o,u):null}return new ha(a.type,a,o)}evaluate(e){const i=this.input.evaluate(e),a=this.beginIndex.evaluate(e);let o;if(this.endIndex&&(o=this.endIndex.evaluate(e)),kr(i,["string"]))return[...i].slice(a,o).join("");if(kr(i,["array"]))return i.slice(a,o);throw new je(`Expected first argument to be of type array or string, but found ${gt(Mt(i))} instead.`)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}}function Qi(r,e){const i=r.length-1;let a,o,u=0,h=i,f=0;for(;u<=h;)if(f=Math.floor((u+h)/2),a=r[f],o=r[f+1],a<=e){if(f===i||ee))throw new je("Input is not a number.");h=f-1}return 0}class Rn{constructor(e,i,a){this.type=e,this.input=i,this.labels=[],this.outputs=[];for(const[o,u]of a)this.labels.push(o),this.outputs.push(u)}static parse(e,i){if(e.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return i.error("Expected an even number of arguments.");const a=i.parse(e[1],1,Pe);if(!a)return null;const o=[];let u=null;i.expectedType&&i.expectedType.kind!=="value"&&(u=i.expectedType);for(let h=1;h=f)return i.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',y);const b=i.parse(_,v,u);if(!b)return null;u=u||b.type,o.push([f,b])}return new Rn(u,a,o)}evaluate(e){const i=this.labels,a=this.outputs;if(i.length===1)return a[0].evaluate(e);const o=this.input.evaluate(e);if(o<=i[0])return a[0].evaluate(e);const u=i.length;return o>=i[u-1]?a[u-1].evaluate(e):a[Qi(i,o)].evaluate(e)}eachChild(e){e(this.input);for(const i of this.outputs)e(i)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))}}function Vs(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var js,Ns,ac=(function(){if(Ns)return js;function r(e,i,a,o){this.cx=3*e,this.bx=3*(a-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(o-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=i,this.p2x=a,this.p2y=o}return Ns=1,js=r,r.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,i){if(i===void 0&&(i=1e-6),e<0)return 0;if(e>1)return 1;for(var a=e,o=0;o<8;o++){var u=this.sampleCurveX(a)-e;if(Math.abs(u)u?f=a:_=a,a=.5*(_-f)+f;return a},solve:function(e,i){return this.sampleCurveY(this.solveCurveX(e,i))}},js})(),Fu=Vs(ac);class vi{constructor(e,i,a,o,u){this.type=e,this.operator=i,this.interpolation=a,this.input=o,this.labels=[],this.outputs=[];for(const[h,f]of u)this.labels.push(h),this.outputs.push(f)}static interpolationFactor(e,i,a,o){let u=0;if(e.name==="exponential")u=Us(i,e.base,a,o);else if(e.name==="linear")u=Us(i,1,a,o);else if(e.name==="cubic-bezier"){const h=e.controlPoints;u=new Fu(h[0],h[1],h[2],h[3]).solve(Us(i,1,a,o))}return u}static parse(e,i){let[a,o,u,...h]=e;if(!Array.isArray(o)||o.length===0)return i.error("Expected an interpolation type expression.",1);if(o[0]==="linear")o={name:"linear"};else if(o[0]==="exponential"){const y=o[1];if(typeof y!="number")return i.error("Exponential interpolation requires a numeric base.",1,1);o={name:"exponential",base:y}}else{if(o[0]!=="cubic-bezier")return i.error(`Unknown interpolation type ${String(o[0])}`,1,0);{const y=o.slice(1);if(y.length!==4||y.some((v=>typeof v!="number"||v<0||v>1)))return i.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);o={name:"cubic-bezier",controlPoints:y}}}if(e.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return i.error("Expected an even number of arguments.");if(u=i.parse(u,2,Pe),!u)return null;const f=[];let _=null;a!=="interpolate-hcl"&&a!=="interpolate-lab"||i.expectedType==Ba?i.expectedType&&i.expectedType.kind!=="value"&&(_=i.expectedType):_=Ki;for(let y=0;y=v)return i.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',S);const E=i.parse(b,P,_);if(!E)return null;_=_||E.type,f.push([v,E])}return ln(_,Pe)||ln(_,ra)||ln(_,Ki)||ln(_,ks)||ln(_,Oa)||ln(_,Ba)||ln(_,Va)||ln(_,Ci(Pe))?new vi(_,a,o,u,f):i.error(`Type ${gt(_)} is not interpolatable.`)}evaluate(e){const i=this.labels,a=this.outputs;if(i.length===1)return a[0].evaluate(e);const o=this.input.evaluate(e);if(o<=i[0])return a[0].evaluate(e);const u=i.length;if(o>=i[u-1])return a[u-1].evaluate(e);const h=Qi(i,o),f=vi.interpolationFactor(this.interpolation,o,i[h],i[h+1]),_=a[h].evaluate(e),y=a[h+1].evaluate(e);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return Ji(_,y,f);case"color":return et.interpolate(_,y,f);case"padding":return pi.interpolate(_,y,f);case"colorArray":return yt.interpolate(_,y,f);case"numberArray":return fi.interpolate(_,y,f);case"variableAnchorOffsetCollection":return Gt.interpolate(_,y,f);case"array":return la(_,y,f);case"projectionDefinition":return Ai.interpolate(_,y,f)}case"interpolate-hcl":switch(this.type.kind){case"color":return et.interpolate(_,y,f,"hcl");case"colorArray":return yt.interpolate(_,y,f,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return et.interpolate(_,y,f,"lab");case"colorArray":return yt.interpolate(_,y,f,"lab")}}}eachChild(e){e(this.input);for(const i of this.outputs)e(i)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))}}function Us(r,e,i,a){const o=a-i,u=r-i;return o===0?0:e===1?u/o:(Math.pow(e,u)-1)/(Math.pow(e,o)-1)}const ai={color:et.interpolate,number:Ji,padding:pi.interpolate,numberArray:fi.interpolate,colorArray:yt.interpolate,variableAnchorOffsetCollection:Gt.interpolate,array:la};class Yt{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");let a=null;const o=i.expectedType;o&&o.kind!=="value"&&(a=o);const u=[];for(const f of e.slice(1)){const _=i.parse(f,1+u.length,a,void 0,{typeAnnotation:"omit"});if(!_)return null;a=a||_.type,u.push(_)}if(!a)throw new Error("No output type");const h=o&&u.some((f=>on(o,f.type)));return new Yt(h?Ke:a,u)}evaluate(e){let i,a=null,o=0;for(const u of this.args)if(o++,a=u.evaluate(e),a&&a instanceof Oi&&!a.available&&(i||(i=a.name),a=null,o===this.args.length&&(a=i)),a!==null)break;return a}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every((e=>e.outputDefined()))}}function Wa(r,e){return r==="=="||r==="!="?e.kind==="boolean"||e.kind==="string"||e.kind==="number"||e.kind==="null"||e.kind==="value":e.kind==="string"||e.kind==="number"||e.kind==="value"}function $o(r,e,i,a){return a.compare(e,i)===0}function Fr(r,e,i){const a=r!=="=="&&r!=="!=";return class Sf{constructor(u,h,f){this.type=We,this.lhs=u,this.rhs=h,this.collator=f,this.hasUntypedArgument=u.type.kind==="value"||h.type.kind==="value"}static parse(u,h){if(u.length!==3&&u.length!==4)return h.error("Expected two or three arguments.");const f=u[0];let _=h.parse(u[1],1,Ke);if(!_)return null;if(!Wa(f,_.type))return h.concat(1).error(`"${f}" comparisons are not supported for type '${gt(_.type)}'.`);let y=h.parse(u[2],2,Ke);if(!y)return null;if(!Wa(f,y.type))return h.concat(2).error(`"${f}" comparisons are not supported for type '${gt(y.type)}'.`);if(_.type.kind!==y.type.kind&&_.type.kind!=="value"&&y.type.kind!=="value")return h.error(`Cannot compare types '${gt(_.type)}' and '${gt(y.type)}'.`);a&&(_.type.kind==="value"&&y.type.kind!=="value"?_=new cr(y.type,[_]):_.type.kind!=="value"&&y.type.kind==="value"&&(y=new cr(_.type,[y])));let v=null;if(u.length===4){if(_.type.kind!=="string"&&y.type.kind!=="string"&&_.type.kind!=="value"&&y.type.kind!=="value")return h.error("Cannot use collator to compare non-string types.");if(v=h.parse(u[3],3,na),!v)return null}return new Sf(_,y,v)}evaluate(u){const h=this.lhs.evaluate(u),f=this.rhs.evaluate(u);if(a&&this.hasUntypedArgument){const _=Mt(h),y=Mt(f);if(_.kind!==y.kind||_.kind!=="string"&&_.kind!=="number")throw new je(`Expected arguments for "${r}" to be (string, string) or (number, number), but found (${_.kind}, ${y.kind}) instead.`)}if(this.collator&&!a&&this.hasUntypedArgument){const _=Mt(h),y=Mt(f);if(_.kind!=="string"||y.kind!=="string")return e(u,h,f)}return this.collator?i(u,h,f,this.collator.evaluate(u)):e(u,h,f)}eachChild(u){u(this.lhs),u(this.rhs),this.collator&&u(this.collator)}outputDefined(){return!0}}}const Qt=Fr("==",(function(r,e,i){return e===i}),$o),sc=Fr("!=",(function(r,e,i){return e!==i}),(function(r,e,i,a){return!$o(0,e,i,a)})),Wo=Fr("<",(function(r,e,i){return e",(function(r,e,i){return e>i}),(function(r,e,i,a){return a.compare(e,i)>0})),Bu=Fr("<=",(function(r,e,i){return e<=i}),(function(r,e,i,a){return a.compare(e,i)<=0})),da=Fr(">=",(function(r,e,i){return e>=i}),(function(r,e,i,a){return a.compare(e,i)>=0}));class Ln{constructor(e,i,a){this.type=na,this.locale=a,this.caseSensitive=e,this.diacriticSensitive=i}static parse(e,i){if(e.length!==2)return i.error("Expected one argument.");const a=e[1];if(typeof a!="object"||Array.isArray(a))return i.error("Collator options argument must be an object.");const o=i.parse(a["case-sensitive"]!==void 0&&a["case-sensitive"],1,We);if(!o)return null;const u=i.parse(a["diacritic-sensitive"]!==void 0&&a["diacritic-sensitive"],1,We);if(!u)return null;let h=null;return a.locale&&(h=i.parse(a.locale,1,$e),!h)?null:new Ln(o,u,h)}evaluate(e){return new zn(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale)}outputDefined(){return!1}}class Ha{constructor(e,i,a,o,u){this.type=$e,this.number=e,this.locale=i,this.currency=a,this.minFractionDigits=o,this.maxFractionDigits=u}static parse(e,i){if(e.length!==3)return i.error("Expected two arguments.");const a=i.parse(e[1],1,Pe);if(!a)return null;const o=e[2];if(typeof o!="object"||Array.isArray(o))return i.error("NumberFormat options argument must be an object.");let u=null;if(o.locale&&(u=i.parse(o.locale,1,$e),!u))return null;let h=null;if(o.currency&&(h=i.parse(o.currency,1,$e),!h))return null;let f=null;if(o["min-fraction-digits"]&&(f=i.parse(o["min-fraction-digits"],1,Pe),!f))return null;let _=null;return o["max-fraction-digits"]&&(_=i.parse(o["max-fraction-digits"],1,Pe),!_)?null:new Ha(a,u,h,f,_)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}outputDefined(){return!1}}class Gs{constructor(e){this.type=aa,this.sections=e}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");const a=e[1];if(!Array.isArray(a)&&typeof a=="object")return i.error("First argument must be an image or text section.");const o=[];let u=!1;for(let h=1;h<=e.length-1;++h){const f=e[h];if(u&&typeof f=="object"&&!Array.isArray(f)){u=!1;let _=null;if(f["font-scale"]&&(_=i.parse(f["font-scale"],1,Pe),!_))return null;let y=null;if(f["text-font"]&&(y=i.parse(f["text-font"],1,Ci($e)),!y))return null;let v=null;if(f["text-color"]&&(v=i.parse(f["text-color"],1,Ki),!v))return null;let b=null;if(f["vertical-align"]){if(typeof f["vertical-align"]=="string"&&!Lu.includes(f["vertical-align"]))return i.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${f["vertical-align"]}' instead.`);if(b=i.parse(f["vertical-align"],1,$e),!b)return null}const S=o[o.length-1];S.scale=_,S.font=y,S.textColor=v,S.verticalAlign=b}else{const _=i.parse(e[h],1,Ke);if(!_)return null;const y=_.type.kind;if(y!=="string"&&y!=="value"&&y!=="null"&&y!=="resolvedImage")return i.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");u=!0,o.push({content:_,scale:null,font:null,textColor:null,verticalAlign:null})}}return new Gs(o)}evaluate(e){return new Bi(this.sections.map((i=>{const a=i.content.evaluate(e);return Mt(a)===sa?new qo("",a,null,null,null,i.verticalAlign?i.verticalAlign.evaluate(e):null):new qo(ua(a),null,i.scale?i.scale.evaluate(e):null,i.font?i.font.evaluate(e).join(","):null,i.textColor?i.textColor.evaluate(e):null,i.verticalAlign?i.verticalAlign.evaluate(e):null)})))}eachChild(e){for(const i of this.sections)e(i.content),i.scale&&e(i.scale),i.font&&e(i.font),i.textColor&&e(i.textColor),i.verticalAlign&&e(i.verticalAlign)}outputDefined(){return!1}}class qs{constructor(e){this.type=sa,this.input=e}static parse(e,i){if(e.length!==2)return i.error("Expected two arguments.");const a=i.parse(e[1],1,$e);return a?new qs(a):i.error("No image name provided.")}evaluate(e){const i=this.input.evaluate(e),a=Oi.fromString(i);return a&&e.availableImages&&(a.available=e.availableImages.indexOf(i)>-1),a}eachChild(e){e(this.input)}outputDefined(){return!1}}class pa{constructor(e){this.type=Pe,this.input=e}static parse(e,i){if(e.length!==2)return i.error(`Expected 1 argument, but found ${e.length-1} instead.`);const a=i.parse(e[1],1);return a?a.type.kind!=="array"&&a.type.kind!=="string"&&a.type.kind!=="value"?i.error(`Expected argument of type string or array, but found ${gt(a.type)} instead.`):new pa(a):null}evaluate(e){const i=this.input.evaluate(e);if(typeof i=="string")return[...i].length;if(Array.isArray(i))return i.length;throw new je(`Expected value to be of type string or array, but found ${gt(Mt(i))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}}const ji=8192;function ur(r,e){const i=(180+r[0])/360,a=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r[1]*Math.PI/360)))/360,o=Math.pow(2,e.z);return[Math.round(i*o*ji),Math.round(a*o*ji)]}function Zs(r,e){const i=Math.pow(2,e.z);return[(o=(r[0]/ji+e.x)/i,360*o-180),(a=(r[1]/ji+e.y)/i,360/Math.PI*Math.atan(Math.exp((180-360*a)*Math.PI/180))-90)];var a,o}function un(r,e){r[0]=Math.min(r[0],e[0]),r[1]=Math.min(r[1],e[1]),r[2]=Math.max(r[2],e[0]),r[3]=Math.max(r[3],e[1])}function Xa(r,e){return!(r[0]<=e[0]||r[2]>=e[2]||r[1]<=e[1]||r[3]>=e[3])}function Ho(r,e,i){const a=r[0]-e[0],o=r[1]-e[1],u=r[0]-i[0],h=r[1]-i[1];return a*h-u*o==0&&a*u<=0&&o*h<=0}function $s(r,e,i,a){return(o=[a[0]-i[0],a[1]-i[1]])[0]*(u=[e[0]-r[0],e[1]-r[1]])[1]-o[1]*u[0]!=0&&!(!Xo(r,e,i,a)||!Xo(i,a,r,e));var o,u}function Ou(r,e,i){for(const a of i)for(let o=0;o(o=r)[1]!=(h=f[_+1])[1]>o[1]&&o[0]<(h[0]-u[0])*(o[1]-u[1])/(h[1]-u[1])+u[0]&&(a=!a)}var o,u,h;return a}function Vu(r,e){for(const i of e)if(fa(r,i))return!0;return!1}function Ya(r,e){for(const i of r)if(!fa(i,e))return!1;for(let i=0;i0&&f<0||h<0&&f>0}function Ws(r,e,i){const a=[];for(let o=0;oi[2]){const o=.5*a;let u=r[0]-i[0]>o?-a:i[0]-r[0]>o?a:0;u===0&&(u=r[0]-i[2]>o?-a:i[2]-r[0]>o?a:0),r[0]+=u}un(e,r)}function cc(r,e,i,a){const o=Math.pow(2,a.z)*ji,u=[a.x*ji,a.y*ji],h=[];for(const f of r)for(const _ of f){const y=[_.x+u[0],_.y+u[1]];Yo(y,e,i,o),h.push(y)}return h}function uc(r,e,i,a){const o=Math.pow(2,a.z)*ji,u=[a.x*ji,a.y*ji],h=[];for(const _ of r){const y=[];for(const v of _){const b=[v.x+u[0],v.y+u[1]];un(e,b),y.push(b)}h.push(y)}if(e[2]-e[0]<=o/2){(f=e)[0]=f[1]=1/0,f[2]=f[3]=-1/0;for(const _ of h)for(const y of _)Yo(y,e,i,o)}var f;return h}class Fn{constructor(e,i){this.type=We,this.geojson=e,this.geometries=i}static parse(e,i){if(e.length!==2)return i.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(Rr(e[1])){const a=e[1];if(a.type==="FeatureCollection"){const o=[];for(const u of a.features){const{type:h,coordinates:f}=u.geometry;h==="Polygon"&&o.push(f),h==="MultiPolygon"&&o.push(...f)}if(o.length)return new Fn(a,{type:"MultiPolygon",coordinates:o})}else if(a.type==="Feature"){const o=a.geometry.type;if(o==="Polygon"||o==="MultiPolygon")return new Fn(a,a.geometry)}else if(a.type==="Polygon"||a.type==="MultiPolygon")return new Fn(a,a)}return i.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()==="Point")return(function(i,a){const o=[1/0,1/0,-1/0,-1/0],u=[1/0,1/0,-1/0,-1/0],h=i.canonicalID();if(a.type==="Polygon"){const f=Ws(a.coordinates,u,h),_=cc(i.geometry(),o,u,h);if(!Xa(o,u))return!1;for(const y of _)if(!fa(y,f))return!1}if(a.type==="MultiPolygon"){const f=lc(a.coordinates,u,h),_=cc(i.geometry(),o,u,h);if(!Xa(o,u))return!1;for(const y of _)if(!Vu(y,f))return!1}return!0})(e,this.geometries);if(e.geometryType()==="LineString")return(function(i,a){const o=[1/0,1/0,-1/0,-1/0],u=[1/0,1/0,-1/0,-1/0],h=i.canonicalID();if(a.type==="Polygon"){const f=Ws(a.coordinates,u,h),_=uc(i.geometry(),o,u,h);if(!Xa(o,u))return!1;for(const y of _)if(!Ya(y,f))return!1}if(a.type==="MultiPolygon"){const f=lc(a.coordinates,u,h),_=uc(i.geometry(),o,u,h);if(!Xa(o,u))return!1;for(const y of _)if(!ju(y,f))return!1}return!0})(e,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let hc=class{constructor(r=[],e=(i,a)=>ia?1:0){if(this.data=r,this.length=this.data.length,this.compare=e,this.length>0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}push(r){this.data.push(r),this._up(this.length++)}pop(){if(this.length===0)return;const r=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),r}peek(){return this.data[0]}_up(r){const{data:e,compare:i}=this,a=e[r];for(;r>0;){const o=r-1>>1,u=e[o];if(i(a,u)>=0)break;e[r]=u,r=o}e[r]=a}_down(r){const{data:e,compare:i}=this,a=this.length>>1,o=e[r];for(;r=0)break;e[r]=e[u],r=u}e[r]=o}};function dc(r,e,i=0,a=r.length-1,o=pc){for(;a>i;){if(a-i>600){const _=a-i+1,y=e-i+1,v=Math.log(_),b=.5*Math.exp(2*v/3),S=.5*Math.sqrt(v*b*(_-b)/_)*(y-_/2<0?-1:1);dc(r,e,Math.max(i,Math.floor(e-y*b/_+S)),Math.min(a,Math.floor(e+(_-y)*b/_+S)),o)}const u=r[e];let h=i,f=a;for(ma(r,i,e),o(r[a],u)>0&&ma(r,i,a);h0;)f--}o(r[i],u)===0?ma(r,i,f):(f++,ma(r,f,a)),f<=e&&(i=f+1),e<=f&&(a=f-1)}}function ma(r,e,i){const a=r[e];r[e]=r[i],r[i]=a}function pc(r,e){return re?1:0}function Ka(r,e){if(r.length<=1)return[r];const i=[];let a,o;for(const u of r){const h=Uu(u);h!==0&&(u.area=Math.abs(h),o===void 0&&(o=h<0),o===h<0?(a&&i.push(a),a=[u]):a.push(u))}if(a&&i.push(a),e>1)for(let u=0;u1?(y=e[_+1][0],v=e[_+1][1]):P>0&&(y+=b/this.kx*P,v+=S/this.ky*P)),b=this.wrap(i[0]-y)*this.kx,S=(i[1]-v)*this.ky;const E=b*b+S*S;E180;)e-=360;return e}}function _c(r,e){return e[0]-r[0]}function Hs(r){return r[1]-r[0]+1}function Br(r,e){return r[1]>=r[0]&&r[1]r[1])return[null,null];const i=Hs(r);if(e){if(i===2)return[r,null];const o=Math.floor(i/2);return[[r[0],r[0]+o],[r[0]+o,r[1]]]}if(i===1)return[r,null];const a=Math.floor(i/2)-1;return[[r[0],r[0]+a],[r[0]+a+1,r[1]]]}function Xs(r,e){if(!Br(e,r.length))return[1/0,1/0,-1/0,-1/0];const i=[1/0,1/0,-1/0,-1/0];for(let a=e[0];a<=e[1];++a)un(i,r[a]);return i}function Jo(r){const e=[1/0,1/0,-1/0,-1/0];for(const i of r)for(const a of i)un(e,a);return e}function gc(r){return r[0]!==-1/0&&r[1]!==-1/0&&r[2]!==1/0&&r[3]!==1/0}function Ys(r,e,i){if(!gc(r)||!gc(e))return NaN;let a=0,o=0;return r[2]e[2]&&(a=r[0]-e[2]),r[1]>e[3]&&(o=r[1]-e[3]),r[3]=a)return a;if(Xa(o,u)){if(xc(r,e))return 0}else if(xc(e,r))return 0;let h=1/0;for(const f of r)for(let _=0,y=f.length,v=y-1;_0;){const _=h.pop();if(_[0]>=u)continue;const y=_[1],v=e?50:100;if(Hs(y)<=v){if(!Br(y,r.length))return NaN;if(e){const b=Zu(r,y,i,a);if(isNaN(b)||b===0)return b;u=Math.min(u,b)}else for(let b=y[0];b<=y[1];++b){const S=yc(r[b],i,a);if(u=Math.min(u,S),u===0)return 0}}else{const b=Qa(y,e);vc(h,u,a,r,f,b[0]),vc(h,u,a,r,f,b[1])}}return u}function Js(r,e,i,a,o,u=1/0){let h=Math.min(u,o.distance(r[0],i[0]));if(h===0)return h;const f=new hc([[0,[0,r.length-1],[0,i.length-1]]],_c);for(;f.length>0;){const _=f.pop();if(_[0]>=h)continue;const y=_[1],v=_[2],b=e?50:100,S=a?50:100;if(Hs(y)<=b&&Hs(v)<=S){if(!Br(y,r.length)&&Br(v,i.length))return NaN;let P;if(e&&a)P=Gu(r,y,i,v,o),h=Math.min(h,P);else if(e&&!a){const E=r.slice(y[0],y[1]+1);for(let A=v[0];A<=v[1];++A)if(P=hn(i[A],E,o),h=Math.min(h,P),h===0)return h}else if(!e&&a){const E=i.slice(v[0],v[1]+1);for(let A=y[0];A<=y[1];++A)if(P=hn(r[A],E,o),h=Math.min(h,P),h===0)return h}else P=qu(r,y,i,v,o),h=Math.min(h,P)}else{const P=Qa(y,e),E=Qa(v,a);nt(f,h,o,r,i,P[0],E[0]),nt(f,h,o,r,i,P[0],E[1]),nt(f,h,o,r,i,P[1],E[0]),nt(f,h,o,r,i,P[1],E[1])}}return h}function el(r){return r.type==="MultiPolygon"?r.coordinates.map((e=>({type:"Polygon",coordinates:e}))):r.type==="MultiLineString"?r.coordinates.map((e=>({type:"LineString",coordinates:e}))):r.type==="MultiPoint"?r.coordinates.map((e=>({type:"Point",coordinates:e}))):[r]}class Bn{constructor(e,i){this.type=Pe,this.geojson=e,this.geometries=i}static parse(e,i){if(e.length!==2)return i.error(`'distance' expression requires exactly one argument, but found ${e.length-1} instead.`);if(Rr(e[1])){const a=e[1];if(a.type==="FeatureCollection")return new Bn(a,a.features.map((o=>el(o.geometry))).flat());if(a.type==="Feature")return new Bn(a,el(a.geometry));if("type"in a&&"coordinates"in a)return new Bn(a,el(a))}return i.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()==="Point")return(function(i,a){const o=i.geometry(),u=o.flat().map((_=>Zs([_.x,_.y],i.canonical)));if(o.length===0)return NaN;const h=new Ko(u[0][1]);let f=1/0;for(const _ of a){switch(_.type){case"Point":f=Math.min(f,Js(u,!1,[_.coordinates],!1,h,f));break;case"LineString":f=Math.min(f,Js(u,!1,_.coordinates,!0,h,f));break;case"Polygon":f=Math.min(f,Ks(u,!1,_.coordinates,h,f))}if(f===0)return f}return f})(e,this.geometries);if(e.geometryType()==="LineString")return(function(i,a){const o=i.geometry(),u=o.flat().map((_=>Zs([_.x,_.y],i.canonical)));if(o.length===0)return NaN;const h=new Ko(u[0][1]);let f=1/0;for(const _ of a){switch(_.type){case"Point":f=Math.min(f,Js(u,!0,[_.coordinates],!1,h,f));break;case"LineString":f=Math.min(f,Js(u,!0,_.coordinates,!0,h,f));break;case"Polygon":f=Math.min(f,Ks(u,!0,_.coordinates,h,f))}if(f===0)return f}return f})(e,this.geometries);if(e.geometryType()==="Polygon")return(function(i,a){const o=i.geometry();if(o.length===0||o[0].length===0)return NaN;const u=Ka(o,0).map((_=>_.map((y=>y.map((v=>Zs([v.x,v.y],i.canonical))))))),h=new Ko(u[0][0][0][1]);let f=1/0;for(const _ of a)for(const y of u){switch(_.type){case"Point":f=Math.min(f,Ks([_.coordinates],!1,y,h,f));break;case"LineString":f=Math.min(f,Ks(_.coordinates,!0,y,h,f));break;case"Polygon":f=Math.min(f,$u(y,_.coordinates,h,f))}if(f===0)return f}return f})(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}class es{constructor(e){this.type=Ke,this.key=e}static parse(e,i){if(e.length!==2)return i.error(`Expected 1 argument, but found ${e.length-1} instead.`);const a=e[1];return a==null?i.error("Global state property must be defined."):typeof a!="string"?i.error(`Global state property must be string, but found ${typeof e[1]} instead.`):new es(a)}evaluate(e){var i;const a=(i=e.globals)===null||i===void 0?void 0:i.globalState;return a&&Object.keys(a).length!==0?Ua(a,this.key):null}eachChild(){}outputDefined(){return!1}}const _a={"==":Qt,"!=":sc,">":oc,"<":Wo,">=":da,"<=":Bu,array:cr,at:Za,boolean:cr,case:rt,coalesce:Yt,collator:Ln,format:Gs,image:qs,in:tt,"index-of":Xe,interpolate:vi,"interpolate-hcl":vi,"interpolate-lab":vi,length:pa,let:kn,literal:Lr,match:$a,number:cr,"number-format":Ha,object:cr,slice:ha,step:Rn,string:cr,"to-boolean":Vi,"to-color":Vi,"to-number":Vi,"to-string":Vi,var:dt,within:Fn,distance:Bn,"global-state":es};class er{constructor(e,i,a,o){this.name=e,this.type=i,this._evaluate=a,this.args=o}evaluate(e){return this._evaluate(e,this.args)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}static parse(e,i){const a=e[0],o=er.definitions[a];if(!o)return i.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`,0);const u=Array.isArray(o)?o[0]:o.type,h=Array.isArray(o)?[[o[1],o[2]]]:o.overloads,f=h.filter((([y])=>!Array.isArray(y)||y.length===e.length-1));let _=null;for(const[y,v]of f){_=new qa(i.registry,Qs,i.path,null,i.scope);const b=[];let S=!1;for(let P=1;P{return S=b,Array.isArray(S)?`(${S.map(gt).join(", ")})`:`(${gt(S.type)}...)`;var S})).join(" | "),v=[];for(let b=1;b{i=e?i&&Qs(a):i&&a instanceof Lr})),!!i&&eo(r)&&to(r,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function eo(r){if(r instanceof er&&(r.name==="get"&&r.args.length===1||r.name==="feature-state"||r.name==="has"&&r.args.length===1||r.name==="properties"||r.name==="geometry-type"||r.name==="id"||/^filter-/.test(r.name))||r instanceof Fn||r instanceof Bn)return!1;let e=!0;return r.eachChild((i=>{e&&!eo(i)&&(e=!1)})),e}function ts(r){if(r instanceof er&&r.name==="feature-state")return!1;let e=!0;return r.eachChild((i=>{e&&!ts(i)&&(e=!1)})),e}function to(r,e){if(r instanceof er&&e.indexOf(r.name)>=0)return!1;let i=!0;return r.eachChild((a=>{i&&!to(a,e)&&(i=!1)})),i}function Tc(r){return{result:"success",value:r}}function ga(r){return{result:"error",value:r}}function ya(r){return r["property-type"]==="data-driven"||r["property-type"]==="cross-faded-data-driven"}function Sc(r){return!!r.expression&&r.expression.parameters.indexOf("zoom")>-1}function il(r){return!!r.expression&&r.expression.interpolated}function Qe(r){return r instanceof Number?"number":r instanceof String?"string":r instanceof Boolean?"boolean":Array.isArray(r)?"array":r===null?"null":typeof r}function io(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)&&Mt(r)===En}function Wu(r){return r}function Pc(r,e){const i=r.stops&&typeof r.stops[0][0]=="object",a=i||!(i||r.property!==void 0),o=r.type||(il(e)?"exponential":"interval"),u=(function(v){switch(v.type){case"color":return et.parse;case"padding":return pi.parse;case"numberArray":return fi.parse;case"colorArray":return yt.parse;default:return null}})(e);if(u&&((r=at({},r)).stops&&(r.stops=r.stops.map((v=>[v[0],u(v[1])]))),r.default=u(r.default?r.default:e.default)),r.colorSpace&&(h=r.colorSpace)!=="rgb"&&h!=="hcl"&&h!=="lab")throw new Error(`Unknown color space: "${r.colorSpace}"`);var h;const f=(function(v){switch(v){case"exponential":return Mc;case"interval":return Xu;case"categorical":return Hu;case"identity":return Yu;default:throw new Error(`Unknown function type "${v}"`)}})(o);let _,y;if(o==="categorical"){_=Object.create(null);for(const v of r.stops)_[v[0]]=v[1];y=typeof r.stops[0][0]}if(i){const v={},b=[];for(let E=0;EE[0])),evaluate:({zoom:E},A)=>Mc({stops:S,base:r.base},e,E).evaluate(E,A)}}if(a){const v=o==="exponential"?{name:"exponential",base:r.base!==void 0?r.base:1}:null;return{kind:"camera",interpolationType:v,interpolationFactor:vi.interpolationFactor.bind(void 0,v),zoomStops:r.stops.map((b=>b[0])),evaluate:({zoom:b})=>f(r,e,b,_,y)}}return{kind:"source",evaluate(v,b){const S=b&&b.properties?b.properties[r.property]:void 0;return S===void 0?is(r.default,e.default):f(r,e,S,_,y)}}}function is(r,e,i){return r!==void 0?r:e!==void 0?e:i!==void 0?i:void 0}function Hu(r,e,i,a,o){return is(typeof i===o?a[i]:void 0,r.default,e.default)}function Xu(r,e,i){if(Qe(i)!=="number")return is(r.default,e.default);const a=r.stops.length;if(a===1||i<=r.stops[0][0])return r.stops[0][1];if(i>=r.stops[a-1][0])return r.stops[a-1][1];const o=Qi(r.stops.map((u=>u[0])),i);return r.stops[o][1]}function Mc(r,e,i){const a=r.base!==void 0?r.base:1;if(Qe(i)!=="number")return is(r.default,e.default);const o=r.stops.length;if(o===1||i<=r.stops[0][0])return r.stops[0][1];if(i>=r.stops[o-1][0])return r.stops[o-1][1];const u=Qi(r.stops.map((v=>v[0])),i),h=(function(v,b,S,P){const E=P-S,A=v-S;return E===0?0:b===1?A/E:(Math.pow(b,A)-1)/(Math.pow(b,E)-1)})(i,a,r.stops[u][0],r.stops[u+1][0]),f=r.stops[u][1],_=r.stops[u+1][1],y=ai[e.type]||Wu;return typeof f.evaluate=="function"?{evaluate(...v){const b=f.evaluate.apply(void 0,v),S=_.evaluate.apply(void 0,v);if(b!==void 0&&S!==void 0)return y(b,S,h,r.colorSpace)}}:y(f,_,h,r.colorSpace)}function Yu(r,e,i){switch(e.type){case"color":i=et.parse(i);break;case"formatted":i=Bi.fromString(i.toString());break;case"resolvedImage":i=Oi.fromString(i.toString());break;case"padding":i=pi.parse(i);break;case"colorArray":i=yt.parse(i);break;case"numberArray":i=fi.parse(i);break;default:Qe(i)===e.type||e.type==="enum"&&e.values[i]||(i=void 0)}return is(i,r.default,e.default)}er.register(_a,{error:[{kind:"error"},[$e],(r,[e])=>{throw new je(e.evaluate(r))}],typeof:[$e,[Ke],(r,[e])=>gt(Mt(e.evaluate(r)))],"to-rgba":[Ci(Pe,4),[Ki],(r,[e])=>{const[i,a,o,u]=e.evaluate(r).rgb;return[255*i,255*a,255*o,u]}],rgb:[Ki,[Pe,Pe,Pe],bc],rgba:[Ki,[Pe,Pe,Pe,Pe],bc],has:{type:We,overloads:[[[$e],(r,[e])=>wc(e.evaluate(r),r.properties())],[[$e,En],(r,[e,i])=>wc(e.evaluate(r),i.evaluate(r))]]},get:{type:Ke,overloads:[[[$e],(r,[e])=>tl(e.evaluate(r),r.properties())],[[$e,En],(r,[e,i])=>tl(e.evaluate(r),i.evaluate(r))]]},"feature-state":[Ke,[$e],(r,[e])=>tl(e.evaluate(r),r.featureState||{})],properties:[En,[],r=>r.properties()],"geometry-type":[$e,[],r=>r.geometryType()],id:[Ke,[],r=>r.id()],zoom:[Pe,[],r=>r.globals.zoom],"heatmap-density":[Pe,[],r=>r.globals.heatmapDensity||0],elevation:[Pe,[],r=>r.globals.elevation||0],"line-progress":[Pe,[],r=>r.globals.lineProgress||0],accumulated:[Ke,[],r=>r.globals.accumulated===void 0?null:r.globals.accumulated],"+":[Pe,On(Pe),(r,e)=>{let i=0;for(const a of e)i+=a.evaluate(r);return i}],"*":[Pe,On(Pe),(r,e)=>{let i=1;for(const a of e)i*=a.evaluate(r);return i}],"-":{type:Pe,overloads:[[[Pe,Pe],(r,[e,i])=>e.evaluate(r)-i.evaluate(r)],[[Pe],(r,[e])=>-e.evaluate(r)]]},"/":[Pe,[Pe,Pe],(r,[e,i])=>e.evaluate(r)/i.evaluate(r)],"%":[Pe,[Pe,Pe],(r,[e,i])=>e.evaluate(r)%i.evaluate(r)],ln2:[Pe,[],()=>Math.LN2],pi:[Pe,[],()=>Math.PI],e:[Pe,[],()=>Math.E],"^":[Pe,[Pe,Pe],(r,[e,i])=>Math.pow(e.evaluate(r),i.evaluate(r))],sqrt:[Pe,[Pe],(r,[e])=>Math.sqrt(e.evaluate(r))],log10:[Pe,[Pe],(r,[e])=>Math.log(e.evaluate(r))/Math.LN10],ln:[Pe,[Pe],(r,[e])=>Math.log(e.evaluate(r))],log2:[Pe,[Pe],(r,[e])=>Math.log(e.evaluate(r))/Math.LN2],sin:[Pe,[Pe],(r,[e])=>Math.sin(e.evaluate(r))],cos:[Pe,[Pe],(r,[e])=>Math.cos(e.evaluate(r))],tan:[Pe,[Pe],(r,[e])=>Math.tan(e.evaluate(r))],asin:[Pe,[Pe],(r,[e])=>Math.asin(e.evaluate(r))],acos:[Pe,[Pe],(r,[e])=>Math.acos(e.evaluate(r))],atan:[Pe,[Pe],(r,[e])=>Math.atan(e.evaluate(r))],min:[Pe,On(Pe),(r,e)=>Math.min(...e.map((i=>i.evaluate(r))))],max:[Pe,On(Pe),(r,e)=>Math.max(...e.map((i=>i.evaluate(r))))],abs:[Pe,[Pe],(r,[e])=>Math.abs(e.evaluate(r))],round:[Pe,[Pe],(r,[e])=>{const i=e.evaluate(r);return i<0?-Math.round(-i):Math.round(i)}],floor:[Pe,[Pe],(r,[e])=>Math.floor(e.evaluate(r))],ceil:[Pe,[Pe],(r,[e])=>Math.ceil(e.evaluate(r))],"filter-==":[We,[$e,Ke],(r,[e,i])=>r.properties()[e.value]===i.value],"filter-id-==":[We,[Ke],(r,[e])=>r.id()===e.value],"filter-type-==":[We,[$e],(r,[e])=>r.geometryType()===e.value],"filter-<":[We,[$e,Ke],(r,[e,i])=>{const a=r.properties()[e.value],o=i.value;return typeof a==typeof o&&a{const i=r.id(),a=e.value;return typeof i==typeof a&&i":[We,[$e,Ke],(r,[e,i])=>{const a=r.properties()[e.value],o=i.value;return typeof a==typeof o&&a>o}],"filter-id->":[We,[Ke],(r,[e])=>{const i=r.id(),a=e.value;return typeof i==typeof a&&i>a}],"filter-<=":[We,[$e,Ke],(r,[e,i])=>{const a=r.properties()[e.value],o=i.value;return typeof a==typeof o&&a<=o}],"filter-id-<=":[We,[Ke],(r,[e])=>{const i=r.id(),a=e.value;return typeof i==typeof a&&i<=a}],"filter->=":[We,[$e,Ke],(r,[e,i])=>{const a=r.properties()[e.value],o=i.value;return typeof a==typeof o&&a>=o}],"filter-id->=":[We,[Ke],(r,[e])=>{const i=r.id(),a=e.value;return typeof i==typeof a&&i>=a}],"filter-has":[We,[Ke],(r,[e])=>e.value in r.properties()],"filter-has-id":[We,[],r=>r.id()!==null&&r.id()!==void 0],"filter-type-in":[We,[Ci($e)],(r,[e])=>e.value.indexOf(r.geometryType())>=0],"filter-id-in":[We,[Ci(Ke)],(r,[e])=>e.value.indexOf(r.id())>=0],"filter-in-small":[We,[$e,Ci(Ke)],(r,[e,i])=>i.value.indexOf(r.properties()[e.value])>=0],"filter-in-large":[We,[$e,Ci(Ke)],(r,[e,i])=>(function(a,o,u,h){for(;u<=h;){const f=u+h>>1;if(o[f]===a)return!0;o[f]>a?h=f-1:u=f+1}return!1})(r.properties()[e.value],i.value,0,i.value.length-1)],all:{type:We,overloads:[[[We,We],(r,[e,i])=>e.evaluate(r)&&i.evaluate(r)],[On(We),(r,e)=>{for(const i of e)if(!i.evaluate(r))return!1;return!0}]]},any:{type:We,overloads:[[[We,We],(r,[e,i])=>e.evaluate(r)||i.evaluate(r)],[On(We),(r,e)=>{for(const i of e)if(i.evaluate(r))return!0;return!1}]]},"!":[We,[We],(r,[e])=>!e.evaluate(r)],"is-supported-script":[We,[$e],(r,[e])=>{const i=r.globals&&r.globals.isSupportedScript;return!i||i(e.evaluate(r))}],upcase:[$e,[$e],(r,[e])=>e.evaluate(r).toUpperCase()],downcase:[$e,[$e],(r,[e])=>e.evaluate(r).toLowerCase()],concat:[$e,On(Ke),(r,e)=>e.map((i=>ua(i.evaluate(r)))).join("")],"resolved-locale":[$e,[na],(r,[e])=>e.evaluate(r).resolvedLocale()]});class rl{constructor(e,i,a){this.expression=e,this._warningHistory={},this._evaluator=new Zo,this._defaultValue=i?(function(o){if(o.type==="color"&&io(o.default))return new et(0,0,0,0);switch(o.type){case"color":return et.parse(o.default)||null;case"padding":return pi.parse(o.default)||null;case"numberArray":return fi.parse(o.default)||null;case"colorArray":return yt.parse(o.default)||null;case"variableAnchorOffsetCollection":return Gt.parse(o.default)||null;case"projectionDefinition":return Ai.parse(o.default)||null;default:return o.default===void 0?null:o.default}})(i):null,this._enumValues=i&&i.type==="enum"?i.values:null,this._globalState=a}evaluateWithoutErrorHandling(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=i,this._evaluator.featureState=a,this._evaluator.canonical=o,this._evaluator.availableImages=u||null,this._evaluator.formattedSection=h,this.expression.evaluate(this._evaluator)}evaluate(e,i,a,o,u,h){this._globalState&&(e=Or(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=i||null,this._evaluator.featureState=a||null,this._evaluator.canonical=o,this._evaluator.availableImages=u||null,this._evaluator.formattedSection=h||null;try{const f=this.expression.evaluate(this._evaluator);if(f==null||typeof f=="number"&&f!=f)return this._defaultValue;if(this._enumValues&&!(f in this._enumValues))throw new je(`Expected value to be one of ${Object.keys(this._enumValues).map((_=>JSON.stringify(_))).join(", ")}, but found ${JSON.stringify(f)} instead.`);return f}catch(f){return this._warningHistory[f.message]||(this._warningHistory[f.message]=!0,typeof console<"u"&&console.warn(f.message)),this._defaultValue}}}function ro(r){return Array.isArray(r)&&r.length>0&&typeof r[0]=="string"&&r[0]in _a}function Vn(r,e,i){const a=new qa(_a,Qs,[],e?(function(u){const h={color:Ki,string:$e,number:Pe,enum:$e,boolean:We,formatted:aa,padding:ks,numberArray:Oa,colorArray:Ba,projectionDefinition:ra,resolvedImage:sa,variableAnchorOffsetCollection:Va};return u.type==="array"?Ci(h[u.value]||Ke,u.length):h[u.type]})(e):void 0),o=a.parse(r,void 0,void 0,void 0,e&&e.type==="string"?{typeAnnotation:"coerce"}:void 0);return o?Tc(new rl(o,e,i)):ga(a.errors)}class no{constructor(e,i,a){this.kind=e,this._styleExpression=i,this.isStateDependent=e!=="constant"&&!ts(i.expression),this.globalStateRefs=ns(i.expression),this._globalState=a}evaluateWithoutErrorHandling(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,i,a,o,u,h)}evaluate(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._styleExpression.evaluate(e,i,a,o,u,h)}}class nl{constructor(e,i,a,o,u){this.kind=e,this.zoomStops=a,this._styleExpression=i,this.isStateDependent=e!=="camera"&&!ts(i.expression),this.globalStateRefs=ns(i.expression),this.interpolationType=o,this._globalState=u}evaluateWithoutErrorHandling(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,i,a,o,u,h)}evaluate(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._styleExpression.evaluate(e,i,a,o,u,h)}interpolationFactor(e,i,a){return this.interpolationType?vi.interpolationFactor(this.interpolationType,e,i,a):0}}function Ic(r,e,i){const a=Vn(r,e,i);if(a.result==="error")return a;const o=a.value.expression,u=eo(o);if(!u&&!ya(e))return ga([new bt("","data expressions not supported")]);const h=to(o,["zoom"]);if(!h&&!Sc(e))return ga([new bt("","zoom expressions not supported")]);const f=ao(o);return f||h?f instanceof bt?ga([f]):f instanceof vi&&!il(e)?ga([new bt("",'"interpolate" expressions cannot be used with this property')]):Tc(f?new nl(u?"camera":"composite",a.value,f.labels,f instanceof vi?f.interpolation:void 0,i):new no(u?"constant":"source",a.value,i)):ga([new bt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class rs{constructor(e,i){this._parameters=e,this._specification=i,at(this,Pc(this._parameters,this._specification))}static deserialize(e){return new rs(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function ao(r){let e=null;if(r instanceof kn)e=ao(r.result);else if(r instanceof Yt){for(const i of r.args)if(e=ao(i),e)break}else(r instanceof Rn||r instanceof vi)&&r.input instanceof er&&r.input.name==="zoom"&&(e=r);return e instanceof bt||r.eachChild((i=>{const a=ao(i);a instanceof bt?e=a:!e&&a?e=new bt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&a&&e!==a&&(e=new bt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))})),e}function ns(r,e=new Set){return r instanceof es&&e.add(r.key),r.eachChild((i=>{ns(i,e)})),e}function Or(r,e){const{zoom:i,heatmapDensity:a,elevation:o,lineProgress:u,isSupportedScript:h,accumulated:f}=r??{};return{zoom:i,heatmapDensity:a,elevation:o,lineProgress:u,isSupportedScript:h,accumulated:f,globalState:e}}function so(r){if(r===!0||r===!1)return!0;if(!Array.isArray(r)||r.length===0)return!1;switch(r[0]){case"has":return r.length>=2&&r[1]!=="$id"&&r[1]!=="$type";case"in":return r.length>=3&&(typeof r[1]!="string"||Array.isArray(r[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return r.length!==3||Array.isArray(r[1])||Array.isArray(r[2]);case"any":case"all":for(const e of r.slice(1))if(!so(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}const Ku={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function as(r,e){if(r==null)return{filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};so(r)||(r=oo(r));const i=Vn(r,Ku,e);if(i.result==="error")throw new Error(i.value.map((a=>`${a.key}: ${a.message}`)).join(", "));return{filter:(a,o,u)=>i.value.evaluate(a,o,{},u),needGeometry:Ec(r),getGlobalStateRefs:()=>ns(i.value.expression)}}function Ju(r,e){return re?1:0}function Ec(r){if(!Array.isArray(r))return!1;if(r[0]==="within"||r[0]==="distance")return!0;for(let e=1;e"||e==="<="||e===">="?lo(r[1],r[2],e):e==="any"?(i=r.slice(1),["any"].concat(i.map(oo))):e==="all"?["all"].concat(r.slice(1).map(oo)):e==="none"?["all"].concat(r.slice(1).map(oo).map(co)):e==="in"?al(r[1],r.slice(2)):e==="!in"?co(al(r[1],r.slice(2))):e==="has"?Cc(r[1]):e!=="!has"||co(Cc(r[1]));var i}function lo(r,e,i){switch(r){case"$type":return[`filter-type-${i}`,e];case"$id":return[`filter-id-${i}`,e];default:return[`filter-${i}`,r,e]}}function al(r,e){if(e.length===0)return!1;switch(r){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((i=>typeof i!=typeof e[0]))?["filter-in-large",r,["literal",e.sort(Ju)]]:["filter-in-small",r,["literal",e]]}}function Cc(r){switch(r){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",r]}}function co(r){return["!",r]}function uo(r){const e=typeof r;if(e==="number"||e==="boolean"||e==="string"||r==null)return JSON.stringify(r);if(Array.isArray(r)){let o="[";for(const u of r)o+=`${uo(u)},`;return`${o}]`}const i=Object.keys(r).sort();let a="{";for(let o=0;oa.maximum?[new Se(e,i,`${i} is greater than the maximum value ${a.maximum}`)]:[]}function ll(r){const e=r.valueSpec,i=Bt(r.value.type);let a,o,u,h={};const f=i!=="categorical"&&r.value.property===void 0,_=!f,y=Qe(r.value.stops)==="array"&&Qe(r.value.stops[0])==="array"&&Qe(r.value.stops[0][0])==="object",v=Ni({key:r.key,value:r.value,valueSpec:r.styleSpec.function,validateSpec:r.validateSpec,style:r.style,styleSpec:r.styleSpec,objectElementValidators:{stops:function(P){if(i==="identity")return[new Se(P.key,P.value,'identity function may not have a "stops" property')];let E=[];const A=P.value;return E=E.concat(ol({key:P.key,value:A,valueSpec:P.valueSpec,validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec,arrayElementValidator:b})),Qe(A)==="array"&&A.length===0&&E.push(new Se(P.key,A,"array must have at least one stop")),E},default:function(P){return P.validateSpec({key:P.key,value:P.value,valueSpec:e,validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec})}}});return i==="identity"&&f&&v.push(new Se(r.key,r.value,'missing required property "property"')),i==="identity"||r.value.stops||v.push(new Se(r.key,r.value,'missing required property "stops"')),i==="exponential"&&r.valueSpec.expression&&!il(r.valueSpec)&&v.push(new Se(r.key,r.value,"exponential functions not supported")),r.styleSpec.$version>=8&&(_&&!ya(r.valueSpec)?v.push(new Se(r.key,r.value,"property functions not supported")):f&&!Sc(r.valueSpec)&&v.push(new Se(r.key,r.value,"zoom functions not supported"))),i!=="categorical"&&!y||r.value.property!==void 0||v.push(new Se(r.key,r.value,'"property" property is required')),v;function b(P){let E=[];const A=P.value,R=P.key;if(Qe(A)!=="array")return[new Se(R,A,`array expected, ${Qe(A)} found`)];if(A.length!==2)return[new Se(R,A,`array length 2 expected, length ${A.length} found`)];if(y){if(Qe(A[0])!=="object")return[new Se(R,A,`object expected, ${Qe(A[0])} found`)];if(A[0].zoom===void 0)return[new Se(R,A,"object stop key must have zoom")];if(A[0].value===void 0)return[new Se(R,A,"object stop key must have value")];if(u&&u>Bt(A[0].zoom))return[new Se(R,A[0].zoom,"stop zoom values must appear in ascending order")];Bt(A[0].zoom)!==u&&(u=Bt(A[0].zoom),o=void 0,h={}),E=E.concat(Ni({key:`${R}[0]`,value:A[0],valueSpec:{zoom:{}},validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec,objectElementValidators:{zoom:ss,value:S}}))}else E=E.concat(S({key:`${R}[0]`,value:A[0],validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec},A));return ro(jn(A[1]))?E.concat([new Se(`${R}[1]`,A[1],"expressions are not allowed in function stops.")]):E.concat(P.validateSpec({key:`${R}[1]`,value:A[1],valueSpec:e,validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec}))}function S(P,E){const A=Qe(P.value),R=Bt(P.value),O=P.value!==null?P.value:E;if(a){if(A!==a)return[new Se(P.key,O,`${A} stop domain type must match previous stop domain type ${a}`)]}else a=A;if(A!=="number"&&A!=="string"&&A!=="boolean")return[new Se(P.key,O,"stop domain value must be a number, string, or boolean")];if(A!=="number"&&i!=="categorical"){let G=`number expected, ${A} found`;return ya(e)&&i===void 0&&(G+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Se(P.key,O,G)]}return i!=="categorical"||A!=="number"||isFinite(R)&&Math.floor(R)===R?i!=="categorical"&&A==="number"&&o!==void 0&&Rnew Se(`${r.key}${a.key}`,r.value,a.message)));const i=e.value.expression||e.value._styleExpression.expression;if(r.expressionContext==="property"&&r.propertyKey==="text-font"&&!i.outputDefined())return[new Se(r.key,r.value,`Invalid data expression for "${r.propertyKey}". Output values must be contained as literals within the expression.`)];if(r.expressionContext==="property"&&r.propertyType==="layout"&&!ts(i))return[new Se(r.key,r.value,'"feature-state" data expressions are not supported with layout properties.')];if(r.expressionContext==="filter"&&!ts(i))return[new Se(r.key,r.value,'"feature-state" data expressions are not supported with filters.')];if(r.expressionContext&&r.expressionContext.indexOf("cluster")===0){if(!to(i,["zoom","feature-state"]))return[new Se(r.key,r.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(r.expressionContext==="cluster-initial"&&!eo(i))return[new Se(r.key,r.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function os(r){const e=r.key,i=r.value,a=Qe(i);return a!=="string"?[new Se(e,i,`color expected, ${a} found`)]:et.parse(String(i))?[]:[new Se(e,i,`color expected, "${i}" found`)]}function Nn(r){const e=r.key,i=r.value,a=r.valueSpec,o=[];return Array.isArray(a.values)?a.values.indexOf(Bt(i))===-1&&o.push(new Se(e,i,`expected one of [${a.values.join(", ")}], ${JSON.stringify(i)} found`)):Object.keys(a.values).indexOf(Bt(i))===-1&&o.push(new Se(e,i,`expected one of [${Object.keys(a.values).join(", ")}], ${JSON.stringify(i)} found`)),o}function ls(r){return so(jn(r.value))?dn(at({},r,{expressionContext:"filter",valueSpec:{value:"boolean"}})):cs(r)}function cs(r){const e=r.value,i=r.key;if(Qe(e)!=="array")return[new Se(i,e,`array expected, ${Qe(e)} found`)];const a=r.styleSpec;let o,u=[];if(e.length<1)return[new Se(i,e,"filter array must have at least 1 element")];switch(u=u.concat(Nn({key:`${i}[0]`,value:e[0],valueSpec:a.filter_operator,style:r.style,styleSpec:r.styleSpec})),Bt(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Bt(e[1])==="$type"&&u.push(new Se(i,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&u.push(new Se(i,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(o=Qe(e[1]),o!=="string"&&u.push(new Se(`${i}[1]`,e[1],`string expected, ${o} found`)));for(let h=2;h{y in i&&e.push(new Se(a,i[y],`"${y}" is prohibited for ref layers`))})),o.layers.forEach((y=>{Bt(y.id)===f&&(_=y)})),_?_.ref?e.push(new Se(a,i.ref,"ref cannot reference another ref layer")):h=Bt(_.type):e.push(new Se(a,i.ref,`ref layer "${f}" not found`))}else if(h!=="background")if(i.source){const _=o.sources&&o.sources[i.source],y=_&&Bt(_.type);_?y==="vector"&&h==="raster"?e.push(new Se(a,i.source,`layer "${i.id}" requires a raster source`)):y!=="raster-dem"&&h==="hillshade"||y!=="raster-dem"&&h==="color-relief"?e.push(new Se(a,i.source,`layer "${i.id}" requires a raster-dem source`)):y==="raster"&&h!=="raster"?e.push(new Se(a,i.source,`layer "${i.id}" requires a vector source`)):y!=="vector"||i["source-layer"]?y==="raster-dem"&&h!=="hillshade"&&h!=="color-relief"?e.push(new Se(a,i.source,"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")):h!=="line"||!i.paint||!i.paint["line-gradient"]||y==="geojson"&&_.lineMetrics||e.push(new Se(a,i,`layer "${i.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new Se(a,i,`layer "${i.id}" must specify a "source-layer"`)):e.push(new Se(a,i.source,`source "${i.source}" not found`))}else e.push(new Se(a,i,'missing required property "source"'));return e=e.concat(Ni({key:a,value:i,valueSpec:u.layer,style:r.style,styleSpec:r.styleSpec,validateSpec:r.validateSpec,objectElementValidators:{"*":()=>[],type:()=>r.validateSpec({key:`${a}.type`,value:i.type,valueSpec:u.layer.type,style:r.style,styleSpec:r.styleSpec,validateSpec:r.validateSpec,object:i,objectKey:"type"}),filter:ls,layout:_=>Ni({layer:i,key:_.key,value:_.value,style:_.style,styleSpec:_.styleSpec,validateSpec:_.validateSpec,objectElementValidators:{"*":y=>kc(at({layerType:h},y))}}),paint:_=>Ni({layer:i,key:_.key,value:_.value,style:_.style,styleSpec:_.styleSpec,validateSpec:_.validateSpec,objectElementValidators:{"*":y=>Dc(at({layerType:h},y))}})}})),e}function pn(r){const e=r.value,i=r.key,a=Qe(e);return a!=="string"?[new Se(i,e,`string expected, ${a} found`)]:[]}const Lc={promoteId:function({key:r,value:e}){if(Qe(e)==="string")return pn({key:r,value:e});{const i=[];for(const a in e)i.push(...pn({key:`${r}.${a}`,value:e[a]}));return i}}};function cl(r){const e=r.value,i=r.key,a=r.styleSpec,o=r.style,u=r.validateSpec;if(!e.type)return[new Se(i,e,'"type" is required')];const h=Bt(e.type);let f;switch(h){case"vector":case"raster":return f=Ni({key:i,value:e,valueSpec:a[`source_${h.replace("-","_")}`],style:r.style,styleSpec:a,objectElementValidators:Lc,validateSpec:u}),f;case"raster-dem":return f=(function(_){var y;const v=(y=_.sourceName)!==null&&y!==void 0?y:"",b=_.value,S=_.styleSpec,P=S.source_raster_dem,E=_.style;let A=[];const R=Qe(b);if(b===void 0)return A;if(R!=="object")return A.push(new Se("source_raster_dem",b,`object expected, ${R} found`)),A;const O=Bt(b.encoding)==="custom",G=["redFactor","greenFactor","blueFactor","baseShift"],B=_.value.encoding?`"${_.value.encoding}"`:"Default";for(const V in b)!O&&G.includes(V)?A.push(new Se(V,b[V],`In "${v}": "${V}" is only valid when "encoding" is set to "custom". ${B} encoding found`)):P[V]?A=A.concat(_.validateSpec({key:V,value:b[V],valueSpec:P[V],validateSpec:_.validateSpec,style:E,styleSpec:S})):A.push(new Se(V,b[V],`unknown property "${V}"`));return A})({sourceName:i,value:e,style:r.style,styleSpec:a,validateSpec:u}),f;case"geojson":if(f=Ni({key:i,value:e,valueSpec:a.source_geojson,style:o,styleSpec:a,validateSpec:u,objectElementValidators:Lc}),e.cluster)for(const _ in e.clusterProperties){const[y,v]=e.clusterProperties[_],b=typeof y=="string"?[y,["accumulated"],["get",_]]:y;f.push(...dn({key:`${i}.${_}.map`,value:v,expressionContext:"cluster-map"})),f.push(...dn({key:`${i}.${_}.reduce`,value:b,expressionContext:"cluster-reduce"}))}return f;case"video":return Ni({key:i,value:e,valueSpec:a.source_video,style:o,validateSpec:u,styleSpec:a});case"image":return Ni({key:i,value:e,valueSpec:a.source_image,style:o,validateSpec:u,styleSpec:a});case"canvas":return[new Se(i,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Nn({key:`${i}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]}})}}function ul(r){const e=r.value,i=r.styleSpec,a=i.light,o=r.style;let u=[];const h=Qe(e);if(e===void 0)return u;if(h!=="object")return u=u.concat([new Se("light",e,`object expected, ${h} found`)]),u;for(const f in e){const _=f.match(/^(.*)-transition$/);u=u.concat(_&&a[_[1]]&&a[_[1]].transition?r.validateSpec({key:f,value:e[f],valueSpec:i.transition,validateSpec:r.validateSpec,style:o,styleSpec:i}):a[f]?r.validateSpec({key:f,value:e[f],valueSpec:a[f],validateSpec:r.validateSpec,style:o,styleSpec:i}):[new Se(f,e[f],`unknown property "${f}"`)])}return u}function us(r){const e=r.value,i=r.styleSpec,a=i.sky,o=r.style,u=Qe(e);if(e===void 0)return[];if(u!=="object")return[new Se("sky",e,`object expected, ${u} found`)];let h=[];for(const f in e)h=h.concat(a[f]?r.validateSpec({key:f,value:e[f],valueSpec:a[f],style:o,styleSpec:i}):[new Se(f,e[f],`unknown property "${f}"`)]);return h}function Fc(r){const e=r.value,i=r.styleSpec,a=i.terrain,o=r.style;let u=[];const h=Qe(e);if(e===void 0)return u;if(h!=="object")return u=u.concat([new Se("terrain",e,`object expected, ${h} found`)]),u;for(const f in e)u=u.concat(a[f]?r.validateSpec({key:f,value:e[f],valueSpec:a[f],validateSpec:r.validateSpec,style:o,styleSpec:i}):[new Se(f,e[f],`unknown property "${f}"`)]);return u}function hl(r){let e=[];const i=r.value,a=r.key;if(Array.isArray(i)){const o=[],u=[];for(const h in i)i[h].id&&o.includes(i[h].id)&&e.push(new Se(a,i,`all the sprites' ids must be unique, but ${i[h].id} is duplicated`)),o.push(i[h].id),i[h].url&&u.includes(i[h].url)&&e.push(new Se(a,i,`all the sprites' URLs must be unique, but ${i[h].url} is duplicated`)),u.push(i[h].url),e=e.concat(Ni({key:`${a}[${h}]`,value:i[h],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:r.validateSpec}));return e}return pn({key:a,value:i})}function dl(r){return!!r&&r.constructor===Object}function Bc(r){return dl(r.value)?[]:[new Se(r.key,r.value,`object expected, ${Qe(r.value)} found`)]}const pl={"*":()=>[],array:ol,boolean:function(r){const e=r.value,i=r.key,a=Qe(e);return a!=="boolean"?[new Se(i,e,`boolean expected, ${a} found`)]:[]},number:ss,color:os,constants:sl,enum:Nn,filter:ls,function:ll,layer:Rc,object:Ni,source:cl,light:ul,sky:us,terrain:Fc,projection:function(r){const e=r.value,i=r.styleSpec,a=i.projection,o=r.style,u=Qe(e);if(e===void 0)return[];if(u!=="object")return[new Se("projection",e,`object expected, ${u} found`)];let h=[];for(const f in e)h=h.concat(a[f]?r.validateSpec({key:f,value:e[f],valueSpec:a[f],style:o,styleSpec:i}):[new Se(f,e[f],`unknown property "${f}"`)]);return h},projectionDefinition:function(r){const e=r.key;let i=r.value;i=i instanceof String?i.valueOf():i;const a=Qe(i);return a!=="array"||(function(o){return Array.isArray(o)&&o.length===3&&typeof o[0]=="string"&&typeof o[1]=="string"&&typeof o[2]=="number"})(i)||(function(o){return!!["interpolate","step","literal"].includes(o[0])})(i)?["array","string"].includes(a)?[]:[new Se(e,i,`projection expected, invalid type "${a}" found`)]:[new Se(e,i,`projection expected, invalid array ${JSON.stringify(i)} found`)]},string:pn,formatted:function(r){return pn(r).length===0?[]:dn(r)},resolvedImage:function(r){return pn(r).length===0?[]:dn(r)},padding:function(r){const e=r.key,i=r.value;if(Qe(i)==="array"){if(i.length<1||i.length>4)return[new Se(e,i,`padding requires 1 to 4 values; ${i.length} values found`)];const a={type:"number"};let o=[];for(let u=0;u[]}})),r.constants&&(i=i.concat(sl({key:"constants",value:r.constants}))),Oc(i)}function hr(r){return function(e){return r(Object.assign({},e,{validateSpec:hs}))}}function Oc(r){return[].concat(r).sort(((e,i)=>e.line-i.line))}function dr(r){return function(...e){return Oc(r.apply(this,e))}}tr.source=dr(hr(cl)),tr.sprite=dr(hr(hl)),tr.glyphs=dr(hr(xa)),tr.light=dr(hr(ul)),tr.sky=dr(hr(us)),tr.terrain=dr(hr(Fc)),tr.state=dr(hr(Bc)),tr.layer=dr(hr(Rc)),tr.filter=dr(hr(ls)),tr.paintProperty=dr(hr(Dc)),tr.layoutProperty=dr(hr(kc));const Qu={type:"enum","property-type":"data-constant",expression:{interpolated:!1,parameters:["global-state"]},values:{visible:{},none:{}},transition:!1,default:"visible"};class eh{constructor(e,i){this._globalState=i,this.setValue(e)}evaluate(){var e;return(e=this._literalValue)!==null&&e!==void 0?e:this._compiledValue.evaluate({})}setValue(e){if(e==null||e==="visible"||e==="none")return this._literalValue=e==="none"?"none":"visible",this._compiledValue=void 0,void(this._globalStateRefs=new Set);const i=Vn(e,Qu,this._globalState);if(i.result==="error")throw this._literalValue="visible",this._compiledValue=void 0,new Error(i.value.map((a=>`${a.key}: ${a.message}`)).join(", "));this._literalValue=void 0,this._compiledValue=i.value,this._globalStateRefs=ns(i.value.expression)}getGlobalStateRefs(){return this._globalStateRefs}}const ds=K,wr=tr,Ui=wr.light,ps=wr.sky,Vc=wr.paintProperty,th=wr.layoutProperty;function jc(r,e){let i=!1;if(e&&e.length)for(const a of e)r.fire(new be(new Error(a.message))),i=!0;return i}class Vr{constructor(e,i,a){const o=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;const h=new Int32Array(this.arrayBuffer);e=h[0],this.d=(i=h[1])+2*(a=h[2]);for(let _=0;_=b[E+0]&&o>=b[E+1])?(f[P]=!0,h.push(v[P])):f[P]=!1}}}}_forEachCell(e,i,a,o,u,h,f,_){const y=this._convertToCellCoord(e),v=this._convertToCellCoord(i),b=this._convertToCellCoord(a),S=this._convertToCellCoord(o);for(let P=y;P<=b;P++)for(let E=v;E<=S;E++){const A=this.d*E+P;if((!_||_(this._convertFromCellCoord(P),this._convertFromCellCoord(E),this._convertFromCellCoord(P+1),this._convertFromCellCoord(E+1)))&&u.call(this,e,i,a,o,A,h,f,_))return}}_convertFromCellCoord(e){return(e-this.padding)/this.scale}_convertToCellCoord(e){return Math.max(0,Math.min(this.d-1,Math.floor(e*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const e=this.cells,i=3+this.cells.length+1+1;let a=0;for(let h=0;h=0)continue;const h=r[u];o[u]=Tr[i].shallow.indexOf(u)>=0?h:jr(h,e)}r instanceof Error&&(o.message=r.message)}if(o.$name)throw new Error("$name property is reserved for worker serialization logic.");return i!=="Object"&&(o.$name=i),o}function ms(r){if(Uc(r))return r;if(Array.isArray(r))return r.map(ms);if(typeof r!="object")throw new Error("can't deserialize object of type "+typeof r);const e=fs(r)||"Object";if(!Tr[e])throw new Error(`can't deserialize unregistered class ${e}`);const{klass:i}=Tr[e];if(!i)throw new Error(`can't deserialize unregistered class ${e}`);if(i.deserialize)return i.deserialize(r);const a=Object.create(i.prototype);for(const o of Object.keys(r)){if(o==="$name")continue;const u=r[o];a[o]=Tr[e].shallow.indexOf(o)>=0?u:ms(u)}return a}class fl{constructor(){this.first=!0}update(e,i){const a=Math.floor(e);return this.first?(this.first=!1,this.lastIntegerZoom=a,this.lastIntegerZoomTime=0,this.lastZoom=e,this.lastFloorZoom=a,!0):(this.lastFloorZoom>a?(this.lastIntegerZoom=a+1,this.lastIntegerZoomTime=i):this.lastFloorZoom{try{return new RegExp(`\\p{sc=${i}}`,"u").source}catch{return null}})).filter((i=>i));return new RegExp(e.join("|"),"u")}const _l=qc(["Arab","Dupl","Mong","Ougr","Syrc"]);function po(r){return!_l.test(String.fromCodePoint(r))}function gl(r){return!(Un(r)||(e=r,/[\xA7\xA9\xAE\xB1\xBC-\xBE\xD7\xF7\u2016\u2020\u2021\u2030\u2031\u203B\u203C\u2042\u2047-\u2049\u2051\u2100-\u218F\u221E\u2234\u2235\u2300-\u2307\u230C-\u231F\u2324-\u2328\u232B\u237D-\u239A\u23BE-\u23CD\u23CF\u23D1-\u23DB\u23E2-\u2422\u2424-\u24FF\u25A0-\u2619\u2620-\u2767\u2776-\u2793\u2B12-\u2B2F\u2B50-\u2B59\u2BB8-\u2BEB\u3000-\u303F\u30A0-\u30FF\uE000-\uF8FF\uFE30-\uFE6F\uFF00-\uFFEF\uFFFC\uFFFD]|[\uDB80-\uDBFF][\uDC00-\uDFFF]/gim.test(String.fromCodePoint(e))));var e}const Zc=qc(["Adlm","Arab","Armi","Avst","Chrs","Cprt","Egyp","Elym","Gara","Hatr","Hebr","Hung","Khar","Lydi","Mand","Mani","Mend","Merc","Mero","Narb","Nbat","Nkoo","Orkh","Palm","Phli","Phlp","Phnx","Prti","Rohg","Samr","Sarb","Sogo","Syrc","Thaa","Todr","Yezi"]);function yl(r){return Zc.test(String.fromCodePoint(r))}function $c(r,e){return!(!e&&yl(r)||/[\u0900-\u0DFF\u0F00-\u109F\u1780-\u17FF]/gim.test(String.fromCodePoint(r)))}function xl(r){for(const e of r)if(yl(e.codePointAt(0)))return!0;return!1}const Nr=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null,this.loadScriptResolve=()=>{}}setState(r){this.pluginStatus=r.pluginStatus,this.pluginURL=r.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(r){if(Nr.isParsed())throw new Error("RTL text plugin already registered.");this.applyArabicShaping=r.applyArabicShaping,this.processBidirectionalText=r.processBidirectionalText,this.processStyledBidirectionalText=r.processStyledBidirectionalText,this.loadScriptResolve()}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}syncState(r,e){return c(this,void 0,void 0,(function*(){if(this.isParsed())return this.getState();if(r.pluginStatus!=="loading")return this.setState(r),r;const i=r.pluginURL,a=new Promise((u=>{this.loadScriptResolve=u}));e(i);const o=new Promise((u=>setTimeout((()=>u()),this.TIMEOUT)));if(yield Promise.race([a,o]),this.isParsed()){const u={pluginStatus:"loaded",pluginURL:i};return this.setState(u),u}throw this.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${i}`)}))}};class pt{constructor(e,i){this.isSupportedScript=Wc,this.zoom=e,i?(this.now=i.now||0,this.fadeDuration=i.fadeDuration||0,this.zoomHistory=i.zoomHistory||new fl,this.transition=i.transition||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new fl,this.transition={})}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const e=this.zoom,i=e-Math.floor(e),a=this.crossFadingFactor();return e>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:i+(1-i)*a}:{fromScale:.5,toScale:1,t:1-(1-a)*i}}}function Wc(r){return(function(e,i){for(const a of e)if(!$c(a.codePointAt(0),i))return!1;return!0})(r,Nr.getRTLTextPluginStatus()==="loaded")}const fo="-transition";class _s{constructor(e,i,a){this.property=e,this.value=i,this.expression=(function(o,u,h){if(io(o))return new rs(o,u);if(ro(o)){const f=Ic(o,u,h);if(f.result==="error")throw new Error(f.value.map((_=>`${_.key}: ${_.message}`)).join(", "));return f.value}{let f=o;return u.type==="color"&&typeof o=="string"?f=et.parse(o):u.type!=="padding"||typeof o!="number"&&!Array.isArray(o)?u.type!=="numberArray"||typeof o!="number"&&!Array.isArray(o)?u.type!=="colorArray"||typeof o!="string"&&!Array.isArray(o)?u.type==="variableAnchorOffsetCollection"&&Array.isArray(o)?f=Gt.parse(o):u.type==="projectionDefinition"&&typeof o=="string"&&(f=Ai.parse(o)):f=yt.parse(o):f=fi.parse(o):f=pi.parse(o),{globalStateRefs:new Set,_globalState:null,kind:"constant",evaluate:()=>f}}})(i===void 0?e.specification.default:i,e.specification,a)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}getGlobalStateRefs(){return this.expression.globalStateRefs||new Set}possiblyEvaluate(e,i,a){return this.property.possiblyEvaluate(this,e,i,a)}}class vl{constructor(e,i){this.property=e,this.value=new _s(e,void 0,i)}transitioned(e,i){return new wl(this.property,this.value,i,Ei({},e.transition,this.transition),e.now)}untransitioned(){return new wl(this.property,this.value,null,{},0)}}class bl{constructor(e,i){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues),this._globalState=i}getValue(e){return hi(this._values[e].value.value)}setValue(e,i){Object.prototype.hasOwnProperty.call(this._values,e)||(this._values[e]=new vl(this._values[e].property,this._globalState)),this._values[e].value=new _s(this._values[e].property,i===null?void 0:hi(i),this._globalState)}getTransition(e){return hi(this._values[e].transition)}setTransition(e,i){Object.prototype.hasOwnProperty.call(this._values,e)||(this._values[e]=new vl(this._values[e].property,this._globalState)),this._values[e].transition=hi(i)||void 0}serialize(){const e={};for(const i of Object.keys(this._values)){const a=this.getValue(i);a!==void 0&&(e[i]=a);const o=this.getTransition(i);o!==void 0&&(e[`${i}${fo}`]=o)}return e}transitioned(e,i){const a=new Hc(this._properties);for(const o of Object.keys(this._values))a._values[o]=this._values[o].transitioned(e,i._values[o]);return a}untransitioned(){const e=new Hc(this._properties);for(const i of Object.keys(this._values))e._values[i]=this._values[i].untransitioned();return e}}class wl{constructor(e,i,a,o,u){this.property=e,this.value=i,this.begin=u+o.delay||0,this.end=this.begin+o.duration||0,e.specification.transition&&(o.delay||o.duration)&&(this.prior=a)}possiblyEvaluate(e,i,a){const o=e.now||0,u=this.value.possiblyEvaluate(e,i,a),h=this.prior;if(h){if(o>this.end)return this.prior=null,u;if(this.value.isDataDriven())return this.prior=null,u;if(oo.zoomHistory.lastIntegerZoom?{from:e,to:i}:{from:a,to:i}}interpolate(e){return e}}class Xc{constructor(e){this.specification=e}possiblyEvaluate(e,i,a,o){if(e.value!==void 0){if(e.expression.kind==="constant"){const u=e.expression.evaluate(i,null,{},a,o);return this._calculate(u,u,u,i)}return this._calculate(e.expression.evaluate(new pt(Math.floor(i.zoom-1),i)),e.expression.evaluate(new pt(Math.floor(i.zoom),i)),e.expression.evaluate(new pt(Math.floor(i.zoom+1),i)),i)}}_calculate(e,i,a,o){return o.zoom>o.zoomHistory.lastIntegerZoom?{from:e,to:i}:{from:a,to:i}}interpolate(e){return e}}class va{constructor(e){this.specification=e}possiblyEvaluate(e,i,a,o){return!!e.expression.evaluate(i,null,{},a,o)}interpolate(){return!1}}class bi{constructor(e){this.properties=e,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const i in e){const a=e[i];a.specification.overridable&&this.overridableProperties.push(i);const o=this.defaultPropertyValues[i]=new _s(a,void 0,void 0),u=this.defaultTransitionablePropertyValues[i]=new vl(a,void 0);this.defaultTransitioningPropertyValues[i]=u.untransitioned(),this.defaultPossiblyEvaluatedValues[i]=o.possiblyEvaluate({})}}}De("DataDrivenProperty",Ue),De("DataConstantProperty",Be),De("CrossFadedDataDrivenProperty",fn),De("CrossFadedProperty",Xc),De("ColorRampProperty",va);class fr extends me{constructor(e,i,a){if(super(),this.id=e.id,this.type=e.type,this._globalState=a,this._featureFilter={filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set},this._visibilityExpression=(function(o,u){return new eh(o,u)})(this.visibility,a),e.type!=="custom"&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,e.type!=="background"&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter,this._featureFilter=as(e.filter,a)),i.layout&&(this._unevaluatedLayout=new rh(i.layout,a)),i.paint)){this._transitionablePaint=new bl(i.paint,a);for(const o in e.paint)this.setPaintProperty(o,e.paint[o],{validate:!1});for(const o in e.layout)this.setLayoutProperty(o,e.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new gs(i.paint)}}setFilter(e){this.filter=e,this._featureFilter=as(e,this._globalState)}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(e){return e==="visibility"?this.visibility:this._unevaluatedLayout.getValue(e)}getLayoutAffectingGlobalStateRefs(){const e=new Set;for(const i of this._visibilityExpression.getGlobalStateRefs())e.add(i);if(this._unevaluatedLayout)for(const i in this._unevaluatedLayout._values){const a=this._unevaluatedLayout._values[i];for(const o of a.getGlobalStateRefs())e.add(o)}for(const i of this._featureFilter.getGlobalStateRefs())e.add(i);return e}getPaintAffectingGlobalStateRefs(){var e;const i=new globalThis.Map;if(this._transitionablePaint)for(const a in this._transitionablePaint._values){const o=this._transitionablePaint._values[a].value;for(const u of o.getGlobalStateRefs()){const h=(e=i.get(u))!==null&&e!==void 0?e:[];h.push({name:a,value:o.value}),i.set(u,h)}}return i}getVisibilityAffectingGlobalStateRefs(){return this._visibilityExpression.getGlobalStateRefs()}setLayoutProperty(e,i,a={}){if(i==null||!this._validate(th,`layers.${this.id}.layout.${e}`,e,i,a))return e==="visibility"?(this.visibility=i,this._visibilityExpression.setValue(i),void this.recalculateVisibility()):void this._unevaluatedLayout.setValue(e,i)}getPaintProperty(e){return e.endsWith(fo)?this._transitionablePaint.getTransition(e.slice(0,-11)):this._transitionablePaint.getValue(e)}setPaintProperty(e,i,a={}){if(i!=null&&this._validate(Vc,`layers.${this.id}.paint.${e}`,e,i,a))return!1;if(e.endsWith(fo))return this._transitionablePaint.setTransition(e.slice(0,-11),i||void 0),!1;{const o=this._transitionablePaint._values[e],u=o.property.specification["property-type"]==="cross-faded-data-driven",h=o.value.isDataDriven(),f=o.value;this._transitionablePaint.setValue(e,i),this._handleSpecialPaintPropertyUpdate(e);const _=this._transitionablePaint._values[e].value;return _.isDataDriven()||h||u||this._handleOverridablePaintPropertyUpdate(e,f,_)}}_handleSpecialPaintPropertyUpdate(e){}_handleOverridablePaintPropertyUpdate(e,i,a){return!1}isHidden(e=this.minzoom,i=!1){return!!(this.minzoom&&e<(i?Math.floor(this.minzoom):this.minzoom))||!!(this.maxzoom&&e>=this.maxzoom)||this._evaluatedVisibility==="none"}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculateVisibility(){this._evaluatedVisibility=this._visibilityExpression.evaluate()}recalculate(e,i){e.getCrossfadeParameters&&(this._crossfadeParameters=e.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,i)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,i)}serialize(){const e={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(e.layout=e.layout||{},e.layout.visibility=this.visibility),Tn(e,((i,a)=>!(i===void 0||a==="layout"&&!Object.keys(i).length||a==="paint"&&!Object.keys(i).length)))}_validate(e,i,a,o,u={}){return(!u||u.validate!==!1)&&jc(this,e.call(wr,{key:i,layerType:this.type,objectKey:a,value:o,styleSpec:K,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const e in this.paint._values){const i=this.paint.get(e);if(i instanceof pr&&ya(i.property.specification)&&(i.value.kind==="source"||i.value.kind==="composite")&&i.value.isStateDependent)return!0}return!1}}let Tl;var Yc={get paint(){return Tl=Tl||new bi({"raster-opacity":new Be(K.paint_raster["raster-opacity"]),"raster-hue-rotate":new Be(K.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Be(K.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Be(K.paint_raster["raster-brightness-max"]),"raster-saturation":new Be(K.paint_raster["raster-saturation"]),"raster-contrast":new Be(K.paint_raster["raster-contrast"]),"raster-resampling":new Be(K.paint_raster["raster-resampling"]),"raster-fade-duration":new Be(K.paint_raster["raster-fade-duration"])})}};class Kc extends fr{constructor(e,i){super(e,Yc,i)}}const nh={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class ys{constructor(e,i){this._structArray=e,this._pos1=i*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class It{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(e,i){return e._trim(),i&&(e.isTransferred=!0,i.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){const i=Object.create(this.prototype);return i.arrayBuffer=e.arrayBuffer,i.length=e.length,i.capacity=e.arrayBuffer.byteLength/i.bytesPerElement,i._refreshViews(),i}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(e){this.reserve(e),this.length=e}reserve(e){if(e>this.capacity){this.capacity=Math.max(e,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const i=this.uint8;this._refreshViews(),i&&this.uint8.set(i)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function Ot(r,e=1){let i=0,a=0;return{members:r.map((o=>{const u=nh[o.type].BYTES_PER_ELEMENT,h=i=Jc(i,Math.max(e,u)),f=o.components||1;return a=Math.max(a,u),i+=u*f,{name:o.name,type:o.type,components:f,offset:h}})),size:Jc(i,Math.max(a,e)),alignment:e}}function Jc(r,e){return Math.ceil(r/e)*e}class Sr extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i){const a=this.length;return this.resize(a+1),this.emplace(a,e,i)}emplace(e,i,a){const o=2*e;return this.int16[o+0]=i,this.int16[o+1]=a,e}}Sr.prototype.bytesPerElement=4,De("StructArrayLayout2i4",Sr);class mo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=3*e;return this.int16[u+0]=i,this.int16[u+1]=a,this.int16[u+2]=o,e}}mo.prototype.bytesPerElement=6,De("StructArrayLayout3i6",mo);class Sl extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o){const u=this.length;return this.resize(u+1),this.emplace(u,e,i,a,o)}emplace(e,i,a,o,u){const h=4*e;return this.int16[h+0]=i,this.int16[h+1]=a,this.int16[h+2]=o,this.int16[h+3]=u,e}}Sl.prototype.bytesPerElement=8,De("StructArrayLayout4i8",Sl);class Pl extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h){const f=this.length;return this.resize(f+1),this.emplace(f,e,i,a,o,u,h)}emplace(e,i,a,o,u,h,f){const _=6*e;return this.int16[_+0]=i,this.int16[_+1]=a,this.int16[_+2]=o,this.int16[_+3]=u,this.int16[_+4]=h,this.int16[_+5]=f,e}}Pl.prototype.bytesPerElement=12,De("StructArrayLayout2i4i12",Pl);class _o extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h){const f=this.length;return this.resize(f+1),this.emplace(f,e,i,a,o,u,h)}emplace(e,i,a,o,u,h,f){const _=4*e,y=8*e;return this.int16[_+0]=i,this.int16[_+1]=a,this.uint8[y+4]=o,this.uint8[y+5]=u,this.uint8[y+6]=h,this.uint8[y+7]=f,e}}_o.prototype.bytesPerElement=8,De("StructArrayLayout2i4ub8",_o);class xs extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i){const a=this.length;return this.resize(a+1),this.emplace(a,e,i)}emplace(e,i,a){const o=2*e;return this.float32[o+0]=i,this.float32[o+1]=a,e}}xs.prototype.bytesPerElement=8,De("StructArrayLayout2f8",xs);class Ml extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_,y,v){const b=this.length;return this.resize(b+1),this.emplace(b,e,i,a,o,u,h,f,_,y,v)}emplace(e,i,a,o,u,h,f,_,y,v,b){const S=10*e;return this.uint16[S+0]=i,this.uint16[S+1]=a,this.uint16[S+2]=o,this.uint16[S+3]=u,this.uint16[S+4]=h,this.uint16[S+5]=f,this.uint16[S+6]=_,this.uint16[S+7]=y,this.uint16[S+8]=v,this.uint16[S+9]=b,e}}Ml.prototype.bytesPerElement=20,De("StructArrayLayout10ui20",Ml);class Ur extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_){const y=this.length;return this.resize(y+1),this.emplace(y,e,i,a,o,u,h,f,_)}emplace(e,i,a,o,u,h,f,_,y){const v=8*e;return this.uint16[v+0]=i,this.uint16[v+1]=a,this.uint16[v+2]=o,this.uint16[v+3]=u,this.uint16[v+4]=h,this.uint16[v+5]=f,this.uint16[v+6]=_,this.uint16[v+7]=y,e}}Ur.prototype.bytesPerElement=16,De("StructArrayLayout8ui16",Ur);class go extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_,y,v,b,S){const P=this.length;return this.resize(P+1),this.emplace(P,e,i,a,o,u,h,f,_,y,v,b,S)}emplace(e,i,a,o,u,h,f,_,y,v,b,S,P){const E=12*e;return this.int16[E+0]=i,this.int16[E+1]=a,this.int16[E+2]=o,this.int16[E+3]=u,this.uint16[E+4]=h,this.uint16[E+5]=f,this.uint16[E+6]=_,this.uint16[E+7]=y,this.int16[E+8]=v,this.int16[E+9]=b,this.int16[E+10]=S,this.int16[E+11]=P,e}}go.prototype.bytesPerElement=24,De("StructArrayLayout4i4ui4i24",go);class vs extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=3*e;return this.float32[u+0]=i,this.float32[u+1]=a,this.float32[u+2]=o,e}}vs.prototype.bytesPerElement=12,De("StructArrayLayout3f12",vs);class yo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e){const i=this.length;return this.resize(i+1),this.emplace(i,e)}emplace(e,i){return this.uint32[1*e+0]=i,e}}yo.prototype.bytesPerElement=4,De("StructArrayLayout1ul4",yo);class bs extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_,y){const v=this.length;return this.resize(v+1),this.emplace(v,e,i,a,o,u,h,f,_,y)}emplace(e,i,a,o,u,h,f,_,y,v){const b=10*e,S=5*e;return this.int16[b+0]=i,this.int16[b+1]=a,this.int16[b+2]=o,this.int16[b+3]=u,this.int16[b+4]=h,this.int16[b+5]=f,this.uint32[S+3]=_,this.uint16[b+8]=y,this.uint16[b+9]=v,e}}bs.prototype.bytesPerElement=20,De("StructArrayLayout6i1ul2ui20",bs);class Il extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h){const f=this.length;return this.resize(f+1),this.emplace(f,e,i,a,o,u,h)}emplace(e,i,a,o,u,h,f){const _=6*e;return this.int16[_+0]=i,this.int16[_+1]=a,this.int16[_+2]=o,this.int16[_+3]=u,this.int16[_+4]=h,this.int16[_+5]=f,e}}Il.prototype.bytesPerElement=12,De("StructArrayLayout2i2i2i12",Il);class ba extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u){const h=this.length;return this.resize(h+1),this.emplace(h,e,i,a,o,u)}emplace(e,i,a,o,u,h){const f=4*e,_=8*e;return this.float32[f+0]=i,this.float32[f+1]=a,this.float32[f+2]=o,this.int16[_+6]=u,this.int16[_+7]=h,e}}ba.prototype.bytesPerElement=16,De("StructArrayLayout2f1f2i16",ba);class Gn extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h){const f=this.length;return this.resize(f+1),this.emplace(f,e,i,a,o,u,h)}emplace(e,i,a,o,u,h,f){const _=16*e,y=4*e,v=8*e;return this.uint8[_+0]=i,this.uint8[_+1]=a,this.float32[y+1]=o,this.float32[y+2]=u,this.int16[v+6]=h,this.int16[v+7]=f,e}}Gn.prototype.bytesPerElement=16,De("StructArrayLayout2ub2f2i16",Gn);class xo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=3*e;return this.uint16[u+0]=i,this.uint16[u+1]=a,this.uint16[u+2]=o,e}}xo.prototype.bytesPerElement=6,De("StructArrayLayout3ui6",xo);class vo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O){const G=this.length;return this.resize(G+1),this.emplace(G,e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O)}emplace(e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G){const B=24*e,V=12*e,H=48*e;return this.int16[B+0]=i,this.int16[B+1]=a,this.uint16[B+2]=o,this.uint16[B+3]=u,this.uint32[V+2]=h,this.uint32[V+3]=f,this.uint32[V+4]=_,this.uint16[B+10]=y,this.uint16[B+11]=v,this.uint16[B+12]=b,this.float32[V+7]=S,this.float32[V+8]=P,this.uint8[H+36]=E,this.uint8[H+37]=A,this.uint8[H+38]=R,this.uint32[V+10]=O,this.int16[B+22]=G,e}}vo.prototype.bytesPerElement=48,De("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",vo);class qn extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G,B,V,H,ee,se,ge,ye,ve,Ce,Te){const xe=this.length;return this.resize(xe+1),this.emplace(xe,e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G,B,V,H,ee,se,ge,ye,ve,Ce,Te)}emplace(e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G,B,V,H,ee,se,ge,ye,ve,Ce,Te,xe){const pe=32*e,ke=16*e;return this.int16[pe+0]=i,this.int16[pe+1]=a,this.int16[pe+2]=o,this.int16[pe+3]=u,this.int16[pe+4]=h,this.int16[pe+5]=f,this.int16[pe+6]=_,this.int16[pe+7]=y,this.uint16[pe+8]=v,this.uint16[pe+9]=b,this.uint16[pe+10]=S,this.uint16[pe+11]=P,this.uint16[pe+12]=E,this.uint16[pe+13]=A,this.uint16[pe+14]=R,this.uint16[pe+15]=O,this.uint16[pe+16]=G,this.uint16[pe+17]=B,this.uint16[pe+18]=V,this.uint16[pe+19]=H,this.uint16[pe+20]=ee,this.uint16[pe+21]=se,this.uint16[pe+22]=ge,this.uint32[ke+12]=ye,this.float32[ke+13]=ve,this.float32[ke+14]=Ce,this.uint16[pe+30]=Te,this.uint16[pe+31]=xe,e}}qn.prototype.bytesPerElement=64,De("StructArrayLayout8i15ui1ul2f2ui64",qn);class bo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e){const i=this.length;return this.resize(i+1),this.emplace(i,e)}emplace(e,i){return this.float32[1*e+0]=i,e}}bo.prototype.bytesPerElement=4,De("StructArrayLayout1f4",bo);class El extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=3*e;return this.uint16[6*e+0]=i,this.float32[u+1]=a,this.float32[u+2]=o,e}}El.prototype.bytesPerElement=12,De("StructArrayLayout1ui2f12",El);class wo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=4*e;return this.uint32[2*e+0]=i,this.uint16[u+2]=a,this.uint16[u+3]=o,e}}wo.prototype.bytesPerElement=8,De("StructArrayLayout1ul2ui8",wo);class Cl extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i){const a=this.length;return this.resize(a+1),this.emplace(a,e,i)}emplace(e,i,a){const o=2*e;return this.uint16[o+0]=i,this.uint16[o+1]=a,e}}Cl.prototype.bytesPerElement=4,De("StructArrayLayout2ui4",Cl);class d extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e){const i=this.length;return this.resize(i+1),this.emplace(i,e)}emplace(e,i){return this.uint16[1*e+0]=i,e}}d.prototype.bytesPerElement=2,De("StructArrayLayout1ui2",d);class t extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i,a,o){const u=this.length;return this.resize(u+1),this.emplace(u,e,i,a,o)}emplace(e,i,a,o,u){const h=4*e;return this.float32[h+0]=i,this.float32[h+1]=a,this.float32[h+2]=o,this.float32[h+3]=u,e}}t.prototype.bytesPerElement=16,De("StructArrayLayout4f16",t);class n extends ys{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new Ee(this.anchorPointX,this.anchorPointY)}}n.prototype.size=20;class s extends bs{get(e){return new n(this,e)}}De("CollisionBoxArray",s);class l extends ys{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(e){this._structArray.uint8[this._pos1+37]=e}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(e){this._structArray.uint8[this._pos1+38]=e}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(e){this._structArray.uint32[this._pos4+10]=e}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}l.prototype.size=48;class p extends vo{get(e){return new l(this,e)}}De("PlacedSymbolArray",p);class m extends ys{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(e){this._structArray.uint32[this._pos4+12]=e}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}m.prototype.size=64;class g extends qn{get(e){return new m(this,e)}}De("SymbolInstanceArray",g);class x extends bo{getoffsetX(e){return this.float32[1*e+0]}}De("GlyphOffsetArray",x);class w extends mo{getx(e){return this.int16[3*e+0]}gety(e){return this.int16[3*e+1]}gettileUnitDistanceFromAnchor(e){return this.int16[3*e+2]}}De("SymbolLineVertexArray",w);class T extends ys{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}T.prototype.size=12;class I extends El{get(e){return new T(this,e)}}De("TextAnchorOffsetArray",I);class M extends ys{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}}M.prototype.size=8;class z extends wo{get(e){return new M(this,e)}}De("FeatureIndexArray",z);class L extends Sr{}class j extends Sr{}class U extends Sr{}class N extends Pl{}class Z extends _o{}class X extends xs{}class q extends Ml{}class Y extends Ur{}class Q extends go{}class W extends vs{}class te extends yo{}class de extends Il{}class ue extends Gn{}class le extends xo{}class he extends Cl{}const Me=Ot([{name:"a_pos",components:2,type:"Int16"}],4),{members:Ie}=Me;class _e{constructor(e=[]){this._forceNewSegmentOnNextPrepare=!1,this.segments=e}prepareSegment(e,i,a,o){const u=this.segments[this.segments.length-1];return e>_e.MAX_VERTEX_ARRAY_LENGTH&&di(`Max vertices per segment is ${_e.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${e}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${_e.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!u||u.vertexLength+e>_e.MAX_VERTEX_ARRAY_LENGTH||u.sortKey!==o?this.createNewSegment(i,a,o):u}createNewSegment(e,i,a){const o={vertexOffset:e.length,primitiveOffset:i.length,vertexLength:0,primitiveLength:0,vaos:{}};return a!==void 0&&(o.sortKey=a),this._forceNewSegmentOnNextPrepare=!1,this.segments.push(o),o}getOrCreateLatestSegment(e,i,a){return this.prepareSegment(0,e,i,a)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=!0}get(){return this.segments}destroy(){for(const e of this.segments)for(const i in e.vaos)e.vaos[i].destroy()}static simpleSegment(e,i,a,o){return new _e([{vertexOffset:e,primitiveOffset:i,vertexLength:a,primitiveLength:o,vaos:{},sortKey:0}])}}function Le(r,e){return 256*(r=Yi(Math.floor(r),0,255))+Yi(Math.floor(e),0,255)}_e.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,De("SegmentVector",_e);const He=Ot([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]),lt=Ot([{name:"a_dasharray_from",components:4,type:"Uint16"},{name:"a_dasharray_to",components:4,type:"Uint16"}]);var _t,ft,wt,ct={exports:{}},$t={exports:{}},Tt={exports:{}},si=(function(){if(wt)return ct.exports;wt=1;var r=(_t||(_t=1,$t.exports=function(i,a){var o,u,h,f,_,y,v,b;for(u=i.length-(o=3&i.length),h=a,_=3432918353,y=461845907,b=0;b>>16)*_&65535)<<16)&4294967295)<<15|v>>>17))*y+(((v>>>16)*y&65535)<<16)&4294967295)<<13|h>>>19))+((5*(h>>>16)&65535)<<16)&4294967295))+((58964+(f>>>16)&65535)<<16);switch(v=0,o){case 3:v^=(255&i.charCodeAt(b+2))<<16;case 2:v^=(255&i.charCodeAt(b+1))<<8;case 1:h^=v=(65535&(v=(v=(65535&(v^=255&i.charCodeAt(b)))*_+(((v>>>16)*_&65535)<<16)&4294967295)<<15|v>>>17))*y+(((v>>>16)*y&65535)<<16)&4294967295}return h^=i.length,h=2246822507*(65535&(h^=h>>>16))+((2246822507*(h>>>16)&65535)<<16)&4294967295,h=3266489909*(65535&(h^=h>>>13))+((3266489909*(h>>>16)&65535)<<16)&4294967295,(h^=h>>>16)>>>0}),$t.exports),e=(ft||(ft=1,Tt.exports=function(i,a){for(var o,u=i.length,h=a^u,f=0;u>=4;)o=1540483477*(65535&(o=255&i.charCodeAt(f)|(255&i.charCodeAt(++f))<<8|(255&i.charCodeAt(++f))<<16|(255&i.charCodeAt(++f))<<24))+((1540483477*(o>>>16)&65535)<<16),h=1540483477*(65535&h)+((1540483477*(h>>>16)&65535)<<16)^(o=1540483477*(65535&(o^=o>>>24))+((1540483477*(o>>>16)&65535)<<16)),u-=4,++f;switch(u){case 3:h^=(255&i.charCodeAt(f+2))<<16;case 2:h^=(255&i.charCodeAt(f+1))<<8;case 1:h=1540483477*(65535&(h^=255&i.charCodeAt(f)))+((1540483477*(h>>>16)&65535)<<16)}return h=1540483477*(65535&(h^=h>>>13))+((1540483477*(h>>>16)&65535)<<16),(h^=h>>>15)>>>0}),Tt.exports);return ct.exports=r,ct.exports.murmur3=r,ct.exports.murmur2=e,ct.exports})(),zt=Jt(si);class Dt{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,i,a,o){this.ids.push(wi(e)),this.positions.push(i,a,o)}getPositions(e){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const i=wi(e);let a=0,o=this.ids.length-1;for(;a>1;this.ids[h]>=i?o=h:a=h+1}const u=[];for(;this.ids[a]===i;)u.push({index:this.positions[3*a],start:this.positions[3*a+1],end:this.positions[3*a+2]}),a++;return u}static serialize(e,i){const a=new Float64Array(e.ids),o=new Uint32Array(e.positions);return Gr(a,o,0,a.length-1),i&&i.push(a.buffer,o.buffer),{ids:a,positions:o}}static deserialize(e){const i=new Dt;return i.ids=e.ids,i.positions=e.positions,i.indexed=!0,i}}function wi(r){const e=+r;return!isNaN(e)&&e<=Number.MAX_SAFE_INTEGER?e:zt(String(r))}function Gr(r,e,i,a){for(;i>1];let u=i-1,h=a+1;for(;;){do u++;while(r[u]o);if(u>=h)break;Pr(r,u,h),Pr(e,3*u,3*h),Pr(e,3*u+1,3*h+1),Pr(e,3*u+2,3*h+2)}h-i`u_${o}`)),this.type=a}setUniform(e,i,a){e.set(a.constantOr(this.value))}getBinding(e,i,a){return this.type==="color"?new Ts(e,i):new qr(e,i)}}class Gi{constructor(e,i){this.uniformNames=i.map((a=>`u_${a}`)),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(e,i){this.pixelRatioFrom=i.pixelRatio,this.pixelRatioTo=e.pixelRatio,this.patternFrom=i.tlbr,this.patternTo=e.tlbr}setConstantDashPositions(e,i){this.dashTo=[0,e.y,e.height,e.width],this.dashFrom=[0,i.y,i.height,i.width]}setUniform(e,i,a,o){let u=null;o==="u_pattern_to"?u=this.patternTo:o==="u_pattern_from"?u=this.patternFrom:o==="u_dasharray_to"?u=this.dashTo:o==="u_dasharray_from"?u=this.dashFrom:o==="u_pixel_ratio_to"?u=this.pixelRatioTo:o==="u_pixel_ratio_from"&&(u=this.pixelRatioFrom),u!==null&&e.set(u)}getBinding(e,i,a){return a.startsWith("u_pattern")||a.startsWith("u_dasharray_")?new ws(e,i):new qr(e,i)}}class qi{constructor(e,i,a,o){this.expression=e,this.type=a,this.maxValue=0,this.paintVertexAttributes=i.map((u=>({name:`a_${u}`,type:"Float32",components:a==="color"?2:1,offset:0}))),this.paintVertexArray=new o}populatePaintArray(e,i,a){const o=this.paintVertexArray.length,u=this.expression.evaluate(new pt(0,a),i,{},a.canonical,[],a.formattedSection);this.paintVertexArray.resize(e),this._setPaintValue(o,e,u)}updatePaintArray(e,i,a,o,u){const h=this.expression.evaluate(new pt(0,u),a,o);this._setPaintValue(e,i,h)}_setPaintValue(e,i,a){if(this.type==="color"){const o=zi(a);for(let u=e;u`u_${f}_t`)),this.type=a,this.useIntegerZoom=o,this.zoom=u,this.maxValue=0,this.paintVertexAttributes=i.map((f=>({name:`a_${f}`,type:"Float32",components:a==="color"?4:2,offset:0}))),this.paintVertexArray=new h}populatePaintArray(e,i,a){const o=this.expression.evaluate(new pt(this.zoom,a),i,{},a.canonical,[],a.formattedSection),u=this.expression.evaluate(new pt(this.zoom+1,a),i,{},a.canonical,[],a.formattedSection),h=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(h,e,o,u)}updatePaintArray(e,i,a,o,u){const h=this.expression.evaluate(new pt(this.zoom,u),a,o),f=this.expression.evaluate(new pt(this.zoom+1,u),a,o);this._setPaintValue(e,i,h,f)}_setPaintValue(e,i,a,o){if(this.type==="color"){const u=zi(a),h=zi(o);for(let f=e;f`#define HAS_UNIFORM_${o}`)))}return e}getBinderAttributes(){const e=[];for(const i in this.binders){const a=this.binders[i];if(a instanceof qi||a instanceof ht)for(let o=0;o!0){this.programConfigurations={};for(const o of e)this.programConfigurations[o.id]=new Qc(o,i,a);this.needsUpload=!1,this._featureMap=new Dt,this._bufferOffset=0}populatePaintArrays(e,i,a,o){for(const u in this.programConfigurations)this.programConfigurations[u].populatePaintArrays(e,i,o);i.id!==void 0&&this._featureMap.add(i.id,a,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=!0}updatePaintArrays(e,i,a,o){for(const u of a)this.needsUpload=this.programConfigurations[u.id].updatePaintArrays(e,this._featureMap,i,u,o)||this.needsUpload}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(const i in this.programConfigurations)this.programConfigurations[i].upload(e);this.needsUpload=!1}}destroy(){for(const e in this.programConfigurations)this.programConfigurations[e].destroy()}}function ah(r,e){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-dasharray":["dasharray_to","dasharray_from"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[r]||[r.replace(`${e}-`,"").replace(/-/g,"_")]}function eu(r,e,i){const a={color:{source:xs,composite:t},number:{source:bo,composite:xs}},o=(function(u){return{"line-pattern":{source:q,composite:q},"fill-pattern":{source:q,composite:q},"fill-extrusion-pattern":{source:q,composite:q},"line-dasharray":{source:Y,composite:Y}}[u]})(r);return o&&o[i]||a[e][i]}De("ConstantBinder",ir),De("CrossFadedConstantBinder",Gi),De("SourceExpressionBinder",qi),De("CrossFadedPatternBinder",Zi),De("CrossFadedDasharrayBinder",Kt),De("CompositeExpressionBinder",ht),De("ProgramConfiguration",Qc,{omit:["_buffers"]}),De("ProgramConfigurationSet",Zn);const Al=Math.pow(2,14)-1,tu=-Al-1;function $i(r){const e=st/r.extent,i=r.loadGeometry();for(let a=0;ah.x+1||_h.y+1)&&di("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return i}function mn(r,e){return{type:r.type,id:r.id,properties:r.properties,geometry:e?$i(r):[]}}const zl=-32768;function iu(r,e,i,a,o){r.emplaceBack(zl+8*e+a,zl+8*i+o)}class Ss{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((i=>i.id)),this.index=e.index,this.hasDependencies=!1,this.layoutVertexArray=new j,this.indexArray=new le,this.segments=new _e,this.programConfigurations=new Zn(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter((i=>i.isStateDependent())).map((i=>i.id))}populate(e,i,a){const o=this.layers[0],u=[];let h=null,f=!1,_=o.type==="heatmap";if(o.type==="circle"){const v=o;h=v.layout.get("circle-sort-key"),f=!h.isConstant(),_=_||v.paint.get("circle-pitch-alignment")==="map"}const y=_?i.subdivisionGranularity.circle:1;for(const{feature:v,id:b,index:S,sourceLayerIndex:P}of e){const E=this.layers[0]._featureFilter.needGeometry,A=mn(v,E);if(!this.layers[0]._featureFilter.filter(new pt(this.zoom),A,a))continue;const R=f?h.evaluate(A,{},a):void 0,O={id:b,properties:v.properties,type:v.type,sourceLayerIndex:P,index:S,geometry:E?A.geometry:$i(v),patterns:{},sortKey:R};u.push(O)}f&&u.sort(((v,b)=>v.sortKey-b.sortKey));for(const v of u){const{geometry:b,index:S,sourceLayerIndex:P}=v,E=e[S].feature;this.addFeature(v,b,S,a,y),i.featureIndex.insert(E,b,S,P,this.index)}}update(e,i,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,i,this.stateDependentLayers,{imagePositions:a})}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Ie),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(e,i,a,o,u=1){let h;switch(u){case 1:h=[0,7];break;case 3:h=[0,2,5,7];break;case 5:h=[0,1,3,4,6,7];break;case 7:h=[0,1,2,3,4,5,6,7];break;default:throw new Error(`Invalid circle bucket granularity: ${u}; valid values are 1, 3, 5, 7.`)}const f=h.length;for(const _ of i)for(const y of _){const v=y.x,b=y.y;if(v<0||v>=st||b<0||b>=st)continue;const S=this.segments.prepareSegment(f*f,this.layoutVertexArray,this.indexArray,e.sortKey),P=S.vertexLength;for(let E=0;E1){if(sh(r,e))return!0;for(let a=0;a1?i:i.sub(e)._mult(o)._add(e))}function od(r,e){let i,a,o,u=!1;for(let h=0;he.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(u=!u)}return u}function To(r,e){let i=!1;for(let a=0,o=r.length-1;ae.y!=h.y>e.y&&e.x<(h.x-u.x)*(e.y-u.y)/(h.y-u.y)+u.x&&(i=!i)}return i}function If(r,e,i){const a=i[0],o=i[2];if(r.xo.x&&e.x>o.x||r.yo.y&&e.y>o.y)return!1;const u=Fi(r,e,i[0]);return u!==Fi(r,e,i[1])||u!==Fi(r,e,i[2])||u!==Fi(r,e,i[3])}function So(r,e,i){const a=e.paint.get(r).value;return a.kind==="constant"?a.value:i.programConfigurations.get(e.id).getMaxValue(r)}function ru(r){return Math.sqrt(r[0]*r[0]+r[1]*r[1])}function nu(r,e,i,a,o){if(!e[0]&&!e[1])return r;const u=Ee.convert(e)._mult(o);i==="viewport"&&u._rotate(-a);const h=[];for(let f=0;flh(B,R,O,G)))})(y,u,f,_),E=v),ld({queryGeometry:P,size:E,transform:u,unwrappedTileID:f,getElevation:_,pitchAlignment:S,pitchScale:b},o)}}class hd extends Ss{}let dd;De("HeatmapBucket",hd,{omit:["layers"]});var Lf={get paint(){return dd=dd||new bi({"heatmap-radius":new Ue(K.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Ue(K.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new Be(K.paint_heatmap["heatmap-intensity"]),"heatmap-color":new va(K.paint_heatmap["heatmap-color"]),"heatmap-opacity":new Be(K.paint_heatmap["heatmap-opacity"])})}};function ch(r,{width:e,height:i},a,o){if(o){if(o instanceof Uint8ClampedArray)o=new Uint8Array(o.buffer);else if(o.length!==e*i*a)throw new RangeError(`mismatched image size. expected: ${o.length} but got: ${e*i*a}`)}else o=new Uint8Array(e*i*a);return r.width=e,r.height=i,r.data=o,r}function pd(r,{width:e,height:i},a){if(e===r.width&&i===r.height)return;const o=ch({},{width:e,height:i},a);uh(r,o,{x:0,y:0},{x:0,y:0},{width:Math.min(r.width,e),height:Math.min(r.height,i)},a),r.width=e,r.height=i,r.data=o.data}function uh(r,e,i,a,o,u){if(o.width===0||o.height===0)return e;if(o.width>r.width||o.height>r.height||i.x>r.width-o.width||i.y>r.height-o.height)throw new RangeError("out of range source coordinates for image copy");if(o.width>e.width||o.height>e.height||a.x>e.width-o.width||a.y>e.height-o.height)throw new RangeError("out of range destination coordinates for image copy");const h=r.data,f=e.data;if(h===f)throw new Error("srcData equals dstData, so image is already copied");for(let _=0;_{e[r.evaluationKey]=_;const y=r.expression.evaluate(e);o.setPixel(h/4/i,f/4,y)};if(r.clips)for(let h=0,f=0;hthis.max&&(this.max=b),b=this.dim+1||i<-1||i>=this.dim+1)throw new RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${i}, dim: ${this.dim}`);return(i+1)*this.stride+(e+1)}unpack(e,i,a){return e*this.redFactor+i*this.greenFactor+a*this.blueFactor-this.baseShift}pack(e){return vd(e,this.getUnpackVector())}getPixels(){return new Wi({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(e,i,a){if(this.dim!==e.dim)throw new Error("dem dimension mismatch");let o=i*this.dim,u=i*this.dim+this.dim,h=a*this.dim,f=a*this.dim+this.dim;switch(i){case-1:o=u-1;break;case 1:u=o+1}switch(a){case-1:h=f-1;break;case 1:f=h+1}const _=-i*this.dim,y=-a*this.dim;for(let v=h;v0)for(let h=e;h=e;h-=a)u=Pd(h/a|0,r[h],r[h+1],u);return u&&Po(u,u.next)&&(Bl(u),u=u.next),u}function Ps(r,e){if(!r)return r;e||(e=r);let i,a=r;do if(i=!1,a.steiner||!Po(a,a.next)&&qt(a.prev,a,a.next)!==0)a=a.next;else{if(Bl(a),a=e=a.prev,a===a.next)break;i=!0}while(i||a!==e);return e}function Rl(r,e,i,a,o,u,h){if(!r)return;!h&&u&&(function(_,y,v,b){let S=_;do S.z===0&&(S.z=fh(S.x,S.y,y,v,b)),S.prevZ=S.prev,S.nextZ=S.next,S=S.next;while(S!==_);S.prevZ.nextZ=null,S.prevZ=null,(function(P){let E,A=1;do{let R,O=P;P=null;let G=null;for(E=0;O;){E++;let B=O,V=0;for(let ee=0;ee0||H>0&&B;)V!==0&&(H===0||!B||O.z<=B.z)?(R=O,O=O.nextZ,V--):(R=B,B=B.nextZ,H--),G?G.nextZ=R:P=R,R.prevZ=G,G=R;O=B}G.nextZ=null,A*=2}while(E>1)})(S)})(r,a,o,u);let f=r;for(;r.prev!==r.next;){const _=r.prev,y=r.next;if(u?qf(r,a,o,u):Gf(r))e.push(_.i,r.i,y.i),Bl(r),r=y.next,f=y.next;else if((r=y)===f){h?h===1?Rl(r=Zf(Ps(r),e),e,i,a,o,u,2):h===2&&$f(r,e,i,a,o,u):Rl(Ps(r),e,i,a,o,u,1);break}}}function Gf(r){const e=r.prev,i=r,a=r.next;if(qt(e,i,a)>=0)return!1;const o=e.x,u=i.x,h=a.x,f=e.y,_=i.y,y=a.y,v=Math.min(o,u,h),b=Math.min(f,_,y),S=Math.max(o,u,h),P=Math.max(f,_,y);let E=a.next;for(;E!==e;){if(E.x>=v&&E.x<=S&&E.y>=b&&E.y<=P&&Ll(o,f,u,_,h,y,E.x,E.y)&&qt(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function qf(r,e,i,a){const o=r.prev,u=r,h=r.next;if(qt(o,u,h)>=0)return!1;const f=o.x,_=u.x,y=h.x,v=o.y,b=u.y,S=h.y,P=Math.min(f,_,y),E=Math.min(v,b,S),A=Math.max(f,_,y),R=Math.max(v,b,S),O=fh(P,E,e,i,a),G=fh(A,R,e,i,a);let B=r.prevZ,V=r.nextZ;for(;B&&B.z>=O&&V&&V.z<=G;){if(B.x>=P&&B.x<=A&&B.y>=E&&B.y<=R&&B!==o&&B!==h&&Ll(f,v,_,b,y,S,B.x,B.y)&&qt(B.prev,B,B.next)>=0||(B=B.prevZ,V.x>=P&&V.x<=A&&V.y>=E&&V.y<=R&&V!==o&&V!==h&&Ll(f,v,_,b,y,S,V.x,V.y)&&qt(V.prev,V,V.next)>=0))return!1;V=V.nextZ}for(;B&&B.z>=O;){if(B.x>=P&&B.x<=A&&B.y>=E&&B.y<=R&&B!==o&&B!==h&&Ll(f,v,_,b,y,S,B.x,B.y)&&qt(B.prev,B,B.next)>=0)return!1;B=B.prevZ}for(;V&&V.z<=G;){if(V.x>=P&&V.x<=A&&V.y>=E&&V.y<=R&&V!==o&&V!==h&&Ll(f,v,_,b,y,S,V.x,V.y)&&qt(V.prev,V,V.next)>=0)return!1;V=V.nextZ}return!0}function Zf(r,e){let i=r;do{const a=i.prev,o=i.next.next;!Po(a,o)&&Td(a,i,i.next,o)&&Fl(a,o)&&Fl(o,a)&&(e.push(a.i,i.i,o.i),Bl(i),Bl(i.next),i=r=o),i=i.next}while(i!==r);return Ps(i)}function $f(r,e,i,a,o,u){let h=r;do{let f=h.next.next;for(;f!==h.prev;){if(h.i!==f.i&&Kf(h,f)){let _=Sd(h,f);return h=Ps(h,h.next),_=Ps(_,_.next),Rl(h,e,i,a,o,u,0),void Rl(_,e,i,a,o,u,0)}f=f.next}h=h.next}while(h!==r)}function Wf(r,e){let i=r.x-e.x;return i===0&&(i=r.y-e.y,i===0)&&(i=(r.next.y-r.y)/(r.next.x-r.x)-(e.next.y-e.y)/(e.next.x-e.x)),i}function Hf(r,e){const i=(function(o,u){let h=u;const f=o.x,_=o.y;let y,v=-1/0;if(Po(o,h))return h;do{if(Po(o,h.next))return h.next;if(_<=h.y&&_>=h.next.y&&h.next.y!==h.y){const A=h.x+(_-h.y)*(h.next.x-h.x)/(h.next.y-h.y);if(A<=f&&A>v&&(v=A,y=h.x=h.x&&h.x>=S&&f!==h.x&&wd(_y.x||h.x===y.x&&Xf(y,h)))&&(y=h,E=A)}h=h.next}while(h!==b);return y})(r,e);if(!i)return e;const a=Sd(i,r);return Ps(a,a.next),Ps(i,i.next)}function Xf(r,e){return qt(r.prev,r,e.prev)<0&&qt(e.next,r,r.next)<0}function fh(r,e,i,a,o){return(r=1431655765&((r=858993459&((r=252645135&((r=16711935&((r=(r-i)*o|0)|r<<8))|r<<4))|r<<2))|r<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-a)*o|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Yf(r){let e=r,i=r;do(e.x=(r-h)*(u-f)&&(r-h)*(a-f)>=(i-h)*(e-f)&&(i-h)*(u-f)>=(o-h)*(a-f)}function Ll(r,e,i,a,o,u,h,f){return!(r===h&&e===f)&&wd(r,e,i,a,o,u,h,f)}function Kf(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!(function(i,a){let o=i;do{if(o.i!==i.i&&o.next.i!==i.i&&o.i!==a.i&&o.next.i!==a.i&&Td(o,o.next,i,a))return!0;o=o.next}while(o!==i);return!1})(r,e)&&(Fl(r,e)&&Fl(e,r)&&(function(i,a){let o=i,u=!1;const h=(i.x+a.x)/2,f=(i.y+a.y)/2;do o.y>f!=o.next.y>f&&o.next.y!==o.y&&h<(o.next.x-o.x)*(f-o.y)/(o.next.y-o.y)+o.x&&(u=!u),o=o.next;while(o!==i);return u})(r,e)&&(qt(r.prev,r,e.prev)||qt(r,e.prev,e))||Po(r,e)&&qt(r.prev,r,r.next)>0&&qt(e.prev,e,e.next)>0)}function qt(r,e,i){return(e.y-r.y)*(i.x-e.x)-(e.x-r.x)*(i.y-e.y)}function Po(r,e){return r.x===e.x&&r.y===e.y}function Td(r,e,i,a){const o=ou(qt(r,e,i)),u=ou(qt(r,e,a)),h=ou(qt(i,a,r)),f=ou(qt(i,a,e));return o!==u&&h!==f||!(o!==0||!su(r,i,e))||!(u!==0||!su(r,a,e))||!(h!==0||!su(i,r,a))||!(f!==0||!su(i,e,a))}function su(r,e,i){return e.x<=Math.max(r.x,i.x)&&e.x>=Math.min(r.x,i.x)&&e.y<=Math.max(r.y,i.y)&&e.y>=Math.min(r.y,i.y)}function ou(r){return r>0?1:r<0?-1:0}function Fl(r,e){return qt(r.prev,r,r.next)<0?qt(r,e,r.next)>=0&&qt(r,r.prev,e)>=0:qt(r,e,r.prev)<0||qt(r,r.next,e)<0}function Sd(r,e){const i=mh(r.i,r.x,r.y),a=mh(e.i,e.x,e.y),o=r.next,u=e.prev;return r.next=e,e.prev=r,i.next=o,o.prev=i,a.next=i,i.prev=a,u.next=a,a.prev=u,a}function Pd(r,e,i,a){const o=mh(r,e,i);return a?(o.next=a.next,o.prev=a,a.next.prev=o,a.next=o):(o.prev=o,o.next=o),o}function Bl(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function mh(r,e,i){return{i:r,x:e,y:i,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}class Mo{constructor(e,i){if(i>e)throw new Error("Min granularity must not be greater than base granularity.");this._baseZoomGranularity=e,this._minGranularity=i}getGranularityForZoomLevel(e){return Math.max(Math.floor(this._baseZoomGranularity/(1<32767||i>32767)throw new Error("Vertex coordinates are out of signed 16 bit integer range.");const a=0|Math.round(e),o=0|Math.round(i),u=this._getKey(a,o);if(this._vertexDictionary.has(u))return this._vertexDictionary.get(u);const h=this._vertexBuffer.length/2;return this._vertexDictionary.set(u,h),this._vertexBuffer.push(a,o),h}_subdivideTrianglesScanline(e){if(this._granularity<2)return(function(o,u){const h=[];for(let f=0;f0?(h.push(_),h.push(v),h.push(y)):(h.push(_),h.push(y),h.push(v))}return h})(this._vertexBuffer,e);const i=[],a=e.length;for(let o=0;o=1||H<=0)||O&&(yu)){b>=o&&b<=u&&h.push(a[(f+1)%3]);continue}!O&&V>0&&h.push(this._vertexToIndex(_+E*V,y+A*V));const ee=_+E*Math.max(V,0),se=_+E*Math.min(H,1);R||this._generateIntraEdgeVertices(h,_,y,v,b,ee,se),!O&&H<1&&h.push(this._vertexToIndex(_+E*H,y+A*H)),(O||b>=o&&b<=u)&&h.push(a[(f+1)%3]),!O&&(b<=o||b>=u)&&this._generateInterEdgeVertices(h,_,y,v,b,S,P,se,o,u)}return h}_generateIntraEdgeVertices(e,i,a,o,u,h,f){const _=o-i,y=u-a,v=y===0,b=v?Math.min(i,o):Math.min(h,f),S=v?Math.max(i,o):Math.max(h,f),P=Math.floor(b/this._granularityCellSize)+1,E=Math.ceil(S/this._granularityCellSize)-1;if(v?i=P;A--){const R=A*this._granularityCellSize;e.push(this._vertexToIndex(R,a+y*(R-i)/_))}}_generateInterEdgeVertices(e,i,a,o,u,h,f,_,y,v){const b=u-a,S=h-o,P=f-u,E=(y-u)/P,A=(v-u)/P,R=Math.min(E,A),O=Math.max(E,A),G=o+S*R;let B=Math.floor(Math.min(G,_)/this._granularityCellSize)+1,V=Math.ceil(Math.max(G,_)/this._granularityCellSize)-1,H=_=1||O<=0){const ge=a-f,ye=h+(i-h)*Math.min((y-f)/ge,(v-f)/ge);B=Math.floor(Math.min(ye,_)/this._granularityCellSize)+1,V=Math.ceil(Math.max(ye,_)/this._granularityCellSize)-1,H=_0?v:y;if(H)for(let ge=B;ge<=V;ge++)e.push(this._vertexToIndex(ge*this._granularityCellSize,se));else for(let ge=V;ge>=B;ge--)e.push(this._vertexToIndex(ge*this._granularityCellSize,se))}_generateOutline(e){const i=[];for(const a of e){const o=Ms(a,this._granularity,!0),u=this._pointArrayToIndices(o),h=[];for(let f=1;fu!=(h===Io)?(e.push(i),e.push(a),e.push(this._vertexToIndex(o,h)),e.push(a),e.push(this._vertexToIndex(u,h)),e.push(this._vertexToIndex(o,h))):(e.push(a),e.push(i),e.push(this._vertexToIndex(o,h)),e.push(this._vertexToIndex(u,h)),e.push(a),e.push(this._vertexToIndex(o,h)))}_fillPoles(e,i,a){const o=this._vertexBuffer,u=st,h=e.length;for(let f=2;f80*b){R=y[0],O=y[1];let B=R,V=O;for(let H=b;HB&&(B=ee),se>V&&(V=se)}G=Math.max(B-R,V-O),G=G!==0?32767/G:0}return Rl(E,A,b,R,O,G,0),A})(a,o),_=this._convertIndices(a,f);u=this._subdivideTrianglesScanline(_)}catch(f){console.error(f)}let h=[];return i&&(h=this._generateOutline(e)),this._ensureNoPoleVertices(),this._handlePoles(u),{verticesFlattened:this._vertexBuffer,indicesTriangles:u,indicesLineList:h}}_convertIndices(e,i){const a=[];for(let o=0;o0?(Math.floor(se/h)+1)*h:(Math.ceil(se/h)-1)*h,Ce=V>0?(Math.floor(ge/h)+1)*h:(Math.ceil(ge/h)-1)*h,Te=Math.abs(se-ve),xe=Math.abs(ge-Ce),pe=Math.abs(se-A),ke=Math.abs(ge-R),Re=O?Te/H:Number.POSITIVE_INFINITY,Ve=G?xe/ee:Number.POSITIVE_INFINITY;if((pe<=Te||!O)&&(ke<=xe||!G))break;if(Re=0?h-1:u-1,y=(f+1)%u,v=r[2*e[_]],b=r[2*e[y]],S=r[2*e[h]],P=r[2*e[h]+1],E=r[2*e[f]+1];let A=!1;if(vb)A=!1;else{const R=E-P,O=-(r[2*e[f]]-S),G=P((b-S)*R+(r[2*e[y]+1]-P)*O)*G&&(A=!0)}if(A){const R=e[_],O=e[h],G=e[f];R!==O&&R!==G&&O!==G&&i.push(G,O,R),h--,h<0&&(h=u-1)}else{const R=e[y],O=e[h],G=e[f];R!==O&&R!==G&&O!==G&&i.push(G,O,R),f++,f>=u&&(f=0)}if(_===y)break}}function Id(r,e,i,a,o,u,h,f,_){const y=o.length/2,v=h&&f&&_;if(y<_e.MAX_VERTEX_ARRAY_LENGTH){const b=e.prepareSegment(y,i,a),S=b.vertexLength;for(let A=0;A_e.MAX_VERTEX_ARRAY_LENGTH&&(V=b.createNewSegment(S,P),B=G.count,ve=!0,Ce=!0,Te=!0,H=0);const xe=Vl(O,E,R,G,se,ve,V),pe=Vl(O,E,R,G,ge,Ce,V),ke=Vl(O,E,R,G,ye,Te,V);P.emplaceBack(H+xe-B,H+pe-B,H+ke-B),V.primitiveLength++}})(e,i,a,o,u,r),v&&(function(b,S,P,E,A,R){const O=[];for(let ee=0;ee_e.MAX_VERTEX_ARRAY_LENGTH&&(V=b.createNewSegment(S,P),B=G.count,Ce=!0,Te=!0,H=0);const xe=Vl(O,E,R,G,ye,Ce,V),pe=Vl(O,E,R,G,ve,Te,V);P.emplaceBack(H+xe-B,H+pe-B),V.primitiveLength++}}})(h,i,f,o,_,r),e.forceNewSegmentOnNextPrepare(),h?.forceNewSegmentOnNextPrepare()}function Vl(r,e,i,a,o,u,h){if(u){const f=a.count;return i(e[2*o],e[2*o+1]),r[o]=a.count,a.count++,h.vertexLength++,f}return r[o]}class _h{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((i=>i.id)),this.index=e.index,this.hasDependencies=!1,this.patternFeatures=[],this.layoutVertexArray=new U,this.indexArray=new le,this.indexArray2=new he,this.programConfigurations=new Zn(e.layers,e.zoom),this.segments=new _e,this.segments2=new _e,this.stateDependentLayerIds=this.layers.filter((i=>i.isStateDependent())).map((i=>i.id))}populate(e,i,a){this.hasDependencies=au("fill",this.layers,i);const o=this.layers[0].layout.get("fill-sort-key"),u=!o.isConstant(),h=[];for(const{feature:f,id:_,index:y,sourceLayerIndex:v}of e){const b=this.layers[0]._featureFilter.needGeometry,S=mn(f,b);if(!this.layers[0]._featureFilter.filter(new pt(this.zoom),S,a))continue;const P=u?o.evaluate(S,{},a,i.availableImages):void 0,E={id:_,properties:f.properties,type:f.type,sourceLayerIndex:v,index:y,geometry:b?S.geometry:$i(f),patterns:{},sortKey:P};h.push(E)}u&&h.sort(((f,_)=>f.sortKey-_.sortKey));for(const f of h){const{geometry:_,index:y,sourceLayerIndex:v}=f;if(this.hasDependencies){const b=ph("fill",this.layers,f,{zoom:this.zoom},i);this.patternFeatures.push(b)}else this.addFeature(f,_,y,a,{},i.subdivisionGranularity);i.featureIndex.insert(e[y].feature,_,y,v,this.index)}}update(e,i,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,i,this.stateDependentLayers,{imagePositions:a})}addFeatures(e,i,a){for(const o of this.patternFeatures)this.addFeature(o,o.geometry,o.index,i,a,e.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Uf),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(e,i,a,o,u,h){for(const f of Ka(i,500)){const _=Md(f,o,h.fill.getGranularityForZoomLevel(o.z)),y=this.layoutVertexArray;Id(((v,b)=>{y.emplaceBack(v,b)}),this.segments,this.layoutVertexArray,this.indexArray,_.verticesFlattened,_.indicesTriangles,this.segments2,this.indexArray2,_.indicesLineList)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{imagePositions:u,canonical:o})}}let Ed,Cd;De("FillBucket",_h,{omit:["layers","patternFeatures"]});var em={get paint(){return Cd=Cd||new bi({"fill-antialias":new Be(K.paint_fill["fill-antialias"]),"fill-opacity":new Ue(K.paint_fill["fill-opacity"]),"fill-color":new Ue(K.paint_fill["fill-color"]),"fill-outline-color":new Ue(K.paint_fill["fill-outline-color"]),"fill-translate":new Be(K.paint_fill["fill-translate"]),"fill-translate-anchor":new Be(K.paint_fill["fill-translate-anchor"]),"fill-pattern":new fn(K.paint_fill["fill-pattern"])})},get layout(){return Ed=Ed||new bi({"fill-sort-key":new Ue(K.layout_fill["fill-sort-key"])})}};class tm extends fr{constructor(e,i){super(e,em,i)}recalculate(e,i){super.recalculate(e,i);const a=this.paint._values["fill-outline-color"];a.value.kind==="constant"&&a.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(e){return new _h(e)}queryRadius(){return ru(this.paint.get("fill-translate"))}queryIntersectsFeature({queryGeometry:e,geometry:i,transform:a,pixelsToTileUnits:o}){return ad(nu(e,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),-a.bearingInRadians,o),i)}isTileClipped(){return!0}}const im=Ot([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4),rm=Ot([{name:"a_centroid",components:2,type:"Int16"}],4),{members:nm}=im;class jl{constructor(e,i,a,o,u){this.properties={},this.extent=a,this.type=0,this.id=void 0,this._pbf=e,this._geometry=-1,this._keys=o,this._values=u,e.readFields(am,this,i)}loadGeometry(){const e=this._pbf;e.pos=this._geometry;const i=e.readVarint()+e.pos,a=[];let o,u=1,h=0,f=0,_=0;for(;e.pos>3}if(h--,u===1||u===2)f+=e.readSVarint(),_+=e.readSVarint(),u===1&&(o&&a.push(o),o=[]),o&&o.push(new Ee(f,_));else{if(u!==7)throw new Error(`unknown command ${u}`);o&&o.push(o[0].clone())}}return o&&a.push(o),a}bbox(){const e=this._pbf;e.pos=this._geometry;const i=e.readVarint()+e.pos;let a=1,o=0,u=0,h=0,f=1/0,_=-1/0,y=1/0,v=-1/0;for(;e.pos>3}if(o--,a===1||a===2)u+=e.readSVarint(),h+=e.readSVarint(),u_&&(_=u),hv&&(v=h);else if(a!==7)throw new Error(`unknown command ${a}`)}return[f,y,_,v]}toGeoJSON(e,i,a){const o=this.extent*Math.pow(2,a),u=this.extent*e,h=this.extent*i,f=this.loadGeometry();function _(S){return[360*(S.x+u)/o-180,360/Math.PI*Math.atan(Math.exp((1-2*(S.y+h)/o)*Math.PI))-90]}function y(S){return S.map(_)}let v;if(this.type===1){const S=[];for(const E of f)S.push(E[0]);const P=y(S);v=S.length===1?{type:"Point",coordinates:P[0]}:{type:"MultiPoint",coordinates:P}}else if(this.type===2){const S=f.map(y);v=S.length===1?{type:"LineString",coordinates:S[0]}:{type:"MultiLineString",coordinates:S}}else{if(this.type!==3)throw new Error("unknown feature type");{const S=Ad(f),P=[];for(const E of S)P.push(E.map(y));v=P.length===1?{type:"Polygon",coordinates:P[0]}:{type:"MultiPolygon",coordinates:P}}}const b={type:"Feature",geometry:v,properties:this.properties};return this.id!=null&&(b.id=this.id),b}}function am(r,e,i){r===1?e.id=i.readVarint():r===2?(function(a,o){const u=a.readVarint()+a.pos;for(;a.pos=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];const i=this._pbf.readVarint()+this._pbf.pos;return new jl(this._pbf,i,this.extent,this._keys,this._values)}}function lm(r,e,i){r===15?e.version=i.readVarint():r===1?e.name=i.readString():r===5?e.extent=i.readVarint():r===2?e._features.push(i.pos):r===3?e._keys.push(i.readString()):r===4&&e._values.push((function(a){let o=null;const u=a.readVarint()+a.pos;for(;a.pos>3;o=h===1?a.readString():h===2?a.readFloat():h===3?a.readDouble():h===4?a.readVarint64():h===5?a.readVarint():h===6?a.readSVarint():h===7?a.readBoolean():null}if(o==null)throw new Error("unknown feature value");return o})(i))}class zd{constructor(e,i){this.layers=e.readFields(cm,{},i)}}function cm(r,e,i){if(r===3){const a=new om(i,i.readVarint()+i.pos);a.length&&(e[a.name]=a)}}const gh=Math.pow(2,13);function Nl(r,e,i,a,o,u,h,f){r.emplaceBack(e,i,2*Math.floor(a*gh)+h,o*gh*2,u*gh*2,Math.round(f))}class yh{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((i=>i.id)),this.index=e.index,this.hasDependencies=!1,this.layoutVertexArray=new N,this.centroidVertexArray=new L,this.indexArray=new le,this.programConfigurations=new Zn(e.layers,e.zoom),this.segments=new _e,this.stateDependentLayerIds=this.layers.filter((i=>i.isStateDependent())).map((i=>i.id))}populate(e,i,a){this.features=[],this.hasDependencies=au("fill-extrusion",this.layers,i);for(const{feature:o,id:u,index:h,sourceLayerIndex:f}of e){const _=this.layers[0]._featureFilter.needGeometry,y=mn(o,_);if(!this.layers[0]._featureFilter.filter(new pt(this.zoom),y,a))continue;const v={id:u,sourceLayerIndex:f,index:h,geometry:_?y.geometry:$i(o),properties:o.properties,type:o.type,patterns:{}};this.hasDependencies?this.features.push(ph("fill-extrusion",this.layers,v,{zoom:this.zoom},i)):this.addFeature(v,v.geometry,h,a,{},i.subdivisionGranularity),i.featureIndex.insert(o,v.geometry,h,f,this.index,!0)}}addFeatures(e,i,a){for(const o of this.features){const{geometry:u}=o;this.addFeature(o,u,o.index,i,a,e.subdivisionGranularity)}}update(e,i,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,i,this.stateDependentLayers,{imagePositions:a})}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,nm),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,rm.members,!0),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(e,i,a,o,u,h){for(const f of Ka(i,500)){const _={x:0,y:0,sampleCount:0},y=this.layoutVertexArray.length;this.processPolygon(_,o,e,f,h);const v=this.layoutVertexArray.length-y,b=Math.floor(_.x/_.sampleCount),S=Math.floor(_.y/_.sampleCount);for(let P=0;P{Nl(v,b,S,0,0,1,1,0)}),this.segments,this.layoutVertexArray,this.indexArray,y.verticesFlattened,y.indicesTriangles)}_generateSideFaces(e,i){let a=0;for(let o=1;o_e.MAX_VERTEX_ARRAY_LENGTH&&(i.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const f=u.sub(h)._perp()._unit(),_=h.dist(u);a+_>32768&&(a=0),Nl(this.layoutVertexArray,u.x,u.y,f.x,f.y,0,0,a),Nl(this.layoutVertexArray,u.x,u.y,f.x,f.y,0,1,a),a+=_,Nl(this.layoutVertexArray,h.x,h.y,f.x,f.y,0,0,a),Nl(this.layoutVertexArray,h.x,h.y,f.x,f.y,0,1,a);const y=i.segment.vertexLength;this.indexArray.emplaceBack(y,y+2,y+1),this.indexArray.emplaceBack(y+1,y+2,y+3),i.segment.vertexLength+=4,i.segment.primitiveLength+=2}}}function um(r,e){for(let i=0;ist)||r.y===e.y&&(r.y<0||r.y>st)}function Dd(r){return r.every((e=>e.x<0))||r.every((e=>e.x>st))||r.every((e=>e.y<0))||r.every((e=>e.y>st))}let kd;De("FillExtrusionBucket",yh,{omit:["layers","features"]});var dm={get paint(){return kd=kd||new bi({"fill-extrusion-opacity":new Be(K["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Ue(K["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Be(K["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Be(K["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new fn(K["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Ue(K["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Ue(K["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Be(K["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class pm extends fr{constructor(e,i){super(e,dm,i)}createBucket(e){return new yh(e)}queryRadius(){return ru(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature({queryGeometry:e,feature:i,featureState:a,geometry:o,transform:u,pixelsToTileUnits:h,pixelPosMatrix:f}){const _=nu(e,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),-u.bearingInRadians,h),y=this.paint.get("fill-extrusion-height").evaluate(i,a),v=this.paint.get("fill-extrusion-base").evaluate(i,a),b=(function(P,E){const A=[];for(const R of P){const O=[R.x,R.y,0,1];tn(O,O,E),A.push(new Ee(O[0]/O[3],O[1]/O[3]))}return A})(_,f),S=(function(P,E,A,R){const O=[],G=[],B=R[8]*E,V=R[9]*E,H=R[10]*E,ee=R[11]*E,se=R[8]*A,ge=R[9]*A,ye=R[10]*A,ve=R[11]*A;for(const Ce of P){const Te=[],xe=[];for(const pe of Ce){const ke=pe.x,Re=pe.y,Ve=R[0]*ke+R[4]*Re+R[12],Fe=R[1]*ke+R[5]*Re+R[13],Je=R[2]*ke+R[6]*Re+R[14],Pt=R[3]*ke+R[7]*Re+R[15],Wt=Je+H,gi=Pt+ee,Mr=Ve+se,Ri=Fe+ge,oi=Je+ye,yi=Pt+ve,jt=new Ee((Ve+B)/gi,(Fe+V)/gi);jt.z=Wt/gi,Te.push(jt);const li=new Ee(Mr/yi,Ri/yi);li.z=oi/yi,xe.push(li)}O.push(Te),G.push(xe)}return[O,G]})(o,v,y,f);return(function(P,E,A){let R=1/0;ad(A,E)&&(R=Rd(A,E[0]));for(let O=0;Oi.id)),this.index=e.index,this.hasDependencies=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((i=>{this.gradients[i.id]={}})),this.layoutVertexArray=new Z,this.layoutVertexArray2=new X,this.indexArray=new le,this.programConfigurations=new Zn(e.layers,e.zoom),this.segments=new _e,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((i=>i.isStateDependent())).map((i=>i.id))}populate(e,i,a){this.hasDependencies=au("line",this.layers,i)||this.hasLineDasharray(this.layers);const o=this.layers[0].layout.get("line-sort-key"),u=!o.isConstant(),h=[];for(const{feature:f,id:_,index:y,sourceLayerIndex:v}of e){const b=this.layers[0]._featureFilter.needGeometry,S=mn(f,b);if(!this.layers[0]._featureFilter.filter(new pt(this.zoom),S,a))continue;const P=u?o.evaluate(S,{},a):void 0,E={id:_,properties:f.properties,type:f.type,sourceLayerIndex:v,index:y,geometry:b?S.geometry:$i(f),patterns:{},dashes:{},sortKey:P};h.push(E)}u&&h.sort(((f,_)=>f.sortKey-_.sortKey));for(const f of h){const{geometry:_,index:y,sourceLayerIndex:v}=f;this.hasDependencies?(au("line",this.layers,i)?ph("line",this.layers,f,{zoom:this.zoom},i):this.hasLineDasharray(this.layers)&&this.addLineDashDependencies(this.layers,f,this.zoom,i),this.patternFeatures.push(f)):this.addFeature(f,_,y,a,{},{},i.subdivisionGranularity),i.featureIndex.insert(e[y].feature,_,y,v,this.index)}}update(e,i,a,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,i,this.stateDependentLayers,{imagePositions:a,dashPositions:o})}addFeatures(e,i,a,o){for(const u of this.patternFeatures)this.addFeature(u,u.geometry,u.index,i,a,o,e.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=e.createVertexBuffer(this.layoutVertexArray2,gm)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,mm),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(e){if(e.properties&&Object.prototype.hasOwnProperty.call(e.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(e.properties,"mapbox_clip_end"))return{start:+e.properties.mapbox_clip_start,end:+e.properties.mapbox_clip_end}}addFeature(e,i,a,o,u,h,f){const _=this.layers[0].layout,y=_.get("line-join").evaluate(e,{}),v=_.get("line-cap"),b=_.get("line-miter-limit"),S=_.get("line-round-limit");this.lineClips=this.lineFeatureClips(e);for(const P of i)this.addLine(P,e,y,v,b,S,o,f);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{imagePositions:u,dashPositions:h,canonical:o})}addLine(e,i,a,o,u,h,f,_){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,e=Ms(e,f?_.line.getGranularityForZoomLevel(f.z):1),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let B=0;B=2&&e[v-1].equals(e[v-2]);)v--;let b=0;for(;b0;if(ye&&B>b){const xe=E.dist(A);if(xe>2*S){const pe=E.sub(E.sub(A)._mult(S/xe)._round());this.updateDistance(A,pe),this.addCurrentVertex(pe,O,0,0,P),A=pe}}const Ce=A&&R;let Te=Ce?a:y?"butt":o;if(Ce&&Te==="round"&&(seu&&(Te="bevel"),Te==="bevel"&&(se>2&&(Te="flipbevel"),se100)V=G.mult(-1);else{const xe=se*O.add(G).mag()/O.sub(G).mag();V._perp()._mult(xe*(ve?-1:1))}this.addCurrentVertex(E,V,0,0,P),this.addCurrentVertex(E,V.mult(-1),0,0,P)}else if(Te==="bevel"||Te==="fakeround"){const xe=-Math.sqrt(se*se-1),pe=ve?xe:0,ke=ve?0:xe;if(A&&this.addCurrentVertex(E,O,pe,ke,P),Te==="fakeround"){const Re=Math.round(180*ge/Math.PI/20);for(let Ve=1;Ve2*S){const pe=E.add(R.sub(E)._mult(S/xe)._round());this.updateDistance(E,pe),this.addCurrentVertex(pe,G,0,0,P),E=pe}}}}addCurrentVertex(e,i,a,o,u,h=!1){const f=i.y*o-i.x,_=-i.y-i.x*o;this.addHalfVertex(e,i.x+i.y*a,i.y-i.x*a,h,!1,a,u),this.addHalfVertex(e,f,_,h,!0,-o,u),this.distance>Ld/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,i,a,o,u,h))}addHalfVertex({x:e,y:i},a,o,u,h,f,_){const y=.5*(this.lineClips?this.scaledDistance*(Ld-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((e<<1)+(u?1:0),(i<<1)+(h?1:0),Math.round(63*a)+128,Math.round(63*o)+128,1+(f===0?0:f<0?-1:1)|(63&y)<<2,y>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const v=_.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,v,this.e2),_.primitiveLength++),h?this.e2=v:this.e1=v}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(e,i){this.distance+=e.dist(i),this.updateScaledDistance()}hasLineDasharray(e){for(const i of e){const a=i.paint.get("line-dasharray");if(a&&!a.isConstant())return!0}return!1}addLineDashDependencies(e,i,a,o){for(const u of e){const h=u.paint.get("line-dasharray");if(!h||h.value.kind==="constant")continue;const f=u.layout.get("line-cap")==="round",_={dasharray:h.value.evaluate({zoom:a-1},i,{}),round:f},y={dasharray:h.value.evaluate({zoom:a},i,{}),round:f},v={dasharray:h.value.evaluate({zoom:a+1},i,{}),round:f},b=`${_.dasharray.join(",")},${_.round}`,S=`${y.dasharray.join(",")},${y.round}`,P=`${v.dasharray.join(",")},${v.round}`;o.dashDependencies[b]=_,o.dashDependencies[S]=y,o.dashDependencies[P]=v,i.dashes[u.id]={min:b,mid:S,max:P}}}}let Fd,Bd;De("LineBucket",xh,{omit:["layers","patternFeatures"]});var Od={get paint(){return Bd=Bd||new bi({"line-opacity":new Ue(K.paint_line["line-opacity"]),"line-color":new Ue(K.paint_line["line-color"]),"line-translate":new Be(K.paint_line["line-translate"]),"line-translate-anchor":new Be(K.paint_line["line-translate-anchor"]),"line-width":new Ue(K.paint_line["line-width"]),"line-gap-width":new Ue(K.paint_line["line-gap-width"]),"line-offset":new Ue(K.paint_line["line-offset"]),"line-blur":new Ue(K.paint_line["line-blur"]),"line-dasharray":new fn(K.paint_line["line-dasharray"]),"line-pattern":new fn(K.paint_line["line-pattern"]),"line-gradient":new va(K.paint_line["line-gradient"])})},get layout(){return Fd=Fd||new bi({"line-cap":new Be(K.layout_line["line-cap"]),"line-join":new Ue(K.layout_line["line-join"]),"line-miter-limit":new Be(K.layout_line["line-miter-limit"]),"line-round-limit":new Be(K.layout_line["line-round-limit"]),"line-sort-key":new Ue(K.layout_line["line-sort-key"])})}};class xm extends Ue{possiblyEvaluate(e,i){return i=new pt(Math.floor(i.zoom),{now:i.now,fadeDuration:i.fadeDuration,zoomHistory:i.zoomHistory,transition:i.transition}),super.possiblyEvaluate(e,i)}evaluate(e,i,a,o){return i=Ei({},i,{zoom:Math.floor(i.zoom)}),super.evaluate(e,i,a,o)}}let cu;class vm extends fr{constructor(e,i){super(e,Od,i),this.gradientVersion=0,cu||(cu=new xm(Od.paint.properties["line-width"].specification),cu.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(e){if(e==="line-gradient"){const i=this.gradientExpression();this.stepInterpolant=!!(function(a){return a._styleExpression!==void 0})(i)&&i._styleExpression.expression instanceof Rn,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(e,i){super.recalculate(e,i),this.paint._values["line-floorwidth"]=cu.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)}createBucket(e){return new xh(e)}queryRadius(e){const i=e,a=Vd(So("line-width",this,i),So("line-gap-width",this,i)),o=So("line-offset",this,i);return a/2+Math.abs(o)+ru(this.paint.get("line-translate"))}queryIntersectsFeature({queryGeometry:e,feature:i,featureState:a,geometry:o,transform:u,pixelsToTileUnits:h}){const f=nu(e,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),-u.bearingInRadians,h),_=h/2*Vd(this.paint.get("line-width").evaluate(i,a),this.paint.get("line-gap-width").evaluate(i,a)),y=this.paint.get("line-offset").evaluate(i,a);return y&&(o=(function(v,b){const S=[];for(let P=0;P=3){for(let A=0;A0?e+2*r:r}const bm=Ot([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),wm=Ot([{name:"a_projected_pos",components:3,type:"Float32"}],4);Ot([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const Tm=Ot([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_box_real",components:2,type:"Int16"}]);Ot([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const jd=Ot([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Sm=Ot([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Pm(r,e,i){return r.sections.forEach((a=>{a.text=(function(o,u,h){const f=u.layout.get("text-transform").evaluate(h,{});return f==="uppercase"?o=o.toLocaleUpperCase():f==="lowercase"&&(o=o.toLocaleLowerCase()),Nr.applyArabicShaping&&(o=Nr.applyArabicShaping(o)),o})(a.text,e,i)})),r}Ot([{name:"triangle",components:3,type:"Uint16"}]),Ot([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Ot([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",name:"collisionCircleDiameter"},{type:"Uint16",name:"textAnchorOffsetStartIndex"},{type:"Uint16",name:"textAnchorOffsetEndIndex"}]),Ot([{type:"Float32",name:"offsetX"}]),Ot([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),Ot([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);var ei=24;const Gl={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","⋯":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"},Mm={10:!0,32:!0,38:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0},Im={40:!0};function Nd(r,e,i,a,o,u){if("fontStack"in e){const h=i[e.fontStack],f=h&&h[r];return f?f.metrics.advance*e.scale+o:0}{const h=a[e.imageName];return h?h.displaySize[0]*e.scale*ei/u+o:0}}function Ud(r,e,i,a){const o=Math.pow(r-e,2);return a?rMath.max(e,this.sections[i].scale)),0)}getMaxImageSize(e){let i=0,a=0;for(let o=0;oa)))}addImageSection(e){const i=e.image?e.image.name:"";if(i.length===0)return void di("Can't add FormattedSection with an empty image.");const a=this.getNextImageSectionCharCode();a?(this.text+=String.fromCharCode(a),this.sections.push({scale:1,verticalAlign:e.verticalAlign||"bottom",imageName:i}),this.sectionIndex.push(this.sections.length-1)):di("Reached maximum number of images 6401")}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}determineLineBreaks(e,i,a,o,u){const h=[],f=this.determineAverageLineWidth(e,i,a,o,u),_=this.hasZeroWidthSpaces();let y=0,v=0;const b=this.text[Symbol.iterator]();let S=b.next();const P=this.text[Symbol.iterator]();P.next();let E=P.next();const A=this.text[Symbol.iterator]();A.next(),A.next();let R=A.next();for(;!S.done;){const O=this.getSection(v),G=S.value.codePointAt(0);if(Gc(G)||(y+=Nd(G,O,a,o,e,u)),!E.done){const B=ih(G),V=E.value.codePointAt(0);(Mm[G]||B||"imageName"in O||!R.done&&Im[V])&&h.push(Gd(v+1,y,f,h,Em(G,V,B&&_),!1))}v++,S=b.next(),E=P.next(),R=A.next()}return qd(Gd(this.length(),y,f,h,0,!0))}determineAverageLineWidth(e,i,a,o,u){let h=0,f=0;for(const _ of this.text){const y=this.getSection(f);h+=Nd(_.codePointAt(0),y,a,o,e,u),f++}return h/Math.max(1,Math.ceil(h/i))}}const vh=4294967296,Zd=1/vh,$d=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");class uu{constructor(e=new Uint8Array(16)){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer),this.pos=0,this.type=0,this.length=this.buf.length}readFields(e,i,a=this.length){for(;this.pos>3,h=this.pos;this.type=7&o,e(u,i,this),this.pos===h&&this.skip(o)}return i}readMessage(e,i){return this.readFields(e,i,this.readVarint()+this.pos)}readFixed32(){const e=this.dataView.getUint32(this.pos,!0);return this.pos+=4,e}readSFixed32(){const e=this.dataView.getInt32(this.pos,!0);return this.pos+=4,e}readFixed64(){const e=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*vh;return this.pos+=8,e}readSFixed64(){const e=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*vh;return this.pos+=8,e}readFloat(){const e=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,e}readDouble(){const e=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,e}readVarint(e){const i=this.buf;let a,o;return o=i[this.pos++],a=127&o,o<128?a:(o=i[this.pos++],a|=(127&o)<<7,o<128?a:(o=i[this.pos++],a|=(127&o)<<14,o<128?a:(o=i[this.pos++],a|=(127&o)<<21,o<128?a:(o=i[this.pos],a|=(15&o)<<28,(function(u,h,f){const _=f.buf;let y,v;if(v=_[f.pos++],y=(112&v)>>4,v<128||(v=_[f.pos++],y|=(127&v)<<3,v<128)||(v=_[f.pos++],y|=(127&v)<<10,v<128)||(v=_[f.pos++],y|=(127&v)<<17,v<128)||(v=_[f.pos++],y|=(127&v)<<24,v<128)||(v=_[f.pos++],y|=(1&v)<<31,v<128))return Co(u,y,h);throw new Error("Expected varint not more than 10 bytes")})(a,e,this)))))}readVarint64(){return this.readVarint(!0)}readSVarint(){const e=this.readVarint();return e%2==1?(e+1)/-2:e/2}readBoolean(){return!!this.readVarint()}readString(){const e=this.readVarint()+this.pos,i=this.pos;return this.pos=e,e-i>=12&&$d?$d.decode(this.buf.subarray(i,e)):(function(a,o,u){let h="",f=o;for(;f239?4:_>223?3:_>191?2:1;if(f+P>u)break;P===1?_<128&&(S=_):P===2?(y=a[f+1],(192&y)==128&&(S=(31&_)<<6|63&y,S<=127&&(S=null))):P===3?(y=a[f+1],v=a[f+2],(192&y)==128&&(192&v)==128&&(S=(15&_)<<12|(63&y)<<6|63&v,(S<=2047||S>=55296&&S<=57343)&&(S=null))):P===4&&(y=a[f+1],v=a[f+2],b=a[f+3],(192&y)==128&&(192&v)==128&&(192&b)==128&&(S=(15&_)<<18|(63&y)<<12|(63&v)<<6|63&b,(S<=65535||S>=1114112)&&(S=null))),S===null?(S=65533,P=1):S>65535&&(S-=65536,h+=String.fromCharCode(S>>>10&1023|55296),S=56320|1023&S),h+=String.fromCharCode(S),f+=P}return h})(this.buf,i,e)}readBytes(){const e=this.readVarint()+this.pos,i=this.buf.subarray(this.pos,e);return this.pos=e,i}readPackedVarint(e=[],i){const a=this.readPackedEnd();for(;this.pos127;);else if(i===2)this.pos=this.readVarint()+this.pos;else if(i===5)this.pos+=4;else{if(i!==1)throw new Error(`Unimplemented type: ${i}`);this.pos+=8}}writeTag(e,i){this.writeVarint(e<<3|i)}realloc(e){let i=this.length||16;for(;i268435455||e<0?(function(i,a){let o,u;if(i>=0?(o=i%4294967296|0,u=i/4294967296|0):(o=~(-i%4294967296),u=~(-i/4294967296),4294967295^o?o=o+1|0:(o=0,u=u+1|0)),i>=18446744073709552e3||i<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");a.realloc(10),(function(h,f,_){_.buf[_.pos++]=127&h|128,h>>>=7,_.buf[_.pos++]=127&h|128,h>>>=7,_.buf[_.pos++]=127&h|128,h>>>=7,_.buf[_.pos++]=127&h|128,_.buf[_.pos]=127&(h>>>=7)})(o,0,a),(function(h,f){const _=(7&h)<<4;f.buf[f.pos++]|=_|((h>>>=3)?128:0),h&&(f.buf[f.pos++]=127&h|((h>>>=7)?128:0),h&&(f.buf[f.pos++]=127&h|((h>>>=7)?128:0),h&&(f.buf[f.pos++]=127&h|((h>>>=7)?128:0),h&&(f.buf[f.pos++]=127&h|((h>>>=7)?128:0),h&&(f.buf[f.pos++]=127&h)))))})(u,a)})(e,this):(this.realloc(4),this.buf[this.pos++]=127&e|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=e>>>7&127))))}writeSVarint(e){this.writeVarint(e<0?2*-e-1:2*e)}writeBoolean(e){this.writeVarint(+e)}writeString(e){e=String(e),this.realloc(4*e.length),this.pos++;const i=this.pos;this.pos=(function(o,u,h){for(let f,_,y=0;y55295&&f<57344){if(!_){f>56319||y+1===u.length?(o[h++]=239,o[h++]=191,o[h++]=189):_=f;continue}if(f<56320){o[h++]=239,o[h++]=191,o[h++]=189,_=f;continue}f=_-55296<<10|f-56320|65536,_=null}else _&&(o[h++]=239,o[h++]=191,o[h++]=189,_=null);f<128?o[h++]=f:(f<2048?o[h++]=f>>6|192:(f<65536?o[h++]=f>>12|224:(o[h++]=f>>18|240,o[h++]=f>>12&63|128),o[h++]=f>>6&63|128),o[h++]=63&f|128)}return h})(this.buf,e,this.pos);const a=this.pos-i;a>=128&&Wd(i,a,this),this.pos=i-1,this.writeVarint(a),this.pos+=a}writeFloat(e){this.realloc(4),this.dataView.setFloat32(this.pos,e,!0),this.pos+=4}writeDouble(e){this.realloc(8),this.dataView.setFloat64(this.pos,e,!0),this.pos+=8}writeBytes(e){const i=e.length;this.writeVarint(i),this.realloc(i);for(let a=0;a=128&&Wd(a,o,this),this.pos=a-1,this.writeVarint(o),this.pos+=o}writeMessage(e,i,a){this.writeTag(e,2),this.writeRawMessage(i,a)}writePackedVarint(e,i){i.length&&this.writeMessage(e,Cm,i)}writePackedSVarint(e,i){i.length&&this.writeMessage(e,Am,i)}writePackedBoolean(e,i){i.length&&this.writeMessage(e,km,i)}writePackedFloat(e,i){i.length&&this.writeMessage(e,zm,i)}writePackedDouble(e,i){i.length&&this.writeMessage(e,Dm,i)}writePackedFixed32(e,i){i.length&&this.writeMessage(e,Rm,i)}writePackedSFixed32(e,i){i.length&&this.writeMessage(e,Lm,i)}writePackedFixed64(e,i){i.length&&this.writeMessage(e,Fm,i)}writePackedSFixed64(e,i){i.length&&this.writeMessage(e,Bm,i)}writeBytesField(e,i){this.writeTag(e,2),this.writeBytes(i)}writeFixed32Field(e,i){this.writeTag(e,5),this.writeFixed32(i)}writeSFixed32Field(e,i){this.writeTag(e,5),this.writeSFixed32(i)}writeFixed64Field(e,i){this.writeTag(e,1),this.writeFixed64(i)}writeSFixed64Field(e,i){this.writeTag(e,1),this.writeSFixed64(i)}writeVarintField(e,i){this.writeTag(e,0),this.writeVarint(i)}writeSVarintField(e,i){this.writeTag(e,0),this.writeSVarint(i)}writeStringField(e,i){this.writeTag(e,2),this.writeString(i)}writeFloatField(e,i){this.writeTag(e,5),this.writeFloat(i)}writeDoubleField(e,i){this.writeTag(e,1),this.writeDouble(i)}writeBooleanField(e,i){this.writeVarintField(e,+i)}}function Co(r,e,i){return i?4294967296*e+(r>>>0):4294967296*(e>>>0)+(r>>>0)}function Wd(r,e,i){const a=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(a);for(let o=i.pos-1;o>=r;o--)i.buf[o+a]=i.buf[o]}function Cm(r,e){for(let i=0;if.h-h.h));const a=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),i),h:1/0}];let o=0,u=0;for(const h of r)for(let f=a.length-1;f>=0;f--){const _=a[f];if(!(h.w>_.w||h.h>_.h)){if(h.x=_.x,h.y=_.y,u=Math.max(u,h.y+h.h),o=Math.max(o,h.x+h.w),h.w===_.w&&h.h===_.h){const y=a.pop();y&&fA.toCodeUnitIndex(se)));const ee=G(A.toString(),O);for(const se of ee){const ge=[...se].map((()=>0));R.push(new Eo(se,A.sections,ge))}}else if(B){R=[],O=O.map((ye=>A.toCodeUnitIndex(ye)));let ee=0;const se=[];for(const ye of A.text)se.push(...Array(ye.length).fill(A.sectionIndex[ee])),ee++;const ge=B(A.text,se,O);for(const ye of ge){const ve=[];let Ce="";for(const Te of ye[0])ve.push(ye[1][Ce.length]),Ce+=Te;R.push(new Eo(ye[0],A.sections,ve))}}else R=(function(ee,se){const ge=[];let ye=0;for(const ve of se)ge.push(ee.substring(ye,ve)),ye=ve;return yey){const v=Math.ceil(u/y);o*=v/h,h=v}return{x1:a,y1:o,x2:a+u,y2:o+h}}function Jd(r,e,i,a,o,u){const h=r.image;let f;if(h.content){const R=h.content,O=h.pixelRatio||1;f=[R[0]/O,R[1]/O,h.displaySize[0]-R[2]/O,h.displaySize[1]-R[3]/O]}const _=e.left*u,y=e.right*u;let v,b,S,P;i==="width"||i==="both"?(P=o[0]+_-a[3],b=o[0]+y+a[1]):(P=o[0]+(_+y-h.displaySize[0])/2,b=P+h.displaySize[0]);const E=e.top*u,A=e.bottom*u;return i==="height"||i==="both"?(v=o[1]+E-a[0],S=o[1]+A+a[2]):(v=o[1]+(E+A-h.displaySize[1])/2,S=v+h.displaySize[1]),{image:h,top:v,right:b,bottom:S,left:P,collisionPadding:f}}De("ImagePosition",bh),De("ImageAtlas",Xd),k.az=void 0,(Sa=k.az||(k.az={}))[Sa.none=0]="none",Sa[Sa.horizontal=1]="horizontal",Sa[Sa.vertical=2]="vertical",Sa[Sa.horizontalOnly=3]="horizontalOnly";const $n=128,Pa=32640;function Qd(r,e){const{expression:i}=e;if(i.kind==="constant")return{kind:"constant",layoutSize:i.evaluate(new pt(r+1))};if(i.kind==="source")return{kind:"source"};{const{zoomStops:a,interpolationType:o}=i;let u=0;for(;uh.id)),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasDependencies=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[];const i=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Qd(this.zoom,i["text-size"]),this.iconSizeData=Qd(this.zoom,i["icon-size"]);const a=this.layers[0].layout,o=a.get("symbol-sort-key"),u=a.get("symbol-z-order");this.canOverlap=Th(a,"text-overlap","text-allow-overlap")!=="never"||Th(a,"icon-overlap","icon-allow-overlap")!=="never"||a.get("text-ignore-placement")||a.get("icon-ignore-placement"),this.sortFeaturesByKey=u!=="viewport-y"&&!o.isConstant(),this.sortFeaturesByY=(u==="viewport-y"||u==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,a.get("symbol-placement")==="point"&&(this.writingModes=a.get("text-writing-mode").map((h=>k.az[h]))),this.stateDependentLayerIds=this.layers.filter((h=>h.isStateDependent())).map((h=>h.id)),this.sourceID=e.sourceID}createArrays(){this.text=new Ph(new Zn(this.layers,this.zoom,(e=>/^text/.test(e)))),this.icon=new Ph(new Zn(this.layers,this.zoom,(e=>/^icon/.test(e)))),this.glyphOffsetArray=new x,this.lineVertexArray=new w,this.symbolInstances=new g,this.textAnchorOffsets=new I}calculateGlyphDependencies(e,i,a,o,u){for(const h of e)if(i[h.codePointAt(0)]=!0,(a||o)&&u){const f=Gl[h];f&&(i[f.codePointAt(0)]=!0)}}populate(e,i,a){const o=this.layers[0],u=o.layout,h=u.get("text-font"),f=u.get("text-field"),_=u.get("icon-image"),y=(f.value.kind!=="constant"||f.value.value instanceof Bi&&!f.value.value.isEmpty()||f.value.value.toString().length>0)&&(h.value.kind!=="constant"||h.value.value.length>0),v=_.value.kind!=="constant"||!!_.value.value||Object.keys(_.parameters).length>0,b=u.get("symbol-sort-key");if(this.features=[],!y&&!v)return;const S=i.iconDependencies,P=i.glyphDependencies,E=i.availableImages,A=new pt(this.zoom);for(const{feature:R,id:O,index:G,sourceLayerIndex:B}of e){const V=o._featureFilter.needGeometry,H=mn(R,V);if(!o._featureFilter.filter(A,H,a))continue;let ee,se;if(V||(H.geometry=$i(R)),y){const ye=o.getValueAndResolveTokens("text-field",H,a,E),ve=Bi.factory(ye),Ce=this.hasRTLText=this.hasRTLText||Hm(ve);(!Ce||Nr.getRTLTextPluginStatus()==="unavailable"||Ce&&Nr.isParsed())&&(ee=Pm(ve,o,H))}if(v){const ye=o.getValueAndResolveTokens("icon-image",H,a,E);se=ye instanceof Oi?ye:Oi.fromString(ye)}if(!ee&&!se)continue;const ge=this.sortFeaturesByKey?b.evaluate(H,{},a):void 0;if(this.features.push({id:O,text:ee,icon:se,index:G,sourceLayerIndex:B,geometry:H.geometry,properties:R.properties,type:jl.types[R.type],sortKey:ge}),se&&(S[se.name]=!0),ee){const ye=h.evaluate(H,{},a).join(","),ve=u.get("text-rotation-alignment")!=="viewport"&&u.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(k.az.vertical)>=0;for(const Ce of ee.sections)if(Ce.image)S[Ce.image.name]=!0;else{const Te=ml(ee.toString()),xe=Ce.fontStack||ye,pe=P[xe]=P[xe]||{};this.calculateGlyphDependencies(Ce.text,pe,ve,this.allowVerticalPlacement,Te)}}}u.get("symbol-placement")==="line"&&(this.features=(function(R){const O={},G={},B=[];let V=0;function H(ye){B.push(R[ye]),V++}function ee(ye,ve,Ce){const Te=G[ye];return delete G[ye],G[ve]=Te,B[Te].geometry[0].pop(),B[Te].geometry[0]=B[Te].geometry[0].concat(Ce[0]),Te}function se(ye,ve,Ce){const Te=O[ve];return delete O[ve],O[ye]=Te,B[Te].geometry[0].shift(),B[Te].geometry[0]=Ce[0].concat(B[Te].geometry[0]),Te}function ge(ye,ve,Ce){const Te=Ce?ve[0][ve[0].length-1]:ve[0][0];return`${ye}:${Te.x}:${Te.y}`}for(let ye=0;yeye.geometry))})(this.features)),this.sortFeaturesByKey&&this.features.sort(((R,O)=>R.sortKey-O.sortKey))}update(e,i,a){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,i,this.layers,{imagePositions:a}),this.icon.programConfigurations.updatePaintArrays(e,i,this.layers,{imagePositions:a}))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(e){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(e),this.iconCollisionBox.upload(e)),this.text.upload(e,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(e,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(e,i){const a=this.lineVertexArray.length;if(e.segment!==void 0){let o=e.dist(i[e.segment+1]),u=e.dist(i[e.segment]);const h={};for(let f=e.segment+1;f=0;f--)h[f]={x:i[f].x,y:i[f].y,tileUnitDistanceFromAnchor:u},f>0&&(u+=i[f-1].dist(i[f]));for(let f=0;f0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(e,i){const a=e.placedSymbolArray.get(i),o=a.vertexStartIndex+4*a.numGlyphs;for(let u=a.vertexStartIndex;uo[f]-o[_]||u[_]-u[f])),h}addToSortKeyRanges(e,i){const a=this.sortKeyRanges[this.sortKeyRanges.length-1];a&&a.sortKey===i?a.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:i,symbolInstanceStart:e,symbolInstanceEnd:e+1})}sortFeatures(e){if(this.sortFeaturesByY&&this.sortedAngle!==e&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(e),this.sortedAngle=e,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const i of this.symbolInstanceIndexes){const a=this.symbolInstances.get(i);this.featureSortOrder.push(a.featureIndex),[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach(((o,u,h)=>{o>=0&&h.indexOf(o)===u&&this.addIndicesForPlacedSymbol(this.text,o)})),a.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,a.verticalPlacedTextSymbolIndex),a.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.placedIconSymbolIndex),a.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let ep,tp;De("SymbolBucket",Ao,{omit:["layers","collisionBoxArray","features","compareText"]}),Ao.MAX_GLYPHS=65535,Ao.addDynamicAttributes=Sh;var Ih={get paint(){return tp=tp||new bi({"icon-opacity":new Ue(K.paint_symbol["icon-opacity"]),"icon-color":new Ue(K.paint_symbol["icon-color"]),"icon-halo-color":new Ue(K.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ue(K.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ue(K.paint_symbol["icon-halo-blur"]),"icon-translate":new Be(K.paint_symbol["icon-translate"]),"icon-translate-anchor":new Be(K.paint_symbol["icon-translate-anchor"]),"text-opacity":new Ue(K.paint_symbol["text-opacity"]),"text-color":new Ue(K.paint_symbol["text-color"],{runtimeType:Ki,getOverride:r=>r.textColor,hasOverride:r=>!!r.textColor}),"text-halo-color":new Ue(K.paint_symbol["text-halo-color"]),"text-halo-width":new Ue(K.paint_symbol["text-halo-width"]),"text-halo-blur":new Ue(K.paint_symbol["text-halo-blur"]),"text-translate":new Be(K.paint_symbol["text-translate"]),"text-translate-anchor":new Be(K.paint_symbol["text-translate-anchor"])})},get layout(){return ep=ep||new bi({"symbol-placement":new Be(K.layout_symbol["symbol-placement"]),"symbol-spacing":new Be(K.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Be(K.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ue(K.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Be(K.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Be(K.layout_symbol["icon-allow-overlap"]),"icon-overlap":new Be(K.layout_symbol["icon-overlap"]),"icon-ignore-placement":new Be(K.layout_symbol["icon-ignore-placement"]),"icon-optional":new Be(K.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Be(K.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ue(K.layout_symbol["icon-size"]),"icon-text-fit":new Be(K.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Be(K.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ue(K.layout_symbol["icon-image"]),"icon-rotate":new Ue(K.layout_symbol["icon-rotate"]),"icon-padding":new Ue(K.layout_symbol["icon-padding"]),"icon-keep-upright":new Be(K.layout_symbol["icon-keep-upright"]),"icon-offset":new Ue(K.layout_symbol["icon-offset"]),"icon-anchor":new Ue(K.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Be(K.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Be(K.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Be(K.layout_symbol["text-rotation-alignment"]),"text-field":new Ue(K.layout_symbol["text-field"]),"text-font":new Ue(K.layout_symbol["text-font"]),"text-size":new Ue(K.layout_symbol["text-size"]),"text-max-width":new Ue(K.layout_symbol["text-max-width"]),"text-line-height":new Be(K.layout_symbol["text-line-height"]),"text-letter-spacing":new Ue(K.layout_symbol["text-letter-spacing"]),"text-justify":new Ue(K.layout_symbol["text-justify"]),"text-radial-offset":new Ue(K.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Be(K.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new Ue(K.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new Ue(K.layout_symbol["text-anchor"]),"text-max-angle":new Be(K.layout_symbol["text-max-angle"]),"text-writing-mode":new Be(K.layout_symbol["text-writing-mode"]),"text-rotate":new Ue(K.layout_symbol["text-rotate"]),"text-padding":new Be(K.layout_symbol["text-padding"]),"text-keep-upright":new Be(K.layout_symbol["text-keep-upright"]),"text-transform":new Ue(K.layout_symbol["text-transform"]),"text-offset":new Ue(K.layout_symbol["text-offset"]),"text-allow-overlap":new Be(K.layout_symbol["text-allow-overlap"]),"text-overlap":new Be(K.layout_symbol["text-overlap"]),"text-ignore-placement":new Be(K.layout_symbol["text-ignore-placement"]),"text-optional":new Be(K.layout_symbol["text-optional"])})}};class ip{constructor(e){if(e.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=e.property.overrides?e.property.overrides.runtimeType:Dr,this.defaultValue=e}evaluate(e){if(e.formattedSection){const i=this.defaultValue.property.overrides;if(i&&i.hasOverride(e.formattedSection))return i.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){this.defaultValue.isConstant()||e(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}De("FormatSectionOverride",ip,{omit:["defaultValue"]});class pu extends fr{constructor(e,i){super(e,Ih,i)}recalculate(e,i){if(super.recalculate(e,i),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")==="map"?"map":"viewport"),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){const a=this.layout.get("text-writing-mode");if(a){const o=[];for(const u of a)o.indexOf(u)<0&&o.push(u);this.layout._values["text-writing-mode"]=o}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(e,i,a,o){const u=this.layout.get(e).evaluate(i,{},a,o),h=this._unevaluatedLayout._values[e];return h.isDataDriven()||ro(h.value)||!u?u:(function(f,_){return _.replace(/{([^{}]+)}/g,((y,v)=>f&&v in f?String(f[v]):""))})(i.properties,u)}createBucket(e){return new Ao(e)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const e of Ih.paint.overridableProperties){if(!pu.hasPaintOverride(this.layout,e))continue;const i=this.paint.get(e),a=new ip(i),o=new rl(a,i.property.specification);let u=null;u=i.value.kind==="constant"||i.value.kind==="source"?new no("source",o):new nl("composite",o,i.value.zoomStops),this.paint._values[e]=new pr(i.property,u,i.parameters)}}_handleOverridablePaintPropertyUpdate(e,i,a){return!(!this.layout||i.isDataDriven()||a.isDataDriven())&&pu.hasPaintOverride(this.layout,e)}static hasPaintOverride(e,i){const a=e.get("text-field"),o=Ih.paint.properties[i];let u=!1;const h=f=>{for(const _ of f)if(o.overrides&&o.overrides.hasOverride(_))return void(u=!0)};if(a.value.kind==="constant"&&a.value.value instanceof Bi)h(a.value.value.sections);else if(a.value.kind==="source"||a.value.kind==="composite"){const f=y=>{u||(y instanceof Lr&&Mt(y.value)===aa?h(y.value.sections):y instanceof Gs?h(y.sections):y.eachChild(f))},_=a.value;_._styleExpression&&f(_._styleExpression.expression)}return u}}let rp;var Xm={get paint(){return rp=rp||new bi({"background-color":new Be(K.paint_background["background-color"]),"background-pattern":new Xc(K.paint_background["background-pattern"]),"background-opacity":new Be(K.paint_background["background-opacity"])})}};class Ym extends fr{constructor(e,i){super(e,Xm,i)}}class Km extends fr{constructor(e,i){super(e,{},i),this.onAdd=a=>{this.implementation.onAdd&&this.implementation.onAdd(a,a.painter.context.gl)},this.onRemove=a=>{this.implementation.onRemove&&this.implementation.onRemove(a,a.painter.context.gl)},this.implementation=e}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error("Custom layers cannot be serialized")}}class Jm{constructor(e){this._methodToThrottle=e,this._triggered=!1,typeof MessageChannel<"u"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._methodToThrottle()}),0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}}const Qm={once:!0},Eh=63710088e-1;class Ma{constructor(e,i){if(isNaN(e)||isNaN(i))throw new Error(`Invalid LngLat object: (${e}, ${i})`);if(this.lng=+e,this.lat=+i,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new Ma(ui(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(e){const i=Math.PI/180,a=this.lat*i,o=e.lat*i,u=Math.sin(a)*Math.sin(o)+Math.cos(a)*Math.cos(o)*Math.cos((e.lng-this.lng)*i);return Eh*Math.acos(Math.min(u,1))}static convert(e){if(e instanceof Ma)return e;if(Array.isArray(e)&&(e.length===2||e.length===3))return new Ma(Number(e[0]),Number(e[1]));if(!Array.isArray(e)&&typeof e=="object"&&e!==null)return new Ma(Number("lng"in e?e.lng:e.lon),Number(e.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const np=2*Math.PI*Eh;function ap(r){return np*Math.cos(r*Math.PI/180)}function sp(r){return(180+r)/360}function op(r){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r*Math.PI/360)))/360}function lp(r,e){return r/ap(e)}function cp(r){return 360*r-180}function fu(r){return 360/Math.PI*Math.atan(Math.exp((180-360*r)*Math.PI/180))-90}function up(r,e){return r*ap(fu(e))}class ql{constructor(e,i,a=0){this.x=+e,this.y=+i,this.z=+a}static fromLngLat(e,i=0){const a=Ma.convert(e);return new ql(sp(a.lng),op(a.lat),lp(i,a.lat))}toLngLat(){return new Ma(cp(this.x),fu(this.y))}toAltitude(){return up(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/np*(e=fu(this.y),1/Math.cos(e*Math.PI/180));var e}}function hp(r,e,i){var a=2*Math.PI*6378137/256/Math.pow(2,i);return[r*a-2*Math.PI*6378137/2,e*a-2*Math.PI*6378137/2]}class Ch{constructor(e,i,a){if(!(function(o,u,h){return!(o<0||o>25||h<0||h>=Math.pow(2,o)||u<0||u>=Math.pow(2,o))})(e,i,a))throw new Error(`x=${i}, y=${a}, z=${e} outside of bounds. 0<=x<${Math.pow(2,e)}, 0<=y<${Math.pow(2,e)} 0<=z<=25 `);this.z=e,this.x=i,this.y=a,this.key=zo(0,e,e,i,a)}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,i,a){const o=(h=this.y,f=this.z,_=hp(256*(u=this.x),256*(h=Math.pow(2,f)-h-1),f),y=hp(256*(u+1),256*(h+1),f),_[0]+","+_[1]+","+y[0]+","+y[1]);var u,h,f,_,y;const v=(function(b,S,P){let E,A="";for(let R=b;R>0;R--)E=1<1?"@2x":"").replace(/{quadkey}/g,v).replace(/{bbox-epsg-3857}/g,o)}isChildOf(e){const i=this.z-e.z;return i>0&&e.x===this.x>>i&&e.y===this.y>>i}getTilePoint(e){const i=Math.pow(2,this.z);return new Ee((e.x*i-this.x)*st,(e.y*i-this.y)*st)}toString(){return`${this.z}/${this.x}/${this.y}`}}class dp{constructor(e,i){this.wrap=e,this.canonical=i,this.key=zo(e,i.z,i.z,i.x,i.y)}}class rr{constructor(e,i,a,o,u){if(this.terrainRttPosMatrix32f=null,e= z; overscaledZ = ${e}; z = ${a}`);this.overscaledZ=e,this.wrap=i,this.canonical=new Ch(a,+o,+u),this.key=zo(i,e,a,o,u)}clone(){return new rr(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(e){return this.overscaledZ===e.overscaledZ&&this.wrap===e.wrap&&this.canonical.equals(e.canonical)}scaledTo(e){if(e>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);const i=this.canonical.z-e;return e>this.canonical.z?new rr(e,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new rr(e,this.wrap,e,this.canonical.x>>i,this.canonical.y>>i)}isOverscaled(){return this.overscaledZ>this.canonical.z}calculateScaledKey(e,i){if(e>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);const a=this.canonical.z-e;return e>this.canonical.z?zo(this.wrap*+i,e,this.canonical.z,this.canonical.x,this.canonical.y):zo(this.wrap*+i,e,e,this.canonical.x>>a,this.canonical.y>>a)}isChildOf(e){if(e.wrap!==this.wrap||this.overscaledZ-e.overscaledZ<=0)return!1;if(e.overscaledZ===0)return this.overscaledZ>0;const i=this.canonical.z-e.canonical.z;return!(i<0)&&e.canonical.x===this.canonical.x>>i&&e.canonical.y===this.canonical.y>>i}children(e){if(this.overscaledZ>=e)return[new rr(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const i=this.canonical.z+1,a=2*this.canonical.x,o=2*this.canonical.y;return[new rr(i,this.wrap,i,a,o),new rr(i,this.wrap,i,a+1,o),new rr(i,this.wrap,i,a,o+1),new rr(i,this.wrap,i,a+1,o+1)]}isLessThan(e){return this.wrape.wrap)&&(this.overscaledZe.overscaledZ)&&(this.canonical.xe.canonical.x)&&this.canonical.y=0&&e=0&&i=y)return null;let b=this.canonical.x+o,S=this.wrap;return b<0?(S-=Math.ceil(-b/y),b=(b%y+y)%y):b>=y&&(S+=Math.floor(b/y),b%=y),{tileID:new rr(this.overscaledZ,S,_,b,v),x:h,y:f}}}function zo(r,e,i,a,o){(r*=2)<0&&(r=-1*r-1);const u=1<u.key===a));o>-1&&r.addOrUpdateProperties.splice(o,1)}return(r.removeAllProperties||e.removeAllProperties)&&(i.removeAllProperties=!0),(r.removeProperties||e.removeProperties)&&(i.removeProperties=[...r.removeProperties||[],...e.removeProperties||[]]),(r.addOrUpdateProperties||e.addOrUpdateProperties)&&(i.addOrUpdateProperties=[...r.addOrUpdateProperties||[],...e.addOrUpdateProperties||[]]),(r.newGeometry||e.newGeometry)&&(i.newGeometry=e.newGeometry||r.newGeometry),i}function pp(r){var e,i;if(!r)return{};const a={};return a.removeAll=r.removeAll,a.remove=new Set(r.remove||[]),a.add=new Map((e=r.add)===null||e===void 0?void 0:e.map((o=>[o.id,o]))),a.update=new Map((i=r.update)===null||i===void 0?void 0:i.map((o=>[o.id,o]))),a}De("CanonicalTileID",Ch),De("OverscaledTileID",rr,{omit:["terrainRttPosMatrix32f"]});class Is{constructor(){this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0}extend(e){return this.minX=Math.min(this.minX,e.x),this.minY=Math.min(this.minY,e.y),this.maxX=Math.max(this.maxX,e.x),this.maxY=Math.max(this.maxY,e.y),this}expandBy(e){return this.minX-=e,this.minY-=e,this.maxX+=e,this.maxY+=e,(this.minX>this.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(e){return this.expandBy(-e)}map(e){const i=new Is;return i.extend(e(new Ee(this.minX,this.minY))),i.extend(e(new Ee(this.maxX,this.minY))),i.extend(e(new Ee(this.minX,this.maxY))),i.extend(e(new Ee(this.maxX,this.maxY))),i}static fromPoints(e){const i=new Is;for(const a of e)i.extend(a);return i}contains(e){return e.x>=this.minX&&e.x<=this.maxX&&e.y>=this.minY&&e.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(e){return!this.empty()&&!e.empty()&&e.minX>=this.minX&&e.maxX<=this.maxX&&e.minY>=this.minY&&e.maxY<=this.maxY}intersects(e){return!this.empty()&&!e.empty()&&e.minX<=this.maxX&&e.maxX>=this.minX&&e.minY<=this.maxY&&e.maxY>=this.minY}}class fp{constructor(e){this._stringToNumber={},this._numberToString=[];for(let i=0;i=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${e} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[e]}}class mp{constructor(e,i,a,o,u){this.type="Feature",this._vectorTileFeature=e,this._x=a,this._y=o,this._z=i,this.properties=e.properties,this.id=u}projectPoint(e,i,a,o){return[360*(e.x+i)/o-180,360/Math.PI*Math.atan(Math.exp((1-2*(e.y+a)/o)*Math.PI))-90]}projectLine(e,i,a,o){return e.map((u=>this.projectPoint(u,i,a,o)))}get geometry(){if(this._geometry)return this._geometry;const e=this._vectorTileFeature,i=e.extent*Math.pow(2,this._z),a=e.extent*this._x,o=e.extent*this._y,u=e.loadGeometry();switch(e.type){case 1:{const h=[];for(const _ of u)h.push(_[0]);const f=this.projectLine(h,a,o,i);this._geometry=h.length===1?{type:"Point",coordinates:f[0]}:{type:"MultiPoint",coordinates:f};break}case 2:{const h=u.map((f=>this.projectLine(f,a,o,i)));this._geometry=h.length===1?{type:"LineString",coordinates:h[0]}:{type:"MultiLineString",coordinates:h};break}case 3:{const h=Ad(u),f=[];for(const _ of h)f.push(_.map((y=>this.projectLine(y,a,o,i))));this._geometry=f.length===1?{type:"Polygon",coordinates:f[0]}:{type:"MultiPolygon",coordinates:f};break}default:throw new Error(`unknown feature type: ${e.type}`)}return this._geometry}set geometry(e){this._geometry=e}toJSON(){const e={geometry:this.geometry};for(const i in this)i!=="_geometry"&&i!=="_vectorTileFeature"&&i!=="_x"&&i!=="_y"&&i!=="_z"&&(e[i]=this[i]);return e}}class Do{_name;dataBuffer;nullabilityBuffer;_size;constructor(e,i,a){this._name=e,this.dataBuffer=i,typeof a=="number"?this._size=a:(this.nullabilityBuffer=a,this._size=a.size())}getValue(e){return this.nullabilityBuffer&&!this.nullabilityBuffer.get(e)?null:this.getValueFromBuffer(e)}has(e){return this.nullabilityBuffer&&this.nullabilityBuffer.get(e)||!this.nullabilityBuffer}get name(){return this._name}get size(){return this._size}}class mu extends Do{}class zh extends mu{getValueFromBuffer(e){return this.dataBuffer[e]}}class Dh extends mu{getValueFromBuffer(e){return this.dataBuffer[e]}}class _p extends Do{delta;constructor(e,i,a,o){super(e,i,o),this.delta=a}}class kh extends _p{constructor(e,i,a,o){super(e,Int32Array.of(i),a,o)}getValueFromBuffer(e){return this.dataBuffer[0]+e*this.delta}}class Rh extends Do{constructor(e,i,a){super(e,Int32Array.of(i),a)}getValueFromBuffer(e){return this.dataBuffer[0]}}class t_{_name;_geometryVector;_idVector;_propertyVectors;_extent;propertyVectorsMap;constructor(e,i,a,o,u=4096){this._name=e,this._geometryVector=i,this._idVector=a,this._propertyVectors=o,this._extent=u}get name(){return this._name}get idVector(){return this._idVector}get geometryVector(){return this._geometryVector}get propertyVectors(){return this._propertyVectors}getPropertyVector(e){return this.propertyVectorsMap||(this.propertyVectorsMap=new Map(this._propertyVectors.map((i=>[i.name,i])))),this.propertyVectorsMap.get(e)}*[Symbol.iterator](){const e=this.geometryVector[Symbol.iterator]();let i=0;for(;i=64)throw new Error("Varint too long")}return e.set(o),i}function n_(r,e){let i,a;return a=r[e.get()],e.increment(),i=127&a,a<128?i:(a=r[e.get()],e.increment(),i|=(127&a)<<7,a<128?i:(a=r[e.get()],e.increment(),i|=(127&a)<<14,a<128?i:(a=r[e.get()],e.increment(),i|=(127&a)<<21,a<128?i:(a=r[e.get()],i|=(15&a)<<28,(function(o,u,h){let f,_;if(_=u[h.get()],h.increment(),f=(112&_)>>4,_<128||(_=u[h.get()],h.increment(),f|=(127&_)<<3,_<128)||(_=u[h.get()],h.increment(),f|=(127&_)<<10,_<128)||(_=u[h.get()],h.increment(),f|=(127&_)<<17,_<128)||(_=u[h.get()],h.increment(),f|=(127&_)<<24,_<128)||(_=u[h.get()],h.increment(),f|=(1&_)<<31,_<128))return 4294967296*f+(o>>>0);throw new Error("Expected varint not more than 10 bytes")})(i,r,e)))))}function kt(r){return r>>>1^-(1&r)}function ar(r){return r>>1n^-(1n&r)}function ko(r){return r%2==1?(r+1)/-2:r/2}function yp(r,e,i){if(i===void 0){i=0;for(let u=0;u=4)for(let a=r[0];i>4];let f=null;switch(h){case mi.DATA:f=new Fh(Object.values(Zr)[15&u]);break;case mi.OFFSET:f=new Fh(null,Object.values(Es)[15&u]);break;case mi.LENGTH:f=new Fh(null,null,Object.values(nr)[15&u])}o.increment();const _=a[o.get()],y=Object.values(ut)[_>>5],v=Object.values(ut)[_>>2&7],b=Object.values(Ia)[3&_];o.increment();const S=Si(a,o,2),P=S[0];return{physicalStreamType:h,logicalStreamType:f,logicalLevelTechnique1:y,logicalLevelTechnique2:v,physicalLevelTechnique:b,numValues:P,byteLength:S[1],decompressedCount:P}})(r,e);return i.logicalLevelTechnique1===ut.MORTON?(function(a,o,u){const h=Si(o,u,2);return{physicalStreamType:a.physicalStreamType,logicalStreamType:a.logicalStreamType,logicalLevelTechnique1:a.logicalLevelTechnique1,logicalLevelTechnique2:a.logicalLevelTechnique2,physicalLevelTechnique:a.physicalLevelTechnique,numValues:a.numValues,byteLength:a.byteLength,decompressedCount:a.decompressedCount,numBits:h[0],coordinateShift:h[1]}})(i,r,e):ut.RLE!==i.logicalLevelTechnique1&&ut.RLE!==i.logicalLevelTechnique2||Ia.NONE===i.physicalLevelTechnique?i:(function(a,o,u){const h=Si(o,u,2);return{physicalStreamType:a.physicalStreamType,logicalStreamType:a.logicalStreamType,logicalLevelTechnique1:a.logicalLevelTechnique1,logicalLevelTechnique2:a.logicalLevelTechnique2,physicalLevelTechnique:a.physicalLevelTechnique,numValues:a.numValues,byteLength:a.byteLength,decompressedCount:h[1],runs:h[0],numRleValues:h[1]}})(i,r,e)}(function(r){r.NONE="NONE",r.SINGLE="SINGLE",r.SHARED="SHARED",r.VERTEX="VERTEX",r.MORTON="MORTON",r.FSST="FSST"})(Zr||(Zr={})),(function(r){r.VERTEX="VERTEX",r.INDEX="INDEX",r.STRING="STRING",r.KEY="KEY"})(Es||(Es={})),(function(r){r.VAR_BINARY="VAR_BINARY",r.GEOMETRIES="GEOMETRIES",r.PARTS="PARTS",r.RINGS="RINGS",r.TRIANGLES="TRIANGLES",r.SYMBOL="SYMBOL",r.DICTIONARY="DICTIONARY"})(nr||(nr={})),(function(r){r[r.FLAT=0]="FLAT",r[r.CONST=1]="CONST",r[r.SEQUENCE=2]="SEQUENCE",r[r.DICTIONARY=3]="DICTIONARY",r[r.FSST_DICTIONARY=4]="FSST_DICTIONARY"})(Vt||(Vt={}));class $r{values;_size;constructor(e,i){this.values=e,this._size=i}get(e){const i=Math.floor(e/8);return(this.values[i]>>e%8&1)==1}set(e,i){const a=Math.floor(e/8);this.values[a]=this.values[a]|(i?1:0)<>e%8&1}size(){return this._size}getBuffer(){return this.values}}function _u(r,e,i){if(!e)return r;const a=e.size(),o=new r.constructor(a);let u=0;for(let h=0;h=4)for(;P=4)for(;P=4)for(;b>1,e)-i}}function Ep(r,e){let i=0;for(let a=0;a>a;return i}(function(r){r[r.POINT=0]="POINT",r[r.LINESTRING=1]="LINESTRING",r[r.POLYGON=2]="POLYGON",r[r.MULTIPOINT=3]="MULTIPOINT",r[r.MULTILINESTRING=4]="MULTILINESTRING",r[r.MULTIPOLYGON=5]="MULTIPOLYGON"})(ti||(ti={})),(function(r){r[r.POINT=0]="POINT",r[r.LINESTRING=1]="LINESTRING",r[r.POLYGON=2]="POLYGON"})(gp||(gp={})),(function(r){r[r.MORTON=0]="MORTON",r[r.VEC_2=1]="VEC_2",r[r.VEC_3=2]="VEC_3"})(mr||(mr={}));class a_{createPoint(e){return[[e]]}createMultiPoint(e){return e.map((i=>[i]))}createLineString(e){return[e]}createMultiLineString(e){return e}createPolygon(e,i){return[e].concat(i)}createMultiPolygon(e){return e.flat()}}function Cp(r){const e=new Array(r.numGeometries);let i=1,a=1,o=1,u=0;const h=new a_;let f=0,_=0;const y=r.mortonSettings,v=r.topologyVector,b=v.geometryOffsets,S=v.partOffsets,P=v.ringOffsets,E=r.vertexOffsets,A=r.containsPolygonGeometry(),R=r.vertexBuffer;for(let O=0;O0&&A.push(A[0]),S.push(A)}e[v]=S,u&&y++}break;case ti.MULTIPOLYGON:{const b=u[y]-u[y-1];y++;const S=[];for(let P=0;P0&&O.push(O[0]),S.push(O)}}e[v]=S}}return e}[Symbol.iterator](){return null}}function Rp(r,e,i,a,o,u){return new s_(r,e,i,a,o,u)}class s_ extends kp{_numGeometries;_geometryType;constructor(e,i,a,o,u,h){super(a,o,u,h),this._numGeometries=e,this._geometryType=i}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsSingleGeometryType(){return!0}}function Lp(r,e,i,a,o){return new o_(r,e,i,a,o)}class o_ extends kp{_geometryTypes;constructor(e,i,a,o,u){super(i,a,o,u),this._geometryTypes=e}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsSingleGeometryType(){return!1}}function l_(r,e,i,a,o){const u=Di(r,i);let h=null,f=null,_=null,y=null;if(yu(u,a,r,i)===Vt.CONST){const G=Bh(r,i,u,!1);let B=null,V=null,H=null,ee=null;for(let se=0;sei?e[u++]:1);return a}function Fp(r,e,i,a){const o=new Uint32Array(e[e.length-1]+1);let u=0;o[0]=u;let h=1,f=0;for(let _=0;_=S);){const P=h[y.increment()];if(P<=127){const E=P+3,A=h[y.increment()],R=Math.min(b+E,f);v.fill(A,b,R),b=R}else{const E=256-P;for(let A=0;A=12?h_.decode(r.subarray(e,i)):(function(a,o,u){let h="",f=o;for(;f239?4:_>223?3:_>191?2:1;if(f+P>u)break;P===1?_<128&&(S=_):P===2?(y=a[f+1],(192&y)==128&&(S=(31&_)<<6|63&y,S<=127&&(S=null))):P===3?(y=a[f+1],v=a[f+2],(192&y)==128&&(192&v)==128&&(S=(15&_)<<12|(63&y)<<6|63&v,(S<=2047||S>=55296&&S<=57343)&&(S=null))):P===4&&(y=a[f+1],v=a[f+2],b=a[f+3],(192&y)==128&&(192&v)==128&&(192&b)==128&&(S=(15&_)<<18|(63&y)<<12|(63&v)<<6|63&b,(S<=65535||S>=1114112)&&(S=null))),S===null?(S=65533,P=1):S>65535&&(S-=65536,h+=String.fromCharCode(S>>>10&1023|55296),S=56320|1023&S),h+=String.fromCharCode(S),f+=P}return h})(r,e,i)}class qh extends Do{offsetBuffer;constructor(e,i,a,o){super(e,a,o),this.offsetBuffer=i}}class Op extends qh{textEncoder;constructor(e,i,a,o){super(e,i,a,o??i.length-1),this.textEncoder=new TextEncoder}getValueFromBuffer(e){return Gh(this.dataBuffer,this.offsetBuffer[e],this.offsetBuffer[e+1])}}class Lo extends qh{indexBuffer;textEncoder;constructor(e,i,a,o,u){super(e,a,o,u??i.length),this.indexBuffer=i,this.indexBuffer=i,this.textEncoder=new TextEncoder}getValueFromBuffer(e){const i=this.indexBuffer[e];return Gh(this.dataBuffer,this.offsetBuffer[i],this.offsetBuffer[i+1])}}class Vp extends qh{indexBuffer;symbolOffsetBuffer;symbolTableBuffer;textEncoder;symbolLengthBuffer;lengthBuffer;decodedDictionary;constructor(e,i,a,o,u,h,f){super(e,a,o,f),this.indexBuffer=i,this.symbolOffsetBuffer=u,this.symbolTableBuffer=h,this.textEncoder=new TextEncoder}getValueFromBuffer(e){this.decodedDictionary==null&&(this.symbolLengthBuffer==null&&(this.symbolLengthBuffer=this.offsetToLengthBuffer(this.symbolOffsetBuffer),this.lengthBuffer=this.offsetToLengthBuffer(this.offsetBuffer)),this.decodedDictionary=(function(a,o,u){const h=[],f=new Array(o.length).fill(0);for(let _=1;_1?6:4,i.type="physicalType",e.scalarType=i,e.type="scalarType",e}case 4:{const e={nullable:!1,columnScope:0},i={type:"physicalType",physicalType:0};return e.type="complexType",e.complexType=i,e}case 30:{const e={nullable:!1,columnScope:0},i={type:"physicalType",physicalType:1};return e.type="complexType",e.complexType=i,e}default:return(function(e){let i=null;switch(e){case 10:case 11:i=0;break;case 12:case 13:i=1;break;case 14:case 15:i=2;break;case 16:case 17:i=3;break;case 18:case 19:i=4;break;case 20:case 21:i=5;break;case 22:case 23:i=6;break;case 24:case 25:i=7;break;case 26:case 27:i=8;break;case 28:case 29:i=9;break;default:return null}const a={};a.nullable=!!(1&e),a.columnScope=0;const o={type:"physicalType"};return o.physicalType=i,a.type="scalarType",a.scalarType=o,a})(r)}}function Np(r){return r>=10}function Up(r){return r===30}function p_(r){if(r.name==="id")return!1;if(r.type==="scalarType"){const e=r.scalarType;if(e.type==="physicalType")switch(e.physicalType){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:default:return!1;case 9:return!0}else if(e.type==="logicalType")return!1}else if(r.type==="complexType"){const e=r.complexType;if(e.type==="physicalType")switch(e.physicalType){case 0:case 1:return!0;default:return!1}}return console.warn("Unexpected column type in hasStreamCount",r),!1}const f_=new TextDecoder;function Zh(r,e){const i=Si(r,e,1)[0];if(i===0)return"";const a=e.get(),o=r.subarray(a,a+i);return e.add(i),f_.decode(o)}function Gp(r,e){const i=Si(r,e,1)[0]>>>0;if(i<10||i>30)throw new Error(`Unsupported field type code ${i}. Supported: 10-29(scalars), 30(STRUCT)`);const a=jp(i);if(Np(i)&&(a.name=Zh(r,e)),Up(i)){const o=Si(r,e,1)[0]>>>0;a.complexType.children=new Array(o);for(let u=0;u>>0,a=jp(i);if(!a)throw new Error(`Unsupported column type code ${i}. Supported: 0-3(ID), 4(GEOMETRY), 10-29(scalars), 30(STRUCT)`);if(Np(i)?a.name=Zh(r,e):i>=0&&i<=3?a.name="id":i===4&&(a.name="geometry"),Up(i)){const o=Si(r,e,1)[0]>>>0,u=a.complexType;u.children=new Array(o);for(let h=0;h>>0,u=Si(r,e,1)[0]>>>0;a.columns=new Array(u);for(let h=0;h=4)for(;B>>0,y=h.get()+_;if(y>a.length)throw new Error(`Block overruns tile: ${y} > ${a.length}`);if(Si(a,h,1)[0]>>>0!=1){h.set(y);continue}const v=__(a,h),b=v[1],S=v[0].featureTables[0];let P=null,E=null;const A=[];let R=0;for(const G of S.columns){const B=G.name;if(B==="id"){let V=null;if(G.nullable){const ee=Di(a,h),se=h.get(),ge=Zl(a,ee.numValues,ee.byteLength,h);h.set(se+ee.byteLength),V=new $r(ge,ee.numValues)}const H=Di(a,h);R=H.decompressedCount,P=g_(a,G,h,B,H,V??R,u)}else if(B==="geometry"){const V=Si(a,h,1)[0];if(R===0){const H=h.get();R=Di(a,h).decompressedCount,h.set(H)}E=l_(a,V,h,R)}else{const V=p_(G)?Si(a,h,1)[0]:1;if(V===0)continue;const H=d_(a,h,G,V,R);if(H)if(Array.isArray(H))for(const ee of H)A.push(ee);else A.push(H)}}const O=new t_(S.name,E,P,A,b);f.push(O),h.set(y)}return f})(new Uint8Array(e));this.layers=i.reduce(((a,o)=>Object.assign(Object.assign({},a),{[o.name]:new x_(o)})),{})}}class v_{constructor(e,i){this.feature=e,this.type=e.type,this.properties=e.tags?e.tags:{},this.extent=i,"id"in e&&(typeof e.id=="string"?this.id=parseInt(e.id,10):typeof e.id!="number"||isNaN(e.id)||(this.id=e.id))}loadGeometry(){const e=[],i=this.feature.type===1?[this.feature.geometry]:this.feature.geometry;for(const a of i){const o=[];for(const u of a)o.push(new Ee(u[0],u[1]));e.push(o)}return e}}const Wl="_geojsonTileLayer";function b_(r,e){e.writeVarintField(15,r.version||1),e.writeStringField(1,r.name||""),e.writeVarintField(5,r.extent||4096);const i={keys:[],values:[],keycache:{},valuecache:{}};for(let u=0;u>31}function S_(r,e){const i=r.loadGeometry(),a=r.type;let o=0,u=0;for(const h of i){let f=1;a===1&&(f=h.length),e.writeVarint($h(1,f));const _=a===3?h.length-1:h.length;for(let y=0;y<_;y++){y===1&&a!==1&&e.writeVarint($h(2,_-1));const v=h[y].x-o,b=h[y].y-u;e.writeVarint(Zp(v)),e.writeVarint(Zp(b)),o+=v,u+=b}r.type===3&&e.writeVarint($h(7,1))}}function P_(r,e){const i=typeof r;i==="string"?e.writeStringField(1,r):i==="boolean"?e.writeBooleanField(7,r):i==="number"&&(r%1!=0?e.writeDoubleField(3,r):r<0?e.writeSVarintField(6,r):e.writeVarintField(5,r))}class $p{constructor(e,i){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Vr(st,16,0),this.grid3D=new Vr(st,16,0),this.featureIndexArray=new z,this.promoteId=i}insert(e,i,a,o,u,h){const f=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(a,o,u);const _=h?this.grid3D:this.grid;for(let y=0;y=0&&b[3]>=0&&_.insert(f,b[0],b[1],b[2],b[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=this.encoding!=="mlt"?new zd(new uu(this.rawTileData)).layers:new qp(this.rawTileData).layers,this.sourceLayerCoder=new fp(this.vtLayers?Object.keys(this.vtLayers).sort():[Wl])),this.vtLayers}query(e,i,a,o){this.loadVTLayers();const u=e.params,h=st/e.tileSize/e.scale,f=as(u.filter,u.globalState),_=e.queryGeometry,y=e.queryPadding*h,v=Is.fromPoints(_),b=this.grid.query(v.minX-y,v.minY-y,v.maxX+y,v.maxY+y),S=Is.fromPoints(e.cameraQueryGeometry).expandBy(y),P=this.grid3D.query(S.minX,S.minY,S.maxX,S.maxY,((R,O,G,B)=>(function(V,H,ee,se,ge){for(const ve of V)if(H<=ve.x&&ee<=ve.y&&se>=ve.x&&ge>=ve.y)return!0;const ye=[new Ee(H,ee),new Ee(H,ge),new Ee(se,ge),new Ee(se,ee)];if(V.length>2){for(const ve of ye)if(To(V,ve))return!0}for(let ve=0;ve(B||(B=$i(V)),H.queryIntersectsFeature({queryGeometry:_,feature:V,featureState:ee,geometry:B,zoom:this.z,transform:e.transform,pixelsToTileUnits:h,pixelPosMatrix:e.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:e.getElevation}))))}return E}loadMatchingFeature(e,i,a,o,u,h,f,_,y,v,b){const S=this.bucketLayerIDs[i];if(h&&!S.some((R=>h.has(R))))return;const P=this.sourceLayerCoder.decode(a),E=this.vtLayers[P].feature(o);if(u.needGeometry){const R=mn(E,!0);if(!u.filter(new pt(this.tileID.overscaledZ),R,this.tileID.canonical))return}else if(!u.filter(new pt(this.tileID.overscaledZ),E))return;const A=this.getId(E,P);for(let R=0;R{const f=e instanceof gs?e.get(h):null;return f&&f.evaluate?f.evaluate(i,a,o):f}))}function M_(r,e){return e-r}function Hp(r,e,i,a,o){const u=[];for(let h=0;h=a&&b.x>=a||(v.x>=a?v=new Ee(a,v.y+(a-v.x)/(b.x-v.x)*(b.y-v.y))._round():b.x>=a&&(b=new Ee(a,v.y+(a-v.x)/(b.x-v.x)*(b.y-v.y))._round()),v.y>=o&&b.y>=o||(v.y>=o?v=new Ee(v.x+(o-v.y)/(b.y-v.y)*(b.x-v.x),o)._round():b.y>=o&&(b=new Ee(v.x+(o-v.y)/(b.y-v.y)*(b.x-v.x),o)._round()),_&&v.equals(_[_.length-1])||(_=[v],u.push(_)),_.push(b)))))}}return u}function Xp(r,e,i,a,o){switch(e){case 1:return(function(u,h,f,_){const y=[];for(const v of u)for(const b of v){const S=_===0?b.x:b.y;S>=h&&S<=f&&y.push([b])}return y})(r,i,a,o);case 2:return Yp(r,i,a,o,!1);case 3:return Yp(r,i,a,o,!0)}return[]}function I_(r,e,i,a,o){const u=a===0?E_:C_;let h=[];const f=[];for(let v=0;ve&&h.push(u(b,S,e)):P>i?E=e&&(h.push(u(b,S,e)),A=!0),E>i&&P<=i&&(h.push(u(b,S,i)),A=!0),!o&&A&&(f.push(h),h=[])}const _=r.length-1,y=a===0?r[_].x:r[_].y;return y>=e&&y<=i&&h.push(r[_]),o&&h.length>0&&!h[0].equals(h[h.length-1])&&h.push(new Ee(h[0].x,h[0].y)),h.length>0&&f.push(h),f}function Yp(r,e,i,a,o){const u=[];for(const h of r){const f=I_(h,e,i,a,o);f.length>0&&u.push(...f)}return u}function E_(r,e,i){return new Ee(i,r.y+(i-r.x)/(e.x-r.x)*(e.y-r.y))}function C_(r,e,i){return new Ee(r.x+(i-r.y)/(e.y-r.y)*(e.x-r.x),i)}De("FeatureIndex",$p,{omit:["rawTileData","sourceLayerCoder"]});class Ca extends Ee{constructor(e,i,a,o){super(e,i),this.angle=a,o!==void 0&&(this.segment=o)}clone(){return new Ca(this.x,this.y,this.angle,this.segment)}}function Kp(r,e,i,a,o){if(e.segment===void 0||i===0)return!0;let u=e,h=e.segment+1,f=0;for(;f>-i/2;){if(h--,h<0)return!1;f-=r[h].dist(u),u=r[h]}f+=r[h].dist(r[h+1]),h++;const _=[];let y=0;for(;fa;)y-=_.shift().angleDelta;if(y>o)return!1;h++,f+=v.dist(b)}return!0}function Jp(r){let e=0;for(let i=0;iy){const E=(y-_)/P,A=ai.number(b.x,S.x,E),R=ai.number(b.y,S.y,E),O=new Ca(A,R,S.angleTo(b),v);return O._round(),!h||Kp(r,O,f,h,e)?O:void 0}_+=P}}function z_(r,e,i,a,o,u,h,f,_){const y=Qp(a,u,h),v=ef(a,o),b=v*h,S=r[0].x===0||r[0].x===_||r[0].y===0||r[0].y===_;return e-b=0&&V<_&&H>=0&&H<_&&S-y>=0&&S+y<=v){const ee=new Ca(V,H,G,E);ee._round(),a&&!Kp(r,ee,u,a,o)||P.push(ee)}}b+=O}return f||P.length||h||(P=tf(r,b/2,i,a,o,u,h,!0,_)),P}function rf(r,e,i,a){const o=[],u=r.image,h=u.pixelRatio,f=u.paddedRect.w-2,_=u.paddedRect.h-2;let y={x1:r.left,y1:r.top,x2:r.right,y2:r.bottom};const v=u.stretchX||[[0,f]],b=u.stretchY||[[0,_]],S=(pe,ke)=>pe+ke[1]-ke[0],P=v.reduce(S,0),E=b.reduce(S,0),A=f-P,R=_-E;let O=0,G=P,B=0,V=E,H=0,ee=A,se=0,ge=R;if(u.content&&a){const pe=u.content,ke=pe[2]-pe[0],Re=pe[3]-pe[1];(u.textFitWidth||u.textFitHeight)&&(y=Kd(r)),O=wu(v,0,pe[0]),B=wu(b,0,pe[1]),G=wu(v,pe[0],pe[2]),V=wu(b,pe[1],pe[3]),H=pe[0]-O,se=pe[1]-B,ee=ke-G,ge=Re-V}const ye=y.x1,ve=y.y1,Ce=y.x2-ye,Te=y.y2-ve,xe=(pe,ke,Re,Ve)=>{const Fe=Tu(pe.stretch-O,G,Ce,ye),Je=Su(pe.fixed-H,ee,pe.stretch,P),Pt=Tu(ke.stretch-B,V,Te,ve),Wt=Su(ke.fixed-se,ge,ke.stretch,E),gi=Tu(Re.stretch-O,G,Ce,ye),Mr=Su(Re.fixed-H,ee,Re.stretch,P),Ri=Tu(Ve.stretch-B,V,Te,ve),oi=Su(Ve.fixed-se,ge,Ve.stretch,E),yi=new Ee(Fe,Pt),jt=new Ee(gi,Pt),li=new Ee(gi,Ri),Pi=new Ee(Fe,Ri),Mi=new Ee(Je/h,Wt/h),Hi=new Ee(Mr/h,oi/h),xi=e*Math.PI/180;if(xi){const ii=Math.sin(xi),Et=Math.cos(xi),Ht=[Et,-ii,ii,Et];yi._matMult(Ht),jt._matMult(Ht),Pi._matMult(Ht),li._matMult(Ht)}const Xi=pe.stretch+pe.fixed,Ir=ke.stretch+ke.fixed;return{tl:yi,tr:jt,bl:Pi,br:li,tex:{x:u.paddedRect.x+1+Xi,y:u.paddedRect.y+1+Ir,w:Re.stretch+Re.fixed-Xi,h:Ve.stretch+Ve.fixed-Ir},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Mi,pixelOffsetBR:Hi,minFontScaleX:ee/h/Ce,minFontScaleY:ge/h/Te,isSDF:i}};if(a&&(u.stretchX||u.stretchY)){const pe=nf(v,A,P),ke=nf(b,R,E);for(let Re=0;Re0&&(A=Math.max(10,A),this.circleDiameter=A)}else{const S=!((b=h.image)===null||b===void 0)&&b.content&&(h.image.textFitWidth||h.image.textFitHeight)?Kd(h):{x1:h.left,y1:h.top,x2:h.right,y2:h.bottom};S.y1=S.y1*f-_[0],S.y2=S.y2*f+_[2],S.x1=S.x1*f-_[3],S.x2=S.x2*f+_[1];const P=h.collisionPadding;if(P&&(S.x1-=P[0]*f,S.y1-=P[1]*f,S.x2+=P[2]*f,S.y2+=P[3]*f),v){const E=new Ee(S.x1,S.y1),A=new Ee(S.x2,S.y1),R=new Ee(S.x1,S.y2),O=new Ee(S.x2,S.y2),G=v*Math.PI/180;E._rotate(G),A._rotate(G),R._rotate(G),O._rotate(G),S.x1=Math.min(E.x,A.x,R.x,O.x),S.x2=Math.max(E.x,A.x,R.x,O.x),S.y1=Math.min(E.y,A.y,R.y,O.y),S.y2=Math.max(E.y,A.y,R.y,O.y)}e.emplaceBack(i.x,i.y,S.x1,S.y1,S.x2,S.y2,a,o,u)}this.boxEndIndex=e.length}}class D_{constructor(e=[],i=(a,o)=>ao?1:0){if(this.data=e,this.length=this.data.length,this.compare=i,this.length>0)for(let a=(this.length>>1)-1;a>=0;a--)this._down(a)}push(e){this.data.push(e),this._up(this.length++)}pop(){if(this.length===0)return;const e=this.data[0],i=this.data.pop();return--this.length>0&&(this.data[0]=i,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:i,compare:a}=this,o=i[e];for(;e>0;){const u=e-1>>1,h=i[u];if(a(o,h)>=0)break;i[e]=h,e=u}i[e]=o}_down(e){const{data:i,compare:a}=this,o=this.length>>1,u=i[e];for(;e=0)break;i[e]=i[h],e=h}i[e]=u}}function k_(r,e=1,i=!1){const a=Is.fromPoints(r[0]),o=Math.min(a.width(),a.height());let u=o/2;const h=new D_([],R_),{minX:f,minY:_,maxX:y,maxY:v}=a;if(o===0)return new Ee(f,_);for(let P=f;Pb.d||!b.d)&&(b=P,i&&console.log("found best %d after %d probes",Math.round(1e4*P.d)/1e4,S)),P.max-b.d<=e||(u=P.h/2,h.push(new Fo(P.p.x-u,P.p.y-u,u,r)),h.push(new Fo(P.p.x+u,P.p.y-u,u,r)),h.push(new Fo(P.p.x-u,P.p.y+u,u,r)),h.push(new Fo(P.p.x+u,P.p.y+u,u,r)),S+=4)}return i&&(console.log(`num probes: ${S}`),console.log(`best distance: ${b.d}`)),b.p}function R_(r,e){return e.max-r.max}function Fo(r,e,i,a){this.p=new Ee(r,e),this.h=i,this.d=(function(o,u){let h=!1,f=1/0;for(let _=0;_o.y!=E.y>o.y&&o.x<(E.x-P.x)*(o.y-P.y)/(E.y-P.y)+P.x&&(h=!h),f=Math.min(f,sd(o,P,E))}}return(h?1:-1)*Math.sqrt(f)})(this.p,a),this.max=this.d+this.h*Math.SQRT2}var _i;k.aP=void 0,(_i=k.aP||(k.aP={}))[_i.center=1]="center",_i[_i.left=2]="left",_i[_i.right=3]="right",_i[_i.top=4]="top",_i[_i.bottom=5]="bottom",_i[_i["top-left"]=6]="top-left",_i[_i["top-right"]=7]="top-right",_i[_i["bottom-left"]=8]="bottom-left",_i[_i["bottom-right"]=9]="bottom-right";const Wh=Number.POSITIVE_INFINITY;function af(r,e){return e[1]!==Wh?(function(i,a,o){let u=0,h=0;switch(a=Math.abs(a),o=Math.abs(o),i){case"top-right":case"top-left":case"top":h=o-7;break;case"bottom-right":case"bottom-left":case"bottom":h=7-o}switch(i){case"top-right":case"bottom-right":case"right":u=-a;break;case"top-left":case"bottom-left":case"left":u=a}return[u,h]})(r,e[0],e[1]):(function(i,a){let o=0,u=0;a<0&&(a=0);const h=a/Math.SQRT2;switch(i){case"top-right":case"top-left":u=h-7;break;case"bottom-right":case"bottom-left":u=7-h;break;case"bottom":u=7-a;break;case"top":u=a-7}switch(i){case"top-right":case"bottom-right":o=-h;break;case"top-left":case"bottom-left":o=h;break;case"left":o=a;break;case"right":o=-a}return[o,u]})(r,e[0])}function sf(r,e,i){var a;const o=r.layout,u=(a=o.get("text-variable-anchor-offset"))===null||a===void 0?void 0:a.evaluate(e,{},i);if(u){const f=u.values,_=[];for(let y=0;yS*ei));v.startsWith("top")?b[1]-=7:v.startsWith("bottom")&&(b[1]+=7),_[y+1]=b}return new Gt(_)}const h=o.get("text-variable-anchor");if(h){let f;f=r._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[o.get("text-radial-offset").evaluate(e,{},i)*ei,Wh]:o.get("text-offset").evaluate(e,{},i).map((y=>y*ei));const _=[];for(const y of h)_.push(y,af(y,f));return new Gt(_)}return null}function Hh(r){switch(r){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function L_(r,e,i,a,o,u,h,f,_,y,v,b){let S=u.textMaxSize.evaluate(e,{});S===void 0&&(S=h);const P=r.layers[0].layout,E=P.get("icon-offset").evaluate(e,{},v),A=lf(i.horizontal),R=h/24,O=r.tilePixelRatio*R,G=r.tilePixelRatio*S/24,B=r.tilePixelRatio*f,V=r.tilePixelRatio*P.get("symbol-spacing"),H=P.get("text-padding")*r.tilePixelRatio,ee=(function(Re,Ve,Fe,Je=1){const Pt=Re.get("icon-padding").evaluate(Ve,{},Fe),Wt=Pt&&Pt.values;return[Wt[0]*Je,Wt[1]*Je,Wt[2]*Je,Wt[3]*Je]})(P,e,v,r.tilePixelRatio),se=P.get("text-max-angle")/180*Math.PI,ge=P.get("text-rotation-alignment")!=="viewport"&&P.get("symbol-placement")!=="point",ye=P.get("icon-rotation-alignment")==="map"&&P.get("symbol-placement")!=="point",ve=P.get("symbol-placement"),Ce=V/2,Te=P.get("icon-text-fit");let xe;a&&Te!=="none"&&(r.allowVerticalPlacement&&i.vertical&&(xe=Jd(a,i.vertical,Te,P.get("icon-text-fit-padding"),E,R)),A&&(a=Jd(a,A,Te,P.get("icon-text-fit-padding"),E,R)));const pe=v?b.line.getGranularityForZoomLevel(v.z):1,ke=(Re,Ve)=>{Ve.x<0||Ve.x>=st||Ve.y<0||Ve.y>=st||(function(Fe,Je,Pt,Wt,gi,Mr,Ri,oi,yi,jt,li,Pi,Mi,Hi,xi,Xi,Ir,ii,Et,Ht,Rt,ri,Wn,Wr,Yl){const Aa=Fe.addToLineVertexArray(Je,Pt);let Cs,Bo,Oo,Vo,df=0,pf=0,ff=0,mf=0,id=-1,rd=-1;const Hn={};let _f=zt("");if(Fe.allowVerticalPlacement&&Wt.vertical){const Ii=oi.layout.get("text-rotate").evaluate(Rt,{},Wr)+90;Oo=new Pu(yi,Je,jt,li,Pi,Wt.vertical,Mi,Hi,xi,Ii),Ri&&(Vo=new Pu(yi,Je,jt,li,Pi,Ri,Ir,ii,xi,Ii))}if(gi){const Ii=oi.layout.get("icon-rotate").evaluate(Rt,{}),_r=oi.layout.get("icon-text-fit")!=="none",As=rf(gi,Ii,Wn,_r),Xr=Ri?rf(Ri,Ii,Wn,_r):void 0;Bo=new Pu(yi,Je,jt,li,Pi,gi,Ir,ii,!1,Ii),df=4*As.length;const zs=Fe.iconSizeData;let _n=null;zs.kind==="source"?(_n=[$n*oi.layout.get("icon-size").evaluate(Rt,{})],_n[0]>Pa&&di(`${Fe.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):zs.kind==="composite"&&(_n=[$n*ri.compositeIconSizes[0].evaluate(Rt,{},Wr),$n*ri.compositeIconSizes[1].evaluate(Rt,{},Wr)],(_n[0]>Pa||_n[1]>Pa)&&di(`${Fe.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),Fe.addSymbols(Fe.icon,As,_n,Ht,Et,Rt,k.az.none,Je,Aa.lineStartIndex,Aa.lineLength,-1,Wr),id=Fe.icon.placedSymbolArray.length-1,Xr&&(pf=4*Xr.length,Fe.addSymbols(Fe.icon,Xr,_n,Ht,Et,Rt,k.az.vertical,Je,Aa.lineStartIndex,Aa.lineLength,-1,Wr),rd=Fe.icon.placedSymbolArray.length-1)}const gf=Object.keys(Wt.horizontal);for(const Ii of gf){const _r=Wt.horizontal[Ii];if(!Cs){_f=zt(_r.text);const Xr=oi.layout.get("text-rotate").evaluate(Rt,{},Wr);Cs=new Pu(yi,Je,jt,li,Pi,_r,Mi,Hi,xi,Xr)}const As=_r.positionedLines.length===1;if(ff+=of(Fe,Je,_r,Mr,oi,xi,Rt,Xi,Aa,Wt.vertical?k.az.horizontal:k.az.horizontalOnly,As?gf:[Ii],Hn,id,ri,Wr),As)break}Wt.vertical&&(mf+=of(Fe,Je,Wt.vertical,Mr,oi,xi,Rt,Xi,Aa,k.az.vertical,["vertical"],Hn,rd,ri,Wr));const O_=Cs?Cs.boxStartIndex:Fe.collisionBoxArray.length,V_=Cs?Cs.boxEndIndex:Fe.collisionBoxArray.length,j_=Oo?Oo.boxStartIndex:Fe.collisionBoxArray.length,N_=Oo?Oo.boxEndIndex:Fe.collisionBoxArray.length,U_=Bo?Bo.boxStartIndex:Fe.collisionBoxArray.length,G_=Bo?Bo.boxEndIndex:Fe.collisionBoxArray.length,q_=Vo?Vo.boxStartIndex:Fe.collisionBoxArray.length,Z_=Vo?Vo.boxEndIndex:Fe.collisionBoxArray.length;let Hr=-1;const Iu=(Ii,_r)=>Ii&&Ii.circleDiameter?Math.max(Ii.circleDiameter,_r):_r;Hr=Iu(Cs,Hr),Hr=Iu(Oo,Hr),Hr=Iu(Bo,Hr),Hr=Iu(Vo,Hr);const yf=Hr>-1?1:0;yf&&(Hr*=Yl/ei),Fe.glyphOffsetArray.length>=Ao.MAX_GLYPHS&&di("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Rt.sortKey!==void 0&&Fe.addToSortKeyRanges(Fe.symbolInstances.length,Rt.sortKey);const $_=sf(oi,Rt,Wr),[W_,H_]=(function(Ii,_r){const As=Ii.length,Xr=_r?.values;if(Xr?.length>0)for(let zs=0;zs=0?Hn.right:-1,Hn.center>=0?Hn.center:-1,Hn.left>=0?Hn.left:-1,Hn.vertical||-1,id,rd,_f,O_,V_,j_,N_,U_,G_,q_,Z_,jt,ff,mf,df,pf,yf,0,Mi,Hr,W_,H_)})(r,Ve,Re,i,a,o,xe,r.layers[0],r.collisionBoxArray,e.index,e.sourceLayerIndex,r.index,O,[H,H,H,H],ge,_,B,ee,ye,E,e,u,y,v,h)};if(ve==="line")for(const Re of Hp(e.geometry,0,0,st,st)){const Ve=Ms(Re,pe),Fe=z_(Ve,V,se,i.vertical||A,a,24,G,r.overscaling,st);for(const Je of Fe)A&&F_(r,A.text,Ce,Je)||ke(Ve,Je)}else if(ve==="line-center"){for(const Re of e.geometry)if(Re.length>1){const Ve=Ms(Re,pe),Fe=A_(Ve,se,i.vertical||A,a,24,G);Fe&&ke(Ve,Fe)}}else if(e.type==="Polygon")for(const Re of Ka(e.geometry,0)){const Ve=k_(Re,16);ke(Ms(Re[0],pe,!0),new Ca(Ve.x,Ve.y,0))}else if(e.type==="LineString")for(const Re of e.geometry){const Ve=Ms(Re,pe);ke(Ve,new Ca(Ve[0].x,Ve[0].y,0))}else if(e.type==="Point")for(const Re of e.geometry)for(const Ve of Re)ke([Ve],new Ca(Ve.x,Ve.y,0))}function of(r,e,i,a,o,u,h,f,_,y,v,b,S,P,E){const A=(function(G,B,V,H,ee,se,ge,ye){const ve=H.layout.get("text-rotate").evaluate(se,{})*Math.PI/180,Ce=[];for(const Te of B.positionedLines)for(const xe of Te.positionedGlyphs){if(!xe.rect)continue;const pe=xe.rect||{};let ke=4,Re=!0,Ve=1,Fe=0;const Je=(ee||ye)&&xe.vertical,Pt=xe.metrics.advance*xe.scale/2;if(ye&&B.verticalizable&&(Fe=Te.lineOffset/2-(xe.imageName?-(ei-xe.metrics.width*xe.scale)/2:(xe.scale-1)*ei)),xe.imageName){const ii=ge[xe.imageName];Re=ii.sdf,Ve=ii.pixelRatio,ke=1/Ve}const Wt=ee?[xe.x+Pt,xe.y]:[0,0];let gi=ee?[0,0]:[xe.x+Pt+V[0],xe.y+V[1]-Fe],Mr=[0,0];Je&&(Mr=gi,gi=[0,0]);const Ri=xe.metrics.isDoubleResolution?2:1,oi=(xe.metrics.left-ke)*xe.scale-Pt+gi[0],yi=(-xe.metrics.top-ke)*xe.scale+gi[1],jt=oi+pe.w/Ri*xe.scale/Ve,li=yi+pe.h/Ri*xe.scale/Ve,Pi=new Ee(oi,yi),Mi=new Ee(jt,yi),Hi=new Ee(oi,li),xi=new Ee(jt,li);if(Je){const ii=new Ee(-Pt,Pt- -17),Et=-Math.PI/2,Ht=12-Pt,Rt=new Ee(22-Ht,-(xe.imageName?Ht:0)),ri=new Ee(...Mr);Pi._rotateAround(Et,ii)._add(Rt)._add(ri),Mi._rotateAround(Et,ii)._add(Rt)._add(ri),Hi._rotateAround(Et,ii)._add(Rt)._add(ri),xi._rotateAround(Et,ii)._add(Rt)._add(ri)}if(ve){const ii=Math.sin(ve),Et=Math.cos(ve),Ht=[Et,-ii,ii,Et];Pi._matMult(Ht),Mi._matMult(Ht),Hi._matMult(Ht),xi._matMult(Ht)}const Xi=new Ee(0,0),Ir=new Ee(0,0);Ce.push({tl:Pi,tr:Mi,bl:Hi,br:xi,tex:pe,writingMode:B.writingMode,glyphOffset:Wt,sectionIndex:xe.sectionIndex,isSDF:Re,pixelOffsetTL:Xi,pixelOffsetBR:Ir,minFontScaleX:0,minFontScaleY:0})}return Ce})(0,i,f,o,u,h,a,r.allowVerticalPlacement),R=r.textSizeData;let O=null;R.kind==="source"?(O=[$n*o.layout.get("text-size").evaluate(h,{})],O[0]>Pa&&di(`${r.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):R.kind==="composite"&&(O=[$n*P.compositeTextSizes[0].evaluate(h,{},E),$n*P.compositeTextSizes[1].evaluate(h,{},E)],(O[0]>Pa||O[1]>Pa)&&di(`${r.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),r.addSymbols(r.text,A,O,f,u,h,y,e,_.lineStartIndex,_.lineLength,S,E);for(const G of v)b[G]=r.text.placedSymbolArray.length-1;return 4*A.length}function lf(r){for(const e in r)return r[e];return null}function F_(r,e,i,a){const o=r.compareText;if(e in o){const u=o[e];for(let h=u.length-1;h>=0;h--)if(a.dist(u[h])>4;if(o!==1)throw new Error(`Got v${o} data when expected v1.`);const u=cf[15&a];if(!u)throw new Error("Unrecognized array type.");const[h]=new Uint16Array(e,2,1),[f]=new Uint32Array(e,4,1);return new Xh(f,h,u,e)}constructor(e,i=64,a=Float64Array,o){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+i,2),65535),this.ArrayType=a,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const u=cf.indexOf(this.ArrayType),h=2*e*this.ArrayType.BYTES_PER_ELEMENT,f=e*this.IndexArrayType.BYTES_PER_ELEMENT,_=(8-f%8)%8;if(u<0)throw new Error(`Unexpected typed array class: ${a}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+f+_,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+h+f+_),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+f+_,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+u]),new Uint16Array(this.data,2,1)[0]=i,new Uint32Array(this.data,4,1)[0]=e)}add(e,i){const a=this._pos>>1;return this.ids[a]=a,this.coords[this._pos++]=e,this.coords[this._pos++]=i,a}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return Yh(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,i,a,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:u,coords:h,nodeSize:f}=this,_=[0,u.length-1,0],y=[];for(;_.length;){const v=_.pop()||0,b=_.pop()||0,S=_.pop()||0;if(b-S<=f){for(let R=S;R<=b;R++){const O=h[2*R],G=h[2*R+1];O>=e&&O<=a&&G>=i&&G<=o&&y.push(u[R])}continue}const P=S+b>>1,E=h[2*P],A=h[2*P+1];E>=e&&E<=a&&A>=i&&A<=o&&y.push(u[P]),(v===0?e<=E:i<=A)&&(_.push(S),_.push(P-1),_.push(1-v)),(v===0?a>=E:o>=A)&&(_.push(P+1),_.push(b),_.push(1-v))}return y}within(e,i,a){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:u,nodeSize:h}=this,f=[0,o.length-1,0],_=[],y=a*a;for(;f.length;){const v=f.pop()||0,b=f.pop()||0,S=f.pop()||0;if(b-S<=h){for(let R=S;R<=b;R++)hf(u[2*R],u[2*R+1],e,i)<=y&&_.push(o[R]);continue}const P=S+b>>1,E=u[2*P],A=u[2*P+1];hf(E,A,e,i)<=y&&_.push(o[P]),(v===0?e-a<=E:i-a<=A)&&(f.push(S),f.push(P-1),f.push(1-v)),(v===0?e+a>=E:i+a>=A)&&(f.push(P+1),f.push(b),f.push(1-v))}return _}}function Yh(r,e,i,a,o,u){if(o-a<=i)return;const h=a+o>>1;uf(r,e,h,a,o,u),Yh(r,e,i,a,h-1,1-u),Yh(r,e,i,h+1,o,1-u)}function uf(r,e,i,a,o,u){for(;o>a;){if(o-a>600){const y=o-a+1,v=i-a+1,b=Math.log(y),S=.5*Math.exp(2*b/3),P=.5*Math.sqrt(b*S*(y-S)/y)*(v-y/2<0?-1:1);uf(r,e,i,Math.max(a,Math.floor(i-v*S/y+P)),Math.min(o,Math.floor(i+(y-v)*S/y+P)),u)}const h=e[2*i+u];let f=a,_=o;for(Hl(r,e,a,i),e[2*o+u]>h&&Hl(r,e,a,o);f<_;){for(Hl(r,e,f,_),f++,_--;e[2*f+u]h;)_--}e[2*a+u]===h?Hl(r,e,a,_):(_++,Hl(r,e,_,o)),_<=i&&(a=_+1),i<=_&&(o=_-1)}}function Hl(r,e,i,a){Kh(r,i,a),Kh(e,2*i,2*a),Kh(e,2*i+1,2*a+1)}function Kh(r,e,i){const a=r[e];r[e]=r[i],r[i]=a}function hf(r,e,i,a){const o=r-i,u=e-a;return o*o+u*u}var Jh;k.cI=void 0,(Jh=k.cI||(k.cI={})).create="create",Jh.load="load",Jh.fullLoad="fullLoad";let Mu=null,Xl=[];const Qh=1e3/60,ed="loadTime",td="fullLoadTime",B_={mark(r){performance.mark(r)},recordStartOfFrameAt(r){Mu!=null&&Xl.push(r-Mu),Mu=r},resetRuntimeMetrics(){Mu=null,Xl=[]},clearInitializationMetrics(){performance.clearMeasures(ed),performance.clearMeasures(td);for(const r in k.cI)performance.clearMarks(k.cI[r])},remove(){this.resetRuntimeMetrics(),this.clearInitializationMetrics()},getPerformanceMetrics(){performance.measure(ed,k.cI.create,k.cI.load),performance.measure(td,k.cI.create,k.cI.fullLoad);const r=performance.getEntriesByName(ed)[0].duration,e=performance.getEntriesByName(td)[0].duration,i=Xl.length;return{loadTimeMs:r,fullLoadTimeMs:e,averageFramesPerSecond:1/(Xl.reduce(((a,o)=>a+o),0)/i/1e3),virtualDroppedFramesCount:Xl.filter((a=>a>Qh)).reduce(((a,o)=>a+(o-Qh)/Qh),0),totalFramesCount:i}}};k.$=fe,k.A=xt,k.B=jc,k.C=wr,k.D=Be,k.E=me,k.F=function([r,e,i]){return e+=90,e*=Math.PI/180,i*=Math.PI/180,{x:r*Math.cos(e)*Math.sin(i),y:r*Math.sin(e)*Math.sin(i),z:r*Math.cos(i)}},k.G=ai,k.H=pt,k.I=bh,k.J=ps,k.K=function(r){if(vt==null){const e=r.navigator?r.navigator.userAgent:null;vt=!!r.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return vt},k.L=class{constructor(r,e){this.target=r,this.mapId=e,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new Jm((()=>this.process())),this.subscription=an(this.target,"message",(i=>this.receive(i)),!1),this.globalScope=vr(self)?r:window}registerMessageHandler(r,e){this.messageHandlers[r]=e}unregisterMessageHandler(r){delete this.messageHandlers[r]}sendAsync(r,e){return new Promise(((i,a)=>{const o=Math.round(1e18*Math.random()).toString(36).substring(0,10),u=e?an(e.signal,"abort",(()=>{u?.unsubscribe(),delete this.resolveRejects[o];const _={id:o,type:"",origin:location.origin,targetMapId:r.targetMapId,sourceMapId:this.mapId};this.target.postMessage(_)}),Qm):null;this.resolveRejects[o]={resolve:_=>{u?.unsubscribe(),i(_)},reject:_=>{u?.unsubscribe(),a(_)}};const h=[],f=Object.assign(Object.assign({},r),{id:o,sourceMapId:this.mapId,origin:location.origin,data:jr(r.data,h)});this.target.postMessage(f,{transfer:h})}))}receive(r){const e=r.data,i=e.id;if(!(e.origin!=="file://"&&location.origin!=="file://"&&e.origin!=="resource://android"&&location.origin!=="resource://android"&&e.origin!==location.origin||e.targetMapId&&this.mapId!==e.targetMapId)){if(e.type===""){delete this.tasks[i];const a=this.abortControllers[i];return delete this.abortControllers[i],void(a&&a.abort())}if(vr(self)||e.mustQueue)return this.tasks[i]=e,this.taskQueue.push(i),void this.invoker.trigger();this.processTask(i,e)}}process(){if(this.taskQueue.length===0)return;const r=this.taskQueue.shift(),e=this.tasks[r];delete this.tasks[r],this.taskQueue.length>0&&this.invoker.trigger(),e&&this.processTask(r,e)}processTask(r,e){return c(this,void 0,void 0,(function*(){if(e.type===""){const o=this.resolveRejects[r];return delete this.resolveRejects[r],o?void(e.error?o.reject(ms(e.error)):o.resolve(ms(e.data))):void 0}if(!this.messageHandlers[e.type])return void this.completeTask(r,new Error(`Could not find a registered handler for ${e.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const i=ms(e.data),a=new AbortController;this.abortControllers[r]=a;try{const o=yield this.messageHandlers[e.type](e.sourceMapId,i,a);this.completeTask(r,null,o)}catch(o){this.completeTask(r,o)}}))}completeTask(r,e,i){const a=[];delete this.abortControllers[r];const o={id:r,type:"",sourceMapId:this.mapId,origin:location.origin,error:e?jr(e):null,data:jr(i,a)};this.target.postMessage(o,{transfer:a})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},k.M=D,k.N=function(){var r=new xt(16);return xt!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=0,r[12]=0,r[13]=0,r[14]=0),r[0]=1,r[5]=1,r[10]=1,r[15]=1,r},k.O=function(r,e,i){var a,o,u,h,f,_,y,v,b,S,P,E,A=i[0],R=i[1],O=i[2];return e===r?(r[12]=e[0]*A+e[4]*R+e[8]*O+e[12],r[13]=e[1]*A+e[5]*R+e[9]*O+e[13],r[14]=e[2]*A+e[6]*R+e[10]*O+e[14],r[15]=e[3]*A+e[7]*R+e[11]*O+e[15]):(o=e[1],u=e[2],h=e[3],f=e[4],_=e[5],y=e[6],v=e[7],b=e[8],S=e[9],P=e[10],E=e[11],r[0]=a=e[0],r[1]=o,r[2]=u,r[3]=h,r[4]=f,r[5]=_,r[6]=y,r[7]=v,r[8]=b,r[9]=S,r[10]=P,r[11]=E,r[12]=a*A+f*R+b*O+e[12],r[13]=o*A+_*R+S*O+e[13],r[14]=u*A+y*R+P*O+e[14],r[15]=h*A+v*R+E*O+e[15]),r},k.P=Ee,k.Q=function(r,e,i){var a=i[0],o=i[1],u=i[2];return r[0]=e[0]*a,r[1]=e[1]*a,r[2]=e[2]*a,r[3]=e[3]*a,r[4]=e[4]*o,r[5]=e[5]*o,r[6]=e[6]*o,r[7]=e[7]*o,r[8]=e[8]*u,r[9]=e[9]*u,r[10]=e[10]*u,r[11]=e[11]*u,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},k.R=Wi,k.S=function(r,e,i){var a=e[0],o=e[1],u=e[2],h=e[3],f=e[4],_=e[5],y=e[6],v=e[7],b=e[8],S=e[9],P=e[10],E=e[11],A=e[12],R=e[13],O=e[14],G=e[15],B=i[0],V=i[1],H=i[2],ee=i[3];return r[0]=B*a+V*f+H*b+ee*A,r[1]=B*o+V*_+H*S+ee*R,r[2]=B*u+V*y+H*P+ee*O,r[3]=B*h+V*v+H*E+ee*G,r[4]=(B=i[4])*a+(V=i[5])*f+(H=i[6])*b+(ee=i[7])*A,r[5]=B*o+V*_+H*S+ee*R,r[6]=B*u+V*y+H*P+ee*O,r[7]=B*h+V*v+H*E+ee*G,r[8]=(B=i[8])*a+(V=i[9])*f+(H=i[10])*b+(ee=i[11])*A,r[9]=B*o+V*_+H*S+ee*R,r[10]=B*u+V*y+H*P+ee*O,r[11]=B*h+V*v+H*E+ee*G,r[12]=(B=i[12])*a+(V=i[13])*f+(H=i[14])*b+(ee=i[15])*A,r[13]=B*o+V*_+H*S+ee*R,r[14]=B*u+V*y+H*P+ee*O,r[15]=B*h+V*v+H*E+ee*G,r},k.T=dh,k.U=function(r,e){const i={};for(let a=0;a0||((o=h.addOrUpdateProperties)===null||o===void 0?void 0:o.length)>0;if(!_&&!y)continue;u.push(f.geometry);const v=Object.assign({},f);if(r.set(h.id,v),_&&(u.push(h.newGeometry),v.geometry=h.newGeometry),y){if(v.properties=h.removeAllProperties?{}:Object.assign({},v.properties||{}),h.removeProperties)for(const b of h.removeProperties)delete v.properties[b];if(h.addOrUpdateProperties)for(const{key:b,value:S}of h.addOrUpdateProperties)v.properties[b]=S}}return u},k.a9=ql,k.aA=function(r,{uSize:e,uSizeT:i},{lowerSize:a,upperSize:o}){return r.kind==="source"?a/$n:r.kind==="composite"?ai.number(a/$n,o/$n,i):e},k.aB=function(r,e){var i=e[0],a=e[1],o=e[2],u=e[3],h=e[4],f=e[5],_=e[6],y=e[7],v=e[8],b=e[9],S=e[10],P=e[11],E=e[12],A=e[13],R=e[14],O=e[15],G=i*f-a*h,B=i*_-o*h,V=i*y-u*h,H=a*_-o*f,ee=a*y-u*f,se=o*y-u*_,ge=v*A-b*E,ye=v*R-S*E,ve=v*O-P*E,Ce=b*R-S*A,Te=b*O-P*A,xe=S*O-P*R,pe=G*xe-B*Te+V*Ce+H*ve-ee*ye+se*ge;return pe?(r[0]=(f*xe-_*Te+y*Ce)*(pe=1/pe),r[1]=(o*Te-a*xe-u*Ce)*pe,r[2]=(A*se-R*ee+O*H)*pe,r[3]=(S*ee-b*se-P*H)*pe,r[4]=(_*ve-h*xe-y*ye)*pe,r[5]=(i*xe-o*ve+u*ye)*pe,r[6]=(R*V-E*se-O*B)*pe,r[7]=(v*se-S*V+P*B)*pe,r[8]=(h*Te-f*ve+y*ge)*pe,r[9]=(a*ve-i*Te-u*ge)*pe,r[10]=(E*ee-A*V+O*G)*pe,r[11]=(b*V-v*ee-P*G)*pe,r[12]=(f*ye-h*Ce-_*ge)*pe,r[13]=(i*Ce-a*ye+o*ge)*pe,r[14]=(A*B-E*H-R*G)*pe,r[15]=(v*H-b*B+S*G)*pe,r):null},k.aC=Er,k.aD=function(r){var e=r[0],i=r[1];return Math.sqrt(e*e+i*i)},k.aE=function(r){return r[0]=0,r[1]=0,r},k.aF=function(r,e,i){return r[0]=e[0]*i,r[1]=e[1]*i,r},k.aG=Sh,k.aH=tn,k.aI=function(r,e,i,a){const o=e.y-r.y,u=e.x-r.x,h=a.y-i.y,f=a.x-i.x,_=h*u-f*o;if(_===0)return null;const y=(f*(r.y-i.y)-h*(r.x-i.x))/_;return new Ee(r.x+y*u,r.y+y*o)},k.aJ=Hp,k.aK=Dl,k.aL=function(r){let e=1/0,i=1/0,a=-1/0,o=-1/0;for(const u of r)e=Math.min(e,u.x),i=Math.min(i,u.y),a=Math.max(a,u.x),o=Math.max(o,u.y);return[e,i,a,o]},k.aM=ei,k.aN=bn,k.aO=function(r,e,i,a,o=!1){if(!i[0]&&!i[1])return[0,0];const u=o?a==="map"?-r.bearingInRadians:0:a==="viewport"?r.bearingInRadians:0;if(u){const h=Math.sin(u),f=Math.cos(u);i=[i[0]*f-i[1]*h,i[0]*h+i[1]*f]}return[o?i[0]:bn(e,i[0],r.zoom),o?i[1]:bn(e,i[1],r.zoom)]},k.aQ=Th,k.aR=Hh,k.aS=wh,k.aT=Xh,k.aU=Ot,k.aV=lu,k.aW=L,k.aX=_e,k.aY=le,k.aZ=Ar,k.a_=up,k.aa=Is,k.ab=25,k.ac=Ch,k.ad=r=>{const e=window.document.createElement("video");return e.muted=!0,new Promise((i=>{e.onloadstart=()=>{i(e)};for(const a of r){const o=window.document.createElement("source");ae(a)||(e.crossOrigin="Anonymous"),o.src=a,e.appendChild(o)}}))},k.ae=Se,k.af=function(){return Qn++},k.ag=s,k.ah=Ao,k.ai=Wl,k.aj=as,k.ak=mn,k.al=mp,k.am=function(r){const e={};if(r.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((i,a,o,u)=>{const h=o||u;return e[a]=!h||h.toLowerCase(),""})),e["max-age"]){const i=parseInt(e["max-age"],10);isNaN(i)?delete e["max-age"]:e["max-age"]=i}return e},k.an=Yi,k.ao=85.051129,k.ap=Mn,k.aq=function(r){return Math.pow(2,r)},k.ar=Yn,k.as=lp,k.at=function(r){return Math.log(r)/Math.LN2},k.au=function(r){var e=r[0],i=r[1];return e*e+i*i},k.av=function(r){if(!r.length)return new Set;const e=Math.max(...r.map((_=>_.canonical.z)));let i=1/0,a=-1/0,o=1/0,u=-1/0;const h=[];for(const _ of r){const{x:y,y:v,z:b}=_.canonical,S=Math.pow(2,e-b),P=y*S,E=v*S;h.push({id:_,x:P,y:E}),Pa&&(a=P),Eu&&(u=E)}const f=new Set;for(const _ of h)_.x!==i&&_.x!==a&&_.y!==o&&_.y!==u||f.add(_.id);return f},k.aw=function(r,e){const i=Math.abs(2*r.wrap)-+(r.wrap<0),a=Math.abs(2*e.wrap)-+(e.wrap<0);return r.overscaledZ-e.overscaledZ||a-i||e.canonical.y-r.canonical.y||e.canonical.x-r.canonical.x},k.ax=class{constructor(r,e){this.max=r,this.onRemove=e,this.reset()}reset(){for(const r in this.data)for(const e of this.data[r])e.timeout&&clearTimeout(e.timeout),this.onRemove(e.value);return this.data={},this.order=[],this}add(r,e,i){const a=r.wrapped().key;this.data[a]===void 0&&(this.data[a]=[]);const o={value:e,timeout:void 0};if(i!==void 0&&(o.timeout=setTimeout((()=>{this.remove(r,o)}),i)),this.data[a].push(o),this.order.push(a),this.order.length>this.max){const u=this._getAndRemoveByKey(this.order[0]);u&&this.onRemove(u)}return this}has(r){return r.wrapped().key in this.data}getAndRemove(r){return this.has(r)?this._getAndRemoveByKey(r.wrapped().key):null}_getAndRemoveByKey(r){const e=this.data[r].shift();return e.timeout&&clearTimeout(e.timeout),this.data[r].length===0&&delete this.data[r],this.order.splice(this.order.indexOf(r),1),e.value}getByKey(r){const e=this.data[r];return e?e[0].value:null}get(r){return this.has(r)?this.data[r.wrapped().key][0].value:null}remove(r,e){if(!this.has(r))return this;const i=r.wrapped().key,a=e===void 0?0:this.data[i].indexOf(e),o=this.data[i][a];return this.data[i].splice(a,1),o.timeout&&clearTimeout(o.timeout),this.data[i].length===0&&delete this.data[i],this.onRemove(o.value),this.order.splice(this.order.indexOf(i),1),this}setMaxSize(r){for(this.max=r;this.order.length>this.max;){const e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this}filter(r){const e=[];for(const i in this.data)for(const a of this.data[i])r(a.value)||e.push(a);for(const i of e)this.remove(i.value.tileID,i)}},k.ay=function(r,e){let i=0,a=0;if(r.kind==="constant")a=r.layoutSize;else if(r.kind!=="source"){const{interpolationType:o,minZoom:u,maxZoom:h}=r,f=o?Yi(vi.interpolationFactor(o,e,u,h),0,1):0;r.kind==="camera"?a=ai.number(r.minSize,r.maxSize,f):i=f}return{uSizeT:i,uSize:a}},k.b=Sn,k.b$=Ts,k.b0=gr,k.b1=function(r){var e=new xt(3);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e},k.b2=function(r,e,i){return r[0]=e[0]-i[0],r[1]=e[1]-i[1],r[2]=e[2]-i[2],r},k.b3=function(r,e){var i=e[0],a=e[1],o=e[2],u=i*i+a*a+o*o;return u>0&&(u=1/Math.sqrt(u)),r[0]=e[0]*u,r[1]=e[1]*u,r[2]=e[2]*u,r},k.b4=vn,k.b5=function(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]},k.b6=function(r,e,i){return r[0]=e[0]*i[0],r[1]=e[1]*i[1],r[2]=e[2]*i[2],r[3]=e[3]*i[3],r},k.b7=Li,k.b8=function(r,e,i){const a=e[0]*i[0]+e[1]*i[1]+e[2]*i[2];return a===0?null:(-(r[0]*i[0]+r[1]*i[1]+r[2]*i[2])-i[3])/a},k.b9=yr,k.bA=function(){return new Float64Array(3)},k.bB=Kn,k.bC=function(r,e,i){var a=i[0],o=i[1],u=i[2],h=i[3],f=e[0],_=e[1],y=e[2],v=o*y-u*_,b=u*f-a*y,S=a*_-o*f;return r[0]=f+h*(v+=v)+o*(S+=S)-u*(b+=b),r[1]=_+h*b+u*v-a*S,r[2]=y+h*S+a*b-o*v,r},k.bD=function(r,e,i){const a=(o=[r[0],r[1],r[2],e[0],e[1],e[2],i[0],i[1],i[2]])[0]*((v=o[8])*(h=o[4])-(f=o[5])*(y=o[7]))+o[1]*(-v*(u=o[3])+f*(_=o[6]))+o[2]*(y*u-h*_);var o,u,h,f,_,y,v;if(a===0)return null;const b=vn([],[e[0],e[1],e[2]],[i[0],i[1],i[2]]),S=vn([],[i[0],i[1],i[2]],[r[0],r[1],r[2]]),P=vn([],[r[0],r[1],r[2]],[e[0],e[1],e[2]]),E=Qr([],b,-r[3]);return gr(E,E,Qr([],S,-e[3])),gr(E,E,Qr([],P,-i[3])),Qr(E,E,1/a),E},k.bE=Eh,k.bF=function(){return new Float64Array(4)},k.bG=function(r,e,i,a){var o=[],u=[];return o[0]=e[0]-i[0],o[1]=e[1]-i[1],o[2]=e[2]-i[2],u[0]=o[0]*Math.cos(a)-o[1]*Math.sin(a),u[1]=o[0]*Math.sin(a)+o[1]*Math.cos(a),u[2]=o[2],r[0]=u[0]+i[0],r[1]=u[1]+i[1],r[2]=u[2]+i[2],r},k.bH=function(r,e,i,a){var o=[],u=[];return o[0]=e[0]-i[0],o[1]=e[1]-i[1],o[2]=e[2]-i[2],u[0]=o[0],u[1]=o[1]*Math.cos(a)-o[2]*Math.sin(a),u[2]=o[1]*Math.sin(a)+o[2]*Math.cos(a),r[0]=u[0]+i[0],r[1]=u[1]+i[1],r[2]=u[2]+i[2],r},k.bI=function(r,e,i,a){var o=[],u=[];return o[0]=e[0]-i[0],o[1]=e[1]-i[1],o[2]=e[2]-i[2],u[0]=o[2]*Math.sin(a)+o[0]*Math.cos(a),u[1]=o[1],u[2]=o[2]*Math.cos(a)-o[0]*Math.sin(a),r[0]=u[0]+i[0],r[1]=u[1]+i[1],r[2]=u[2]+i[2],r},k.bJ=function(r,e,i){var a=Math.sin(i),o=Math.cos(i),u=e[0],h=e[1],f=e[2],_=e[3],y=e[8],v=e[9],b=e[10],S=e[11];return e!==r&&(r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=u*o-y*a,r[1]=h*o-v*a,r[2]=f*o-b*a,r[3]=_*o-S*a,r[8]=u*a+y*o,r[9]=h*a+v*o,r[10]=f*a+b*o,r[11]=_*a+S*o,r},k.bK=function(r,e){const i=xr(r,360),a=xr(e,360),o=a-i,u=a>i?o-360:o+360;return Math.abs(o)0?h:-h},k.bN=function(r,e){const i=xr(r,2*Math.PI),a=xr(e,2*Math.PI);return Math.min(Math.abs(i-a),Math.abs(i-a+2*Math.PI),Math.abs(i-a-2*Math.PI))},k.bO=function(){const r={},e=K.$version;for(const i in K.$root){const a=K.$root[i];if(a.required){let o=null;o=i==="version"?e:a.type==="array"?[]:{},o!=null&&(r[i]=o)}}return r},k.bP=$,k.bQ=fl,k.bR=function r(e,i){if(Array.isArray(e)){if(!Array.isArray(i)||e.length!==i.length)return!1;for(let a=0;ar.type==="raster",k.bV=hi,k.bW=function(r,e){if(!r)return[{command:"setStyle",args:[e]}];let i=[];try{if(!Ne(r.version,e.version))return[{command:"setStyle",args:[e]}];Ne(r.center,e.center)||i.push({command:"setCenter",args:[e.center]}),Ne(r.state,e.state)||i.push({command:"setGlobalState",args:[e.state]}),Ne(r.centerAltitude,e.centerAltitude)||i.push({command:"setCenterAltitude",args:[e.centerAltitude]}),Ne(r.zoom,e.zoom)||i.push({command:"setZoom",args:[e.zoom]}),Ne(r.bearing,e.bearing)||i.push({command:"setBearing",args:[e.bearing]}),Ne(r.pitch,e.pitch)||i.push({command:"setPitch",args:[e.pitch]}),Ne(r.roll,e.roll)||i.push({command:"setRoll",args:[e.roll]}),Ne(r.sprite,e.sprite)||i.push({command:"setSprite",args:[e.sprite]}),Ne(r.glyphs,e.glyphs)||i.push({command:"setGlyphs",args:[e.glyphs]}),Ne(r.transition,e.transition)||i.push({command:"setTransition",args:[e.transition]}),Ne(r.light,e.light)||i.push({command:"setLight",args:[e.light]}),Ne(r.terrain,e.terrain)||i.push({command:"setTerrain",args:[e.terrain]}),Ne(r.sky,e.sky)||i.push({command:"setSky",args:[e.sky]}),Ne(r.projection,e.projection)||i.push({command:"setProjection",args:[e.projection]});const a={},o=[];(function(h,f,_,y){let v;for(v in f=f||{},h=h||{})Object.prototype.hasOwnProperty.call(h,v)&&(Object.prototype.hasOwnProperty.call(f,v)||Ye(v,_,y));for(v in f)Object.prototype.hasOwnProperty.call(f,v)&&(Object.prototype.hasOwnProperty.call(h,v)?Ne(h[v],f[v])||(h[v].type==="geojson"&&f[v].type==="geojson"&&mt(h,f,v)?qe(_,{command:"setGeoJSONSourceData",args:[v,f[v].data]}):Lt(v,f,_,y)):Ge(v,f,_))})(r.sources,e.sources,o,a);const u=[];r.layers&&r.layers.forEach((h=>{"source"in h&&a[h.source]?i.push({command:"removeLayer",args:[h.id]}):u.push(h)})),i=i.concat(o),(function(h,f,_){f=f||[];const y=(h=h||[]).map(ni),v=f.map(ni),b=h.reduce(At,{}),S=f.reduce(At,{}),P=y.slice(),E=Object.create(null);let A,R,O,G,B;for(let V=0,H=0;VCt?(o=Math.acos(u),h=Math.sin(o),f=Math.sin((1-a)*o)/h,_=Math.sin(a*o)/h):(f=1-a,_=a),r[0]=f*y+_*P,r[1]=f*v+_*E,r[2]=f*b+_*A,r[3]=f*S+_*R,r},k.bn=function(r){const e=new Float64Array(9);var i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G,B;b=(o=(a=r)[0])*(_=o+o),S=(u=a[1])*_,E=(h=a[2])*_,A=h*(y=u+u),O=(f=a[3])*_,G=f*y,B=f*(v=h+h),(i=e)[0]=1-(P=u*y)-(R=h*v),i[3]=S-B,i[6]=E+G,i[1]=S+B,i[4]=1-b-R,i[7]=A-O,i[2]=E-G,i[5]=A+O,i[8]=1-b-P;const V=Ar(-Math.asin(Yi(e[2],-1,1)));let H,ee;return Math.hypot(e[5],e[8])<.001?(H=0,ee=-Ar(Math.atan2(e[3],e[4]))):(H=Ar(e[5]===0&&e[8]===0?0:Math.atan2(e[5],e[8])),ee=Ar(e[1]===0&&e[0]===0?0:Math.atan2(e[1],e[0]))),{roll:H,pitch:V+90,bearing:ee}},k.bo=function(r,e){return r.roll==e.roll&&r.pitch==e.pitch&&r.bearing==e.bearing},k.bp=et,k.bq=qr,k.br=Io,k.bs=Ol,k.bt=Mo,k.bu=La,k.bv=Jn,k.bw=Ai,k.bx=function(r,e,i,a,o){return La(a,o,Yi((r-e)/(i-e),0,1))},k.by=function(r,e,i,a){return r[0]=e[0]+i[0]*a,r[1]=e[1]+i[1]*a,r[2]=e[2]+i[2]*a,r},k.bz=xr,k.c=ie,k.c$=class{constructor(r){this.start=`${r}#start`,this.end=`${r}#end`,this.measure=r,performance.mark(this.start)}finish(){performance.mark(this.end);let r=performance.getEntriesByName(this.measure);return r.length===0&&(performance.measure(this.measure,this.start,this.end),r=performance.getEntriesByName(this.measure),performance.clearMarks(this.start),performance.clearMarks(this.end),performance.clearMeasures(this.measure)),r}},k.c0=class extends Ti{constructor(r,e){super(r,e),this.current=wa}set(r){if(r[12]!==this.current[12]||r[0]!==this.current[0])return this.current=r,void this.gl.uniformMatrix4fv(this.location,!1,r);for(let e=1;e<16;e++)if(r[e]!==this.current[e]){this.current=r,this.gl.uniformMatrix4fv(this.location,!1,r);break}}},k.c1=ws,k.c2=class extends Ti{constructor(r,e){super(r,e),this.current=[0,0,0]}set(r){r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]||(this.current=r,this.gl.uniform3f(this.location,r[0],r[1],r[2]))}},k.c3=class extends Ti{constructor(r,e){super(r,e),this.current=[0,0]}set(r){r[0]===this.current[0]&&r[1]===this.current[1]||(this.current=r,this.gl.uniform2f(this.location,r[0],r[1]))}},k.c4=xn,k.c5=function(r,e){var i=Math.sin(e),a=Math.cos(e);return r[0]=a,r[1]=i,r[2]=0,r[3]=-i,r[4]=a,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r},k.c6=function(r,e,i){var a=e[0],o=e[1],u=e[2];return r[0]=a*i[0]+o*i[3]+u*i[6],r[1]=a*i[1]+o*i[4]+u*i[7],r[2]=a*i[2]+o*i[5]+u*i[8],r},k.c7=function(r,e,i,a,o,u,h){var f=1/(e-i),_=1/(a-o),y=1/(u-h);return r[0]=-2*f,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*_,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=2*y,r[11]=0,r[12]=(e+i)*f,r[13]=(o+a)*_,r[14]=(h+u)*y,r[15]=1,r},k.c8=class extends Ti{constructor(r,e){super(r,e),this.current=new Array}set(r){if(r!=this.current){this.current=r;const e=new Float32Array(4*r.length);for(let i=0;i25||a<0||a>=1||i<0||i>=1)},k.cF=function(r,e){return r[0]=e[0],r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=e[1],r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=e[2],r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},k.cG=class extends mo{},k.cH=B_,k.cJ=F,k.cK=function(r,e){ie.REGISTERED_PROTOCOLS[r]=e},k.cL=function(r){delete ie.REGISTERED_PROTOCOLS[r]},k.cM=function(r,e){const i={};for(let o=0;ope*ei))}let ve=f?"center":a.get("text-justify").evaluate(v,{},r.canonical);const Ce=a.get("symbol-placement")==="point"?a.get("text-max-width").evaluate(v,{},r.canonical)*ei:1/0,Te=()=>{r.bucket.allowVerticalPlacement&&ml(H)&&(A.vertical=hu(R,r.glyphMap,r.glyphPositions,r.imagePositions,b,Ce,h,ge,"left",se,G,k.az.vertical,!0,P,S))};if(!f&&ye){const xe=new Set;if(ve==="auto")for(let ke=0;ke=this.maxEntries){const i=this.map.keys().next().value;this.map.delete(i)}this.map.set(r,e)}clear(){this.map.clear()}},k.cY=zd,k.cZ=uu,k.c_=qp,k.ca=class extends ba{},k.cb=Sm,k.cc=class extends xo{},k.cd=hh,k.ce=function(r){return r<=1?1:Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))},k.cf=md,k.cg=function(r,e,i){var a=e[0],o=e[1],u=e[2],h=i[3]*a+i[7]*o+i[11]*u+i[15];return r[0]=(i[0]*a+i[4]*o+i[8]*u+i[12])/(h=h||1),r[1]=(i[1]*a+i[5]*o+i[9]*u+i[13])/h,r[2]=(i[2]*a+i[6]*o+i[10]*u+i[14])/h,r},k.ch=class extends Sl{},k.ci=class extends d{},k.cj=function(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]&&r[4]===e[4]&&r[5]===e[5]&&r[6]===e[6]&&r[7]===e[7]&&r[8]===e[8]&&r[9]===e[9]&&r[10]===e[10]&&r[11]===e[11]&&r[12]===e[12]&&r[13]===e[13]&&r[14]===e[14]&&r[15]===e[15]},k.ck=function(r,e){var i=r[0],a=r[1],o=r[2],u=r[3],h=r[4],f=r[5],_=r[6],y=r[7],v=r[8],b=r[9],S=r[10],P=r[11],E=r[12],A=r[13],R=r[14],O=r[15],G=e[0],B=e[1],V=e[2],H=e[3],ee=e[4],se=e[5],ge=e[6],ye=e[7],ve=e[8],Ce=e[9],Te=e[10],xe=e[11],pe=e[12],ke=e[13],Re=e[14],Ve=e[15];return Math.abs(i-G)<=Ct*Math.max(1,Math.abs(i),Math.abs(G))&&Math.abs(a-B)<=Ct*Math.max(1,Math.abs(a),Math.abs(B))&&Math.abs(o-V)<=Ct*Math.max(1,Math.abs(o),Math.abs(V))&&Math.abs(u-H)<=Ct*Math.max(1,Math.abs(u),Math.abs(H))&&Math.abs(h-ee)<=Ct*Math.max(1,Math.abs(h),Math.abs(ee))&&Math.abs(f-se)<=Ct*Math.max(1,Math.abs(f),Math.abs(se))&&Math.abs(_-ge)<=Ct*Math.max(1,Math.abs(_),Math.abs(ge))&&Math.abs(y-ye)<=Ct*Math.max(1,Math.abs(y),Math.abs(ye))&&Math.abs(v-ve)<=Ct*Math.max(1,Math.abs(v),Math.abs(ve))&&Math.abs(b-Ce)<=Ct*Math.max(1,Math.abs(b),Math.abs(Ce))&&Math.abs(S-Te)<=Ct*Math.max(1,Math.abs(S),Math.abs(Te))&&Math.abs(P-xe)<=Ct*Math.max(1,Math.abs(P),Math.abs(xe))&&Math.abs(E-pe)<=Ct*Math.max(1,Math.abs(E),Math.abs(pe))&&Math.abs(A-ke)<=Ct*Math.max(1,Math.abs(A),Math.abs(ke))&&Math.abs(R-Re)<=Ct*Math.max(1,Math.abs(R),Math.abs(Re))&&Math.abs(O-Ve)<=Ct*Math.max(1,Math.abs(O),Math.abs(Ve))},k.cl=function(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},k.cm=r=>r.type==="symbol",k.cn=r=>r.type==="circle",k.co=r=>r.type==="heatmap",k.cp=r=>r.type==="line",k.cq=r=>r.type==="fill",k.cr=r=>r.type==="fill-extrusion",k.cs=r=>r.type==="hillshade",k.ct=r=>r.type==="color-relief",k.cu=r=>r.type==="background",k.cv=r=>r.type==="custom",k.cw=rn,k.cx=function(r,e,i){if(e<=0)return r;const a=1/e;return i===void 0||Math.abs(i)<1e-10?Math.round(r*a)/a:(i>0?Math.ceil(r*a-1e-9):Math.floor(r*a+1e-10))/a},k.cy=function(r,e,i){const a=Ut(e.x-i.x,e.y-i.y),o=Ut(r.x-i.x,r.y-i.y);var u,h;return Ar(Math.atan2(a[0]*o[1]-a[1]*o[0],(u=a)[0]*(h=o)[0]+u[1]*h[1]))},k.cz=Cr,k.d=ae,k.d0=function(r,e,i,a,o){return c(this,void 0,void 0,(function*(){if(Xn())try{return yield Pn(r,e,i,a,o)}catch{}return(function(u,h,f,_,y){const v=u.width,b=u.height;nn&&br||(nn=new OffscreenCanvas(v,b),br=nn.getContext("2d",{willReadFrequently:!0})),nn.width=v,nn.height=b,br.drawImage(u,0,0,v,b);const S=br.getImageData(h,f,_,y);return br.clearRect(0,0,v,b),S.data})(r,e,i,a,o)}))},k.d1=xd,k.d2=Jt,k.d3=class{constructor(r,e){this.layers={[Wl]:this},this.name=Wl,this.version=e?e.version:1,this.extent=e?e.extent:4096,this.length=r.length,this.features=r}feature(r){return new v_(this.features[r],this.extent)}},k.d4=Vn,k.d5=Nr,k.e=Ei,k.f=r=>c(void 0,void 0,void 0,(function*(){if(r.byteLength===0)return createImageBitmap(new ImageData(1,1));const e=new Blob([new Uint8Array(r)],{type:"image/png"});try{return createImageBitmap(e)}catch(i){throw new Error(`Could not load image because of ${i.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}})),k.g=C,k.h=r=>new Promise(((e,i)=>{const a=new Image;a.onload=()=>{e(a),URL.revokeObjectURL(a.src),a.onload=null,window.requestAnimationFrame((()=>{a.src=ea}))},a.onerror=()=>i(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const o=new Blob([new Uint8Array(r)],{type:"image/png"});a.src=r.byteLength?URL.createObjectURL(o):ea})),k.i=vr,k.j=(r,e)=>J(Ei(r,{type:"json"}),e),k.k=be,k.l=ne,k.m=J,k.n=(r,e)=>J(Ei(r,{type:"arrayBuffer"}),e),k.o=function(r){return new uu(r).readFields(Om,[])},k.p=Hd,k.q=function(r){return/[\u02EA\u02EB\u1100-\u11FF\u2E80-\u2FDF\u3000-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(r))},k.r=kl,k.s=an,k.t=bi,k.u=K,k.v=ds,k.w=di,k.x=bl,k.y=Ui,k.z=fo})),ot("worker",["./shared"],(function(k){class c{constructor(C,D){this.keyCache={},C&&this.replace(C,D)}replace(C,D){this._layerConfigs={},this._layers={},this.update(C,[],D)}update(C,D,F){for(const J of C){this._layerConfigs[J.id]=J;const ae=this._layers[J.id]=k.bT(J,F);ae._featureFilter=k.aj(ae.filter,F),this.keyCache[J.id]&&delete this.keyCache[J.id]}for(const J of D)delete this.keyCache[J],delete this._layerConfigs[J],delete this._layers[J];this.familiesBySource={};const $=k.cM(Object.values(this._layerConfigs),this.keyCache);for(const J of $){const ae=J.map((K=>this._layers[K.id])),oe=ae[0];if(oe.isHidden())continue;const re=oe.source||"";let ne=this.familiesBySource[re];ne||(ne=this.familiesBySource[re]={});const be=oe.sourceLayer||k.ai;let me=ne[be];me||(me=ne[be]=[]),me.push(ae)}}}class Ee{constructor(C){const D={},F=[];for(const oe in C){const re=C[oe],ne=D[oe]={};for(const be in re){const me=re[+be];if(!me||me.bitmap.width===0||me.bitmap.height===0)continue;const K={x:0,y:0,w:me.bitmap.width+2,h:me.bitmap.height+2};F.push(K),ne[be]={rect:K,metrics:me.metrics}}}const{w:$,h:J}=k.p(F),ae=new k.r({width:$||1,height:J||1});for(const oe in C){const re=C[oe];for(const ne in re){const be=re[+ne];if(!be||be.bitmap.width===0||be.bitmap.height===0)continue;const me=D[oe][ne].rect;k.r.copy(be.bitmap,ae,{x:0,y:0},{x:me.x+1,y:me.y+1},be.bitmap)}}this.image=ae,this.positions=D}}k.cN("GlyphAtlas",Ee);class Jt{constructor(C){this.tileID=new k.a2(C.tileID.overscaledZ,C.tileID.wrap,C.tileID.canonical.z,C.tileID.canonical.x,C.tileID.canonical.y),this.uid=C.uid,this.zoom=C.zoom,this.pixelRatio=C.pixelRatio,this.tileSize=C.tileSize,this.source=C.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=C.showCollisionBoxes,this.collectResourceTiming=!!C.collectResourceTiming,this.returnDependencies=!!C.returnDependencies,this.promoteId=C.promoteId,this.inFlightDependencies=[]}parse(C,D,F,$,J){return k._(this,void 0,void 0,(function*(){this.status="parsing",this.data=C,this.collisionBoxArray=new k.ag;const ae=new k.cO(Object.keys(C.layers).sort()),oe=new k.cP(this.tileID,this.promoteId);oe.bucketLayerIDs=[];const re={},ne={featureIndex:oe,iconDependencies:{},patternDependencies:{},glyphDependencies:{},dashDependencies:{},availableImages:F,subdivisionGranularity:J},be=D.familiesBySource[this.source];for(const at in be){const bt=C.layers[at];if(!bt)continue;bt.version===1&&k.w(`Vector tile source "${this.source}" layer "${at}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const In=ae.encode(at),Dr=[];for(let Pe=0;PeWe.id))))}}const me=k.bY(ne.glyphDependencies,(at=>Object.keys(at).map(Number)));this.inFlightDependencies.forEach((at=>at?.abort())),this.inFlightDependencies=[];let K=Promise.resolve({});if(Object.keys(me).length){const at=new AbortController;this.inFlightDependencies.push(at),K=$.sendAsync({type:"GG",data:{stacks:me,source:this.source,tileID:this.tileID,type:"glyphs"}},at)}const Oe=Object.keys(ne.iconDependencies);let Ze=Promise.resolve({});if(Oe.length){const at=new AbortController;this.inFlightDependencies.push(at),Ze=$.sendAsync({type:"GI",data:{icons:Oe,source:this.source,tileID:this.tileID,type:"icons"}},at)}const Ne=Object.keys(ne.patternDependencies);let qe=Promise.resolve({});if(Ne.length){const at=new AbortController;this.inFlightDependencies.push(at),qe=$.sendAsync({type:"GI",data:{icons:Ne,source:this.source,tileID:this.tileID,type:"patterns"}},at)}const Ge=ne.dashDependencies;let Ye=Promise.resolve({});if(Object.keys(Ge).length){const at=new AbortController;this.inFlightDependencies.push(at),Ye=$.sendAsync({type:"GDA",data:{dashes:Ge}},at)}const[Lt,mt,Ft,ni]=yield Promise.all([K,Ze,qe,Ye]),At=new Ee(Lt),Se=new k.cQ(mt,Ft);for(const at in re){const bt=re[at];bt instanceof k.ah?(Nt(bt.layers,this.zoom,F),k.cR({bucket:bt,glyphMap:Lt,glyphPositions:At.positions,imageMap:mt,imagePositions:Se.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical,subdivisionGranularity:ne.subdivisionGranularity})):bt.hasDependencies&&(bt instanceof k.cS||bt instanceof k.cT||bt instanceof k.cU)&&(Nt(bt.layers,this.zoom,F),bt.addFeatures(ne,this.tileID.canonical,Se.patternPositions,ni))}return this.status="done",{buckets:Object.values(re).filter((at=>!at.isEmpty())),featureIndex:oe,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:At.image,imageAtlas:Se,dashPositions:ni,glyphMap:this.returnDependencies?Lt:null,iconMap:this.returnDependencies?mt:null,glyphPositions:this.returnDependencies?At.positions:null}}))}}function Nt(ie,C,D){const F=new k.H(C);for(const $ of ie)$.recalculate(F,D)}class or{constructor(){this.loading={},this.loaded={},this.parsing={}}startLoading(C,D){this.loading[C]=D}finishLoading(C){delete this.loading[C]}abort(C){const D=this.loading[C];D?.abort&&(D.abort.abort(),delete this.loading[C])}setParsing(C,D){this.parsing[C]=D}consumeParsing(C){const D=this.parsing[C];if(D)return delete this.parsing[C],D}clearParsing(C){delete this.parsing[C]}markLoaded(C,D){this.loaded[C]=D}getLoaded(C){const D=this.loaded[C];if(D)return D}removeLoaded(C){delete this.loaded[C]}clearLoaded(){this.loaded={}}}class lr{constructor(C,D,F,$,J){this.type=C,this.properties=F||{},this.extent=J,this.pointsArray=D,this.id=$}loadGeometry(){return this.pointsArray.map((C=>C.map((D=>new k.P(D.x,D.y)))))}}class Zt{constructor(C,D,F){this.version=2,this._myFeatures=C,this.name=D,this.length=C.length,this.extent=F}feature(C){return this._myFeatures[C]}}class Jr{constructor(){this.layers={}}addLayer(C){this.layers[C.name]=C}}function it(ie){let C=k.cV(ie);return C.byteOffset===0&&C.byteLength===C.buffer.byteLength||(C=new Uint8Array(C)),{vectorTile:ie,rawData:C.buffer}}function fe(ie,C,D){const{extent:F}=ie,$=Math.pow(2,D.z-C.z),J=(D.x-C.x*$)*F,ae=(D.y-C.y*$)*F,oe=[];for(let re=0;re0&&ne.addLayer(Ze)}const me=it(ne);return this.overzoomedTileResultCache.set(oe,me),me}reloadTile(C){return k._(this,void 0,void 0,(function*(){const D=C.uid,F=this.tileState.getLoaded(D);if(!F)throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");if(F.showCollisionBoxes=C.showCollisionBoxes,F.status==="parsing"){const $=this.tileState.consumeParsing(D);return yield this._parseWorkerTile(F,C,$)}if(F.status==="done"&&F.vectorTile)return yield this._parseWorkerTile(F,C)}))}abortTile(C){return k._(this,void 0,void 0,(function*(){this.tileState.abort(C.uid)}))}removeTile(C){return k._(this,void 0,void 0,(function*(){this.tileState.removeLoaded(C.uid)}))}}class Ct{constructor(){this.loaded={}}loadTile(C){return k._(this,void 0,void 0,(function*(){const{uid:D,encoding:F,rawImageData:$,redFactor:J,greenFactor:ae,blueFactor:oe,baseShift:re}=C,ne=$.width+2,be=$.height+2,me=k.b($)?new k.R({width:ne,height:be},yield k.d0($,-1,-1,ne,be)):$,K=new k.d1(D,me,F,J,ae,oe,re);return this.loaded=this.loaded||{},this.loaded[D]=K,K}))}removeTile(C){const D=this.loaded,F=C.uid;D&&D[F]&&delete D[F]}}var xt,xn,Yn=(function(){if(xn)return xt;function ie(D,F){if(D.length!==0){C(D[0],F);for(var $=1;$=Math.abs(ne)?$-be+ne:ne-be+$,$=be}$+J>=0!=!!F&&D.reverse()}return xn=1,xt=function D(F,$){var J,ae=F&&F.type;if(ae==="FeatureCollection")for(J=0;Jie},ka=Math.fround||(gr=new Float32Array(1),ie=>(gr[0]=+ie,gr[0]));var gr;class Qr{constructor(C){this.options=Object.assign(Object.create(Li),C),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(C){const{log:D,minZoom:F,maxZoom:$}=this.options;D&&console.time("total time");const J=`prepare ${C.length} points`;D&&console.time(J),this.points=C;const ae=[];for(let re=0;re=F;re--){const ne=+Date.now();oe=this.trees[re]=this._createTree(this._cluster(oe,re)),D&&console.log("z%d: %d clusters in %dms",re,oe.numItems,+Date.now()-ne)}return D&&console.timeEnd("total time"),this}getClusters(C,D){let F=((C[0]+180)%360+360)%360-180;const $=Math.max(-90,Math.min(90,C[1]));let J=C[2]===180?180:((C[2]+180)%360+360)%360-180;const ae=Math.max(-90,Math.min(90,C[3]));if(C[2]-C[0]>=360)F=-180,J=180;else if(F>J){const me=this.getClusters([F,$,180,ae],D),K=this.getClusters([-180,$,J,ae],D);return me.concat(K)}const oe=this.trees[this._limitZoom(D)],re=oe.range(yr(F),tn(ae),yr(J),tn($)),ne=oe.data,be=[];for(const me of re){const K=this.stride*me;be.push(ne[K+5]>1?vn(ne,K,this.clusterProps):this.points[ne[K+3]])}return be}getChildren(C){const D=this._getOriginId(C),F=this._getOriginZoom(C),$="No cluster with the specified id.",J=this.trees[F];if(!J)throw new Error($);const ae=J.data;if(D*this.stride>=ae.length)throw new Error($);const oe=this.options.radius/(this.options.extent*Math.pow(2,F-1)),re=J.within(ae[D*this.stride],ae[D*this.stride+1],oe),ne=[];for(const be of re){const me=be*this.stride;ae[me+4]===C&&ne.push(ae[me+5]>1?vn(ae,me,this.clusterProps):this.points[ae[me+3]])}if(ne.length===0)throw new Error($);return ne}getLeaves(C,D,F){const $=[];return this._appendLeaves($,C,D=D||10,F=F||0,0),$}getTile(C,D,F){const $=this.trees[this._limitZoom(C)],J=Math.pow(2,C),{extent:ae,radius:oe}=this.options,re=oe/ae,ne=(F-re)/J,be=(F+1+re)/J,me={features:[]};return this._addTileFeatures($.range((D-re)/J,ne,(D+1+re)/J,be),$.data,D,F,J,me),D===0&&this._addTileFeatures($.range(1-re/J,ne,1,be),$.data,J,F,J,me),D===J-1&&this._addTileFeatures($.range(0,ne,re/J,be),$.data,-1,F,J,me),me.features.length?me:null}getClusterExpansionZoom(C){let D=this._getOriginZoom(C)-1;for(;D<=this.options.maxZoom;){const F=this.getChildren(C);if(D++,F.length!==1)break;C=F[0].properties.cluster_id}return D}_appendLeaves(C,D,F,$,J){const ae=this.getChildren(D);for(const oe of ae){const re=oe.properties;if(re&&re.cluster?J+re.point_count<=$?J+=re.point_count:J=this._appendLeaves(C,re.cluster_id,F,$,J):J<$?J++:C.push(oe),C.length===F)break}return J}_createTree(C){const D=new k.aT(C.length/this.stride|0,this.options.nodeSize,Float32Array);for(let F=0;F1;let be,me,K;if(ne)be=en(D,re,this.clusterProps),me=D[re],K=D[re+1];else{const Ne=this.points[D[re+3]];be=Ne.properties;const[qe,Ge]=Ne.geometry.coordinates;me=yr(qe),K=tn(Ge)}const Oe={type:1,geometry:[[Math.round(this.options.extent*(me*J-F)),Math.round(this.options.extent*(K*J-$))]],tags:be};let Ze;Ze=ne||this.options.generateId?D[re+3]:this.points[D[re+3]].id,Ze!==void 0&&(Oe.id=Ze),ae.features.push(Oe)}}_limitZoom(C){return Math.max(this.options.minZoom,Math.min(Math.floor(+C),this.options.maxZoom+1))}_cluster(C,D){const{radius:F,extent:$,reduce:J,minPoints:ae}=this.options,oe=F/($*Math.pow(2,D)),re=C.data,ne=[],be=this.stride;for(let me=0;meD&&(qe+=re[Ye+5])}if(qe>Ne&&qe>=ae){let Ge,Ye=K*Ne,Lt=Oe*Ne,mt=-1;const Ft=(me/be<<5)+(D+1)+this.points.length;for(const ni of Ze){const At=ni*be;if(re[At+2]<=D)continue;re[At+2]=D;const Se=re[At+5];Ye+=re[At]*Se,Lt+=re[At+1]*Se,re[At+4]=Ft,J&&(Ge||(Ge=this._map(re,me,!0),mt=this.clusterProps.length,this.clusterProps.push(Ge)),J(Ge,this._map(re,At)))}re[me+4]=Ft,ne.push(Ye/qe,Lt/qe,1/0,Ft,-1,qe),J&&ne.push(mt)}else{for(let Ge=0;Ge1)for(const Ge of Ze){const Ye=Ge*be;if(!(re[Ye+2]<=D)){re[Ye+2]=D;for(let Lt=0;Lt>5}_getOriginZoom(C){return(C-this.points.length)%32}_map(C,D,F){if(C[D+5]>1){const ae=this.clusterProps[C[D+6]];return F?Object.assign({},ae):ae}const $=this.points[C[D+3]].properties,J=this.options.map($);return F&&J===$?Object.assign({},J):J}}function vn(ie,C,D){return{type:"Feature",id:ie[C+3],properties:en(ie,C,D),geometry:{type:"Point",coordinates:[(F=ie[C],360*(F-.5)),Ra(ie[C+1])]}};var F}function en(ie,C,D){const F=ie[C+5],$=F>=1e4?`${Math.round(F/1e3)}k`:F>=1e3?Math.round(F/100)/10+"k":F,J=ie[C+6],ae=J===-1?{}:Object.assign({},D[J]);return Object.assign(ae,{cluster:!0,cluster_id:ie[C+3],point_count:F,point_count_abbreviated:$})}function yr(ie){return ie/360+.5}function tn(ie){const C=Math.sin(ie*Math.PI/180),D=.5-.25*Math.log((1+C)/(1-C))/Math.PI;return D<0?0:D>1?1:D}function Ra(ie){const C=(180-360*ie)*Math.PI/180;return 360*Math.atan(Math.exp(C))/Math.PI-90}function Kn(ie,C,D,F){let $=F;const J=C+(D-C>>1);let ae,oe=D-C;const re=ie[C],ne=ie[C+1],be=ie[D],me=ie[D+1];for(let K=C+3;K$)ae=K,$=Oe;else if(Oe===$){const Ze=Math.abs(K-J);ZeF&&(ae-C>3&&Kn(ie,C,ae,F),ie[ae+2]=$,D-ae>3&&Kn(ie,ae,D,F))}function Er(ie,C,D,F,$,J){let ae=$-D,oe=J-F;if(ae!==0||oe!==0){const re=((ie-D)*ae+(C-F)*oe)/(ae*ae+oe*oe);re>1?(D=$,F=J):re>0&&(D+=ae*re,F+=oe*re)}return ae=ie-D,oe=C-F,ae*ae+oe*oe}function Ut(ie,C,D,F){const $={type:C,geom:D},J={id:ie??null,type:$.type,geometry:$.geom,tags:F,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};switch($.type){case"Point":case"MultiPoint":case"LineString":st(J,$.geom);break;case"Polygon":st(J,$.geom[0]);break;case"MultiLineString":for(const ae of $.geom)st(J,ae);break;case"MultiPolygon":for(const ae of $.geom)st(J,ae[0])}return J}function st(ie,C){for(let D=0;D0&&(ae+=F?($*be-ne*J)/2:Math.sqrt(Math.pow(ne-$,2)+Math.pow(be-J,2))),$=ne,J=be}const oe=C.length-3;C[2]=1,D>0&&Kn(C,0,oe,D),C[oe+2]=1,C.size=Math.abs(ae),C.start=0,C.end=C.size}function rn(ie,C,D,F){for(let $=0;$1?1:D}function ui(ie,C,D,F,$,J,ae,oe){if(F/=C,J>=(D/=C)&&ae=F)return null;const re=[];for(const ne of ie){const be=$===0?ne.minX:ne.minY,me=$===0?ne.maxX:ne.maxY;if(be>=D&&me=F))switch(ne.type){case"Point":case"MultiPoint":{const K=[];if(Ei(ne.geometry,K,D,F,$),!K.length)continue;re.push(Ut(ne.id,K.length===3?"Point":"MultiPoint",K,ne.tags));continue}case"LineString":{const K=[];if(Qn(ne.geometry,K,D,F,$,!1,oe.lineMetrics),!K.length)continue;if(oe.lineMetrics){for(const Oe of K)re.push(Ut(ne.id,ne.type,Oe,ne.tags));continue}if(K.length>1){re.push(Ut(ne.id,"MultiLineString",K,ne.tags));continue}re.push(Ut(ne.id,ne.type,K[0],ne.tags));continue}case"MultiLineString":{const K=[];if(Tn(ne.geometry,K,D,F,$,!1),!K.length)continue;if(K.length===1){re.push(Ut(ne.id,"LineString",K[0],ne.tags));continue}re.push(Ut(ne.id,ne.type,K,ne.tags));continue}case"Polygon":{const K=[];if(Tn(ne.geometry,K,D,F,$,!0),!K.length)continue;re.push(Ut(ne.id,ne.type,K,ne.tags));continue}case"MultiPolygon":{const K=[];for(const Oe of ne.geometry){const Ze=[];Tn(Oe,Ze,D,F,$,!0),Ze.length&&K.push(Ze)}if(!K.length)continue;re.push(Ut(ne.id,ne.type,K,ne.tags));continue}}}return re.length?re:null}function Ei(ie,C,D,F,$){for(let J=0;J=D&&ae<=F&&hi(C,ie[J],ie[J+1],ie[J+2])}}function Qn(ie,C,D,F,$,J,ae){let oe=wn(ie);const re=$===0?Ds:di;let ne,be,me=ie.start;for(let qe=0;qeD&&(be=re(oe,Ge,Ye,mt,Ft,D),ae&&(oe.start=me+ne*be)):ni>F?At=D&&(be=re(oe,Ge,Ye,mt,Ft,D),Se=!0),At>F&&ni<=F&&(be=re(oe,Ge,Ye,mt,Ft,F),Se=!0),!J&&Se&&(ae&&(oe.end=me+ne*be),C.push(oe),oe=wn(ie)),ae&&(me+=ne)}let K=ie.length-3;const Oe=ie[K],Ze=ie[K+1],Ne=$===0?Oe:Ze;Ne>=D&&Ne<=F&&hi(oe,Oe,Ze,ie[K+2]),K=oe.length-3,J&&K>=3&&(oe[K]!==oe[0]||oe[K+1]!==oe[1])&&hi(oe,oe[0],oe[1],oe[2]),oe.length&&C.push(oe)}function wn(ie){const C=[];return C.size=ie.size,C.start=ie.start,C.end=ie.end,C}function Tn(ie,C,D,F,$,J){for(const ae of ie)Qn(ae,C,D,F,$,J,!1)}function hi(ie,C,D,F){ie.push(C,D,F)}function Ds(ie,C,D,F,$,J){const ae=(J-C)/(F-C);return hi(ie,J,D+($-D)*ae,1),ae}function di(ie,C,D,F,$,J){const ae=(J-D)/($-D);return hi(ie,C+(F-C)*ae,J,1),ae}function Fi(ie,C){const D=C.buffer/C.extent;let F=ie;const $=ui(ie,1,-1-D,D,0,-1,2,C),J=ui(ie,1,1-D,2+D,0,-1,2,C);return($||J)&&(F=ui(ie,1,-D,1+D,0,-1,2,C)||[],$&&(F=vr($,1).concat(F)),J&&(F=F.concat(vr(J,-1)))),F}function vr(ie,C){const D=[];for(const F of ie)switch(F.type){case"Point":case"MultiPoint":case"LineString":{const $=vt(F.geometry,C);D.push(Ut(F.id,F.type,$,F.tags));continue}case"MultiLineString":case"Polygon":{const $=[];for(const J of F.geometry)$.push(vt(J,C));D.push(Ut(F.id,F.type,$,F.tags));continue}case"MultiPolygon":{const $=[];for(const J of F.geometry){const ae=[];for(const oe of J)ae.push(vt(oe,C));$.push(ae)}D.push(Ut(F.id,F.type,$,F.tags));continue}}return D}function vt(ie,C){const D=[];D.size=ie.size,ie.start!==void 0&&(D.start=ie.start,D.end=ie.end);for(let F=0;F0&&C.size<($?ae:F))return void(D.numPoints+=C.length/3);const oe=[];for(let re=0;reae)&&(D.numSimplified++,oe.push(C[re],C[re+1])),D.numPoints++;$&&(function(re,ne){let be=0;for(let me=0,K=re.length,Oe=K-2;me0===ne)for(let me=0,K=re.length;me0||C.addOrUpdateProperties?.length>0;if(F){let J=bn({type:"FeatureCollection",features:[{type:"Feature",id:ie.id,geometry:C.newGeometry,properties:$?Mn(ie.tags,C):ie.tags}]},D);return J=Fi(J,D),J[0]}if($){const J={...ie};return J.tags=Mn(J.tags,C),J}return null}function Mn(ie,C){if(C.removeAllProperties)return{};const D={...ie||{}};if(C.removeProperties)for(const F of C.removeProperties)delete D[F];if(C.addOrUpdateProperties)for(const{key:F,value:$}of C.addOrUpdateProperties)D[F]=$;return D}const Ar={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,updateable:!1,debug:0};class zr{options;tiles;tileCoords;stats={};total=0;source;constructor(C,D){const F=(D=this.options=Object.assign({},Ar,D)).debug;if(F&&console.time("preprocess data"),D.maxZoom<0||D.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(D.promoteId&&D.generateId)throw new Error("promoteId and generateId cannot be used together.");let $=bn(C,D);this.tiles={},this.tileCoords=[],F&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",D.indexMaxZoom,D.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),$=Fi($,D),$.length&&this.splitTile($,0,0,0),D.updateable&&(this.source=$),F&&($.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}splitTile(C,D,F,$,J,ae,oe){const re=[C,D,F,$],ne=this.options,be=ne.debug;for(;re.length;){$=re.pop(),F=re.pop(),D=re.pop(),C=re.pop();const me=1<1&&console.time("creation"),Oe=this.tiles[K]=Pn(C,D,F,$,ne),this.tileCoords.push({z:D,x:F,y:$,id:K}),be)){be>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",D,F,$,Oe.numFeatures,Oe.numPoints,Oe.numSimplified),console.timeEnd("creation"));const Se=`z${D}`;this.stats[Se]=(this.stats[Se]||0)+1,this.total++}if(Oe.source=C,J==null){if(D===ne.indexMaxZoom||Oe.numPoints<=ne.indexMaxPoints)continue}else{if(D===ne.maxZoom||D===J)continue;if(J!=null){const Se=J-D;if(F!==ae>>Se||$!==oe>>Se)continue}}if(Oe.source=null,!C.length)continue;be>1&&console.time("clipping");const Ze=.5*ne.buffer/ne.extent,Ne=.5-Ze,qe=.5+Ze,Ge=1+Ze;let Ye=null,Lt=null,mt=null,Ft=null;const ni=ui(C,me,F-Ze,F+qe,0,Oe.minX,Oe.maxX,ne),At=ui(C,me,F+Ne,F+Ge,0,Oe.minX,Oe.maxX,ne);ni&&(Ye=ui(ni,me,$-Ze,$+qe,1,Oe.minY,Oe.maxY,ne),Lt=ui(ni,me,$+Ne,$+Ge,1,Oe.minY,Oe.maxY,ne)),At&&(mt=ui(At,me,$-Ze,$+qe,1,Oe.minY,Oe.maxY,ne),Ft=ui(At,me,$+Ne,$+Ge,1,Oe.minY,Oe.maxY,ne)),be>1&&console.timeEnd("clipping"),re.push(Ye||[],D+1,2*F,2*$),re.push(Lt||[],D+1,2*F,2*$+1),re.push(mt||[],D+1,2*F+1,2*$),re.push(Ft||[],D+1,2*F+1,2*$+1)}}getTile(C,D,F){C=+C,D=+D,F=+F;const $=this.options,{extent:J,debug:ae}=$;if(C<0||C>24)return null;const oe=1<1&&console.log("drilling down to z%d-%d-%d",C,D,F);let ne,be=C,me=D,K=F;for(;!ne&&be>0;)be--,me>>=1,K>>=1,ne=this.tiles[sn(be,me,K)];return ne?.source?(ae>1&&(console.log("found parent tile z%d-%d-%d",be,me,K),console.time("drilling down")),this.splitTile(ne.source,be,me,K,C,D,F),ae>1&&console.timeEnd("drilling down"),this.tiles[re]?Sn(this.tiles[re],J):null):null}invalidateTiles(C){const D=this.options,{debug:F}=D;let $=1/0,J=-1/0,ae=1/0,oe=-1/0;for(const be of C)$=Math.min($,be.minX),J=Math.max(J,be.maxX),ae=Math.min(ae,be.minY),oe=Math.max(oe,be.maxY);const re=D.buffer/D.extent,ne=new Set;for(const be in this.tiles){const me=this.tiles[be],K=1<=Ze||oe=qe)continue;let Ge=!1;for(const Ye of C)if(Ye.maxX>=Oe&&Ye.minX=Ne&&Ye.minY1&&console.log("invalidate tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",me.z,me.x,me.y,me.numFeatures,me.numPoints,me.numSimplified);const Ye=`z${me.z}`;this.stats[Ye]=(this.stats[Ye]||0)-1,this.total--}delete this.tiles[be],ne.add(be)}}ne.size&&(this.tileCoords=this.tileCoords.filter((be=>!ne.has(be.id))))}updateData(C){const D=this.options,F=D.debug;if(!D.updateable)throw new Error("to update tile geojson `updateable` option must be set to true");const{affected:$,source:J}=(function(me,K,Oe){const Ze=(function(qe){return qe?{removeAll:qe.removeAll,remove:new Set(qe.remove||[]),add:new Map(qe.add?.map((Ge=>[Ge.id,Ge]))),update:new Map(qe.update?.map((Ge=>[Ge.id,Ge])))}:{remove:new Set,add:new Map,update:new Map}})(K);let Ne=[];if(Ze.removeAll&&(Ne=me,me=[]),Ze.remove.size||Ze.add.size){const qe=[];for(const Ge of me){const{id:Ye}=Ge;(Ze.remove.has(Ye)||Ze.add.has(Ye))&&qe.push(Ge)}if(qe.length){Ne.push(...qe);const Ge=new Set(qe.map((Ye=>Ye.id)));me=me.filter((Ye=>!Ge.has(Ye.id)))}if(Ze.add.size){let Ge=bn({type:"FeatureCollection",features:Array.from(Ze.add.values())},Oe);Ge=Fi(Ge,Oe),Ne.push(...Ge),me.push(...Ge)}}if(Ze.update.size)for(const[qe,Ge]of Ze.update){const Ye=me.findIndex((Ft=>Ft.id===qe));if(Ye===-1)continue;const Lt=me[Ye],mt=an(Lt,Ge,Oe);mt&&(Ne.push(Lt,mt),me[Ye]=mt)}return{affected:Ne,source:me}})(this.source,C,D);if(!$.length)return;this.source=J,F>1&&(console.log("invalidating tiles"),console.time("invalidating")),this.invalidateTiles($),F>1&&console.timeEnd("invalidating");const[ae,oe,re]=[0,0,0],ne=Pn(this.source,ae,oe,re,this.options);ne.source=this.source;const be=sn(ae,oe,re);if(this.tiles[be]=ne,this.tileCoords.push({z:ae,x:oe,y:re,id:be}),F){const me=`z${ae}`;this.stats[me]=(this.stats[me]||0)+1,this.total++}}}function sn(ie,C,D){return 32*((1<`${J.key}: ${J.message}`)).join(", "));const $=C.features.filter((J=>F.value.evaluate({zoom:0},J)));return this._toFeatureCollection($)}_toFeatureCollection(C){return{type:"FeatureCollection",features:C}}removeSource(C){return k._(this,void 0,void 0,(function*(){var D;(D=this._pendingRequest)===null||D===void 0||D.abort()}))}getClusterExpansionZoom(C){return this._geoJSONIndex.getClusterExpansionZoom(C.clusterId)}getClusterChildren(C){return this._geoJSONIndex.getChildren(C.clusterId)}getClusterLeaves(C){return this._geoJSONIndex.getLeaves(C.clusterId,C.limit,C.offset)}}function Fa(ie,C){return C.cluster?new Qr((function({superclusterOptions:D,clusterProperties:F}){if(!F||!D)return D;const $={},J={},ae={accumulated:null,zoom:0},oe={properties:null},re=Object.keys(F);for(const ne of re){const[be,me]=F[ne],K=k.d4(me),Oe=k.d4(typeof be=="string"?[be,["accumulated"],["get",ne]]:be);$[ne]=K.value,J[ne]=Oe.value}return D.map=ne=>{oe.properties=ne;const be={};for(const me of re)be[me]=$[me].evaluate(ae,oe);return be},D.reduce=(ne,be)=>{oe.properties=be;for(const me of re)ae.accumulated=ne[me],ne[me]=J[me].evaluate(ae,oe)},D})(C)).load(ie.features):(function(D,F){return new zr(D,F)})(ie,C.geojsonVtOptions)}class ia{constructor(C){this.self=C,this.actor=new k.L(C),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.globalStates=new Map,this.self.registerWorkerSource=(D,F)=>{if(this.externalWorkerSourceTypes[D])throw new Error(`Worker source with name "${D}" already registered.`);this.externalWorkerSourceTypes[D]=F},this.self.addProtocol=k.cK,this.self.removeProtocol=k.cL,this.self.registerRTLTextPlugin=D=>{k.d5.setMethods(D)},this.actor.registerMessageHandler("LDT",((D,F)=>this._getDEMWorkerSource(D,F.source).loadTile(F))),this.actor.registerMessageHandler("RDT",((D,F)=>k._(this,void 0,void 0,(function*(){this._getDEMWorkerSource(D,F.source).removeTile(F)})))),this.actor.registerMessageHandler("GCEZ",((D,F)=>k._(this,void 0,void 0,(function*(){return this._getWorkerSource(D,F.type,F.source).getClusterExpansionZoom(F)})))),this.actor.registerMessageHandler("GCC",((D,F)=>k._(this,void 0,void 0,(function*(){return this._getWorkerSource(D,F.type,F.source).getClusterChildren(F)})))),this.actor.registerMessageHandler("GCL",((D,F)=>k._(this,void 0,void 0,(function*(){return this._getWorkerSource(D,F.type,F.source).getClusterLeaves(F)})))),this.actor.registerMessageHandler("LD",((D,F)=>this._getWorkerSource(D,F.type,F.source).loadData(F))),this.actor.registerMessageHandler("GD",((D,F)=>this._getWorkerSource(D,F.type,F.source).getData())),this.actor.registerMessageHandler("LT",((D,F)=>this._getWorkerSource(D,F.type,F.source).loadTile(F))),this.actor.registerMessageHandler("RT",((D,F)=>this._getWorkerSource(D,F.type,F.source).reloadTile(F))),this.actor.registerMessageHandler("AT",((D,F)=>this._getWorkerSource(D,F.type,F.source).abortTile(F))),this.actor.registerMessageHandler("RMT",((D,F)=>this._getWorkerSource(D,F.type,F.source).removeTile(F))),this.actor.registerMessageHandler("RS",((D,F)=>k._(this,void 0,void 0,(function*(){if(!this.workerSources[D]||!this.workerSources[D][F.type]||!this.workerSources[D][F.type][F.source])return;const $=this.workerSources[D][F.type][F.source];delete this.workerSources[D][F.type][F.source],$.removeSource!==void 0&&$.removeSource(F)})))),this.actor.registerMessageHandler("RM",(D=>k._(this,void 0,void 0,(function*(){delete this.layerIndexes[D],delete this.availableImages[D],delete this.workerSources[D],delete this.demWorkerSources[D],this.globalStates.delete(D)})))),this.actor.registerMessageHandler("SR",((D,F)=>k._(this,void 0,void 0,(function*(){this.referrer=F})))),this.actor.registerMessageHandler("SRPS",((D,F)=>this._syncRTLPluginState(D,F))),this.actor.registerMessageHandler("IS",((D,F)=>k._(this,void 0,void 0,(function*(){this.self.importScripts(F)})))),this.actor.registerMessageHandler("SI",((D,F)=>this._setImages(D,F))),this.actor.registerMessageHandler("UL",((D,F)=>k._(this,void 0,void 0,(function*(){this._getLayerIndex(D).update(F.layers,F.removedIds,this._getGlobalState(D))})))),this.actor.registerMessageHandler("UGS",((D,F)=>k._(this,void 0,void 0,(function*(){const $=this._getGlobalState(D);for(const J in F)$[J]=F[J]})))),this.actor.registerMessageHandler("SL",((D,F)=>k._(this,void 0,void 0,(function*(){this._getLayerIndex(D).replace(F,this._getGlobalState(D))}))))}_getGlobalState(C){let D=this.globalStates.get(C);return D||(D={},this.globalStates.set(C,D)),D}_setImages(C,D){return k._(this,void 0,void 0,(function*(){this.availableImages[C]=D;for(const F in this.workerSources[C]){const $=this.workerSources[C][F];for(const J in $)$[J].availableImages=D}}))}_syncRTLPluginState(C,D){return k._(this,void 0,void 0,(function*(){return yield k.d5.syncState(D,this.self.importScripts)}))}_getAvailableImages(C){let D=this.availableImages[C];return D||(D=[]),D}_getLayerIndex(C){let D=this.layerIndexes[C];return D||(D=this.layerIndexes[C]=new c),D}_getWorkerSource(C,D,F){if(this.workerSources[C]||(this.workerSources[C]={}),this.workerSources[C][D]||(this.workerSources[C][D]={}),!this.workerSources[C][D][F]){const $={sendAsync:(J,ae)=>(J.targetMapId=C,this.actor.sendAsync(J,ae))};switch(D){case"vector":this.workerSources[C][D][F]=new Xn($,this._getLayerIndex(C),this._getAvailableImages(C));break;case"geojson":this.workerSources[C][D][F]=new ta($,this._getLayerIndex(C),this._getAvailableImages(C));break;default:this.workerSources[C][D][F]=new this.externalWorkerSourceTypes[D]($,this._getLayerIndex(C),this._getAvailableImages(C))}}return this.workerSources[C][D][F]}_getDEMWorkerSource(C,D){return this.demWorkerSources[C]||(this.demWorkerSources[C]={}),this.demWorkerSources[C][D]||(this.demWorkerSources[C][D]=new Ct),this.demWorkerSources[C][D]}}return k.i(self)&&(self.worker=new ia(self)),ia})),ot("index",["exports","./shared"],(function(k,c){var Ee="5.19.0";function Jt(){var d=new c.A(4);return c.A!=Float32Array&&(d[1]=0,d[2]=0),d[0]=1,d[3]=1,d}let Nt,or,lr;const Zt={frame(d,t,n,s){const l=s||window,p=l.requestAnimationFrame((g=>{m(),t(g)})),{unsubscribe:m}=c.s(d.signal,"abort",(()=>{m(),l.cancelAnimationFrame(p),n(new c.a(d.signal.reason))}),!1)},frameAsync(d,t){return new Promise(((n,s)=>{this.frame(d,n,s,t)}))},getImageData(d,t=0){return this.getImageCanvasContext(d).getImageData(-t,-t,d.width+2*t,d.height+2*t)},getImageCanvasContext(d){const t=window.document.createElement("canvas"),n=t.getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("failed to create canvas 2d context");return t.width=d.width,t.height=d.height,n.drawImage(d,0,0,d.width,d.height),n},resolveURL:d=>(Nt||(Nt=document.createElement("a")),Nt.href=d,Nt.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return lr!==void 0?lr:!!matchMedia&&(or==null&&(or=matchMedia("(prefers-reduced-motion: reduce)")),or.matches)},set prefersReducedMotion(d){lr=d}},Jr=new class{constructor(){this._realTime=typeof performance<"u"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),this._frozenAt=null}getCurrentTime(){return this._frozenAt!==null?this._frozenAt:this._realTime()}setNow(d){this._frozenAt=d}restoreNow(){this._frozenAt=null}isFrozen(){return this._frozenAt!==null}};function it(){return Jr.getCurrentTime()}class fe{static testProp(t){if(!fe.docStyle)return t[0];for(let n=0;n{window.removeEventListener("click",fe.suppressClickInternal,!0)}),0)}static getScale(t){const n=t.getBoundingClientRect();return{x:n.width/t.offsetWidth||1,y:n.height/t.offsetHeight||1,boundingClientRect:n}}static getPoint(t,n,s){const l=n.boundingClientRect;return new c.P((s.clientX-l.left)/n.x-t.clientLeft,(s.clientY-l.top)/n.y-t.clientTop)}static mousePos(t,n){const s=fe.getScale(t);return fe.getPoint(t,s,n)}static touchPos(t,n){const s=[],l=fe.getScale(t);for(let p=0;p{Ct&&Da(Ct),Ct=null,Yn=!0},xt.onerror=()=>{xn=!0,Ct=null},xt.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),(function(d){let t,n,s,l;d.resetRequestQueue=()=>{t=[],n=0,s=0,l={}},d.addThrottleControl=x=>{const w=s++;return l[w]=x,w},d.removeThrottleControl=x=>{delete l[x],m()},d.getImage=(x,w,T=!0)=>new Promise(((I,M)=>{Xn.supported&&(x.headers||(x.headers={}),x.headers.accept="image/webp,*/*"),c.e(x,{type:"image"}),t.push({abortController:w,requestParameters:x,supportImageRefresh:T,state:"queued",onError:z=>{M(z)},onSuccess:z=>{I(z)}}),m()}));const p=x=>c._(this,void 0,void 0,(function*(){x.state="running";const{requestParameters:w,supportImageRefresh:T,onError:I,onSuccess:M,abortController:z}=x,L=T===!1&&!c.i(self)&&!c.g(w.url)&&(!w.headers||Object.keys(w.headers).reduce(((N,Z)=>N&&Z==="accept"),!0));n++;const j=L?g(w,z):c.m(w,z);try{const N=yield j;delete x.abortController,x.state="completed",N.data instanceof HTMLImageElement||c.b(N.data)?M(N):N.data&&M({data:yield(U=N.data,typeof createImageBitmap=="function"?c.f(U):c.h(U)),cacheControl:N.cacheControl,expires:N.expires})}catch(N){delete x.abortController,I(N)}finally{n--,m()}var U})),m=()=>{const x=(()=>{for(const w of Object.keys(l))if(l[w]())return!0;return!1})()?c.c.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:c.c.MAX_PARALLEL_IMAGE_REQUESTS;for(let w=n;w0;w++){const T=t.shift();T.abortController.signal.aborted?w--:p(T)}},g=(x,w)=>new Promise(((T,I)=>{const M=new Image,z=x.url,L=x.credentials;L&&L==="include"?M.crossOrigin="use-credentials":(L&&L==="same-origin"||!c.d(z))&&(M.crossOrigin="anonymous"),w.signal.addEventListener("abort",(()=>{M.src="",I(new c.a(w.signal.reason))})),M.fetchPriority="high",M.onload=()=>{M.onerror=M.onload=null,T({data:M})},M.onerror=()=>{M.onerror=M.onload=null,w.signal.aborted||I(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))},M.src=z}))})(Li||(Li={})),Li.resetRequestQueue();class ka{constructor(t){this._transformRequestFn=t??null}transformRequest(t,n){return this._transformRequestFn&&this._transformRequestFn(t,n)||{url:t}}setTransformRequest(t){this._transformRequestFn=t}}function gr(d){const t=[];if(typeof d=="string")t.push({id:"default",url:d});else if(d&&d.length>0){const n=[];for(const{id:s,url:l}of d){const p=`${s}${l}`;n.indexOf(p)===-1&&(n.push(p),t.push({id:s,url:l}))}}return t}function Qr(d,t,n){try{const s=new URL(d);return s.pathname+=`${t}${n}`,s.toString()}catch{throw new Error(`Invalid sprite URL "${d}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}function vn(d){const{userImage:t}=d;return!!(t&&t.render&&t.render())&&(d.data.replace(new Uint8Array(t.data.buffer)),!0)}class en extends c.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new c.R({width:1,height:1}),this.dirty=!0}destroy(){this.atlasTexture&&(this.atlasTexture.destroy(),this.atlasTexture=null);for(const t of Object.keys(this.images))this.removeImage(t);this.patterns={},this.atlasImage=new c.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(t){if(this.loaded!==t&&(this.loaded=t,t)){for(const{ids:n,promiseResolve:s}of this.requestors)s(this._getImagesForIds(n));this.requestors=[]}}getImage(t){const n=this.images[t];if(n&&!n.data&&n.spriteData){const s=n.spriteData;n.data=new c.R({width:s.width,height:s.height},s.context.getImageData(s.x,s.y,s.width,s.height).data),n.spriteData=null}return n}addImage(t,n){if(this.images[t])throw new Error(`Image id ${t} already exist, use updateImage instead`);this._validate(t,n)&&(this.images[t]=n)}_validate(t,n){let s=!0;const l=n.data||n.spriteData;return this._validateStretch(n.stretchX,l&&l.width)||(this.fire(new c.k(new Error(`Image "${t}" has invalid "stretchX" value`))),s=!1),this._validateStretch(n.stretchY,l&&l.height)||(this.fire(new c.k(new Error(`Image "${t}" has invalid "stretchY" value`))),s=!1),this._validateContent(n.content,n)||(this.fire(new c.k(new Error(`Image "${t}" has invalid "content" value`))),s=!1),s}_validateStretch(t,n){if(!t)return!0;let s=0;for(const l of t){if(l[0]{let l=!0;if(!this.isLoaded())for(const p of t)this.images[p]||(l=!1);this.isLoaded()||l?n(this._getImagesForIds(t)):this.requestors.push({ids:t,promiseResolve:n})}))}_getImagesForIds(t){const n={};for(const s of t){let l=this.getImage(s);l||(this.fire(new c.l("styleimagemissing",{id:s})),l=this.getImage(s)),l?n[s]={data:l.data.clone(),pixelRatio:l.pixelRatio,sdf:l.sdf,version:l.version,stretchX:l.stretchX,stretchY:l.stretchY,content:l.content,textFitWidth:l.textFitWidth,textFitHeight:l.textFitHeight,hasRenderCallback:!!(l.userImage&&l.userImage.render)}:c.w(`Image "${s}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`)}return n}getPixelSize(){const{width:t,height:n}=this.atlasImage;return{width:t,height:n}}getPattern(t){const n=this.patterns[t],s=this.getImage(t);if(!s)return null;if(n&&n.position.version===s.version)return n.position;if(n)n.position.version=s.version;else{const l={w:s.data.width+2,h:s.data.height+2,x:0,y:0},p=new c.I(l,s);this.patterns[t]={bin:l,position:p}}return this._updatePatternAtlas(),this.patterns[t].position}bind(t){const n=t.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new c.T(t,this.atlasImage,n.RGBA),this.atlasTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}_updatePatternAtlas(){const t=[];for(const p in this.patterns)t.push(this.patterns[p].bin);const{w:n,h:s}=c.p(t),l=this.atlasImage;l.resize({width:n||1,height:s||1});for(const p in this.patterns){const{bin:m}=this.patterns[p],g=m.x+1,x=m.y+1,w=this.getImage(p).data,T=w.width,I=w.height;c.R.copy(w,l,{x:0,y:0},{x:g,y:x},{width:T,height:I}),c.R.copy(w,l,{x:0,y:I-1},{x:g,y:x-1},{width:T,height:1}),c.R.copy(w,l,{x:0,y:0},{x:g,y:x+I},{width:T,height:1}),c.R.copy(w,l,{x:T-1,y:0},{x:g-1,y:x},{width:1,height:I}),c.R.copy(w,l,{x:0,y:0},{x:g+T,y:x},{width:1,height:I})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(t){for(const n of t){if(this.callbackDispatchedThisFrame[n])continue;this.callbackDispatchedThisFrame[n]=!0;const s=this.getImage(n);s||c.w(`Image with ID: "${n}" was not found`),vn(s)&&this.updateImage(n,s)}}cloneImages(){const t={};for(const n in this.images){const s=this.images[n];t[n]=Object.assign(Object.assign({},s),{data:s.data?s.data.clone():null})}return t}}const yr=1e20;function tn(d,t,n,s,l,p,m,g,x){for(let w=t;w-1);x++,p[x]=g,m[x]=w,m[x+1]=yr}for(let g=0,x=0;g/[-\w]+/.test(l)?l:`'${CSS.escape(l)}'`)).join(",");return new Er.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:s,fontWeight:this._fontWeight(n[0]),fontStyle:this._fontStyle(n[0]),lang:this.lang})}_fontStyle(t){return/italic/i.test(t)?"italic":/oblique/i.test(t)?"oblique":"normal"}_fontWeight(t){const n={thin:100,hairline:100,"extra light":200,"ultra light":200,light:300,normal:400,regular:400,medium:500,semibold:600,demibold:600,bold:700,"extra bold":800,"ultra bold":800,black:900,heavy:900,"extra black":950,"ultra black":950};let s;for(const[l,p]of Object.entries(n))new RegExp(`\\b${l}\\b`,"i").test(t)&&(s=`${p}`);return s}destroy(){for(const t in this.entries){const n=this.entries[t];n.tinySDF&&(n.tinySDF=null),n.ideographTinySDF&&(n.ideographTinySDF=null),n.glyphs={},n.requests={},n.ranges={}}this.entries={}}}Er.loadGlyphRange=function(d,t,n,s){return c._(this,void 0,void 0,(function*(){const l=256*t,p=l+255,m=s.transformRequest(n.replace("{fontstack}",d).replace("{range}",`${l}-${p}`),"Glyphs"),g=yield c.n(m,new AbortController);if(!g||!g.data)throw new Error(`Could not load glyph range. range: ${t}, ${l}-${p}`);const x={};for(const w of c.o(g.data))x[w.id]=w;return x}))},Er.TinySDF=class{constructor({fontSize:d=24,buffer:t=3,radius:n=8,cutoff:s=.25,fontFamily:l="sans-serif",fontWeight:p="normal",fontStyle:m="normal",lang:g=null}={}){this.buffer=t,this.cutoff=s,this.radius=n,this.lang=g;const x=this.size=d+4*t,w=this._createCanvas(x),T=this.ctx=w.getContext("2d",{willReadFrequently:!0});T.font=`${m} ${p} ${d}px ${l}`,T.textBaseline="alphabetic",T.textAlign="left",T.fillStyle="black",this.gridOuter=new Float64Array(x*x),this.gridInner=new Float64Array(x*x),this.f=new Float64Array(x),this.z=new Float64Array(x+1),this.v=new Uint16Array(x)}_createCanvas(d){const t=document.createElement("canvas");return t.width=t.height=d,t}draw(d){const{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:s,actualBoundingBoxLeft:l,actualBoundingBoxRight:p}=this.ctx.measureText(d),m=Math.ceil(n),g=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(p-l))),x=Math.min(this.size-this.buffer,m+Math.ceil(s)),w=g+2*this.buffer,T=x+2*this.buffer,I=Math.max(w*T,0),M=new Uint8ClampedArray(I),z={data:M,width:w,height:T,glyphWidth:g,glyphHeight:x,glyphTop:m,glyphLeft:0,glyphAdvance:t};if(g===0||x===0)return z;const{ctx:L,buffer:j,gridInner:U,gridOuter:N}=this;this.lang&&(L.lang=this.lang),L.clearRect(j,j,g,x),L.fillText(d,j,j+m);const Z=L.getImageData(j,j,g,x);N.fill(yr,0,I),U.fill(0,0,I);for(let X=0;X0?W*W:0,U[Q]=W<0?W*W:0}}tn(N,0,0,w,T,w,this.f,this.v,this.z),tn(U,j,j,g,x,w,this.f,this.v,this.z);for(let X=0;X1&&(x=t[++g]);const T=Math.abs(w-x.left),I=Math.abs(w-x.right),M=Math.min(T,I);let z;const L=p/s*(l+1);if(x.isDash){const j=l-Math.abs(L);z=Math.sqrt(M*M+j*j)}else z=l-Math.sqrt(M*M+L*L);this.data[m+w]=Math.max(0,Math.min(255,z+128))}}}addRegularDash(t){for(let g=t.length-1;g>=0;--g){const x=t[g],w=t[g+1];x.zeroLength?t.splice(g,1):w&&w.isDash===x.isDash&&(w.left=x.left,t.splice(g,1))}const n=t[0],s=t[t.length-1];n.isDash===s.isDash&&(n.left=s.left-this.width,s.right=n.right+this.width);const l=this.width*this.nextRow;let p=0,m=t[p];for(let g=0;g1&&(m=t[++p]);const x=Math.abs(g-m.left),w=Math.abs(g-m.right),T=Math.min(x,w);this.data[l+g]=Math.max(0,Math.min(255,(m.isDash?T:-T)+128))}}addDash(t,n){const s=n?7:0,l=2*s+1;if(this.nextRow+l>this.height)return c.w("LineAtlas out of space"),null;let p=0;for(let g=0;g{n.terminate()})),this.workers=null)}isPreloaded(){return!!this.active[rn]}numActive(){return Object.keys(this.active).length}}const Yi=Math.floor(Zt.hardwareConcurrency/2);let ui,Ei;function Qn(){return ui||(ui=new Cr),ui}Cr.workerCount=c.K(globalThis)?Math.max(Math.min(Yi,3),1):1;class wn{constructor(t,n){this.workerPool=t,this.actors=[],this.currentActor=0,this.id=n;const s=this.workerPool.acquire(n);for(let l=0;l{n.remove()})),this.actors=[],t&&this.workerPool.release(this.id)}registerMessageHandler(t,n){for(const s of this.actors)s.registerMessageHandler(t,n)}unregisterMessageHandler(t){for(const n of this.actors)n.unregisterMessageHandler(t)}}function Tn(){return Ei||(Ei=new wn(Qn(),c.M),Ei.registerMessageHandler("GR",((d,t,n)=>c.m(t,n)))),Ei}function hi(d,t){const n=c.N();return c.O(n,n,[1,1,0]),c.Q(n,n,[.5*d.width,.5*d.height,1]),d.calculatePosMatrix?c.S(n,n,d.calculatePosMatrix(t.toUnwrapped())):n}function Ds(d,t,n,s,l,p,m){var g;const x=(function(M,z,L){if(M)for(const j of M){const U=z[j];if(U&&U.source===L&&U.type==="fill-extrusion")return!0}else for(const j in z){const U=z[j];if(U.source===L&&U.type==="fill-extrusion")return!0}return!1})((g=l?.layers)!==null&&g!==void 0?g:null,t,d.id),w=p.maxPitchScaleFactor(),T=d.tilesIn(s,w,x);T.sort(di);const I=[];for(const M of T)I.push({wrappedTileID:M.tileID.wrapped().key,queryResults:M.tile.queryRenderedFeatures(t,n,d.getState(),M.queryGeometry,M.cameraQueryGeometry,M.scale,l,p,w,hi(p,M.tileID),m?(z,L)=>m(M.tileID,z,L):void 0)});return(function(M,z){for(const L in M)for(const j of M[L])Fi(j,z);return M})((function(M){const z={},L={};for(const j of M){const U=j.queryResults,N=j.wrappedTileID,Z=L[N]=L[N]||{};for(const X in U){const q=U[X],Y=Z[X]=Z[X]||{},Q=z[X]=z[X]||[];for(const W of q)Y[W.featureIndex]||(Y[W.featureIndex]=!0,Q.push(W))}}return z})(I),d)}function di(d,t){const n=d.tileID,s=t.tileID;return n.overscaledZ-s.overscaledZ||n.canonical.y-s.canonical.y||n.wrap-s.wrap||n.canonical.x-s.canonical.x}function Fi(d,t){const n=d.feature,s=t.getFeatureState(n.layer["source-layer"],n.id);n.source=n.layer.source,n.layer["source-layer"]&&(n.sourceLayer=n.layer["source-layer"]),n.state=s}function vr(d,t,n,s){return c._(this,void 0,void 0,(function*(){let l=d;if(d.url?l=(yield c.j(t.transformRequest(d.url,"Source"),n)).data:yield Zt.frameAsync(n,s),!l)return null;const p=c.U(c.e(l,d),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in l&&l.vector_layers&&(p.vectorLayerIds=l.vector_layers.map((m=>m.id))),p}))}class vt{constructor(t,n){t&&(n?this.setSouthWest(t).setNorthEast(n):Array.isArray(t)&&(t.length===4?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1])))}setNorthEast(t){return this._ne=t instanceof c.V?new c.V(t.lng,t.lat):c.V.convert(t),this}setSouthWest(t){return this._sw=t instanceof c.V?new c.V(t.lng,t.lat):c.V.convert(t),this}extend(t){const n=this._sw,s=this._ne;let l,p;if(t instanceof c.V)l=t,p=t;else{if(!(t instanceof vt))return Array.isArray(t)?t.length===4||t.every(Array.isArray)?this.extend(vt.convert(t)):this.extend(c.V.convert(t)):t&&("lng"in t||"lon"in t)&&"lat"in t?this.extend(c.V.convert(t)):this;if(l=t._sw,p=t._ne,!l||!p)return this}return n||s?(n.lng=Math.min(l.lng,n.lng),n.lat=Math.min(l.lat,n.lat),s.lng=Math.max(p.lng,s.lng),s.lat=Math.max(p.lat,s.lat)):(this._sw=new c.V(l.lng,l.lat),this._ne=new c.V(p.lng,p.lat)),this}getCenter(){return new c.V((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new c.V(this.getWest(),this.getNorth())}getSouthEast(){return new c.V(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(t){const{lng:n,lat:s}=c.V.convert(t);let l=this._sw.lng<=n&&n<=this._ne.lng;return this._sw.lng>this._ne.lng&&(l=this._sw.lng>=n&&n>=this._ne.lng),this._sw.lat<=s&&s<=this._ne.lat&&l}intersects(t){if(!((t=vt.convert(t)).getNorth()>=this.getSouth()&&t.getSouth()<=this.getNorth()))return!1;const n=Math.abs(this.getEast()-this.getWest()),s=Math.abs(t.getEast()-t.getWest());if(n>=360||s>=360)return!0;const l=c.W(this.getWest(),-180,180),p=c.W(this.getEast(),-180,180),m=c.W(t.getWest(),-180,180),g=c.W(t.getEast(),-180,180),x=l>p,w=m>g;return!(!x||!w)||(x?g>=l||m<=p:w?p>=m||l<=g:m<=p&&g>=l)}static convert(t){return t instanceof vt?t:t&&new vt(t)}static fromLngLat(t,n=0){const s=360*n/40075017,l=s/Math.cos(Math.PI/180*t.lat);return new vt(new c.V(t.lng-l,t.lat-s),new c.V(t.lng+l,t.lat+s))}adjustAntiMeridian(){const t=new c.V(this._sw.lng,this._sw.lat),n=new c.V(this._ne.lng,this._ne.lat);return new vt(t,t.lng>n.lng?new c.V(n.lng+360,n.lat):n)}}class Sn{constructor(t,n,s){this.bounds=vt.convert(this.validateBounds(t)),this.minzoom=n||0,this.maxzoom=s||24}validateBounds(t){return Array.isArray(t)&&t.length===4?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]}contains(t){const n=Math.pow(2,t.z),s=Math.floor(c.Y(this.bounds.getWest())*n),l=Math.floor(c.X(this.bounds.getNorth())*n),p=Math.ceil(c.Y(this.bounds.getEast())*n),m=Math.ceil(c.X(this.bounds.getSouth())*n);return t.x>=s&&t.x=l&&t.y{this._options.tiles=t})),this}setUrl(t){return this.setSourceProperty((()=>{this.url=t,this._options.url=t})),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return c.e({},this._options)}loadTile(t){return c._(this,void 0,void 0,(function*(){const n=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),s={request:this.map._requestManager.transformRequest(n,"Tile"),uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity,encoding:this.encoding,overzoomParameters:this._getOverzoomParameters(t)};s.request.collectResourceTiming=this._collectResourceTiming;let l="RT";if(t.actor&&t.state!=="expired"){if(t.state==="loading")return new Promise(((p,m)=>{t.reloadPromise={resolve:p,reject:m}}))}else t.actor=this.dispatcher.getActor(),l="LT";t.abortController=new AbortController;try{const p=yield t.actor.sendAsync({type:l,data:s},t.abortController);if(delete t.abortController,t.aborted)return;this._afterTileLoadWorkerResponse(t,p)}catch(p){if(delete t.abortController,t.aborted)return;if(p&&p.status!==404)throw p;this._afterTileLoadWorkerResponse(t,null)}}))}_getOverzoomParameters(t){if(t.tileID.canonical.z<=this.maxzoom||this.map._zoomLevelsToOverscale===void 0)return;const n=t.tileID.scaledTo(this.maxzoom).canonical,s=n.url(this.tiles,this.map.getPixelRatio(),this.scheme);return{maxZoomTileID:n,overzoomRequest:this.map._requestManager.transformRequest(s,"Tile")}}_afterTileLoadWorkerResponse(t,n){if(n&&n.resourceTiming&&(t.resourceTiming=n.resourceTiming),n&&this.map._refreshExpiredTiles&&t.setExpiryData(n),t.loadVectorData(n,this.map.painter),t.reloadPromise){const s=t.reloadPromise;t.reloadPromise=null,this.loadTile(t).then(s.resolve).catch(s.reject)}}abortTile(t){return c._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController),t.actor&&(yield t.actor.sendAsync({type:"AT",data:{uid:t.uid,type:this.type,source:this.id}}))}))}unloadTile(t){return c._(this,void 0,void 0,(function*(){t.unloadVectorData(),t.actor&&(yield t.actor.sendAsync({type:"RMT",data:{uid:t.uid,type:this.type,source:this.id}}))}))}hasTransition(){return!1}}class Pn extends c.E{constructor(t,n,s,l){super(),this.id=t,this.dispatcher=s,this.setEventedParent(l),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=c.e({type:"raster"},n),c.e(this,c.U(n,["url","scheme","tileSize"]))}load(){return c._(this,arguments,void 0,(function*(t=!1){this._loaded=!1,this.fire(new c.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const n=yield vr(this._options,this.map._requestManager,this._tileJSONRequest,this.map._ownerWindow);this._tileJSONRequest=null,this._loaded=!0,n&&(c.e(this,n),n.bounds&&(this.tileBounds=new Sn(n.bounds,this.minzoom,this.maxzoom)),this.fire(new c.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new c.l("data",{dataType:"source",sourceDataType:"content",sourceDataChanged:t})))}catch(n){this._tileJSONRequest=null,this._loaded=!0,c.Z(n)||this.fire(new c.k(n))}}))}loaded(){return this._loaded}onAdd(t){this.map=t,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(t){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),t(),this.load(!0)}setTiles(t){return this.setSourceProperty((()=>{this._options.tiles=t})),this}setUrl(t){return this.setSourceProperty((()=>{this.url=t,this._options.url=t})),this}serialize(){return c.e({},this._options)}hasTile(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)}loadTile(t){return c._(this,void 0,void 0,(function*(){const n=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);t.abortController=new AbortController;try{const s=yield Li.getImage(this.map._requestManager.transformRequest(n,"Tile"),t.abortController,this.map._refreshExpiredTiles);if(delete t.abortController,t.aborted)return void(t.state="unloaded");if(s&&s.data){this.map._refreshExpiredTiles&&(s.cacheControl||s.expires)&&t.setExpiryData({cacheControl:s.cacheControl,expires:s.expires});const l=this.map.painter.context,p=l.gl,m=s.data;t.texture=this.map.painter.getTileTexture(m.width),t.texture?t.texture.update(m,{useMipmap:!0}):(t.texture=new c.T(l,m,p.RGBA,{useMipmap:!0}),t.texture.bind(p.LINEAR,p.CLAMP_TO_EDGE,p.LINEAR_MIPMAP_NEAREST)),t.state="loaded"}}catch(s){if(delete t.abortController,t.aborted)t.state="unloaded";else if(s)throw t.state="errored",s}}))}abortTile(t){return c._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController)}))}unloadTile(t){return c._(this,void 0,void 0,(function*(){t.texture&&this.map.painter.saveTileTexture(t.texture)}))}hasTransition(){return!1}}class nn extends Pn{constructor(t,n,s,l){super(t,n,s,l),this.type="raster-dem",this.maxzoom=22,this._options=c.e({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox",this.redFactor=n.redFactor,this.greenFactor=n.greenFactor,this.blueFactor=n.blueFactor,this.baseShift=n.baseShift}loadTile(t){return c._(this,void 0,void 0,(function*(){const n=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),s=this.map._requestManager.transformRequest(n,"Tile");t.neighboringTiles=this._getNeighboringTiles(t.tileID),t.abortController=new AbortController;try{const l=yield Li.getImage(s,t.abortController,this.map._refreshExpiredTiles);if(delete t.abortController,t.aborted)return void(t.state="unloaded");if(l&&l.data){const p=l.data;this.map._refreshExpiredTiles&&(l.cacheControl||l.expires)&&t.setExpiryData({cacheControl:l.cacheControl,expires:l.expires});const m=c.b(p)&&c.$()?p:yield this.readImageNow(p),g={type:this.type,uid:t.uid,source:this.id,rawImageData:m,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!t.actor||t.state==="expired"){t.actor=this.dispatcher.getActor();const x=yield t.actor.sendAsync({type:"LDT",data:g});t.dem=x,t.needsHillshadePrepare=!0,t.needsTerrainPrepare=!0,t.state="loaded"}}}catch(l){if(delete t.abortController,t.aborted)t.state="unloaded";else if(l)throw t.state="errored",l}}))}readImageNow(t){return c._(this,void 0,void 0,(function*(){if(typeof VideoFrame<"u"&&c.a0()){const n=t.width+2,s=t.height+2;try{return new c.R({width:n,height:s},yield c.a1(t,-1,-1,n,s))}catch{}}return Zt.getImageData(t,1)}))}_getNeighboringTiles(t){const n=t.canonical,s=Math.pow(2,n.z),l=(n.x-1+s)%s,p=n.x===0?t.wrap-1:t.wrap,m=(n.x+1+s)%s,g=n.x+1===s?t.wrap+1:t.wrap,x={};return x[new c.a2(t.overscaledZ,p,n.z,l,n.y).key]={backfilled:!1},x[new c.a2(t.overscaledZ,g,n.z,m,n.y).key]={backfilled:!1},n.y>0&&(x[new c.a2(t.overscaledZ,p,n.z,l,n.y-1).key]={backfilled:!1},x[new c.a2(t.overscaledZ,t.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},x[new c.a2(t.overscaledZ,g,n.z,m,n.y-1).key]={backfilled:!1}),n.y+1br(t))):[]}function an(d){return d.type==="GeometryCollection"?d.geometries.flatMap((t=>an(t))):br(d.coordinates)}function Mn(d){const t=new vt;let n;switch(d.type){case"FeatureCollection":n=d.features.flatMap((s=>an(s.geometry)));break;case"Feature":n=an(d.geometry);break;default:n=an(d)}if(n.length===0)return t;for(let s=0;sMn(n)))}}shouldReloadTile(t,{affectedBounds:n}){if(t.state==="loading")return!0;if(t.state==="unloaded")return!1;const{buffer:s,extent:l}=this.workerOptions.geojsonVtOptions,p=(function({x:m,y:g,z:x},w=0){const T=c.a3((m-w)/Math.pow(2,x)),I=c.a4((g+1+w)/Math.pow(2,x)),M=c.a3((m+1+w)/Math.pow(2,x)),z=c.a4((g-w)/Math.pow(2,x));return new vt([T,I],[M,z])})(t.tileID.canonical,s/l);for(const m of n)if(p.intersects(m))return!0;return!1}loaded(){return!this._isUpdatingWorker&&!this._hasPendingWorkerUpdate()}loadTile(t){return c._(this,void 0,void 0,(function*(){const n=t.actor?"RT":"LT";t.actor=this.actor;const s={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity};t.abortController=new AbortController;const l=yield this.actor.sendAsync({type:n,data:s},t.abortController);delete t.abortController,t.unloadVectorData(),t.aborted||t.loadVectorData(l,this.map.painter,n==="RT")}))}abortTile(t){return c._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController),t.aborted=!0}))}unloadTile(t){return c._(this,void 0,void 0,(function*(){t.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:t.uid,type:this.type,source:this.id}})}))}onRemove(){this._removed=!0,this.actor.sendAsync({type:"RS",data:{type:this.type,source:this.id}})}serialize(){return c.e({},this._options,{type:this.type,data:this._data.updateable?{type:"FeatureCollection",features:Array.from(this._data.updateable.values())}:this._data.url||this._data.geojson})}hasTransition(){return!1}}class zr extends c.E{constructor(t,n,s,l){super(),this.flippedWindingOrder=!1,this.id=t,this.dispatcher=s,this.coordinates=n.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(l),this.options=n}load(t){return c._(this,void 0,void 0,(function*(){this._loaded=!1,this.fire(new c.l("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const n=yield Li.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,n&&n.data&&(this.image=n.data,t&&(this.coordinates=t),this._finishLoading())}catch(n){this._request=null,this._loaded=!0,c.Z(n)||this.fire(new c.k(n))}}))}loaded(){return this._loaded}updateImage(t){return t.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=t.url,this.load(t.coordinates).finally((()=>{this.texture=null})),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new c.l("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(t){this.map=t,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(t){this.coordinates=t;const n=t.map(c.a9.fromLngLat);var s;return this.tileID=(function(l){const p=c.aa.fromPoints(l),m=p.width(),g=p.height(),x=Math.max(m,g),w=Math.max(0,Math.floor(-Math.log(x)/Math.LN2)),T=Math.pow(2,w);return new c.ac(w,Math.floor((p.minX+p.maxX)/2*T),Math.floor((p.minY+p.maxY)/2*T))})(n),this.terrainTileRanges=this._getOverlappingTileRanges(n),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=n.map((l=>this.tileID.getTilePoint(l)._round())),this.flippedWindingOrder=((s=this.tileCoords)[1].x-s[0].x)*(s[2].y-s[0].y)-(s[1].y-s[0].y)*(s[2].x-s[0].x)<0,this.fire(new c.l("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const t=this.map.painter.context,n=t.gl;this.texture||(this.texture=new c.T(t,this.image,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE));let s=!1;for(const l in this.tiles){const p=this.tiles[l];p.state!=="loaded"&&(p.state="loaded",p.texture=this.texture,s=!0)}s&&this.fire(new c.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(t){return c._(this,void 0,void 0,(function*(){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={}):t.state="errored"}))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}_getOverlappingTileRanges(t){const{minX:n,minY:s,maxX:l,maxY:p}=c.aa.fromPoints(t),m={};for(let g=0;g<=c.ab;g++){const x=Math.pow(2,g),w=Math.floor(n*x),T=Math.floor(s*x),I=Math.floor(l*x),M=Math.floor(p*x),z=(w%x+x)%x,L=I%x,j=Math.floor(w/x),U=Math.floor(I/x);m[g]={minWrap:j,maxWrap:U,minTileXWrapped:z,maxTileXWrapped:L,minTileY:T,maxTileY:M}}return m}}class sn extends zr{constructor(t,n,s,l){super(t,n,s,l),this.roundZoom=!0,this.type="video",this.options=n}load(){return c._(this,void 0,void 0,(function*(){this._loaded=!1;const t=this.options;this.urls=[];for(const n of t.urls)this.urls.push(this.map._requestManager.transformRequest(n,"Source").url);try{const n=yield c.ad(this.urls);if(this._loaded=!0,!n)return;this.video=n,this.video.loop=!0,this.video.addEventListener("playing",(()=>{this.map.triggerRepaint()})),this.map&&this.video.play(),this._finishLoading()}catch(n){this.fire(new c.k(n))}}))}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(t){if(this.video){const n=this.video.seekable;tn.end(0)?this.fire(new c.k(new c.ae(`sources.${this.id}`,null,`Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))):this.video.currentTime=t}}getVideo(){return this.video}onAdd(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const t=this.map.painter.context,n=t.gl;this.texture?this.video.paused||(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.video)):(this.texture=new c.T(t,this.video,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE));let s=!1;for(const l in this.tiles){const p=this.tiles[l];p.state!=="loaded"&&(p.state="loaded",p.texture=this.texture,s=!0)}s&&this.fire(new c.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class ta extends zr{constructor(t,n,s,l){super(t,n,s,l),n.coordinates?Array.isArray(n.coordinates)&&n.coordinates.length===4&&!n.coordinates.some((p=>!Array.isArray(p)||p.length!==2||p.some((m=>typeof m!="number"))))||this.fire(new c.k(new c.ae(`sources.${t}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new c.k(new c.ae(`sources.${t}`,null,'missing required property "coordinates"'))),n.animate&&typeof n.animate!="boolean"&&this.fire(new c.k(new c.ae(`sources.${t}`,null,'optional "animate" property must be a boolean value'))),n.canvas?typeof n.canvas=="string"||n.canvas instanceof HTMLCanvasElement||this.fire(new c.k(new c.ae(`sources.${t}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new c.k(new c.ae(`sources.${t}`,null,'missing required property "canvas"'))),this.options=n,this.animate=n.animate===void 0||n.animate}load(){return c._(this,void 0,void 0,(function*(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new c.k(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}))}getCanvas(){return this.canvas}onAdd(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const n=this.map.painter.context,s=n.gl;this.texture?(t||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):(this.texture=new c.T(n,this.canvas,s.RGBA,{premultiply:!0}),this.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE));let l=!1;for(const p in this.tiles){const m=this.tiles[p];m.state!=="loaded"&&(m.state="loaded",m.texture=this.texture,l=!0)}l&&this.fire(new c.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",animate:this.animate,canvas:this.options.canvas,coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const t of[this.canvas.width,this.canvas.height])if(isNaN(t)||t<=0)return!0;return!1}}const Fa={},ia=d=>{switch(d){case"geojson":return Ar;case"image":return zr;case"raster":return Pn;case"raster-dem":return nn;case"vector":return ea;case"video":return sn;case"canvas":return ta}return Fa[d]},ie="RTLPluginLoaded";class C extends c.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=Tn()}_syncState(t){return this.status=t,this.dispatcher.broadcast("SRPS",{pluginStatus:t,pluginURL:this.url}).catch((n=>{throw this.status="error",n}))}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(t){return c._(this,arguments,void 0,(function*(n,s=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=Zt.resolveURL(n),!this.url)throw new Error(`requested url ${n} is invalid`);if(this.status==="unavailable"){if(!s)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()}))}_requestImport(){return c._(this,void 0,void 0,(function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new c.l(ie))}))}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let D=null;function F(){return D||(D=new C),D}var $,J;(function(d){d[d.Base=0]="Base",d[d.Parent=1]="Parent"})($||($={})),(function(d){d[d.Departing=0]="Departing",d[d.Incoming=1]="Incoming"})(J||(J={}));class ae{constructor(t,n){this.timeAdded=0,this.fadeEndTime=0,this.fadeOpacity=1,this.tileID=t,this.uid=c.af(),this.uses=0,this.tileSize=n,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttFingerprint={},this.expiredRequestCount=0,this.state="loading"}isRenderable(t){return this.hasData()&&(!this.fadeEndTime||this.fadeOpacity>0)&&(t||!this.holdingForSymbolFade())}setCrossFadeLogic({fadingRole:t,fadingDirection:n,fadingParentID:s,fadeEndTime:l}){this.resetFadeLogic(),this.fadingRole=t,this.fadingDirection=n,this.fadingParentID=s,this.fadeEndTime=l}setSelfFadeLogic(t){this.resetFadeLogic(),this.selfFading=!0,this.fadeEndTime=t}resetFadeLogic(){this.fadingRole=null,this.fadingDirection=null,this.fadingParentID=null,this.selfFading=!1,this.timeAdded=it(),this.fadeEndTime=0,this.fadeOpacity=1}wasRequested(){return this.state==="errored"||this.state==="loaded"||this.state==="reloading"}clearTextures(t){this.demTexture&&t.saveTileTexture(this.demTexture),this.demTexture=null}loadVectorData(t,n,s){if(this.hasData()&&this.unloadVectorData(),this.state="loaded",t){t.featureIndex&&(this.latestFeatureIndex=t.featureIndex,t.rawTileData?(this.latestRawTileData=t.rawTileData,this.latestFeatureIndex.rawTileData=t.rawTileData,this.latestFeatureIndex.encoding=t.encoding):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData,this.latestFeatureIndex.encoding=this.latestEncoding)),this.collisionBoxArray=t.collisionBoxArray,this.buckets=(function(l,p){const m={};if(!p)return m;for(const g of l){const x=g.layerIds.map((w=>p.getLayer(w))).filter(Boolean);if(x.length!==0){g.layers=x,g.stateDependentLayerIds&&(g.stateDependentLayers=g.stateDependentLayerIds.map((w=>x.filter((T=>T.id===w))[0])));for(const w of x)m[w.id]=g}}return m})(t.buckets,n?.style),this.hasSymbolBuckets=!1;for(const l in this.buckets){const p=this.buckets[l];if(p instanceof c.ah){if(this.hasSymbolBuckets=!0,!s)break;p.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const l in this.buckets){const p=this.buckets[l];if(p instanceof c.ah&&p.hasRTLText){this.hasRTLText=!0,F().lazyLoad();break}}this.queryPadding=0;for(const l in this.buckets){const p=this.buckets[l];this.queryPadding=Math.max(this.queryPadding,n.style.getLayer(l).queryRadius(p))}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage),this.dashPositions=t.dashPositions}else this.collisionBoxArray=new c.ag}unloadVectorData(){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.dashPositions&&(this.dashPositions=null),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(t){return this.buckets[t.id]}upload(t){for(const s in this.buckets){const l=this.buckets[s];l.uploadPending()&&l.upload(t)}const n=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new c.T(t,this.imageAtlas.image,n.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new c.T(t,this.glyphAtlasImage,n.ALPHA),this.glyphAtlasImage=null)}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture)}queryRenderedFeatures(t,n,s,l,p,m,g,x,w,T,I){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:l,cameraQueryGeometry:p,scale:m,tileSize:this.tileSize,pixelPosMatrix:T,transform:x,params:g,queryPadding:this.queryPadding*w,getElevation:I},t,n,s):{}}querySourceFeatures(t,n){const s=this.latestFeatureIndex;if(!s||!s.rawTileData)return;const l=s.loadVTLayers(),p=n&&n.sourceLayer?n.sourceLayer:"",m=l[c.ai]||l[p];if(!m)return;const g=c.aj(n?.filter,n?.globalState),{z:x,x:w,y:T}=this.tileID.canonical,I={z:x,x:w,y:T};for(let M=0;Ms)l=!1;else if(n)if(this.expirationTime({zoom:0,x:0,y:0,wrap:Y,fullyVisible:!1}),X=[],q=[];if(d.renderWorldCopies&&m.allowWorldCopies())for(let Y=1;Y<=3;Y++)X.push(Z(-Y)),X.push(Z(Y));for(X.push(Z(0));X.length>0;){const Y=X.pop(),Q=Y.x,W=Y.y;let te=Y.fullyVisible;const de={x:Q,y:W,z:Y.zoom},ue=m.getTileBoundingVolume(de,Y.wrap,d.elevation,t);if(!te){const Ie=Ne(n,ue,s);if(Ie===0)continue;te=Ie===2}const le=m.distanceToTile2d(l.x,l.y,de,ue);let he=x;g&&(he=(t.calculateTileZoom||Ye)(d.zoom+c.at(d.tileSize/t.tileSize),le,U,N,d.fov)),he=(t.roundZoom?Math.round:Math.floor)(he),he=Math.max(0,he);const Me=Math.min(he,T);if(Y.wrap=m.getWrap(p,de,Y.wrap),Y.zoom>=Me){if(Y.zoom>1),wrap:Y.wrap,fullyVisible:te})}return q.sort(((Y,Q)=>Y.distanceSq-Q.distanceSq)).map((Y=>Y.tileID))}const Ft=c.aa.fromPoints([new c.P(0,0),new c.P(c.a5,c.a5)]);function ni(d){return d==="raster"||d==="image"||d==="video"}function At(d,t,n,s,l,p,m){if(!t.hasData())return!1;const{tileID:g,fadingRole:x,fadingDirection:w,fadingParentID:T}=t;if(x===$.Base&&w===J.Incoming&&T)return n[T.key]=T,!0;const I=Math.max(g.overscaledZ-l,p);for(let M=g.overscaledZ-1;M>=I;M--){const z=g.scaledTo(M),L=d.getLoadedTile(z);if(L)return t.setCrossFadeLogic({fadingRole:$.Base,fadingDirection:J.Incoming,fadingParentID:L.tileID,fadeEndTime:s+m}),L.setCrossFadeLogic({fadingRole:$.Parent,fadingDirection:J.Departing,fadeEndTime:s+m}),n[z.key]=z,!0}return!1}function Se(d,t,n,s,l,p){if(!t.hasData())return!1;const m=t.tileID.children(l);let g=at(d,t,m,n,s,l,p);if(g)return!0;for(const x of m)at(d,t,x.children(l),n,s,l,p)&&(g=!0);return g}function at(d,t,n,s,l,p,m){if(n[0].overscaledZ>=p)return!1;let g=!1;for(const x of n){const w=d.getLoadedTile(x);if(!w)continue;const{fadingRole:T,fadingDirection:I,fadingParentID:M}=w;T===$.Base&&I===J.Departing&&M||(w.setCrossFadeLogic({fadingRole:$.Base,fadingDirection:J.Departing,fadingParentID:t.tileID,fadeEndTime:l+m}),t.setCrossFadeLogic({fadingRole:$.Parent,fadingDirection:J.Incoming,fadeEndTime:l+m})),s[x.key]=x,g=!0}return g}function bt(d,t,n,s){const l=d.tileID;return!!d.selfFading||!d.hasData()&&!!t.has(l)&&(d.setSelfFadeLogic(n+s),!0)}function In(d,t){var n;d.needsHillshadePrepare=!0,d.needsTerrainPrepare=!0;let s=t.tileID.canonical.x-d.tileID.canonical.x;const l=t.tileID.canonical.y-d.tileID.canonical.y,p=Math.pow(2,d.tileID.canonical.z),m=t.tileID.key;s===0&&l===0||Math.abs(l)>1||(Math.abs(s)>1&&(Math.abs(s+p)===1?s+=p:Math.abs(s-p)===1&&(s-=p)),t.dem&&d.dem&&(d.dem.backfillBorder(t.dem,s,l),!((n=d.neighboringTiles)===null||n===void 0)&&n[m]&&(d.neighboringTiles[m].backfilled=!0)))}class Dr{constructor(){this._tiles={}}handleWrapJump(t){const n={};for(const s in this._tiles){const l=this._tiles[s];l.tileID=l.tileID.unwrapTo(l.tileID.wrap+t),n[l.tileID.key]=l}this._tiles=n}setFeatureState(t,n){for(const s in this._tiles)this._tiles[s].setFeatureState(t,n)}getAllTiles(){return Object.values(this._tiles)}getAllIds(t=!1){return t?Object.values(this._tiles).map((n=>n.tileID)).sort(c.aw).map((n=>n.key)):Object.keys(this._tiles)}getTileById(t){return this._tiles[t]}setTile(t,n){this._tiles[t]=n}deleteTileById(t){delete this._tiles[t]}getLoadedTile(t){const n=this.getTileById(t.key);return n?.hasData()?n:null}isIdRenderable(t,n=!1){var s;return(s=this.getTileById(t))===null||s===void 0?void 0:s.isRenderable(n)}getRenderableIds(t=0,n){const s=[];for(const l of this.getAllIds())this.isIdRenderable(l,n)&&s.push(this.getTileById(l));return n?s.sort(((l,p)=>{const m=l.tileID,g=p.tileID,x=new c.P(m.canonical.x,m.canonical.y)._rotate(-t),w=new c.P(g.canonical.x,g.canonical.y)._rotate(-t);return m.overscaledZ-g.overscaledZ||w.y-x.y||w.x-x.x})).map((l=>l.tileID.key)):s.map((l=>l.tileID)).sort(c.aw).map((l=>l.key))}}class Pe extends c.E{constructor(t,n,s){super(),this.id=t,this.dispatcher=s,this.on("data",(l=>this._dataHandler(l))),this.on("dataloading",(()=>{this._sourceErrored=!1})),this.on("error",(()=>{this._sourceErrored=this._source.loaded()})),this._source=((l,p,m,g)=>{const x=new(ia(p.type))(l,p,m,g);if(x.id!==l)throw new Error(`Expected Source id to be ${l} instead of ${x.id}`);return x})(t,n,s,this),this._inViewTiles=new Dr,this._outOfViewCache=new c.ax(0,(l=>this._unloadTile(l))),this._timers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._rasterFadeDuration=0,this._maxFadingAncestorLevels=5,this._state=new oe,this._didEmitContent=!1,this._updated=!1}onAdd(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._maxTileCacheZoomLevels=t?t._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(t)}onRemove(t){for(const n of this._inViewTiles.getAllTiles())n.unloadVectorData();this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(t),this._inViewTiles=new Dr}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(const t of this._inViewTiles.getAllTiles())if(t.state!=="loaded"&&t.state!=="errored")return!1;return!0}getSource(){return this._source}getState(){return this._state}pause(){this._paused=!0}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(t,n,s){return c._(this,void 0,void 0,(function*(){try{yield this._source.loadTile(t),this._tileLoaded(t,n,s)}catch(l){t.state="errored",l.status!==404?this._source.fire(new c.k(l,{tile:t})):this.update(this.transform,this.terrain)}}))}_unloadTile(t){this._source.unloadTile&&this._source.unloadTile(t)}_abortTile(t){this._source.abortTile&&this._source.abortTile(t),this._source.fire(new c.l("dataabort",{tile:t,coord:t.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._inViewTiles,this.map?this.map.painter:null);for(const n of this._inViewTiles.getAllTiles())n.upload(t),n.prepare(this.map.style.imageManager)}getIds(){return this._inViewTiles.getAllIds(!0)}getRenderableIds(t){var n;return this._inViewTiles.getRenderableIds((n=this.transform)===null||n===void 0?void 0:n.bearingInRadians,t)}hasRenderableParent(t){const n=t.overscaledZ-1;if(n>=this._source.minzoom){const s=this.getLoadedTile(t.scaledTo(n));if(s)return this._inViewTiles.isIdRenderable(s.tileID.key)}return!1}reload(t,n=void 0){if(this._paused)this._shouldReloadOnResume=!0;else{this._outOfViewCache.reset();for(const s of this._inViewTiles.getAllIds()){const l=this._inViewTiles.getTileById(s);n&&!this._source.shouldReloadTile(l,n)||(t?this._reloadTile(s,"expired"):l.state!=="errored"&&this._reloadTile(s,"reloading"))}}}_reloadTile(t,n){return c._(this,void 0,void 0,(function*(){const s=this._inViewTiles.getTileById(t);s&&(s.state!=="loading"&&(s.state=n),yield this._loadTile(s,t,n))}))}_tileLoaded(t,n,s){t.timeAdded=it(),t.selfFading&&(t.fadeEndTime=t.timeAdded+this._rasterFadeDuration),s==="expired"&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(n,t),this.getSource().type==="raster-dem"&&t.dem&&(function(l,p){var m,g;const x=p.getRenderableIds();for(const w of x){if(!l.neighboringTiles||!l.neighboringTiles[w])continue;const T=p.getTileById(w);l.neighboringTiles[w].backfilled||In(l,T),!((g=(m=T.neighboringTiles)===null||m===void 0?void 0:m[l.tileID.key])===null||g===void 0)&&g.backfilled||In(T,l)}})(t,this._inViewTiles),this._state.initializeTileState(t,this.map?this.map.painter:null),t.aborted||this._source.fire(new c.l("data",{dataType:"source",tile:t,coord:t.tileID}))}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._inViewTiles.getTileById(t)}_retainLoadedChildren(t,n){const s=this._getLoadedDescendents(n),l=new Set;for(const p of n){const m=s[p.key];if(!m?.length){l.add(p);continue}const g=p.overscaledZ+Pe.maxOverzooming,x=m.filter((I=>I.tileID.overscaledZ<=g));if(!x.length){l.add(p);continue}const w=Math.min(...x.map((I=>I.tileID.overscaledZ))),T=x.filter((I=>I.tileID.overscaledZ===w)).map((I=>I.tileID));for(const I of T)t[I.key]=I;this._areDescendentsComplete(T,w,p.overscaledZ)||l.add(p)}return l}_getLoadedDescendents(t){var n;const s={};for(const l of this._inViewTiles.getAllTiles().filter((p=>p.hasData())))for(const p of t)l.tileID.isChildOf(p)&&(s[n=p.key]||(s[n]=[])).push(l);return s}_areDescendentsComplete(t,n,s){return t.length===1&&t[0].isOverscaled()?t[0].overscaledZ===n:Math.pow(4,n-s)===t.length}getLoadedTile(t){return this._inViewTiles.getLoadedTile(t)}updateCacheSize(t){const n=Math.ceil(t.width/this._source.tileSize)+1,s=Math.ceil(t.height/this._source.tileSize)+1,l=Math.floor(n*s*(this._maxTileCacheZoomLevels===null?c.c.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),p=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,l):l;this._outOfViewCache.setMaxSize(p)}handleWrapJump(t){const n=Math.round((t-(this._prevLng===void 0?t:this._prevLng))/360);this._prevLng=t,n&&(this._inViewTiles.handleWrapJump(n),this._resetTileReloadTimers())}update(t,n){if(!this._sourceLoaded||this._paused)return;let s;this.transform=t,this.terrain=n,this.updateCacheSize(t),this.handleWrapJump(this.transform.center.lng),this.used||this.usedForTerrain?this._source.tileID?s=t.getVisibleUnwrappedCoordinates(this._source.tileID).map((x=>new c.a2(x.canonical.z,x.wrap,x.canonical.z,x.canonical.x,x.canonical.y))):(s=mt(t,{tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.type==="vector"&&this.map._zoomLevelsToOverscale!==void 0?t.maxZoom-this.map._zoomLevelsToOverscale:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:n,calculateTileZoom:this._source.calculateTileZoom}),this._source.hasTile&&(s=s.filter((x=>this._source.hasTile(x))))):s=[],this.usedForTerrain&&(s=this._addTerrainIdealTiles(s));const l=s.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,l&&this.fire(new c.l("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const p=Lt(t,this._source),m=this._updateRetainedTiles(s,p),g=ni(this._source.type);g&&this._rasterFadeDuration>0&&!n&&(function(x,w,T,I,M,z,L){const j=it(),U=c.av(w);for(const N of w){const Z=x.getTileById(N.key);Z.fadingDirection!==J.Departing&&Z.fadeOpacity!==0||Z.resetFadeLogic(),At(x,Z,T,j,I,M,L)||Se(x,Z,T,j,z,L)||bt(Z,U,j,L)||Z.resetFadeLogic()}})(this._inViewTiles,s,m,this._maxFadingAncestorLevels,this._source.minzoom,this._source.maxzoom,this._rasterFadeDuration),g?this._cleanUpRasterTiles(m):this._cleanUpVectorTiles(m)}_cleanUpRasterTiles(t){for(const n of this._inViewTiles.getAllIds())t[n]||this._removeTile(n)}_cleanUpVectorTiles(t){for(const n of this._inViewTiles.getAllIds()){const s=this._inViewTiles.getTileById(n);t[n]?s.clearSymbolFadeHold():s.hasSymbolBuckets?s.holdingForSymbolFade()?s.symbolFadeFinished()&&this._removeTile(n):s.setSymbolHoldDuration(this.map._fadeDuration):this._removeTile(n)}}_addTerrainIdealTiles(t){const n=[];for(const s of t)if(s.canonical.z>this._source.minzoom){const l=s.scaledTo(s.canonical.z-1);n.push(l);const p=s.scaledTo(Math.max(this._source.minzoom,Math.min(s.canonical.z,5)));n.push(p)}return t.concat(n)}releaseSymbolFadeTiles(){for(const t of this._inViewTiles.getAllIds())this._inViewTiles.getTileById(t).holdingForSymbolFade()&&this._removeTile(t)}_updateRetainedTiles(t,n){var s;const l=new Set;for(const w of t)this._addTile(w).hasData()||l.add(w);const p=t.reduce(((w,T)=>(w[T.key]=T,w)),{}),m=this._retainLoadedChildren(p,l),g={},x=Math.max(n-Pe.maxUnderzooming,this._source.minzoom);for(const w of m){let T=this._inViewTiles.getTileById(w.key),I=T?.wasRequested();for(let M=w.overscaledZ-1;M>=x;--M){const z=w.scaledTo(M);if(g[z.key])break;if(g[z.key]=!0,T=this.getTile(z),!T&&I&&(T=this._addTile(z)),T){const L=T.hasData();if((L||!(!((s=this.map)===null||s===void 0)&&s.cancelPendingTileRequestsWhileZooming)||I)&&(p[z.key]=z),I=T.wasRequested(),L)break}}}return p}_addTile(t){let n=this._inViewTiles.getTileById(t.key);if(n)return n;n=this._outOfViewCache.getAndRemove(t),n&&(n.resetFadeLogic(),this._setTileReloadTimer(t.key,n),n.tileID=t,this._state.initializeTileState(n,this.map?this.map.painter:null));const s=n;return n||(n=new ae(t,this._source.tileSize*t.overscaleFactor()),this._loadTile(n,t.key,n.state)),n.uses++,this._inViewTiles.setTile(t.key,n),s||this._source.fire(new c.l("dataloading",{tile:n,coord:n.tileID,dataType:"source"})),n}_setTileReloadTimer(t,n){this._clearTileReloadTimer(t);const s=n.getExpiryTimeout();s&&(this._timers[t]=setTimeout((()=>{this._reloadTile(t,"expired"),delete this._timers[t]}),s))}_clearTileReloadTimer(t){const n=this._timers[t];n&&(clearTimeout(n),delete this._timers[t])}_resetTileReloadTimers(){for(const t in this._timers)clearTimeout(this._timers[t]),delete this._timers[t];for(const t of this._inViewTiles.getAllIds()){const n=this._inViewTiles.getTileById(t);this._setTileReloadTimer(t,n)}}refreshTiles(t){for(const n of this._inViewTiles.getAllIds()){const s=this._inViewTiles.getTileById(n);(this._inViewTiles.isIdRenderable(n)||s.state=="errored")&&t.some((l=>l.equals(s.tileID.canonical)))&&this._reloadTile(n,"expired")}}_removeTile(t){const n=this._inViewTiles.getTileById(t);n&&(n.uses--,this._inViewTiles.deleteTileById(t),this._clearTileReloadTimer(t),n.uses>0||(n.hasData()&&n.state!=="reloading"?this._outOfViewCache.add(n.tileID,n,n.getExpiryTimeout()):(n.aborted=!0,this._abortTile(n),this._unloadTile(n))))}_dataHandler(t){t.dataType==="source"&&(t.sourceDataType!=="metadata"?t.sourceDataType==="content"&&this._sourceLoaded&&!this._paused&&(this.reload(t.sourceDataChanged,t.shouldReloadTileOptions),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0):this._sourceLoaded=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t of this._inViewTiles.getAllIds())this._removeTile(t);this._outOfViewCache.reset()}tilesIn(t,n,s){const l=[],p=this.transform;if(!p)return l;const m=p.getCoveringTilesDetailsProvider().allowWorldCopies(),g=s?p.getCameraQueryGeometry(t):t,x=z=>p.screenPointToMercatorCoordinate(z,this.terrain),w=this.transformBbox(t,x,!m),T=this.transformBbox(g,x,!m),I=this.getIds(),M=c.aa.fromPoints(T);for(let z=0;zZ.getTilePoint(new c.a9(q.x,q.y))));if(X.expandBy(N),X.intersects(Ft)){const q=w.map((Q=>Z.getTilePoint(Q))),Y=T.map((Q=>Z.getTilePoint(Q)));l.push({tile:L,tileID:m?Z:Z.unwrapTo(0),queryGeometry:q,cameraQueryGeometry:Y,scale:U})}}}return l}transformBbox(t,n,s){let l=t.map(n);if(s){const p=c.aa.fromPoints(t);p.shrinkBy(.001*Math.min(p.width(),p.height()));const m=p.map(n);c.aa.fromPoints(l).covers(m)||(l=l.map((g=>g.x>.5?new c.a9(g.x-1,g.y,g.z):g)))}return l}getVisibleCoordinates(t){const n=this.getRenderableIds(t).map((s=>this._inViewTiles.getTileById(s).tileID));return this.transform&&this.transform.populateCache(n),n}hasTransition(){return!!this._source.hasTransition()||!(!ni(this._source.type)||!(function(t,n){if(n<=0)return!1;const s=it();for(const l of t.getAllTiles())if(l.fadeEndTime>=s)return!0;return!1})(this._inViewTiles,this._rasterFadeDuration))}setRasterFadeDuration(t){this._rasterFadeDuration=t}setFeatureState(t,n,s){this._state.updateState(t=t||c.ai,n,s)}removeFeatureState(t,n,s){this._state.removeFeatureState(t=t||c.ai,n,s)}getFeatureState(t,n){return this._state.getState(t=t||c.ai,n)}setDependencies(t,n,s){const l=this._inViewTiles.getTileById(t);l&&l.setDependencies(n,s)}reloadTilesForDependencies(t,n){for(const s of this._inViewTiles.getAllIds())this._inViewTiles.getTileById(s).hasDependency(t,n)&&this._reloadTile(s,"reloading");this._outOfViewCache.filter((s=>!s.hasDependency(t,n)))}areTilesLoaded(){for(const t of this._inViewTiles.getAllTiles())if(t.state!=="loaded"&&t.state!=="errored")return!1;return!0}}Pe.maxUnderzooming=10,Pe.maxOverzooming=3;class $e{constructor(t,n){this.reset(t,n)}reset(t,n){this.points=t||[],this._distances=[0];for(let s=1;s0?(l-m)/g:0;return this.points[p].mult(1-x).add(this.points[n].mult(x))}}function We(d,t){let n=!0;return d==="always"||d!=="never"&&t!=="never"||(n=!1),n}class Ki{constructor(t,n,s){const l=this.boxCells=[],p=this.circleCells=[];this.xCellCount=Math.ceil(t/s),this.yCellCount=Math.ceil(n/s);for(let m=0;mthis.width||l<0||n>this.height)return[];const x=[];if(t<=0&&n<=0&&this.width<=s&&this.height<=l){if(p)return[{key:null,x1:t,y1:n,x2:s,y2:l}];for(let w=0;w0}hitTestCircle(t,n,s,l,p){const m=t-s,g=t+s,x=n-s,w=n+s;if(g<0||m>this.width||w<0||x>this.height)return!1;const T=[];return this._forEachCell(m,x,g,w,this._queryCellCircle,T,{hitTest:!0,overlapMode:l,circle:{x:t,y:n,radius:s},seenUids:{box:{},circle:{}}},p),T.length>0}_queryCell(t,n,s,l,p,m,g,x){const{seenUids:w,hitTest:T,overlapMode:I}=g,M=this.boxCells[p];if(M!==null){const L=this.bboxes;for(const j of M)if(!w.box[j]){w.box[j]=!0;const U=4*j,N=this.boxKeys[j];if(t<=L[U+2]&&n<=L[U+3]&&s>=L[U+0]&&l>=L[U+1]&&(!x||x(N))&&(!T||!We(I,N.overlapMode))&&(m.push({key:N,x1:L[U],y1:L[U+1],x2:L[U+2],y2:L[U+3]}),T))return!0}}const z=this.circleCells[p];if(z!==null){const L=this.circles;for(const j of z)if(!w.circle[j]){w.circle[j]=!0;const U=3*j,N=this.circleKeys[j];if(this._circleAndRectCollide(L[U],L[U+1],L[U+2],t,n,s,l)&&(!x||x(N))&&(!T||!We(I,N.overlapMode))){const Z=L[U],X=L[U+1],q=L[U+2];if(m.push({key:N,x1:Z-q,y1:X-q,x2:Z+q,y2:X+q}),T)return!0}}}return!1}_queryCellCircle(t,n,s,l,p,m,g,x){const{circle:w,seenUids:T,overlapMode:I}=g,M=this.boxCells[p];if(M!==null){const L=this.bboxes;for(const j of M)if(!T.box[j]){T.box[j]=!0;const U=4*j,N=this.boxKeys[j];if(this._circleAndRectCollide(w.x,w.y,w.radius,L[U+0],L[U+1],L[U+2],L[U+3])&&(!x||x(N))&&!We(I,N.overlapMode))return m.push(!0),!0}}const z=this.circleCells[p];if(z!==null){const L=this.circles;for(const j of z)if(!T.circle[j]){T.circle[j]=!0;const U=3*j,N=this.circleKeys[j];if(this._circlesCollide(L[U],L[U+1],L[U+2],w.x,w.y,w.radius)&&(!x||x(N))&&!We(I,N.overlapMode))return m.push(!0),!0}}}_forEachCell(t,n,s,l,p,m,g,x){const w=this._convertToXCellCoord(t),T=this._convertToYCellCoord(n),I=this._convertToXCellCoord(s),M=this._convertToYCellCoord(l);for(let z=w;z<=I;z++)for(let L=T;L<=M;L++)if(p.call(this,t,n,s,l,this.xCellCount*L+z,m,g,x))return}_convertToXCellCoord(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))}_convertToYCellCoord(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))}_circlesCollide(t,n,s,l,p,m){const g=l-t,x=p-n,w=s+m;return w*w>g*g+x*x}_circleAndRectCollide(t,n,s,l,p,m,g){const x=(m-l)/2,w=Math.abs(t-(l+x));if(w>x+s)return!1;const T=(g-p)/2,I=Math.abs(n-(p+T));if(I>T+s)return!1;if(w<=x||I<=T)return!0;const M=w-x,z=I-T;return M*M+z*z<=s*s}}function ra(d,t,n){const s=c.N();if(!d){const{vecSouth:I,vecEast:M}=Ke(t),z=Jt();z[0]=M[0],z[1]=M[1],z[2]=I[0],z[3]=I[1],l=z,(T=(m=(p=z)[0])*(w=p[3])-(x=p[2])*(g=p[1]))&&(l[0]=w*(T=1/T),l[1]=-g*T,l[2]=-x*T,l[3]=m*T),s[0]=z[0],s[1]=z[1],s[4]=z[2],s[5]=z[3]}var l,p,m,g,x,w,T;return c.Q(s,s,[1/n,1/n,1]),s}function En(d,t,n,s){if(d){const l=c.N();if(!t){const{vecSouth:p,vecEast:m}=Ke(n);l[0]=m[0],l[1]=m[1],l[4]=p[0],l[5]=p[1]}return c.Q(l,l,[s,s,1]),l}return n.pixelsToClipSpaceMatrix}function Ke(d){const t=Math.cos(d.rollInRadians),n=Math.sin(d.rollInRadians),s=Math.cos(d.pitchInRadians),l=Math.cos(d.bearingInRadians),p=Math.sin(d.bearingInRadians),m=c.aC();m[0]=-l*s*n-p*t,m[1]=-p*s*n+l*t;const g=c.aD(m);g<1e-9?c.aE(m):c.aF(m,m,1/g);const x=c.aC();x[0]=l*s*t-p*n,x[1]=p*s*t+l*n;const w=c.aD(x);return w<1e-9?c.aE(x):c.aF(x,x,1/w),{vecEast:x,vecSouth:m}}function na(d,t,n,s){let l;s?(l=[d,t,s(d,t),1],c.aH(l,l,n)):(l=[d,t,0,1],cn(l,l,n));const p=l[3];return{point:new c.P(l[0]/p,l[1]/p),signedDistanceFromCamera:p,isOccluded:!1}}function aa(d,t){return .5+d/t*.5}function ks(d,t){return d.x>=-t[0]&&d.x<=t[0]&&d.y>=-t[1]&&d.y<=t[1]}function Ba(d,t,n,s,l,p,m,g,x,w,T,I,M){const z=n?d.textSizeData:d.iconSizeData,L=c.ay(z,t.transform.zoom),j=[256/t.width*2+1,256/t.height*2+1],U=n?d.text.dynamicLayoutVertexArray:d.icon.dynamicLayoutVertexArray;U.clear();const N=d.lineVertexArray,Z=n?d.text.placedSymbolArray:d.icon.placedSymbolArray,X=t.transform.width/t.transform.height;let q=!1;for(let Y=0;YMath.abs(n.x-t.x)*s?{useVertical:!0}:(d===c.az.vertical?t.yn.x)?{needsFlipping:!0}:null}function Va(d){const{projectionContext:t,pitchedLabelPlaneMatrixInverse:n,symbol:s,fontSize:l,flip:p,keepUpright:m,glyphOffsetArray:g,dynamicLayoutVertexArray:x,aspectRatio:w,rotateToLine:T}=d,I=l/24,M=s.lineOffsetX*I,z=s.lineOffsetY*I;let L;if(s.numGlyphs>1){const j=s.glyphStartIndex+s.numGlyphs,U=s.lineStartIndex,N=s.lineStartIndex+s.lineLength,Z=Oa(I,g,M,z,p,s,T,t);if(!Z)return{notEnoughRoom:!0};const X=on(Z.first.point.x,Z.first.point.y,t,n),q=on(Z.last.point.x,Z.last.point.y,t,n);if(m&&!p){const Y=sa(s.writingMode,X,q,w);if(Y)return Y}L=[Z.first];for(let Y=s.glyphStartIndex+1;Y0?X.point:Ci(t.tileAnchorPoint,Z,U,1,t),Y=on(U.x,U.y,t,n),Q=on(q.x,q.y,t,n),W=sa(s.writingMode,Y,Q,w);if(W)return W}const j=ja(I*g.getoffsetX(s.glyphStartIndex),M,z,p,s.segment,s.lineStartIndex,s.lineStartIndex+s.lineLength,t,T);if(!j||t.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};L=[j]}for(const j of L)c.aG(x,j.point,j.angle);return{}}function Ci(d,t,n,s,l){const p=d.add(d.sub(t)._unit()),m=Cn(p.x,p.y,l).point,g=n.sub(m);return n.add(g._mult(s/g.mag()))}function gt(d,t,n){const s=t.projectionCache;if(s.projections[d])return s.projections[d];const l=new c.P(t.lineVertexArray.getx(d),t.lineVertexArray.gety(d)),p=Cn(l.x,l.y,t);if(p.signedDistanceFromCamera>0)return s.projections[d]=p.point,s.anyProjectionOccluded=s.anyProjectionOccluded||p.isOccluded,p.point;const m=d-n.direction;return Ci(n.distanceFromAnchor===0?t.tileAnchorPoint:new c.P(t.lineVertexArray.getx(m),t.lineVertexArray.gety(m)),l,n.previousVertex,n.absOffsetX-n.distanceFromAnchor+1,t)}function Cn(d,t,n){const s=d+n.translation[0],l=t+n.translation[1];let p;return n.pitchWithMap?(p=na(s,l,n.pitchedLabelPlaneMatrix,n.getElevation),p.isOccluded=!1):(p=n.transform.projectTileCoordinates(s,l,n.unwrappedTileID,n.getElevation),p.point.x=(.5*p.point.x+.5)*n.width,p.point.y=(.5*-p.point.y+.5)*n.height),p}function on(d,t,n,s){if(n.pitchWithMap){const l=[d,t,0,1];return c.aH(l,l,s),n.transform.projectTileCoordinates(l[0]/l[3],l[1]/l[3],n.unwrappedTileID,n.getElevation).point}return{x:d/n.width*2-1,y:1-t/n.height*2}}function Rs(d,t,n){return n.transform.projectTileCoordinates(d,t,n.unwrappedTileID,n.getElevation)}function kr(d,t,n){return d._unit()._perp()._mult(t*n)}function ln(d,t,n,s,l,p,m,g,x){if(g.projectionCache.offsets[d])return g.projectionCache.offsets[d];const w=n.add(t);if(d+x.direction=l)return g.projectionCache.offsets[d]=w,w;const T=gt(d+x.direction,g,x),I=kr(T.sub(n),m,x.direction),M=n.add(I),z=T.add(I);return g.projectionCache.offsets[d]=c.aI(p,w,M,z)||w,g.projectionCache.offsets[d]}function ja(d,t,n,s,l,p,m,g,x){const w=s?d-t:d+t;let T=w>0?1:-1,I=0;s&&(T*=-1,I=Math.PI),T<0&&(I+=Math.PI);let M,z=T>0?p+l:p+l+1;g.projectionCache.cachedAnchorPoint?M=g.projectionCache.cachedAnchorPoint:(M=Cn(g.tileAnchorPoint.x,g.tileAnchorPoint.y,g).point,g.projectionCache.cachedAnchorPoint=M);let L,j,U=M,N=M,Z=0,X=0;const q=Math.abs(w),Y=[];let Q;for(;Z+X<=q;){if(z+=T,z=m)return null;Z+=X,N=U,j=L;const de={absOffsetX:q,direction:T,distanceFromAnchor:Z,previousVertex:N};if(U=gt(z,g,de),n===0)Y.push(N),Q=U.sub(N);else{let ue;const le=U.sub(N);ue=le.mag()===0?kr(gt(z+T,g,de).sub(U),n,T):kr(le,n,T),j||(j=N.add(ue)),L=ln(z,ue,U,p,m,j,n,g,de),Y.push(j),Q=L.sub(j)}X=Q.mag()}const W=Q._mult((q-Z)/X)._add(j||N),te=I+Math.atan2(U.y-N.y,U.x-N.x);return Y.push(W),{point:W,angle:x?te:0,path:Y}}const Kl=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function An(d,t){for(let n=0;n=1;He--)Ie.push(he.path[He]);for(let He=1;Helt.signedDistanceFromCamera<=0))?[]:He.map((lt=>lt.point))}let Le=[];if(Ie.length>0){const He=Ie[0].clone(),lt=Ie[0].clone();for(let _t=1;_t=de.x&<.x<=ue.x&&He.y>=de.y&<.y<=ue.y?[Ie]:lt.xue.x||lt.yue.y?[]:c.aJ([Ie],de.x,de.y,ue.x,ue.y)}for(const He of Le){le.reset(He,.25*te);let lt=0;lt=le.length<=.5*te?1:Math.ceil(le.paddedLength/_e)+1;for(let _t=0;_t{const x=na(g.x,g.y,m,p.getElevation),w=p.transform.projectTileCoordinates(x.point.x,x.point.y,p.unwrappedTileID,p.getElevation);return w.point.x=(.5*w.point.x+.5)*p.width,w.point.y=(.5*-w.point.y+.5)*p.height,w}))})(t,n);return(function(l){let p=0,m=0,g=0,x=0;for(let w=0;wm&&(m=x,p=g));return l.slice(p,p+m)})(s)}queryRenderedSymbols(t){if(t.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};const n=[],s=new c.aa;for(const I of t){const M=new c.P(I.x+Xt,I.y+Xt);s.extend(M),n.push(M)}const{minX:l,minY:p,maxX:m,maxY:g}=s,x=this.grid.query(l,p,m,g).concat(this.ignoredGrid.query(l,p,m,g)),w={},T={};for(const I of x){const M=I.key;if(w[M.bucketInstanceId]===void 0&&(w[M.bucketInstanceId]={}),w[M.bucketInstanceId][M.featureIndex])continue;const z=[new c.P(I.x1,I.y1),new c.P(I.x2,I.y1),new c.P(I.x2,I.y2),new c.P(I.x1,I.y2)];c.aK(n,z)&&(w[M.bucketInstanceId][M.featureIndex]=!0,T[M.bucketInstanceId]===void 0&&(T[M.bucketInstanceId]=[]),T[M.bucketInstanceId].push(M.featureIndex))}return T}insertCollisionBox(t,n,s,l,p,m){(s?this.ignoredGrid:this.grid).insert({bucketInstanceId:l,featureIndex:p,collisionGroupID:m,overlapMode:n},t[0],t[1],t[2],t[3])}insertCollisionCircles(t,n,s,l,p,m){const g=s?this.ignoredGrid:this.grid,x={bucketInstanceId:l,featureIndex:p,collisionGroupID:m,overlapMode:n};for(let w=0;w=this.screenRightBoundary||lthis.screenBottomBoundary}isInsideGrid(t,n,s,l){return s>=0&&t=0&&nthis.projectAndGetPerspectiveRatio(_e.x,_e.y,l,w,I)));Me=Ie.some((_e=>!_e.isOccluded)),he=Ie.map((_e=>new c.P(_e.x,_e.y)))}else Me=!0;return{box:c.aL(he),allPointsOccluded:!Me}}}class Jl{constructor(t,n,s,l){this.opacity=t?Math.max(0,Math.min(1,t.opacity+(t.placed?n:-n))):l&&s?1:0,this.placed=s}isHidden(){return this.opacity===0&&!this.placed}}class Na{constructor(t,n,s,l,p){this.text=new Jl(t?t.text:null,n,s,p),this.icon=new Jl(t?t.icon:null,n,l,p)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class No{constructor(t,n,s){this.text=t,this.icon=n,this.skipFade=s}}class Ql{constructor(t,n,s,l,p){this.bucketInstanceId=t,this.featureIndex=n,this.sourceLayerIndex=s,this.bucketIndex=l,this.tileID=p}}class Uo{constructor(t){this.crossSourceCollisions=t,this.maxGroupID=0,this.collisionGroups={}}get(t){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[t]){const n=++this.maxGroupID;this.collisionGroups[t]={ID:n,predicate:s=>s.collisionGroupID===n}}return this.collisionGroups[t]}}function Ls(d,t,n,s,l){const{horizontalAlign:p,verticalAlign:m}=c.aS(d);return new c.P(-(p-.5)*t+s[0]*l,-(m-.5)*n+s[1]*l)}class ec{constructor(t,n,s,l,p){this.transform=t.clone(),this.terrain=n,this.collisionIndex=new ku(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=s,this.retainedQueryData={},this.collisionGroups=new Uo(l),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=p,p&&(p.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(t){const n=this.terrain;return n?(s,l)=>n.getElevation(t,s,l):null}getBucketParts(t,n,s,l){const p=s.getBucket(n),m=s.latestFeatureIndex;if(!p||!m||n.id!==p.layerIds[0])return;const g=s.collisionBoxArray,x=p.layers[0].layout,w=p.layers[0].paint,T=Math.pow(2,this.transform.zoom-s.tileID.overscaledZ),I=s.tileSize/c.a5,M=s.tileID.toUnwrapped(),z=x.get("text-rotation-alignment")==="map",L=c.aN(s,1,this.transform.zoom),j=c.aO(this.collisionIndex.transform,s,w.get("text-translate"),w.get("text-translate-anchor")),U=c.aO(this.collisionIndex.transform,s,w.get("icon-translate"),w.get("icon-translate-anchor")),N=ra(z,this.transform,L);this.retainedQueryData[p.bucketInstanceId]=new Ql(p.bucketInstanceId,m,p.sourceLayerIndex,p.index,s.tileID);const Z={bucket:p,layout:x,translationText:j,translationIcon:U,unwrappedTileID:M,pitchedLabelPlaneMatrix:N,scale:T,textPixelRatio:I,holdingForFade:s.holdingForSymbolFade(),collisionBoxArray:g,partiallyEvaluatedTextSize:c.ay(p.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(p.sourceID)};if(l)for(const X of p.sortKeyRanges){const{sortKey:q,symbolInstanceStart:Y,symbolInstanceEnd:Q}=X;t.push({sortKey:q,symbolInstanceStart:Y,symbolInstanceEnd:Q,parameters:Z})}else t.push({symbolInstanceStart:0,symbolInstanceEnd:p.symbolInstances.length,parameters:Z})}attemptAnchorPlacement(t,n,s,l,p,m,g,x,w,T,I,M,z,L,j,U,N,Z,X,q){const Y=c.aP[t.textAnchor],Q=[t.textOffset0,t.textOffset1],W=Ls(Y,s,l,Q,p),te=this.collisionIndex.placeCollisionBox(n,M,x,w,T,g,m,U,I.predicate,X,W,q);if((!Z||this.collisionIndex.placeCollisionBox(Z,M,x,w,T,g,m,N,I.predicate,X,W,q).placeable)&&te.placeable){let de;if(this.prevPlacement&&this.prevPlacement.variableOffsets[z.crossTileID]&&this.prevPlacement.placements[z.crossTileID]&&this.prevPlacement.placements[z.crossTileID].text&&(de=this.prevPlacement.variableOffsets[z.crossTileID].anchor),z.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[z.crossTileID]={textOffset:Q,width:s,height:l,anchor:Y,textBoxScale:p,prevAnchor:de},this.markUsedJustification(L,Y,z,j),L.allowVerticalPlacement&&(this.markUsedOrientation(L,j,z),this.placedOrientations[z.crossTileID]=j),{shift:W,placedGlyphBoxes:te}}}placeLayerBucketPart(t,n,s){const{bucket:l,layout:p,translationText:m,translationIcon:g,unwrappedTileID:x,pitchedLabelPlaneMatrix:w,textPixelRatio:T,holdingForFade:I,collisionBoxArray:M,partiallyEvaluatedTextSize:z,collisionGroup:L}=t.parameters,j=p.get("text-optional"),U=p.get("icon-optional"),N=c.aQ(p,"text-overlap","text-allow-overlap"),Z=N==="always",X=c.aQ(p,"icon-overlap","icon-allow-overlap"),q=X==="always",Y=p.get("text-rotation-alignment")==="map",Q=p.get("text-pitch-alignment")==="map",W=p.get("icon-text-fit")!=="none",te=p.get("symbol-z-order")==="viewport-y",de=Z&&(q||!l.hasIconData()||U),ue=q&&(Z||!l.hasTextData()||j);!l.collisionArrays&&M&&l.deserializeCollisionBoxes(M);const le=this.retainedQueryData[l.bucketInstanceId].tileID,he=this._getTerrainElevationFunc(le),Me=this.transform.getFastPathSimpleProjectionMatrix(le),Ie=(_e,Le,He)=>{var lt,_t;if(n[_e.crossTileID])return;if(I)return void(this.placements[_e.crossTileID]=new No(!1,!1,!1));let ft=!1,wt=!1,ct=!0,$t=null,Tt={box:null,placeable:!1,offscreen:null,occluded:!1},si={placeable:!1},zt=null,Dt=null,wi=null,Gr=0,Pr=0,Ti=0;Le.textFeatureIndex?Gr=Le.textFeatureIndex:_e.useRuntimeCollisionCircles&&(Gr=_e.featureIndex),Le.verticalTextFeatureIndex&&(Pr=Le.verticalTextFeatureIndex);const qr=Le.textBox;if(qr){const zi=ht=>{let St=c.az.horizontal;if(l.allowVerticalPlacement&&!ht&&this.prevPlacement){const Zi=this.prevPlacement.placedOrientations[_e.crossTileID];Zi&&(this.placedOrientations[_e.crossTileID]=Zi,St=Zi,this.markUsedOrientation(l,St,_e))}return St},ir=(ht,St)=>{if(l.allowVerticalPlacement&&_e.numVerticalGlyphVertices>0&&Le.verticalTextBox){for(const Zi of l.writingModes)if(Zi===c.az.vertical?(Tt=St(),si=Tt):Tt=ht(),Tt&&Tt.placeable)break}else Tt=ht()},Gi=_e.textAnchorOffsetStartIndex,qi=_e.textAnchorOffsetEndIndex;if(qi===Gi){const ht=(St,Zi)=>{const Kt=this.collisionIndex.placeCollisionBox(St,N,T,le,x,Q,Y,m,L.predicate,he,void 0,Me);return Kt&&Kt.placeable&&(this.markUsedOrientation(l,Zi,_e),this.placedOrientations[_e.crossTileID]=Zi),Kt};ir((()=>ht(qr,c.az.horizontal)),(()=>{const St=Le.verticalTextBox;return l.allowVerticalPlacement&&_e.numVerticalGlyphVertices>0&&St?ht(St,c.az.vertical):{box:null,offscreen:null}})),zi(Tt&&Tt.placeable)}else{let ht=c.aP[(_t=(lt=this.prevPlacement)===null||lt===void 0?void 0:lt.variableOffsets[_e.crossTileID])===null||_t===void 0?void 0:_t.anchor];const St=(Kt,Qc,Zn)=>{const ah=Kt.x2-Kt.x1,eu=Kt.y2-Kt.y1,Al=_e.textBoxScale,tu=W&&X==="never"?Qc:null;let $i=null,mn=N==="never"?1:2,zl="never";ht&&mn++;for(let iu=0;iuSt(qr,Le.iconBox,c.az.horizontal)),(()=>{const Kt=Le.verticalTextBox;return l.allowVerticalPlacement&&(!Tt||!Tt.placeable)&&_e.numVerticalGlyphVertices>0&&Kt?St(Kt,Le.verticalIconBox,c.az.vertical):{box:null,occluded:!0,offscreen:null}})),Tt&&(ft=Tt.placeable,ct=Tt.offscreen);const Zi=zi(Tt&&Tt.placeable);if(!ft&&this.prevPlacement){const Kt=this.prevPlacement.variableOffsets[_e.crossTileID];Kt&&(this.variableOffsets[_e.crossTileID]=Kt,this.markUsedJustification(l,Kt.anchor,_e,Zi))}}}if(zt=Tt,ft=zt&&zt.placeable,ct=zt&&zt.offscreen,_e.useRuntimeCollisionCircles&&_e.centerJustifiedTextSymbolIndex>=0){const zi=l.text.placedSymbolArray.get(_e.centerJustifiedTextSymbolIndex),ir=c.aA(l.textSizeData,z,zi),Gi=p.get("text-padding");Dt=this.collisionIndex.placeCollisionCircles(N,zi,l.lineVertexArray,l.glyphOffsetArray,ir,x,w,s,Q,L.predicate,_e.collisionCircleDiameter,Gi,m,he),Dt.circles.length&&Dt.collisionDetected&&!s&&c.w("Collisions detected, but collision boxes are not shown"),ft=Z||Dt.circles.length>0&&!Dt.collisionDetected,ct=ct&&Dt.offscreen}if(Le.iconFeatureIndex&&(Ti=Le.iconFeatureIndex),Le.iconBox){const zi=ir=>this.collisionIndex.placeCollisionBox(ir,X,T,le,x,Q,Y,g,L.predicate,he,W&&$t?$t:void 0,Me);si&&si.placeable&&Le.verticalIconBox?(wi=zi(Le.verticalIconBox),wt=wi.placeable):(wi=zi(Le.iconBox),wt=wi.placeable),ct=ct&&wi.offscreen}const ws=j||_e.numHorizontalGlyphVertices===0&&_e.numVerticalGlyphVertices===0,Ts=U||_e.numIconVertices===0;ws||Ts?Ts?ws||(wt=wt&&ft):ft=wt&&ft:wt=ft=wt&&ft;const wa=wt&&wi.placeable;if(ft&&zt.placeable&&this.collisionIndex.insertCollisionBox(zt.box,N,p.get("text-ignore-placement"),l.bucketInstanceId,si&&si.placeable&&Pr?Pr:Gr,L.ID),wa&&this.collisionIndex.insertCollisionBox(wi.box,X,p.get("icon-ignore-placement"),l.bucketInstanceId,Ti,L.ID),Dt&&ft&&this.collisionIndex.insertCollisionCircles(Dt.circles,N,p.get("text-ignore-placement"),l.bucketInstanceId,Gr,L.ID),s&&this.storeCollisionData(l.bucketInstanceId,He,Le,zt,wi,Dt),_e.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");if(l.bucketInstanceId===0)throw new Error("bucket.bucketInstanceId can't be 0");this.placements[_e.crossTileID]=new No((ft||de)&&!zt?.occluded,(wt||ue)&&!wi?.occluded,ct||l.justReloaded),n[_e.crossTileID]=!0};if(te){if(t.symbolInstanceStart!==0)throw new Error("bucket.bucketInstanceId should be 0");const _e=l.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let Le=_e.length-1;Le>=0;--Le){const He=_e[Le];Ie(l.symbolInstances.get(He),l.collisionArrays[He],He)}}else for(let _e=t.symbolInstanceStart;_e=0&&(t.text.placedSymbolArray.get(g).crossTileID=p>=0&&g!==p?0:s.crossTileID)}markUsedOrientation(t,n,s){const l=n===c.az.horizontal||n===c.az.horizontalOnly?n:0,p=n===c.az.vertical?n:0,m=[s.leftJustifiedTextSymbolIndex,s.centerJustifiedTextSymbolIndex,s.rightJustifiedTextSymbolIndex];for(const g of m)t.text.placedSymbolArray.get(g).placedOrientation=l;s.verticalPlacedTextSymbolIndex&&(t.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).placedOrientation=p)}commit(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;const n=this.prevPlacement;let s=!1;this.prevZoomAdjustment=n?n.zoomAdjustment(this.transform.zoom):0;const l=n?n.symbolFadeChange(t):1,p=n?n.opacities:{},m=n?n.variableOffsets:{},g=n?n.placedOrientations:{};for(const x in this.placements){const w=this.placements[x],T=p[x];T?(this.opacities[x]=new Na(T,l,w.text,w.icon),s=s||w.text!==T.text.placed||w.icon!==T.icon.placed):(this.opacities[x]=new Na(null,l,w.text,w.icon,w.skipFade),s=s||w.text||w.icon)}for(const x in p){const w=p[x];if(!this.opacities[x]){const T=new Na(w,l,!1,!1);T.isHidden()||(this.opacities[x]=T,s=s||w.text.placed||w.icon.placed)}}for(const x in m)this.variableOffsets[x]||!this.opacities[x]||this.opacities[x].isHidden()||(this.variableOffsets[x]=m[x]);for(const x in g)this.placedOrientations[x]||!this.opacities[x]||this.opacities[x].isHidden()||(this.placedOrientations[x]=g[x]);if(n&&n.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");s?this.lastPlacementChangeTime=t:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=n?n.lastPlacementChangeTime:t)}updateLayerOpacities(t,n){const s={};for(const l of n){const p=l.getBucket(t);p&&l.latestFeatureIndex&&t.id===p.layerIds[0]&&this.updateBucketOpacities(p,l.tileID,s,l.collisionBoxArray)}}updateBucketOpacities(t,n,s,l){t.hasTextData()&&(t.text.opacityVertexArray.clear(),t.text.hasVisibleVertices=!1),t.hasIconData()&&(t.icon.opacityVertexArray.clear(),t.icon.hasVisibleVertices=!1),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexArray.clear(),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexArray.clear();const p=t.layers[0],m=p.layout,g=new Na(null,0,!1,!1,!0),x=m.get("text-allow-overlap"),w=m.get("icon-allow-overlap"),T=p._unevaluatedLayout.hasValue("text-variable-anchor")||p._unevaluatedLayout.hasValue("text-variable-anchor-offset"),I=m.get("text-rotation-alignment")==="map",M=m.get("text-pitch-alignment")==="map",z=m.get("icon-text-fit")!=="none",L=new Na(null,0,x&&(w||!t.hasIconData()||m.get("icon-optional")),w&&(x||!t.hasTextData()||m.get("text-optional")),!0);!t.collisionArrays&&l&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(l);const j=(N,Z,X)=>{for(let q=0;q0,te=this.placedOrientations[Z.crossTileID],de=te===c.az.vertical,ue=te===c.az.horizontal||te===c.az.horizontalOnly;if(X>0||q>0){const he=rc(Q.text);j(t.text,X,de?Ji:he),j(t.text,q,ue?Ji:he);const Me=Q.text.isHidden();[Z.rightJustifiedTextSymbolIndex,Z.centerJustifiedTextSymbolIndex,Z.leftJustifiedTextSymbolIndex].forEach((Le=>{Le>=0&&(t.text.placedSymbolArray.get(Le).hidden=Me||de?1:0)})),Z.verticalPlacedTextSymbolIndex>=0&&(t.text.placedSymbolArray.get(Z.verticalPlacedTextSymbolIndex).hidden=Me||ue?1:0);const Ie=this.variableOffsets[Z.crossTileID];Ie&&this.markUsedJustification(t,Ie.anchor,Z,te);const _e=this.placedOrientations[Z.crossTileID];_e&&(this.markUsedJustification(t,"left",Z,_e),this.markUsedOrientation(t,_e,Z))}if(W){const he=rc(Q.icon),Me=!(z&&Z.verticalPlacedIconSymbolIndex&&de);Z.placedIconSymbolIndex>=0&&(j(t.icon,Z.numIconVertices,Me?he:Ji),t.icon.placedSymbolArray.get(Z.placedIconSymbolIndex).hidden=Q.icon.isHidden()),Z.verticalPlacedIconSymbolIndex>=0&&(j(t.icon,Z.numVerticalIconVertices,Me?Ji:he),t.icon.placedSymbolArray.get(Z.verticalPlacedIconSymbolIndex).hidden=Q.icon.isHidden())}const le=U&&U.has(N)?U.get(N):{text:null,icon:null};if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){const he=t.collisionArrays[N];if(he){let Me=new c.P(0,0);if(he.textBox||he.verticalTextBox){let Ie=!0;if(T){const _e=this.variableOffsets[Y];_e?(Me=Ls(_e.anchor,_e.width,_e.height,_e.textOffset,_e.textBoxScale),I&&Me._rotate(M?-this.transform.bearingInRadians:this.transform.bearingInRadians)):Ie=!1}if(he.textBox||he.verticalTextBox){let _e;he.textBox&&(_e=de),he.verticalTextBox&&(_e=ue),Fs(t.textCollisionBox.collisionVertexArray,Q.text.placed,!Ie||_e,le.text,Me.x,Me.y)}}if(he.iconBox||he.verticalIconBox){const Ie=!!(!ue&&he.verticalIconBox);let _e;he.iconBox&&(_e=Ie),he.verticalIconBox&&(_e=!Ie),Fs(t.iconCollisionBox.collisionVertexArray,Q.icon.placed,_e,le.icon,z?Me.x:0,z?Me.y:0)}}}}if(t.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexBuffer&&t.iconCollisionBox.collisionVertexBuffer.updateData(t.iconCollisionBox.collisionVertexArray),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexBuffer&&t.textCollisionBox.collisionVertexBuffer.updateData(t.textCollisionBox.collisionVertexArray),t.text.opacityVertexArray.length!==t.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${t.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${t.text.layoutVertexArray.length}) / 4`);if(t.icon.opacityVertexArray.length!==t.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${t.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${t.icon.layoutVertexArray.length}) / 4`);t.bucketInstanceId in this.collisionCircleArrays&&(t.collisionCircleArray=this.collisionCircleArrays[t.bucketInstanceId],delete this.collisionCircleArrays[t.bucketInstanceId])}symbolFadeChange(t){return this.fadeDuration===0?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(t){return Math.max(0,(this.transform.zoom-t)/1.5)}hasTransitions(t){return this.stale||t-this.lastPlacementChangeTimet}setStale(){this.stale=!0}}function Fs(d,t,n,s,l,p){s&&s.length!==0||(s=[0,0,0,0]);const m=s[0]-Xt,g=s[1]-Xt,x=s[2]-Xt,w=s[3]-Xt;d.emplaceBack(t?1:0,n?1:0,l||0,p||0,m,g),d.emplaceBack(t?1:0,n?1:0,l||0,p||0,x,g),d.emplaceBack(t?1:0,n?1:0,l||0,p||0,x,w),d.emplaceBack(t?1:0,n?1:0,l||0,p||0,m,w)}const Go=Math.pow(2,25),Ru=Math.pow(2,24),Ua=Math.pow(2,17),Bs=Math.pow(2,16),tc=Math.pow(2,9),oa=Math.pow(2,8),ic=Math.pow(2,1);function rc(d){if(d.opacity===0&&!d.placed)return 0;if(d.opacity===1&&d.placed)return 4294967295;const t=d.placed?1:0,n=Math.floor(127*d.opacity);return n*Go+t*Ru+n*Ua+t*Bs+n*tc+t*oa+n*ic+t}const Ji=0;class la{constructor(t){this._sortAcrossTiles=t.layout.get("symbol-z-order")!=="viewport-y"&&!t.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(t,n,s,l,p){const m=this._bucketParts;for(;this._currentTileIndexg.sortKey-x.sortKey)));this._currentPartIndex!this._forceFullPlacement&&it()-l>2;for(;this._currentPlacementIndex>=0;){const m=n[t[this._currentPlacementIndex]],g=this.placement.collisionIndex.transform.zoom;if(m.type==="symbol"&&(!m.minzoom||m.minzoom<=g)&&(!m.maxzoom||m.maxzoom>g)){if(this._inProgressLayer||(this._inProgressLayer=new la(m)),this._inProgressLayer.continuePlacement(s[m.source],this.placement,this._showCollisionBoxes,m,p))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(t){return this.placement.commit(t),this.placement}}const zn=512/c.a5/2;class Lu{constructor(t,n,s){this.tileID=t,this.bucketInstanceId=s,this._symbolsByKey={};const l=new Map;for(let p=0;p({x:Math.floor(x.anchorX*zn),y:Math.floor(x.anchorY*zn)}))),crossTileIDs:m.map((x=>x.crossTileID))};if(g.positions.length>128){const x=new c.aT(g.positions.length,16,Uint16Array);for(const{x:w,y:T}of g.positions)x.add(w,T);x.finish(),delete g.positions,g.index=x}this._symbolsByKey[p]=g}}getScaledCoordinates(t,n){const{x:s,y:l,z:p}=this.tileID.canonical,{x:m,y:g,z:x}=n.canonical,w=zn/Math.pow(2,x-p),T=(g*c.a5+t.anchorY)*w,I=l*c.a5*zn;return{x:Math.floor((m*c.a5+t.anchorX)*w-s*c.a5*zn),y:Math.floor(T-I)}}findMatches(t,n,s){const l=this.tileID.canonical.zt))}}class qo{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Bi{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(t){const n=Math.round((t-this.lng)/360);if(n!==0)for(const s in this.indexes){const l=this.indexes[s],p={};for(const m in l){const g=l[m];g.tileID=g.tileID.unwrapTo(g.tileID.wrap+n),p[g.tileID.key]=g}this.indexes[s]=p}this.lng=t}addBucket(t,n,s){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===n.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key])}for(let p=0;pt.overscaledZ)for(const g in m){const x=m[g];x.tileID.isChildOf(t)&&x.findMatches(n.symbolInstances,t,l)}else{const g=m[t.scaledTo(Number(p)).key];g&&g.findMatches(n.symbolInstances,t,l)}}for(let p=0;p{n[s]=!0}));for(const s in this.layerIndexes)n[s]||delete this.layerIndexes[s]}}var fi="void main() {fragColor=vec4(1.0);}";const yt={prelude:je(`#ifdef GL_ES precision mediump float; #else #if !defined(lowp) #define lowp #endif #if !defined(mediump) #define mediump #endif #if !defined(highp) #define highp #endif #endif out highp vec4 fragColor;`,`#ifdef GL_ES precision highp float; #else #if !defined(lowp) #define lowp #endif #if !defined(mediump) #define mediump #endif #if !defined(highp) #define highp #endif #endif vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0 );}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c );} #ifdef TERRAIN3D uniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth; #endif const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) { #ifdef TERRAIN3D highp float d=unpack(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); #else return 1.0; #endif }float calculate_visibility(vec4 pos) { #ifdef TERRAIN3D vec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0; #else return 1.0; #endif }float ele(vec2 pos) { #ifdef TERRAIN3D vec4 rgb=(texture(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a; #else return 0.0; #endif }float get_elevation(vec2 pos) { #ifdef TERRAIN3D #ifdef GLOBE if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;} #endif vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration; #else return 0.0; #endif }const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`),projectionMercator:je("","float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}"),projectionGlobe:je("",`#define GLOBE_RADIUS 6371008.8 uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos );}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY); if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len );if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:je(`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),backgroundPattern:je(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,"uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),circle:je(`in vec3 v_data;in float v_visibility; #pragma mapbox: define highp vec4 color #pragma mapbox: define mediump float radius #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define highp vec4 stroke_color #pragma mapbox: define mediump float stroke_width #pragma mapbox: define lowp float stroke_opacity void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize mediump float radius #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize highp vec4 stroke_color #pragma mapbox: initialize mediump float stroke_width #pragma mapbox: initialize lowp float stroke_opacity vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;} #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out float v_visibility; #pragma mapbox: define highp vec4 color #pragma mapbox: define mediump float radius #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define highp vec4 stroke_color #pragma mapbox: define mediump float stroke_width #pragma mapbox: define lowp float stroke_opacity void main(void) { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize mediump float radius #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize highp vec4 stroke_color #pragma mapbox: initialize mediump float stroke_width #pragma mapbox: initialize lowp float stroke_opacity vec2 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) { #ifdef GLOBE vec3 center_vector=projectToSphere(circle_center); #endif float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else { #ifdef GLOBE vec4 projected_center=interpolateProjection(circle_center,center_vector,ele); #else vec4 projected_center=projectTileWithElevation(circle_center,ele); #endif corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);} #ifdef GLOBE vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele); #else gl_Position=projectTileWithElevation(corner_position,ele); #endif } else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:je(fi,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),heatmap:je(`uniform highp float u_intensity;in vec2 v_extrude; #pragma mapbox: define highp float weight #define GAUSS_COEF 0.3989422804014327 void main() { #pragma mapbox: initialize highp float weight float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);fragColor=vec4(val,1.0,1.0,1.0); #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out vec2 v_extrude; #pragma mapbox: define highp float weight #pragma mapbox: define mediump float radius const highp float ZERO=1.0/255.0/16.0; #define GAUSS_COEF 0.3989422804014327 void main(void) { #pragma mapbox: initialize highp float weight #pragma mapbox: initialize mediump float radius vec2 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=floor(pos_raw/8.0); #ifdef GLOBE vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0); #else gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center)); #endif }`),heatmapTexture:je(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(0.0); #endif }`,"uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),collisionBox:je("in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}","in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:je("in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}","in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),colorRelief:je(`#ifdef GL_ES precision highp float; #endif uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {float x=(float(stop)+0.5)/float(u_color_ramp_size);vec4 data=texture(u_elevation_stops,vec2(x,0))*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else {l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0)); #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,"uniform vec2 u_dimension;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),debug:je("uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}","in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}"),depth:je(fi,`in vec2 a_pos;void main() { #ifdef GLOBE gl_Position=projectTileFor3D(a_pos,0.0); #else gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0); #endif }`),fill:je(`#pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float opacity fragColor=color*opacity; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform vec2 u_fill_translate;in vec2 a_pos; #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float opacity gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:je(`in vec2 v_pos; #ifdef GLOBE in float v_depth; #endif #pragma mapbox: define highp vec4 outline_color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 outline_color #pragma mapbox: initialize lowp float opacity float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity); #ifdef GLOBE if (v_depth > 1.0) {discard;} #endif #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos; #ifdef GLOBE out float v_depth; #endif #pragma mapbox: define highp vec4 outline_color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 outline_color #pragma mapbox: initialize lowp float opacity gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; #ifdef GLOBE v_depth=gl_Position.z/gl_Position.w; #endif }`),fillOutlinePattern:je(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos; #ifdef GLOBE in float v_depth; #endif #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity; #ifdef GLOBE if (v_depth > 1.0) {discard;} #endif #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos; #ifdef GLOBE out float v_depth; #endif #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; #ifdef GLOBE v_depth=gl_Position.z/gl_Position.w; #endif }`),fillPattern:je(`#ifdef GL_ES precision highp float; #endif uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:je(`in vec4 v_color;void main() {fragColor=v_color; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;in vec2 a_pos;in vec4 a_normal_ed; #ifdef TERRAIN3D in vec2 a_centroid; #endif out vec4 v_color; #pragma mapbox: define highp float base #pragma mapbox: define highp float height #pragma mapbox: define highp vec4 color void main() { #pragma mapbox: initialize highp float base #pragma mapbox: initialize highp float height #pragma mapbox: initialize highp vec4 color vec3 normal=a_normal_ed.xyz; #ifdef TERRAIN3D float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0); #else float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0; #endif base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; #ifdef GLOBE vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); #else gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); #endif float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0); #ifdef GLOBE mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition); #endif directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:je(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting; #pragma mapbox: define lowp float base #pragma mapbox: define lowp float height #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float base #pragma mapbox: initialize lowp float height #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;in vec2 a_pos;in vec4 a_normal_ed; #ifdef TERRAIN3D in vec2 a_centroid; #endif #ifdef GLOBE out vec3 v_sphere_pos; #endif out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting; #pragma mapbox: define lowp float base #pragma mapbox: define lowp float height #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float base #pragma mapbox: initialize lowp float height #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to; #ifdef TERRAIN3D float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0); #else float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0; #endif base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate; #ifdef GLOBE vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation); #else gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0); #endif vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 ? a_pos : vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:je(`#ifdef GL_ES precision highp float; #endif uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0); #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,"uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:je(`uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES]; #define PI 3.141592653589793 #define STANDARD 0 #define COMBINED 1 #define IGOR 2 #define MULTIDIRECTIONAL 3 #define BASIC 4 float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else {fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else {fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);} #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,"uniform mat4 u_matrix;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),line:je(`uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale; #ifdef GLOBE in float v_depth; #endif #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);fragColor=color*(alpha*opacity); #ifdef GLOBE if (v_depth > 1.0) {discard;} #endif #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar; #ifdef GLOBE out float v_depth; #endif #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float gapwidth #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float width void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float width float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; #ifdef GLOBE v_depth=gl_Position.z/gl_Position.w; #endif #ifdef TERRAIN3D v_gamma_scale=1.0; #else float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; #endif v_width2=vec2(outset,inset);}`),lineGradient:je(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv; #ifdef GLOBE in float v_depth; #endif #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);fragColor=color*(alpha*opacity); #ifdef GLOBE if (v_depth > 1.0) {discard;} #endif #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv; #ifdef GLOBE out float v_depth; #endif #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float gapwidth #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float width void main() { #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float width float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; #ifdef GLOBE v_depth=gl_Position.z/gl_Position.w; #endif #ifdef TERRAIN3D v_gamma_scale=1.0; #else float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; #endif v_width2=vec2(outset,inset);}`),linePattern:je(`#ifdef GL_ES precision highp float; #endif uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width; #ifdef GLOBE in float v_depth; #endif #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity; #ifdef GLOBE if (v_depth > 1.0) {discard;} #endif #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 #define LINE_DISTANCE_SCALE 2.0 in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width; #ifdef GLOBE out float v_depth; #endif #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float gapwidth #pragma mapbox: define mediump float width #pragma mapbox: define lowp float floorwidth #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize mediump float width #pragma mapbox: initialize lowp float floorwidth #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; #ifdef GLOBE v_depth=gl_Position.z/gl_Position.w; #endif #ifdef TERRAIN3D v_gamma_scale=1.0; #else float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; #endif v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:je(`uniform lowp float u_device_pixel_ratio;uniform lowp float u_lineatlas_width;uniform sampler2D u_image;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale; #ifdef GLOBE in float v_depth; #endif #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float width #pragma mapbox: define lowp float floorwidth #pragma mapbox: define mediump vec4 dasharray_from #pragma mapbox: define mediump vec4 dasharray_to void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float width #pragma mapbox: initialize lowp float floorwidth #pragma mapbox: initialize mediump vec4 dasharray_from #pragma mapbox: initialize mediump vec4 dasharray_to float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0/u_device_pixel_ratio)/min(dasharray_from.w,dasharray_to.w);alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity); #ifdef GLOBE if (v_depth > 1.0) {discard;} #endif #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 #define LINE_DISTANCE_SCALE 2.0 in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale; #ifdef GLOBE out float v_depth; #endif #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float gapwidth #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float width #pragma mapbox: define lowp float floorwidth #pragma mapbox: define mediump vec4 dasharray_from #pragma mapbox: define mediump vec4 dasharray_to void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float width #pragma mapbox: initialize lowp float floorwidth #pragma mapbox: initialize mediump vec4 dasharray_from #pragma mapbox: initialize mediump vec4 dasharray_to float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; #ifdef GLOBE v_depth=gl_Position.z/gl_Position.w; #endif #ifdef TERRAIN3D v_gamma_scale=1.0; #else float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; #endif float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),lineGradientSDF:je(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform sampler2D u_image_dash;uniform float u_mix;uniform lowp float u_lineatlas_width;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;in highp vec2 v_uv; #ifdef GLOBE in float v_depth; #endif #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float width #pragma mapbox: define lowp float floorwidth #pragma mapbox: define mediump vec4 dasharray_from #pragma mapbox: define mediump vec4 dasharray_to void main() { #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float width #pragma mapbox: initialize lowp float floorwidth #pragma mapbox: initialize mediump vec4 dasharray_from #pragma mapbox: initialize mediump vec4 dasharray_to float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);float sdfdist_a=texture(u_image_dash,v_tex_a).a;float sdfdist_b=texture(u_image_dash,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0)/min(dasharray_from.w,dasharray_to.w);float dash_alpha=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*dash_alpha*opacity); #ifdef GLOBE if (v_depth > 1.0) {discard;} #endif #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 #define LINE_DISTANCE_SCALE 2.0 in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;out vec2 v_tex_a;out vec2 v_tex_b; #ifdef GLOBE out float v_depth; #endif #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float gapwidth #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float width #pragma mapbox: define lowp float floorwidth #pragma mapbox: define mediump vec4 dasharray_from #pragma mapbox: define mediump vec4 dasharray_to void main() { #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float width #pragma mapbox: initialize lowp float floorwidth #pragma mapbox: initialize mediump vec4 dasharray_from #pragma mapbox: initialize mediump vec4 dasharray_to float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;float texel_height=1.0/u_image_height;float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude; #ifdef GLOBE v_depth=gl_Position.z/gl_Position.w; #endif #ifdef TERRAIN3D v_gamma_scale=1.0; #else float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; #endif float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),raster:je(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture(u_image0,v_pos0);vec4 color1=texture(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5; #ifdef GLOBE if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;} #endif v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`),symbolIcon:je(`uniform sampler2D u_texture;in vec2 v_tex;in float v_fade_opacity; #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize lowp float opacity lowp float alpha=opacity*v_fade_opacity;fragColor=texture(u_texture,v_tex)*alpha; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_tex;out float v_fade_opacity; #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize lowp float opacity vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? camera_to_anchor_distance/u_camera_to_center_distance : u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; #ifdef GLOBE if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} #endif vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:je(`#define SDF_PX 8.0 uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;in vec2 v_data0;in vec3 v_data1; #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur void main() { #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}fragColor=color*(alpha*opacity*fade_opacity); #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_data0;out vec3 v_data1; #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur void main() { #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy/16.0;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? camera_to_anchor_distance/u_camera_to_center_distance : u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; #ifdef GLOBE if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} #endif vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:je(`#define SDF_PX 8.0 #define SDF 1.0 #define ICON 0.0 uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;in vec4 v_data0;in vec4 v_data1; #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur void main() { #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;fragColor=texture(u_texture_icon,tex_icon)*alpha; #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity); #ifdef OVERDRAW_INSPECTOR fragColor=vec4(1.0); #endif }`,`in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out vec4 v_data1; #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur void main() { #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? camera_to_anchor_distance/u_camera_to_center_distance : u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0; #ifdef GLOBE if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);} #endif vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:je("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}","in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"),terrainDepth:je("in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}","in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}"),terrainCoords:je("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}","in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}"),projectionErrorMeasurement:je("in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}","in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}"),atmosphere:je(`#ifdef GL_ES precision highp float; #endif in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758 );color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,"in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}"),sky:je("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}","in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}")};function je(d,t){const n=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,s=t.match(/in ([\w]+) ([\w]+)/g),l=d.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),p=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),m=p?p.concat(l):l,g={};return{fragmentSource:d=d.replace(n,((x,w,T,I,M)=>(g[M]=!0,w==="define"?` #ifndef HAS_UNIFORM_u_${M} in ${T} ${I} ${M}; #else uniform ${T} ${I} u_${M}; #endif `:` #ifdef HAS_UNIFORM_u_${M} ${T} ${I} ${M} = u_${M}; #endif `))),vertexSource:t=t.replace(n,((x,w,T,I,M)=>{const z=I==="float"?"vec2":"vec4",L=M.match(/color/)?"color":z;return g[M]?w==="define"?` #ifndef HAS_UNIFORM_u_${M} uniform lowp float u_${M}_t; in ${T} ${z} a_${M}; out ${T} ${I} ${M}; #else uniform ${T} ${I} u_${M}; #endif `:L==="vec4"?` #ifndef HAS_UNIFORM_u_${M} ${M} = a_${M}; #else ${T} ${I} ${M} = u_${M}; #endif `:` #ifndef HAS_UNIFORM_u_${M} ${M} = unpack_mix_${L}(a_${M}, u_${M}_t); #else ${T} ${I} ${M} = u_${M}; #endif `:w==="define"?` #ifndef HAS_UNIFORM_u_${M} uniform lowp float u_${M}_t; in ${T} ${z} a_${M}; #else uniform ${T} ${I} u_${M}; #endif `:L==="vec4"?` #ifndef HAS_UNIFORM_u_${M} ${T} ${I} ${M} = a_${M}; #else ${T} ${I} ${M} = u_${M}; #endif `:` #ifndef HAS_UNIFORM_u_${M} ${T} ${I} ${M} = unpack_mix_${L}(a_${M}, u_${M}_t); #else ${T} ${I} ${M} = u_${M}; #endif `})),staticAttributes:s,staticUniforms:m}}class ca{constructor(t,n,s){this.vertexBuffer=t,this.indexBuffer=n,this.segments=s}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}}var Gt=c.aU([{name:"a_pos",type:"Int16",components:2}]);const Oi="#define PROJECTION_MERCATOR",Ai="mercator";class Os{constructor(){this._cachedMesh=null}get name(){return"mercator"}get useSubdivision(){return!1}get shaderVariantName(){return Ai}get shaderDefine(){return Oi}get shaderPreludeCode(){return yt.projectionMercator}get vertexShaderPreludeCode(){return yt.projectionMercator.vertexSource}get subdivisionGranularity(){return c.aV.noSubdivision}get useGlobeControls(){return!1}get transitionState(){return 0}get latitudeErrorCorrectionRadians(){return 0}destroy(){}updateGPUdependent(t){}getMeshFromTileID(t,n,s,l,p){if(this._cachedMesh)return this._cachedMesh;const m=new c.aW;m.emplaceBack(0,0),m.emplaceBack(c.a5,0),m.emplaceBack(0,c.a5),m.emplaceBack(c.a5,c.a5);const g=t.createVertexBuffer(m,Gt.members),x=c.aX.simpleSegment(0,0,4,2),w=new c.aY;w.emplaceBack(1,0,2),w.emplaceBack(1,2,3);const T=t.createIndexBuffer(w);return this._cachedMesh=new ca(g,T,x),this._cachedMesh}recalculate(){}hasTransition(){return!1}setErrorQueryLatitudeDegrees(t){}}class Rr{constructor(t=0,n=0,s=0,l=0){if(isNaN(t)||t<0||isNaN(n)||n<0||isNaN(s)||s<0||isNaN(l)||l<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=n,this.left=s,this.right=l}interpolate(t,n,s){return n.top!=null&&t.top!=null&&(this.top=c.G.number(t.top,n.top,s)),n.bottom!=null&&t.bottom!=null&&(this.bottom=c.G.number(t.bottom,n.bottom,s)),n.left!=null&&t.left!=null&&(this.left=c.G.number(t.left,n.left,s)),n.right!=null&&t.right!=null&&(this.right=c.G.number(t.right,n.right,s)),this}getCenter(t,n){const s=c.an((this.left+t-this.right)/2,0,t),l=c.an((this.top+n-this.bottom)/2,0,n);return new c.P(s,l)}equals(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right}clone(){return new Rr(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function Mt(d,t){if(!d.renderWorldCopies||d.lngRange)return;const n=t.lng-d.center.lng;t.lng+=n>180?-360:n<-180?360:0}function ua(d){return Math.max(0,Math.floor(d))}class Lr{constructor(t,n){var s;this.applyConstrain=(l,p)=>this._constrainOverride!==null?this._constrainOverride(l,p):this._callbacks.defaultConstrain(l,p),this._callbacks=t,this._tileSize=512,this._renderWorldCopies=n?.renderWorldCopies===void 0||!!n?.renderWorldCopies,this._minZoom=n?.minZoom||0,this._maxZoom=n?.maxZoom||22,this._minPitch=n?.minPitch==null?0:n?.minPitch,this._maxPitch=n?.maxPitch==null?60:n?.maxPitch,this._constrainOverride=(s=n?.constrainOverride)!==null&&s!==void 0?s:null,this.setMaxBounds(),this._width=0,this._height=0,this._center=new c.V(0,0),this._elevation=0,this._zoom=0,this._tileZoom=ua(this._zoom),this._scale=c.aq(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=!0,this._edgeInsets=new Rr,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=!0}apply(t,n,s){this._constrainOverride=t.constrainOverride,this._latRange=t.latRange,this._lngRange=t.lngRange,this._width=t.width,this._height=t.height,this._center=t.center,this._elevation=t.elevation,this._minElevationForCurrentTile=t.minElevationForCurrentTile,this._zoom=t.zoom,this._tileZoom=ua(this._zoom),this._scale=c.aq(this._zoom),this._bearingInRadians=t.bearingInRadians,this._fovInRadians=t.fovInRadians,this._pitchInRadians=t.pitchInRadians,this._rollInRadians=t.rollInRadians,this._unmodified=t.unmodified,this._edgeInsets=new Rr(t.padding.top,t.padding.bottom,t.padding.left,t.padding.right),this._minZoom=t.minZoom,this._maxZoom=t.maxZoom,this._minPitch=t.minPitch,this._maxPitch=t.maxPitch,this._renderWorldCopies=t.renderWorldCopies,this._cameraToCenterDistance=t.cameraToCenterDistance,this._nearZ=t.nearZ,this._farZ=t.farZ,this._autoCalculateNearFarZ=!s&&t.autoCalculateNearFarZ,n&&this.constrainInternal(),this._calcMatrices()}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(t){this._minElevationForCurrentTile=t}get tileSize(){return this._tileSize}get tileZoom(){return this._tileZoom}get scale(){return this._scale}get width(){return this._width}get height(){return this._height}get bearingInRadians(){return this._bearingInRadians}get lngRange(){return this._lngRange}get latRange(){return this._latRange}get pixelsToGLUnits(){return this._pixelsToGLUnits}get minZoom(){return this._minZoom}setMinZoom(t){this._minZoom!==t&&(this._minZoom=t,this.setZoom(this.applyConstrain(this._center,this.zoom).zoom))}get maxZoom(){return this._maxZoom}setMaxZoom(t){this._maxZoom!==t&&(this._maxZoom=t,this.setZoom(this.applyConstrain(this._center,this.zoom).zoom))}get minPitch(){return this._minPitch}setMinPitch(t){this._minPitch!==t&&(this._minPitch=t,this.setPitch(Math.max(this.pitch,t)))}get maxPitch(){return this._maxPitch}setMaxPitch(t){this._maxPitch!==t&&(this._maxPitch=t,this.setPitch(Math.min(this.pitch,t)))}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(t){t===void 0?t=!0:t===null&&(t=!1),this._renderWorldCopies=t}get constrainOverride(){return this._constrainOverride}setConstrainOverride(t){t===void 0&&(t=null),this._constrainOverride!==t&&(this._constrainOverride=t,this.constrainInternal(),this._calcMatrices())}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new c.P(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(t){const n=c.W(t,-180,180)*Math.PI/180;var s,l,p,m,g,x,w,T,I;this._bearingInRadians!==n&&(this._unmodified=!1,this._bearingInRadians=n,this._calcMatrices(),this._rotationMatrix=Jt(),s=this._rotationMatrix,p=-this._bearingInRadians,m=(l=this._rotationMatrix)[0],g=l[1],x=l[2],w=l[3],T=Math.sin(p),I=Math.cos(p),s[0]=m*I+x*T,s[1]=g*I+w*T,s[2]=m*-T+x*I,s[3]=g*-T+w*I)}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(t){const n=c.an(t,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==n&&(this._unmodified=!1,this._pitchInRadians=n,this._calcMatrices())}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(t){const n=t/180*Math.PI;this._rollInRadians!==n&&(this._unmodified=!1,this._rollInRadians=n,this._calcMatrices())}get fovInRadians(){return this._fovInRadians}get fov(){return c.aZ(this._fovInRadians)}setFov(t){t=c.an(t,.1,150),this.fov!==t&&(this._unmodified=!1,this._fovInRadians=c.ap(t),this._calcMatrices())}get zoom(){return this._zoom}setZoom(t){const n=this.applyConstrain(this._center,t).zoom;this._zoom!==n&&(this._unmodified=!1,this._zoom=n,this._tileZoom=Math.max(0,Math.floor(n)),this._scale=c.aq(n),this.constrainInternal(),this._calcMatrices())}get center(){return this._center}setCenter(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this.constrainInternal(),this._calcMatrices())}get elevation(){return this._elevation}setElevation(t){t!==this._elevation&&(this._elevation=t,this.constrainInternal(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}setPadding(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this._width,this._height)}get pixelsPerMeter(){return this._pixelPerMeter}get unmodified(){return this._unmodified}get cameraToCenterDistance(){return this._cameraToCenterDistance}get nearZ(){return this._nearZ}get farZ(){return this._farZ}get autoCalculateNearFarZ(){return this._autoCalculateNearFarZ}overrideNearFarZ(t,n){this._autoCalculateNearFarZ=!1,this._nearZ=t,this._farZ=n,this._calcMatrices()}clearNearFarZOverride(){this._autoCalculateNearFarZ=!0,this._calcMatrices()}isPaddingEqual(t){return this._edgeInsets.equals(t)}interpolatePadding(t,n,s){this._unmodified=!1,this._edgeInsets.interpolate(t,n,s),this.constrainInternal(),this._calcMatrices()}resize(t,n,s=!0){this._width=t,this._height=n,s&&this.constrainInternal(),this._calcMatrices()}getMaxBounds(){return this._latRange&&this._latRange.length===2&&this._lngRange&&this._lngRange.length===2?new vt([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]]):null}setMaxBounds(t){t?(this._lngRange=[t.getWest(),t.getEast()],this._latRange=[t.getSouth(),t.getNorth()],this.constrainInternal()):(this._lngRange=null,this._latRange=[-c.ao,c.ao])}getCameraQueryGeometry(t,n){if(n.length===1)return[n[0],t];{const{minX:s,minY:l,maxX:p,maxY:m}=c.aa.fromPoints(n).extend(t);return[new c.P(s,l),new c.P(p,l),new c.P(p,m),new c.P(s,m),new c.P(s,l)]}}constrainInternal(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=!0;const t=this._unmodified,{center:n,zoom:s}=this.applyConstrain(this.center,this.zoom);this.setCenter(n),this.setZoom(s),this._unmodified=t,this._constraining=!1}_calcMatrices(){if(this._width&&this._height){this._pixelsToGLUnits=[2/this._width,-2/this._height];let t=c.ar(new Float64Array(16));c.Q(t,t,[this._width/2,-this._height/2,1]),c.O(t,t,[1,-1,0]),this._clipSpaceToPixelsMatrix=t,t=c.ar(new Float64Array(16)),c.Q(t,t,[1,-1,1]),c.O(t,t,[-1,-1,0]),c.Q(t,t,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=t,this._cameraToCenterDistance=.5/Math.tan(this.fovInRadians/2)*this._height}this._callbacks.calcMatrices()}calculateCenterFromCameraLngLatAlt(t,n,s,l){const p=s!==void 0?s:this.bearing,m=l=l!==void 0?l:this.pitch,{distanceToCenter:g,clampedElevation:x}=this._distanceToCenterFromAltElevationPitch(n,this.elevation,m),{x:w,y:T}=Ze(m,p),I=c.a9.fromLngLat(t,n);let M,z,L=c.a_(1,I.y),j=0;do{if(j+=1,j>10)break;z=g/L,M=new c.a9(I.x+w*z,I.y+T*z),L=1/M.meterInMercatorCoordinateUnits()}while(Math.abs(g-z*L)>1e-12);return{center:M.toLngLat(),elevation:x,zoom:c.at(this.height/2/Math.tan(this.fovInRadians/2)/z/this.tileSize)}}recalculateZoomAndCenter(t){if(this.elevation-t==0)return;const n=1/this.worldSize,s=c.as(1,this.center.lat)*this.worldSize,l=c.a9.fromLngLat(this.center,this.elevation),p=l.x/n,m=l.y/n,g=l.z/n,x=this.pitch,w=this.bearing,{x:T,y:I,z:M}=Ze(x,w),z=this.cameraToCenterDistance,L=p+z*-T,j=m+z*-I,U=g+z*M,{distanceToCenter:N,clampedElevation:Z}=this._distanceToCenterFromAltElevationPitch(U/s,t,x),X=N*s,q=new c.a9((L+T*X)*n,(j+I*X)*n,0).toLngLat(),Y=c.as(1,q.lat),Q=c.at(this.height/2/Math.tan(this.fovInRadians/2)/N/Y/this.tileSize);this._elevation=Z,this._center=q,this.setZoom(Q)}_distanceToCenterFromAltElevationPitch(t,n,s){const l=-Math.cos(c.ap(s)),p=t-n;let m,g=n;return l*p>=0||Math.abs(l)<.1?(m=1e4,g=t+m*l):m=-p/l,{distanceToCenter:m,clampedElevation:g}}getCameraPoint(){const t=Math.tan(this.pitchInRadians)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new c.P(t*Math.sin(this.rollInRadians),t*Math.cos(this.rollInRadians)))}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this._cameraToCenterDistance/this._pixelPerMeter+this.elevation}getCameraLngLat(){const t=c.as(1,this.center.lat)*this.worldSize;return Oe(this.center,this.elevation,this.pitch,this.bearing,this.cameraToCenterDistance/t).toLngLat()}getMercatorTileCoordinates(t){if(!t)return[0,0,1,1];const n=t.canonical.z>=0?1<this.max[0]||t.aabb.min[1]>this.max[1]||t.aabb.min[2]>this.max[2]||t.aabb.max[0]0?(n+=t[l]*this.min[l],s+=t[l]*this.max[l]):(s+=t[l]*this.min[l],n+=t[l]*this.max[l]);return n>=0?2:s<0?0:1}}class cr{distanceToTile2d(t,n,s,l){const p=l.distanceX([t,n]),m=l.distanceY([t,n]);return Math.hypot(p,m)}getWrap(t,n,s){return s}getTileBoundingVolume(t,n,s,l){var p,m;let g=0,x=0;if(l?.terrain){const T=new c.a2(t.z,n,t.z,t.x,t.y),I=l.terrain.getMinMaxElevation(T);g=(p=I.minElevation)!==null&&p!==void 0?p:Math.min(0,s),x=(m=I.maxElevation)!==null&&m!==void 0?m:Math.max(0,s)}const w=1<l}allowWorldCopies(){return!0}prepareNextFrame(){}}class Ga{constructor(t,n,s){this.points=t,this.planes=n,this.aabb=s}static fromInvProjectionMatrix(t,n=1,s=0,l,p){const m=p?[[6,5,4],[0,1,2],[0,3,7],[2,1,5],[3,2,6],[0,4,5]]:[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]],g=Math.pow(2,s),x=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((M=>(function(z,L,j,U){const N=c.aH([],z,L),Z=1/N[3]/j*U;return c.b6(N,N,[Z,Z,1/N[3],Z])})(M,t,n,g)));l&&(function(M,z,L,j){const U=j?4:0,N=j?0:4;let Z=0;const X=[],q=[];for(let W=0;W<4;W++){const te=c.b2([],M[W+N],M[W+U]),de=c.b7(te);c.a$(te,te,1/de),X.push(de),q.push(te)}for(let W=0;W<4;W++){const te=c.b8(M[W+U],q[W],L);Z=te!==null&&te>=0?Math.max(Z,te):Math.max(Z,X[W])}const Y=(function(W,te){const de=c.b2([],W[te[0]],W[te[1]]),ue=c.b2([],W[te[2]],W[te[1]]),le=[0,0,0,0];return c.b3(le,c.b4([],de,ue)),le[3]=-c.b5(le,W[te[0]]),le})(M,z),Q=(function(W,te){const de=c.b9(W),ue=c.ba([],W,1/de),le=c.b2([],te,c.a$([],ue,c.b5(te,ue))),he=c.b9(le);if(he>0){const Me=Math.sqrt(1-ue[3]*ue[3]),Ie=c.a$([],ue,-ue[3]),_e=c.b0([],Ie,c.a$([],le,Me/he));return c.bb(te,_e)}return null})(L,Y);if(Q!==null){const W=Q/c.b5(q[0],Y);Z=Math.min(Z,W)}for(let W=0;W<4;W++){const te=Math.min(Z,X[W]);M[W+N]=[M[W+U][0]+q[W][0]*te,M[W+U][1]+q[W][1]*te,M[W+U][2]+q[W][2]*te,1]}})(x,m[0],l,p);const w=m.map((M=>{const z=c.b2([],x[M[0]],x[M[1]]),L=c.b2([],x[M[2]],x[M[1]]),j=c.b3([],c.b4([],z,L)),U=-c.b5(j,x[M[1]]);return j.concat(U)})),T=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY],I=[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];for(const M of x)for(let z=0;z<3;z++)T[z]=Math.min(T[z],M[z]),I[z]=Math.max(I[z],M[z]);return new Ga(x,w,new Dn(T,I))}}class Vi{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(t){this._helper.setMinZoom(t)}setMaxZoom(t){this._helper.setMaxZoom(t)}setMinPitch(t){this._helper.setMinPitch(t)}setMaxPitch(t){this._helper.setMaxPitch(t)}setRenderWorldCopies(t){this._helper.setRenderWorldCopies(t)}setBearing(t){this._helper.setBearing(t)}setPitch(t){this._helper.setPitch(t)}setRoll(t){this._helper.setRoll(t)}setFov(t){this._helper.setFov(t)}setZoom(t){this._helper.setZoom(t)}setCenter(t){this._helper.setCenter(t)}setElevation(t){this._helper.setElevation(t)}setMinElevationForCurrentTile(t){this._helper.setMinElevationForCurrentTile(t)}setPadding(t){this._helper.setPadding(t)}interpolatePadding(t,n,s){return this._helper.interpolatePadding(t,n,s)}isPaddingEqual(t){return this._helper.isPaddingEqual(t)}resize(t,n,s=!0){this._helper.resize(t,n,s)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(t){this._helper.setMaxBounds(t)}setConstrainOverride(t){this._helper.setConstrainOverride(t)}overrideNearFarZ(t,n){this._helper.overrideNearFarZ(t,n)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(t){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),t)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(t,n){}constructor(t){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this.defaultConstrain=(n,s)=>{s=c.an(+s,this.minZoom,this.maxZoom);const l={center:new c.V(n.lng,n.lat),zoom:s};let p=this._helper._lngRange;if(!this._helper._renderWorldCopies&&p===null){const q=179.9999999999;p=[-q,q]}const m=this.tileSize*c.aq(l.zoom);let g=0,x=m,w=0,T=m,I=0,M=0;const{x:z,y:L}=this.size;if(this._helper._latRange){const q=this._helper._latRange;g=c.X(q[1])*m,x=c.X(q[0])*m,x-gx&&(Z=x-q)}if(p){const q=(w+T)/2;let Y=j;this._helper._renderWorldCopies&&(Y=c.W(j,q-m/2,q+m/2));const Q=z/2;Y-QT&&(N=T-Q)}if(N!==void 0||Z!==void 0){const q=new c.P(N??j,Z??U);l.center=be(m,q).wrap()}return l},this.applyConstrain=(n,s)=>this._helper.applyConstrain(n,s),this._helper=new Lr({calcMatrices:()=>{this._calcMatrices()},defaultConstrain:(n,s)=>this.defaultConstrain(n,s)},t),this._coveringTilesDetailsProvider=new cr}clone(){const t=new Vi;return t.apply(this,!1),t}apply(t,n,s){this._helper.apply(t,n,s)}get cameraPosition(){return this._cameraPosition}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._viewProjMatrix}get inverseProjectionMatrix(){return this._invProjMatrix}get mercatorMatrix(){return this._mercatorMatrix}getVisibleUnwrappedCoordinates(t){const n=[new c.bc(0,t)];if(this._helper._renderWorldCopies){const s=this.screenPointToMercatorCoordinate(new c.P(0,0)),l=this.screenPointToMercatorCoordinate(new c.P(this._helper._width,0)),p=this.screenPointToMercatorCoordinate(new c.P(this._helper._width,this._helper._height)),m=this.screenPointToMercatorCoordinate(new c.P(0,this._helper._height)),g=Math.floor(Math.min(s.x,l.x,p.x,m.x)),x=Math.floor(Math.max(s.x,l.x,p.x,m.x)),w=1;for(let T=g-w;T<=x+w;T++)T!==0&&n.push(new c.bc(T,t))}return n}getCameraFrustum(){return Ga.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(t){const n=this.screenPointToLocation(this.centerPoint,t),s=t?t.getElevationForLngLatZoom(n,this._helper._tileZoom):0;this._helper.recalculateZoomAndCenter(s)}setLocationAtPoint(t,n){const s=c.as(this.elevation,this.center.lat),l=this.screenPointToMercatorCoordinateAtZ(n,s),p=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,s),m=c.a9.fromLngLat(t),g=new c.a9(m.x-(l.x-p.x),m.y-(l.y-p.y));this.setCenter(g?.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap())}locationToScreenPoint(t,n){return n?this.coordinatePoint(c.a9.fromLngLat(t),n.getElevationForLngLat(t,this),this._pixelMatrix3D):this.coordinatePoint(c.a9.fromLngLat(t))}screenPointToLocation(t,n){var s;return(s=this.screenPointToMercatorCoordinate(t,n))===null||s===void 0?void 0:s.toLngLat()}screenPointToMercatorCoordinate(t,n){if(n){const s=n.pointCoordinate(t);if(s!=null)return s}return this.screenPointToMercatorCoordinateAtZ(t)}screenPointToMercatorCoordinateAtZ(t,n){const s=n||0,l=[t.x,t.y,0,1],p=[t.x,t.y,1,1];c.aH(l,l,this._pixelMatrixInverse),c.aH(p,p,this._pixelMatrixInverse);const m=l[3],g=p[3],x=l[1]/m,w=p[1]/g,T=l[2]/m,I=p[2]/g,M=T===I?0:(s-T)/(I-T);return new c.a9(c.G.number(l[0]/m,p[0]/g,M)/this.worldSize,c.G.number(x,w,M)/this.worldSize,s)}coordinatePoint(t,n=0,s=this._pixelMatrix){const l=[t.x*this.worldSize,t.y*this.worldSize,n,1];return c.aH(l,l,s),new c.P(l[0]/l[3],l[1]/l[3])}getBounds(){const t=Math.max(0,this._helper._height/2-me(this));return new vt().extend(this.screenPointToLocation(new c.P(0,t))).extend(this.screenPointToLocation(new c.P(this._helper._width,t))).extend(this.screenPointToLocation(new c.P(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new c.P(0,this._helper._height)))}isPointOnMapSurface(t,n){return n?n.pointCoordinate(t)!=null:t.y>this.height/2-me(this)}calculatePosMatrix(t,n=!1,s){var l;const p=(l=t.key)!==null&&l!==void 0?l:c.bd(t.wrap,t.canonical.z,t.canonical.z,t.canonical.x,t.canonical.y),m=n?this._alignedPosMatrixCache:this._posMatrixCache;if(m.has(p)){const w=m.get(p);return s?w.f32:w.f64}const g=K(t,this.worldSize);c.S(g,n?this._alignedProjMatrix:this._viewProjMatrix,g);const x={f64:g,f32:new Float32Array(g)};return m.set(p,x),s?x.f32:x.f64}calculateFogMatrix(t){const n=t.key,s=this._fogMatrixCacheF32;if(s.has(n))return s.get(n);const l=K(t,this.worldSize);return c.S(l,this._fogMatrix,l),s.set(n,new Float32Array(l)),s.get(n)}calculateCenterFromCameraLngLatAlt(t,n,s,l){return this._helper.calculateCenterFromCameraLngLatAlt(t,n,s,l)}_calculateNearFarZIfNeeded(t,n,s){if(!this._helper.autoCalculateNearFarZ)return;const l=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),p=t-l*this._helper._pixelPerMeter/Math.cos(n),m=l<0?p:t,g=Math.PI/2+this.pitchInRadians,x=c.ap(this.fov)*(Math.abs(Math.cos(c.ap(this.roll)))*this.height+Math.abs(Math.sin(c.ap(this.roll)))*this.width)/this.height*(.5+s.y/this.height),w=Math.sin(x)*m/Math.sin(c.an(Math.PI-g-x,.01,Math.PI-.01)),T=me(this),I=Math.atan(T/this._helper.cameraToCenterDistance),M=c.ap(.75),z=I>M?2*I*(.5+s.y/(2*T)):M,L=Math.sin(z)*m/Math.sin(c.an(Math.PI-g-z,.01,Math.PI-.01)),j=Math.min(w,L);this._helper._farZ=1.01*(Math.cos(Math.PI/2-n)*j+m),this._helper._nearZ=this._helper._height/50}_calcMatrices(){if(!this._helper._height)return;const t=this.centerOffset,n=ne(this.worldSize,this.center),s=n.x,l=n.y;this._helper._pixelPerMeter=c.as(1,this.center.lat)*this.worldSize;const p=c.ap(Math.min(this.pitch,re)),m=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(p));let g;this._calculateNearFarZIfNeeded(m,p,t),g=new Float64Array(16),c.be(g,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),c.aB(this._invProjMatrix,g),g[8]=2*-t.x/this._helper._width,g[9]=2*t.y/this._helper._height,this._projectionMatrix=c.bf(g),c.Q(g,g,[1,-1,1]),c.O(g,g,[0,0,-this._helper.cameraToCenterDistance]),c.bg(g,g,-this.rollInRadians),c.bh(g,g,this.pitchInRadians),c.bg(g,g,-this.bearingInRadians),c.O(g,g,[-s,-l,0]),this._mercatorMatrix=c.Q([],g,[this.worldSize,this.worldSize,this.worldSize]),c.Q(g,g,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=c.S(new Float64Array(16),this.clipSpaceToPixelsMatrix,g),c.O(g,g,[0,0,-this.elevation]),this._viewProjMatrix=g,this._invViewProjMatrix=c.aB([],g);const x=[0,0,-1,1];c.aH(x,x,this._invViewProjMatrix),this._cameraPosition=[x[0]/x[3],x[1]/x[3],x[2]/x[3]],this._fogMatrix=new Float64Array(16),c.be(this._fogMatrix,this.fovInRadians,this.width/this.height,m,this._helper._farZ),this._fogMatrix[8]=2*-t.x/this.width,this._fogMatrix[9]=2*t.y/this.height,c.Q(this._fogMatrix,this._fogMatrix,[1,-1,1]),c.O(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),c.bg(this._fogMatrix,this._fogMatrix,-this.rollInRadians),c.bh(this._fogMatrix,this._fogMatrix,this.pitchInRadians),c.bg(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),c.O(this._fogMatrix,this._fogMatrix,[-s,-l,0]),c.Q(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),c.O(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=c.S(new Float64Array(16),this.clipSpaceToPixelsMatrix,g);const w=this._helper._width%2/2,T=this._helper._height%2/2,I=Math.cos(this.bearingInRadians),M=Math.sin(-this.bearingInRadians),z=s-Math.round(s)+I*w+M*T,L=l-Math.round(l)+I*T+M*w,j=new Float64Array(g);if(c.O(j,j,[z>.5?z-1:z,L>.5?L-1:L,0]),this._alignedProjMatrix=j,g=c.aB(new Float64Array(16),this._pixelMatrix),!g)throw new Error("failed to invert matrix");this._pixelMatrixInverse=g,this._clearMatrixCaches()}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear()}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;const t=this.screenPointToMercatorCoordinate(new c.P(0,0)),n=[t.x*this.worldSize,t.y*this.worldSize,0,1];return c.aH(n,n,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){const t=c.as(1,this.center.lat)*this.worldSize;return Oe(this.center,this.elevation,this.pitch,this.bearing,this._helper.cameraToCenterDistance/t).toLngLat()}lngLatToCameraDepth(t,n){const s=c.a9.fromLngLat(t),l=[s.x*this.worldSize,s.y*this.worldSize,n,1];return c.aH(l,l,this._viewProjMatrix),l[2]/l[3]}getProjectionData(t){const{overscaledTileID:n,aligned:s,applyTerrainMatrix:l}=t,p=this._helper.getMercatorTileCoordinates(n),m=n?this.calculatePosMatrix(n,s,!0):null;let g;return g=n&&n.terrainRttPosMatrix32f&&l?n.terrainRttPosMatrix32f:m||c.bi(),{mainMatrix:g,tileMercatorCoords:p,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:g}}isLocationOccluded(t){return!1}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(t,n,s){return 1}transformLightDirection(t){return c.b1(t)}getRayDirectionFromPixel(t){throw new Error("Not implemented.")}projectTileCoordinates(t,n,s,l){const p=this.calculatePosMatrix(s);let m;l?(m=[t,n,l(t,n),1],c.aH(m,m,p)):(m=[t,n,0,1],cn(m,m,p));const g=m[3];return{point:new c.P(m[0]/g,m[1]/g),signedDistanceFromCamera:g,isOccluded:!1}}populateCache(t){for(const n of t)this.calculatePosMatrix(n)}getMatrixForModel(t,n){const s=c.a9.fromLngLat(t,n),l=s.meterInMercatorCoordinateUnits(),p=c.bj();return c.O(p,p,[s.x,s.y,s.z]),c.bg(p,p,Math.PI),c.bh(p,p,Math.PI/2),c.Q(p,p,[-l,l,l]),p}getProjectionDataForCustomLayer(t=!0){const n=new c.a2(0,0,0,0,0),s=this.getProjectionData({overscaledTileID:n,applyGlobeMatrix:t}),l=K(n,this.worldSize);c.S(l,this._viewProjMatrix,l),s.tileMercatorCoords=[0,0,1,1];const p=[c.a5,c.a5,this.worldSize/this._helper.pixelsPerMeter],m=c.bk();return c.Q(m,l,p),s.fallbackMatrix=m,s.mainMatrix=m,s}getFastPathSimpleProjectionMatrix(t){return this.calculatePosMatrix(t)}}function nc(){c.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.")}function Zo(d){if(d.useSlerp)if(d.k<1){const t=c.bl(d.startEulerAngles.roll,d.startEulerAngles.pitch,d.startEulerAngles.bearing),n=c.bl(d.endEulerAngles.roll,d.endEulerAngles.pitch,d.endEulerAngles.bearing),s=new Float64Array(4);c.bm(s,t,n,d.k);const l=c.bn(s);d.tr.setRoll(l.roll),d.tr.setPitch(l.pitch),d.tr.setBearing(l.bearing)}else d.tr.setRoll(d.endEulerAngles.roll),d.tr.setPitch(d.endEulerAngles.pitch),d.tr.setBearing(d.endEulerAngles.bearing);else d.tr.setRoll(c.G.number(d.startEulerAngles.roll,d.endEulerAngles.roll,d.k)),d.tr.setPitch(c.G.number(d.startEulerAngles.pitch,d.endEulerAngles.pitch,d.k)),d.tr.setBearing(c.G.number(d.startEulerAngles.bearing,d.endEulerAngles.bearing,d.k))}function qa(d,t,n,s,l){const p=l.padding,m=ne(l.worldSize,n.getNorthWest()),g=ne(l.worldSize,n.getNorthEast()),x=ne(l.worldSize,n.getSouthEast()),w=ne(l.worldSize,n.getSouthWest()),T=c.ap(-s),I=m.rotate(T),M=g.rotate(T),z=x.rotate(T),L=w.rotate(T),j=new c.P(Math.max(I.x,M.x,L.x,z.x),Math.max(I.y,M.y,L.y,z.y)),U=new c.P(Math.min(I.x,M.x,L.x,z.x),Math.min(I.y,M.y,L.y,z.y)),N=j.sub(U),Z=(l.width-(p.left+p.right+t.left+t.right))/N.x,X=(l.height-(p.top+p.bottom+t.top+t.bottom))/N.y;if(X<0||Z<0)return void nc();const q=Math.min(c.at(l.scale*Math.min(Z,X)),d.maxZoom),Y=c.P.convert(d.offset),Q=new c.P((t.left-t.right)/2,(t.top-t.bottom)/2).rotate(c.ap(s)),W=Y.add(Q).mult(l.scale/c.aq(q));return{center:be(l.worldSize,m.add(x).div(2).sub(W)),zoom:q,bearing:s}}class kn{get useGlobeControls(){return!1}handlePanInertia(t,n){const s=t.mag(),l=Math.abs(me(n));return{easingOffset:t.mult(Math.min(.75*l/s,1)),easingCenter:n.center}}handleMapControlsRollPitchBearingZoom(t,n){t.bearingDelta&&n.setBearing(n.bearing+t.bearingDelta),t.pitchDelta&&n.setPitch(n.pitch+t.pitchDelta),t.rollDelta&&n.setRoll(n.roll+t.rollDelta),t.zoomDelta&&n.setZoom(n.zoom+t.zoomDelta)}handleMapControlsPan(t,n,s){t.around.distSqr(n.centerPoint)<.01||n.setLocationAtPoint(s,t.around)}cameraForBoxAndBearing(t,n,s,l,p){return qa(t,n,s,l,p)}handleJumpToCenterZoom(t,n){t.zoom!==(n.zoom!==void 0?+n.zoom:t.zoom)&&t.setZoom(+n.zoom),n.center!==void 0&&t.setCenter(c.V.convert(n.center))}handleEaseTo(t,n){const s=t.zoom,l=t.padding,p={roll:t.roll,pitch:t.pitch,bearing:t.bearing},m={roll:n.roll===void 0?t.roll:n.roll,pitch:n.pitch===void 0?t.pitch:n.pitch,bearing:n.bearing===void 0?t.bearing:n.bearing},g=n.zoom!==void 0,x=!t.isPaddingEqual(n.padding);let w=!1;const T=g?+n.zoom:t.zoom;let I=t.centerPoint.add(n.offsetAsPoint);const M=t.screenPointToLocation(I),{center:z,zoom:L}=t.applyConstrain(c.V.convert(n.center||M),T??s);Mt(t,z);const j=ne(t.worldSize,M),U=ne(t.worldSize,z).sub(j),N=c.aq(L-s);return w=L!==s,{easeFunc:Z=>{if(w&&t.setZoom(c.G.number(s,L,Z)),c.bo(p,m)||Zo({startEulerAngles:p,endEulerAngles:m,tr:t,k:Z,useSlerp:p.roll!=m.roll}),x&&(t.interpolatePadding(l,n.padding,Z),I=t.centerPoint.add(n.offsetAsPoint)),n.around)t.setLocationAtPoint(n.around,n.aroundPoint);else{const X=c.aq(t.zoom-s),q=L>s?Math.min(2,N):Math.max(.5,N),Y=Math.pow(q,1-Z),Q=be(t.worldSize,j.add(U.mult(Z*Y)).mult(X));t.setLocationAtPoint(t.renderWorldCopies?Q.wrap():Q,I)}},isZooming:w,elevationCenter:z}}handleFlyTo(t,n){const s=n.zoom!==void 0,l=t.zoom,p=t.applyConstrain(c.V.convert(n.center||n.locationAtOffset),s?+n.zoom:l),m=p.center,g=p.zoom;Mt(t,m);const x=ne(t.worldSize,n.locationAtOffset),w=ne(t.worldSize,m).sub(x),T=w.mag(),I=c.aq(g-l);let M;if(n.minZoom!==void 0){const z=Math.min(+n.minZoom,l,g),L=t.applyConstrain(m,z).zoom;M=c.aq(L-l)}return{easeFunc:(z,L,j,U)=>{t.setZoom(z===1?g:l+c.at(L));const N=z===1?m:be(t.worldSize,x.add(w.mult(j)).mult(L));t.setLocationAtPoint(t.renderWorldCopies?N.wrap():N,U)},scaleOfZoom:I,targetCenter:m,scaleOfMinZoom:M,pixelPathLength:T}}}class dt{constructor(t,n,s){this.blendFunction=t,this.blendColor=n,this.mask=s}}dt.Replace=[1,0],dt.disabled=new dt(dt.Replace,c.bp.transparent,[!1,!1,!1,!1]),dt.unblended=new dt(dt.Replace,c.bp.transparent,[!0,!0,!0,!0]),dt.alphaBlended=new dt([1,771],c.bp.transparent,[!0,!0,!0,!0]);const Za=2305;class tt{constructor(t,n,s){this.enable=t,this.mode=n,this.frontFace=s}}tt.disabled=new tt(!1,1029,Za),tt.backCCW=new tt(!0,1029,Za),tt.frontCCW=new tt(!0,1028,Za);class Xe{constructor(t,n,s){this.func=t,this.mask=n,this.range=s}}Xe.ReadOnly=!1,Xe.ReadWrite=!0,Xe.disabled=new Xe(519,Xe.ReadOnly,[0,1]);const $a=7680;class rt{constructor(t,n,s,l,p,m){this.test=t,this.ref=n,this.mask=s,this.fail=l,this.depthFail=p,this.pass=m}}rt.disabled=new rt({func:519,mask:0},0,0,$a,$a,$a);const ha=new WeakMap;function Qi(d){var t;if(ha.has(d))return ha.get(d);{const n=(t=d.getParameter(d.VERSION))===null||t===void 0?void 0:t.startsWith("WebGL 2.0");return ha.set(d,n),n}}class Rn{get awaitingQuery(){return!!this._readbackQueue}constructor(t){this._readbackWaitFrames=4,this._measureWaitFrames=6,this._texWidth=1,this._texHeight=1,this._measuredError=0,this._updateCount=0,this._lastReadbackFrame=-1e3,this._readbackQueue=null,this._cachedRenderContext=t;const n=t.context,s=n.gl;this._texFormat=s.RGBA,this._texType=s.UNSIGNED_BYTE;const l=new c.aW;l.emplaceBack(-1,-1),l.emplaceBack(2,-1),l.emplaceBack(-1,2);const p=new c.aY;p.emplaceBack(0,1,2),this._fullscreenTriangle=new ca(n.createVertexBuffer(l,Gt.members),n.createIndexBuffer(p),c.aX.simpleSegment(0,0,l.length,p.length)),this._resultBuffer=new Uint8Array(4),n.activeTexture.set(s.TEXTURE1);const m=s.createTexture();s.bindTexture(s.TEXTURE_2D,m),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.NEAREST),s.texImage2D(s.TEXTURE_2D,0,this._texFormat,this._texWidth,this._texHeight,0,this._texFormat,this._texType,null),this._fbo=n.createFramebuffer(this._texWidth,this._texHeight,!1,!1),this._fbo.colorAttachment.set(m),Qi(s)&&(this._pbo=s.createBuffer(),s.bindBuffer(s.PIXEL_PACK_BUFFER,this._pbo),s.bufferData(s.PIXEL_PACK_BUFFER,4,s.STREAM_READ),s.bindBuffer(s.PIXEL_PACK_BUFFER,null))}destroy(){const t=this._cachedRenderContext.context.gl;this._fullscreenTriangle.destroy(),this._fbo.destroy(),t.deleteBuffer(this._pbo),this._fullscreenTriangle=null,this._fbo=null,this._pbo=null,this._resultBuffer=null}updateErrorLoop(t,n){const s=this._updateCount;return this._readbackQueue?s>=this._readbackQueue.frameNumberIssued+this._readbackWaitFrames&&this._tryReadback():s>=this._lastReadbackFrame+this._measureWaitFrames&&this._renderErrorTexture(t,n),this._updateCount++,this._measuredError}_bindFramebuffer(){const t=this._cachedRenderContext.context,n=t.gl;t.activeTexture.set(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this._fbo.colorAttachment.get()),t.bindFramebuffer.set(this._fbo.framebuffer)}_renderErrorTexture(t,n){const s=this._cachedRenderContext.context,l=s.gl;if(this._bindFramebuffer(),s.viewport.set([0,0,this._texWidth,this._texHeight]),s.clear({color:c.bp.transparent}),this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(s,l.TRIANGLES,Xe.disabled,rt.disabled,dt.unblended,tt.disabled,((p,m)=>({u_input:p,u_output_expected:m}))(t,n),null,null,"$clipping",this._fullscreenTriangle.vertexBuffer,this._fullscreenTriangle.indexBuffer,this._fullscreenTriangle.segments),this._pbo&&Qi(l)){l.bindBuffer(l.PIXEL_PACK_BUFFER,this._pbo),l.readBuffer(l.COLOR_ATTACHMENT0),l.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,0),l.bindBuffer(l.PIXEL_PACK_BUFFER,null);const p=l.fenceSync(l.SYNC_GPU_COMMANDS_COMPLETE,0);l.flush(),this._readbackQueue={frameNumberIssued:this._updateCount,sync:p}}else this._readbackQueue={frameNumberIssued:this._updateCount,sync:null}}_tryReadback(){const t=this._cachedRenderContext.context.gl;if(this._pbo&&this._readbackQueue&&Qi(t)){const n=t.clientWaitSync(this._readbackQueue.sync,0,0);if(n===t.WAIT_FAILED)return c.w("WebGL2 clientWaitSync failed."),this._readbackQueue=null,void(this._lastReadbackFrame=this._updateCount);if(n===t.TIMEOUT_EXPIRED)return;t.bindBuffer(t.PIXEL_PACK_BUFFER,this._pbo),t.getBufferSubData(t.PIXEL_PACK_BUFFER,0,this._resultBuffer,0,4),t.bindBuffer(t.PIXEL_PACK_BUFFER,null)}else this._bindFramebuffer(),t.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,this._resultBuffer);this._readbackQueue=null,this._measuredError=Rn._parseRGBA8float(this._resultBuffer),this._lastReadbackFrame=this._updateCount}static _parseRGBA8float(t){let n=0;return n+=t[0]/256,n+=t[1]/65536,n+=t[2]/16777216,t[3]<127&&(n=-n),n/128}}const Vs=c.a5/128;function js(d,t){const n=d.granularity!==void 0?Math.max(d.granularity,1):1,s=n+(d.generateBorders?2:0),l=n+(d.extendToNorthPole||d.generateBorders?1:0)+(d.extendToSouthPole||d.generateBorders?1:0),p=s+1,m=l+1,g=d.generateBorders?-1:0,x=d.generateBorders||d.extendToNorthPole?-1:0,w=n+(d.generateBorders?1:0),T=n+(d.generateBorders||d.extendToSouthPole?1:0),I=p*m,M=s*l*6,z=p*m>65536;if(z&&t==="16bit")throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices.");const L=z||t==="32bit",j=new Int16Array(2*I);let U=0;for(let X=x;X<=T;X++)for(let q=g;q<=w;q++){let Y=q/n*c.a5;q===-1&&(Y=-Vs),q===n+1&&(Y=c.a5+Vs);let Q=X/n*c.a5;X===-1&&(Q=d.extendToNorthPole?c.br:-Vs),X===n+1&&(Q=d.extendToSouthPole?c.bs:c.a5+Vs),j[U++]=Y,j[U++]=Q}const N=L?new Uint32Array(M):new Uint16Array(M);let Z=0;for(let X=0;X0}get latitudeErrorCorrectionRadians(){return this._verticalPerspectiveProjection.latitudeErrorCorrectionRadians}get currentProjection(){return this.useGlobeRendering?this._verticalPerspectiveProjection:this._mercatorProjection}get name(){return"globe"}get useSubdivision(){return this.currentProjection.useSubdivision}get shaderVariantName(){return this.currentProjection.shaderVariantName}get shaderDefine(){return this.currentProjection.shaderDefine}get shaderPreludeCode(){return this.currentProjection.shaderPreludeCode}get vertexShaderPreludeCode(){return this.currentProjection.vertexShaderPreludeCode}get subdivisionGranularity(){return this.currentProjection.subdivisionGranularity}get useGlobeControls(){return this.transitionState>0}destroy(){this._mercatorProjection.destroy(),this._verticalPerspectiveProjection.destroy()}updateGPUdependent(t){this._mercatorProjection.updateGPUdependent(t),this._verticalPerspectiveProjection.updateGPUdependent(t)}getMeshFromTileID(t,n,s,l,p){return this.currentProjection.getMeshFromTileID(t,n,s,l,p)}setProjection(t){this._transitionable.setValue("type",t?.type||"mercator")}updateTransitions(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(t){this.properties=this._transitioning.possiblyEvaluate(t)}setErrorQueryLatitudeDegrees(t){this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(t),this._mercatorProjection.setErrorQueryLatitudeDegrees(t)}}function Us(d){const t=Wa(d.worldSize,d.center.lat);return 2*Math.PI*t}function ai(d,t,n,s,l){const p=1/(1<1e-6){const s=d[0]/n,l=Math.acos(d[2]/n),p=(s>0?l:-l)/Math.PI*180;return new c.V(c.W(p,-180,180),t)}return new c.V(0,t)}function Fr(d){return Math.cos(d*Math.PI/180)}function Qt(d,t){const n=Fr(d),s=Fr(t);return c.at(s/n)}function sc(d,t){const n=d.rotate(t.bearingInRadians),s=t.zoom+Qt(t.center.lat,0),l=c.bu(1/Fr(t.center.lat),1/Fr(Math.min(Math.abs(t.center.lat),60)),c.bx(s,7,3,0,1)),p=360/Us({worldSize:t.worldSize,center:{lat:t.center.lat}});return new c.V(t.center.lng-n.x*p*l,c.an(t.center.lat+n.y*p,-c.ao,c.ao))}function Wo(d){const t=.5*d,n=Math.sin(t),s=Math.cos(t);return Math.log(n+s)-Math.log(s-n)}function oc(d,t,n,s){const l=d.lat+n*s;if(Math.abs(n)>1){const p=(Math.sign(d.lat+n)!==Math.sign(d.lat)?-Math.abs(d.lat):Math.abs(d.lat))*Math.PI/180,m=Math.abs(d.lat+n)*Math.PI/180,g=Wo(p+s*(m-p)),x=Wo(p),w=Wo(m);return new c.V(d.lng+t*((g-x)/(w-x)),l)}return new c.V(d.lng+t*s,l)}class Bu{constructor(t){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=!1,this._boundingVolumeFactory=t}swapBuffers(){if(!this._hadAnyChanges)return;const t=this._cachePrevious;this._cachePrevious=this._cache,this._cache=t,this._cache.clear(),this._hadAnyChanges=!1}getTileBoundingVolume(t,n,s,l){const p=`${t.z}_${t.x}_${t.y}_${l?.terrain?"t":""}`,m=this._cache.get(p);if(m)return m;const g=this._cachePrevious.get(p);if(g)return this._cache.set(p,g),g;const x=this._boundingVolumeFactory(t,n,s,l);return this._cache.set(p,x),this._hadAnyChanges=!0,x}}class da{constructor(t,n,s,l){this.min=s,this.max=l,this.points=t,this.planes=n}static fromAabb(t,n){const s=[];for(let l=0;l<8;l++)s.push([1&~l?t[0]:n[0],(l>>1&1)==1?n[1]:t[1],(l>>2&1)==1?n[2]:t[2]]);return new da(s,[[-1,0,0,n[0]],[1,0,0,-t[0]],[0,-1,0,n[1]],[0,1,0,-t[1]],[0,0,-1,n[2]],[0,0,1,-t[2]]],t,n)}static fromCenterSizeAngles(t,n,s){const l=c.bB([],s[0],s[1],s[2]),p=c.bC([],[n[0],0,0],l),m=c.bC([],[0,n[1],0],l),g=c.bC([],[0,0,n[2]],l),x=[...t],w=[...t];for(let I=0;I<8;I++)for(let M=0;M<3;M++){const z=t[M]+p[M]*(1&~I?-1:1)+m[M]*((I>>1&1)==1?1:-1)+g[M]*((I>>2&1)==1?1:-1);x[M]=Math.min(x[M],z),w[M]=Math.max(w[M],z)}const T=[];for(let I=0;I<8;I++){const M=[...t];c.b0(M,M,c.a$([],p,1&~I?-1:1)),c.b0(M,M,c.a$([],m,(I>>1&1)==1?1:-1)),c.b0(M,M,c.a$([],g,(I>>2&1)==1?1:-1)),T.push(M)}return new da(T,[[...p,-c.b5(p,T[0])],[...m,-c.b5(m,T[0])],[...g,-c.b5(g,T[0])],[-p[0],-p[1],-p[2],-c.b5(p,T[7])],[-m[0],-m[1],-m[2],-c.b5(m,T[7])],[-g[0],-g[1],-g[2],-c.b5(g,T[7])]],x,w)}intersectsFrustum(t){let n=!0;const s=this.points.length,l=this.planes.length,p=t.planes.length,m=t.points.length;for(let g=0;g=0&&w++}if(w===0)return 0;w=0&&w++}if(w===0)return 0}return 1}intersectsPlane(t){const n=this.points.length;let s=0;for(let l=0;l=0&&s++}return s===n?2:s===0?0:1}}function Ln(d,t,n){const s=d-t;return s<0?-s:Math.max(0,s-n)}function Ha(d,t,n,s,l){const p=d-n;let m;return m=p<0?Math.min(-p,1+p-l):p>1?Math.min(Math.max(p-l,0),1-p):0,Math.max(m,Ln(t,s,l))}class Gs{constructor(){this._boundingVolumeCache=new Bu(this._computeTileBoundingVolume)}prepareNextFrame(){this._boundingVolumeCache.swapBuffers()}distanceToTile2d(t,n,s,l){const p=1<4}allowWorldCopies(){return!1}getTileBoundingVolume(t,n,s,l){return this._boundingVolumeCache.getTileBoundingVolume(t,n,s,l)}_computeTileBoundingVolume(t,n,s,l){var p,m;let g=0,x=0;if(l?.terrain){const w=new c.a2(t.z,n,t.z,t.x,t.y),T=l.terrain.getMinMaxElevation(w);g=(p=T.minElevation)!==null&&p!==void 0?p:Math.min(0,s),x=(m=T.maxElevation)!==null&&m!==void 0?m:Math.max(0,s)}if(g/=c.bE,x/=c.bE,g+=1,x+=1,t.z<=0)return da.fromAabb([-x,-x,-x],[x,x,x]);if(t.z===1)return da.fromAabb([t.x===0?-x:0,t.y===0?0:-x,-x],[t.x===0?0:x,t.y===0?x:0,x]);{const w=[ai(0,0,t.x,t.y,t.z),ai(c.a5,0,t.x,t.y,t.z),ai(c.a5,c.a5,t.x,t.y,t.z),ai(0,c.a5,t.x,t.y,t.z)],T=[];for(const le of w)T.push(c.a$([],le,x));if(x!==g)for(const le of w)T.push(c.a$([],le,g));t.y===0&&T.push([0,1,0]),t.y===(1<=(1<{const l=c.an(n.lat,-c.ao,c.ao),p=c.an(+s,this.minZoom+Qt(0,l),this.maxZoom);return{center:new c.V(n.lng,l),zoom:p}},this.applyConstrain=(n,s)=>this._helper.applyConstrain(n,s),this._helper=new Lr({calcMatrices:()=>{this._calcMatrices()},defaultConstrain:(n,s)=>this.defaultConstrain(n,s)},t),this._coveringTilesDetailsProvider=new Gs}clone(){const t=new pa;return t.apply(this,!1),t}apply(t,n,s){this._globeLatitudeErrorCorrectionRadians=s||0,this._helper.apply(t,n)}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixNoCorrection}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){const t=c.bA();return t[0]=this._cameraPosition[0],t[1]=this._cameraPosition[1],t[2]=this._cameraPosition[2],t}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(t){const{overscaledTileID:n,applyGlobeMatrix:s}=t,l=this._helper.getMercatorTileCoordinates(n);return{mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:l,clippingPlane:this._cachedClippingPlane,projectionTransition:s?1:0,fallbackMatrix:this._globeViewProjMatrix32f}}_computeClippingPlane(t){const n=this.pitchInRadians,s=this.cameraToCenterDistance/t,l=Math.sin(n)*s,p=Math.cos(n)*s+1,m=1/Math.sqrt(l*l+p*p)*1;let g=-l,x=p;const w=Math.sqrt(g*g+x*x);g/=w,x/=w;const T=[0,g,x];c.bG(T,T,[0,0,0],-this.bearingInRadians),c.bH(T,T,[0,0,0],-1*this.center.lat*Math.PI/180),c.bI(T,T,[0,0,0],this.center.lng*Math.PI/180);const I=1/c.b7(T);return c.a$(T,T,I),[...T,-m*I]}isLocationOccluded(t){return!this.isSurfacePointVisible(Yt(t))}transformLightDirection(t){const n=this._helper._center.lng*Math.PI/180,s=this._helper._center.lat*Math.PI/180,l=Math.cos(s),p=[Math.sin(n)*l,Math.sin(s),Math.cos(n)*l],m=[p[2],0,-p[0]],g=[0,0,0];c.b4(g,m,p),c.b3(m,m),c.b3(g,g);const x=[0,0,0];return c.b3(x,[m[0]*t[0]+g[0]*t[1]+p[0]*t[2],m[1]*t[0]+g[1]*t[1]+p[1]*t[2],m[2]*t[0]+g[2]*t[1]+p[2]*t[2]]),x}getPixelScale(){return 1/Math.cos(this._helper._center.lat*Math.PI/180)}getCircleRadiusCorrection(){return Math.cos(this._helper._center.lat*Math.PI/180)}getPitchedTextCorrection(t,n,s){const l=(function(g,x,w){const T=1/(1<p&&(p=M),zg&&(g=z)}const T=[w.lng+m,w.lat+x,w.lng+p,w.lat+g];return this.isSurfacePointOnScreen([0,1,0])&&(T[3]=90,T[0]=-180,T[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(T[1]=-90,T[0]=-180,T[2]=180),new vt(T)}calculateCenterFromCameraLngLatAlt(t,n,s,l){return this._helper.calculateCenterFromCameraLngLatAlt(t,n,s,l)}setLocationAtPoint(t,n){const s=Yt(this.unprojectScreenPoint(n)),l=Yt(t),p=c.bA();c.bL(p);const m=c.bA();c.bI(m,s,p,-this.center.lng*Math.PI/180),c.bH(m,m,p,this.center.lat*Math.PI/180);const g=l[0]*l[0]+l[2]*l[2],x=m[0]*m[0];if(g=-N&&L<=N,X=U>=-N&&U<=N;let q,Y;if(Z&&X){const de=this.center.lng*Math.PI/180,ue=this.center.lat*Math.PI/180;c.bN(I,de)+c.bN(L,ue)=0}isSurfacePointOnScreen(t){if(!this.isSurfacePointVisible(t))return!1;const n=c.bF();return c.aH(n,[...t,1],this._globeViewProjMatrixNoCorrection),n[0]/=n[3],n[1]/=n[3],n[2]/=n[3],n[0]>-1&&n[0]<1&&n[1]>-1&&n[1]<1&&n[2]>-1&&n[2]<1}rayPlanetIntersection(t,n){const s=c.b5(t,n),l=c.bA(),p=c.bA();c.a$(p,n,s),c.b2(l,t,p);const m=1-c.b5(l,l);if(m<0)return null;const g=c.b5(t,t)-1,x=-s+(s<0?1:-1)*Math.sqrt(m),w=g/x,T=x;return{tMin:Math.min(w,T),tMax:Math.max(w,T)}}unprojectScreenPoint(t){const n=this._cameraPosition,s=this.getRayDirectionFromPixel(t),l=this.rayPlanetIntersection(n,s);if(l){const T=c.bA();c.b0(T,n,[s[0]*l.tMin,s[1]*l.tMin,s[2]*l.tMin]);const I=c.bA();return c.b3(I,T),$o(I)}const p=this._cachedClippingPlane,m=p[0]*s[0]+p[1]*s[1]+p[2]*s[2],g=-c.bb(p,n)/m,x=c.bA();if(g>0)c.b0(x,n,[s[0]*g,s[1]*g,s[2]*g]);else{const T=c.bA();c.b0(T,n,[2*s[0],2*s[1],2*s[2]]);const I=c.bb(this._cachedClippingPlane,T);c.b2(x,T,[this._cachedClippingPlane[0]*I,this._cachedClippingPlane[1]*I,this._cachedClippingPlane[2]*I])}const w=(function(T){const I=c.bA();return I[0]=T[0]*-T[3],I[1]=T[1]*-T[3],I[2]=T[2]*-T[3],{center:I,radius:Math.sqrt(1-T[3]*T[3])}})(p);return $o((function(T,I,M){const z=c.bA();c.b2(z,M,T);const L=c.bA();return c.by(L,T,z,I/c.b9(z)),L})(w.center,w.radius,x))}getMatrixForModel(t,n){const s=c.V.convert(t),l=1/c.bE,p=c.bj();return c.bJ(p,p,s.lng/180*Math.PI),c.bh(p,p,-s.lat/180*Math.PI),c.O(p,p,[0,0,1+n/c.bE]),c.bh(p,p,.5*Math.PI),c.Q(p,p,[l,l,l]),p}getProjectionDataForCustomLayer(t=!0){const n=this.getProjectionData({overscaledTileID:new c.a2(0,0,0,0,0),applyGlobeMatrix:t});return n.tileMercatorCoords=[0,0,1,1],n}getFastPathSimpleProjectionMatrix(t){}}class ji{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(t){this._helper.setMinZoom(t)}setMaxZoom(t){this._helper.setMaxZoom(t)}setMinPitch(t){this._helper.setMinPitch(t)}setMaxPitch(t){this._helper.setMaxPitch(t)}setRenderWorldCopies(t){this._helper.setRenderWorldCopies(t)}setBearing(t){this._helper.setBearing(t)}setPitch(t){this._helper.setPitch(t)}setRoll(t){this._helper.setRoll(t)}setFov(t){this._helper.setFov(t)}setZoom(t){this._helper.setZoom(t)}setCenter(t){this._helper.setCenter(t)}setElevation(t){this._helper.setElevation(t)}setMinElevationForCurrentTile(t){this._helper.setMinElevationForCurrentTile(t)}setPadding(t){this._helper.setPadding(t)}interpolatePadding(t,n,s){return this._helper.interpolatePadding(t,n,s)}isPaddingEqual(t){return this._helper.isPaddingEqual(t)}resize(t,n,s=!0){this._helper.resize(t,n,s)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(t){this._helper.setMaxBounds(t)}setConstrainOverride(t){this._helper.setConstrainOverride(t)}overrideNearFarZ(t,n){this._helper.overrideNearFarZ(t,n)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(t){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),t)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(t,n){this._globeness=t,this._globeLatitudeErrorCorrectionRadians=n,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().prepareNextFrame(),this._mercatorTransform.getCoveringTilesDetailsProvider().prepareNextFrame()}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(t){this._globeLatitudeErrorCorrectionRadians=0,this._globeness=1,this.defaultConstrain=(n,s)=>this.currentTransform.defaultConstrain(n,s),this.applyConstrain=(n,s)=>this._helper.applyConstrain(n,s),this._helper=new Lr({calcMatrices:()=>{this._calcMatrices()},defaultConstrain:(n,s)=>this.defaultConstrain(n,s)},t),this._globeness=1,this._mercatorTransform=new Vi,this._verticalPerspectiveTransform=new pa}clone(){const t=new ji;return t._globeness=this._globeness,t._globeLatitudeErrorCorrectionRadians=this._globeLatitudeErrorCorrectionRadians,t.apply(this,!1),t}apply(t,n){this._helper.apply(t,n),this._mercatorTransform.apply(this,!1),this._verticalPerspectiveTransform.apply(this,!1,this._globeLatitudeErrorCorrectionRadians)}get projectionMatrix(){return this.currentTransform.projectionMatrix}get modelViewProjectionMatrix(){return this.currentTransform.modelViewProjectionMatrix}get inverseProjectionMatrix(){return this.currentTransform.inverseProjectionMatrix}get cameraPosition(){return this.currentTransform.cameraPosition}getProjectionData(t){const n=this._mercatorTransform.getProjectionData(t),s=this._verticalPerspectiveTransform.getProjectionData(t);return{mainMatrix:this.isGlobeRendering?s.mainMatrix:n.mainMatrix,clippingPlane:s.clippingPlane,tileMercatorCoords:s.tileMercatorCoords,projectionTransition:t.applyGlobeMatrix?this._globeness:0,fallbackMatrix:n.fallbackMatrix}}isLocationOccluded(t){return this.currentTransform.isLocationOccluded(t)}transformLightDirection(t){return this.currentTransform.transformLightDirection(t)}getPixelScale(){return c.bu(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return c.bu(this._mercatorTransform.getCircleRadiusCorrection(),this._verticalPerspectiveTransform.getCircleRadiusCorrection(),this._globeness)}getPitchedTextCorrection(t,n,s){const l=this._mercatorTransform.getPitchedTextCorrection(t,n,s),p=this._verticalPerspectiveTransform.getPitchedTextCorrection(t,n,s);return c.bu(l,p,this._globeness)}projectTileCoordinates(t,n,s,l){return this.currentTransform.projectTileCoordinates(t,n,s,l)}_calcMatrices(){this._helper._width&&this._helper._height&&(this._verticalPerspectiveTransform.apply(this,!1,this._globeLatitudeErrorCorrectionRadians),this._helper._nearZ=this._verticalPerspectiveTransform.nearZ,this._helper._farZ=this._verticalPerspectiveTransform.farZ,this._mercatorTransform.apply(this,!0,this.isGlobeRendering),this._helper._nearZ=this._mercatorTransform.nearZ,this._helper._farZ=this._mercatorTransform.farZ)}calculateFogMatrix(t){return this.currentTransform.calculateFogMatrix(t)}getVisibleUnwrappedCoordinates(t){return this.currentTransform.getVisibleUnwrappedCoordinates(t)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(t){this._mercatorTransform.recalculateZoomAndCenter(t),this._verticalPerspectiveTransform.recalculateZoomAndCenter(t)}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(t,n){return this.currentTransform.lngLatToCameraDepth(t,n)}populateCache(t){this._mercatorTransform.populateCache(t),this._verticalPerspectiveTransform.populateCache(t)}getBounds(){return this.currentTransform.getBounds()}calculateCenterFromCameraLngLatAlt(t,n,s,l){return this._helper.calculateCenterFromCameraLngLatAlt(t,n,s,l)}setLocationAtPoint(t,n){if(!this.isGlobeRendering)return this._mercatorTransform.setLocationAtPoint(t,n),void this.apply(this._mercatorTransform,!1);this._verticalPerspectiveTransform.setLocationAtPoint(t,n),this.apply(this._verticalPerspectiveTransform,!1)}locationToScreenPoint(t,n){return this.currentTransform.locationToScreenPoint(t,n)}screenPointToMercatorCoordinate(t,n){return this.currentTransform.screenPointToMercatorCoordinate(t,n)}screenPointToLocation(t,n){return this.currentTransform.screenPointToLocation(t,n)}isPointOnMapSurface(t,n){return this.currentTransform.isPointOnMapSurface(t,n)}getRayDirectionFromPixel(t){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(t)}getMatrixForModel(t,n){return this.currentTransform.getMatrixForModel(t,n)}getProjectionDataForCustomLayer(t=!0){const n=this._mercatorTransform.getProjectionDataForCustomLayer(t);if(!this.isGlobeRendering)return n;const s=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(t);return s.fallbackMatrix=n.mainMatrix,s}getFastPathSimpleProjectionMatrix(t){return this.currentTransform.getFastPathSimpleProjectionMatrix(t)}}class ur{get useGlobeControls(){return!0}handlePanInertia(t,n){const s=sc(t,n);return Math.abs(s.lng-n.center.lng)>180&&(s.lng=n.center.lng+179.5*Math.sign(s.lng-n.center.lng)),{easingCenter:s,easingOffset:new c.P(0,0)}}handleMapControlsRollPitchBearingZoom(t,n){const s=t.around,l=n.screenPointToLocation(s);t.bearingDelta&&n.setBearing(n.bearing+t.bearingDelta),t.pitchDelta&&n.setPitch(n.pitch+t.pitchDelta),t.rollDelta&&n.setRoll(n.roll+t.rollDelta);const p=n.zoom;t.zoomDelta&&n.setZoom(n.zoom+t.zoomDelta);const m=n.zoom-p;if(m===0)return;const g=c.bK(n.center.lng,l.lng),x=g/(Math.abs(g/180)+1),w=c.bK(n.center.lat,l.lat),T=n.getRayDirectionFromPixel(s),I=n.cameraPosition,M=-1*c.b5(I,T),z=c.bA();c.b0(z,I,[T[0]*M,T[1]*M,T[2]*M]);const L=c.b7(z)-1,j=Math.exp(.5*-Math.max(L-.3,0)),U=Wa(n.worldSize,n.center.lat)/Math.min(n.width,n.height),N=c.bx(U,.9,.5,1,.25),Z=(1-c.aq(-m))*Math.min(j,N),X=n.center.lat,q=n.zoom,Y=new c.V(n.center.lng+x*Z,c.an(n.center.lat+w*Z,-c.ao,c.ao));n.setLocationAtPoint(l,s);const Q=n.center,W=c.bx(Math.abs(g),45,85,0,1),te=c.bx(U,.75,.35,0,1),de=Math.pow(Math.max(W,te),.25),ue=c.bK(Q.lng,Y.lng),le=c.bK(Q.lat,Y.lat);n.setCenter(new c.V(Q.lng+ue*de,Q.lat+le*de).wrap()),n.setZoom(q+Qt(X,n.center.lat))}handleMapControlsPan(t,n,s){if(!t.panDelta)return;const l=n.center.lat,p=n.zoom;n.setCenter(sc(t.panDelta,n).wrap()),n.setZoom(p+Qt(l,n.center.lat))}cameraForBoxAndBearing(t,n,s,l,p){const m=qa(t,n,s,l,p),g=n.left/p.width*2-1,x=(p.width-n.right)/p.width*2-1,w=n.top/p.height*-2+1,T=(p.height-n.bottom)/p.height*-2+1,I=c.bK(s.getWest(),s.getEast())<0,M=I?s.getEast():s.getWest(),z=I?s.getWest():s.getEast(),L=Math.max(s.getNorth(),s.getSouth()),j=Math.min(s.getNorth(),s.getSouth()),U=M+.5*c.bK(M,z),N=L+.5*c.bK(L,j),Z=p.clone();Z.setCenter(m.center),Z.setBearing(m.bearing),Z.setPitch(0),Z.setRoll(0),Z.setZoom(m.zoom);const X=Z.modelViewProjectionMatrix,q=[Yt(s.getNorthWest()),Yt(s.getNorthEast()),Yt(s.getSouthWest()),Yt(s.getSouthEast()),Yt(new c.V(z,N)),Yt(new c.V(M,N)),Yt(new c.V(U,L)),Yt(new c.V(U,j))],Y=Yt(m.center);let Q=Number.POSITIVE_INFINITY;for(const W of q)g<0&&(Q=ur.getLesserNonNegativeNonNull(Q,ur.solveVectorScale(W,Y,X,"x",g))),x>0&&(Q=ur.getLesserNonNegativeNonNull(Q,ur.solveVectorScale(W,Y,X,"x",x))),w>0&&(Q=ur.getLesserNonNegativeNonNull(Q,ur.solveVectorScale(W,Y,X,"y",w))),T<0&&(Q=ur.getLesserNonNegativeNonNull(Q,ur.solveVectorScale(W,Y,X,"y",T)));if(Number.isFinite(Q)&&Q!==0)return m.zoom=Z.zoom+c.at(Q),m;nc()}handleJumpToCenterZoom(t,n){const s=t.center.lat,l=t.applyConstrain(n.center?c.V.convert(n.center):t.center,t.zoom).center;t.setCenter(l.wrap());const p=n.zoom!==void 0?+n.zoom:t.zoom+Qt(s,l.lat);t.zoom!==p&&t.setZoom(p)}handleEaseTo(t,n){const s=t.zoom,l=t.center,p=t.padding,m={roll:t.roll,pitch:t.pitch,bearing:t.bearing},g={roll:n.roll===void 0?t.roll:n.roll,pitch:n.pitch===void 0?t.pitch:n.pitch,bearing:n.bearing===void 0?t.bearing:n.bearing},x=n.zoom!==void 0,w=!t.isPaddingEqual(n.padding);let T=!1;const I=n.center?c.V.convert(n.center):l,M=t.applyConstrain(I,s).center;Mt(t,M);const z=t.clone();z.setCenter(M),z.setZoom(x?+n.zoom:s+Qt(l.lat,I.lat)),z.setBearing(n.bearing);const L=new c.P(c.an(t.centerPoint.x+n.offsetAsPoint.x,0,t.width),c.an(t.centerPoint.y+n.offsetAsPoint.y,0,t.height));z.setLocationAtPoint(M,L);const j=(n.offset&&n.offsetAsPoint.mag())>0?z.center:M,U=x?+n.zoom:s+Qt(l.lat,j.lat),N=s+Qt(l.lat,0),Z=U+Qt(j.lat,0),X=c.bK(l.lng,j.lng),q=c.bK(l.lat,j.lat),Y=c.aq(Z-N);return T=U!==s,{easeFunc:Q=>{if(c.bo(m,g)||Zo({startEulerAngles:m,endEulerAngles:g,tr:t,k:Q,useSlerp:m.roll!=g.roll}),w&&t.interpolatePadding(p,n.padding,Q),n.around)c.w("Easing around a point is not supported under globe projection."),t.setLocationAtPoint(n.around,n.aroundPoint);else{const W=Z>N?Math.min(2,Y):Math.max(.5,Y),te=Math.pow(W,1-Q),de=oc(l,X,q,Q*te);t.setCenter(de.wrap())}if(T){const W=c.G.number(N,Z,Q)+Qt(0,t.center.lat);t.setZoom(W)}},isZooming:T,elevationCenter:j}}handleFlyTo(t,n){const s=n.zoom!==void 0,l=t.center,p=t.zoom,m=t.padding,g=!t.isPaddingEqual(n.padding),x=t.applyConstrain(c.V.convert(n.center||n.locationAtOffset),p).center,w=s?+n.zoom:t.zoom+Qt(t.center.lat,x.lat),T=t.clone();T.setCenter(x),T.setZoom(w),T.setBearing(n.bearing);const I=new c.P(c.an(t.centerPoint.x+n.offsetAsPoint.x,0,t.width),c.an(t.centerPoint.y+n.offsetAsPoint.y,0,t.height));T.setLocationAtPoint(x,I);const M=T.center;Mt(t,M);const z=(function(q,Y,Q){const W=Yt(Y),te=Yt(Q),de=c.b5(W,te),ue=Math.acos(de),le=Us(q);return ue/(2*Math.PI)*le})(t,l,M),L=p+Qt(l.lat,0),j=w+Qt(M.lat,0),U=c.aq(j-L);let N;if(typeof n.minZoom=="number"){const q=+n.minZoom+Qt(M.lat,0),Y=Math.min(q,L,j)+Qt(0,M.lat),Q=t.applyConstrain(M,Y).zoom+Qt(M.lat,0);N=c.aq(Q-L)}const Z=c.bK(l.lng,M.lng),X=c.bK(l.lat,M.lat);return{easeFunc:(q,Y,Q,W)=>{const te=oc(l,Z,X,Q);g&&t.interpolatePadding(m,n.padding,q);const de=q===1?M:te;t.setCenter(de.wrap());const ue=L+c.at(Y);t.setZoom(q===1?w:ue+Qt(0,de.lat))},scaleOfZoom:U,targetCenter:M,scaleOfMinZoom:N,pixelPathLength:z}}static solveVectorScale(t,n,s,l,p){const m=l==="x"?[s[0],s[4],s[8],s[12]]:[s[1],s[5],s[9],s[13]],g=[s[3],s[7],s[11],s[15]],x=t[0]*m[0]+t[1]*m[1]+t[2]*m[2],w=t[0]*g[0]+t[1]*g[1]+t[2]*g[2],T=n[0]*m[0]+n[1]*m[1]+n[2]*m[2],I=n[0]*g[0]+n[1]*g[1]+n[2]*g[2];return T+p*w===x+p*I||g[3]*(x-T)+m[3]*(I-w)+x*I==T*w?null:(T+m[3]-p*I-p*g[3])/(T-x-p*I+p*w)}static getLesserNonNegativeNonNull(t,n){return n!==null&&n>=0&&nc.B(d,t&&t.filter((n=>n.identifier!=="source.canvas"))),Xa=c.bO();class Ho extends c.E{constructor(t,n={}){var s,l;super(),this._rtlPluginLoaded=()=>{for(const m in this.tileManagers){const g=this.tileManagers[m].getSource().type;g!=="vector"&&g!=="geojson"||this.tileManagers[m].reload()}},this.map=t,this.dispatcher=new wn(Qn(),t._getMapId()),this.dispatcher.registerMessageHandler("GG",((m,g)=>this.getGlyphs(m,g))),this.dispatcher.registerMessageHandler("GI",((m,g)=>this.getImages(m,g))),this.dispatcher.registerMessageHandler("GDA",((m,g)=>this.getDashes(m,g))),this.imageManager=new en,this.imageManager.setEventedParent(this);const p=((s=t._container)===null||s===void 0?void 0:s.lang)||typeof document<"u"&&((l=document.documentElement)===null||l===void 0?void 0:l.lang)||void 0;this.glyphManager=new Er(t._requestManager,n.localIdeographFontFamily,p),this.lineAtlas=new Jn(256,512),this.crossTileSymbolIndex=new pi,this._setInitialValues(),this._resetUpdates(),this.dispatcher.broadcast("SR",c.bP()),F().on(ie,this._rtlPluginLoaded),this.on("data",(m=>{if(m.dataType!=="source"||m.sourceDataType!=="metadata")return;const g=this.tileManagers[m.sourceId];if(!g)return;const x=g.getSource();if(x&&x.vectorLayerIds)for(const w in this._layers){const T=this._layers[w];T.source===x.id&&this._validateLayer(T)}}))}_setInitialValues(){var t;this._spritesImagesIds={},this._layers={},this._order=[],this.tileManagers={},this.zoomHistory=new c.bQ,this._availableImages=[],this._globalState={},this._serializedLayers={},this.stylesheet=null,this.light=null,this.sky=null,this.projection&&(this.projection.destroy(),delete this.projection),this._loaded=!1,this._changed=!1,this._updatedLayers={},this._updatedSources={},this._changedImages={},this._glyphsDidChange=!1,this._updatedPaintProps={},this._layerOrderChanged=!1,this.crossTileSymbolIndex=new(((t=this.crossTileSymbolIndex)===null||t===void 0?void 0:t.constructor)||Object),this.pauseablePlacement=void 0,this.placement=void 0,this.z=0}setGlobalStateProperty(t,n){var s,l,p;this._checkLoaded();const m=n===null?(p=(l=(s=this.stylesheet.state)===null||s===void 0?void 0:s[t])===null||l===void 0?void 0:l.default)!==null&&p!==void 0?p:null:n;if(c.bR(m,this._globalState[t]))return this;this._globalState[t]=m,this._applyGlobalStateChanges([t])}getGlobalState(){return this._globalState}setGlobalState(t){this._checkLoaded();const n=[];for(const s in t)!c.bR(this._globalState[s],t[s].default)&&(n.push(s),this._globalState[s]=t[s].default);this._applyGlobalStateChanges(n)}_applyGlobalStateChanges(t){if(t.length===0)return;const n=new Set,s={};for(const l of t){s[l]=this._globalState[l];for(const p in this._layers){const m=this._layers[p],g=m.getLayoutAffectingGlobalStateRefs(),x=m.getPaintAffectingGlobalStateRefs(),w=m.getVisibilityAffectingGlobalStateRefs();if(g.has(l)&&n.add(m.source),x.has(l))for(const{name:T,value:I}of x.get(l))this._updatePaintProperty(m,T,I);w?.has(l)&&(m.recalculateVisibility(),this._updateLayer(m))}}this.dispatcher.broadcast("UGS",s);for(const l in this.tileManagers)n.has(l)&&(this._reloadSource(l),this._changed=!0)}loadURL(t,n={},s){this.fire(new c.l("dataloading",{dataType:"style"})),n.validate=typeof n.validate!="boolean"||n.validate;const l=this.map._requestManager.transformRequest(t,"Style");this._loadStyleRequest=new AbortController;const p=this._loadStyleRequest;c.j(l,this._loadStyleRequest).then((m=>{this._loadStyleRequest=null,this._load(m.data,n,s)})).catch((m=>{this._loadStyleRequest=null,m&&!p.signal.aborted&&this.fire(new c.k(m))}))}loadJSON(t,n={},s){this.fire(new c.l("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,Zt.frameAsync(this._frameRequest,this.map._ownerWindow).then((()=>{this._frameRequest=null,n.validate=n.validate!==!1,this._load(t,n,s)})).catch((()=>{}))}loadEmpty(){this.fire(new c.l("dataloading",{dataType:"style"})),this._load(Xa,{validate:!1})}_load(t,n,s){var l,p;let m=n.transformStyle?n.transformStyle(s,t):t;if(!n.validate||!un(this,c.C(m))){m=Object.assign({},m),this._loaded=!0,this.stylesheet=m;for(const g in m.sources)this.addSource(g,m.sources[g],{validate:!1});m.sprite?this._loadSprite(m.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(m.glyphs),this._createLayers(),this.light=new bn(this.stylesheet.light),this._setProjectionInternal(((l=this.stylesheet.projection)===null||l===void 0?void 0:l.type)||"mercator"),this.sky=new La(this.stylesheet.sky),this.map.setTerrain((p=this.stylesheet.terrain)!==null&&p!==void 0?p:null),this.fire(new c.l("data",{dataType:"style"})),this.fire(new c.l("style.load"))}}_createLayers(){var t,n,s;const l=c.bS(this.stylesheet.layers);this.setGlobalState((t=this.stylesheet.state)!==null&&t!==void 0?t:null),this.dispatcher.broadcast("SL",l),this._order=l.map((p=>p.id)),this._layers={},this._serializedLayers=null;for(const p of l){const m=c.bT(p,this._globalState);if(m.setEventedParent(this,{layer:{id:p.id}}),this._layers[p.id]=m,c.bU(m)&&this.tileManagers[m.source]){const g=(s=(n=p.paint)===null||n===void 0?void 0:n["raster-fade-duration"])!==null&&s!==void 0?s:m.paint.get("raster-fade-duration");this.tileManagers[m.source].setRasterFadeDuration(g)}}}_loadSprite(t,n=!1,s=void 0){this.imageManager.setLoaded(!1);const l=new AbortController;let p;this._spriteRequest=l,(function(m,g,x,w){return c._(this,void 0,void 0,(function*(){const T=gr(m),I=x>1?"@2x":"",M={},z={};for(const{id:L,url:j}of T){const U=g.transformRequest(Qr(j,I,".json"),"SpriteJSON");M[L]=c.j(U,w);const N=g.transformRequest(Qr(j,I,".png"),"SpriteImage");z[L]=Li.getImage(N,w)}return yield Promise.all([...Object.values(M),...Object.values(z)]),(function(L,j){return c._(this,void 0,void 0,(function*(){const U={};for(const N in L){U[N]={};const Z=Zt.getImageCanvasContext((yield j[N]).data),X=(yield L[N]).data;for(const q in X){const{width:Y,height:Q,x:W,y:te,sdf:de,pixelRatio:ue,stretchX:le,stretchY:he,content:Me,textFitWidth:Ie,textFitHeight:_e}=X[q];U[N][q]={data:null,pixelRatio:ue,sdf:de,stretchX:le,stretchY:he,content:Me,textFitWidth:Ie,textFitHeight:_e,spriteData:{width:Y,height:Q,x:W,y:te,context:Z}}}}return U}))})(M,z)}))})(t,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then((m=>{if(this._spriteRequest=null,m)for(const g in m){this._spritesImagesIds[g]=[];const x=this._spritesImagesIds[g]?this._spritesImagesIds[g].filter((w=>!(w in m))):[];for(const w of x)this.imageManager.removeImage(w),this._changedImages[w]=!0;for(const w in m[g]){const T=g==="default"?w:`${g}:${w}`;this._spritesImagesIds[g].push(T),T in this.imageManager.images?this.imageManager.updateImage(T,m[g][w],!1):this.imageManager.addImage(T,m[g][w]),n&&(this._changedImages[T]=!0)}}})).catch((m=>{this._spriteRequest=null,p=m,l.signal.aborted||this.fire(new c.k(p))})).finally((()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),n&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new c.l("data",{dataType:"style"})),s&&s(p)}))}_unloadSprite(){for(const t of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(t),this._changedImages[t]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new c.l("data",{dataType:"style"}))}_validateLayer(t){const n=this.tileManagers[t.source];if(!n)return;const s=t.sourceLayer;if(!s)return;const l=n.getSource();(l.type==="geojson"||l.vectorLayerIds&&l.vectorLayerIds.indexOf(s)===-1)&&this.fire(new c.k(new Error(`Source layer "${s}" does not exist on source "${l.id}" as specified by style layer "${t.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const t in this.tileManagers)if(!this.tileManagers[t].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(t,n=!1){const s=this._serializedAllLayers();if(!t||t.length===0)return Object.values(n?c.bV(s):s);const l=[];for(const p of t)if(s[p]){const m=n?c.bV(s[p]):s[p];l.push(m)}return l}_serializedAllLayers(){let t=this._serializedLayers;if(t)return t;t=this._serializedLayers={};const n=Object.keys(this._layers);for(const s of n){const l=this._layers[s];l.type!=="custom"&&(t[s]=l.serialize())}return t}hasTransitions(){var t,n,s;if(!((t=this.light)===null||t===void 0)&&t.hasTransition()||!((n=this.sky)===null||n===void 0)&&n.hasTransition()||!((s=this.projection)===null||s===void 0)&&s.hasTransition())return!0;for(const l in this.tileManagers)if(this.tileManagers[l].hasTransition())return!0;for(const l in this._layers)if(this._layers[l].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(t){if(!this._loaded)return;const n=this._changed;if(n){const l=Object.keys(this._updatedLayers),p=Object.keys(this._removedLayers);(l.length||p.length)&&this._updateWorkerLayers(l,p);for(const m in this._updatedSources){const g=this._updatedSources[m];if(g==="reload")this._reloadSource(m);else{if(g!=="clear")throw new Error(`Invalid action ${g}`);this._clearSource(m)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const m in this._updatedPaintProps)this._layers[m].updateTransitions(t);this.light.updateTransitions(t),this.sky.updateTransitions(t),this._resetUpdates()}const s={};for(const l in this.tileManagers){const p=this.tileManagers[l];s[l]=p.used,p.used=!1}for(const l of this._order){const p=this._layers[l];p.recalculate(t,this._availableImages),!p.isHidden(t.zoom)&&p.source&&(this.tileManagers[p.source].used=!0)}for(const l in s){const p=this.tileManagers[l];!!s[l]!=!!p.used&&p.fire(new c.l("data",{sourceDataType:"visibility",dataType:"source",sourceId:l}))}this.light.recalculate(t),this.sky.recalculate(t),this.projection.recalculate(t),this.z=t.zoom,n&&this.fire(new c.l("data",{dataType:"style"}))}_updateTilesForChangedImages(){const t=Object.keys(this._changedImages);if(t.length){for(const n in this.tileManagers)this.tileManagers[n].reloadTilesForDependencies(["icons","patterns"],t);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const t in this.tileManagers)this.tileManagers[t].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(t,n){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(t,!1),removedIds:n})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(t,n={}){var s;this._checkLoaded();const l=this.serialize();if(t=n.transformStyle?n.transformStyle(l,t):t,((s=n.validate)===null||s===void 0||s)&&un(this,c.C(t)))return!1;(t=c.bV(t)).layers=c.bS(t.layers);const p=c.bW(l,t),m=this._getOperationsToPerform(p);if(m.unimplemented.length>0)throw new Error(`Unimplemented: ${m.unimplemented.join(", ")}.`);if(m.operations.length===0)return!1;for(const g of m.operations)g();return this.stylesheet=t,this._serializedLayers=null,this.fire(new c.l("style.load",{style:this})),!0}_getOperationsToPerform(t){const n=[],s=[];for(const l of t)switch(l.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":case"setRoll":continue;case"addLayer":n.push((()=>this.addLayer.apply(this,l.args)));break;case"removeLayer":n.push((()=>this.removeLayer.apply(this,l.args)));break;case"setPaintProperty":n.push((()=>this.setPaintProperty.apply(this,l.args)));break;case"setLayoutProperty":n.push((()=>this.setLayoutProperty.apply(this,l.args)));break;case"setFilter":n.push((()=>this.setFilter.apply(this,l.args)));break;case"addSource":n.push((()=>this.addSource.apply(this,l.args)));break;case"removeSource":n.push((()=>this.removeSource.apply(this,l.args)));break;case"setLayerZoomRange":n.push((()=>this.setLayerZoomRange.apply(this,l.args)));break;case"setLight":n.push((()=>this.setLight.apply(this,l.args)));break;case"setGeoJSONSourceData":n.push((()=>this.setGeoJSONSourceData.apply(this,l.args)));break;case"setGlyphs":n.push((()=>this.setGlyphs.apply(this,l.args)));break;case"setSprite":n.push((()=>this.setSprite.apply(this,l.args)));break;case"setTerrain":n.push((()=>this.map.setTerrain.apply(this,l.args)));break;case"setSky":n.push((()=>this.setSky.apply(this,l.args)));break;case"setProjection":this.setProjection.apply(this,l.args);break;case"setGlobalState":n.push((()=>this.setGlobalState.apply(this,l.args)));break;case"setTransition":n.push((()=>{}));break;default:s.push(l.command)}return{operations:n,unimplemented:s}}addImage(t,n){if(this.getImage(t))return this.fire(new c.k(new Error(`An image named "${t}" already exists.`)));this.imageManager.addImage(t,n),this._afterImageUpdated(t)}updateImage(t,n){this.imageManager.updateImage(t,n)}getImage(t){return this.imageManager.getImage(t)}removeImage(t){if(!this.getImage(t))return this.fire(new c.k(new Error(`An image named "${t}" does not exist.`)));this.imageManager.removeImage(t),this._afterImageUpdated(t)}_afterImageUpdated(t){this._availableImages=this.imageManager.listImages(),this._changedImages[t]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new c.l("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(t,n,s={}){if(this._checkLoaded(),this.tileManagers[t]!==void 0)throw new Error(`Source "${t}" already exists.`);if(!n.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(n.type)>=0&&this._validate(c.C.source,`sources.${t}`,n,null,s))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);const l=this.tileManagers[t]=new Pe(t,n,this.dispatcher);l.style=this,l.setEventedParent(this,(()=>({isSourceLoaded:l.loaded(),source:l.serialize(),sourceId:t}))),l.onAdd(this.map),this._changed=!0}removeSource(t){if(this._checkLoaded(),this.tileManagers[t]===void 0)throw new Error(`There is no source with this ID=${t}`);for(const s in this._layers)if(this._layers[s].source===t)return this.fire(new c.k(new Error(`Source "${t}" cannot be removed while layer "${s}" is using it.`)));const n=this.tileManagers[t];delete this.tileManagers[t],delete this._updatedSources[t],n.fire(new c.l("data",{sourceDataType:"metadata",dataType:"source",sourceId:t})),n.setEventedParent(null),n.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(t,n){if(this._checkLoaded(),this.tileManagers[t]===void 0)throw new Error(`There is no source with this ID=${t}`);const s=this.tileManagers[t].getSource();if(s.type!=="geojson")throw new Error(`geojsonSource.type is ${s.type}, which is !== 'geojson`);s.setData(n),this._changed=!0}getSource(t){return this.tileManagers[t]&&this.tileManagers[t].getSource()}addLayer(t,n,s={}){this._checkLoaded();const l=t.id;if(this.getLayer(l))return void this.fire(new c.k(new Error(`Layer "${l}" already exists on this map.`)));let p;if(t.type==="custom"){if(un(this,c.bX(t)))return;p=c.bT(t,this._globalState)}else{if("source"in t&&typeof t.source=="object"&&(this.addSource(l,t.source),t=c.bV(t),t=c.e(t,{source:l})),this._validate(c.C.layer,`layers.${l}`,t,{arrayIndex:-1},s))return;p=c.bT(t,this._globalState),this._validateLayer(p),p.setEventedParent(this,{layer:{id:l}})}const m=n?this._order.indexOf(n):this._order.length;if(n&&m===-1)this.fire(new c.k(new Error(`Cannot add layer "${l}" before non-existing layer "${n}".`)));else{if(this._order.splice(m,0,l),this._layerOrderChanged=!0,this._layers[l]=p,this._removedLayers[l]&&p.source&&p.type!=="custom"){const g=this._removedLayers[l];delete this._removedLayers[l],g.type!==p.type?this._updatedSources[p.source]="clear":(this._updatedSources[p.source]="reload",this.tileManagers[p.source].pause())}this._updateLayer(p),p.onAdd&&p.onAdd(this.map)}}moveLayer(t,n){if(this._checkLoaded(),this._changed=!0,!this._layers[t])return void this.fire(new c.k(new Error(`The layer '${t}' does not exist in the map's style and cannot be moved.`)));if(t===n)return;const s=this._order.indexOf(t);this._order.splice(s,1);const l=n?this._order.indexOf(n):this._order.length;n&&l===-1?this.fire(new c.k(new Error(`Cannot move layer "${t}" before non-existing layer "${n}".`))):(this._order.splice(l,0,t),this._layerOrderChanged=!0)}removeLayer(t){this._checkLoaded();const n=this._layers[t];if(!n)return void this.fire(new c.k(new Error(`Cannot remove non-existing layer "${t}".`)));n.setEventedParent(null);const s=this._order.indexOf(t);this._order.splice(s,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=n,delete this._layers[t],this._serializedLayers&&delete this._serializedLayers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t],n.onRemove&&n.onRemove(this.map)}getLayer(t){return this._layers[t]}getLayersOrder(){return[...this._order]}hasLayer(t){return t in this._layers}setLayerZoomRange(t,n,s){this._checkLoaded();const l=this.getLayer(t);l?l.minzoom===n&&l.maxzoom===s||(n!=null&&(l.minzoom=n),s!=null&&(l.maxzoom=s),this._updateLayer(l)):this.fire(new c.k(new Error(`Cannot set the zoom range of non-existing layer "${t}".`)))}setFilter(t,n,s={}){this._checkLoaded();const l=this.getLayer(t);if(l){if(!c.bR(l.filter,n))return n==null?(l.setFilter(void 0),void this._updateLayer(l)):void(this._validate(c.C.filter,`layers.${l.id}.filter`,n,null,s)||(l.setFilter(c.bV(n)),this._updateLayer(l)))}else this.fire(new c.k(new Error(`Cannot filter non-existing layer "${t}".`)))}getFilter(t){return c.bV(this.getLayer(t).filter)}setLayoutProperty(t,n,s,l={}){this._checkLoaded();const p=this.getLayer(t);p?c.bR(p.getLayoutProperty(n),s)||(p.setLayoutProperty(n,s,l),this._updateLayer(p)):this.fire(new c.k(new Error(`Cannot style non-existing layer "${t}".`)))}getLayoutProperty(t,n){const s=this.getLayer(t);if(s)return s.getLayoutProperty(n);this.fire(new c.k(new Error(`Cannot get style of non-existing layer "${t}".`)))}setPaintProperty(t,n,s,l={}){this._checkLoaded();const p=this.getLayer(t);p?c.bR(p.getPaintProperty(n),s)||this._updatePaintProperty(p,n,s,l):this.fire(new c.k(new Error(`Cannot style non-existing layer "${t}".`)))}_updatePaintProperty(t,n,s,l={}){t.setPaintProperty(n,s,l)&&this._updateLayer(t),c.bU(t)&&n==="raster-fade-duration"&&this.tileManagers[t.source].setRasterFadeDuration(s),this._changed=!0,this._updatedPaintProps[t.id]=!0,this._serializedLayers=null}getPaintProperty(t,n){return this.getLayer(t).getPaintProperty(n)}setFeatureState(t,n){this._checkLoaded();const s=t.source,l=t.sourceLayer,p=this.tileManagers[s];if(p===void 0)return void this.fire(new c.k(new Error(`The source '${s}' does not exist in the map's style.`)));const m=p.getSource().type;m==="geojson"&&l?this.fire(new c.k(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):m!=="vector"||l?(t.id===void 0&&this.fire(new c.k(new Error("The feature id parameter must be provided."))),p.setFeatureState(l,t.id,n)):this.fire(new c.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(t,n){this._checkLoaded();const s=t.source,l=this.tileManagers[s];if(l===void 0)return void this.fire(new c.k(new Error(`The source '${s}' does not exist in the map's style.`)));const p=l.getSource().type,m=p==="vector"?t.sourceLayer:void 0;p!=="vector"||m?n&&typeof t.id!="string"&&typeof t.id!="number"?this.fire(new c.k(new Error("A feature id is required to remove its specific state property."))):l.removeFeatureState(m,t.id,n):this.fire(new c.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(t){this._checkLoaded();const n=t.source,s=t.sourceLayer,l=this.tileManagers[n];if(l!==void 0)return l.getSource().type!=="vector"||s?(t.id===void 0&&this.fire(new c.k(new Error("The feature id parameter must be provided."))),l.getFeatureState(s,t.id)):void this.fire(new c.k(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new c.k(new Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return c.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const t=c.bY(this.tileManagers,(p=>p.serialize())),n=this._serializeByIds(this._order,!0),s=this.map.getTerrain()||void 0,l=this.stylesheet;return c.bZ({version:l.version,name:l.name,metadata:l.metadata,light:l.light,sky:l.sky,center:l.center,zoom:l.zoom,bearing:l.bearing,pitch:l.pitch,sprite:l.sprite,glyphs:l.glyphs,transition:l.transition,projection:l.projection,sources:t,layers:n,terrain:s},(p=>p!==void 0))}_updateLayer(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&this.tileManagers[t.source].getSource().type!=="raster"&&(this._updatedSources[t.source]="reload",this.tileManagers[t.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(t){const n=m=>this._layers[m].type==="fill-extrusion",s={},l=[];for(let m=this._order.length-1;m>=0;m--){const g=this._order[m];if(n(g)){s[g]=m;for(const x of t){const w=x[g];if(w)for(const T of w)l.push(T)}}}l.sort(((m,g)=>g.intersectionZ-m.intersectionZ));const p=[];for(let m=this._order.length-1;m>=0;m--){const g=this._order[m];if(n(g))for(let x=l.length-1;x>=0;x--){const w=l[x].feature;if(s[w.layer.id]this.map.terrain.getElevation(T,I,M):void 0));return this.placement&&p.push((function(w,T,I,M,z,L,j){const U={},N=L.queryRenderedSymbols(M),Z=[];for(const X of Object.keys(N).map(Number))Z.push(j[X]);Z.sort(di);for(const X of Z){const q=X.featureIndex.lookupSymbolFeatures(N[X.bucketInstanceId],T,X.bucketIndex,X.sourceLayerIndex,{filterSpec:z.filter,globalState:z.globalState},z.layers,z.availableImages,w);for(const Y in q){const Q=U[Y]=U[Y]||[],W=q[Y];W.sort(((te,de)=>{const ue=X.featureSortOrder;if(ue){const le=ue.indexOf(te.featureIndex);return ue.indexOf(de.featureIndex)-le}return de.featureIndex-te.featureIndex}));for(const te of W)Q.push(te)}}return(function(X,q,Y){for(const Q in X)for(const W of X[Q])Fi(W,Y[q[Q].source]);return X})(U,w,I)})(this._layers,m,this.tileManagers,t,x,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(p)}querySourceFeatures(t,n){n?.filter&&this._validate(c.C.filter,"querySourceFeatures.filter",n.filter,null,n);const s=this.tileManagers[t];return s?(function(l,p){const m=l.getRenderableIds().map((w=>l.getTileByID(w))),g=[],x={};for(let w=0;wM.getTileByID(z))).sort(((z,L)=>L.tileID.overscaledZ-z.tileID.overscaledZ||(z.tileID.isLessThan(L.tileID)?-1:1)))}const I=this.crossTileSymbolIndex.addLayer(T,x[T.source],t.center.lng);m=m||I}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((p=p||this._layerOrderChanged||s===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(it(),t.zoom))&&(this.pauseablePlacement=new et(t,this.map.terrain,this._order,p,n,s,l,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,x),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(it()),g=!0),m&&this.pauseablePlacement.placement.setStale()),g||m)for(const w of this._order){const T=this._layers[w];T.type==="symbol"&&this.placement.updateLayerOpacities(T,x[T.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(it())}_releaseSymbolFadeTiles(){for(const t in this.tileManagers)this.tileManagers[t].releaseSymbolFadeTiles()}getImages(t,n){return c._(this,void 0,void 0,(function*(){const s=yield this.imageManager.getImages(n.icons);this._updateTilesForChangedImages();const l=this.tileManagers[n.source];return l&&l.setDependencies(n.tileID.key,n.type,n.icons),s}))}getGlyphs(t,n){return c._(this,void 0,void 0,(function*(){const s=yield this.glyphManager.getGlyphs(n.stacks),l=this.tileManagers[n.source];return l&&l.setDependencies(n.tileID.key,n.type,[""]),s}))}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(t,n={}){this._checkLoaded(),t&&this._validate(c.C.glyphs,"glyphs",t,null,n)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=t,this.glyphManager.entries={},this.glyphManager.setURL(t))}getDashes(t,n){return c._(this,void 0,void 0,(function*(){const s={};for(const[l,p]of Object.entries(n.dashes))s[l]=this.lineAtlas.getDash(p.dasharray,p.round);return s}))}addSprite(t,n,s={},l){this._checkLoaded();const p=[{id:t,url:n}],m=[...gr(this.stylesheet.sprite),...p];this._validate(c.C.sprite,"sprite",m,null,s)||(this.stylesheet.sprite=m,this._loadSprite(p,!0,l))}removeSprite(t){this._checkLoaded();const n=gr(this.stylesheet.sprite);if(n.find((s=>s.id===t))){if(this._spritesImagesIds[t])for(const s of this._spritesImagesIds[t])this.imageManager.removeImage(s),this._changedImages[s]=!0;n.splice(n.findIndex((s=>s.id===t)),1),this.stylesheet.sprite=n.length>0?n:void 0,delete this._spritesImagesIds[t],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new c.l("data",{dataType:"style"}))}else this.fire(new c.k(new Error(`Sprite "${t}" doesn't exists on this map.`)))}getSprite(){return gr(this.stylesheet.sprite)}setSprite(t,n={},s){this._checkLoaded(),t&&this._validate(c.C.sprite,"sprite",t,null,n)||(this.stylesheet.sprite=t,t?this._loadSprite(t,!0,s):(this._unloadSprite(),s&&s(null)))}destroy(){this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._loadStyleRequest&&(this._loadStyleRequest.abort(),this._loadStyleRequest=null),this._spriteRequest&&(this._spriteRequest.abort(),this._spriteRequest=null);for(const t in this.tileManagers){const n=this.tileManagers[t];n.setEventedParent(null),n.onRemove(this.map)}this.tileManagers={},this.imageManager&&(this.imageManager.setEventedParent(null),this.imageManager.destroy(),this._availableImages=[],this._spritesImagesIds={}),this.glyphManager&&this.glyphManager.destroy();for(const t in this._layers){const n=this._layers[t];n.setEventedParent(null),n.onRemove&&n.onRemove(this.map)}this._setInitialValues(),this.setEventedParent(null),this.dispatcher.unregisterMessageHandler("GG"),this.dispatcher.unregisterMessageHandler("GI"),this.dispatcher.unregisterMessageHandler("GDA"),this.dispatcher.remove(!0),this._listeners={},this._oneTimeListeners={}}}var $s=c.aU([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class Ou{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(t,n,s,l,p,m,g,x,w){this.context=t;let T=this.boundPaintVertexBuffers.length!==l.length;for(let I=0;!T&&I({u_texture:0,u_ele_delta:d,u_fog_matrix:t,u_fog_color:n?n.properties.get("fog-color"):c.bp.white,u_fog_ground_blend:n?n.properties.get("fog-ground-blend"):1,u_fog_ground_blend_opacity:l?0:n?n.calculateFogBlendOpacity(s):0,u_horizon_color:n?n.properties.get("horizon-color"):c.bp.white,u_horizon_fog_blend:n?n.properties.get("horizon-fog-blend"):1,u_is_globe_mode:l?1:0}),Vu={mainMatrix:"u_projection_matrix",tileMercatorCoords:"u_projection_tile_mercator_coords",clippingPlane:"u_projection_clipping_plane",projectionTransition:"u_projection_transition",fallbackMatrix:"u_projection_fallback_matrix"};function Ya(d){const t=[];for(let n=0;n({u_depth:new c.b_(ue,le.u_depth),u_terrain:new c.b_(ue,le.u_terrain),u_terrain_dim:new c.bq(ue,le.u_terrain_dim),u_terrain_matrix:new c.c0(ue,le.u_terrain_matrix),u_terrain_unpack:new c.c1(ue,le.u_terrain_unpack),u_terrain_exaggeration:new c.bq(ue,le.u_terrain_exaggeration)}))(t,de),this.projectionUniforms=((ue,le)=>({u_projection_matrix:new c.c0(ue,le.u_projection_matrix),u_projection_tile_mercator_coords:new c.c1(ue,le.u_projection_tile_mercator_coords),u_projection_clipping_plane:new c.c1(ue,le.u_projection_clipping_plane),u_projection_transition:new c.bq(ue,le.u_projection_transition),u_projection_fallback_matrix:new c.c0(ue,le.u_projection_fallback_matrix)}))(t,de),this.binderUniforms=s?s.getUniforms(t,de):[]}draw(t,n,s,l,p,m,g,x,w,T,I,M,z,L,j,U,N,Z,X){const q=t.gl;if(this.failedToCreate)return;if(t.program.set(this.program),t.setDepthMode(s),t.setStencilMode(l),t.setColorMode(p),t.setCullFace(m),x){t.activeTexture.set(q.TEXTURE2),q.bindTexture(q.TEXTURE_2D,x.depthTexture),t.activeTexture.set(q.TEXTURE3),q.bindTexture(q.TEXTURE_2D,x.texture);for(const Q in this.terrainUniforms)this.terrainUniforms[Q].set(x[Q])}if(w)for(const Q in w)this.projectionUniforms[Vu[Q]].set(w[Q]);if(g)for(const Q in this.fixedUniforms)this.fixedUniforms[Q].set(g[Q]);U&&U.setUniforms(t,this.binderUniforms,L,{zoom:j});let Y=0;switch(n){case q.LINES:Y=2;break;case q.TRIANGLES:Y=3;break;case q.LINE_STRIP:Y=1}for(const Q of z.get()){const W=Q.vaos||(Q.vaos={});(W[T]||(W[T]=new Ou)).bind(t,this,I,U?U.getPaintVertexBuffers():[],M,Q.vertexOffset,N,Z,X),q.drawElements(n,Q.primitiveLength*Y,q.UNSIGNED_SHORT,Q.primitiveOffset*Y*2)}}}function Xo(d,t,n){const s=1/c.aN(n,1,t.transform.tileZoom),l=Math.pow(2,n.tileID.overscaledZ),p=n.tileSize*Math.pow(2,t.transform.tileZoom)/l,m=p*(n.tileID.canonical.x+n.tileID.wrap*l),g=p*n.tileID.canonical.y;return{u_image:0,u_texsize:n.imageAtlasTexture.size,u_scale:[s,d.fromScale,d.toScale],u_fade:d.t,u_pixel_coord_upper:[m>>16,g>>16],u_pixel_coord_lower:[65535&m,65535&g]}}const Ws=(d,t,n,s)=>{const l=d.style.light,p=l.properties.get("position"),m=[p.x,p.y,p.z],g=c.c4();l.properties.get("anchor")==="viewport"&&c.c5(g,d.transform.bearingInRadians),c.c6(m,m,g);const x=d.transform.transformLightDirection(m),w=l.properties.get("color");return{u_lightpos:m,u_lightpos_globe:x,u_lightintensity:l.properties.get("intensity"),u_lightcolor:[w.r,w.g,w.b],u_vertical_gradient:+t,u_opacity:n,u_fill_translate:s}},lc=(d,t,n,s,l,p,m)=>c.e(Ws(d,t,n,s),Xo(p,d,m),{u_height_factor:-Math.pow(2,l.overscaledZ)/m.tileSize/8}),Yo=(d,t,n,s)=>c.e(Xo(t,d,n),{u_fill_translate:s}),cc=(d,t)=>({u_world:d,u_fill_translate:t}),uc=(d,t,n,s,l)=>c.e(Yo(d,t,n,l),{u_world:s}),Fn=(d,t,n,s,l)=>{const p=d.transform;let m,g,x=0;if(n.paint.get("circle-pitch-alignment")==="map"){const w=c.aN(t,1,p.zoom);m=!0,g=[w,w],x=w/(c.a5*Math.pow(2,t.tileID.overscaledZ))*2*Math.PI*l}else m=!1,g=p.pixelsToGLUnits;return{u_camera_to_center_distance:p.cameraToCenterDistance,u_scale_with_map:+(n.paint.get("circle-pitch-scale")==="map"),u_pitch_with_map:+m,u_device_pixel_ratio:d.pixelRatio,u_extrude_scale:g,u_globe_extrude_scale:x,u_translate:s}},hc=d=>({u_pixel_extrude_scale:[1/d.width,1/d.height]}),dc=d=>({u_viewport_size:[d.width,d.height]}),ma=(d,t=1)=>({u_color:d,u_overlay:0,u_overlay_scale:t}),pc=(d,t,n,s)=>{const l=c.aN(d,1,t)/(c.a5*Math.pow(2,d.tileID.overscaledZ))*2*Math.PI*s;return{u_extrude_scale:c.aN(d,1,t),u_intensity:n,u_globe_extrude_scale:l}},Ka=(d,t,n,s)=>{const l=c.N();c.c7(l,0,d.width,d.height,0,0,1);const p=d.context.gl;return{u_matrix:l,u_world:[p.drawingBufferWidth,p.drawingBufferHeight],u_image:n,u_color_ramp:s,u_opacity:t.paint.get("heatmap-opacity")}},Nu=(d,t,n)=>{const s=n.paint.get("hillshade-accent-color");let l;switch(n.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=n.getIlluminationProperties();for(let m=0;m{const n=t.stride,s=c.N();return c.c7(s,0,c.a5,-c.a5,0,0,1),c.O(s,s,[0,-c.a5,0]),{u_matrix:s,u_image:1,u_dimension:[n,n],u_zoom:d.overscaledZ,u_unpack:t.getUnpackVector()}};function fc(d,t){const n=Math.pow(2,t.canonical.z),s=t.canonical.y;return[new c.a9(0,s/n).toLngLat().lat,new c.a9(0,(s+1)/n).toLngLat().lat]}const mc=(d,t,n=0)=>({u_image:0,u_unpack:t.getUnpackVector(),u_dimension:[t.stride,t.stride],u_elevation_stops:1,u_color_stops:4,u_color_ramp_size:n,u_opacity:d.paint.get("color-relief-opacity")}),Ja=(d,t,n,s)=>{const l=d.transform;return{u_translation:Xs(d,t,n),u_ratio:s/c.aN(t,1,l.zoom),u_device_pixel_ratio:d.pixelRatio,u_units_to_pixels:[1/l.pixelsToGLUnits[0],1/l.pixelsToGLUnits[1]]}},Ko=(d,t,n,s,l)=>c.e(Ja(d,t,n,s),{u_image:0,u_image_height:l}),_c=(d,t,n,s,l)=>{const p=d.transform,m=Qa(t,p);return{u_translation:Xs(d,t,n),u_texsize:t.imageAtlasTexture.size,u_ratio:s/c.aN(t,1,p.zoom),u_device_pixel_ratio:d.pixelRatio,u_image:0,u_scale:[m,l.fromScale,l.toScale],u_fade:l.t,u_units_to_pixels:[1/p.pixelsToGLUnits[0],1/p.pixelsToGLUnits[1]]}},Hs=(d,t,n,s,l)=>{const p=Qa(t,d.transform);return c.e(Ja(d,t,n,s),{u_tileratio:p,u_crossfade_from:l.fromScale,u_crossfade_to:l.toScale,u_image:0,u_mix:l.t,u_lineatlas_width:d.lineAtlas.width,u_lineatlas_height:d.lineAtlas.height})},Br=(d,t,n,s,l,p)=>{const m=Qa(t,d.transform);return c.e(Ja(d,t,n,s),{u_image:0,u_image_height:p,u_tileratio:m,u_crossfade_from:l.fromScale,u_crossfade_to:l.toScale,u_image_dash:1,u_mix:l.t,u_lineatlas_width:d.lineAtlas.width,u_lineatlas_height:d.lineAtlas.height})};function Qa(d,t){return 1/c.aN(d,1,t.tileZoom)}function Xs(d,t,n){return c.aO(d.transform,t,n.paint.get("line-translate"),n.paint.get("line-translate-anchor"))}const Jo=(d,t,n,s,l)=>{return{u_tl_parent:d,u_scale_parent:t,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*s.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:s.paint.get("raster-brightness-min"),u_brightness_high:s.paint.get("raster-brightness-max"),u_saturation_factor:(m=s.paint.get("raster-saturation"),m>0?1-1/(1.001-m):-m),u_contrast_factor:(p=s.paint.get("raster-contrast"),p>0?1/(1-p):1+p),u_spin_weights:gc(s.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,m};function gc(d){d*=Math.PI/180;const t=Math.sin(d),n=Math.cos(d);return[(2*n+1)/3,(-Math.sqrt(3)*t-n+1)/3,(Math.sqrt(3)*t-n+1)/3]}const Ys=(d,t,n,s,l,p,m,g,x,w,T,I,M)=>{const z=m.transform;return{u_is_size_zoom_constant:+(d==="constant"||d==="source"),u_is_size_feature_constant:+(d==="constant"||d==="camera"),u_size_t:t?t.uSizeT:0,u_size:t?t.uSize:0,u_camera_to_center_distance:z.cameraToCenterDistance,u_pitch:z.pitch/360*2*Math.PI,u_rotate_symbol:+n,u_aspect_ratio:z.width/z.height,u_fade_change:m.options.fadeDuration?m.symbolFadeChange:1,u_label_plane_matrix:g,u_coord_matrix:x,u_is_text:+T,u_pitch_with_map:+s,u_is_along_line:l,u_is_variable_anchor:p,u_texsize:I,u_texture:0,u_translation:w,u_pitched_scale:M}},hn=(d,t,n,s,l,p,m,g,x,w,T,I,M,z)=>{const L=m.transform;return c.e(Ys(d,t,n,s,l,p,m,g,x,w,T,I,z),{u_gamma_scale:s?Math.cos(L.pitch*Math.PI/180)*L.cameraToCenterDistance:1,u_device_pixel_ratio:m.pixelRatio,u_is_halo:1})},Qo=(d,t,n,s,l,p,m,g,x,w,T,I,M)=>c.e(hn(d,t,n,s,l,p,m,g,x,w,!0,T,0,M),{u_texsize_icon:I,u_texture_icon:1}),Gu=(d,t)=>({u_opacity:d,u_color:t}),qu=(d,t,n,s,l)=>c.e((function(p,m,g,x){const w=g.imageManager.getPattern(p.from.toString()),T=g.imageManager.getPattern(p.to.toString()),{width:I,height:M}=g.imageManager.getPixelSize(),z=Math.pow(2,x.tileID.overscaledZ),L=x.tileSize*Math.pow(2,g.transform.tileZoom)/z,j=L*(x.tileID.canonical.x+x.tileID.wrap*z),U=L*x.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:w.tl,u_pattern_br_a:w.br,u_pattern_tl_b:T.tl,u_pattern_br_b:T.br,u_texsize:[I,M],u_mix:m.t,u_pattern_size_a:w.displaySize,u_pattern_size_b:T.displaySize,u_scale_a:m.fromScale,u_scale_b:m.toScale,u_tile_units_to_pixels:1/c.aN(x,1,g.transform.tileZoom),u_pixel_coord_upper:[j>>16,U>>16],u_pixel_coord_lower:[65535&j,65535&U]}})(n,l,t,s),{u_opacity:d}),yc=(d,t)=>{},Zu={fillExtrusion:(d,t)=>({u_lightpos:new c.c2(d,t.u_lightpos),u_lightpos_globe:new c.c2(d,t.u_lightpos_globe),u_lightintensity:new c.bq(d,t.u_lightintensity),u_lightcolor:new c.c2(d,t.u_lightcolor),u_vertical_gradient:new c.bq(d,t.u_vertical_gradient),u_opacity:new c.bq(d,t.u_opacity),u_fill_translate:new c.c3(d,t.u_fill_translate)}),fillExtrusionPattern:(d,t)=>({u_lightpos:new c.c2(d,t.u_lightpos),u_lightpos_globe:new c.c2(d,t.u_lightpos_globe),u_lightintensity:new c.bq(d,t.u_lightintensity),u_lightcolor:new c.c2(d,t.u_lightcolor),u_vertical_gradient:new c.bq(d,t.u_vertical_gradient),u_height_factor:new c.bq(d,t.u_height_factor),u_opacity:new c.bq(d,t.u_opacity),u_fill_translate:new c.c3(d,t.u_fill_translate),u_image:new c.b_(d,t.u_image),u_texsize:new c.c3(d,t.u_texsize),u_pixel_coord_upper:new c.c3(d,t.u_pixel_coord_upper),u_pixel_coord_lower:new c.c3(d,t.u_pixel_coord_lower),u_scale:new c.c2(d,t.u_scale),u_fade:new c.bq(d,t.u_fade)}),fill:(d,t)=>({u_fill_translate:new c.c3(d,t.u_fill_translate)}),fillPattern:(d,t)=>({u_image:new c.b_(d,t.u_image),u_texsize:new c.c3(d,t.u_texsize),u_pixel_coord_upper:new c.c3(d,t.u_pixel_coord_upper),u_pixel_coord_lower:new c.c3(d,t.u_pixel_coord_lower),u_scale:new c.c2(d,t.u_scale),u_fade:new c.bq(d,t.u_fade),u_fill_translate:new c.c3(d,t.u_fill_translate)}),fillOutline:(d,t)=>({u_world:new c.c3(d,t.u_world),u_fill_translate:new c.c3(d,t.u_fill_translate)}),fillOutlinePattern:(d,t)=>({u_world:new c.c3(d,t.u_world),u_image:new c.b_(d,t.u_image),u_texsize:new c.c3(d,t.u_texsize),u_pixel_coord_upper:new c.c3(d,t.u_pixel_coord_upper),u_pixel_coord_lower:new c.c3(d,t.u_pixel_coord_lower),u_scale:new c.c2(d,t.u_scale),u_fade:new c.bq(d,t.u_fade),u_fill_translate:new c.c3(d,t.u_fill_translate)}),circle:(d,t)=>({u_camera_to_center_distance:new c.bq(d,t.u_camera_to_center_distance),u_scale_with_map:new c.b_(d,t.u_scale_with_map),u_pitch_with_map:new c.b_(d,t.u_pitch_with_map),u_extrude_scale:new c.c3(d,t.u_extrude_scale),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_globe_extrude_scale:new c.bq(d,t.u_globe_extrude_scale),u_translate:new c.c3(d,t.u_translate)}),collisionBox:(d,t)=>({u_pixel_extrude_scale:new c.c3(d,t.u_pixel_extrude_scale)}),collisionCircle:(d,t)=>({u_viewport_size:new c.c3(d,t.u_viewport_size)}),debug:(d,t)=>({u_color:new c.b$(d,t.u_color),u_overlay:new c.b_(d,t.u_overlay),u_overlay_scale:new c.bq(d,t.u_overlay_scale)}),depth:yc,clippingMask:yc,heatmap:(d,t)=>({u_extrude_scale:new c.bq(d,t.u_extrude_scale),u_intensity:new c.bq(d,t.u_intensity),u_globe_extrude_scale:new c.bq(d,t.u_globe_extrude_scale)}),heatmapTexture:(d,t)=>({u_matrix:new c.c0(d,t.u_matrix),u_world:new c.c3(d,t.u_world),u_image:new c.b_(d,t.u_image),u_color_ramp:new c.b_(d,t.u_color_ramp),u_opacity:new c.bq(d,t.u_opacity)}),hillshade:(d,t)=>({u_image:new c.b_(d,t.u_image),u_latrange:new c.c3(d,t.u_latrange),u_exaggeration:new c.bq(d,t.u_exaggeration),u_altitudes:new c.c9(d,t.u_altitudes),u_azimuths:new c.c9(d,t.u_azimuths),u_accent:new c.b$(d,t.u_accent),u_method:new c.b_(d,t.u_method),u_shadows:new c.c8(d,t.u_shadows),u_highlights:new c.c8(d,t.u_highlights)}),hillshadePrepare:(d,t)=>({u_matrix:new c.c0(d,t.u_matrix),u_image:new c.b_(d,t.u_image),u_dimension:new c.c3(d,t.u_dimension),u_zoom:new c.bq(d,t.u_zoom),u_unpack:new c.c1(d,t.u_unpack)}),colorRelief:(d,t)=>({u_image:new c.b_(d,t.u_image),u_unpack:new c.c1(d,t.u_unpack),u_dimension:new c.c3(d,t.u_dimension),u_elevation_stops:new c.b_(d,t.u_elevation_stops),u_color_stops:new c.b_(d,t.u_color_stops),u_color_ramp_size:new c.b_(d,t.u_color_ramp_size),u_opacity:new c.bq(d,t.u_opacity)}),line:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels)}),lineGradient:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels),u_image:new c.b_(d,t.u_image),u_image_height:new c.bq(d,t.u_image_height)}),linePattern:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_texsize:new c.c3(d,t.u_texsize),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_image:new c.b_(d,t.u_image),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels),u_scale:new c.c2(d,t.u_scale),u_fade:new c.bq(d,t.u_fade)}),lineSDF:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels),u_image:new c.b_(d,t.u_image),u_mix:new c.bq(d,t.u_mix),u_tileratio:new c.bq(d,t.u_tileratio),u_crossfade_from:new c.bq(d,t.u_crossfade_from),u_crossfade_to:new c.bq(d,t.u_crossfade_to),u_lineatlas_width:new c.bq(d,t.u_lineatlas_width),u_lineatlas_height:new c.bq(d,t.u_lineatlas_height)}),lineGradientSDF:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels),u_image:new c.b_(d,t.u_image),u_image_height:new c.bq(d,t.u_image_height),u_tileratio:new c.bq(d,t.u_tileratio),u_crossfade_from:new c.bq(d,t.u_crossfade_from),u_crossfade_to:new c.bq(d,t.u_crossfade_to),u_image_dash:new c.b_(d,t.u_image_dash),u_mix:new c.bq(d,t.u_mix),u_lineatlas_width:new c.bq(d,t.u_lineatlas_width),u_lineatlas_height:new c.bq(d,t.u_lineatlas_height)}),raster:(d,t)=>({u_tl_parent:new c.c3(d,t.u_tl_parent),u_scale_parent:new c.bq(d,t.u_scale_parent),u_buffer_scale:new c.bq(d,t.u_buffer_scale),u_fade_t:new c.bq(d,t.u_fade_t),u_opacity:new c.bq(d,t.u_opacity),u_image0:new c.b_(d,t.u_image0),u_image1:new c.b_(d,t.u_image1),u_brightness_low:new c.bq(d,t.u_brightness_low),u_brightness_high:new c.bq(d,t.u_brightness_high),u_saturation_factor:new c.bq(d,t.u_saturation_factor),u_contrast_factor:new c.bq(d,t.u_contrast_factor),u_spin_weights:new c.c2(d,t.u_spin_weights),u_coords_top:new c.c1(d,t.u_coords_top),u_coords_bottom:new c.c1(d,t.u_coords_bottom)}),symbolIcon:(d,t)=>({u_is_size_zoom_constant:new c.b_(d,t.u_is_size_zoom_constant),u_is_size_feature_constant:new c.b_(d,t.u_is_size_feature_constant),u_size_t:new c.bq(d,t.u_size_t),u_size:new c.bq(d,t.u_size),u_camera_to_center_distance:new c.bq(d,t.u_camera_to_center_distance),u_pitch:new c.bq(d,t.u_pitch),u_rotate_symbol:new c.b_(d,t.u_rotate_symbol),u_aspect_ratio:new c.bq(d,t.u_aspect_ratio),u_fade_change:new c.bq(d,t.u_fade_change),u_label_plane_matrix:new c.c0(d,t.u_label_plane_matrix),u_coord_matrix:new c.c0(d,t.u_coord_matrix),u_is_text:new c.b_(d,t.u_is_text),u_pitch_with_map:new c.b_(d,t.u_pitch_with_map),u_is_along_line:new c.b_(d,t.u_is_along_line),u_is_variable_anchor:new c.b_(d,t.u_is_variable_anchor),u_texsize:new c.c3(d,t.u_texsize),u_texture:new c.b_(d,t.u_texture),u_translation:new c.c3(d,t.u_translation),u_pitched_scale:new c.bq(d,t.u_pitched_scale)}),symbolSDF:(d,t)=>({u_is_size_zoom_constant:new c.b_(d,t.u_is_size_zoom_constant),u_is_size_feature_constant:new c.b_(d,t.u_is_size_feature_constant),u_size_t:new c.bq(d,t.u_size_t),u_size:new c.bq(d,t.u_size),u_camera_to_center_distance:new c.bq(d,t.u_camera_to_center_distance),u_pitch:new c.bq(d,t.u_pitch),u_rotate_symbol:new c.b_(d,t.u_rotate_symbol),u_aspect_ratio:new c.bq(d,t.u_aspect_ratio),u_fade_change:new c.bq(d,t.u_fade_change),u_label_plane_matrix:new c.c0(d,t.u_label_plane_matrix),u_coord_matrix:new c.c0(d,t.u_coord_matrix),u_is_text:new c.b_(d,t.u_is_text),u_pitch_with_map:new c.b_(d,t.u_pitch_with_map),u_is_along_line:new c.b_(d,t.u_is_along_line),u_is_variable_anchor:new c.b_(d,t.u_is_variable_anchor),u_texsize:new c.c3(d,t.u_texsize),u_texture:new c.b_(d,t.u_texture),u_gamma_scale:new c.bq(d,t.u_gamma_scale),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_is_halo:new c.b_(d,t.u_is_halo),u_translation:new c.c3(d,t.u_translation),u_pitched_scale:new c.bq(d,t.u_pitched_scale)}),symbolTextAndIcon:(d,t)=>({u_is_size_zoom_constant:new c.b_(d,t.u_is_size_zoom_constant),u_is_size_feature_constant:new c.b_(d,t.u_is_size_feature_constant),u_size_t:new c.bq(d,t.u_size_t),u_size:new c.bq(d,t.u_size),u_camera_to_center_distance:new c.bq(d,t.u_camera_to_center_distance),u_pitch:new c.bq(d,t.u_pitch),u_rotate_symbol:new c.b_(d,t.u_rotate_symbol),u_aspect_ratio:new c.bq(d,t.u_aspect_ratio),u_fade_change:new c.bq(d,t.u_fade_change),u_label_plane_matrix:new c.c0(d,t.u_label_plane_matrix),u_coord_matrix:new c.c0(d,t.u_coord_matrix),u_is_text:new c.b_(d,t.u_is_text),u_pitch_with_map:new c.b_(d,t.u_pitch_with_map),u_is_along_line:new c.b_(d,t.u_is_along_line),u_is_variable_anchor:new c.b_(d,t.u_is_variable_anchor),u_texsize:new c.c3(d,t.u_texsize),u_texsize_icon:new c.c3(d,t.u_texsize_icon),u_texture:new c.b_(d,t.u_texture),u_texture_icon:new c.b_(d,t.u_texture_icon),u_gamma_scale:new c.bq(d,t.u_gamma_scale),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_is_halo:new c.b_(d,t.u_is_halo),u_translation:new c.c3(d,t.u_translation),u_pitched_scale:new c.bq(d,t.u_pitched_scale)}),background:(d,t)=>({u_opacity:new c.bq(d,t.u_opacity),u_color:new c.b$(d,t.u_color)}),backgroundPattern:(d,t)=>({u_opacity:new c.bq(d,t.u_opacity),u_image:new c.b_(d,t.u_image),u_pattern_tl_a:new c.c3(d,t.u_pattern_tl_a),u_pattern_br_a:new c.c3(d,t.u_pattern_br_a),u_pattern_tl_b:new c.c3(d,t.u_pattern_tl_b),u_pattern_br_b:new c.c3(d,t.u_pattern_br_b),u_texsize:new c.c3(d,t.u_texsize),u_mix:new c.bq(d,t.u_mix),u_pattern_size_a:new c.c3(d,t.u_pattern_size_a),u_pattern_size_b:new c.c3(d,t.u_pattern_size_b),u_scale_a:new c.bq(d,t.u_scale_a),u_scale_b:new c.bq(d,t.u_scale_b),u_pixel_coord_upper:new c.c3(d,t.u_pixel_coord_upper),u_pixel_coord_lower:new c.c3(d,t.u_pixel_coord_lower),u_tile_units_to_pixels:new c.bq(d,t.u_tile_units_to_pixels)}),terrain:(d,t)=>({u_texture:new c.b_(d,t.u_texture),u_ele_delta:new c.bq(d,t.u_ele_delta),u_fog_matrix:new c.c0(d,t.u_fog_matrix),u_fog_color:new c.b$(d,t.u_fog_color),u_fog_ground_blend:new c.bq(d,t.u_fog_ground_blend),u_fog_ground_blend_opacity:new c.bq(d,t.u_fog_ground_blend_opacity),u_horizon_color:new c.b$(d,t.u_horizon_color),u_horizon_fog_blend:new c.bq(d,t.u_horizon_fog_blend),u_is_globe_mode:new c.bq(d,t.u_is_globe_mode)}),terrainDepth:(d,t)=>({u_ele_delta:new c.bq(d,t.u_ele_delta)}),terrainCoords:(d,t)=>({u_texture:new c.b_(d,t.u_texture),u_terrain_coords_id:new c.bq(d,t.u_terrain_coords_id),u_ele_delta:new c.bq(d,t.u_ele_delta)}),projectionErrorMeasurement:(d,t)=>({u_input:new c.bq(d,t.u_input),u_output_expected:new c.bq(d,t.u_output_expected)}),atmosphere:(d,t)=>({u_sun_pos:new c.c2(d,t.u_sun_pos),u_atmosphere_blend:new c.bq(d,t.u_atmosphere_blend),u_globe_position:new c.c2(d,t.u_globe_position),u_globe_radius:new c.bq(d,t.u_globe_radius),u_inv_proj_matrix:new c.c0(d,t.u_inv_proj_matrix)}),sky:(d,t)=>({u_sky_color:new c.b$(d,t.u_sky_color),u_horizon_color:new c.b$(d,t.u_horizon_color),u_horizon:new c.c3(d,t.u_horizon),u_horizon_normal:new c.c3(d,t.u_horizon_normal),u_sky_horizon_blend:new c.bq(d,t.u_sky_horizon_blend),u_sky_blend:new c.bq(d,t.u_sky_blend)})};class xc{constructor(t,n,s){this.context=t;const l=t.gl;this.buffer=l.createBuffer(),this.dynamicDraw=!!s,this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),l.bufferData(l.ELEMENT_ARRAY_BUFFER,n.arrayBuffer,this.dynamicDraw?l.DYNAMIC_DRAW:l.STATIC_DRAW),this.dynamicDraw||delete n.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(t){const n=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),n.bufferSubData(n.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const $u={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class vc{constructor(t,n,s,l){this.length=n.length,this.attributes=s,this.itemSize=n.bytesPerElement,this.dynamicDraw=l,this.context=t;const p=t.gl;this.buffer=p.createBuffer(),t.bindVertexBuffer.set(this.buffer),p.bufferData(p.ARRAY_BUFFER,n.arrayBuffer,this.dynamicDraw?p.DYNAMIC_DRAW:p.STATIC_DRAW),this.dynamicDraw||delete n.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(t){if(t.length!==this.length)throw new Error(`Length of new data is ${t.length}, which doesn't match current length of ${this.length}`);const n=this.context.gl;this.bind(),n.bufferSubData(n.ARRAY_BUFFER,0,t.arrayBuffer)}enableAttributes(t,n){for(let s=0;s0&&(w.push({circleArray:Y,circleOffset:I,coord:Z}),T+=Y.length/4,I=T),q&&x.draw(p,g.LINES,Xe.disabled,rt.disabled,d.colorModeForRenderPass(),tt.disabled,hc(d.transform),d.style.map.terrain&&d.style.map.terrain.getTerrainData(Z),m.getProjectionData({overscaledTileID:Z,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),n.id,q.layoutVertexBuffer,q.indexBuffer,q.segments,null,d.transform.zoom,null,null,q.collisionVertexBuffer)}if(!l||!w.length)return;const M=d.useProgram("collisionCircle"),z=new c.ca;z.resize(4*T),z._trim();let L=0;for(const N of w)for(let Z=0;Z=0&&(j[N.associatedIconIndex]={shiftedAnchor:_e,angle:Le})}else An(N.numGlyphs,z)}if(x){L.clear();const U=d.icon.placedSymbolArray;for(let N=0;Nd.style.map.terrain.getElevation(ue,Zi,Kt):null,St=n.layout.get("text-rotation-alignment")==="map";Ba(he,d,l,wi,Gr,N,w,St,ue.toUnwrapped(),j.width,j.height,Ti,ht)}const wa=l&&W||Ts,zi=Z||wa?Ku:N?wi:d.transform.clipSpaceToPixelsMatrix,ir=_e&&n.paint.get(l?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let Gi;Gi=_e?he.iconsInText?Qo(Le.kind,_t,X,N,Z,wa,d,zi,Pr,Ti,wt,si,de):hn(Le.kind,_t,X,N,Z,wa,d,zi,Pr,Ti,l,wt,0,de):Ys(Le.kind,_t,X,N,Z,wa,d,zi,Pr,Ti,l,wt,de);const qi={program:lt,buffers:Me,uniformValues:Gi,projectionData:qr,atlasTexture:ct,atlasTextureIcon:zt,atlasInterpolation:$t,atlasInterpolationIcon:Tt,isSDF:_e,hasHalo:ir};if(q&&he.canOverlap){Y=!0;const ht=Me.segments.get();for(const St of ht)te.push({segments:new c.aX([St]),sortKey:St.sortKey,state:qi,terrainData:ft})}else te.push({segments:Me.segments,sortKey:0,state:qi,terrainData:ft})}Y&&te.sort(((ue,le)=>ue.sortKey-le.sortKey));for(const ue of te){const le=ue.state;if(z.activeTexture.set(L.TEXTURE0),le.atlasTexture.bind(le.atlasInterpolation,L.CLAMP_TO_EDGE),le.atlasTextureIcon&&(z.activeTexture.set(L.TEXTURE1),le.atlasTextureIcon&&le.atlasTextureIcon.bind(le.atlasInterpolationIcon,L.CLAMP_TO_EDGE)),le.isSDF){const he=le.uniformValues;le.hasHalo&&(he.u_is_halo=1,al(le.buffers,ue.segments,n,d,le.program,Q,T,I,he,le.projectionData,ue.terrainData)),he.u_is_halo=0}al(le.buffers,ue.segments,n,d,le.program,Q,T,I,le.uniformValues,le.projectionData,ue.terrainData)}}function al(d,t,n,s,l,p,m,g,x,w,T){const I=s.context;l.draw(I,I.gl.TRIANGLES,p,m,g,tt.backCCW,x,T,w,n.id,d.layoutVertexBuffer,d.indexBuffer,t,n.paint,s.transform.zoom,d.programConfigurations.get(n.id),d.dynamicLayoutVertexBuffer,d.opacityVertexBuffer)}function Cc(d,t,n,s,l){const p=d.context,m=p.gl,g=rt.disabled,x=new dt([m.ONE,m.ONE],c.bp.transparent,[!0,!0,!0,!0]),w=t.getBucket(n);if(!w)return;const T=s.key;let I=n.heatmapFbos.get(T);I||(I=uo(p,t.tileSize,t.tileSize),n.heatmapFbos.set(T,I)),p.bindFramebuffer.set(I.framebuffer),p.viewport.set([0,0,t.tileSize,t.tileSize]),p.clear({color:c.bp.transparent});const M=w.programConfigurations.get(n.id),z=d.useProgram("heatmap",M,!l),L=d.transform.getProjectionData({overscaledTileID:t.tileID,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),j=d.style.map.terrain.getTerrainData(s);z.draw(p,m.TRIANGLES,Xe.disabled,g,x,tt.disabled,pc(t,d.transform.zoom,n.paint.get("heatmap-intensity"),1),j,L,n.id,w.layoutVertexBuffer,w.indexBuffer,w.segments,n.paint,d.transform.zoom,M)}function co(d,t,n,s,l){const p=d.context,m=p.gl,g=d.transform;p.setColorMode(d.colorModeForRenderPass());const x=Ac(p,t),w=n.key,T=t.heatmapFbos.get(w);if(!T)return;p.activeTexture.set(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,T.colorAttachment.get()),p.activeTexture.set(m.TEXTURE1),x.bind(m.LINEAR,m.CLAMP_TO_EDGE);const I=g.getProjectionData({overscaledTileID:n,applyTerrainMatrix:l,applyGlobeMatrix:!s});d.useProgram("heatmapTexture").draw(p,m.TRIANGLES,Xe.disabled,rt.disabled,d.colorModeForRenderPass(),tt.disabled,Ka(d,t,0,1),null,I,t.id,d.rasterBoundsBuffer,d.quadTriangleIndexBuffer,d.rasterBoundsSegments,t.paint,g.zoom),T.destroy(),t.heatmapFbos.delete(w)}function uo(d,t,n){var s,l;const p=d.gl,m=p.createTexture();p.bindTexture(p.TEXTURE_2D,m),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 g=(s=d.HALF_FLOAT)!==null&&s!==void 0?s:p.UNSIGNED_BYTE,x=(l=d.RGBA16F)!==null&&l!==void 0?l:p.RGBA;p.texImage2D(p.TEXTURE_2D,0,x,t,n,0,p.RGBA,g,null);const w=d.createFramebuffer(t,n,!1,!1);return w.colorAttachment.set(m),w}function Ac(d,t){return t.colorRampTexture||(t.colorRampTexture=new c.T(d,t.colorRamp,d.gl.RGBA)),t.colorRampTexture}function sl(d,t,n,s,l,p,m,g){let x=256;if(l.stepInterpolant){const w=t.getSource().maxzoom,T=m.canonical.z===w?Math.ceil(1<d.options.anisotropicFilterPitch&&M.texParameterf(M.TEXTURE_2D,I.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,I.extTextureFilterAnisotropicMax);const Ie=d.style.map.terrain&&d.style.map.terrain.getTerrainData(Q),_e=L.getProjectionData({overscaledTileID:Q,aligned:N,applyGlobeMatrix:!w,applyTerrainMatrix:!0}),Le=Jo(he,le,Me.fadeMix,n,g),He=j.getMeshFromTileID(I,Q.canonical,p,m,"raster");z.draw(I,M.TRIANGLES,W,l?l[Q.overscaledZ]:rt.disabled,U,x?tt.frontCCW:tt.backCCW,Le,Ie,_e,n.id,He.vertexBuffer,He.indexBuffer,He.segments)}}function zc(d,t,n,s){const l={parentTile:null,parentScaleBy:1,parentTopLeft:[0,0],fadeValues:{tileOpacity:1,parentTileOpacity:1,fadeMix:{opacity:1,mix:0}}};if(n===0||s)return l;if(d.fadingParentID){const p=t.getLoadedTile(d.fadingParentID);if(!p)return l;const m=Math.pow(2,p.tileID.overscaledZ-d.tileID.overscaledZ),g=[d.tileID.canonical.x*m%1,d.tileID.canonical.y*m%1],x=(function(w,T,I){const M=it(),z=(M-T.timeAdded)/I,L=w.fadingDirection===J.Incoming,j=c.an((M-w.timeAdded)/I,0,1),U=c.an(1-z,0,1),N=L?j:U;return{tileOpacity:N,parentTileOpacity:L?U:j,fadeMix:{opacity:1,mix:1-N}}})(d,p,n);return{parentTile:p,parentScaleBy:m,parentTopLeft:g,fadeValues:x}}if(d.selfFading){const p=(function(m,g){const x=(it()-m.timeAdded)/g,w=c.an(x,0,1);return{tileOpacity:w,fadeMix:{opacity:w,mix:0}}})(d,n);return{parentTile:null,parentScaleBy:1,parentTopLeft:[0,0],fadeValues:p}}return l}const Dc=new c.bp(1,0,0,1),kc=new c.bp(0,1,0,1),Rc=new c.bp(0,0,1,1),pn=new c.bp(1,0,1,1),Lc=new c.bp(0,1,1,1);function cl(d,t,n,s){us(d,0,t+n/2,d.transform.width,n,s)}function ul(d,t,n,s){us(d,t-n/2,0,n,d.transform.height,s)}function us(d,t,n,s,l,p){const m=d.context,g=m.gl;g.enable(g.SCISSOR_TEST),g.scissor(t*d.pixelRatio,n*d.pixelRatio,s*d.pixelRatio,l*d.pixelRatio),m.clear({color:p}),g.disable(g.SCISSOR_TEST)}function Fc(d,t,n){const s=d.context,l=s.gl,p=d.useProgram("debug"),m=Xe.disabled,g=rt.disabled,x=d.colorModeForRenderPass(),w="$debug",T=d.style.map.terrain&&d.style.map.terrain.getTerrainData(n);s.activeTexture.set(l.TEXTURE0);const I=t.getTileByID(n.key).latestRawTileData,M=Math.floor((I&&I.byteLength||0)/1024),z=t.getTile(n).tileSize,L=512/Math.min(z,512)*(n.overscaledZ/d.transform.zoom)*.5;let j=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(j+=` => ${n.overscaledZ}`),(function(N,Z){N.initDebugOverlayCanvas();const X=N.debugOverlayCanvas,q=N.context.gl,Y=N.debugOverlayCanvas.getContext("2d");Y.clearRect(0,0,X.width,X.height),Y.shadowColor="white",Y.shadowBlur=2,Y.lineWidth=1.5,Y.strokeStyle="white",Y.textBaseline="top",Y.font="bold 36px Open Sans, sans-serif",Y.fillText(Z,5,5),Y.strokeText(Z,5,5),N.debugOverlayTexture.update(X),N.debugOverlayTexture.bind(q.LINEAR,q.CLAMP_TO_EDGE)})(d,`${j} ${M}kB`);const U=d.transform.getProjectionData({overscaledTileID:n,applyGlobeMatrix:!0,applyTerrainMatrix:!0});p.draw(s,l.TRIANGLES,m,g,dt.alphaBlended,tt.disabled,ma(c.bp.transparent,L),null,U,w,d.debugBuffer,d.quadTriangleIndexBuffer,d.debugSegments),p.draw(s,l.LINE_STRIP,m,g,x,tt.disabled,ma(c.bp.red),T,U,w,d.debugBuffer,d.tileBorderIndexBuffer,d.debugSegments)}function hl(d,t,n,s){const{isRenderingGlobe:l}=s,p=d.context,m=p.gl,g=d.transform,x=d.colorModeForRenderPass(),w=d.getDepthModeFor3D(),T=d.useProgram("terrain");p.bindFramebuffer.set(null),p.viewport.set([0,0,d.width,d.height]);for(const I of n){const M=t.getTerrainMesh(I.tileID),z=d.renderToTexture.getTexture(I),L=t.getTerrainData(I.tileID);p.activeTexture.set(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,z.texture);const j=t.getMeshFrameDelta(g.zoom),U=g.calculateFogMatrix(I.tileID.toUnwrapped()),N=fa(j,U,d.style.sky,g.pitch,l),Z=g.getProjectionData({overscaledTileID:I.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});T.draw(p,m.TRIANGLES,w,rt.disabled,x,tt.backCCW,N,L,Z,"terrain",M.vertexBuffer,M.indexBuffer,M.segments)}}function dl(d,t){if(!t.mesh){const n=new c.aW;n.emplaceBack(-1,-1),n.emplaceBack(1,-1),n.emplaceBack(1,1),n.emplaceBack(-1,1);const s=new c.aY;s.emplaceBack(0,1,2),s.emplaceBack(0,2,3),t.mesh=new ca(d.createVertexBuffer(n,Gt.members),d.createIndexBuffer(s),c.aX.simpleSegment(0,0,n.length,s.length))}return t.mesh}class Bc{constructor(t,n){this.context=new ns(t),this.transform=n,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:c.ar(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=Pe.maxOverzooming+Pe.maxUnderzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new pi}resize(t,n,s){if(this.width=Math.floor(t*s),this.height=Math.floor(n*s),this.pixelRatio=s,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 t=this.context,n=new c.aW;n.emplaceBack(0,0),n.emplaceBack(c.a5,0),n.emplaceBack(0,c.a5),n.emplaceBack(c.a5,c.a5),this.tileExtentBuffer=t.createVertexBuffer(n,Gt.members),this.tileExtentSegments=c.aX.simpleSegment(0,0,4,2);const s=new c.aW;s.emplaceBack(0,0),s.emplaceBack(c.a5,0),s.emplaceBack(0,c.a5),s.emplaceBack(c.a5,c.a5),this.debugBuffer=t.createVertexBuffer(s,Gt.members),this.debugSegments=c.aX.simpleSegment(0,0,4,5);const l=new c.ch;l.emplaceBack(0,0,0,0),l.emplaceBack(c.a5,0,c.a5,0),l.emplaceBack(0,c.a5,0,c.a5),l.emplaceBack(c.a5,c.a5,c.a5,c.a5),this.rasterBoundsBuffer=t.createVertexBuffer(l,$s.members),this.rasterBoundsSegments=c.aX.simpleSegment(0,0,4,2);const p=new c.aW;p.emplaceBack(0,0),p.emplaceBack(c.a5,0),p.emplaceBack(0,c.a5),p.emplaceBack(c.a5,c.a5),this.rasterBoundsBufferPosOnly=t.createVertexBuffer(p,Gt.members),this.rasterBoundsSegmentsPosOnly=c.aX.simpleSegment(0,0,4,5);const m=new c.aW;m.emplaceBack(0,0),m.emplaceBack(1,0),m.emplaceBack(0,1),m.emplaceBack(1,1),this.viewportBuffer=t.createVertexBuffer(m,Gt.members),this.viewportSegments=c.aX.simpleSegment(0,0,4,2);const g=new c.ci;g.emplaceBack(0),g.emplaceBack(1),g.emplaceBack(3),g.emplaceBack(2),g.emplaceBack(0),this.tileBorderIndexBuffer=t.createIndexBuffer(g);const x=new c.aY;x.emplaceBack(1,0,2),x.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=t.createIndexBuffer(x);const w=this.context.gl;this.stencilClearMode=new rt({func:w.ALWAYS,mask:0},0,255,w.ZERO,w.ZERO,w.ZERO),this.tileExtentMesh=new ca(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}clearStencil(){const t=this.context,n=t.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const s=c.N();c.c7(s,0,this.width,this.height,0,0,1),c.Q(s,s,[n.drawingBufferWidth,n.drawingBufferHeight,0]);const l={mainMatrix:s,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:s};this.useProgram("clippingMask",null,!0).draw(t,n.TRIANGLES,Xe.disabled,this.stencilClearMode,dt.disabled,tt.disabled,null,null,l,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(t,n,s){if(this.currentStencilSource===t.source||!t.isTileClipped()||!n||!n.length)return;this.currentStencilSource=t.source,this.nextStencilID+n.length>256&&this.clearStencil();const l=this.context;l.setColorMode(dt.disabled),l.setDepthMode(Xe.disabled);const p={};for(const m of n)p[m.key]=this.nextStencilID++;this._renderTileMasks(p,n,s,!0),this._renderTileMasks(p,n,s,!1),this._tileClippingMaskIDs=p}_renderTileMasks(t,n,s,l){const p=this.context,m=p.gl,g=this.style.projection,x=this.transform,w=this.useProgram("clippingMask");for(const T of n){const I=t[T.key],M=this.style.map.terrain&&this.style.map.terrain.getTerrainData(T),z=g.getMeshFromTileID(this.context,T.canonical,l,!0,"stencil"),L=x.getProjectionData({overscaledTileID:T,applyGlobeMatrix:!s,applyTerrainMatrix:!0});w.draw(p,m.TRIANGLES,Xe.disabled,new rt({func:m.ALWAYS,mask:0},I,255,m.KEEP,m.KEEP,m.REPLACE),dt.disabled,s?tt.disabled:tt.backCCW,null,M,L,"$clipping",z.vertexBuffer,z.indexBuffer,z.segments)}}_renderTilesDepthBuffer(){const t=this.context,n=t.gl,s=this.style.projection,l=this.transform,p=this.useProgram("depth"),m=this.getDepthModeFor3D(),g=mt(l,{tileSize:l.tileSize});for(const x of g){const w=this.style.map.terrain&&this.style.map.terrain.getTerrainData(x),T=s.getMeshFromTileID(this.context,x.canonical,!0,!0,"raster"),I=l.getProjectionData({overscaledTileID:x,applyGlobeMatrix:!0,applyTerrainMatrix:!0});p.draw(t,n.TRIANGLES,m,rt.disabled,dt.disabled,tt.backCCW,null,w,I,"$clipping",T.vertexBuffer,T.indexBuffer,T.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const t=this.nextStencilID++,n=this.context.gl;return new rt({func:n.NOTEQUAL,mask:255},t,255,n.KEEP,n.KEEP,n.REPLACE)}stencilModeForClipping(t){const n=this.context.gl;return new rt({func:n.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,n.KEEP,n.KEEP,n.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(t){const n=this.context.gl,s=t.sort(((m,g)=>g.overscaledZ-m.overscaledZ)),l=s[s.length-1].overscaledZ,p=s[0].overscaledZ-l+1;if(p>1){this.currentStencilSource=void 0,this.nextStencilID+p>256&&this.clearStencil();const m={};for(let g=0;gg.overscaledZ-m.overscaledZ)),l=s[s.length-1].overscaledZ,p=s[0].overscaledZ-l+1;if(this.clearStencil(),p>1){const m={},g={};for(let x=0;x0};for(const M in m){const z=m[M];z.used&&z.prepare(this.context),g[M]=z.getVisibleCoordinates(!1),x[M]=g[M].slice().reverse(),w[M]=z.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let M=0;Mthis.useProgram(M)}),this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:n.showOverdrawInspector?c.bp.black:c.bp.transparent,depth:1}),this.clearStencil(),this.style.sky&&(function(M,z){const L=M.context,j=L.gl,U=((Q,W,te)=>{const de=Math.cos(W.rollInRadians),ue=Math.sin(W.rollInRadians),le=me(W),he=W.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition;return{u_sky_color:Q.properties.get("sky-color"),u_horizon_color:Q.properties.get("horizon-color"),u_horizon:[(W.width/2-le*ue)*te,(W.height/2+le*de)*te],u_horizon_normal:[-ue,de],u_sky_horizon_blend:Q.properties.get("sky-horizon-blend")*W.height/2*te,u_sky_blend:he}})(z,M.style.map.transform,M.pixelRatio),N=new Xe(j.LEQUAL,Xe.ReadWrite,[0,1]),Z=rt.disabled,X=M.colorModeForRenderPass(),q=M.useProgram("sky"),Y=dl(L,z);q.draw(L,j.TRIANGLES,N,Z,X,tt.disabled,U,null,void 0,"sky",Y.vertexBuffer,Y.indexBuffer,Y.segments)})(this,this.style.sky),this._showOverdrawInspector=n.showOverdrawInspector,this.depthRangeFor3D=[0,1-(t._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=p.length-1;this.currentLayer>=0;this.currentLayer--){const M=this.style._layers[p[this.currentLayer]],z=m[M.source],L=g[M.source];this._renderTileClippingMasks(M,L,!1),this.renderLayer(this,z,M,L,T)}this.renderPass="translucent";let I=!1;for(this.currentLayer=0;this.currentLayer({u_sun_pos:he,u_atmosphere_blend:Me,u_globe_position:Ie,u_globe_radius:_e,u_inv_proj_matrix:Le}))(q,Q,[de[0],de[1],de[2]],W,te),le=dl(j,z);N.draw(j,U.TRIANGLES,Z,rt.disabled,dt.alphaBlended,tt.disabled,ue,null,null,"atmosphere",le.vertexBuffer,le.indexBuffer,le.segments)})(this,this.style.sky,this.style.light),this.options.showTileBoundaries){const M=(function(z,L){let j=null;const U=Object.values(z._layers).flatMap((q=>q.source&&!q.isHidden(L)?[z.tileManagers[q.source]]:[])),N=U.filter((q=>q.getSource().type==="vector")),Z=U.filter((q=>q.getSource().type!=="vector")),X=q=>{(!j||j.getSource().maxzoomX(q))),j||Z.forEach((q=>X(q))),j})(this.style,this.transform.zoom);M&&(function(z,L,j){for(let U=0;Ude.getElevation(he,wt,ct):null;Ec(Ie,ue,le,W,te,He,_t,_e,lt,c.aO(te,Me,Y,Q),he.toUnwrapped(),ft)}}})(w,m,x,g,x.layout.get("text-rotation-alignment"),x.layout.get("text-pitch-alignment"),x.paint.get("text-translate"),x.paint.get("text-translate-anchor"),T),x.paint.get("icon-opacity").constantOr(1)!==0&&lo(m,g,x,w,!1,x.paint.get("icon-translate"),x.paint.get("icon-translate-anchor"),x.layout.get("icon-rotation-alignment"),x.layout.get("icon-pitch-alignment"),x.layout.get("icon-keep-upright"),z,L,M),x.paint.get("text-opacity").constantOr(1)!==0&&lo(m,g,x,w,!0,x.paint.get("text-translate"),x.paint.get("text-translate-anchor"),x.layout.get("text-rotation-alignment"),x.layout.get("text-pitch-alignment"),x.layout.get("text-keep-upright"),z,L,M),g.map.showCollisionBoxes&&(so(m,g,x,w,!0),so(m,g,x,w,!1))})(t,n,s,l,this.style.placement.variableOffsets,p):c.cn(s)?(function(m,g,x,w,T){if(m.renderPass!=="translucent")return;const{isRenderingToTexture:I}=T,M=x.paint.get("circle-opacity"),z=x.paint.get("circle-stroke-width"),L=x.paint.get("circle-stroke-opacity"),j=!x.layout.get("circle-sort-key").isConstant();if(M.constantOr(1)===0&&(z.constantOr(1)===0||L.constantOr(1)===0))return;const U=m.context,N=U.gl,Z=m.transform,X=m.getDepthModeForSublayer(0,Xe.ReadOnly),q=rt.disabled,Y=m.colorModeForRenderPass(),Q=[],W=Z.getCircleRadiusCorrection();for(let te=0;tete.sortKey-de.sortKey));for(const te of Q){const{programConfiguration:de,program:ue,layoutVertexBuffer:le,indexBuffer:he,uniformValues:Me,terrainData:Ie,projectionData:_e}=te.state;ue.draw(U,N.TRIANGLES,X,q,Y,tt.backCCW,Me,Ie,_e,x.id,le,he,te.segments,x.paint,m.transform.zoom,de)}})(t,n,s,l,p):c.co(s)?(function(m,g,x,w,T){if(x.paint.get("heatmap-opacity")===0)return;const I=m.context,{isRenderingToTexture:M,isRenderingGlobe:z}=T;if(m.style.map.terrain){for(const L of w){const j=g.getTile(L);g.hasRenderableParent(L)||(m.renderPass==="offscreen"?Cc(m,j,x,L,z):m.renderPass==="translucent"&&co(m,x,L,M,z))}I.viewport.set([0,0,m.width,m.height])}else m.renderPass==="offscreen"?(function(L,j,U,N){const Z=L.context,X=Z.gl,q=L.transform,Y=rt.disabled,Q=new dt([X.ONE,X.ONE],c.bp.transparent,[!0,!0,!0,!0]);(function(W,te,de){const ue=W.gl;W.activeTexture.set(ue.TEXTURE1),W.viewport.set([0,0,te.width/4,te.height/4]);let le=de.heatmapFbos.get(c.cd);le?(ue.bindTexture(ue.TEXTURE_2D,le.colorAttachment.get()),W.bindFramebuffer.set(le.framebuffer)):(le=uo(W,te.width/4,te.height/4),de.heatmapFbos.set(c.cd,le))})(Z,L,U),Z.clear({color:c.bp.transparent});for(let W=0;W0?n.pop():null}isPatternMissing(t){if(!t)return!1;if(!t.from||!t.to)return!0;const n=this.imageManager.getPattern(t.from.toString()),s=this.imageManager.getPattern(t.to.toString());return!n||!s}useProgram(t,n,s=!1,l=[]){this.cache=this.cache||{};const p=!!this.style.map.terrain,m=this.style.projection,g=s?yt.projectionMercator:m.shaderPreludeCode,x=s?Oi:m.shaderDefine,w=t+(n?n.cacheKey:"")+`/${s?Ai:m.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(p?"/terrain":"")+(l?`/${l.join("/")}`:"");return this.cache[w]||(this.cache[w]=new ju(this.context,yt[t],n,Zu[t],this._showOverdrawInspector,p,g,x,l)),this.cache[w]}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 t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new c.T(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){var t,n;if(this._tileTextures){for(const s in this._tileTextures){const l=this._tileTextures[s];if(l)for(const p of l)p.destroy()}this._tileTextures={}}if(this.tileExtentBuffer&&this.tileExtentBuffer.destroy(),this.debugBuffer&&this.debugBuffer.destroy(),this.rasterBoundsBuffer&&this.rasterBoundsBuffer.destroy(),this.rasterBoundsBufferPosOnly&&this.rasterBoundsBufferPosOnly.destroy(),this.viewportBuffer&&this.viewportBuffer.destroy(),this.tileBorderIndexBuffer&&this.tileBorderIndexBuffer.destroy(),this.quadTriangleIndexBuffer&&this.quadTriangleIndexBuffer.destroy(),this.tileExtentMesh&&((t=this.tileExtentMesh.vertexBuffer)===null||t===void 0||t.destroy()),this.tileExtentMesh&&((n=this.tileExtentMesh.indexBuffer)===null||n===void 0||n.destroy()),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.cache){for(const s in this.cache){const l=this.cache[s];l&&l.program&&this.context.gl.deleteProgram(l.program)}this.cache={}}this.context&&this.context.setDefault()}overLimit(){const{drawingBufferWidth:t,drawingBufferHeight:n}=this.context.gl;return this.width!==t||this.height!==n}}function pl(d,t){let n,s=!1,l=null,p=null;const m=()=>{l=null,s&&(d.apply(p,n),l=setTimeout(m,t),s=!1)};return(...g)=>(s=!0,p=this,n=g,l||m(),l)}class hs{constructor(t){this._getCurrentHash=()=>{const n=window.location.hash.replace("#","");if(this._hashName){let s;return n.split("&").map((l=>l.split("="))).forEach((l=>{l[0]===this._hashName&&(s=l)})),(s&&s[1]||"").split("/")}return n.split("/")},this._onHashChange=()=>{const n=this._getCurrentHash();if(!this._isValidHash(n))return!1;const s=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(n[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+n[2],+n[1]],zoom:+n[0],bearing:s,pitch:+(n[4]||0)}),!0},this._updateHashUnthrottled=()=>{const n=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,n)},this._removeHash=()=>{const n=this._getCurrentHash();if(n.length===0)return;const s=n.join("/");let l=s;l.split("&").length>0&&(l=l.split("&")[0]),this._hashName&&(l=`${this._hashName}=${s}`);let p=window.location.hash.replace(l,"");p.startsWith("#&")?p=p.slice(0,1)+p.slice(2):p==="#"&&(p="");let m=window.location.href.replace(/(#.+)?$/,p);m=m.replace("&&","&"),window.history.replaceState(window.history.state,null,m)},this._updateHash=pl(this._updateHashUnthrottled,300),this._hashName=t&&encodeURIComponent(t)}addTo(t){return this._map=t,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(t){const n=this._map.getCenter(),s=Math.round(100*this._map.getZoom())/100,l=Math.ceil((s*Math.LN2+Math.log(512/360/.5))/Math.LN10),p=Math.pow(10,l),m=Math.round(n.lng*p)/p,g=Math.round(n.lat*p)/p,x=this._map.getBearing(),w=this._map.getPitch();let T="";if(T+=t?`/${m}/${g}/${s}`:`${s}/${g}/${m}`,(x||w)&&(T+="/"+Math.round(10*x)/10),w&&(T+=`/${Math.round(w)}`),this._hashName){const I=this._hashName;let M=!1;const z=window.location.hash.slice(1).split("&").map((L=>{const j=L.split("=")[0];return j===I?(M=!0,`${j}=${T}`):L})).filter((L=>L));return M||z.push(`${I}=${T}`),`#${z.join("&")}`}return`#${T}`}_isValidHash(t){if(t.length<3||t.some(isNaN))return!1;try{new c.V(+t[2],+t[1])}catch{return!1}const n=+t[0],s=+(t[3]||0),l=+(t[4]||0);return n>=this._map.getMinZoom()&&n<=this._map.getMaxZoom()&&s>=-180&&s<=180&&l>=this._map.getMinPitch()&&l<=this._map.getMaxPitch()}}const xa={linearity:.3,easing:c.cw(0,0,.3,1)},tr=c.e({deceleration:2500,maxSpeed:1400},xa),hr=c.e({deceleration:20,maxSpeed:1400},xa),Oc=c.e({deceleration:1e3,maxSpeed:360},xa),dr=c.e({deceleration:1e3,maxSpeed:90},xa),Qu=c.e({deceleration:1e3,maxSpeed:360},xa);class eh{constructor(t){this._map=t,this.clear()}clear(){this._inertiaBuffer=[]}record(t){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:it(),settings:t})}_drainInertiaBuffer(){const t=this._inertiaBuffer,n=it();for(;t.length>0&&n-t[0].time>160;)t.shift()}_onMoveEnd(t){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const n={zoom:0,bearing:0,pitch:0,roll:0,pan:new c.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:p}of this._inertiaBuffer)n.zoom+=p.zoomDelta||0,n.bearing+=p.bearingDelta||0,n.pitch+=p.pitchDelta||0,n.roll+=p.rollDelta||0,p.panDelta&&n.pan._add(p.panDelta),p.around&&(n.around=p.around),p.pinchAround&&(n.pinchAround=p.pinchAround);const s=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,l={};if(n.pan.mag()){const p=wr(n.pan.mag(),s,c.e({},tr,t||{})),m=n.pan.mult(p.amount/n.pan.mag()),g=this._map.cameraHelper.handlePanInertia(m,this._map.transform);l.center=g.easingCenter,l.offset=g.easingOffset,ds(l,p)}if(n.zoom){const p=wr(n.zoom,s,hr),m=c.cx(this._map.transform.zoom+p.amount,this._map.getZoomSnap(),p.amount);l.zoom=m,ds(l,p)}if(n.bearing){const p=wr(n.bearing,s,Oc);l.bearing=this._map.transform.bearing+c.an(p.amount,-179,179),ds(l,p)}if(n.pitch){const p=wr(n.pitch,s,dr);l.pitch=this._map.transform.pitch+p.amount,ds(l,p)}if(n.roll){const p=wr(n.roll,s,Qu);l.roll=this._map.transform.roll+c.an(p.amount,-179,179),ds(l,p)}if(l.zoom||l.bearing){const p=n.pinchAround===void 0?n.around:n.pinchAround;l.around=p?this._map.unproject(p):this._map.getCenter()}return this.clear(),c.e(l,{noMoveStart:!0})}}function ds(d,t){(!d.duration||d.durationn.unproject(x))),g=p.reduce(((x,w,T,I)=>x.add(w.div(I.length))),new c.P(0,0));super(t,{points:p,point:g,lngLats:m,lngLat:n.unproject(g),originalEvent:s}),this._defaultPrevented=!1}}class Vc extends c.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(t,n,s){super(t,{originalEvent:s}),this._defaultPrevented=!1}}class th{constructor(t,n){this._map=t,this._clickTolerance=n.clickTolerance}reset(){delete this._mousedownPos}wheel(t){return this._firePreventable(new Vc(t.type,this._map,t))}mousedown(t,n){return this._mousedownPos=n,this._firePreventable(new Ui(t.type,this._map,t))}mouseup(t){this._map.fire(new Ui(t.type,this._map,t))}click(t,n){this._mousedownPos&&this._mousedownPos.dist(n)>=this._clickTolerance||this._map.fire(new Ui(t.type,this._map,t))}dblclick(t){return this._firePreventable(new Ui(t.type,this._map,t))}mouseover(t){this._map.fire(new Ui(t.type,this._map,t))}mouseout(t){this._map.fire(new Ui(t.type,this._map,t))}touchstart(t){return this._firePreventable(new ps(t.type,this._map,t))}touchmove(t){this._map.fire(new ps(t.type,this._map,t))}touchend(t){this._map.fire(new ps(t.type,this._map,t))}touchcancel(t){this._map.fire(new ps(t.type,this._map,t))}_firePreventable(t){if(this._map.fire(t),t.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class jc{constructor(t){this._map=t}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(t){this._map.fire(new Ui(t.type,this._map,t))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Ui("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(t){this._delayContextMenu?this._contextMenuEvent=t:this._ignoreContextMenu||this._map.fire(new Ui(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Vr{constructor(t){this._map=t}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(t){return this.transform.screenPointToLocation(c.P.convert(t),this._map.terrain)}}class Tr{constructor(t,n){this._map=t,this._tr=new Vr(t),this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=n.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(t,n){this.isEnabled()&&t.shiftKey&&t.button===0&&(fe.disableDrag(),this._startPos=this._lastPos=n,this._active=!0)}mousemoveWindow(t,n){if(!this._active)return;const s=n;if(this._lastPos.equals(s)||!this._box&&s.dist(this._startPos)p.fitScreenCoordinates(s,l,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",t)}keydown(t){this._active&&t.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",t))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(fe.remove(this._box),this._box=null),fe.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(t,n){return this._map.fire(new c.l(t,{originalEvent:n}))}}function De(d,t){if(d.length!==t.length)throw new Error(`The number of touches and points are not equal - touches ${d.length}, points ${t.length}`);const n={};for(let s=0;sthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=t.timeStamp),s.length===this.numTouches&&(this.centroid=(function(l){const p=new c.P(0,0);for(const m of l)p._add(m);return p.div(l.length)})(n),this.touches=De(s,n)))}touchmove(t,n,s){if(this.aborted||!this.centroid)return;const l=De(s,n);for(const p in this.touches){const m=l[p];(!m||m.dist(this.touches[p])>30)&&(this.aborted=!0)}}touchend(t,n,s){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),s.length===0){const l=!this.aborted&&this.centroid;if(this.reset(),l)return l}}}class fs{constructor(t){this.singleTap=new Nc(t),this.numTaps=t.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(t,n,s){this.singleTap.touchstart(t,n,s)}touchmove(t,n,s){this.singleTap.touchmove(t,n,s)}touchend(t,n,s){const l=this.singleTap.touchend(t,n,s);if(l){const p=t.timeStamp-this.lastTime<500,m=!this.lastTap||this.lastTap.dist(l)<30;if(p&&m||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=l,this.count===this.numTaps)return this.reset(),l}}}class Uc{constructor(t){this._tr=new Vr(t),this._zoomIn=new fs({numTouches:1,numTaps:2}),this._zoomOut=new fs({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(t,n,s){this._zoomIn.touchstart(t,n,s),this._zoomOut.touchstart(t,n,s)}touchmove(t,n,s){this._zoomIn.touchmove(t,n,s),this._zoomOut.touchmove(t,n,s)}touchend(t,n,s){const l=this._zoomIn.touchend(t,n,s),p=this._zoomOut.touchend(t,n,s),m=this._tr;return l?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:g=>g.easeTo({duration:300,zoom:c.cx(m.zoom+1,g.getZoomSnap()),around:m.unproject(l)},{originalEvent:t})}):p?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:g=>g.easeTo({duration:300,zoom:c.cx(m.zoom-1,g.getZoomSnap()),around:m.unproject(p)},{originalEvent:t})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class jr{constructor(t){this._enabled=!!t.enable,this._moveStateManager=t.moveStateManager,this._clickTolerance=t.clickTolerance||1,this._moveFunction=t.move,this._activateOnStart=!!t.activateOnStart,t.assignEvents(this),this.reset()}reset(t){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(t)}_move(...t){const n=this._moveFunction(...t);if(n.bearingDelta||n.pitchDelta||n.rollDelta||n.around||n.panDelta)return this._active=!0,n}dragStart(t,n){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(t)&&(this._moveStateManager.startMove(t),this._lastPoint=Array.isArray(n)?n[0]:n,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(t,n){if(!this.isEnabled())return;const s=this._lastPoint;if(!s)return;if(t.preventDefault(),!this._moveStateManager.isValidMoveEvent(t))return void this.reset(t);const l=Array.isArray(n)?n[0]:n;return!this._moved&&l.dist(s)!0}),n=new Gc){this.mouseMoveStateManager=t,this.oneFingerTouchMoveStateManager=n}_executeRelevantHandler(t,n,s){return t instanceof MouseEvent?n(t):typeof TouchEvent<"u"&&t instanceof TouchEvent?s(t):void 0}startMove(t){this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.startMove(n)),(n=>this.oneFingerTouchMoveStateManager.startMove(n)))}endMove(t){this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.endMove(n)),(n=>this.oneFingerTouchMoveStateManager.endMove(n)))}isValidStartEvent(t){return this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.isValidStartEvent(n)),(n=>this.oneFingerTouchMoveStateManager.isValidStartEvent(n)))}isValidMoveEvent(t){return this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.isValidMoveEvent(n)),(n=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(n)))}isValidEndEvent(t){return this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.isValidEndEvent(n)),(n=>this.oneFingerTouchMoveStateManager.isValidEndEvent(n)))}}const ho=d=>{d.mousedown=d.dragStart,d.mousemoveWindow=d.dragMove,d.mouseup=d.dragEnd,d.contextmenu=t=>{t.preventDefault()}};class qc{constructor(t,n){this._clickTolerance=t.clickTolerance||1,this._map=n,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new c.P(0,0)}_shouldBePrevented(t){return t<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(t,n,s){return this._calculateTransform(t,n,s)}touchmove(t,n,s){if(this._active){if(!this._shouldBePrevented(s.length))return t.preventDefault(),this._calculateTransform(t,n,s);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",t)}}touchend(t,n,s){this._calculateTransform(t,n,s),this._active&&this._shouldBePrevented(s.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(t,n,s){s.length>0&&(this._active=!0);const l=De(s,n),p=new c.P(0,0),m=new c.P(0,0);let g=0;for(const w in l){const T=l[w],I=this._touches[w];I&&(p._add(T),m._add(T.sub(I)),g++,l[w]=T)}if(this._touches=l,this._shouldBePrevented(g)||!m.mag())return;const x=m.div(g);return this._sum._add(x),this._sum.mag()Math.abs(d.x)}class Nr extends _l{constructor(t){super(),this._currentTouchCount=0,this._map=t}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(t,n,s){super.touchstart(t,n,s),this._currentTouchCount=s.length}_start(t){this._lastPoints=t,xl(t[0].sub(t[1]))&&(this._valid=!1)}_move(t,n,s){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const l=t[0].sub(this._lastPoints[0]),p=t[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(l,p,s.timeStamp),this._valid?(this._lastPoints=t,this._active=!0,{pitchDelta:(l.y+p.y)/2*-.5}):void 0}gestureBeginsVertically(t,n,s){if(this._valid!==void 0)return this._valid;const l=t.mag()>=2,p=n.mag()>=2;if(!l&&!p)return;if(!l||!p)return this._firstMove===void 0&&(this._firstMove=s),s-this._firstMove<100&&void 0;const m=t.y>0==n.y>0;return xl(t)&&xl(n)&&m}}const pt={panStep:100,bearingStep:15,pitchStep:10};class Wc{constructor(t){this._tr=new Vr(t);const n=pt;this._panStep=n.panStep,this._bearingStep=n.bearingStep,this._pitchStep=n.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(t){if(t.altKey||t.ctrlKey||t.metaKey)return;let n=0,s=0,l=0,p=0,m=0;switch(t.keyCode){case 61:case 107:case 171:case 187:n=1;break;case 189:case 109:case 173:n=-1;break;case 37:t.shiftKey?s=-1:(t.preventDefault(),p=-1);break;case 39:t.shiftKey?s=1:(t.preventDefault(),p=1);break;case 38:t.shiftKey?l=1:(t.preventDefault(),m=-1);break;case 40:t.shiftKey?l=-1:(t.preventDefault(),m=1);break;default:return}return this._rotationDisabled&&(s=0,l=0),{cameraAnimation:g=>{const x=this._tr;g.easeTo({duration:300,easeId:"keyboardHandler",easing:fo,zoom:n?c.cx(x.zoom+n*(t.shiftKey?2:1),g.getZoomSnap()):x.zoom,bearing:x.bearing+s*this._bearingStep,pitch:x.pitch+l*this._pitchStep,offset:[-p*this._panStep,-m*this._panStep],center:x.center},{originalEvent:t})}}}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 fo(d){return d*(2-d)}const _s=4.000244140625,vl=1/450;class bl{constructor(t,n){this._onTimeout=s=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(s)},this._map=t,this._tr=new Vr(t),this._triggerRenderFrame=n,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=vl}setZoomRate(t){this._defaultZoomRate=t}setWheelZoomRate(t){this._wheelZoomRate=t}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!t&&t.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(t){return!!this._map.cooperativeGestures.isEnabled()&&!(t.ctrlKey||this._map.cooperativeGestures.isBypassed(t))}wheel(t){if(!this.isEnabled())return;if(this._shouldBePrevented(t))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",t);let n=t.deltaMode===WheelEvent.DOM_DELTA_LINE?40*t.deltaY:t.deltaY;const s=it(),l=s-(this._lastWheelEventTime||0);this._lastWheelEventTime=s,n!==0&&n%_s==0?this._type="wheel":n!==0&&Math.abs(n)<4?this._type="trackpad":l>400?(this._type=null,this._lastValue=n,this._timeout=setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(l*n)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,n+=this._lastValue)),t.shiftKey&&n&&(n/=4),this._type&&(this._lastWheelEvent=t,this._delta-=n,this._active||this._start(t)),t.preventDefault()}_start(t){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 n=fe.mousePos(this._map.getCanvas(),t),s=this._tr;this._aroundPoint=this._aroundCenter?s.transform.locationToScreenPoint(c.V.convert(s.center)):n,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const t=this._tr.transform;if(typeof this._lastExpectedZoom=="number"){const g=t.zoom-this._lastExpectedZoom;typeof this._startZoom=="number"&&(this._startZoom+=g),typeof this._targetZoom=="number"&&(this._targetZoom+=g)}if(this._delta!==0){const g=this._type==="wheel"&&Math.abs(this._delta)>_s?this._wheelZoomRate:this._defaultZoomRate;let x=2/(1+Math.exp(-Math.abs(this._delta*g)));this._delta<0&&x!==0&&(x=1/x);const w=typeof this._targetZoom!="number"?t.scale:c.aq(this._targetZoom),T=t.applyConstrain(t.getCameraLngLat(),c.at(w*x)).zoom,I=this._map.getZoomSnap();if(this._type==="wheel"&&I>0){const M=c.cx(t.zoom,I);this._targetZoom=c.cx(T,I,T-M)}else this._targetZoom=T;this._type==="wheel"&&(this._startZoom=t.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const n=typeof this._targetZoom!="number"?t.zoom:this._targetZoom,s=this._startZoom,l=this._easing;let p,m=!1;if(this._type==="wheel"&&s&&l){const g=it()-this._lastWheelEventTime,x=Math.min((g+5)/200,1),w=l(x);p=c.G.number(s,n,w),x<1?this._frameId||(this._frameId=!0):m=!0}else p=n,m=!0;return this._active=!0,m&&(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:!m,zoomDelta:p-t.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(t){let n=c.cz;if(this._prevEase){const s=this._prevEase,l=(it()-s.start)/s.duration,p=s.easing(l+.01)-s.easing(l),m=.27/Math.sqrt(p*p+1e-4)*.01,g=Math.sqrt(.0729-m*m);n=c.cw(m,g,.25,1)}return this._prevEase={start:it(),duration:t,easing:n},n}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class wl{constructor(t,n){this._clickZoom=t,this._tapZoom=n}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 Hc{constructor(t){this._tr=new Vr(t),this.reset()}reset(){this._active=!1}dblclick(t,n){return t.preventDefault(),{cameraAnimation:s=>{s.easeTo({duration:300,zoom:c.cx(this._tr.zoom+(t.shiftKey?-1:1),s.getZoomSnap()),around:this._tr.unproject(n)},{originalEvent:t})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class rh{constructor(){this._tap=new fs({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(t,n,s){if(!this._swipePoint)if(this._tapTime){const l=n[0],p=t.timeStamp-this._tapTime<500,m=this._tapPoint.dist(l)<30;p&&m?s.length>0&&(this._swipePoint=l,this._swipeTouch=s[0].identifier):this.reset()}else this._tap.touchstart(t,n,s)}touchmove(t,n,s){if(this._tapTime){if(this._swipePoint){if(s[0].identifier!==this._swipeTouch)return;const l=n[0],p=l.y-this._swipePoint.y;return this._swipePoint=l,t.preventDefault(),this._active=!0,{zoomDelta:p/128}}}else this._tap.touchmove(t,n,s)}touchend(t,n,s){if(this._tapTime)this._swipePoint&&s.length===0&&this.reset();else{const l=this._tap.touchend(t,n,s);l&&(this._tapTime=t.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 pr{constructor(t,n,s){this._el=t,this._mousePan=n,this._touchPan=s}enable(t){this._inertiaOptions=t||{},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 gs{constructor(t,n,s,l){this._pitchWithRotate=t.pitchWithRotate,this._rollEnabled=t.rollEnabled,this._mouseRotate=n,this._mousePitch=s,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 Be{constructor(t,n,s,l){this._el=t,this._touchZoom=n,this._touchRotate=s,this._tapDragZoom=l,this._rotationDisabled=!1,this._enabled=!0}enable(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),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 Ue{constructor(t,n){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=t,this._options=n,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const t=this._map.getCanvasContainer();t.classList.add("maplibregl-cooperative-gestures"),this._container=fe.create("div","maplibregl-cooperative-gesture-screen",t);let n=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(n=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const s=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),l=document.createElement("div");l.className="maplibregl-desktop-message",l.textContent=n,this._container.appendChild(l);const p=document.createElement("div");p.className="maplibregl-mobile-message",p.textContent=s,this._container.appendChild(p),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(fe.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(t){return t[this._bypassKey]}notifyGestureBlocked(t,n){this._enabled&&(this._map.fire(new c.l("cooperativegestureprevented",{gestureType:t,originalEvent:n})),this._container.classList.add("maplibregl-show"),setTimeout((()=>{this._container.classList.remove("maplibregl-show")}),100))}}const fn=d=>d.zoom||d.drag||d.roll||d.pitch||d.rotate;class Xc extends c.l{}function va(d){return d.panDelta&&d.panDelta.mag()||d.zoomDelta||d.bearingDelta||d.pitchDelta||d.rollDelta}class bi{get _ownerDocument(){var t;return((t=this._el)===null||t===void 0?void 0:t.ownerDocument)||document}get _ownerWindow(){var t,n;return((n=(t=this._el)===null||t===void 0?void 0:t.ownerDocument)===null||n===void 0?void 0:n.defaultView)||window}constructor(t,n){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 m=l.type==="renderFrame"?void 0:l,g={needsRenderFrame:!1},x={},w={};for(const{handlerName:M,handler:z,allowed:L}of this._handlers){if(!z.isEnabled())continue;let j;if(this._blockedByActive(w,L,M))z.reset();else if(z[p||l.type]){if(c.cA(l,p||l.type)){const U=fe.mousePos(this._map.getCanvas(),l);j=z[p||l.type](l,U)}else if(c.cB(l,p||l.type)){const U=this._getMapTouches(l.touches),N=fe.touchPos(this._map.getCanvas(),U);j=z[p||l.type](l,N,U)}else c.cC(p||l.type)||(j=z[p||l.type](l));this.mergeHandlerResult(g,x,j,M,m),j&&j.needsRenderFrame&&this._triggerRenderFrame()}(j||z.isActive())&&(w[M]=z)}const T={};for(const M in this._previousActiveHandlers)w[M]||(T[M]=m);this._previousActiveHandlers=w,(Object.keys(T).length||va(g))&&(this._changes.push([g,x,T]),this._triggerRenderFrame()),(Object.keys(w).length||va(g))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:I}=g;I&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],I(this._map))},this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new eh(t),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n);const s=this._el;this._listeners=[[s,"touchstart",{passive:!0}],[s,"touchmove",{passive:!1}],[s,"touchend",void 0],[s,"touchcancel",void 0],[s,"mousedown",void 0],[s,"mousemove",void 0],[s,"mouseup",void 0],[this._ownerDocument,"mousemove",{capture:!0}],[this._ownerDocument,"mouseup",void 0],[s,"mouseover",void 0],[s,"mouseout",void 0],[s,"dblclick",void 0],[s,"click",void 0],[s,"keydown",{capture:!1}],[s,"keyup",void 0],[s,"wheel",{passive:!1}],[s,"contextmenu",void 0],[this._ownerWindow,"blur",void 0]];for(const[l,p,m]of this._listeners)fe.addEventListener(l,p,l===this._ownerDocument?this.handleWindowEvent:this.handleEvent,m)}destroy(){for(const[t,n,s]of this._listeners)fe.removeEventListener(t,n,t===this._ownerDocument?this.handleWindowEvent:this.handleEvent,s)}_addDefaultHandlers(t){const n=this._map,s=n.getCanvasContainer();this._add("mapEvent",new th(n,t));const l=n.boxZoom=new Tr(n,t);this._add("boxZoom",l),t.interactive&&t.boxZoom&&l.enable();const p=n.cooperativeGestures=new Ue(n,t.cooperativeGestures);this._add("cooperativeGestures",p),t.cooperativeGestures&&p.enable();const m=new Uc(n),g=new Hc(n);n.doubleClickZoom=new wl(g,m),this._add("tapZoom",m),this._add("clickZoom",g),t.interactive&&t.doubleClickZoom&&n.doubleClickZoom.enable();const x=new rh;this._add("tapDragZoom",x);const w=n.touchPitch=new Nr(n);this._add("touchPitch",w),t.interactive&&t.touchPitch&&n.touchPitch.enable(t.touchPitch);const T=()=>n.project(n.getCenter()),I=(function({enable:q,clickTolerance:Y,aroundCenter:Q=!0,minPixelCenterThreshold:W=100,rotateDegreesPerPixelMoved:te=.8},de){const ue=new Un({checkCorrectEvent:le=>fe.mouseButton(le)===0&&le.ctrlKey||fe.mouseButton(le)===2&&!le.ctrlKey});return new jr({clickTolerance:Y,move:(le,he)=>{const Me=de();if(Q&&Math.abs(Me.y-le.y)>W)return{bearingDelta:c.cy(new c.P(le.x,he.y),he,Me)};let Ie=(he.x-le.x)*te;return Q&&he.yfe.mouseButton(te)===0&&te.ctrlKey||fe.mouseButton(te)===2});return new jr({clickTolerance:Y,move:(te,de)=>({pitchDelta:(de.y-te.y)*Q}),moveStateManager:W,enable:q,assignEvents:ho})})(t),z=(function({enable:q,clickTolerance:Y,rollDegreesPerPixelMoved:Q=.3},W){const te=new Un({checkCorrectEvent:de=>fe.mouseButton(de)===2&&de.ctrlKey});return new jr({clickTolerance:Y,move:(de,ue)=>{const le=W();let he=(ue.x-de.x)*Q;return ue.yfe.mouseButton(W)===0&&!W.ctrlKey});return new jr({clickTolerance:Y,move:(W,te)=>({around:te,panDelta:te.sub(W)}),activateOnStart:!0,moveStateManager:Q,enable:q,assignEvents:ho})})(t),j=new qc(t,n);n.dragPan=new pr(s,L,j),this._add("mousePan",L),this._add("touchPan",j,["touchZoom","touchRotate"]),t.interactive&&t.dragPan&&n.dragPan.enable(t.dragPan);const U=new $c,N=new Zc;n.touchZoomRotate=new Be(s,N,U,x),this._add("touchRotate",U,["touchPan","touchZoom"]),this._add("touchZoom",N,["touchPan","touchRotate"]),t.interactive&&t.touchZoomRotate&&n.touchZoomRotate.enable(t.touchZoomRotate),this._add("blockableMapEvent",new jc(n));const Z=n.scrollZoom=new bl(n,(()=>this._triggerRenderFrame()));this._add("scrollZoom",Z,["mousePan"]),t.interactive&&t.scrollZoom&&n.scrollZoom.enable(t.scrollZoom);const X=n.keyboard=new Wc(n);this._add("keyboard",X),t.interactive&&t.keyboard&&n.keyboard.enable()}_add(t,n,s){this._handlers.push({handlerName:t,handler:n,allowed:s}),this._handlersById[t]=n}stop(t){if(!this._updatingCamera){for(const{handler:n}of this._handlers)n.reset();this._inertia.clear(),this._fireEvents({},{},t),this._changes=[]}}isActive(){for(const{handler:t}of this._handlers)if(t.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!fn(this._eventsInProgress)||this.isZooming()}_blockedByActive(t,n,s){for(const l in t)if(l!==s&&(!n||n.indexOf(l)<0))return!0;return!1}_getMapTouches(t){const n=[];for(const s of t)this._el.contains(s.target)&&n.push(s);return n}mergeHandlerResult(t,n,s,l,p){if(!s)return;c.e(t,s);const m={handlerName:l,originalEvent:s.originalEvent||p};s.zoomDelta!==void 0&&(n.zoom=m),s.panDelta!==void 0&&(n.drag=m),s.rollDelta!==void 0&&(n.roll=m),s.pitchDelta!==void 0&&(n.pitch=m),s.bearingDelta!==void 0&&(n.rotate=m)}_applyChanges(){const t={},n={},s={};for(const[l,p,m]of this._changes)l.panDelta&&(t.panDelta=(t.panDelta||new c.P(0,0))._add(l.panDelta)),l.zoomDelta&&(t.zoomDelta=(t.zoomDelta||0)+l.zoomDelta),l.bearingDelta&&(t.bearingDelta=(t.bearingDelta||0)+l.bearingDelta),l.pitchDelta&&(t.pitchDelta=(t.pitchDelta||0)+l.pitchDelta),l.rollDelta&&(t.rollDelta=(t.rollDelta||0)+l.rollDelta),l.around!==void 0&&(t.around=l.around),l.pinchAround!==void 0&&(t.pinchAround=l.pinchAround),l.noInertia&&(t.noInertia=l.noInertia),c.e(n,p),c.e(s,m);this._updateMapTransform(t,n,s),this._changes=[]}_updateMapTransform(t,n,s){const l=this._map,p=l._getTransformForUpdate(),m=l.terrain;if(!(va(t)||m&&this._terrainMovement))return this._fireEvents(n,s,!0);l._stop(!0);let{panDelta:g,zoomDelta:x,bearingDelta:w,pitchDelta:T,rollDelta:I,around:M,pinchAround:z}=t;z!==void 0&&(M=z),M=M||l.transform.centerPoint,m&&!p.isPointOnMapSurface(M)&&(M=p.centerPoint);const L={panDelta:g,zoomDelta:x,rollDelta:I,pitchDelta:T,bearingDelta:w,around:M};this._map.cameraHelper.useGlobeControls&&!p.isPointOnMapSurface(M)&&(M=p.centerPoint);const j=M.distSqr(p.centerPoint)<.01?p.center:p.screenPointToLocation(g?M.sub(g):M);this._handleMapControls({terrain:m,tr:p,deltasForHelper:L,preZoomAroundLoc:j,combinedEventsInProgress:n,panDelta:g}),l._applyUpdatedTransform(p),this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(n,s,!0)}_handleMapControls({terrain:t,tr:n,deltasForHelper:s,preZoomAroundLoc:l,combinedEventsInProgress:p,panDelta:m}){const g=this._map.cameraHelper;if(g.handleMapControlsRollPitchBearingZoom(s,n),t)return g.useGlobeControls?(this._terrainMovement||!p.drag&&!p.zoom||(this._terrainMovement=!0,this._map._elevationFreeze=!0),void g.handleMapControlsPan(s,n,l)):this._terrainMovement||!p.drag&&!p.zoom?void(p.drag&&this._terrainMovement&&m?n.setCenter(n.screenPointToLocation(n.centerPoint.sub(m))):g.handleMapControlsPan(s,n,l)):(this._terrainMovement=!0,this._map._elevationFreeze=!0,void g.handleMapControlsPan(s,n,l));g.handleMapControlsPan(s,n,l)}_fireEvents(t,n,s){const l=fn(this._eventsInProgress),p=fn(t),m={};for(const I in t){const{originalEvent:M}=t[I];this._eventsInProgress[I]||(m[`${I}start`]=M),this._eventsInProgress[I]=t[I]}!l&&p&&this._fireEvent("movestart",p.originalEvent);for(const I in m)this._fireEvent(I,m[I]);p&&this._fireEvent("move",p.originalEvent);for(const I in t){const{originalEvent:M}=t[I];this._fireEvent(I,M)}const g={};let x;for(const I in this._eventsInProgress){const{handlerName:M,originalEvent:z}=this._eventsInProgress[I];this._handlersById[M].isActive()||(delete this._eventsInProgress[I],x=n[M]||z,g[`${I}end`]=x)}for(const I in g)this._fireEvent(I,g[I]);const w=fn(this._eventsInProgress),T=(l||p)&&!w;if(T&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const I=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&I.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(I)}if(s&&T){this._updatingCamera=!0;const I=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),M=z=>z!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new Xc("renderFrame",{timeStamp:t})),this._applyChanges()}))}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class fr extends c.E{constructor(t,n,s){super(),this._renderFrameCallback=()=>{const l=Math.min((it()-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=t,this._bearingSnap=s.bearingSnap,this._zoomSnap=s.zoomSnap,this.cameraHelper=n,this.on("moveend",(()=>{delete this._requestedCameraState}))}migrateProjection(t,n){t.apply(this.transform,!0),this.transform=t,this.cameraHelper=n}getCenter(){return new c.V(this.transform.center.lng,this.transform.center.lat)}setCenter(t,n){return this.jumpTo({center:t},n)}getCenterElevation(){return this.transform.elevation}setCenterElevation(t,n){return this.jumpTo({elevation:t},n),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(t){this._centerClampedToGround=t}panBy(t,n,s){return t=c.P.convert(t).mult(-1),this.panTo(this.transform.center,c.e({offset:t},n),s)}panTo(t,n,s){return this.easeTo(c.e({center:t},n),s)}getZoom(){return this.transform.zoom}setZoom(t,n){return this.jumpTo({zoom:t},n),this}zoomTo(t,n,s){return this.easeTo(c.e({zoom:t},n),s)}zoomIn(t,n){return this.zoomTo(c.cx(this.getZoom()+1,this._zoomSnap),t,n),this}zoomOut(t,n){return this.zoomTo(c.cx(this.getZoom()-1,this._zoomSnap),t,n),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(t,n){return t!=this.transform.fov&&(this.transform.setFov(t),this.fire(new c.l("movestart",n)).fire(new c.l("move",n)).fire(new c.l("moveend",n))),this}getBearing(){return this.transform.bearing}setZoomSnap(t){return this._zoomSnap=t,this}getZoomSnap(){return this._zoomSnap}setBearing(t,n){return this.jumpTo({bearing:t},n),this}getPadding(){return this.transform.padding}setPadding(t,n){return this.jumpTo({padding:t},n),this}rotateTo(t,n,s){return this.easeTo(c.e({bearing:t},n),s)}resetNorth(t,n){return this.rotateTo(0,c.e({duration:1e3},t),n),this}resetNorthPitch(t,n){return this.easeTo(c.e({bearing:0,pitch:0,roll:0,duration:1e3},t),n),this}snapToNorth(t,n){return Math.abs(this.getBearing()){j.easeFunc(U),this.terrain&&!t.freezeElevation&&this._updateElevation(U),this._applyUpdatedTransform(s),this._fireMoveEvents(n)}),(U=>{this.terrain&&t.freezeElevation&&this._finalizeElevation(),this._afterEase(n,U)}),t),this}_prepareEase(t,n,s={}){this._moving=!0,n||s.moving||this.fire(new c.l("movestart",t)),this._zooming&&!s.zooming&&this.fire(new c.l("zoomstart",t)),this._rotating&&!s.rotating&&this.fire(new c.l("rotatestart",t)),this._pitching&&!s.pitching&&this.fire(new c.l("pitchstart",t)),this._rolling&&!s.rolling&&this.fire(new c.l("rollstart",t))}_prepareElevation(t){this._elevationCenter=t,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(t,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(t){this._elevationStart!==void 0&&this._elevationCenter!==void 0||this._prepareElevation(this.transform.center),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const n=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(t<1&&n!==this._elevationTarget){const s=this._elevationTarget-this._elevationStart;this._elevationStart+=t*(s-(n-(s*t+this._elevationStart))/(1-t)),this._elevationTarget=n}this.transform.setElevation(c.G.number(this._elevationStart,this._elevationTarget,t))}_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(t){if(!this.terrain&&t.elevation>=0&&t.pitch<=90)return{};const n=t.getCameraLngLat(),s=t.getCameraAltitude(),l=this.terrain?this.terrain.getElevationForLngLatZoom(n,t.zoom):0;if(sthis._elevateCameraIfInsideTerrain(l))),this.transformCameraUpdate&&n.push((l=>this.transformCameraUpdate(l))),!n.length)return;const s=t.clone();for(const l of n){const p=s.clone(),{center:m,zoom:g,roll:x,pitch:w,bearing:T,elevation:I}=l(p);m&&p.setCenter(m),I!==void 0&&p.setElevation(I),g!==void 0&&p.setZoom(g),x!==void 0&&p.setRoll(x),w!==void 0&&p.setPitch(w),T!==void 0&&p.setBearing(T),s.apply(p,!1)}this.transform.apply(s,!1)}_fireMoveEvents(t){this.fire(new c.l("move",t)),this._zooming&&this.fire(new c.l("zoom",t)),this._rotating&&this.fire(new c.l("rotate",t)),this._pitching&&this.fire(new c.l("pitch",t)),this._rolling&&this.fire(new c.l("roll",t))}_afterEase(t,n){if(this._easeId&&n&&this._easeId===n)return;delete this._easeId;const s=this._zooming,l=this._rotating,p=this._pitching,m=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,s&&this.fire(new c.l("zoomend",t)),l&&this.fire(new c.l("rotateend",t)),p&&this.fire(new c.l("pitchend",t)),m&&this.fire(new c.l("rollend",t)),this.fire(new c.l("moveend",t))}flyTo(t,n){if(!t.essential&&Zt.prefersReducedMotion){const he=c.U(t,["center","zoom","bearing","pitch","roll","elevation","padding"]);return this.jumpTo(he,n)}this.stop(),t=c.e({offset:[0,0],speed:1.2,curve:1.42,easing:c.cz},t);const s=this._getTransformForUpdate(),l=s.bearing,p=s.pitch,m=s.roll,g=s.padding,x="bearing"in t?this._normalizeBearing(t.bearing,l):l,w="pitch"in t?+t.pitch:p,T="roll"in t?this._normalizeBearing(t.roll,m):m,I="padding"in t?t.padding:s.padding,M=c.P.convert(t.offset);let z=s.centerPoint.add(M);const L=s.screenPointToLocation(z),j=this.cameraHelper.handleFlyTo(s,{bearing:x,pitch:w,roll:T,padding:I,locationAtOffset:L,offsetAsPoint:M,center:t.center,minZoom:t.minZoom,zoom:t.zoom});let U=t.curve;const N=Math.max(s.width,s.height),Z=N/j.scaleOfZoom,X=j.pixelPathLength;typeof j.scaleOfMinZoom=="number"&&(U=Math.sqrt(N/j.scaleOfMinZoom/X*2));const q=U*U;function Y(he){const Me=(Z*Z-N*N+(he?-1:1)*q*q*X*X)/(2*(he?Z:N)*q*X);return Math.log(Math.sqrt(Me*Me+1)-Me)}function Q(he){return(Math.exp(he)-Math.exp(-he))/2}function W(he){return(Math.exp(he)+Math.exp(-he))/2}const te=Y(!1);let de=function(he){return W(te)/W(te+U*he)},ue=function(he){return N*((W(te)*(Q(Me=te+U*he)/W(Me))-Q(te))/q)/X;var Me},le=(Y(!0)-te)/U;if(Math.abs(X)<2e-6||!isFinite(le)){if(Math.abs(N-Z)<1e-6)return this.easeTo(t,n);const he=Z0,de=Me=>Math.exp(he*U*Me)}return t.duration="duration"in t?+t.duration:1e3*le/("screenSpeed"in t?+t.screenSpeed/U:+t.speed),t.maxDuration&&t.duration>t.maxDuration&&(t.duration=0),this._zooming=!0,this._rotating=l!==x,this._pitching=w!==p,this._rolling=T!==m,this._padding=!s.isPaddingEqual(I),this._prepareEase(n,!1),this.terrain&&this._prepareElevation(j.targetCenter),this._ease((he=>{const Me=he*le,Ie=1/de(Me),_e=ue(Me);this._rotating&&s.setBearing(c.G.number(l,x,he)),this._pitching&&s.setPitch(c.G.number(p,w,he)),this._rolling&&s.setRoll(c.G.number(m,T,he)),this._padding&&(s.interpolatePadding(g,I,he),z=s.centerPoint.add(M)),j.easeFunc(he,Ie,_e,z),this.terrain&&!t.freezeElevation&&this._updateElevation(he),this._applyUpdatedTransform(s),this._fireMoveEvents(n)}),(()=>{this.terrain&&t.freezeElevation&&this._finalizeElevation(),this._afterEase(n)}),t),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(t,n){var s;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,n)}return t||(s=this.handlers)===null||s===void 0||s.stop(!1),this}_ease(t,n,s){s.animate===!1||s.duration===0?(t(1),n()):(this._easeStart=it(),this._easeOptions=s,this._onEaseFrame=t,this._onEaseEnd=n,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(t,n){t=c.W(t,-180,180);const s=Math.abs(t-n);return Math.abs(t-360-n)MapLibre'};class Yc{constructor(t=Tl){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=n=>{!n||n.sourceDataType!=="metadata"&&n.sourceDataType!=="visibility"&&n.dataType!=="style"&&n.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=t}getDefaultPosition(){return"bottom-right"}onAdd(t){return this._map=t,this._compact=this.options.compact,this._container=fe.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=fe.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=fe.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(){fe.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(t,n){const s=this._map._getUIString(`AttributionControl.${n}`);t.title=s,t.setAttribute("aria-label",s)}_updateAttributions(){if(!this._map.style)return;let t=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?t=t.concat(this.options.customAttribution.map((l=>typeof l!="string"?"":l))):typeof this.options.customAttribution=="string"&&t.push(this.options.customAttribution)),this._map.style.stylesheet){const l=this._map.style.stylesheet;this.styleOwner=l.owner,this.styleId=l.id}const n=this._map.style.tileManagers;for(const l in n){const p=n[l];if(p.used||p.usedForTerrain){const m=p.getSource();m.attribution&&t.indexOf(m.attribution)<0&&t.push(m.attribution)}}t=t.filter((l=>String(l).trim())),t.sort(((l,p)=>l.length-p.length)),t=t.filter(((l,p)=>{for(let m=p+1;m=0)return!1;return!0}));const s=t.join(" | ");s!==this._attribHTML&&(this._attribHTML=s,t.length?(this._innerContainer.innerHTML=fe.sanitize(s),this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class Kc{constructor(t={}){this._updateCompact=()=>{const n=this._container.children;if(n.length){const s=n[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&s.classList.add("maplibregl-compact"):s.classList.remove("maplibregl-compact")}},this.options=t}getDefaultPosition(){return"bottom-left"}onAdd(t){this._map=t,this._compact=this.options&&this.options.compact,this._container=fe.create("div","maplibregl-ctrl");const n=fe.create("a","maplibregl-ctrl-logo");return n.target="_blank",n.rel="noopener nofollow",n.href="https://maplibre.org/",n.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),n.setAttribute("rel","noopener nofollow"),this._container.appendChild(n),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){fe.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class nh{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(t){const n=++this._id;return this._queue.push({callback:t,id:n,cancelled:!1}),n}remove(t){const n=this._currentlyRunning,s=n?this._queue.concat(n):this._queue;for(const l of s)if(l.id===t)return void(l.cancelled=!0)}run(t=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const n=this._currentlyRunning=this._queue;this._queue=[];for(const s of n)if(!s.cancelled&&(s.callback(t),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var ys=c.aU([{name:"a_pos3d",type:"Int16",components:3}]);class It extends c.E{constructor(t){super(),this._lastTilesetChange=it(),this.tileManager=t,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=t._source.tileSize*2**this.deltaZoom,t.usedForTerrain=!0,t.tileSize=this.tileSize}destruct(){this.tileManager.usedForTerrain=!1,this.tileManager.tileSize=null}getSource(){return this.tileManager._source}update(t,n){this.tileManager.update(t,n),this._renderableTilesKeys=[];const s={};for(const l of mt(t,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:n,calculateTileZoom:this.tileManager._source.calculateTileZoom}))s[l.key]=!0,this._renderableTilesKeys.push(l.key),this._tiles[l.key]||(l.terrainRttPosMatrix32f=new Float64Array(16),c.c7(l.terrainRttPosMatrix32f,0,c.a5,c.a5,0,0,1),this._tiles[l.key]=new ae(l,this.tileSize),this._lastTilesetChange=it());for(const l in this._tiles)s[l]||delete this._tiles[l]}freeRtt(t){for(const n in this._tiles){const s=this._tiles[n];(!t||s.tileID.equals(t)||s.tileID.isChildOf(t)||t.isChildOf(s.tileID))&&(s.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map((t=>this.getTileByID(t)))}getTileByID(t){return this._tiles[t]}getTerrainCoords(t,n){return n?this._getTerrainCoordsForTileRanges(t,n):this._getTerrainCoordsForRegularTile(t)}_getTerrainCoordsForRegularTile(t){const n={};for(const s of this._renderableTilesKeys){const l=this._tiles[s].tileID,p=t.clone(),m=c.bk();if(l.canonical.equals(t.canonical))c.c7(m,0,c.a5,c.a5,0,0,1);else if(l.canonical.isChildOf(t.canonical)){const g=l.canonical.z-t.canonical.z,x=l.canonical.x-(l.canonical.x>>g<>g<>g;c.c7(m,0,T,T,0,0,1),c.O(m,m,[-x*T,-w*T,0])}else{if(!t.canonical.isChildOf(l.canonical))continue;{const g=t.canonical.z-l.canonical.z,x=t.canonical.x-(t.canonical.x>>g<>g<>g;c.c7(m,0,c.a5,c.a5,0,0,1),c.O(m,m,[x*T,w*T,0]),c.Q(m,m,[1/2**g,1/2**g,0])}}p.terrainRttPosMatrix32f=new Float32Array(m),n[s]=p}return n}_getTerrainCoordsForTileRanges(t,n){const s={};for(const l of this._renderableTilesKeys){const p=this._tiles[l].tileID;if(!this._isWithinTileRanges(p,n))continue;const m=t.clone(),g=c.bk();if(p.canonical.z===t.canonical.z){const x=t.canonical.x-p.canonical.x+t.wrap*(1<t.canonical.z){const x=p.canonical.z-t.canonical.z,w=p.canonical.x-(p.canonical.x>>x<>x<>x),M=t.canonical.y-(p.canonical.y>>x),z=c.a5>>x;c.c7(g,0,z,z,0,0,1),c.O(g,g,[-w*z+I*c.a5,-T*z+M*c.a5,0])}else{const x=t.canonical.z-p.canonical.z,w=t.canonical.x-(t.canonical.x>>x<>x<>x)-p.canonical.x,M=(t.canonical.y>>x)-p.canonical.y,z=c.a5<s.maxzoom&&(l=s.maxzoom),l=s.minzoom&&!p?.dem;)p=this.findTileInCaches(t.scaledTo(l--).key);return p}findTileInCaches(t){let n=this.tileManager.getTileByID(t);return n||(n=this.tileManager._outOfViewCache.getByKey(t),n)}anyTilesAfterTime(t=Date.now()){return this._lastTilesetChange>=t}_isWithinTileRanges(t,n){const s=n[t.canonical.z];return!!s&&(t.wrap>s.minWrap||t.wrap=s.minTileXWrapped&&t.canonical.x<=s.maxTileXWrapped&&t.canonical.y>=s.minTileY&&t.canonical.y<=s.maxTileY)}}class Ot{constructor(t,n,s){this._meshCache={},this.painter=t,this.tileManager=new It(n),this.options=s,this.exaggeration=typeof s.exaggeration=="number"?s.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(t,n,s,l=c.a5){var p;const m=t.normalizeCoordinates(n,s,l);if(!m)return 0;const g=this.getTerrainData(m.tileID),x=(p=g.tile)===null||p===void 0?void 0:p.dem;if(!x)return 0;const w=c.cD([],[m.x/l*c.a5,m.y/l*c.a5],g.u_terrain_matrix),T=[w[0]*x.dim,w[1]*x.dim],I=Math.floor(T[0]),M=Math.floor(T[1]),z=T[0]-I,L=T[1]-M;return x.get(I,M)*(1-z)*(1-L)+x.get(I+1,M)*z*(1-L)+x.get(I,M+1)*(1-z)*L+x.get(I+1,M+1)*z*L}getElevationForLngLatZoom(t,n){if(!c.cE(n,t.wrap()))return 0;const{tileID:s,mercatorX:l,mercatorY:p}=this._getOverscaledTileIDFromLngLatZoom(t,n);return this.getElevation(s,l%c.a5,p%c.a5,c.a5)}getElevationForLngLat(t,n){const s=mt(n,{maxzoom:this.tileManager.maxzoom,minzoom:this.tileManager.minzoom,tileSize:512,terrain:this});let l=0;for(const p of s)p.canonical.z>l&&(l=Math.min(p.canonical.z,this.tileManager.maxzoom));return this.getElevationForLngLatZoom(t,l)}getElevation(t,n,s,l=c.a5){return this.getDEMElevation(t,n,s,l)*this.exaggeration}getTerrainData(t){if(!this._emptyDemTexture){const l=this.painter.context,p=new c.R({width:1,height:1},new Uint8Array(4));this._emptyDepthTexture=new c.T(l,p,l.gl.RGBA,{premultiply:!1}),this._emptyDemUnpack=[0,0,0,0],this._emptyDemTexture=new c.T(l,new c.R({width:1,height:1}),l.gl.RGBA,{premultiply:!1}),this._emptyDemTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._emptyDemMatrix=c.ar([])}const n=this.tileManager.getSourceTile(t,!0);if(n&&n.dem&&(!n.demTexture||n.needsTerrainPrepare)){const l=this.painter.context;n.demTexture=this.painter.getTileTexture(n.dem.stride),n.demTexture?n.demTexture.update(n.dem.getPixels(),{premultiply:!1}):n.demTexture=new c.T(l,n.dem.getPixels(),l.gl.RGBA,{premultiply:!1}),n.demTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),n.needsTerrainPrepare=!1}const s=n&&n.toString()+n.tileID.key+t.key;if(s&&!this._demMatrixCache[s]){const l=this.tileManager.getSource().maxzoom;let p=t.canonical.z-n.tileID.canonical.z;t.overscaledZ>t.canonical.z&&(t.canonical.z>=l?p=t.canonical.z-l:c.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const m=t.canonical.x-(t.canonical.x>>p<>p<>8<<4|p>>8,n[m+3]=0;const s=new c.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(n.buffer)),l=new c.T(t,s,t.gl.RGBA,{premultiply:!1});return l.bind(t.gl.NEAREST,t.gl.CLAMP_TO_EDGE),this._coordsTexture=l,l}pointCoordinate(t){this.painter.maybeDrawDepthAndCoords(!0);const n=new Uint8Array(4),s=this.painter.context,l=s.gl,p=Math.round(t.x*this.painter.pixelRatio/devicePixelRatio),m=Math.round(t.y*this.painter.pixelRatio/devicePixelRatio),g=Math.round(this.painter.height/devicePixelRatio);s.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),l.readPixels(p,g-m-1,1,1,l.RGBA,l.UNSIGNED_BYTE,n),s.bindFramebuffer.set(null);const x=n[0]+(n[2]>>4<<8),w=n[1]+((15&n[2])<<8),T=this.coordsIndex[255-n[3]],I=T&&this.tileManager.getTileByID(T);if(!I)return null;const M=this._coordsTextureSize,z=(1<0,l=s&&t.canonical.y===0,p=s&&t.canonical.y===(1<t.id!==n)),this._recentlyUsed.push(t.id)}stampObject(t){t.stamp=++this._stamp}getOrCreateFreeObject(){for(const n of this._recentlyUsed)if(!this._objects[n].inUse)return this._objects[n];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const t=this._createObject(this._objects.length);return this._objects.push(t),t}freeObject(t){t.inUse=!1}freeAllObjects(){for(const t of this._objects)this.freeObject(t)}isFull(){return!(this._objects.length!t.inUse))===!1}}const Sr={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0,"color-relief":!0};class mo{constructor(t,n){this.painter=t,this.terrain=n,this.pool=new Jc(t.context,30,n.tileManager.tileSize*n.qualityFactor)}destruct(){this.pool.destruct()}getTexture(t){return this.pool.getObjectForId(t.rtt[this._stacks.length-1].id).texture}prepareForRender(t,n){var s,l;this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.tileManager.getRenderableTiles(),this._renderableLayerIds=t._order.filter((p=>!t._layers[p].isHidden(n))),this._coordsAscending={};for(const p in t.tileManagers){this._coordsAscending[p]={};const m=t.tileManagers[p].getVisibleCoordinates(),g=t.tileManagers[p].getSource(),x=g instanceof zr?g.terrainTileRanges:null;for(const w of m){const T=this.terrain.tileManager.getTerrainCoords(w,x);for(const I in T)this._coordsAscending[p][I]||(this._coordsAscending[p][I]=[]),this._coordsAscending[p][I].push(T[I])}}this._rttFingerprints={};for(const p of t._order){const m=t._layers[p],g=m.source;if(Sr[m.type]&&!this._rttFingerprints[g]){this._rttFingerprints[g]={};const x=(l=(s=t.tileManagers[g])===null||s===void 0?void 0:s.getState().revision)!==null&&l!==void 0?l:0;for(const w in this._coordsAscending[g])this._rttFingerprints[g][w]=`${this._coordsAscending[g][w].map((T=>T.key)).sort().join()}#${x}`}}for(const p of this._renderableTiles)for(const m in this._rttFingerprints){const g=this._rttFingerprints[m][p.tileID.key];g&&g!==p.rttFingerprint[m]&&(p.rtt=[])}}renderLayer(t,n){if(t.isHidden(this.painter.transform.zoom))return!1;const s=Object.assign(Object.assign({},n),{isRenderingToTexture:!0}),l=t.type,p=this.painter,m=this._renderableLayerIds[this._renderableLayerIds.length-1]===t.id;if(Sr[l]&&(this._prevType&&Sr[this._prevType]||this._stacks.push([]),this._prevType=l,this._stacks[this._stacks.length-1].push(t.id),!m))return!0;if(Sr[this._prevType]||Sr[l]&&m){this._prevType=l;const g=this._stacks.length-1,x=this._stacks[g]||[];for(const w of this._renderableTiles){if(this.pool.isFull()&&(hl(this.painter,this.terrain,this._rttTiles,s),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(w),w.rtt[g]){const I=this.pool.getObjectForId(w.rtt[g].id);if(I.stamp===w.rtt[g].stamp){this.pool.useObject(I);continue}}const T=this.pool.getOrCreateFreeObject();this.pool.useObject(T),this.pool.stampObject(T),w.rtt[g]={id:T.id,stamp:T.stamp},p.context.bindFramebuffer.set(T.fbo.framebuffer),p.context.clear({color:c.bp.transparent,stencil:0}),p.currentStencilSource=void 0;for(let I=0;I{this.startMove(p,fe.mousePos(this.element,p)),fe.addEventListener(window,"mousemove",this.mousemove),fe.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=p=>{this.move(p,fe.mousePos(this.element,p))},this.mouseup=p=>{this._rotatePitchHandler.dragEnd(p),this.offTemp()},this.touchstart=p=>{p.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=fe.touchPos(this.element,p.targetTouches)[0],this.startMove(p,this._startPos),fe.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),fe.addEventListener(window,"touchend",this.touchend))},this.touchmove=p=>{p.targetTouches.length!==1?this.reset():(this._lastPos=fe.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._rotatePitchHandler.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=n;const l=new ml;this._rotatePitchHandler=new jr({clickTolerance:3,move:(p,m)=>{const g=n.getBoundingClientRect(),x=new c.P((g.bottom-g.top)/2,(g.right-g.left)/2);return{bearingDelta:c.cy(new c.P(p.x,m.y),m,x),pitchDelta:s?-.5*(m.y-p.y):void 0}},moveStateManager:l,enable:!0,assignEvents:()=>{}}),this.map=t,fe.addEventListener(n,"mousedown",this.mousedown),fe.addEventListener(n,"touchstart",this.touchstart,{passive:!1}),fe.addEventListener(n,"touchcancel",this.reset)}startMove(t,n){this._rotatePitchHandler.dragStart(t,n),fe.disableDrag()}move(t,n){const s=this.map,{bearingDelta:l,pitchDelta:p}=this._rotatePitchHandler.dragMove(t,n)||{};l&&s.setBearing(s.getBearing()+l),p&&s.setPitch(s.getPitch()+p)}off(){const t=this.element;fe.removeEventListener(t,"mousedown",this.mousedown),fe.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),fe.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),fe.removeEventListener(window,"touchend",this.touchend),fe.removeEventListener(t,"touchcancel",this.reset),this.offTemp()}offTemp(){fe.enableDrag(),fe.removeEventListener(window,"mousemove",this.mousemove),fe.removeEventListener(window,"mouseup",this.mouseup),fe.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),fe.removeEventListener(window,"touchend",this.touchend)}}let Ur;function go(d,t,n,s=!1){if(s||!n.getCoveringTilesDetailsProvider().allowWorldCopies())return d?.wrap();const l=new c.V(d.lng,d.lat);if(d=new c.V(d.lng,d.lat),t){const p=new c.V(d.lng-360,d.lat),m=new c.V(d.lng+360,d.lat),g=n.locationToScreenPoint(d).distSqr(t);n.locationToScreenPoint(p).distSqr(t)180;){const p=n.locationToScreenPoint(d);if(p.x>=0&&p.y>=0&&p.x<=n.width&&p.y<=n.height)break;d.lng>n.center.lng?d.lng-=360:d.lng+=360}return d.lng!==l.lng&&n.isPointOnMapSurface(n.locationToScreenPoint(d))?d:l}const vs={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 yo(d,t,n){const s=d.classList;for(const l in vs)s.remove(`maplibregl-${n}-anchor-${l}`);s.add(`maplibregl-${n}-anchor-${t}`)}class bs extends c.E{constructor(t){if(super(),this._onClick=n=>{this.fire(new c.l("click",{originalEvent:n}))},this._onKeyPress=n=>{const s=n.code,l=n.charCode||n.keyCode;s!=="Space"&&s!=="Enter"&&l!==32&&l!==13||this.togglePopup()},this._onMapClick=n=>{const s=n.originalEvent.target,l=this._element;this._popup&&(s===l||l.contains(s))&&this.togglePopup()},this._update=n=>{if(!this._map)return;const s=this._map.loaded()&&!this._map.isMoving();(n?.type==="terrain"||n?.type==="render"&&!s)&&this._map.once("render",this._update),this._lngLat=go(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||n&&n.type!=="moveend"||(this._pos=this._pos.round()),fe.setTransform(this._element,`${vs[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${p} ${l}`),Zt.frameAsync(new AbortController,this._map._ownerWindow).then((()=>{this._updateOpacity(n&&n.type==="moveend")})).catch((()=>{}))},this._onMove=n=>{if(!this._isDragging){const s=this._clickTolerance||this._map._clickTolerance;this._isDragging=n.point.dist(this._pointerdownPos)>=s}this._isDragging&&(this._pos=n.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 c.l("dragstart"))),this.fire(new c.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 c.l("dragend")),this._state="inactive"},this._addDragHandler=n=>{this._element.contains(n.originalEvent.target)&&(n.preventDefault(),this._positionDelta=n.point.sub(this._pos).add(this._offset),this._pointerdownPos=n.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=t&&t.anchor||"center",this._color=t&&t.color||"#3FB1CE",this._scale=t&&t.scale||1,this._draggable=t&&t.draggable||!1,this._clickTolerance=t&&t.clickTolerance||0,this._subpixelPositioning=t&&t.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=t&&t.rotation||0,this._rotationAlignment=t&&t.rotationAlignment||"auto",this._pitchAlignment=t&&t.pitchAlignment&&t.pitchAlignment!=="auto"?t.pitchAlignment:this._rotationAlignment,this.setOpacity(t?.opacity,t?.opacityWhenCovered),t&&t.element)this._element=t.element,this._offset=c.P.convert(t&&t.offset||[0,0]);else{this._defaultMarker=!0,this._element=fe.create("div");const n=fe.createNS("http://www.w3.org/2000/svg","svg"),s=41,l=27;n.setAttributeNS(null,"display","block"),n.setAttributeNS(null,"height",`${s}px`),n.setAttributeNS(null,"width",`${l}px`),n.setAttributeNS(null,"viewBox",`0 0 ${l} ${s}`);const p=fe.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 m=fe.createNS("http://www.w3.org/2000/svg","g");m.setAttributeNS(null,"fill-rule","nonzero");const g=fe.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"transform","translate(3.0, 29.0)"),g.setAttributeNS(null,"fill","#000000");const x=[{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 N of x){const Z=fe.createNS("http://www.w3.org/2000/svg","ellipse");Z.setAttributeNS(null,"opacity","0.04"),Z.setAttributeNS(null,"cx","10.5"),Z.setAttributeNS(null,"cy","5.80029008"),Z.setAttributeNS(null,"rx",N.rx),Z.setAttributeNS(null,"ry",N.ry),g.appendChild(Z)}const w=fe.createNS("http://www.w3.org/2000/svg","g");w.setAttributeNS(null,"fill",this._color);const T=fe.createNS("http://www.w3.org/2000/svg","path");T.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"),w.appendChild(T);const I=fe.createNS("http://www.w3.org/2000/svg","g");I.setAttributeNS(null,"opacity","0.25"),I.setAttributeNS(null,"fill","#000000");const M=fe.createNS("http://www.w3.org/2000/svg","path");M.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"),I.appendChild(M);const z=fe.createNS("http://www.w3.org/2000/svg","g");z.setAttributeNS(null,"transform","translate(6.0, 7.0)"),z.setAttributeNS(null,"fill","#FFFFFF");const L=fe.createNS("http://www.w3.org/2000/svg","g");L.setAttributeNS(null,"transform","translate(8.0, 8.0)");const j=fe.createNS("http://www.w3.org/2000/svg","circle");j.setAttributeNS(null,"fill","#000000"),j.setAttributeNS(null,"opacity","0.25"),j.setAttributeNS(null,"cx","5.5"),j.setAttributeNS(null,"cy","5.5"),j.setAttributeNS(null,"r","5.4999962");const U=fe.createNS("http://www.w3.org/2000/svg","circle");U.setAttributeNS(null,"fill","#FFFFFF"),U.setAttributeNS(null,"cx","5.5"),U.setAttributeNS(null,"cy","5.5"),U.setAttributeNS(null,"r","5.4999962"),L.appendChild(j),L.appendChild(U),m.appendChild(g),m.appendChild(w),m.appendChild(I),m.appendChild(z),m.appendChild(L),n.appendChild(m),n.setAttributeNS(null,"height",s*this._scale+"px"),n.setAttributeNS(null,"width",l*this._scale+"px"),this._element.appendChild(n),this._offset=c.P.convert(t&&t.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",(n=>{n.preventDefault()})),this._element.addEventListener("mousedown",(n=>{n.preventDefault()})),yo(this._element,this._anchor,"marker"),this._element.addEventListener("click",this._onClick),t&&t.className)for(const n of t.className.split(" "))this._element.classList.add(n);this._popup=null}addTo(t){return this.remove(),this._map=t,this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label",t._getUIString("Marker.Title")),this._element.hasAttribute("role")||this._element.setAttribute("role","button"),t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),t.on("terrain",this._update),t.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),fe.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(t){return this._lngLat=c.V.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(t){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),t){if(!("offset"in t.options)){const l=Math.abs(13.5)/Math.SQRT2;t.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=t,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(t){return this._subpixelPositioning=t,this}getPopup(){return this._popup}togglePopup(){const t=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:t?(t.isOpen()?t.remove():(t.setLngLat(this._lngLat),t.addTo(this._map)),this):this}_updateOpacity(t=!1){var n,s;const l=(n=this._map)===null||n===void 0?void 0:n.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(t)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout((()=>{this._opacityTimeout=null}),100)}const m=this._map,g=m.terrain.depthAtPoint(this._pos),x=m.terrain.getElevationForLngLat(this._lngLat,m.transform);if(m.transform.lngLatToCameraDepth(this._lngLat,x)-g<.006)return void(this._element.style.opacity=this._opacity);const w=-this._offset.y/m.transform.pixelsPerMeter,T=Math.sin(m.getPitch()*Math.PI/180)*w,I=m.terrain.depthAtPoint(new c.P(this._pos.x,this._pos.y-this._offset.y)),M=m.transform.lngLatToCameraDepth(this._lngLat,x+T)-I>.006;!((s=this._popup)===null||s===void 0)&&s.isOpen()&&M&&this._popup.remove(),this._element.style.opacity=M?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(t){return this._offset=c.P.convert(t),this._update(),this}addClassName(t){this._element.classList.add(t)}removeClassName(t){this._element.classList.remove(t)}toggleClassName(t){return this._element.classList.toggle(t)}setDraggable(t){return this._draggable=!!t,this._map&&(t?(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(t){return this._rotation=t||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(t){return this._rotationAlignment=t||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(t){return this._pitchAlignment=t&&t!=="auto"?t:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(t,n){return(this._opacity===void 0||t===void 0&&n===void 0)&&(this._opacity="1",this._opacityWhenCovered="0.2"),t!==void 0&&(this._opacity=t),n!==void 0&&(this._opacityWhenCovered=n),this._map&&this._updateOpacity(!0),this}}const Il={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let ba=0,Gn=!1;const xo={maxWidth:100,unit:"metric"};function vo(d,t,n){const s=n&&n.maxWidth||100,l=d._container.clientHeight/2,p=d._container.clientWidth/2,m=d.unproject([p-s/2,l]),g=d.unproject([p+s/2,l]),x=Math.round(d.project(g).x-d.project(m).x),w=Math.min(s,x,d._container.clientWidth),T=m.distanceTo(g);if(n&&n.unit==="imperial"){const I=3.2808*T;I>5280?qn(t,w,I/5280,d._getUIString("ScaleControl.Miles")):qn(t,w,I,d._getUIString("ScaleControl.Feet"))}else n&&n.unit==="nautical"?qn(t,w,T/1852,d._getUIString("ScaleControl.NauticalMiles")):T>=1e3?qn(t,w,T/1e3,d._getUIString("ScaleControl.Kilometers")):qn(t,w,T,d._getUIString("ScaleControl.Meters"))}function qn(d,t,n,s){const l=(function(p){const m=Math.pow(10,`${Math.floor(p)}`.length-1);let g=p/m;return g=g>=10?10:g>=5?5:g>=3?3:g>=2?2:g>=1?1:(function(x){const w=Math.pow(10,Math.ceil(-Math.log(x)/Math.LN10));return Math.round(x*w)/w})(g),m*g})(n);d.style.width=t*(l/n)+"px",d.innerHTML=`${l} ${s}`}const bo={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1,locationOccludedOpacity:void 0,padding:void 0},El=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function wo(d){if(d){if(typeof d=="number"){const t=Math.round(Math.abs(d)/Math.SQRT2);return{center:new c.P(0,0),top:new c.P(0,d),"top-left":new c.P(t,t),"top-right":new c.P(-t,t),bottom:new c.P(0,-d),"bottom-left":new c.P(t,-t),"bottom-right":new c.P(-t,-t),left:new c.P(d,0),right:new c.P(-d,0)}}if(d instanceof c.P||Array.isArray(d)){const t=c.P.convert(d);return{center:t,top:t,"top-left":t,"top-right":t,bottom:t,"bottom-left":t,"bottom-right":t,left:t,right:t}}return{center:c.P.convert(d.center||[0,0]),top:c.P.convert(d.top||[0,0]),"top-left":c.P.convert(d["top-left"]||[0,0]),"top-right":c.P.convert(d["top-right"]||[0,0]),bottom:c.P.convert(d.bottom||[0,0]),"bottom-left":c.P.convert(d["bottom-left"]||[0,0]),"bottom-right":c.P.convert(d["bottom-right"]||[0,0]),left:c.P.convert(d.left||[0,0]),right:c.P.convert(d.right||[0,0])}}return wo(new c.P(0,0))}const Cl=Ee;k.AJAXError=c.cJ,k.EXTENT=c.a5,k.Event=c.l,k.Evented=c.E,k.LngLat=c.V,k.MercatorCoordinate=c.a9,k.Point=c.P,k.addProtocol=c.cK,k.config=c.c,k.removeProtocol=c.cL,k.AttributionControl=Yc,k.BoxZoomHandler=Tr,k.CanvasSource=ta,k.CooperativeGesturesHandler=Ue,k.DoubleClickZoomHandler=wl,k.DragPanHandler=pr,k.DragRotateHandler=gs,k.EdgeInsets=Rr,k.FullscreenControl=class extends c.E{constructor(d={}){var t;super(),this._onFullscreenChange=()=>{var n;let s=window.document.fullscreenElement||window.document.webkitFullscreenElement;for(;!((n=s?.shadowRoot)===null||n===void 0)&&n.fullscreenElement;)s=s.shadowRoot.fullscreenElement;s===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,this._pseudo=(t=d.pseudo)!==null&&t!==void 0&&t,d&&d.container&&(d.container instanceof HTMLElement?this._container=d.container:c.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(d){return this._map=d,this._container||(this._container=this._map.getContainer()),this._controlContainer=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){fe.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const d=this._fullscreenButton=fe.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);fe.create("span","maplibregl-ctrl-icon",d).setAttribute("aria-hidden","true"),d.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const d=this._getTitle();this._fullscreenButton.setAttribute("aria-label",d),this._fullscreenButton.title=d}_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 c.l("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new c.l("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){this._pseudo?this._togglePseudoFullScreen():window.document.exitFullscreen?window.document.exitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._pseudo?this._togglePseudoFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},k.GeoJSONSource=Ar,k.GeolocateControl=class extends c.E{constructor(d){super(),this._onSuccess=t=>{if(this._map){if(this._isOutOfMapMaxBounds(t))return this._setErrorState(),this.fire(new c.l("outofmaxbounds",t)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,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(t),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(t),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new c.l("geolocate",t)),this._finish()}},this._updateCamera=t=>{const n=new c.V(t.coords.longitude,t.coords.latitude),s=t.coords.accuracy,l=this._map.getBearing(),p=c.e({bearing:l},this.options.fitBoundsOptions),m=vt.fromLngLat(n,s);this._map.fitBounds(m,p,{geolocateSource:!0})},this._updateMarker=t=>{if(t){const n=new c.V(t.coords.longitude,t.coords.latitude);this._accuracyCircleMarker.setLngLat(n).addTo(this._map),this._userLocationDotMarker.setLngLat(n).addTo(this._map),this._accuracy=t.coords.accuracy,this._updateCircleRadiusIfNeeded()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onUpdate=()=>{this._updateCircleRadiusIfNeeded()},this._onError=t=>{if(this._map){if(t.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 n=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=n,this._geolocateButton.setAttribute("aria-label",n),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(t.code===3&&Gn)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new c.l("error",t)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",(t=>t.preventDefault())),this._geolocateButton=fe.create("button","maplibregl-ctrl-geolocate",this._container),fe.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=t=>{if(this._map){if(t===!1){c.w("Geolocation support is not available so the GeolocateControl will be disabled.");const n=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=n,this._geolocateButton.setAttribute("aria-label",n)}else{const n=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=n,this._geolocateButton.setAttribute("aria-label",n)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=fe.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new bs({element:this._dotElement}),this._circleElement=fe.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new bs({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onUpdate),this._map.on("move",this._onUpdate),this._map.on("rotate",this._onUpdate),this._map.on("pitch",this._onUpdate)),this._geolocateButton.addEventListener("click",(()=>this.trigger())),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(n=>{const s=n?.[0]instanceof ResizeObserverEntry;n.geolocateSource||this._watchState!=="ACTIVE_LOCK"||s||this._map.isZooming()||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new c.l("trackuserlocationend")),this.fire(new c.l("userlocationlostfocus")))}))}},this.options=c.e({},Il,d)}onAdd(d){return this._map=d,this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),(function(){return c._(this,arguments,void 0,(function*(t=!1){if(Ur!==void 0&&!t)return Ur;if(window.navigator.permissions===void 0)return Ur=!!window.navigator.geolocation,Ur;try{Ur=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{Ur=!!window.navigator.geolocation}return Ur}))})().then((t=>this._finishSetupUI(t))),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(),fe.remove(this._container),this._map.off("zoom",this._onUpdate),this._map.off("move",this._onUpdate),this._map.off("rotate",this._onUpdate),this._map.off("pitch",this._onUpdate),this._map=void 0,ba=0,Gn=!1}_isOutOfMapMaxBounds(d){const t=this._map.getMaxBounds(),n=d.coords;return t&&(n.longitudet.getEast()||n.latitudet.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":case"BACKGROUND_ERROR":case"OFF":case void 0:break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadiusIfNeeded(){const d=this._userLocationDotMarker.getLngLat();if(!(this.options.showUserLocation&&this.options.showAccuracyCircle&&this._accuracy&&d))return;const t=this._map.project(d),n=this._map.unproject([t.x+100,t.y]),s=d.distanceTo(n)/100,l=2*this._accuracy/s;this._circleElement.style.width=`${l.toFixed(2)}px`,this._circleElement.style.height=`${l.toFixed(2)}px`}trigger(){if(!this._setup)return c.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 c.l("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":ba--,Gn=!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 c.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 c.l("trackuserlocationstart")),this.fire(new c.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 d;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),ba++,ba>1?(d={maximumAge:6e5,timeout:0},Gn=!0):(d=this.options.positionOptions,Gn=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,d)}}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)}},k.GlobeControl=class{constructor(){this._toggleProjection=()=>{var d;const t=(d=this._map.getProjection())===null||d===void 0?void 0:d.type;this._map.setProjection(t!=="mercator"&&t?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var d;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),((d=this._map.getProjection())===null||d===void 0?void 0:d.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(d){return this._map=d,this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=fe.create("button","maplibregl-ctrl-globe",this._container),fe.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._map.on("projectiontransition",this._updateGlobeIcon),this._container}onRemove(){fe.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._map.off("projectiontransition",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},k.Hash=hs,k.ImageSource=zr,k.KeyboardHandler=Wc,k.LngLatBounds=vt,k.LogoControl=Kc,k.Map=class extends fr{get _ownerWindow(){var d,t;return((t=(d=this._container)===null||d===void 0?void 0:d.ownerDocument)===null||t===void 0?void 0:t.defaultView)||window}constructor(d){var t,n;c.cH.mark(c.cI.create);const s=Object.assign(Object.assign(Object.assign({},_o),d),{canvasContextAttributes:Object.assign(Object.assign({},_o.canvasContextAttributes),d.canvasContextAttributes)});if(s.minZoom!=null&&s.maxZoom!=null&&s.minZoom>s.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(s.minPitch!=null&&s.maxPitch!=null&&s.minPitch>s.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(s.minPitch!=null&&s.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(s.maxPitch!=null&&s.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const l=new Vi,p=new kn;s.minZoom!==void 0&&l.setMinZoom(s.minZoom),s.maxZoom!==void 0&&l.setMaxZoom(s.maxZoom),s.minPitch!==void 0&&l.setMinPitch(s.minPitch),s.maxPitch!==void 0&&l.setMaxPitch(s.maxPitch),s.renderWorldCopies!==void 0&&l.setRenderWorldCopies(s.renderWorldCopies),s.transformConstrain!==null&&l.setConstrainOverride(s.transformConstrain),super(l,p,{bearingSnap:s.bearingSnap,zoomSnap:s.zoomSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new nh,this._controls=[],this._mapId=c.af(),this._lostContextStyle={style:null,images:null},this._contextLost=g=>{if(g.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.painter.destroy(),this._lostContextStyle=this._getStyleAndImages(),this.style){for(const x of Object.values(this.style._layers))if(x.type==="custom"&&console.warn(`Custom layer with id '${x.id}' cannot be restored after WebGL context loss. You will need to re-add it manually after context restoration.`),x._listeners)for(const[w]of Object.entries(x._listeners))console.warn(`Custom layer with id '${x.id}' had event listeners for event '${w}' which cannot be restored after WebGL context loss. You will need to re-add them manually after context restoration.`);this.style.destroy(),this.style=null,this.fire(new c.l("webglcontextlost",{originalEvent:g}))}else this.fire(new c.l("webglcontextlost",{originalEvent:g}))},this._contextRestored=g=>{this._lostContextStyle.style&&this.setStyle(this._lostContextStyle.style,{diff:!1}),this._lostContextStyle.images&&(this.style.imageManager.images=this._lostContextStyle.images),this._lostContextStyle={style:null,images:null},this._setupPainter(),this.resize(),this._update(),this._resizeInternal(),this.fire(new c.l("webglcontextrestored",{originalEvent:g}))},this._onMapScroll=g=>{if(g.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=s.interactive,this._maxTileCacheSize=s.maxTileCacheSize,this._maxTileCacheZoomLevels=s.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},s.canvasContextAttributes),this._trackResize=s.trackResize===!0,this._bearingSnap=s.bearingSnap,this._zoomSnap=s.zoomSnap,this._centerClampedToGround=s.centerClampedToGround,this._refreshExpiredTiles=s.refreshExpiredTiles===!0,this._fadeDuration=s.fadeDuration,this._crossSourceCollisions=s.crossSourceCollisions===!0,this._collectResourceTiming=s.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},Sl),s.locale),this._clickTolerance=s.clickTolerance,this._overridePixelRatio=s.pixelRatio,this._maxCanvasSize=s.maxCanvasSize,this._zoomLevelsToOverscale=s.experimentalZoomLevelsToOverscale,this.transformCameraUpdate=s.transformCameraUpdate,this.transformConstrain=s.transformConstrain,this.cancelPendingTileRequestsWhileZooming=s.cancelPendingTileRequestsWhileZooming===!0,this.setAnisotropicFilterPitch(s.anisotropicFilterPitch),s.reduceMotion!==void 0&&(Zt.prefersReducedMotion=s.reduceMotion),this._imageQueueHandle=Li.addThrottleControl((()=>this.isMoving())),this._requestManager=new ka(s.transformRequest),this._container=this._resolveContainer(s.container),s.maxBounds&&this.setMaxBounds(s.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"&&(this._ownerWindow.addEventListener("online",this._onWindowOnline,!1),this._setupResizeObserver()),this.handlers=new bi(this,s),this._hash=s.hash&&new hs(typeof s.hash=="string"&&s.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:s.center,elevation:s.elevation,zoom:s.zoom,bearing:s.bearing,pitch:s.pitch,roll:s.roll}),s.bounds&&(this.resize(),this.fitBounds(s.bounds,c.e({},s.fitBoundsOptions,{duration:0}))));const m=typeof s.style=="string"||((n=(t=s.style)===null||t===void 0?void 0:t.projection)===null||n===void 0?void 0:n.type)!=="globe";this.resize(null,m),this._localIdeographFontFamily=s.localIdeographFontFamily,this._validateStyle=s.validateStyle,s.style&&this.setStyle(s.style,{localIdeographFontFamily:s.localIdeographFontFamily}),s.attributionControl&&this.addControl(new Yc(typeof s.attributionControl=="boolean"?void 0:s.attributionControl)),s.maplibreLogo&&this.addControl(new Kc,s.logoPosition),this.on("style.load",(()=>{if(m||this._resizeTransform(),this.transform.unmodified){const g=c.U(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(g)}})),this.on("data",(g=>{this._update(g.dataType==="style"),this.fire(new c.l(`${g.dataType}data`,g))})),this.on("dataloading",(g=>{this.fire(new c.l(`${g.dataType}dataloading`,g))})),this.on("dataabort",(g=>{this.fire(new c.l("sourcedataabort",g))}))}_getMapId(){return this._mapId}setGlobalStateProperty(d,t){return this.style.setGlobalStateProperty(d,t),this._update(!0)}getGlobalState(){return this.style.getGlobalState()}addControl(d,t){if(t===void 0&&(t=d.getDefaultPosition?d.getDefaultPosition():"top-right"),!d||!d.onAdd)return this.fire(new c.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const n=d.onAdd(this);this._controls.push(d);const s=this._controlPositions[t];return t.indexOf("bottom")!==-1?s.insertBefore(n,s.firstChild):s.appendChild(n),this}removeControl(d){if(!d||!d.onRemove)return this.fire(new c.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const t=this._controls.indexOf(d);return t>-1&&this._controls.splice(t,1),d.onRemove(this),this}hasControl(d){return this._controls.indexOf(d)>-1}coveringTiles(d){return mt(this.transform,d)}calculateCameraOptionsFromTo(d,t,n,s){return s==null&&this.terrain&&(s=this.terrain.getElevationForLngLat(n,this.transform)),super.calculateCameraOptionsFromTo(d,t,n,s)}resize(d,t=!0){if(this._lostContextStyle.style!==null)return this;this._resizeInternal(t);const n=!this._moving;return n&&(this.stop(),this.fire(new c.l("movestart",d)).fire(new c.l("move",d))),this.fire(new c.l("resize",d)),n&&this.fire(new c.l("moveend",d)),this}_resizeInternal(d=!0){const[t,n]=this._containerDimensions(),s=this._getClampedPixelRatio(t,n);if(this._resizeCanvas(t,n,s),this.painter.resize(t,n,s),this.painter.overLimit()){const l=this.painter.context.gl;this._maxCanvasSize=[l.drawingBufferWidth,l.drawingBufferHeight];const p=this._getClampedPixelRatio(t,n);this._resizeCanvas(t,n,p),this.painter.resize(t,n,p)}this._resizeTransform(d)}_resizeTransform(d=!0){var t;const[n,s]=this._containerDimensions();this.transform.resize(n,s,d),(t=this._requestedCameraState)===null||t===void 0||t.resize(n,s,d)}_getClampedPixelRatio(d,t){const{0:n,1:s}=this._maxCanvasSize,l=this.getPixelRatio(),p=d*l,m=t*l;return Math.min(p>n?n/p:1,m>s?s/m:1)*l}getPixelRatio(){var d;return(d=this._overridePixelRatio)!==null&&d!==void 0?d:devicePixelRatio}setPixelRatio(d){this._overridePixelRatio=d,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(d){return this.transform.setMaxBounds(vt.convert(d)),this._update()}setMinZoom(d){if((d=d??-2)>=-2&&d<=this.transform.maxZoom){const t=this.transform.zoom,n=this._getTransformForUpdate();return n.setMinZoom(d),this._applyUpdatedTransform(n),this._update(),t!==this.transform.zoom&&this.fire(new c.l("zoomstart")).fire(new c.l("zoom")).fire(new c.l("zoomend")).fire(new c.l("movestart")).fire(new c.l("move")).fire(new c.l("moveend")),this}throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")}getMinZoom(){return this.transform.minZoom}setMaxZoom(d){if((d=d??22)>=this.transform.minZoom){const t=this.transform.zoom,n=this._getTransformForUpdate();return n.setMaxZoom(d),this._applyUpdatedTransform(n),this._update(),t!==this.transform.zoom&&this.fire(new c.l("zoomstart")).fire(new c.l("zoom")).fire(new c.l("zoomend")).fire(new c.l("movestart")).fire(new c.l("move")).fire(new c.l("moveend")),this}throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(d){if((d=d??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(d>=0&&d<=this.transform.maxPitch){const t=this.transform.pitch,n=this._getTransformForUpdate();return n.setMinPitch(d),this._applyUpdatedTransform(n),this._update(),t!==this.transform.pitch&&this.fire(new c.l("pitchstart")).fire(new c.l("pitch")).fire(new c.l("pitchend")).fire(new c.l("movestart")).fire(new c.l("move")).fire(new c.l("moveend")),this}throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")}getMinPitch(){return this.transform.minPitch}setMaxPitch(d){if((d=d??60)>180)throw new Error("maxPitch must be less than or equal to 180");if(d>=this.transform.minPitch){const t=this.transform.pitch,n=this._getTransformForUpdate();return n.setMaxPitch(d),this._applyUpdatedTransform(n),this._update(),t!==this.transform.pitch&&this.fire(new c.l("pitchstart")).fire(new c.l("pitch")).fire(new c.l("pitchend")).fire(new c.l("movestart")).fire(new c.l("move")).fire(new c.l("moveend")),this}throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getAnisotropicFilterPitch(){return this._anisotropicFilterPitch}setAnisotropicFilterPitch(d){if((d=d??20)>180)throw new Error("anisotropicFilterPitch must be less than or equal to 180");if(d<0)throw new Error("anisotropicFilterPitch must be greater than or equal to 0");return this._anisotropicFilterPitch=d,this._update()}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(d){return this.transform.setRenderWorldCopies(d),this._update()}setTransformConstrain(d){return this.transform.setConstrainOverride(d),this._update()}project(d){return this.transform.locationToScreenPoint(c.V.convert(d),this.style&&this.terrain)}unproject(d){return this.transform.screenPointToLocation(c.P.convert(d),this.terrain)}isMoving(){var d;return this._moving||((d=this.handlers)===null||d===void 0?void 0:d.isMoving())}isZooming(){var d;return this._zooming||((d=this.handlers)===null||d===void 0?void 0:d.isZooming())}isRotating(){var d;return this._rotating||((d=this.handlers)===null||d===void 0?void 0:d.isRotating())}_createDelegatedListener(d,t,n){if(d==="mouseenter"||d==="mouseover"){let s=!1;return{layers:t,listener:n,delegates:{mousemove:p=>{const m=t.filter((x=>this.getLayer(x))),g=m.length!==0?this.queryRenderedFeatures(p.point,{layers:m}):[];g.length?s||(s=!0,n.call(this,new Ui(d,this,p.originalEvent,{features:g}))):s=!1},mouseout:()=>{s=!1}}}}if(d==="mouseleave"||d==="mouseout"){let s=!1;return{layers:t,listener:n,delegates:{mousemove:m=>{const g=t.filter((x=>this.getLayer(x)));(g.length!==0?this.queryRenderedFeatures(m.point,{layers:g}):[]).length?s=!0:s&&(s=!1,n.call(this,new Ui(d,this,m.originalEvent)))},mouseout:m=>{s&&(s=!1,n.call(this,new Ui(d,this,m.originalEvent)))}}}}{const s=l=>{const p=t.filter((g=>this.getLayer(g))),m=p.length!==0?this.queryRenderedFeatures(l.point,{layers:p}):[];m.length&&(l.features=m,n.call(this,l),delete l.features)};return{layers:t,listener:n,delegates:{[d]:s}}}}_saveDelegatedListener(d,t){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[d]=this._delegatedListeners[d]||[],this._delegatedListeners[d].push(t)}_removeDelegatedListener(d,t,n){if(!this._delegatedListeners||!this._delegatedListeners[d])return;const s=this._delegatedListeners[d];for(let l=0;lt.includes(m)))){for(const m in p.delegates)this.off(m,p.delegates[m]);return void s.splice(l,1)}}}on(d,t,n){if(n===void 0)return super.on(d,t);const s=typeof t=="string"?[t]:t,l=this._createDelegatedListener(d,s,n);this._saveDelegatedListener(d,l);for(const p in l.delegates)this.on(p,l.delegates[p]);return{unsubscribe:()=>{this._removeDelegatedListener(d,s,n)}}}once(d,t,n){if(n===void 0)return super.once(d,t);const s=typeof t=="string"?[t]:t,l=this._createDelegatedListener(d,s,n);for(const p in l.delegates){const m=l.delegates[p];l.delegates[p]=(...g)=>{this._removeDelegatedListener(d,s,n),m(...g)}}this._saveDelegatedListener(d,l);for(const p in l.delegates)this.once(p,l.delegates[p]);return this}off(d,t,n){return n===void 0?super.off(d,t):(this._removeDelegatedListener(d,typeof t=="string"?[t]:t,n),this)}queryRenderedFeatures(d,t){if(!this.style)return[];let n;const s=d instanceof c.P||Array.isArray(d),l=s?d:[[0,0],[this.transform.width,this.transform.height]];if(t=t||(s?{}:d)||{},l instanceof c.P||typeof l[0]=="number")n=[c.P.convert(l)];else{const p=c.P.convert(l[0]),m=c.P.convert(l[1]);n=[p,new c.P(m.x,p.y),m,new c.P(p.x,m.y),p]}return this.style.queryRenderedFeatures(n,t,this.transform)}querySourceFeatures(d,t){return this.style.querySourceFeatures(d,t)}setStyle(d,t){return(t=c.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},t)).diff!==!1&&t.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&d?(this._diffStyle(d,t),this):(this._localIdeographFontFamily=t.localIdeographFontFamily,this._updateStyle(d,t))}setTransformRequest(d){return this._requestManager.setTransformRequest(d),this}_getUIString(d){const t=this._locale[d];if(t==null)throw new Error(`Missing UI string '${d}'`);return t}_updateStyle(d,t){var n,s;if(t.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",(()=>this._updateStyle(d,t)));const l=this.style&&t.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!d)),d?(this.style=new Ho(this,t||{}),this.style.setEventedParent(this,{style:this.style}),typeof d=="string"?this.style.loadURL(d,t,l):this.style.loadJSON(d,t,l),this):((s=(n=this.style)===null||n===void 0?void 0:n.projection)===null||s===void 0||s.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ho(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(d,t){if(typeof d=="string"){const n=this._requestManager.transformRequest(d,"Style");c.j(n,new AbortController).then((s=>{this._updateDiff(s.data,t)})).catch((s=>{s&&this.fire(new c.k(s))}))}else typeof d=="object"&&this._updateDiff(d,t)}_updateDiff(d,t){try{this.style.setState(d,t)&&this._update(!0)}catch(n){c.w(`Unable to perform style diff: ${n.message||n.error||n}. Rebuilding the style from scratch.`),this._updateStyle(d,t)}}getStyle(){if(this.style)return this.style.serialize()}_getStyleAndImages(){return this.style?{style:this.style.serialize(),images:this.style.imageManager.cloneImages()}:{style:null,images:{}}}isStyleLoaded(){return this.style?this.style.loaded():c.w("There is no style added to the map.")}addSource(d,t){return this._lazyInitEmptyStyle(),this.style.addSource(d,t),this._update(!0)}isSourceLoaded(d){const t=this.style&&this.style.tileManagers[d];if(t!==void 0)return t.loaded();this.fire(new c.k(new Error(`There is no tile manager with ID '${d}'`)))}setTerrain(d){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),d){const t=this.style.tileManagers[d.source];if(!t)throw new Error(`cannot load terrain, because there exists no source with ID: ${d.source}`);this.terrain===null&&t.reload();for(const n in this.style._layers){const s=this.style._layers[n];s.type==="hillshade"&&s.source===d.source&&c.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."),s.type==="color-relief"&&s.source===d.source&&c.w("You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Ot(this.painter,t,d),this.painter.renderToTexture=new mo(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=n=>{var s;n.dataType==="style"?this.terrain.tileManager.freeRtt():n.dataType==="source"&&n.tile&&(n.sourceId!==d.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))),((s=n.source)===null||s===void 0?void 0:s.type)==="image"?this.terrain.tileManager.freeRtt():this.terrain.tileManager.freeRtt(n.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.tileManager.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 c.l("terrain",{terrain:d})),this}getTerrain(){var d,t;return(t=(d=this.terrain)===null||d===void 0?void 0:d.options)!==null&&t!==void 0?t:null}areTilesLoaded(){const d=this.style&&this.style.tileManagers;for(const t of Object.values(d))if(!t.areTilesLoaded())return!1;return!0}removeSource(d){return this.style.removeSource(d),this._update(!0)}getSource(d){return this.style.getSource(d)}setSourceTileLodParams(d,t,n){if(n){const s=this.getSource(n);if(!s)throw new Error(`There is no source with ID "${n}", cannot set LOD parameters`);s.calculateTileZoom=Ge(Math.max(1,d),Math.max(1,t))}else for(const s in this.style.tileManagers)this.style.tileManagers[s].getSource().calculateTileZoom=Ge(Math.max(1,d),Math.max(1,t));return this._update(!0),this}refreshTiles(d,t){const n=this.style.tileManagers[d];if(!n)throw new Error(`There is no tile manager with ID "${d}", cannot refresh tile`);t===void 0?n.reload(!0):n.refreshTiles(t.map((s=>new c.ac(s.z,s.x,s.y))))}addImage(d,t,n={}){const{pixelRatio:s=1,sdf:l=!1,stretchX:p,stretchY:m,content:g,textFitWidth:x,textFitHeight:w}=n;if(this._lazyInitEmptyStyle(),!(t instanceof HTMLImageElement||c.b(t))){if(t.width===void 0||t.height===void 0)return this.fire(new c.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:T,height:I,data:M}=t,z=t;return this.style.addImage(d,{data:new c.R({width:T,height:I},new Uint8Array(M)),pixelRatio:s,stretchX:p,stretchY:m,content:g,textFitWidth:x,textFitHeight:w,sdf:l,version:0,userImage:z}),z.onAdd&&z.onAdd(this,d),this}}{const{width:T,height:I,data:M}=Zt.getImageData(t);this.style.addImage(d,{data:new c.R({width:T,height:I},M),pixelRatio:s,stretchX:p,stretchY:m,content:g,textFitWidth:x,textFitHeight:w,sdf:l,version:0})}}updateImage(d,t){const n=this.style.getImage(d);if(!n)return this.fire(new c.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const s=t instanceof HTMLImageElement||c.b(t)?Zt.getImageData(t):t,{width:l,height:p,data:m}=s;if(l===void 0||p===void 0)return this.fire(new c.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!==n.data.width||p!==n.data.height)return this.fire(new c.k(new Error("The width and height of the updated image must be that same as the previous version of the image")));const g=!(t instanceof HTMLImageElement||c.b(t));return n.data.replace(m,g),this.style.updateImage(d,n),this}getImage(d){return this.style.getImage(d)}hasImage(d){return d?!!this.style.getImage(d):(this.fire(new c.k(new Error("Missing required image id"))),!1)}removeImage(d){this.style.removeImage(d)}loadImage(d){return Li.getImage(this._requestManager.transformRequest(d,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(d,t){return this._lazyInitEmptyStyle(),this.style.addLayer(d,t),this._update(!0)}moveLayer(d,t){return this.style.moveLayer(d,t),this._update(!0)}removeLayer(d){return this.style.removeLayer(d),this._update(!0)}getLayer(d){return this.style.getLayer(d)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(d,t,n){return this.style.setLayerZoomRange(d,t,n),this._update(!0)}setFilter(d,t,n={}){return this.style.setFilter(d,t,n),this._update(!0)}getFilter(d){return this.style.getFilter(d)}setPaintProperty(d,t,n,s={}){return this.style.setPaintProperty(d,t,n,s),this._update(!0)}getPaintProperty(d,t){return this.style.getPaintProperty(d,t)}setLayoutProperty(d,t,n,s={}){return this.style.setLayoutProperty(d,t,n,s),this._update(!0)}getLayoutProperty(d,t){return this.style.getLayoutProperty(d,t)}setGlyphs(d,t={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(d,t),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(d,t,n={}){return this._lazyInitEmptyStyle(),this.style.addSprite(d,t,n,(s=>{s||this._update(!0)})),this}removeSprite(d){return this._lazyInitEmptyStyle(),this.style.removeSprite(d),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(d,t={}){return this._lazyInitEmptyStyle(),this.style.setSprite(d,t,(n=>{n||this._update(!0)})),this}setLight(d,t={}){return this._lazyInitEmptyStyle(),this.style.setLight(d,t),this._update(!0)}getLight(){return this.style.getLight()}setSky(d,t={}){return this._lazyInitEmptyStyle(),this.style.setSky(d,t),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(d,t){return this.style.setFeatureState(d,t),this._update()}removeFeatureState(d,t){return this.style.removeFeatureState(d,t),this._update()}getFeatureState(d){return this.style.getFeatureState(d)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let d=0,t=0;return this._container&&(d=this._container.clientWidth||400,t=this._container.clientHeight||300),[d,t]}_setupResizeObserver(){var d;let t=!1;const n=pl((l=>{this._trackResize&&!this._removed&&(this.resize(l),this.redraw())}),50),s=(d=this._ownerWindow.ResizeObserver)!==null&&d!==void 0?d:ResizeObserver;this._resizeObserver=new s((l=>{t?n(l):t=!0})),this._resizeObserver.observe(this._container)}_resolveContainer(d){if(typeof d=="string"){const t=document.getElementById(d);if(!t)throw new Error(`Container '${d}' not found.`);return t}if(d instanceof HTMLElement||d&&typeof d=="object"&&d.nodeType===1)return d;throw new Error("Invalid type: 'container' must be a String or HTMLElement.")}_setupContainer(){const d=this._container;d.classList.add("maplibregl-map");const t=this._canvasContainer=fe.create("div","maplibregl-canvas-container",d);this._interactive&&t.classList.add("maplibregl-interactive"),this._canvas=fe.create("canvas","maplibregl-canvas",t),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 n=this._containerDimensions(),s=this._getClampedPixelRatio(n[0],n[1]);this._resizeCanvas(n[0],n[1],s);const l=this._controlContainer=fe.create("div","maplibregl-control-container",d),p=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((m=>{p[m]=fe.create("div",`maplibregl-ctrl-${m} `,l)})),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(d,t,n){this._canvas.width=Math.floor(n*d),this._canvas.height=Math.floor(n*t),this._canvas.style.width=`${d}px`,this._canvas.style.height=`${t}px`}_setupPainter(){const d=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let t=null;this._canvas.addEventListener("webglcontextcreationerror",(s=>{t={requestedAttributes:d},s&&(t.statusMessage=s.statusMessage,t.type=s.type)}),{once:!0});let n=null;if(n=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,d):this._canvas.getContext("webgl2",d)||this._canvas.getContext("webgl",d),!n){const s="Failed to initialize WebGL";throw t?(t.message=s,new Error(JSON.stringify(t))):new Error(s)}this.painter=new Bc(n,this.transform),Xn.testSupport(n)}migrateProjection(d,t){super.migrateProjection(d,t),this.painter.transform=d,this.fire(new c.l("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(d){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||d,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(d){return this._update(),this._renderTaskQueue.add(d)}_cancelRenderFrame(d){this._renderTaskQueue.remove(d)}_render(d){var t,n,s,l,p;const m=this._idleTriggered?this._fadeDuration:0,g=((t=this.style.projection)===null||t===void 0?void 0:t.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(d),this._removed)return;let x=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const I=this.transform.zoom,M=it();this.style.zoomHistory.update(I,M);const z=new c.H(I,{now:M,fadeDuration:m,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),L=z.crossFadingFactor();L===1&&L===this._crossFadingFactor||(x=!0,this._crossFadingFactor=L),this.style.update(z)}const w=((n=this.style.projection)===null||n===void 0?void 0:n.transitionState)>0!==g;(s=this.style.projection)===null||s===void 0||s.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||w)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.tileManager.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,m,this._crossSourceCollisions,w),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:m,showPadding:this.showPadding,anisotropicFilterPitch:this.getAnisotropicFilterPitch()}),this.fire(new c.l("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,c.cH.mark(c.cI.load),this.fire(new c.l("load"))),this.style&&(this.style.hasTransitions()||x)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const T=this._sourcesDirty||this._styleDirty||this._placementDirty;return T||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new c.l("idle")),!this._loaded||this._fullyLoaded||T||(this._fullyLoaded=!0,c.cH.mark(c.cI.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var d;this._hash&&this._hash.remove();for(const n of this._controls)n.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"&&this._ownerWindow.removeEventListener("online",this._onWindowOnline,!1),Li.removeThrottleControl(this._imageQueueHandle),(d=this._resizeObserver)===null||d===void 0||d.disconnect();const t=this.painter.context.gl.getExtension("WEBGL_lose_context");t?.loseContext&&t.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),fe.remove(this._canvasContainer),fe.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),c.cH.remove(),this._removed=!0,this.fire(new c.l("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,Zt.frame(this._frameRequest,(d=>{c.cH.recordStartOfFrameAt(d),this._frameRequest=null;try{this._render(d)}catch(t){if(!c.Z(t)&&!(function(n){return n.message===rs})(t))throw t}}),(()=>{}),this._ownerWindow))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(d){this._showTileBoundaries!==d&&(this._showTileBoundaries=d,this._update())}get showPadding(){return!!this._showPadding}set showPadding(d){this._showPadding!==d&&(this._showPadding=d,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(d){this._showCollisionBoxes!==d&&(this._showCollisionBoxes=d,d?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(d){this._showOverdrawInspector!==d&&(this._showOverdrawInspector=d,this._update())}get repaint(){return!!this._repaint}set repaint(d){this._repaint!==d&&(this._repaint=d,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(d){this._vertices=d,this._update()}get version(){return Pl}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(d){return this._lazyInitEmptyStyle(),this.style.setProjection(d),this._update(!0)}},k.MapMouseEvent=Ui,k.MapTouchEvent=ps,k.MapWheelEvent=Vc,k.Marker=bs,k.NavigationControl=class{constructor(d){this._updateZoomButtons=()=>{const t=this._map.getZoom(),n=t===this._map.getMaxZoom(),s=t===this._map.getMinZoom();this._zoomInButton.disabled=n,this._zoomOutButton.disabled=s,this._zoomInButton.setAttribute("aria-disabled",n.toString()),this._zoomOutButton.setAttribute("aria-disabled",s.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=(t,n)=>{const s=this._map._getUIString(`NavigationControl.${n}`);t.title=s,t.setAttribute("aria-label",s)},this.options=c.e({},xs,d),this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",(t=>t.preventDefault())),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",(t=>this._map.zoomIn({},{originalEvent:t}))),fe.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",(t=>this._map.zoomOut({},{originalEvent:t}))),fe.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",(t=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:t}):this._map.resetNorth({},{originalEvent:t})})),this._compassIcon=fe.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(d){return this._map=d,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 Ml(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){fe.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(d,t){const n=fe.create("button",d,this._container);return n.type="button",n.addEventListener("click",t),n}},k.Popup=class extends c.E{constructor(d){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._container.style.opacity=this._map.transform.isLocationOccluded(this.getLngLat())?`${this.options.locationOccludedOpacity}`:"")},this.remove=()=>(this._content&&fe.remove(this._content),this._container&&(fe.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 c.l("close"))),this),this._onMouseUp=t=>{this._update(t.point)},this._onMouseMove=t=>{this._update(t.point)},this._onDrag=t=>{this._update(t.point)},this._update=t=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=fe.create("div","maplibregl-popup",this._map.getContainer()),this._tip=fe.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const m of this.options.className.split(" "))this._container.classList.add(m);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=go(this._lngLat,this._flatPos,this._map.transform,this._trackPointer),this._trackPointer&&!t)return;const n=this._flatPos=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&t?t:this._map.transform.locationToScreenPoint(this._lngLat));let s=this.options.anchor;const l=wo(this.options.offset);if(!s){const m=this._container.offsetWidth,g=this._container.offsetHeight,x=(function(T){var I,M,z,L;return T?{top:(I=T.top)!==null&&I!==void 0?I:0,right:(M=T.right)!==null&&M!==void 0?M:0,bottom:(z=T.bottom)!==null&&z!==void 0?z:0,left:(L=T.left)!==null&&L!==void 0?L:0}:{top:0,right:0,bottom:0,left:0}})(this.options.padding);let w;w=n.y+l.bottom.ythis._map.transform.height-g-x.bottom?["bottom"]:[],n.xthis._map.transform.width-m/2-x.right&&w.push("right"),s=w.length===0?"bottom":w.join("-")}let p=n.add(l[s]);this.options.subpixelPositioning||(p=p.round()),fe.setTransform(this._container,`${vs[s]} translate(${p.x}px,${p.y}px)`),yo(this._container,s,"popup"),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=c.e(Object.create(bo),d)}addTo(d){return this._map&&this.remove(),this._map=d,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 c.l("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(d){return this._lngLat=c.V.convert(d),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(d){return this.setDOMContent(document.createTextNode(d))}setHTML(d){const t=document.createDocumentFragment(),n=document.createElement("body");let s;for(n.innerHTML=d;s=n.firstChild,s;)t.appendChild(s);return this.setDOMContent(t)}getMaxWidth(){var d;return(d=this._container)===null||d===void 0?void 0:d.style.maxWidth}setMaxWidth(d){return this.options.maxWidth=d,this._update(),this}setDOMContent(d){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=fe.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(d),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(d){return this._container&&this._container.classList.add(d),this}removeClassName(d){return this._container&&this._container.classList.remove(d),this}setOffset(d){return this.options.offset=d,this._update(),this}toggleClassName(d){if(this._container)return this._container.classList.toggle(d)}setSubpixelPositioning(d){this.options.subpixelPositioning=d}setPadding(d){this.options.padding=d,this._update()}_createCloseButton(){this.options.closeButton&&(this._closeButton=fe.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 d=this._container.querySelector(El);d&&d.focus()}},k.RasterDEMTileSource=nn,k.RasterTileSource=Pn,k.ScaleControl=class{constructor(d){this._onMove=()=>{vo(this._map,this._container,this.options)},this.setUnit=t=>{this.options.unit=t,vo(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},xo),d)}getDefaultPosition(){return"bottom-left"}onAdd(d){return this._map=d,this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-scale",d.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){fe.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},k.ScrollZoomHandler=bl,k.Style=Ho,k.TerrainControl=class{constructor(d){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=d}onAdd(d){return this._map=d,this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=fe.create("button","maplibregl-ctrl-terrain",this._container),fe.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(){fe.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},k.TwoFingersTouchPitchHandler=Nr,k.TwoFingersTouchRotateHandler=$c,k.TwoFingersTouchZoomHandler=Zc,k.TwoFingersTouchZoomRotateHandler=Be,k.VectorTileSource=ea,k.VideoSource=sn,k.addSourceType=(d,t)=>c._(void 0,void 0,void 0,(function*(){if(ia(d))throw new Error(`A source type called "${d}" already exists.`);((n,s)=>{Fa[n]=s})(d,t)})),k.clearPrewarmedResources=function(){const d=ui;d&&(d.isPreloaded()&&d.numActive()===1?(d.release(rn),ui=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()"))},k.createTileMesh=js,k.getMaxParallelImageRequests=function(){return c.c.MAX_PARALLEL_IMAGE_REQUESTS},k.getRTLTextPluginStatus=function(){return F().getRTLTextPluginStatus()},k.getVersion=function(){return Cl},k.getWorkerCount=function(){return Cr.workerCount},k.getWorkerUrl=function(){return c.c.WORKER_URL},k.importScriptInWorkers=function(d){return Tn().broadcast("IS",d)},k.isTimeFrozen=function(){return Jr.isFrozen()},k.now=it,k.prewarm=function(){Qn().acquire(rn)},k.restoreNow=function(){Jr.restoreNow()},k.setMaxParallelImageRequests=function(d){c.c.MAX_PARALLEL_IMAGE_REQUESTS=d},k.setNow=function(d){Jr.setNow(d)},k.setRTLTextPlugin=function(d,t){return F().setRTLTextPlugin(d,t)},k.setWorkerCount=function(d){Cr.workerCount=d},k.setWorkerUrl=function(d){c.c.WORKER_URL=d}}));var ci=Ae;return ci}))})(Du)),Du.exports}var og=ag();const Eu=Math.PI/180,Cu=180/Math.PI,Au=6378137,za=20037508342789244e-9,zu="900913",sg="WGS84",jo={};function vf(we){return Number(we)===we&&we%1!==0}class lg{#e;#t;#n;#a;#r;#i;constructor(ce={}){if(this.#e=ce.size||256,this.#t=ce.antimeridian?2:1,!jo[this.#e]){let Ae=this.#e;const ze=jo[this.#e]={};ze.Bc=[],ze.Cc=[],ze.zc=[],ze.Ac=[];for(let ot=0;ot<30;ot++)ze.Bc.push(Ae/360),ze.Cc.push(Ae/(2*Math.PI)),ze.zc.push(Ae/2),ze.Ac.push(Ae),Ae*=2}this.#n=jo[this.#e].Bc,this.#a=jo[this.#e].Cc,this.#r=jo[this.#e].zc,this.#i=jo[this.#e].Ac}px(ce,Ae){if(vf(Ae)){const ze=this.#e*Math.pow(2,Ae),ot=ze/2,ci=ze/360,k=ze/(2*Math.PI),c=ze,Ee=Math.min(Math.max(Math.sin(Eu*ce[1]),-.9999),.9999);let Jt=ot+ce[0]*ci,Nt=ot+.5*Math.log((1+Ee)/(1-Ee))*-k;return Jt>c*this.#t&&(Jt=c*this.#t),Nt>c&&(Nt=c),[Jt,Nt]}else{const ze=this.#r[Ae],ot=Math.min(Math.max(Math.sin(Eu*ce[1]),-.9999),.9999);let ci=Math.round(ze+ce[0]*this.#n[Ae]),k=Math.round(ze+.5*Math.log((1+ot)/(1-ot))*-this.#a[Ae]);return ci>this.#i[Ae]*this.#t&&(ci=this.#i[Ae]*this.#t),k>this.#i[Ae]&&(k=this.#i[Ae]),[ci,k]}}ll(ce,Ae){if(vf(Ae)){const ze=this.#e*Math.pow(2,Ae),ot=ze/360,ci=ze/(2*Math.PI),k=ze/2,c=(ce[1]-k)/-ci,Ee=(ce[0]-k)/ot,Jt=Cu*(2*Math.atan(Math.exp(c))-.5*Math.PI);return[Ee,Jt]}else{const ze=(ce[1]-this.#r[Ae])/-this.#a[Ae],ot=(ce[0]-this.#r[Ae])/this.#n[Ae],ci=Cu*(2*Math.atan(Math.exp(ze))-.5*Math.PI);return[ot,ci]}}convert(ce,Ae){return Ae===zu?[...this.forward(ce.slice(0,2)),...this.forward(ce.slice(2,4))]:[...this.inverse(ce.slice(0,2)),...this.inverse(ce.slice(2,4))]}inverse(ce){return[ce[0]*Cu/Au,(Math.PI*.5-2*Math.atan(Math.exp(-ce[1]/Au)))*Cu]}forward(ce){const Ae=[Au*ce[0]*Eu,Au*Math.log(Math.tan(Math.PI*.25+.5*ce[1]*Eu))];return Ae[0]>za&&(Ae[0]=za),Ae[0]<-za&&(Ae[0]=-za),Ae[1]>za&&(Ae[1]=za),Ae[1]<-za&&(Ae[1]=-za),Ae}bbox(ce,Ae,ze,ot,ci){ot&&(Ae=Math.pow(2,ze)-1-Ae);const k=[ce*this.#e,(+Ae+1)*this.#e],c=[(+ce+1)*this.#e,Ae*this.#e],Ee=[...this.ll(k,ze),...this.ll(c,ze)];return ci===zu?this.convert(Ee,zu):Ee}xyz(ce,Ae,ze,ot){const ci=ot===zu?this.convert(ce,sg):ce,k=[ci[0],ci[1]],c=[ci[2],ci[3]],Ee=this.px(k,Ae),Jt=this.px(c,Ae),Nt=[Math.floor(Ee[0]/this.#e),Math.floor((Jt[0]-1)/this.#e)],or=[Math.floor(Jt[1]/this.#e),Math.floor((Ee[1]-1)/this.#e)],lr={minX:Math.min.apply(Math,Nt)<0?0:Math.min.apply(Math,Nt),minY:Math.min.apply(Math,or)<0?0:Math.min.apply(Math,or),maxX:Math.max.apply(Math,Nt),maxY:Math.max.apply(Math,or)};if(ze){const Zt={minY:Math.pow(2,Ae)-1-lr.maxY,maxY:Math.pow(2,Ae)-1-lr.minY};lr.minY=Zt.minY,lr.maxY=Zt.maxY}return lr}}export{ig as C,rg as R,lg as S,og as m};